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 |
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.
|