IP Library Granted Patent US 11,577,392
Granted Patent B2
US 11,577,392 · App. 17/006,571 · Granted Feb 14, 2023

Splitting transformers for robotics planning

Inventors: Jean-Francois Dupuis (San Francisco, CA); Keegan Go (Mountain View, CA); Stoyan Gaydarov (Burlingame, CA)
Assignee: Intrinsic Innovation LLC
B25J9/1664B25J9/1661B25J9/1666B25J9/1669B25J9/1682G05B2219/32283G05B2219/39083G05B2219/39135G05B2219/40446
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 11,577,392
App. No.
17/006,571
Granted
Feb 14, 2023
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for optimizing a plan for one or more robots using a process definition graph. One of the methods includes receiving a process definition graph for a robot, the process definition graph having a plurality of action nodes. One or more of the action nodes are motion nodes that represent a motion to be taken by the robot from a respective start location to an end location. It is determined that a motion node satisfies one or more splitting criteria, and in response to determining that the motion node satisfies the one or more splitting criteria, the process definition graph is modified. Modifying the process definition graph includes splitting the motion node into two or more separate motion nodes whose respective paths can be scheduled independently.

Claims (53)

1. A method performed by one or more computers, the method comprising:

receiving a process definition graph for a robot, the process definition graph having a plurality of action nodes, wherein one or more of the action nodes are motion nodes that represent a motion to be taken by the robot from a respective start location to an end location;

determining that a motion node satisfies one or more splitting criteria including determining that a first path defined by the motion node intersects with a second path defined by a second motion node in the process definition graph at an entry point and an exit point of a conflict region; and

in response to determining that the motion node satisfies the one or more splitting criteria, modifying the process definition graph including splitting the motion node into two or more separate motion nodes whose respective paths can be scheduled independently, wherein splitting the motion node into two or more separate motion nodes comprises:

generating a first replacement node representing a path from the start location to the entry point of the conflict region;

generating a second replacement node representing a path from the entry point of the conflict region to the end location;

generating a third replacement node representing a path from a second start location of the second motion node to the exit point of the conflict region; and

generating a fourth replacement node representing a path from the exit point of the conflict region to a second end location of the second motion node.

2. The method of claim 1 , wherein determining that the motion node satisfies one or more splitting criteria comprises determining that the motion node defines an underconstrained path.

3. The method of claim 1 , further comprising generating a schedule for the robot that specifies executing actions for the two or more separate motion nodes with one or more intervening rests.

4. The method of claim 1 , further comprising:

scheduling the first replacement node and the third replacement node to start simultaneously; and

scheduling the second replacement node to start once the third replacement node reaches the exit point of the conflict region.

5. The method of claim 4 , further comprising scheduling an intervening rest between the first replacement node and the second replacement node, wherein the intervening rest is optimized such that the second replacement node starts once the third replacement node reaches the exit point of the conflict region.

6. The method of claim 1 , further comprising scheduling the fourth replacement node to start once the third replacement node reaches the exit point of the conflict region.

7. The method of claim 6 , wherein a constraint node is used to schedule the fourth replacement node to start once the third replacement node reaches the exit point of the conflict region.

8. The method of claim 1 , further comprising:

scheduling the third replacement node to start once the second replacement node reaches the exit point of the conflict region; and

scheduling the fourth replacement node to start once the third replacement node is complete.

9. A system comprising: one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

receiving a process definition graph for a robot, the process definition graph having a plurality of action nodes, wherein one or more of the action nodes are motion nodes that represent a motion to be taken by the robot from a respective start location to an end location;

determining that a motion node satisfies one or more splitting criteria including determining that a first path defined by the motion node intersects with a second path defined by a second motion node in the process definition graph at an entry point and an exit point of a conflict region; and

in response to determining that the motion node satisfies the one or more splitting criteria, modifying the process definition graph including splitting the motion node into two or more separate motion nodes whose respective paths can be scheduled independently, wherein splitting the motion node into two or more separate motion nodes comprises:

generating a first replacement node representing a path from the start location to the entry point of the conflict region;

generating a second replacement node representing a path from the entry point of the conflict region to the end location;

generating a third replacement node representing a path from a second start location of the second motion node to the exit point of the conflict region; and

generating a fourth replacement node representing a path from the exit point of the conflict region to a second end location of the second motion node.

10. The system of claim 9 , wherein determining that the motion node satisfies one or more splitting criteria comprises determining that the motion node defines an underconstrained path.

11. The system of claim 9 , wherein the operations further comprise generating a schedule for the robot that specifies executing actions for the two or more separate motion nodes with one or more intervening rests.

12. The system of claim 9 , wherein the operations further comprise:

scheduling the first replacement node and the third replacement node to start simultaneously; and

scheduling the second replacement node to start once the third replacement node reaches the exit point of the conflict region.

13. The system of claim 12 , wherein the operations further comprise scheduling an intervening rest between the first replacement node and the second replacement node, wherein the intervening rest is optimized such that the second replacement node starts once the third replacement node reaches the exit point of the conflict region.

14. The system of claim 9 , wherein the operations further comprise:

scheduling the third replacement node to start once the second replacement node reaches the exit point of the conflict region; and

scheduling the fourth replacement node to start once the third replacement node is complete.

15. A non-transitory computer-readable storage medium encoded with a computer program, the program comprising instructions that are operable, when executed by data processing apparatus, to cause the data processing apparatus to perform operations comprising:

receiving a process definition graph for a robot, the process definition graph having a plurality of action nodes, wherein one or more of the action nodes are motion nodes that represent a motion to be taken by the robot from a respective start location to an end location;

determining that a motion node satisfies one or more splitting criteria including determining that a first path defined by the motion node intersects with a second path defined by a second motion node in the process definition graph at an entry point and an exit point of a conflict region; and

in response to determining that the motion node satisfies the one or more splitting criteria, modifying the process definition graph including splitting the motion node into two or more separate motion nodes whose respective paths can be scheduled independently, wherein splitting the motion node into two or more separate motion nodes comprises:

generating a first replacement node representing a path from the start location to the entry point of the conflict region;

generating a second replacement node representing a path from the entry point of the conflict region to the end location;

generating a third replacement node representing a path from a second start location of the second motion node to the exit point of the conflict region; and

generating a fourth replacement node representing a path from the exit point of the conflict region to a second end location of the second motion node.

16. The non-transitory computer-readable storage medium of claim 15 , wherein determining that the motion node satisfies one or more splitting criteria comprises determining that the motion node defines an underconstrained path.

17. The non-transitory computer-readable storage medium of claim 15 , wherein the operations further comprise generating a schedule for the robot that specifies executing actions for the two or more separate motion nodes with one or more intervening rests.

18. The non-transitory computer-readable storage medium of claim 15 , wherein the operations further comprise:

scheduling the first replacement node and the third replacement node to start simultaneously; and

scheduling the second replacement node to start once the third replacement node reaches the exit point of the conflict region.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the operations further comprise scheduling an intervening rest between the first replacement node and the second replacement node, wherein the intervening rest is optimized such that the second replacement node starts once the third replacement node reaches the exit point of the conflict region.

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

scheduling the third replacement node to start once the second replacement node reaches the exit point of the conflict region; and

scheduling the fourth replacement node to start once the third replacement node is complete.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2021
From: X DEVELOPMENT LLC
To: INTRINSIC INNOVATION LLC
Reel/Frame 057650/0405 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2020
From: DUPUIS, JEAN-FRANCOIS; GO, KEEGAN; GAYDAROV, STOYAN
To: X DEVELOPMENT LLC
Reel/Frame 053640/0648 →