IP Library Granted Patent US 9,946,257
Granted Patent B2
US 9,946,257 · App. 15/241,253 · Granted Apr 17, 2018

Outsourcing processing to a self-propelled device

Inventors: Fabrizio Polo (Boulder, CO); Hunter James Lang (Broomfield, CO)
Assignee: Sphero, Inc.
G05D1/0022B62D63/02G05D1/0016H04W4/008
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,946,257
App. No.
15/241,253
Granted
Apr 17, 2018
Kind
B2
Abstract

A self-propelled device can establish a communication link with a controller device that is operable by a user to remotely control the self-propelled device. The self-propelled device can further receive, over the communication link, a computer code package from the controller device, and execute the computer code package to perform one or more processing operations performed by the controller device.

Claims (48)

1. A self-propelled device comprising:

a drive system operable to accelerate and maneuver the self-propelled device;

at least one processor; and

a memory storing instructions that, when executed by the at least one processor, cause the at least one processor to:

establish a communication link with a controller device, the controller device being operable by a user to remotely control the self-propelled device;

determine a signal latency in the communication link;

receive, over the communication link, a computer code package from the controller device, wherein a content of the computer code package is based at least in part upon the determined signal latency; and

execute the computer code package to perform one or more processing operations.

2. The self-propelled device of claim 1 , wherein the signal latency is determined based on a detected signal latency in the communication link between the mobile computing device and the self-propelled device.

3. The self-propelled device of claim 1 , wherein the signal latency is determined based on an anticipated signal latency in the communication link between the controller device and the self-propelled device.

4. The self-propelled device of claim 1 , wherein the controller device comprises a mobile computing device executing a control application specific to remotely controlling the self-propelled device, and wherein the executed computer code package causes the at least one processor to establish the communication link based on the control application being initiated on the mobile computing device.

5. The self-propelled device of claim 1 , wherein the executed instructions further cause the at least one processor to:

receive, over the communication link, control commands from the controller device, the control commands being based on user inputs with the controller device; and

implement the control commands on the drive system to accelerate and maneuver the self-propelled device.

6. The self-propelled device of claim 1 , further comprising:

an inertial measurement unit;

wherein prior to execution of the computer code package, the executed computer code package causes the at least one processor to transmit sensor data from the inertial measurement to the controller device over the communication link.

7. The self-propelled device of claim 6 , wherein execution of the computer code package causes the at least one processor to:

cease transmission of the sensor data over the communication link; and

determine, based on the sensor data from the inertial measurement unit, one or more maneuvers performed by the self-propelled device.

8. The self-propelled device of claim 7 , wherein execution of the computer code package further causes the at least one processor to:

periodically transmit a message to the controller device over the communication link, the periodic message identifying the one or more maneuvers performed by the self-propelled device.

9. The self-propelled device of claim 7 , wherein the communication link comprises a BLUETOOTH low energy link.

10. The self-propelled device of claim 7 , wherein the signal latency causes a delay in control commands being transmitted from the controller device to the self-propelled device, the control commands being implemented by the at least one processor on the drive system to accelerate and maneuver the self-propelled device.

11. A computer implemented method of outsourcing processing, the method being performed by one or more processors of a self-propelled device and comprising:

establishing a communication link with a controller device, the controller device being operable by a user to remotely control the self-propelled device;

receiving, over the communication link, a computer code package from the controller device;

determining if a signal latency in the communication link exceeds a latency threshold;

ceasing a transmission of data from the self-propelled device to the controller device if the determined signal latency exceeds the relative latency threshold; and

executing the computer code package to perform one or more processing operations.

12. The method of claim 11 , wherein determining if the signal latency exceeds the signal latency threshold comprises detecting signal latency in the communication link between the mobile computing device and the self-propelled device.

13. The method of claim 11 , wherein determining if the signal latency exceeds the signal latency threshold comprises anticipating signal latency in the communication link between the controller device and the self-propelled device.

14. The method of claim 11 , wherein the controller device comprises a mobile computing device executing a control application specific to remotely controlling the self-propelled device, and wherein establishing the communication link is based on the control application being initiated on the mobile computing device.

15. The method of claim 11 , further comprising:

receiving, over the communication link from the controller device, control commands based at least in part on user inputs; and

implementing the control commands on a drive system of the self-propelled device to accelerate and maneuver the self-propelled device.

16. The method of claim 11 , wherein the self-propelled device includes an inertial measurement unit, and wherein prior to execution of the computer code package, the one or more processors transmit sensor data from the inertial measurement to the controller device over the communication link.

17. The method of claim 16 , further comprising:

based on executing the computer code package, determining, based on the sensor data from the inertial measurement unit, one or more maneuvers performed by the self-propelled device.

18. The method of claim 17 , further comprising:

based on executing the computer code package, periodically transmitting a message to the controller device over the communication link, the periodic message identifying the one or more maneuvers performed by the self-propelled device.

19. The method of claim 17 , wherein the communication link comprises a BLUETOOTH low energy link.

20. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors of a self-propelled device, cause the self-propelled device to:

establish a communication link with a controller device, the controller device being operable by a user to remotely control the self-propelled device;

receive, over the communication link, a computer code package from the controller device;

determine if a signal latency in the communication link exceeds a latency threshold;

when the determined signal latency does not exceed the latency threshold, at least one of initiate and continue a transmission of data from the self-propelled device to the controller device; and

when the determined signal latency exceeds the latency threshold, execute the computer code package to perform one or more processing operations.

Assignments (2)
SECURITY INTEREST Recorded May 11, 2020
From: SPHERO, INC.
To: SILICON VALLEY BANK
Reel/Frame 052623/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2016
From: POLO, FABRIZIO; LANG, HUNTER JAMES
To: SPHERO, INC.
Reel/Frame 040257/0432 →
Continuity (2)
Continuation 14620103 · Feb 11, 2015
Related Publication 20160357184A1 · Dec 8, 2016