IP Library Granted Patent US 12,558,780
Granted Patent B2
US 12,558,780 · App. 18/231,888 · Granted Feb 24, 2026

Multi-purpose robots and computer program products, and methods for operating the same

Inventors: Suzanne Gildert (Vancouver, CA); Olivia Norton (North Vancouver, CA); Geordie Rose (Vancouver, CA)
Assignee: Sanctuary Cognitive Systems Corporation
B25J9/163B25J9/161B25J9/1671B25J9/1689B25J11/008
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 12,558,780
App. No.
18/231,888
Granted
Feb 24, 2026
Kind
B2
Abstract

Robots, systems, methods, and computer program products for training and operating (semi-)autonomous robots to complete work objectives are described. A robot accesses a library of reusable work primitives from a catalog of libraries of reusable work primitives, each reusable work primitive corresponding to a respective basic sub-action that the robot is trained to autonomously perform. A work objective is analyzed to determine a sequence of reusable work primitives that complete the work objective, and the robot executes the sequence to complete the work objective. A robot can be deployed with access to an appropriate library of reusable work primitives, based on expectations for the robot. The robot is trained to perform reusable work primitives in multiple libraries, by generating control instructions which cause the robot to perform each reusable work primitive. Training is performed by real-world robots performing reusable work primitives, or simulated robot instances performing the reusable work primitives.

Claims (57)

1 . A computer-implemented method of training a robot to complete a plurality of work objectives including at least one first work objective in a first service category and at least one second work objective in a second service category, the method comprising:

defining a first library of reusable work primitives each performable by the robot, wherein at least one respective combination and permutation of reusable work primitives from the first library of reusable work primitives are initiable and executable by the robot in order to complete the at least one first work objective in the first service category; and

defining a second library of reusable work primitives each performable by the robot, the second library of reusable work primitives being at least partially different from the first library of reusable work primitives, wherein at least one respective combination and permutation of reusable work primitives from the second library of reusable work primitives are initiable and executable by the robot in order to complete the at least one second work objective in the second service category;

training the robot to autonomously perform each reusable work primitive in the first library of reusable work primitives;

training the robot to autonomously perform each reusable work primitive in the second library of reusable work primitives which is not included in the first library of reusable work primitives; and

retrieving training data for each reusable work primitive in the second library of reusable work primitives which is included in the first library of reusable work primitives, wherein the training data is generated while training the robot to autonomously perform each reusable work primitive in the first library of reusable work primitives.

2 . The method of claim 1 , wherein:

the first library of reusable work primitives and the second library of reusable work primitives are included in a catalog of libraries of reusable work primitives;

the method further comprises training the robot to autonomously perform each reusable work primitive in the catalog of libraries of reusable work primitives;

training the robot to autonomously perform each reusable work primitive in the first library of reusable work primitives is included in training the robot to autonomously perform each reusable work primitive in the catalog of libraries of reusable work primitives; and

training the robot to autonomously perform each reusable work primitive in the second library of reusable work primitives is included in training the robot to autonomously perform each reusable work primitive in the catalog of libraries of reusable work primitives.

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

4 . The method of claim 3 wherein training the robot to autonomously perform each reusable work primitive in the first library of reusable work primitives and the second 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 first library of reusable work primitives or the second 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.

5 . The method of claim 4 wherein training the robot to autonomously perform each reusable work primitive in the first library of reusable work primitives and the second library of reusable work primitives 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; 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.

6 . The method of claim 4 wherein training the robot to autonomously perform each reusable work primitive in the first library of reusable work primitives and the second library of reusable work primitives 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 first library of reusable work primitives or in the second 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.

7 . The method of claim 1 wherein training the robot to autonomously perform each reusable work primitive in the first library of reusable work primitives and the second library of reusable work primitives of reusable work primitives includes:

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

executing the teleoperation instructions to cause the robot to perform the first reusable work primitive; and

generating processor-executable instructions that cause the robot to execute the teleoperation instructions that cause the robot to perform the first reusable work primitive.

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

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

10 . The method of claim 7 wherein training the robot to autonomously perform each reusable work primitive in the first library of reusable work primitives and the second library of reusable work primitives 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 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 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 execute the teleoperation instructions that cause the robot to perform the first reusable work primitive includes generating processor-executable instructions that cause the simulated instance of the robot to execute the teleoperation instructions that cause the simulated instance of the robot to perform the first reusable work primitive in the simulated environment.

11 . The method of claim 10 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 physical actions performed by a physical teleoperation pilot.

12 . The method of claim 10 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.

13 . The method of claim 7 wherein:

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

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

14 . The method of claim 13 wherein generating processor-executable instructions that cause the robot to execute the teleoperation instructions that cause the robot to perform the first reusable work primitive 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 and executing the second set of teleoperation instructions to cause the robot to perform the second instance of the first reusable work primitive 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 execute whichever of the first set of teleoperation instructions and the second set of teleoperation instructions that produces the better result, wherein a better result includes at least one result selected from a group consisting of: a result that has fewer errors, a result that is more accurate, a result that is more precise, a result that uses less power, a result that is performed more quickly, a result that is performed with greater aesthetic appeal, and a result that is advantageous according to any measure of success.

15 . The method of claim 13 wherein generating processor-executable instructions that cause the robot to execute the teleoperation instructions that cause the robot to perform the first reusable work primitive 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 execute the teleoperation instructions that cause the robot to perform the first reusable work primitive.

16 . The method of claim 1 wherein training the robot to autonomously perform each reusable work primitive in the first library of reusable work primitives and the second 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 respective reusable work primitive in the first library of reusable work primitives and the second 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.

17 . The method of claim 1 , further comprising:

defining at least one additional library of reusable work primitives each performable by the robot, the at least one additional library of reusable work primitives being at least partially different from the first library of reusable work primitives and the second library of reusable work primitives, wherein at least one respective combination and permutation of reusable work primitives from the at least one additional library of reusable work primitives are initiable and executable by the robot in order to complete the at least one additional work objective in at least one additional service category; and

training the robot to autonomously perform each reusable work primitive in the at least one additional library of reusable work primitives.

18 . The method of claim 1 , wherein the first service category and the second service category respectively include a service category selected from a group of service categories consisting of:

medical service;

cleaning service;

housekeeping service;

warehouse service;

fetch service;

delivery service;

repair service;

painting service; and

retail service.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2025
From: GILDERT, SUZANNE; NORTON, OLIVIA; ROSE, GEORDIE
To: SANCTUARY COGNITIVE SYSTEMS CORPORATION
Reel/Frame 071523/0831 →
Continuity (5)
Continuation In Part 17883737 · Aug 9, 2022
Provisional Application 63332750 · Apr 20, 2022
Provisional Application 63232694 · Aug 13, 2021
Provisional Application 63419212 · Oct 25, 2022
Related Publication 20230381957A1 · Nov 30, 2023
References Cited (10)
US 9643314B2 · Guerin · 2017 [cited by applicant]
US 9880553B1 · Hoffmann · 2018 [cited by applicant]
US 20160243701A1 · Gildert · 2016 [cited by applicant]
US 20190291277A1 · Oleynik · 2019 [cited by examiner]
US 20230381970A1 · Khansari Zadeh · 2023 [cited by examiner]
Combined Search and Examination Report under Sections 17 & 18(3) in Application No. GB2418995.3, Intellectual Property Office, Feb. 26, 2025. [cited by applicant]
Roomba robot vacuum cleaner website—iRobot, tinyurl.com/y6eejeh9. [cited by applicant]
Boston Dynamics “Stretch,” logistics robot, tinyurl.com/yc7ph987. [cited by applicant]
Search Report in Application No. GB2418990.4, Intellectual Property Office, Jan. 27, 2025. [cited by applicant]
Combined Search and Examination Report under Sections 17 & 18(3) in Application No. GB2418990.4, Intellectual Property Office, Jan. 28, 2025. [cited by applicant]