IP Library Granted Patent US 11,745,345
Granted Patent B2
US 11,745,345 · App. 17/005,060 · Granted Sep 5, 2023

Planning by work volumes to avoid conflicts

Inventors: Jean-Francois Dupuis (San Francisco, CA); Keegan Go (Mountain View, CA); Stoyan Gaydarov (Burlingame, CA)
Assignee: Intrinsic Innovation LLC
B25J9/1666B25J9/0084B25J9/1661B25J9/1682G05B2219/39109G05B2219/40417
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,745,345
App. No.
17/005,060
Granted
Sep 5, 2023
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for planning by work volumes to avoid conflicts. One of the methods includes receiving a process definition graph for a robot that includes action nodes, wherein the action nodes include (1) transition nodes that represent a motion to be taken by the robot from a respective start location to an end location and (2) task nodes that represent a particular task to be performed by the robot at a particular task location. An initial modified process definition graph that ignores one or more conflicts between respective transition nodes as well as one or more conflicts between respective transition nodes and task nodes is generated from the process definition graph. A refined process definition graph that ignores conflicts between transition nodes and recognizes conflicts between transition nodes and task nodes is generated from the initial modified process definition graph.

Claims (39)

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

receiving, by the one or more computers, a process definition graph for a robot, the process definition graph having a plurality of action nodes, wherein the action nodes include (1) transition nodes that represent a motion to be taken by the robot from a respective start location to an end location and (2) task nodes that represent a particular task to be performed by the robot at a particular task location, and wherein the process definition graph is associated with constraints that disallow conflicts between work volumes of robots performing action nodes in the process definition graph;

performing, by the one or more computers, a sequence of modifications to generate, from the process definition graph, a plurality of different final process definition graphs representing candidate plans for controlling multiple robots, including:

generating, from the process definition graph, an initial modified process definition graph that assigns one or more action nodes to each robot of the multiple robots, including relaxing one or more of the constraints to allow conflicts between pairs of transition nodes and to allow conflicts between transition nodes and task nodes, and

after generating the initial modified process definition graph, performing a conflict resolution process that reintroduces a constraint that disallows conflicts between transition nodes and task nodes to generate, from the initial modified process definition graph, a refined process definition graph, comprising generating updated paths for one or more transition nodes that avoid volumes occupied by robots performing tasks represented by task nodes in the initial modified process definition graph.

2. The method of claim 1 , wherein generating the updated paths for the one or more transition nodes comprises generating a path that keeps the robot outside a volume occupied by a task.

3. The method of claim 1 , wherein the initial modified process definition graph specifies paths for respective transition nodes that conflict with volumes occupied by tasks represented by respective task nodes.

4. The method of claim 3 , wherein the refined process definition graph specifies paths for transition nodes that are conflicting.

5. The method of claim 3 , wherein the refined process definition graph includes no transition nodes having paths that conflict with any volume occupied by any task represented by a task node in the graph.

6. The method of claim 1 , wherein the process definition graph has respective action nodes for multiple robots, and wherein generating the refined process definition graph comprises generating alternative plans for the multiple robots.

7. The method of claim 6 , wherein generating alternative plans for the multiple robots comprises:

generating, for a first robot of the multiple robots, a first path that avoids a work volume occupied by a second robot of the multiple robots; and

generating, for the second robot of the multiple robots, a second path that avoids a second work volume occupied by the first robot of the multiple robots.

8. The method of claim 1 , further comprising generating, from the refined process definition graph, a schedule for the robot that specifies executing motion actions that avoid volumes occupied by tasks represented by task nodes in the graph.

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, by the one or more computers, a process definition graph for a robot, the process definition graph having a plurality of action nodes, wherein the action nodes include (1) transition nodes that represent a motion to be taken by the robot from a respective start location to an end location and (2) task nodes that represent a particular task to be performed by the robot at a particular task location, and wherein the process definition graph is associated with constraints that disallow conflicts between work volumes of robots performing action nodes in the process definition graph;

performing, by the one or more computers, a sequence of modifications to generate, from the process definition graph, a plurality of different final process definition graphs representing candidate plans for controlling multiple robots, including:

generating, from the process definition graph, an initial modified process definition graph that assigns one or more action nodes to each robot of the multiple robots, including relaxing one or more of the constraints to allow conflicts between pairs of transition nodes and to allow conflicts between transition nodes and task nodes, and

after generating the initial modified process definition graph, performing a conflict resolution process that reintroduces a constraint that disallows conflicts between transition nodes and task nodes to generate, from the initial modified process definition graph, a refined process definition graph, comprising generating updated paths for one or more transition nodes that avoid volumes occupied by robots performing tasks represented by task nodes in the initial modified process definition graph.

10. The system of claim 9 , wherein the initial modified process definition graph specifies paths for respective transition nodes that conflict with volumes occupied by tasks represented by respective task nodes.

11. The system of claim 10 , wherein the refined process definition graph includes no transition nodes having paths that conflict with any volume occupied by any task represented by a task node in the graph.

12. The system of claim 9 , wherein the process definition graph has respective action nodes for multiple robots, and wherein generating the refined process definition graph comprises generating alternative plans for the multiple robots.

13. The system of claim 12 , wherein generating alternative plans for the multiple robots comprises:

generating, for a first robot of the multiple robots, a first path that avoids a work volume occupied by a second robot of the multiple robots; and

generating, for the second robot of the multiple robots, a second path that avoids a second work volume occupied by the first robot of the multiple robots.

14. The system of claim 9 , wherein the operations further comprise generating, from the refined process definition graph, a schedule for the robot that specifies executing motion actions that avoid volumes occupied by tasks represented by task nodes in the graph.

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

receiving, by the one or more computers, a process definition graph for a robot, the process definition graph having a plurality of action nodes, wherein the action nodes include (1) transition nodes that represent a motion to be taken by the robot from a respective start location to an end location and (2) task nodes that represent a particular task to be performed by the robot at a particular task location, and wherein the process definition graph is associated with constraints that disallow conflicts between work volumes of robots performing action nodes in the process definition graph;

performing, by the one or more computers, a sequence of modifications to generate, from the process definition graph, a plurality of different final process definition graphs representing candidate plans for controlling multiple robots, including:

generating, from the process definition graph, an initial modified process definition graph that assigns one or more action nodes to each robot of the multiple robots, including relaxing one or more of the constraints to allow conflicts between pairs of transition nodes and to allow conflicts between transition nodes and task nodes, and

after generating the initial modified process definition graph, performing a conflict resolution process that reintroduces a constraint that disallows conflicts between transition nodes and task nodes to generate, from the initial modified process definition graph, a refined process definition graph, comprising generating updated paths for one or more transition nodes that avoid volumes occupied by robots performing tasks represented by task nodes in the initial modified process definition graph.

16. The non-transitory computer storage media of claim 15 , wherein the initial modified process definition graph specifies paths for respective transition nodes that conflict with volumes occupied by tasks represented by respective task nodes.

17. The non-transitory computer storage media of claim 16 , wherein the refined process definition graph includes no transition nodes having paths that conflict with any volume occupied by any task represented by a task node in the graph.

18. The non-transitory computer storage media of claim 15 , wherein the process definition graph has respective action nodes for multiple robots, and wherein generating the refined process definition graph comprises generating alternative plans for the multiple robots.

19. The non-transitory computer storage media of claim 18 , wherein generating alternative plans for the multiple robots comprises:

generating, for a first robot of the multiple robots, a first path that avoids a work volume occupied by a second robot of the multiple robots; and

generating, for the second robot of the multiple robots, a second path that avoids a second work volume occupied by the first robot of the multiple robots.

20. The non-transitory computer storage media of claim 15 , wherein the operations further comprise generating, from the refined process definition graph, a schedule for the robot that specifies executing motion actions that avoid volumes occupied by tasks represented by task nodes in the graph.

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 2, 2020
From: DUPUIS, JEAN-FRANCOIS; GO, KEEGAN; GAYDAROV, STOYAN
To: X DEVELOPMENT LLC
Reel/Frame 054516/0517 →
Continuity (2)
Provisional Application 62894615 · Aug 30, 2019
Related Publication 20210060779A1 · Mar 4, 2021