IP Library Granted Patent US 11,413,750
Granted Patent B2
US 11,413,750 · App. 16/579,255 · Granted Aug 16, 2022

Determination of robotic step path

Inventor: Benjamin Swilling (Waltham, MA)
Assignee: Boston Dynamics, Inc.
B25J9/1664B62D57/032Y10S901/01Y10S901/46
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,413,750
App. No.
16/579,255
Granted
Aug 16, 2022
Kind
B2
Abstract

A method for determining a step path involves obtaining a reference step path for a robot with at least three feet. The reference step path includes a set of spatial points on a surface that define respective target touchdown locations for the at least three feet. The method also involves receiving a state of the robot. The method further involves generating a reference capture point trajectory based on the reference step path. Additionally, the method involves obtaining at least two potential step paths and a corresponding capture point trajectory. Further, the method involves selecting a particular step path of the at least two potential step paths based on a relationship between the at least two potential step paths, the potential capture point trajectory, the reference step path, and the reference capture point trajectory. The method additionally involves instructing the robot to begin stepping in accordance with the particular step path.

Claims (84)

1. A method comprising:

receiving, at a computing device, a reference step path for a legged robot, the reference step path comprising:

a plurality of sets of reference step locations on a surface supporting the robot, each set of reference step locations associated with a respective leg of the robot; and

a reference capture point trajectory including a set of reference capture point locations associated with the respective leg of the robot;

receiving, at the computing device, two or more potential step paths for the legged robot, each potential step path of the two or more potential step paths comprising:

a plurality of respective sets of potential step locations on the surface supporting the robot, each respective set of potential step locations associated with the respective leg of the robot; and

a reference step point trajectory including a set of potential capture point locations associated with the respective leg of the robot;

for each potential step path of the two or more potential step paths:

for each leg of the robot;

for each potential step location in the respective set of potential step locations associated with the respective leg:

determining, by the computing device, a step location error between a corresponding potential step location and a corresponding reference step location in the set of reference step locations associated with the respective leg; and

determining, by the computing device, a capture point error between a corresponding potential capture point location and a corresponding reference capture point location in the set of reference capture point locations associated with the respective leg; and

aggregating, by the computing device, the step location errors to determine an aggregated step location error for the respective leg;

combining, by the computing device, the capture point error and the step location error associated with the respective leg for each potential step location; and

determining, by the computing device, a score for the corresponding potential step path based on a sum of each aggregated step location error for each respective leg of the robot; selecting, by the computing device, a particular potential step path of the two or more potential step paths for maneuvering the robot across the surface, the particular potential step path associated with one of a highest one of the scores or a lowest one of the scores determined for the two or more potential step paths; and

instructing, by the computing device, movement of the robot toward one of the potential step locations of the particular potential step path.

2. The method of claim 1 , further comprising:

after instructing the movement of the robot toward one of the potential step locations of the particular potential step path, determining, by the computing device, that an external force has acted on the robot; and

updating, by the computing device, the particular step path to accommodate for the external force.

3. The method of claim 1 , wherein:

the reference step path further comprises a reference capture point trajectory defining a predicted path that a center of pressure of the robot would travel along while maneuvering the robot based on the reference step path;

each potential step path of the two or more potential step paths further comprises a respective potential capture point trajectory defining a predicted path that the center of pressure of the robot would travel along while maneuvering the robot based on the corresponding potential step path; and

determining the score for the corresponding potential step path is based on:

a difference between the reference capture point trajectory of the reference step path and the respective potential capture point trajectory of the corresponding potential step path; and

a weight value corresponding to a particular stepping behavior of the robot.

4. The method of claim 3 , wherein the reference capture point trajectory is based on the reference step path, a velocity of the robot, a tipping frequency of the robot, and positions of feet of the robot.

5. The method of claim 3 , wherein determining the score for the corresponding potential step path comprises exponentiating the difference between the reference capture point trajectory and the respective potential capture point trajectory of the corresponding potential step path.

6. The method of claim 1 , further comprising exponentiating, by the computing device, the capture point error for the corresponding potential capture point location for each potential step location.

7. The method of claim 6 , wherein exponentiating the capture point error comprises imposing an exponential penalty based on a level of instability of a potential capture point trajectory.

8. The method of claim 1 , further comprising multiplying the capture point error for each potential capture point location for each potential step location by a capture point weight value.

9. The method of claim 1 , wherein determining the score for the corresponding potential step path is based on at least one of a capture point error weight value or a foot placement error weight value.

10. The method of claim 1 , wherein the robot comprises a respective foot coupled to each leg, and the reference step path further comprises respective amounts of force for each respective leg to apply when the feet are in contact with the surface at the respective reference step locations.

11. The method of claim 1 , further comprising, for each potential step path of the two or more potential step paths:

for each respective leg of the robot, determining, by the computing device, a weighted step location error by multiplying the aggregated step location error for the respective leg by a step path weight value,

wherein determining the determining the score for the corresponding potential step path is based on a sum of each weighted step location error for each respective leg of the robot.

12. The method of claim 1 , wherein receiving the reference step path comprises:

receiving an input steering command indicative of a velocity and yaw; and

generating the reference step path based on the input steering command.

13. The method of claim 1 , wherein receiving the two or more potential step paths comprises:

generating a template step path based on a model of the robot; and

generating the two or more potential step paths as variations of the template step path.

14. A robot comprising:

feet configured for movement with respect to a surface; and

a control system in communication with the feet and configured to perform operations comprising:

receiving a reference step path for a legged robot, the reference step path comprising:

a plurality of sets of reference step locations on a surface supporting the robot, each set of reference step locations associated with a respective leg of the robot; and

a reference capture point trajectory including a set of reference capture point locations associated with the respective leg of the robot;

receiving two or more potential step paths for the legged robot, each potential step path of the two or more potential step paths comprising:

a plurality of respective sets of potential step locations on the surface supporting the robot, each respective set of potential step locations associated with the respective leg of the robot; and

a reference step point trajectory including a set of potential capture point locations associated with the respective leg of the robot;

for each potential step path of the two or more potential step paths:

for each leg of the robot:

for each potential step location in the respective set of potential step locations associated with the respective leg:

determining a step location error between a corresponding potential step location and a corresponding reference step location in the set of reference step locations associated with the respective leg; and

determining a capture point error between a corresponding potential capture point location and a corresponding reference capture point location in the set of reference capture point locations associated with the respective leg; and

aggregating the step location errors to determine an aggregated step location error for the respective leg;

combining the capture point error and the step location error associated with the respective leg for each potential step location; and

determining a score for the corresponding potential step path based on a sum of each aggregated step location error for each respective leg of the robot;

selecting a particular potential step path of the two or more potential step paths for maneuvering the robot across the surface, the particular potential step path associated with one of a highest one of the scores or a lowest one of the scores determined for the two or more potential step paths; and

instructing movement of the robot toward one of the potential step locations of the particular potential step path.

15. The robot of claim 14 , wherein the operations further comprise:

after instructing the movement of the robot toward one of the potential step locations of the particular potential step path, determining that an external force has acted on the robot; and

updating the particular step path to accommodate for the external force.

16. The robot of claim 14 , wherein:

the reference step path further comprises a reference capture point trajectory defining a predicted path that a center of pressure of the robot would travel along while maneuvering the robot based on the reference step path;

each potential step path of the two or more potential step paths further comprises a respective potential capture point trajectory defining a predicted path that the center of pressure of the robot would travel along while maneuvering the robot based on the corresponding potential step path; and determining the score for the corresponding potential step path is based on:

a difference between the reference capture point trajectory of the reference step path and the respective potential capture point trajectory of the corresponding potential step path; and

a weight value corresponding to a particular stepping behavior of the robot.

17. The robot of claim 16 , wherein the reference capture point trajectory is based on the reference step path, a velocity of the robot, a tipping frequency of the robot, and positions of feet of the robot.

18. The robot of claim 16 , wherein determining the score for the corresponding potential step path comprises exponentiating the difference between the reference capture point trajectory and the respective potential capture point trajectory of the corresponding potential step path.

19. The robot of claim 14 , wherein the operations further comprise exponentiating the capture point error for the corresponding potential capture point location for each potential step location.

20. The robot of claim 19 , wherein exponentiating the capture point error comprises imposing an exponential penalty based on a level of instability of a potential capture point trajectory.

21. The robot of claim 14 , wherein the operations further comprise multiplying the capture point error for each potential capture point location for each potential step location by a capture point weight value.

22. The robot of claim 14 , wherein determining the score for the corresponding potential step path is based on at least one of a capture point error weight value or a foot placement error weight value.

23. The robot of claim 14 , wherein the robot comprises a respective foot coupled to each leg, and the reference step path further comprises respective amounts of force for each respective leg to apply when the feet are in contact with the surface at the respective reference step locations.

24. The robot of claim 14 , further comprising, for each potential step path of the two or more potential step paths:

for each respective leg of the robot, determining a weighted step location error by multiplying the aggregated step location error for the respective leg by a step path weight value,

wherein determining the determining the score for the corresponding potential step path is based on a sum of each weighted step location error for each respective leg of the robot.

25. The robot of claim 14 , wherein receiving the reference step path comprises:

receiving an input steering command indicative of a velocity and yaw; and

generating the reference step path based on the input steering command.

26. The robot of claim 14 , wherein receiving the two or more potential step paths comprises:

generating a template step path based on a model of the robot; and

generating the two or more potential step paths as variations of the template step path.

Assignments (4)
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 Jan 3, 2020
From: SWILLING, BENJAMIN
To: GOOGLE INC.
Reel/Frame 051406/0388 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2020
From: GOOGLE INC.
To: BOSTON DYNAMICS, INC.
Reel/Frame 051406/0401 →
Continuity (5)
Continuation 16276672 · Feb 15, 2019
Continuation 16106402 · Aug 21, 2018
Continuation 15412304 · Jan 23, 2017
Continuation 14855045 · Sep 15, 2015
Related Publication 20200016750A1 · Jan 16, 2020
Cited By (1)
US 12,427,662