IP Library Granted Patent US 11,904,473
Granted Patent B2
US 11,904,473 · App. 16/730,864 · Granted Feb 20, 2024

Transformation mode switching for a real-time robotic control system

Inventors: Sean Alexander Cassero (Palo Alto, CA); Michael Beardsworth (San Francisco, CA)
Assignee: Intrinsic Innovation LLC
B25J9/1653B25J9/1607
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 11,904,473
App. No.
16/730,864
Granted
Feb 20, 2024
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for performing transformation mode switching in a robotics control system. One of the methods includes receiving data representing a state machine that defines one or more portions of a robotics task; executing a first control loop corresponding to a first node of the state machine, wherein executing the first control loop comprises providing commands to the robotic components computed from a first coordinate transformation process; determining, based on one or more status messages, that an exit condition for the first node has been satisfied; performing a mode switch between the first coordinate transformation process and a different second coordinate transformation process; and executing a second control loop corresponding to a second node of the state machine, wherein executing the second control loop comprises providing commands to the robotic components computed from the second coordinate transformation process.

Claims (50)

1. A method comprising:

receiving, from a user by a robotics control system comprising one or more computers, data representing a user-defined state machine that defines one or more portions of a robotics task, each portion being represented by a different subgraph of the state machine, wherein each subgraph is associated with a different respective coordinate transformation process, wherein the state machine has nodes that represent respective states of one or more robotic components, wherein each node has one or more exit conditions that define when the robotics control system should transition from one state to another state, and when the robotics control system should transition from executing a first subgraph of the state machine having a first coordinate transformation process to executing a second subgraph of the state machine having a different second coordinate transformation process;

executing, by the robotics control system, a first control loop corresponding to a first subgraph of the state machine having the first coordinate transformation process, wherein executing the first control loop comprises providing commands to the one or more robotic components computed from the first coordinate transformation process and receiving status messages;

determining, based on one or more status messages received during the first control loop, that an exit condition for transitioning to executing the second subgraph has been satisfied;

in response to determining that the exit condition for transitioning to executing the second subgraph has been satisfied, performing a mode switch between the first coordinate transformation process of the first subgraph and the different second coordinate transformation process of the second subgraph; and

executing, by the robotics control system, a second control loop corresponding to the second subgraph of the state machine having the second coordinate transformation process, wherein executing the second control loop comprises providing commands to the one or more robotic components computed from the second coordinate transformation process.

2. The method of claim 1 , wherein performing the mode switch occurs within real-time constraints of the robotics control system.

3. The method of claim 1 , wherein the first coordinate transformation process is an inverse kinetics coordinate transformation process and the second coordinate transformation process is a Cartesian impedance control coordinate transformation process.

4. The method of claim 1 , wherein a user of the robotics control system has specified that the first control loop corresponding to the first subgraph of the state machine be executed using the first coordinate transformation process, and that the second control loop corresponding to the second subgraph of the state machine be executed using the second coordinate transformation process.

5. The method of claim 1 , wherein one or more of the exit conditions of the state machine have been specified by a user of the robotics control system.

6. The method of claim 1 , wherein:

executing the second control loop further comprises receiving status messages; and

the method further comprises:

determining, based on one or more status messages received during the second control loop, that an exit condition for transitioning to executing a third subgraph has been satisfied;

in response to determining that the exit condition for transitioning to executing the third subgraph has been satisfied, performing a mode switch between the second coordinate transformation process of the second subgraph and a third coordinate transformation process that is different from that second coordinate transformation process; and

executing, by the robotics control system, a third control loop corresponding to the third subgraph of the state machine having the third coordinate transformation process, wherein executing the third control loop comprises repeatedly providing commands to one or more robotic components computed from the third coordinate transformation process.

7. The method of claim 6 , wherein the third coordinate transformation process is different from the first coordinate transformation process and the second coordinate transformation process.

8. A robotics control system comprising one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform a method comprising:

receiving, from a user by a robotics control system comprising one or more computers, data representing a user-defined state machine that defines one or more portions of a robotics task, each portion being represented by a different subgraph of the state machine, wherein each subgraph is associated with a different respective coordinate transformation process, wherein the state machine has nodes that represent respective states of one or more robotic components, wherein each node has one or more exit conditions that define when the robotics control system should transition from one state to another state, and when the robotics control system should transition from executing a first subgraph of the state machine having a first coordinate transformation process to executing a second subgraph of the state machine having a different second coordinate transformation process;

executing, by the robotics control system, a first control loop corresponding to a first subgraph of the state machine having the first coordinate transformation process, wherein executing the first control loop comprises providing commands to the one or more robotic components computed from the first coordinate transformation process and receiving status messages;

determining, based on one or more status messages received during the first control loop, that an exit condition for transitioning to executing the second subgraph has been satisfied;

in response to determining that the exit condition for transitioning to executing the second subgraph has been satisfied, performing a mode switch between the first coordinate transformation process of the first subgraph and the different second coordinate transformation process of the second subgraph; and

executing, by the robotics control system, a second control loop corresponding to the second subgraph of the state machine having the second coordinate transformation process, wherein executing the second control loop comprises providing commands to the one or more robotic components computed from the second coordinate transformation process.

9. The system of claim 8 , wherein performing the mode switch occurs within real-time constraints of the robotics control system.

10. The system of claim 8 , wherein the first coordinate transformation process is an inverse kinetics coordinate transformation process and the second coordinate transformation process is a Cartesian impedance control coordinate transformation process.

11. The system of claim 8 , wherein a user of the robotics control system has specified that the first control loop corresponding to the first subgraph of the state machine be executed using the first coordinate transformation process, and that the second control loop corresponding to the second subgraph of the state machine be executed using the second coordinate transformation process.

12. The system of claim 8 , wherein one or more of the exit conditions of the state machine have been specified by a user of the robotics control system.

13. The system of claim 8 , wherein:

executing the second control loop further comprises receiving status messages; and

the method further comprises:

determining, based on one or more status messages received during the second control loop, that an exit condition for transitioning to executing a third subgraph has been satisfied;

in response to determining that the exit condition for transitioning to executing the third subgraph has been satisfied, performing a mode switch between the second coordinate transformation process of the second subgraph and a third coordinate transformation process that is different from that second coordinate transformation process; and

executing, by the robotics control system, a third control loop corresponding to a the third node subgraph of the state machine having the third coordinate transformation process, wherein executing the third control loop comprises repeatedly providing commands to one or more robotic components computed from the third coordinate transformation process.

14. The system of claim 13 , wherein the third coordinate transformation process is different from the first coordinate transformation process and the second coordinate transformation process.

15. One or more non-transitory computer storage media encoded with computer program instructions that when executed by a plurality of computers cause the plurality of computers to perform operations comprising:

receiving, from a user by a robotics control system comprising one or more computers, data representing a user-defined state machine that defines one or more portions of a robotics task, each portion being represented by a different subgraph of the state machine, wherein each subgraph is associated with a different respective coordinate transformation process, wherein the state machine has nodes that represent respective states of one or more robotic components, wherein each node has one or more exit conditions that define when the robotics control system should transition from one state to another state, and when the robotics control system should transition from executing a first subgraph of the state machine having a first coordinate transformation process to executing a second subgraph of the state machine having a different second coordinate transformation process;

executing, by the robotics control system, a first control loop corresponding to a first subgraph of the state machine having the first coordinate transformation process, wherein executing the first control loop comprises providing commands to the one or more robotic components computed from the first coordinate transformation process and receiving status messages;

determining, based on one or more status messages received during the first control loop, that an exit condition for transitioning to executing the second subgraph has been satisfied;

in response to determining that the exit condition for transitioning to executing the second subgraph has been satisfied, performing a mode switch between the first coordinate transformation process of the first subgraph and the different second coordinate transformation process of the second subgraph; and

executing, by the robotics control system, a second control loop corresponding to the second subgraph of the state machine having the second coordinate transformation process, wherein executing the second control loop comprises providing commands to the one or more robotic components computed from the second coordinate transformation process.

16. The non-transitory computer storage media of claim 15 , wherein performing the mode switch occurs within real-time constraints of the robotics control system.

17. The non-transitory computer storage media of claim 15 , wherein the first coordinate transformation process is an inverse kinetics coordinate transformation process and the second coordinate transformation process is a Cartesian impedance control coordinate transformation process.

18. The non-transitory computer storage media of claim 15 , wherein a user of the robotics control system has specified that the first control loop corresponding to the first subgraph of the state machine be executed using the first coordinate transformation process, and that the second control loop corresponding to the second subgraph of the state machine be executed using the second coordinate transformation process.

19. The non-transitory computer storage media of claim 15 , wherein one or more of the exit conditions of the state machine have been specified by a user of the robotics control system.

20. The non-transitory computer storage media of claim 15 , wherein:

executing the second control loop further comprises receiving status messages; and

wherein the operations further comprise:

determining, based on one or more status messages received during the second control loop, that an exit condition for transitioning to executing a third subgraph has been satisfied;

in response to determining that the exit condition for transitioning to executing the third subgraph has been satisfied, performing a mode switch between the second coordinate transformation process of the second subgraph and a third coordinate transformation process that is different from that second coordinate transformation process; and

executing, by the robotics control system, a third control loop corresponding to a the third node subgraph of the state machine having the third coordinate transformation process, wherein executing the third control loop comprises repeatedly providing commands to one or more robotic components computed from the third coordinate transformation process.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2021
From: X DEVELOPMENT LLC
To: INTRINSIC INNOVATION LLC
Reel/Frame 057650/0218 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2020
From: CASSERO, SEAN ALEXANDER; BEARDSWORTH, MICHAEL
To: X DEVELOPMENT LLC
Reel/Frame 051490/0023 →