Robot choreographer
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-modifiedWhat 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.