IP Library Granted Patent US 12,233,553
Granted Patent B2
US 12,233,553 · App. 17/347,996 · Granted Feb 25, 2025

Robot instruction distribution framework

Inventors: Michael Beardsworth (San Francisco, CA); Steve Wolter (Munich, DE); Nicholas Julian Cox (Mountain View, CA)
Assignee: Intrinsic Innovation LLC
B25J9/1656G06F16/2471
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,233,553
App. No.
17/347,996
Granted
Feb 25, 2025
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium that distributes skill bundles that can guide robot execution. One of the methods includes receiving data for a skill bundle from a skill developer. The data can include a definition of one or more preconditions for a robotic system to execute a skill; one or more effects to an operating environment after the robotic system has executed the skill; and a software module implementing the skill. The software module can define a state machine of subtasks. A skill bundle can be generated from the data received from the skill developer. Data identifying the generated skill bundle can be added to a skill registry. The skill bundle can be provided to the execution robot system for installation on the robot execution system.

Claims (99)

1. A computer-implemented method comprising:

receiving, from a plurality of skill developers, data for a plurality of respective skill bundles, the data for each skill comprising:

a definition of one or more preconditions of a physical operating environment that must hold before a robotic system can execute a skill for the skill bundle,

one or more effects to the operating environment after the robotic system has executed the skill, and

a software module implementing the skill, wherein the software module defines a state machine of subtasks;

generating a respective skill bundle from the data received from each of the plurality of skill developers;

adding the data identifying the generated skill bundles to a skill registry;

receiving, from a robot execution system, a request for a skill, the request specifying data in the skill registry;

providing, to the robot execution system in response to the request, a first skill bundle for the skill for installation on the robot execution system, wherein the first skill bundle is generated by a first skill developer;

providing, to the robot execution system, a second skill bundle generated by a different second skill developer; and

receiving, by the robot execution system, an input program that references a plurality of skill bundles generated by multiple different skill developers, including the first skill bundle specifying a particular effect and the second skill bundle, wherein the second skill bundle includes a precondition that references the particular effect of the first skill bundle;

executing, by the robot execution system on a physical robot, a robotic process including:

determining that the one or more preconditions of the first skill bundle hold for an operating environment of the physical robot, and

in response, executing the skill of the first skill bundle including executing the state machine of subtasks on the physical robot;

determining, by the robot execution system, that an effect of the skill satisfies the precondition of the second skill bundle, and

in response, transitioning, by the robot execution system, from executing the skill to executing a second skill of the second skill bundle according to the input program.

2. The method of claim 1 , further comprising:

receiving, by a distribution system, a query that requests skills having a particular effect;

searching descriptions of effects associated with skills in the skill registry;

identifying a first skill bundle that satisfies the query; and

providing information identifying the skill bundle in response to receiving the query.

3. The method of claim 1 , further comprising:

receiving, by the robot execution system, an input program that references one or more skill bundles; and

executing, by the robot execution system, at least one software module implementing a skill included in the one or more skill bundles referenced by the input program.

4. The method of claim 3 , further comprising:

determining, by the robot execution system, one or more skill bundles referenced by the input program;

identifying, by the robot execution system, a skill bundle among the one or more skill bundles determined to be referenced by the input program that is not downloaded to the robot execution system; and

in response to determining that an identified skill bundle is not downloaded to the robot execution system, downloading, by the robot execution system, the identified skill bundle.

5. The method of claim 1 , further comprising:

receiving, by the robot execution system, an input program that references a plurality of skill bundles, including the skill bundle specifying a particular effect and a second skill bundle having a precondition that references the particular effect; and

executing, by the robot execution system, at least one software module specified by the plurality of skill bundles.

6. The method of claim 5 , further comprising:

determining, by the robot execution system, that an effect of the skill satisfies the precondition of the second skill bundle; and

in response, transitioning, by the robot execution system, from executing the skill to executing a second skill of the second skill bundle according to the input program.

7. The method of claim 1 , wherein the skill bundle includes a reference to at least one software module capable of completing at least one of the subtasks.

8. The method of claim 1 , wherein the skill bundle is part of a skill bundle chain that includes at least the skill bundle and a second skill bundle.

9. The method of claim 8 , further comprising executing, by the robot execution system, a plurality of skills in the skill bundle chain, wherein at least one effect of the skill bundle satisfies at least one precondition of the second skill bundle, including:

executing, by the robot execution system, a first software module included in the skill bundle; and

in response to executing, by the robot execution system the first software module, executing, by the robot execution system, a second software module included in the second skill bundle.

10. One or more non-transitory computer-readable storage media storing instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

receiving, from a plurality of skill developers, data for a plurality of respective skill bundles, the data for each skill comprising:

a definition of one or more preconditions of a physical operating environment that must hold before a robotic system can execute a skill for the skill bundle,

one or more effects to the operating environment after the robotic system has executed the skill, and

a software module implementing the skill, wherein the software module defines a state machine of subtasks;

generating a respective skill bundle from the data received from each of the plurality of skill developers;

adding the data identifying the generated skill bundles to a skill registry;

receiving, from a robot execution system, a request for a skill, the request specifying data in the skill registry;

providing, to the robot execution system in response to the request, a first skill bundle for the skill for installation on the robot execution system, wherein the first skill bundle is generated by a first skill developer;

providing, to the robot execution system, a second skill bundle generated by a different second skill developer; and

receiving, by the robot execution system, an input program that references a plurality of skill bundles generated by multiple different skill developers, including the first skill bundle specifying a particular effect and the second skill bundle, wherein the second skill bundle includes a precondition that references the particular effect of the first skill bundle;

executing, by the robot execution system on a physical robot, a robotic process including:

determining that the one or more preconditions of the first skill bundle hold for an operating environment of the physical robot, and

in response, executing the skill of the first skill bundle including executing the statement of subtasks on the physical robot;

determining, by the robot execution system, that an effect of the skill satisfies the precondition of the second skill bundle, and

in response, transitioning, by the robot execution system, from executing the skill to executing a second skill of the second skill bundle according to the input program.

11. The one or more non-transitory computer-readable storage media of claim 10 further comprising:

receiving, by a distribution system, a query that requests skills having a particular effect;

searching descriptions of effects associated with skills in the skill registry;

identifying a first skill bundle that satisfies the query; and

providing information identifying the skill bundle in response to receiving the query.

12. The one or more non-transitory computer-readable storage media of claim 10 further comprising:

receiving, by the robot execution system, an input program that references one or more skill bundles; and

executing, by the robot execution system, at least one software module implementing a skill included in the one or more skill bundles referenced by the input program.

13. The one or more non-transitory computer-readable storage media of claim 12 , further comprising:

determining, by the robot execution system, one or more skill bundles referenced by the input program;

identifying, by the robot execution system, a skill bundle among the one or more skill bundles determined to be referenced by the input program that is not downloaded to the robot execution system; and

in response to determining that an identified skill bundle is not downloaded to the robot execution system, downloading, by the robot execution system, the identified skill bundle.

14. The one or more non-transitory computer-readable storage media of claim 10 , further comprising:

receiving, by the robot execution system, an input program that references a plurality of skill bundles, including the skill bundle specifying a particular effect and a second skill bundle having a precondition that references the particular effect; and

executing, by the robot execution system, at least one software module specified by the plurality of skill bundles.

15. The one or more non-transitory computer-readable storage media of claim 14 , wherein the operations further comprise:

determining, by the robot execution system, that an effect of the skill satisfies the precondition of the second skill bundle; and

in response, transitioning, by the robot execution system, from executing the skill to executing a second skill of the second skill bundle according to the input program.

16. The one or more non-transitory computer-readable storage media of claim 10 , wherein the skill bundle includes a reference to at least one software module capable of completing at least one of the subtasks.

17. The one or more non-transitory computer-readable storage media of claim 10 , wherein the skill bundle is part of a skill bundle chain that includes at least the skill bundle and a second skill bundle.

18. The one or more non-transitory computer-readable storage media of claim 17 , wherein the operations further comprise executing, by the robot execution system, a plurality of skills in the skill bundle chain, wherein at least one effect of the skill bundle satisfies at least one precondition of the second skill bundle, including:

executing, by the robot execution system, a first software module included in the skill bundle; and

in response to executing, by the robot execution system the first software module, executing, by the robot execution system, a second software module included in the second skill bundle.

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

receiving, from a plurality of skill developers, data for a plurality of respective skill bundles, the data for each skill comprising:

a definition of one or more preconditions of a physical operating environment that must hold before a robotic system can execute a skill for the skill bundle,

one or more effects to the operating environment after the robotic system has executed the skill, and

a software module implementing the skill, wherein the software module defines a state machine of subtasks;

generating a respective skill bundle from the data received from each of the plurality of skill developers;

adding the data identifying the generated skill bundles to a skill registry;

receiving, from a robot execution system, a request for a skill, the request specifying data in the skill registry;

providing, to the robot execution system in response to the request, a first skill bundle for the skill for installation on the robot execution system, wherein the first skill bundle is generated by a first skill developer;

providing, to the robot execution system, a second skill bundle generated by a different second skill developer; and

receiving, by the robot execution system, an input program that references a plurality of skill bundles generated by multiple different skill developers, including the first skill bundle specifying a particular effect and the second skill bundle, wherein the second skill bundle includes a precondition that references the particular effect of the first skill bundle;

executing, by the robot execution system on a physical robot, a robotic process including:

determining that the one or more preconditions of the first skill bundle hold for an operating environment of the physical robot, and

in response, executing the skill of the first skill bundle including executing the statement of subtasks on the physical robot;

determining, by the robot execution system, that an effect of the skill satisfies the precondition of the second skill bundle, and

in response, transitioning, by the robot execution system, from executing the skill to executing a second skill of the second skill bundle according to the input program.

20. The system of claim 19 , further comprising:

receiving, by a distribution system, a query that requests skills having a particular effect;

searching descriptions of effects associated with skills in the skill registry;

identifying a first skill bundle that satisfies the query; and

providing information identifying the skill bundle in response to receiving the query.

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 Jun 30, 2021
From: BEARDSWORTH, MICHAEL; WOLTER, STEVE; COX, NICHOLAS JULIAN
To: X DEVELOPMENT LLC
Reel/Frame 056721/0967 →