US 11,992,948 B2
Real-time robotics control framework
Andre Gaschler, Munich (DE); Gregory J. Prisament, East Palo Alto, CA (US); Sean Alexander Cassero, Santa Rosa, CA (US); Nicholas Julian Cox, Mountain View, CA (US); Benjamin Bremer, Ottobrunn (DE); Nils Berg, Karlsruhe (DE); and Michael Beardsworth, San Francisco, CA (US)
Assigned to Intrinsic Innovation LLC, Mountain View, CA (US)
Filed by Intrinsic Innovation LLC, Mountain View, CA (US)
Filed on Apr. 30, 2021, as Appl. No. 17/246,002.
Prior Publication US 2022/0347844 A1, Nov. 3, 2022
Int. Cl. B25J 9/16 (2006.01); H04L 65/65 (2022.01); H04L 69/329 (2022.01); H04L 67/12 (2022.01); H04L 69/321 (2022.01)
CPC B25J 9/1658 (2013.01) [B25J 9/1628 (2013.01); B25J 9/1664 (2013.01); H04L 65/65 (2022.05); H04L 69/329 (2013.01); G05B 2219/40512 (2013.01); H04L 67/12 (2013.01); H04L 69/321 (2013.01)] 15 Claims
OG exemplary drawing
 
1. A computer-implemented method comprising:
receiving, by an application layer of a real-time robotics control framework, a definition of a custom real-time streaming control function that defines a custom streaming action, wherein the custom streaming action specifies a goal state for a robot in an operating environment;
providing, by the application layer to a control layer of the framework, a command to initiate the custom streaming action; and
repeatedly providing, by the application layer to the control layer of the framework and at a slower rate than a timing requirement of a real-time robotics control cycle, updated goal states for the custom streaming action, wherein the application layer repeatedly executes code of the custom real-time streaming control function to generate the updated goal states,
wherein the control layer of the framework executes the custom streaming action to drive the robot toward a most recently received goal state at each predetermined tick of the real-time robotics control cycle, and wherein the control layer comprises a non-real-time thread and a real-time thread, wherein the non-real-time thread is configured to (i) communicate with the application layer, (ii) receive an updated goal state from the application layer, and (iii) select a future tick of the real-time robotics control cycle at which to provide the updated goal state to the real-time thread, and wherein the real-time thread is configured to drive the robot according to the real-time robotics control cycle.