IP Library Granted Patent US 12,011,832
Granted Patent B2
US 12,011,832 · App. 17/245,709 · Granted Jun 18, 2024

Real-time robotics control framework

Inventors: Andre Gaschler (Munich, DE); Gregory J. Prisament (East Palo Alto, CA); Sean Alexander Cassero (Santa Rosa, CA); Nicholas Julian Cox (Mountain View, CA); Benjamin Bremer (Ottobrunn, DE); Nils Berg (Karlsruhe, DE); Michael Beardsworth (San Francisco, CA)
Assignee: Intrinsic Innovation LLC
B25J9/1602B25J9/1682G05B2219/50391
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,011,832
App. No.
17/245,709
Granted
Jun 18, 2024
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for controlling a robot to perform a custom real-time action that uses a callback function. One of the methods comprises receiving a definition of a custom real-time control function that specifies a custom callback function, an action, and a custom reaction that references the custom callback function; providing a command to initiate the action; repeatedly executing, by the control layer of the real-time robotics control framework, the custom real-time control function at each tick of a real-time robotics system driving one or more physical robots, including: obtaining current values of one or more state variables, evaluating the custom reaction specified by the custom real-time control function according to the current values of the one or more state variables, and whenever the one or more conditions of the custom reaction are satisfied, invoking the custom callback function.

Claims (57)

1. A computer-implemented method comprising:

receiving, by a non-real-time application layer of a real-time robotics control framework, a definition of a custom real-time control function that specifies a custom callback function, an action, and a custom reaction that references the custom callback function, wherein the custom reaction comprises one or more conditions for triggering a real-time robotics control cycle to invoke the custom callback function;

providing, by the non-real-time application layer to a real-time control layer of the real-time robotics control framework, a command to initiate the action defined by the custom real-time control function;

repeatedly executing, by the real-time control layer of the real-time robotics control framework, the custom real-time control function at each predetermined tick of a real-time robotics system driving one or more physical robots, including:

obtaining current values of one or more state variables,

evaluating the custom reaction specified by the custom real-time control function according to the current values of the one or more state variables,

whenever the one or more conditions of the custom reaction are satisfied, invoking, from the real-time control layer and to the non-real-time application layer of the real-time robotics control framework, the custom callback function, wherein invoking the custom callback function comprises providing a current action of a real-time thread executing at the real-time control layer as an argument to the custom callback function, and

in response, executing the custom callback function in the non-real-time application layer of the framework.

2. The method of claim 1 , wherein the real-time control layer comprises:

a non-real-time thread that is configured to communicate with the application layer; and

the real-time thread that is configured to drive the robot along the real-time robotics control cycle.

3. The method of claim 2 , wherein invoking the custom callback function comprises:

providing, by the real-time thread to the non-real-time thread, a notification that the custom callback function should be invoked,

providing, by the non-real-time thread to the application layer of the framework, a notification that the custom callback function should be invoked, and

receiving, by the application layer of the framework, the notification from the non-real-time thread.

4. The method of claim 1 , wherein invoking the custom callback function comprises providing a time stamp representing when the one or more conditions of the custom reaction were satisfied in the real-time thread as an argument to the custom callback function.

5. The method of claim 1 , wherein invoking the custom callback function comprises providing an identification of a previous action executed before the custom reaction was satisfied as an argument to the custom callback function.

6. The method of claim 1 , wherein invoking the custom callback function comprises:

writing updated values to a memory location accessible by the non-real-time thread of the control layer;

reading, by the non-real-time thread, the updated values at the memory location; and

providing, by the non-real-time thread to the application layer, the updated values written by the real-time thread to the memory location.

7. 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, by a non-real-time application layer of a real-time robotics control framework, a definition of a custom real-time control function that specifies a custom callback function, an action, and a custom reaction that references the custom callback function, wherein the custom reaction comprises one or more conditions for triggering a real-time robotics control cycle to invoke the custom callback function;

providing, by the non-real-time application layer to a real-time control layer of the real-time robotics control framework, a command to initiate the action defined by the custom real-time control function;

repeatedly executing, by the real-time control layer of the real-time robotics control framework, the custom real-time control function at each predetermined tick of a real-time robotics system driving one or more physical robots, including:

obtaining current values of one or more state variables,

evaluating the custom reaction specified by the custom real-time control function according to the current values of the one or more state variables,

whenever the one or more conditions of the custom reaction are satisfied, invoking, from the real-time control layer and to the non-real-time application layer of the real-time robotics control framework, the custom callback function, wherein invoking the custom callback function comprises providing a current action of a real-time thread executing at the real-time control layer as an argument to the custom callback function, and

in response, executing the custom callback function in the non-real-time application layer of the framework.

8. The system of claim 7 , wherein the real-time control layer comprises:

a non-real-time thread that is configured to communicate with the application layer; and

the real-time thread that is configured to drive the robot along the real-time robotics control cycle.

9. The system of claim 8 , wherein invoking the custom callback function comprises:

providing, by the real-time thread to the non-real-time thread, a notification that the custom callback function should be invoked,

providing, by the non-real-time thread to the application layer of the framework, a notification that the custom callback function should be invoked, and

receiving, by the application layer of the framework, the notification from the non-real-time thread.

10. The system of claim 7 , wherein invoking the custom callback function comprises providing a time stamp representing when the one or more conditions of the custom reaction were satisfied in the real-time thread as an argument to the custom callback function.

11. The system of claim 7 , wherein invoking the custom callback function comprises providing an identification of a previous action executed before the custom reaction was satisfied as an argument to the custom callback function.

12. The system of claim 7 , wherein invoking the custom callback function comprises:

writing updated values to a memory location accessible by the non-real-time thread of the control layer;

reading, by the non-real-time thread, the updated values at the memory location; and

providing, by the non-real-time thread to the application layer, the updated values written by the real-time thread to the memory location.

13. 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, by a non-real-time application layer of a real-time robotics control framework, a definition of a custom real-time control function that specifies a custom callback function, an action, and a custom reaction that references the custom callback function, wherein the custom reaction comprises one or more conditions for triggering a real-time robotics control cycle to invoke the custom callback function;

providing, by the non-real-time application layer to a real-time control layer of the real-time robotics control framework, a command to initiate the action defined by the custom real-time control function;

repeatedly executing, by the real-time control layer of the real-time robotics control framework, the custom real-time control function at each predetermined tick of a real-time robotics system driving one or more physical robots, including:

obtaining current values of one or more state variables,

evaluating the custom reaction specified by the custom real-time control function according to the current values of the one or more state variables,

whenever the one or more conditions of the custom reaction are satisfied, invoking, from the real-time control layer and to the non-real-time application layer of the real-time robotics control framework, the custom callback function, wherein invoking the custom callback function comprises providing a current action of a real-time thread executing at the real-time control layer as an argument to the custom callback function, and

in response, executing the custom callback function in the non-real-time application layer of the framework.

14. The computer-readable storage media of claim 13 , wherein the real-time control layer comprises:

a non-real-time thread that is configured to communicate with the application layer; and

the real-time thread that is configured to drive the robot along the real-time robotics control cycle.

15. The computer-readable storage media of claim 14 , wherein invoking the custom callback function comprises:

providing, by the real-time thread to the non-real-time thread, a notification that the custom callback function should be invoked,

providing, by the non-real-time thread to the application layer of the framework, a notification that the custom callback function should be invoked, and

receiving, by the application layer of the framework, the notification from the non-real-time thread.

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 May 10, 2021
From: GASCHLER, ANDRE; PRISAMENT, GREGORY J.; CASSERO, SEAN ALEXANDER; COX, NICHOLAS JULIAN; BREMER, BENJAMIN; BERG, NILS; BEARDSWORTH, MICHAEL
To: X DEVELOPMENT LLC
Reel/Frame 056182/0036 →