US 12,233,553 B2
Robot instruction distribution framework
Michael Beardsworth, San Francisco, CA (US); Steve Wolter, Munich (DE); and Nicholas Julian Cox, Mountain View, CA (US)
Assigned to Intrinsic Innovation LLC, Mountain View, CA (US)
Filed by Intrinsic Innovation LLC, Mountain View, CA (US)
Filed on Jun. 15, 2021, as Appl. No. 17/347,996.
Prior Publication US 2022/0395977 A1, Dec. 15, 2022
Int. Cl. B25J 9/16 (2006.01); G06F 16/2458 (2019.01)
CPC B25J 9/1656 (2013.01) [G06F 16/2471 (2019.01)] 20 Claims
OG exemplary drawing
 
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.