IP Library Granted Patent US 12,134,181
Granted Patent B2
US 12,134,181 · App. 18/317,788 · Granted Nov 5, 2024

Robot choreographer

Inventors: Matthew Klingensmith (Waltham, MA); Eric Whitman (Waltham, MA); Marco da Silva (Arlington, MA); Alfred Rizzi (Cambridge, MA)
Assignee: Boston Dynamics, Inc.
B25J11/0035B25J9/162B25J9/1694G05D1/0212
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,134,181
App. No.
18/317,788
Granted
Nov 5, 2024
Kind
B2
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 (75)

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.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2024
From: KLINGENSMITH, MATTHEW; WHITMAN, ERIC; DA SILVA, MARCO; RIZZI, ALFRED
To: BOSTON DYNAMICS, INC.
Reel/Frame 067832/0300 →
CHANGE OF NAME Recorded Jun 25, 2024
From: BOSTON DYNAMICS, INC.
To: BOSTON DYNAMICS, INC.
Reel/Frame 067838/0988 →
Continuity (2)
Continuation 16600786 · Oct 14, 2019
Related Publication 20230286167A1 · Sep 14, 2023
Cited By (16)
US 12,365,094 US 12,403,611 US 12,420,434 US 12,539,618 US 12,578,733 US 12,605,824 US 12,611,766 US 12,611,767 US 12,638,859 US 12,649,246 US 12,697,720 US 12,697,741 US 12,707,556 US 12,709,029 US 12,722,306 US 12,734,717