IP Library Granted Patent US 11,787,049
Granted Patent B2
US 11,787,049 · App. 17/566,601 · Granted Oct 17, 2023

Systems, devices, and methods for training multi-purpose robots

Inventors: Suzanne Gildert (Vancouver, CA); Olivia Norton (North Vancouver, CA); Geordie Rose (Vancouver, CA)
Assignee: Sanctuary Cognitive Systems Corporation
B25J9/1661
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,049
App. No.
17/566,601
Granted
Oct 17, 2023
Kind
B2
Abstract

Systems, devices, and methods for training and operating (semi-)autonomous robots to complete multiple different work objectives are described. A robot control system stores a library of reusable work primitives each corresponding to a respective basic sub-task or sub-action that the robot is operative to autonomously perform. A work objective is analyzed to determine a sequence (i.e., a combination and/or permutation) of reusable work primitives that, when executed by the robot, will complete the work objective. The robot executes the sequence of reusable work primitives to complete the work objective. The reusable work primitives may include one or more reusable grasp primitives that enable(s) a robot's end effector to grasp objects. Simulated instances of real physical robots may be trained in simulated environments to develop control instructions that, once uploaded to the real physical robots, enable such real physical robots to autonomously perform reusable work primitives.

Claims (39)

1. A computer-implemented method of initializing a robot to complete a multitude of work objectives, the method comprising:

defining a library of reusable work primitives each performable by the robot, wherein respective combinations and permutations of reusable work primitives from the library of reusable work primitives are initiated and executed by the robot in order to complete respective work objectives; and

training the robot to autonomously perform each reusable work primitive in the library of reusable work primitives, wherein training the robot comprises:

receiving teleoperation instructions that cause the robot to perform a first reusable work primitive in the library of reusable work primitives, wherein receiving the teleoperation instructions comprises receiving low-level teleoperation instructions that cause the robot to emulate real physical actions performed by a real teleoperation pilot;

executing the teleoperation instructions to cause the robot to perform the first reusable work primitive in the library of reusable work primitives; and

generating processor-executable instructions that cause the robot to replay the teleoperation instructions that cause the robot to perform the first reusable work primitive in the library of reusable work primitives.

2. The method of claim 1 wherein training the robot to autonomously perform each reusable work primitive in the library of reusable work primitives includes training the robot to autonomously perform each reusable work primitive in the library of reusable work primitives in a simulated environment.

3. The method of claim 2 wherein training the robot to autonomously perform each reusable work primitive in the library of reusable work primitives in a simulated environment includes:

generating a first simulated instance of the robot in the simulated environment;

repeatedly executing processor-executable instructions to cause the first simulated instance of the robot to perform a first reusable work primitive in the library of reusable work primitives; and

refining the processor-executable instructions that cause the first simulated instance of the robot to perform the first reusable work primitive based on at least one result of repeatedly executing the processor-executable instructions to cause the first simulated instance of the robot to perform the first reusable work primitive.

4. The method of claim 3 wherein training the robot to autonomously perform each reusable work primitive in the library of reusable work primitives in a simulated environment further includes:

generating at least one additional simulated instance of the robot in the simulated environment;

repeatedly executing processor-executable instructions to cause the at least one additional simulated instance of the robot to perform the first reusable work primitive in the library of reusable work primitives; and

refining the processor-executable instructions that cause both the first simulated instance of the robot and the at least one additional simulated instance of the robot to perform the first reusable work primitive based on at least one result of repeatedly executing the processor-executable instructions to cause the first simulated instance of the robot and the at least one additional simulated instance of the robot to perform the first reusable work primitive.

5. The method of claim 3 wherein training the robot to autonomously perform each reusable work primitive in the library of reusable work primitives in a simulated environment further includes:

repeatedly executing processor-executable instructions to cause the first simulated instance of the robot to perform at least one additional reusable work primitive in the library of reusable work primitives; and

refining the processor-executable instructions that cause the first simulated instance of the robot to perform the at least one additional reusable work primitive based on at least one result of repeatedly executing the processor-executable instructions to cause the first simulated instance of the robot to perform the at least one additional reusable work primitive.

6. The method of claim 1 wherein receiving teleoperation instructions that cause the robot to perform a first reusable work primitive in the library of reusable work primitives includes receiving high-level teleoperation instructions that cause the robot to perform actions selected from a graphical user interface.

7. The method of claim 1 wherein training the robot to autonomously perform each reusable work primitive in the library of reusable work primitives further includes generating a simulated instance of the robot in a simulated environment, and wherein:

receiving teleoperation instructions that cause the robot to perform a first reusable work primitive in the library of reusable work primitives includes receiving teleoperation instructions that cause the simulated instance of the robot to perform the first reusable work primitive in the simulated environment;

executing the teleoperation instructions to cause the robot to perform the first reusable work primitive in the library of reusable work primitives includes executing the teleoperation instructions to cause the simulated instance of the robot to perform the first reusable work primitive in the simulated environment; and

generating processor-executable instructions that cause the robot to replay the teleoperation instructions that cause the robot to perform the first reusable work primitive in the library of reusable work primitives includes generating processor-executable instructions that cause the simulated instance of the robot to replay the teleoperation instructions that cause the simulated instance of the robot to perform the first reusable work primitive in the simulated environment.

8. The method of claim 7 wherein receiving teleoperation instructions that cause the simulated instance of the robot to perform the first reusable work primitive in the simulated environment includes receiving low-level teleoperation instructions that cause the simulated instance of the robot to emulate real physical actions performed by a real teleoperation pilot.

9. The method of claim 7 wherein receiving teleoperation instructions that cause the simulated instance of the robot to perform the first reusable work primitive in the simulated environment includes receiving high-level teleoperation instructions that cause the simulated instance of the robot to perform actions selected from a graphical user interface.

10. The method of claim 1 wherein:

receiving teleoperation instructions that cause the robot to perform a first reusable work primitive in the library of reusable work primitives includes receiving a first set of teleoperation instructions that cause the robot to perform a first instance of the first reusable work primitive in the library of reusable work primitives and receiving a second set of teleoperation instructions that cause the robot to perform a second instance of the first reusable work primitive in the library of reusable work primitives; and

executing the teleoperation instructions to cause the robot to perform the first reusable work primitive in the library of reusable work primitives includes executing the first set of teleoperation instructions to cause the robot to perform the first instance of the first reusable work primitive in the library of reusable work primitives and executing the second set of teleoperation instructions to cause the robot to perform the second instance of the first reusable work primitive in the library of reusable work primitives.

11. The method of claim 10 wherein generating processor-executable instructions that cause the robot to replay the teleoperation instructions that cause the robot to perform the first reusable work primitive in the library of reusable work primitives includes:

evaluating respective results of executing the first set of teleoperation instructions to cause the robot to perform the first instance of the first reusable work primitive in the library of reusable work primitives and executing the second set of teleoperation instructions to cause the robot to perform the second instance of the first reusable work primitive in the library of reusable work primitives to determine which of the first set of teleoperation instructions and the second set of teleoperation instructions produces a better result; and

generating processor-executable instructions that cause the robot to replay whichever of the first set of teleoperation instructions and the second set of teleoperation instructions that produces the better result.

12. The method of claim 10 wherein generating processor-executable instructions that cause the robot to replay the teleoperation instructions that cause the robot to perform the first reusable work primitive in the library of reusable work primitives includes combining at least one element of the first set of teleoperation instructions and at least one element of the second set of teleoperation instructions in the processor-executable instructions that cause the robot to replay the teleoperation instructions that cause the robot to perform the first reusable work primitive in the library of reusable work primitives.

13. The method of claim 1 wherein training the robot to autonomously perform each reusable work primitive in the library of reusable work primitives includes generating processor-executable instructions that, when executed by at least one processor of the robot, cause the robot to autonomously perform each reusable work primitive in the library of reusable work primitives, and the method further comprising:

delivering the processor-executable instructions to a non-transitory processor-readable storage medium of the robot.

14. One or more non-transitory processor-readable storage media storing processor-executable instructions that, when executed by at least one processor, perform operations to train a robot to autonomously perform each reusable work primitive in a library of reusable work primitives, the operations comprising:

defining the library of reusable work primitives each performable by the robot, wherein respective combinations and permutations of reusable work primitives from the library of reusable work primitives are initiated and executed by the robot in order to complete respective work objectives;

receiving teleoperation instructions that cause the robot to perform a first reusable work primitive in the library of reusable work primitives, wherein receiving the teleoperation instructions comprises receiving low-level teleoperation instructions that cause the robot to emulate real physical actions performed by a real teleoperation pilot;

executing the teleoperation instructions to cause the robot to perform the first reusable work primitive in the library of reusable work primitives; and

generating processor-executable instructions that cause the robot to replay the teleoperation instructions that cause the robot to perform the first reusable work primitive in the library of reusable work primitives.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2023
From: GILDERT, SUZANNE; NORTON, OLIVIA; ROSE, GEORDIE
To: SANCTUARY COGNITIVE SYSTEMS CORPORATION
Reel/Frame 062257/0945 →
Continuity (4)
Continuation 17566589 · Dec 30, 2021
Provisional Application 63232694 · Aug 13, 2021
Provisional Application 63151044 · Feb 18, 2021
Related Publication 20220258342A1 · Aug 18, 2022
Cited By (5)
US 12,521,297 US 12,553,500 US 12,643,220 US 12,691,960 US 12,708,998