IP Library Granted Patent US 9,915,937
Granted Patent B2
US 9,915,937 · App. 15/384,273 · Granted Mar 13, 2018

Systems and methods for time-based parallel robotic operation

Inventors: Jeffrey Linnell (Woodside, CA); Kendra Byrne (San Francisco, CA)
Assignee: X Development LLC
G05B19/41815B25J9/1656B25J9/1666B25J9/1682G05B2219/39083G05B2219/39135G05B2219/40475G05B2219/40477Y10S901/02
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,915,937
App. No.
15/384,273
Granted
Mar 13, 2018
Kind
B2
Abstract

Example systems and methods may allow for parallel operation of robotic devices within a workcell, such as industrial robots controlled to manufacture an output product. One example method includes receiving ordered sequences of operations for a plurality of corresponding robotic devices, determining time-based sequences of operations for each of the robotic devices, where a time-based sequence of operations indicates positions within the workcell at corresponding timesteps of a global timeline, determining one or more potential collisions involving the robotic devices that would result from parallel execution of the time-based sequences of operations within the workcell, modifying the time-based sequences of operations in order to prevent the one or more potential collisions, and providing instructions for parallel execution of the modified time-based sequences of operations at timesteps of the global timeline by the robotic devices within the workcell.

Claims (63)

1. A method comprising:

determining, by a computing device, time-based sequences of operations for each of a plurality of robotic devices, wherein each of the time-based sequences of operations indicates planned positions of a corresponding robotic device at corresponding timesteps of a global timeline;

providing, by the computing device, instructions to cause parallel execution of the time-based sequences of operations by the plurality of robotic devices;

determining, by the computing device, a deviation of a first robotic device of the plurality of robotic devices from the time-based sequence of operations corresponding to the first robotic device based on sensor data indicative of actual positions of the first robotic device at one or more corresponding timesteps of the global timeline during parallel execution of the time-based sequences of operations;

in response to determining the deviation of the first robotic device, updating, by the computing device, the time-based sequence of operations for the first robotic device;

determining, by the computing device, based on the updated time-based sequence of operations for the first robotic device, a potential collision involving the first robotic device that would result from continued parallel execution of the time-based sequences of operations; and

modifying, by the computing device, one or more of the time-based sequences of operations to prevent the potential collision.

2. The method of claim 1 , further comprising:

providing instructions to cause parallel execution of the modified one or more time-based sequences of operations to prevent the potential collision.

3. The method of claim 1 , wherein determining the time-based sequences of operations for each of the plurality of robotic devices comprises:

determining one or more synchronized operations between at least two robotic devices of the plurality of robotic devices, wherein the one or more synchronized operations indicate to control the at least two robotic devices to simultaneously operate on a first component within a workcell; and

determining, for each of the plurality of robotic devices, positions of the corresponding robotic device at corresponding timesteps of the global timeline to control the at least two robotic devices to simultaneously operate on the first component within the workcell.

4. The method of claim 1 , wherein determining the time-based sequences of operations for each of the plurality of robotic devices comprises:

receiving ordered sequences of operations for the plurality of robotic devices, wherein an ordered sequence of operations for a corresponding robotic device indicates an ordered sequence of target positions within a workcell for the corresponding robotic device; and

determining, for each of the plurality of robotic devices, positions of the corresponding robotic device to include, at corresponding timesteps of the global timeline, the target positions and positions between consecutive target positions.

5. The method of claim 1 , wherein determining the time-based sequences of operations for each of the plurality of robotic devices comprises:

determining, for each of the plurality of robotic devices, positions of the corresponding robotic device at corresponding timesteps of the global timeline that minimize an amount of time required to carry out the time-based sequences of operations.

6. The method of claim 1 , wherein determining the time-based sequences of operations for each of the plurality of robotic devices comprises:

determining, for each of the plurality of robotic devices, positions of the corresponding robotic device at corresponding timesteps of the global timeline that minimize an amount of power used by the plurality of robotic devices.

7. The method of claim 1 , wherein determining the time-based sequences of operations for each of the plurality of robotic devices comprises:

determining, for each of the plurality of robotic devices, a safety buffer zone; and

determining, for each of the plurality of robotic devices, positions of the corresponding robotic device at corresponding timesteps of the global timeline that avoid intersection of the safety buffer zones of the plurality of robotic devices.

8. The method of claim 7 , wherein determining the potential collision involving the first robotic device comprises:

determining, based on the sensor data indicative of the actual positions of the first robotic device, a potential intersection between the safety buffer zone of the first robotic device and a safety buffer zone of at least one other robotic device.

9. The method of claim 1 , wherein updating the time-based sequence of operations corresponding to the first robotic device comprises:

determining an extent of the deviation of the first robotic device based on the sensor data indicative of the actual positions of the first robotic device at the one or more corresponding timesteps of the global timeline; and

adjusting timesteps of corresponding planned positions within the time-based sequence of operations corresponding to the first robotic device occurring after the determined deviation by an amount of time corresponding to the extent of the deviation.

10. The method of claim 1 , wherein modifying the one or more of the time-based sequences of operations to prevent the potential collision comprises:

modifying one or more positions corresponding to one or more timesteps of the global timeline within the at least one of the time-based sequences of operations.

11. The method of claim 1 , wherein modifying the one or more of the time-based sequences of operations to prevent the potential collision comprises:

modifying positions corresponding to one or more timesteps of the global timeline within the at least one of the time-based sequences of operations to minimize an amount of time required to carry out the time-based sequences of operations.

12. The method of claim 1 , wherein modifying the one or more of the time-based sequences of operations to prevent the potential collision comprises:

modifying positions corresponding to one or more timesteps of the global timeline within the at least one of the time-based sequences of operations to minimize an amount of power used by the plurality of robotic devices.

13. The method of claim 1 , wherein modifying the one or more of the time-based sequences of operations to prevent the potential collision comprises:

causing at least one robotic device corresponding to the at least one of the time-based sequences of operations to stop at a first position for a subsection of the global timeline; and

increasing one or more timesteps of one or more corresponding planned positions of the at least one robotic device occurring after the first position by an amount of time corresponding to a length of the subsection of the global timeline.

14. A system comprising:

a plurality of robotic devices; and

a control system configured to:

determine time-based sequences of operations for each of the plurality of robotic devices, wherein each of the time-based sequences of operations indicates planned positions of a corresponding robotic device at corresponding timesteps of a global timeline;

provide instructions to cause parallel execution of the time-based sequences of operations by the plurality of robotic devices;

determine a deviation of a first robotic device of the plurality of robotic devices from the time-based sequence of operations corresponding to the first robotic device based on sensor data indicative of actual positions of the first robotic device at one or more corresponding timesteps of the global timeline during parallel execution of the time-based sequences of operations;

in response to determining the deviation of the first robotic device, update the time-based sequence of operations for the first robotic device;

determine, based on the updated time-based sequence of operations for the first robotic device, a potential collision involving the first robotic device that would result from continued parallel execution of the time-based sequences of operations; and

modify one or more of the time-based sequences of operations to prevent the potential collision.

15. The system of claim 14 , wherein the control system is further configured to:

provide instructions to cause parallel execution of the modified one or more time-based sequences of operations to prevent the potential collision.

16. The system of claim 14 , wherein each of the plurality of robotic devices is synchronized to a common clock defining timesteps of the global timeline.

17. The system of claim 14 , wherein the control system is configured to determine the time-based sequences of operations for each of the plurality of robotic devices by:

determining one or more synchronized operations between at least two robotic devices of the plurality of robotic devices, wherein the one or more synchronized operations indicate to control the at least two robotic devices to simultaneously operate on a first component within a workcell; and

determining, for each of the plurality of robotic devices, positions of the corresponding robotic device at corresponding timesteps of the global timeline to control the at least two robotic devices to simultaneously operate on the first component within the workcell.

18. The system of claim 14 , wherein the control system is configured to update the time-based sequence of operations corresponding to the first robotic device by:

determining an extent of the deviation of the first robotic device based on the sensor data indicative of the actual positions of the first robotic device at the one or more corresponding timesteps of the global timeline; and

adjusting timesteps of corresponding planned positions within the time-based sequence of operations corresponding to the first robotic device occurring after the determined deviation by an amount of time corresponding to the extent of the deviation.

19. A non-transitory computer readable medium having stored thereon instructions that, when executed by a computing device, cause the computing device to perform operations comprising:

determining time-based sequences of operations for each of a plurality of robotic devices, wherein each of the time-based sequences of operations indicates planned positions of a corresponding robotic device at corresponding timesteps of a global timeline;

providing instructions to cause parallel execution of the time-based sequences of operations by the plurality of robotic devices;

determining a deviation of a first robotic device of the plurality of robotic devices from the time-based sequence of operations corresponding to the first robotic device based on sensor data indicative of actual positions of the first robotic device at one or more corresponding timesteps of the global timeline during parallel execution of the time-based sequences of operations;

in response to determining the deviation of the first robotic device, updating the time-based sequence of operations for the first robotic device;

determining based on the updated time-based sequence of operations for the first robotic device, a potential collision involving the first robotic device that would result from continued parallel execution of the time-based sequences of operations; and

modifying one or more of the time-based sequences of operations to prevent the potential collision.

20. The non-transitory computer readable medium of claim 19 , wherein the operations further comprise:

providing instructions to cause parallel execution of the modified one or more time-based sequences of operations to prevent the potential collision.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2021
From: X DEVELOPMENT LLC
To: INTRINSIC INNOVATION LLC
Reel/Frame 057650/0218 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2017
From: BOT & DOLLY, LLC
To: GOOGLE LLC
Reel/Frame 044132/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2017
From: GOOGLE LLC
To: X DEVELOPMENT LLC
Reel/Frame 044132/0110 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2016
From: LINNELL, JEFFREY; BYRNE, KENDRA
To: BOT & DOLLY, LLC
Reel/Frame 040676/0448 →
Continuity (3)
Continuation 14333311 · Jul 16, 2014
Provisional Application 62001521 · May 21, 2014
Related Publication 20170097631A1 · Apr 6, 2017