P
US12134181B2ActiveUtilityPatentIndex 84

Robot choreographer

Assignee: BOSTON DYNAMICS INCPriority: Oct 14, 2019Filed: May 15, 2023Granted: Nov 5, 2024
Est. expiryOct 14, 2039(~13.3 yrs left)· nominal 20-yr term from priority
Inventors:KLINGENSMITH MATTHEWWHITMAN ERICDA SILVA MARCORIZZI ALFRED
G05D 1/646B25J 9/1694B25J 9/162G05D 1/0212B25J 11/0035B62D 57/032B25J 13/06B25J 9/1661B25J 9/161B25J 11/003G05B 2219/40099G05B 2219/40395B25J 9/1664B25J 11/00
84
PatentIndex Score
6
Cited by
15
References
20
Claims

Abstract

The disclosure provides a method for generating a joint command. The method includes receiving a maneuver script including a plurality of maneuvers for a legged robot to perform where each maneuver is associated with a cost. The method further includes identifying that two or more maneuvers of the plurality of maneuvers of the maneuver script occur at the same time instance. The method also includes determining a combined maneuver for the legged robot to perform at the time instance based on the two or more maneuvers and the costs associated with the two or more maneuvers. The method additionally includes generating a joint command to control motion of the legged robot at the time instance where the joint command commands a set of joints of the legged robot. Here, the set of joints correspond to the combined maneuver.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A robot comprising:
 a body; 
 two or more legs coupled to the body, a first leg of the two or more legs comprising a first joint; 
 one or more sensors configured to generate sensor data; 
 data processing hardware; and 
 memory hardware having stored thereon instructions that, when executed by the data processing hardware, cause the data processing hardware to:
 receive a maneuver script comprising a first maneuver and a second maneuver for the robot to perform, 
 determine that a first maneuver and a second maneuver both command the first joint at a same time, 
 determine a combined maneuver for the robot to perform based on the first maneuver and the second maneuver, 
 determine a current state of the robot based on the sensor data, and 
 generate a joint command to control motion of the robot based on the current state of the robot and the combined maneuver. 
 
 
     
     
       2. The robot of  claim 1 , wherein the instructions, when executed by the data processing hardware, further cause the data processing hardware to:
 determine one or more constraints based on the current state of the robot, 
 wherein the generating of the joint command is further based on the one or more constraints. 
 
     
     
       3. The robot of  claim 2 , wherein the one or more constraints comprise at least one of: a range of motion for the robot, one or more structural dimensions of the robot, or an estimate of friction of the robot. 
     
     
       4. The robot of  claim 1 , wherein:
 each of the first maneuver and the second maneuver is associated with a cost, and 
 the determining of the combined maneuver is further based on the costs associated with the first maneuver and the second maneuver. 
 
     
     
       5. The robot of  claim 1 , further comprising:
 an interface configured to receive the maneuver script from an external user interface and provide the received maneuver script to the data processing hardware. 
 
     
     
       6. The robot of  claim 1 , wherein the instructions, when executed by the data processing hardware, further cause the data processing hardware to:
 obtain a current clock time; and 
 identify the first maneuver and the second maneuver to be run by the robot at a particular time slice based on the current clock time. 
 
     
     
       7. The robot of  claim 1 , wherein:
 the maneuver script further comprises a hint maneuver that commands the first joint at the same time as the first maneuver and the second maneuver, and 
 the instructions, when executed by the data processing hardware, further cause the data processing hardware to:
 determine that the hint maneuver is compatible with the second maneuver, and 
 modify the second maneuver to incorporate the body movement of the hint, 
 
 the determining of the combined maneuver is further based on the modified second maneuver. 
 
     
     
       8. The robot of  claim 1 , wherein:
 the maneuver script further comprises a third maneuver that commands the first joint at a different time from the first maneuver and the second maneuver, and 
 the instructions, when executed by the data processing hardware, further cause the data processing hardware to:
 determine that the third maneuver does not conflict with any other maneuvers, and 
 bypass determining a second combined maneuver for the robot to perform based on the third maneuver in response to determining that the third maneuver does not conflict with any other maneuvers. 
 
 
     
     
       9. The robot of  claim 1 , wherein:
 the sensor data comprises environment data indicative of an environment of the robot and pose data indicative of a pose of the robot, and 
 the determining of the current state of the robot is further based on the environment data and the pose data. 
 
     
     
       10. A method, comprising:
 receiving, at data processing hardware, a maneuver script comprising a first maneuver and a second maneuver for a robot to perform, the robot comprising the data processing hardware, a body, two or more legs coupled to the body, and one or more sensors configured to generate sensor data, a first leg of the two or more legs comprising a first joint; 
 determining that a first maneuver and a second maneuver both command the first joint at a same time; 
 determining a combined maneuver for the robot to perform based on the first maneuver and the second maneuver; 
 determining a current state of the robot based on the sensor data; and 
 generating a joint command to control motion of the robot based on the current state of the robot and the combined maneuver. 
 
     
     
       11. The method of  claim 10 , further comprising:
 determining one or more constraints based on the current state of the robot, 
 wherein the generating of the joint command is further based on the one or more constraints. 
 
     
     
       12. The method of  claim 11 , wherein the one or more constraints comprise at least one of: a range of motion for the robot, one or more structural dimensions of the robot, or an estimate of friction of the robot. 
     
     
       13. The method of  claim 10 , wherein:
 each of the first maneuver and the second maneuver is associated with a cost, and 
 the determining of the combined maneuver is further based on the costs associated with the first maneuver and the second maneuver. 
 
     
     
       14. The method of  claim 10 , further comprising:
 receiving the maneuver script from an external user interface via an interface of the robot; and 
 providing the received maneuver script to the data processing hardware. 
 
     
     
       15. The method of  claim 10 , further comprising:
 obtaining a current clock time; and 
 identifying the first maneuver and the second maneuver to be run by the robot at a particular time slice based on the current clock time. 
 
     
     
       16. The method of  claim 10 , wherein:
 the maneuver script further comprises a hint maneuver that commands the first joint at the same time as the first maneuver and the second maneuver, and 
 the method further comprises:
 determining that the hint maneuver is compatible with the second maneuver; and 
 modifying the second maneuver to incorporate the body movement of the hint, 
 
 the determining of the combined maneuver is further based on the modified second maneuver. 
 
     
     
       17. A non-transitory computer-readable medium having stored thereon instructions that, when executed by data processing hardware, cause the data processing hardware to:
 receive, at data processing hardware, a maneuver script comprising a first maneuver and a second maneuver for a robot to perform, the robot comprising the data processing hardware, a body, two or more legs coupled to the body, and one or more sensors configured to generate sensor data, a first leg of the two or more legs comprising a first joint; 
 determine that a first maneuver and a second maneuver both command the first joint at the same time; 
 determine a combined maneuver for the robot to perform based on the first maneuver and the second maneuver; 
 determine a current state of the robot based on the sensor data; and 
 generate a joint command to control motion of the robot based on the current state of the robot and the combined maneuver. 
 
     
     
       18. The non-transitory computer-readable medium of  claim 17 , wherein the instructions, when executed by data processing hardware, further cause the data processing hardware to:
 determine one or more constraints based on the current state of the robot, 
 wherein the generating of the joint command is further based on the one or more constraints. 
 
     
     
       19. The non-transitory computer-readable medium of  claim 18 , wherein the one or more constraints comprise at least one of: a range of motion for the robot, one or more structural dimensions of the robot, or an estimate of friction of the robot. 
     
     
       20. The non-transitory computer-readable medium of  claim 17 , wherein:
 each of the first maneuver and the second maneuver is associated with a cost, and 
 the determining of the combined maneuver is further based on the costs associated with the first maneuver and the second maneuver.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.