IP Library Granted Patent US 9,555,545
Granted Patent B2
US 9,555,545 · App. 14/333,311 · Granted Jan 31, 2017

Systems and methods for time-based parallel robotic operation

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,555,545
App. No.
14/333,311
Granted
Jan 31, 2017
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 (41)

1. A computer-implemented method comprising:

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

determining, by a computing device, time-based sequences of operations for each of the plurality of corresponding robotic devices, wherein each of the time-based sequences of operations indicates positions of the corresponding robotic device within the workcell at corresponding timesteps of a global timeline, and wherein the positions of the corresponding robotic device within each of the time-based sequences of operations comprise the target positions from the ordered sequences of operations for the corresponding robotic device;

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 to cause parallel execution of the modified time-based sequences of operations at timesteps of the global timeline by the robotic devices within the workcell.

2. The method of claim 1 , wherein a particular time interval separates consecutive timesteps of the global timeline.

3. The method of claim 1 , wherein the target positions within an ordered sequence of operations comprise positions of an end effector of the corresponding robotic device, wherein the positions of the end effector include six degrees of freedom.

4. The method of claim 1 , wherein determining the time-based sequences of operations for each of the plurality of corresponding robotic devices comprises determining, for each of the time-based sequences of operations, positions between consecutive target positions of the corresponding robotic device that minimize an amount of time between timesteps corresponding to the consecutive target positions of the corresponding robotic device.

5. The method of claim 1 , wherein modifying the time-based sequences of operations in order to prevent the one or more potential collisions comprises modifying one or more corresponding timesteps of one or more positions within one or more of the time-based sequences of operations.

6. The method of claim 5 , further comprising:

inserting operations to cause a certain one of the robotic devices to hold position at a particular position for a subsection of the global timeline; and

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

7. The method of claim 5 , wherein modifying the one or more corresponding timesteps of the one or more positions within the one or more of the time-based sequences of operations comprises determining, for each of the robotic devices, a maximum velocity curve at timesteps of the global timeline that does not result in a collision involving two or more of the robotic devices.

8. The method of claim 1 , wherein modifying the time-based sequences of operations in order to prevent the one or more potential collisions comprises modifying one or more positions between consecutive target positions within one or more of the time-based sequences of operations.

9. The method of claim 1 , wherein the received ordered sequences of operations comprise one or more sync points, wherein a sync point corresponds to an operation within each of the ordered sequences of operations and indicates to cause each of the robotic devices to hold position at an operation corresponding to the sync point until each of the robotic devices reaches an operation corresponding to the sync point; and wherein the method further comprises:

determining one or more anchor points, wherein the one or more anchor points comprise a subset of the one or more sync points; and

determining the time-based sequences of operations so as to cause one or more of the robotic devices to hold position at an operation corresponding to an anchor point until one or more other robotic devices reach an operation corresponding to the anchor point.

10. The method of claim 9 , wherein the one or more anchor points correspond to operations for two or more of the robotic devices to operate on a single component within the workcell.

11. The method of claim 1 , wherein modifying the time-based sequences of operations in order to prevent the one or more potential collisions comprises modifying positions for one or more of the time-based sequences of operations between consecutive target positions to minimize an amount of time required to carry out the ordered sequences of operations.

12. The method of claim 1 , wherein modifying the time-based sequences of operations in order to prevent the one or more potential collisions comprises modifying positions for one or more of the time-based sequences of operations to minimize an amount of power used by the robotic devices.

13. A system comprising:

a non-transitory computer-readable medium; and

program instructions stored on the non-transitory computer-readable medium and executable by at least one processor to:

receive ordered sequences of operations for a plurality of corresponding robotic devices, wherein an ordered sequence of operations comprises an ordered sequence of target positions within a workcell;

determine time-based sequences of operations for each of the plurality of corresponding robotic devices, wherein each of the time-based sequences of operations indicates positions of the corresponding robotic device within the workcell at corresponding timesteps of a global timeline, and wherein the positions of the corresponding robotic device within each of the time-based sequences of operations comprise the target positions from the ordered sequences of operations for the corresponding robotic device;

determine 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;

modify the time-based sequences of operations in order to prevent the one or more potential collisions; and

provide instructions to cause parallel execution of the modified time-based sequences of operations at timesteps of the global timeline by the robotic devices within the workcell.

14. The system of claim 13 , wherein a particular time interval separates consecutive timesteps of the global timeline.

15. The system of claim 14 , wherein the particular time interval is between 10 milliseconds and 20 milliseconds.

16. The system of claim 13 , wherein the program instructions are executable by the at least one processor to determine the time-based sequences of operations for each of the plurality of corresponding robotic devices by determining, for each of the time-based sequences of operations, positions between consecutive target positions of the corresponding robotic device that minimize an amount of time between timesteps corresponding to the consecutive target positions of the corresponding robotic device.

17. The system of claim 13 , wherein the program instructions are executable by the at least one processor to determine the time-based sequences of operations for each of the plurality of corresponding robotic devices by determining, for each of the time-based sequences of operations, positions that minimize an amount of power used by the robotic devices.

18. The system of claim 13 , wherein the program instructions are executable by the at least one processor to modify the time-based sequences of operations in order to prevent the one or more potential collisions by modifying one or more corresponding timesteps of one or more positions within one or more of the time-based sequences of operations.

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

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

determining time-based sequences of operations for each of the plurality of corresponding robotic devices, wherein each of the time-based sequences of operations indicates positions of the corresponding robotic device within the workcell at corresponding timesteps of a global timeline, and wherein the positions of the corresponding robotic device within each of the time-based sequences of operations comprise the target positions from the ordered sequences of operations for the corresponding robotic device;

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 to cause parallel execution of the modified time-based sequences of operations at timesteps of the global timeline by the robotic devices within the workcell.

20. The non-transitory computer-readable medium of claim 19 , wherein modifying the time-based sequences of operations in order to prevent the one or more potential collisions comprises modifying one or more positions between consecutive target positions within one or more of the time-based sequences of operations.

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 Jul 16, 2014
From: LINNELL, JEFFREY; BYRNE, KENDRA
To: BOT & DOLLY, LLC
Reel/Frame 033327/0863 →