IP Library Granted Patent US 11,465,281
Granted Patent B2
US 11,465,281 · App. 16/601,035 · Granted Oct 11, 2022

Dynamic planning controller

Inventors: Eric Whitman (Waltham, MA); Alex Khripin (Waltham, MA)
Assignee: Boston Dynamics, Inc.
B25J9/1653G05B13/042G06N5/003
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,465,281
App. No.
16/601,035
Granted
Oct 11, 2022
Kind
B2
Abstract

A dynamic planning controller receives a maneuver for a robot and a current state of the robot and transforms the maneuver and the current state of the robot into a nonlinear optimization problem. The nonlinear optimization problem is configured to optimize an unknown force and an unknown position vector. At a first time instance, the controller linearizes the nonlinear optimization problem into a first linear optimization problem and determines a first solution to the first linear optimization problem using quadratic programming. At a second time instance, the controller linearizes the nonlinear optimization problem into a second linear optimization problem based on the first solution at the first time instance and determines a second solution to the second linear optimization problem based on the first solution using the quadratic programming. The controller also generates a joint command to control motion of the robot during the maneuver based on the second solution.

Claims (51)

1. A method comprising:

receiving, at data processing hardware, a maneuver for a legged robot and a current state of the legged robot, the maneuver comprising one or more movement events for the legged robot to perform;

transforming, by the data processing hardware, the maneuver and the current state of the legged robot into a nonlinear optimization problem, the nonlinear optimization problem configured to optimize an unknown force and an unknown position vector;

at a first time instance:

linearizing, by the data processing hardware, the nonlinear optimization problem into a first linear optimization problem; and

determining, by the data processing hardware, a first solution to the first linear optimization problem using quadratic programming;

at a second time instance subsequent to the first time instance:

linearizing, by the data processing hardware, the nonlinear optimization problem into a second linear optimization problem based on the first solution at the first time instance; and

determining, by the data processing hardware, a second solution to the second linear optimization problem based on the first solution using the quadratic programming; and

generating, by the data process hardware, a joint command to control motion of the legged robot during the maneuver based on the second solution.

2. The method of claim 1 , further comprising:

determining, by the data processing hardware, an integrated solution based on the second solution and forward dynamics for the legged robot; and

determining, by the data processing hardware, that a comparison between the integrated solution and the second solution satisfies an optimization threshold, the optimization threshold indicating a degree of accuracy for a respective solution to generate a joint command.

3. The method of claim 1 , further comprising, at the second time instance:

determining, by the data processing hardware, that the second solution fails to satisfy a nonlinear constraint;

generating, by the data processing hardware, an iterative constraint for the second linear optimization problem, the iterative constraint comprising a linear constraint based on failure of the second solution to satisfy the nonlinear constraint; and

updating, by the data processing hardware, the second solution to the second linear optimization problem using the quadratic programming, the quadratic programming comprising the iterative constraint.

4. The method of claim 1 , wherein the unknown force corresponds to a force at a foot of the legged robot when the legged robot performs the maneuver.

5. The method of claim 1 , wherein the unknown position vector corresponds to a location of a body of the legged robot relative to a foot of the legged robot when the legged robot performs the maneuver.

6. The method of claim 1 , wherein each of the first solution and the second solution comprise contact forces for one or more legs of the legged robot against a surface, touchdown positions for the one or more legs of the legged robot, touchdown times for the one or more legs of the legged robot, or liftoff times for the one or more legs of the legged robot.

7. The method of claim 1 , further comprising instructing, by the data processing hardware, joints of at least one stance leg of the legged robot based on the joint command, the joint command comprising joint torques for the joints of the at least one stance leg.

8. The method of claim 7 , further comprising generating, by the data processing hardware, the joint torques for the joints of the at least one stance leg by determining that contact forces of the second solution that correspond to the at least one stance leg satisfy torque limit constraints for at least one stance leg and friction constraints for the at least one stance leg.

9. The method of claim 1 , wherein the legged robot corresponds to a quadruped robot.

10. The method of claim 1 , wherein receiving the maneuver comprises receiving the maneuver from a user device in communication with the data processing hardware, and wherein the maneuver is defined by a user of the user device at a user interface executing on the user device.

11. A robot comprising:

a body;

two or more legs coupled to the body; and

a control system in communication with the body and the two or more legs, the control system comprising data processing hardware and memory hardware in communication with the data processing hardware, the memory hardware storing instructions that when executed on the data processing hardware cause the data processing hardware to perform operations comprising:

receiving a maneuver for the robot and a current state of the robot, the maneuver comprising one or more movement events for the robot to perform;

transforming the maneuver and the current state of the robot into a nonlinear optimization problem, the nonlinear optimization problem configured to optimize an unknown force and an unknown position vector;

at a first time instance:

linearizing the nonlinear optimization problem into a first linear optimization problem; and

determining a first solution to the first linear optimization problem using quadratic programming;

at a second time instance subsequent to the first time instance:

linearizing the nonlinear optimization problem into a second linear optimization problem based on the first solution at the first time instance; and

determining a second solution to the second linear optimization problem based on the first solution using the quadratic programming; and

generating a joint command to control motion of the robot during the maneuver based on the second solution.

12. The robot of claim 11 , wherein the operations further comprise:

determining an integrated solution based on the second solution and forward dynamics for the robot; and

determining that a comparison between the integrated solution and the second solution satisfies an optimization threshold, the optimization threshold indicating a degree of accuracy for a respective solution to generate a joint command.

13. The robot of claim 11 , wherein the operations further comprise, at the second time instance:

determining that the second solution fails to satisfy a nonlinear constraint;

generating an iterative constraint for the second linear optimization problem, the iterative constraint comprising a linear constraint based on failure of the second solution to satisfy the nonlinear constraint; and

updating the second solution to the second linear optimization problem using the quadratic programming, the quadratic programming comprising the iterative constraint.

14. The robot of claim 11 , wherein the unknown force corresponds to a force at a foot of the robot when the robot performs the maneuver.

15. The robot of claim 11 , wherein the unknown position vector corresponds to a location of the body of the robot relative to a foot of the robot when the robot performs the maneuver.

16. The robot of claim 11 , wherein each of the first solution and the second solution comprise contact forces for one or more legs of the robot against a surface, touchdown positions for the one or more legs of the robot, touchdown times for the one or more legs of the robot, or liftoff times for the one or more legs of the robot.

17. The robot of claim 11 , wherein the operations further comprise instructing joints of at least one stance leg of the two or more legs of the robot based on the joint command, the joint command comprising joint torques for the joints of the at least one stance leg.

18. The robot of claim 17 , wherein the operations further comprise generating the joint torques for the joints of the at least one stance leg by determining that contact forces of the second solution that correspond to the at least one stance leg satisfy torque limit constraints for at least one stance leg and friction constraints for the at least one stance leg.

19. The robot of claim 11 , wherein the robot corresponds to a quadruped robot.

20. The robot of claim 11 , wherein receiving the maneuver comprises receiving the maneuver from a user device in communication with the data processing hardware, and wherein the maneuver is defined by a user of the user device at a user interface executing on the user device.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2024
From: WHITMAN, ERIC; KHRIPIN, ALEX
To: BOSTON DYNAMICS, INC.
Reel/Frame 068129/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATIONS NUMBERS 63127573 AND 11/302759 AND THE CITY OF THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 057111 FRAME: 0202. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 27, 2021
From: BOSTON DYNAMICS, INC.
To: BOSTON DYNAMICS, INC.
Reel/Frame 057964/0415 →
CHANGE OF NAME Recorded Oct 5, 2021
From: BOSTON DYNAMICS, INC.
To: BOSTON DYNAMICS, INC.
Reel/Frame 057711/0202 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2019
From: WHITMAN, ERIC; KHRIPIN, ALEX
To: BOSTON DYNAMICS, INC.
Reel/Frame 050771/0744 →
Continuity (1)
Related Publication 20210107150A1 · Apr 15, 2021
Cited By (3)
US 12,235,652 US 12,372,982 US 12,468,300