IP Library Granted Patent US 11,787,048
Granted Patent B2
US 11,787,048 · App. 17/004,968 · Granted Oct 17, 2023

Robot planning from process definition graph

Inventors: Ryan Butterfoss (San Francisco, CA); Keegan Go (Mountain View, CA); Stoyan Gaydarov (Burlingame, CA)
Assignee: Intrinsic Innovation LLC
B25J9/1661B25J9/1656B25J9/0084B25J9/1653B25J9/1664B25J9/1666G05B19/41865G05B2219/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,787,048
App. No.
17/004,968
Granted
Oct 17, 2023
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for performing robot planning using a process definition graph. One of the methods includes receiving an initial underconstrained process definition graph for one or more robots, wherein the process definition graph is a directed acyclic graph having constraint nodes and action nodes. A plurality of transformers are repeatedly applied to the initial process definition graph, wherein each application of a transformer generates a respective modified process definition graph according to the constraint nodes of the process definition graph, wherein applying the plurality of transformers generates a schedule that specifies which of the one or more robots are to perform which of one or more actions represented by actions nodes according to constraints imposed by the constraint nodes in the process definition graph.

Claims (36)

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

receiving an initial underconstrained process definition graph for one or more robots, wherein the initial underconstrained process definition graph is a directed acyclic graph having constraint nodes and action nodes;

repeatedly applying a plurality of different sequences of transformers in parallel to the initial underconstrained process definition graph, wherein each application of a transformer generates a respective modified process definition graph by adding new nodes or deleting existing nodes;

generating, as a result of repeatedly applying the plurality of different sequences of transformers in parallel, a schedule that specifies which of the one or more robots are to perform which of one or more actions represented by actions nodes according to constraints imposed by the constraint nodes in at least one of the modified process definition graphs; and

controlling the one or more robots to execute the schedule.

2. The method of claim 1 , wherein the initial underconstrained process definition graph does not map actions to be performed to robots to perform the actions.

3. The method of claim 1 , wherein the initial underconstrained process definition graph does not assign a time or ordering to a plurality of action nodes in the graph.

4. The method of claim 1 , wherein the initial underconstrained process definition graph has partially defined or undefined properties for one or more action nodes in the graph.

5. The method of claim 4 , wherein the schedule comprises a fully constrained process definition graph.

6. The method of claim 5 , wherein the schedule assigns one task to each of multiple robots, and, for each robot, a sequence in which one or more tasks are to be executed.

7. The method of claim 5 , wherein the fully constrained process definition graph can be executed by a group of multiple robots in a workcell.

8. The method of claim 5 , wherein all partially defined or undefined properties in the initial underconstrained process definition graph are fully defined by the schedule.

9. The method of claim 1 , wherein a particular transformer adds one or more alternative candidate action nodes previously not included in the initial underconstrained process definition graph to the modified underconstrained process definition graph.

10. The method of claim 1 , wherein each constraint node imposes an existence constraint, a time constraint, or both, on children nodes of the constraint node.

11. The method of claim 1 , wherein generating the schedule that specifies which of the one or more robots are to perform which of one or more actions represented by actions nodes comprises:

generating multiple candidate schedules that are each generated as a result of applying a different sequence of transformers to the initial underconstrained process definition graph; and

evaluating the multiple candidate schedules in parallel and according to one or more goal criteria to select the schedule that specifies which of the one or more robots are to perform which of one or more actions represented by actions nodes.

12. The method of claim 11 , wherein the one or more goal criteria comprise: a time to complete the one or more required tasks, a measure of efficiency, or a measure of safety.

13. 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 an initial underconstrained process definition graph for one or more robots, wherein the initial underconstrained process definition graph is a directed acyclic graph having constraint nodes and action nodes;

repeatedly applying a plurality of different sequences of transformers in parallel to the initial underconstrained process definition graph, wherein each application of a transformer generates a respective modified process definition graph by adding new nodes or deleting existing nodes;

generating, as a result of repeatedly applying the plurality of different sequences of transformers in parallel, a schedule that specifies which of the one or more robots are to perform which of one or more actions represented by actions nodes according to constraints imposed by the constraint nodes in at least one of the modified process definition graphs; and

controlling the one or more robots to execute the schedule.

14. The system of claim 13 , wherein the initial underconstrained process definition graph does not map actions to be performed to robots to perform the actions.

15. The system of claim 13 , wherein the initial underconstrained process definition graph does not assign a time or ordering to a plurality of action nodes in the graph.

16. The system of claim 13 , wherein the initial underconstrained process definition graph has partially defined or undefined properties for one or more action nodes in the graph.

17. The system of claim 13 , wherein each constraint node imposes an existence constraint, a time constraint, or both, on children nodes of the constraint node.

18. One or more non-transitory computer storage media encoded with computer program instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

receiving an initial underconstrained process definition graph for one or more robots, wherein the initial underconstrained process definition graph is a directed acyclic graph having constraint nodes and action nodes;

repeatedly applying a plurality of different sequences of transformers in parallel to the initial underconstrained process definition graph, wherein each application of a transformer generates a respective modified process definition graph by adding new nodes or deleting existing nodes;

generating, as a result of repeatedly applying the plurality of different sequences of transformers in parallel, a schedule that specifies which of the one or more robots are to perform which of one or more actions represented by actions nodes according to constraints imposed by the constraint nodes in at least one of the modified process definition graphs; and

controlling the one or more robots to execute the schedule.

19. The one or more non-transitory computer storage media of claim 18 , wherein the initial underconstrained process definition graph does not map actions to be performed to robots to perform the actions.

20. The one or more non-transitory computer storage media of claim 18 , wherein the initial underconstrained process definition graph does not assign a time or ordering to a plurality of action nodes in the graph.

21. The one or more non-transitory computer storage media of claim 18 , wherein the initial underconstrained process definition graph has partially defined or undefined properties for one or more action nodes in the graph.

22. The one or more non-transitory computer storage media of claim 18 , wherein each constraint node imposes an existence constraint, a time constraint, or both, on children nodes of the constraint node.

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 Dec 7, 2020
From: BUTTERFOSS, RYAN; GO, KEEGAN; GAYDAROV, STOYAN
To: X DEVELOPMENT LLC
Reel/Frame 054564/0755 →
Cited By (1)
US 12,605,830