IP Library Granted Patent US 12,070,863
Granted Patent B2
US 12,070,863 · App. 17/898,278 · Granted Aug 27, 2024

Dynamic planning controller

Inventors: Eric Whitman (Waltham, MA); Alex Khripin (Waltham, MA)
Assignee: Boston Dynamics, Inc.
B25J9/1653G05B13/042G06N5/01
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,070,863
App. No.
17/898,278
Filed
Aug 29, 2022
Granted
Aug 27, 2024
Kind
B2
Art Unit
2851
USPC
700/245
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 (46)

1. A method comprising:

identifying, by data processing hardware, a state of a robot and one or more movement events for the robot;

transforming, by the data processing hardware, the state of the robot and the one or more movement events into a nonlinear optimization problem;

identifying, by the data processing hardware, a solution to a first linear optimization problem;

linearizing, by the data processing hardware, using the solution to the first linear optimization problem as a linearization estimate of the nonlinear optimization problem, the nonlinear optimization problem into a second linear optimization problem;

determining, by the data processing hardware, a solution to the second linear optimization problem; and

generating, by the data processing hardware, a command for the robot based on the solution to the second linear optimization problem.

2. The method of claim 1 , further comprising:

linearizing, by the data processing hardware, the nonlinear optimization problem into the first linear optimization problem.

3. The method of claim 1 , wherein the nonlinear optimization problem is configured to optimize one or more of a force or a position vector.

4. The method of claim 3 , wherein one or more of the force is an unknown force or the position vector is an unknown position vector.

5. The method of claim 3 , wherein the force corresponds to a force at a foot of the robot based on performance of at least one of the one or more movement events.

6. The method of claim 3 , wherein the position vector corresponds to a location of a body of the robot relative to a foot of the robot based on performance of at least one of the one or more movement events.

7. The method of claim 1 , wherein identifying the solution to the first linear optimization problem and determining the solution to the second linear optimization problem occur during different time periods.

8. The method of claim 1 , further comprising linearizing, by the data processing hardware, the nonlinear optimization problem into the first linear optimization problem, wherein linearizing the nonlinear optimization problem into the first linear optimization problem and linearizing the nonlinear optimization problem into the second linear optimization problem occur during different time periods.

9. The method of claim 1 , wherein the robot is a quadruped robot.

10. The method of claim 1 , further comprising receiving, at the data processing hardware, information identifying the one or more movement events from a computing device.

11. The method of claim 10 , wherein the one or more movement events are defined based on user input.

12. The method of claim 1 , further comprising causing actuation, by the data processing hardware, of one or more joints of the robot based on the command, the command comprising one or more joint torques for the one or more joints.

13. The method of claim 12 , further comprising generating, by the data processing hardware, the one or more joint torques based on determining that at least a portion of the solution to the second linear optimization problem satisfies one or more of a torque limit constraint or a friction constraint of the robot.

14. The method of claim 1 , wherein the solution to the second linear optimization problem comprises one or more of a contact force, a touchdown position, a touchdown time, or a liftoff time of the robot.

15. The method of claim 1 , further comprising:

determining, by the data processing hardware, an integrated solution based on the solution to the second linear optimization problem and one or more dynamics for the robot; and

determining, by the data processing hardware, that a comparison between the integrated solution and the solution to the second linear optimization problem satisfies an accuracy threshold for generation of the command.

16. The method of claim 1 , further comprising:

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

generating, by the data processing hardware, a linear constraint for the second linear optimization problem based on determining that the solution to the second linear optimization problem fails to satisfy the nonlinear constraint; and

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

17. A robot comprising:

one or more joints; and

a control system in communication with the one or more joints, 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:

identify a state of the robot and one or more movement events for the robot;

transform the state of the robot and the one or more movement events into a nonlinear optimization problem;

identify a solution to a first linear optimization problem;

linearize, using the solution to the first linear optimization problem as a linearization estimate of the nonlinear optimization problem, the nonlinear optimization problem into a second linear optimization problem;

determine a solution to the second linear optimization problem; and

generate a command to control motion of the robot based on the solution to the second linear optimization problem.

18. The robot of claim 17 , wherein to determine the solution to the second linear optimization problem, execution of the instructions by the data processing hardware causes the data processing hardware to determine the solution to the second linear optimization problem using quadratic programming.

19. A method comprising:

identifying, by data processing hardware, a state of a system and one or more movement events for the system;

transforming, by the data processing hardware, the state of the system and the one or more movement events into a nonlinear optimization problem;

identifying, by the data processing hardware, a solution to a first linear optimization problem;

linearizing, by the data processing hardware, using the solution to the first linear optimization problem as a linearization estimate of the nonlinear optimization problem, the nonlinear optimization problem into a second linear optimization problem;

determining, by the data processing hardware, a solution to the second linear optimization problem; and

controlling, by the data processing hardware, motion of the system based on the solution to the second linear optimization problem.

20. The method of claim 19 , wherein the system comprises a robot, wherein controlling motion of the system comprises generating, by the data processing hardware, a joint command for the robot based on the solution to the second linear optimization problem.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2024
From: WHITMAN, ERIC; KHRIPIN, ALEX
To: BOSTON DYNAMICS, INC.
Reel/Frame 068129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2024
From: WHITMAN, ERIC; KHRIPIN, ALEX
To: BOSTON DYNAMICS, INC.
Reel/Frame 067659/0512 →
CHANGE OF NAME Recorded Jun 7, 2024
From: BOSTON DYNAMICS, INC.
To: BOSTON DYNAMICS, INC.
Reel/Frame 067666/0325 →
Continuity (2)
Continuation 16601035 · Oct 14, 2019
Related Publication 20220410390A1 · Dec 29, 2022
Cited By (14)
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