IP Library Granted Patent US 9,586,316
Granted Patent B1
US 9,586,316 · App. 14/855,045 · Granted Mar 7, 2017

Determination of robotic step path

Inventor: Benjamin Swilling (Waltham, MA)
Assignee: Google 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 9,586,316
App. No.
14/855,045
Granted
Mar 7, 2017
Kind
B1
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 (66)

1. A method comprising:

obtaining a reference step path for a robot with at least three feet, wherein 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;

receiving a state of the robot, wherein the state includes a position of the robot, a velocity of the robot, and respective positions of the at least three feet of the robot;

based on the reference step path and the state of the robot, generating a reference capture point trajectory, wherein the reference capture point trajectory defines a predicted path that a center of pressure of the robot would travel along provided that the robot stepped in accordance with the reference step path;

based on the reference step path, generating, by a controller of the robot, at least two potential step paths for the robot and a corresponding potential capture point trajectory;

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, wherein selecting the particular step path comprises: (i) determining at least two combined error values based on combinations of respective corresponding step path errors between the at least two potential step paths and the reference step path, and a capture point trajectory error between the potential capture point trajectory and the reference capture point trajectory, and (ii) selecting, as the particular step path, the potential step path corresponding to a particular combined error value of the at least two combined error values that is a smallest combined error value or is below a threshold error value; and

instructing the robot to begin stepping in accordance with the particular step path, wherein the robot, in response to the instructing, begins moving a foot of the robot toward a touchdown location of the particular step path.

2. The method of claim 1 , wherein determining a given step path error comprises:

multiplying a difference between a potential step path and the reference step path by a step path weight value.

3. The method of claim 2 , further comprising:

selecting the step path weight value from a plurality of step path weight values, wherein each step path weight value of the plurality of step path weight values corresponds to a particular stepping behavior.

4. The method of claim 1 , wherein determining the capture point trajectory error comprises:

squaring a difference between the potential capture point trajectory and the reference capture point trajectory to determine a squared capture point trajectory error; and

multiplying the squared capture point trajectory error by a capture point trajectory weight value.

5. The method of claim 4 , further comprising:

selecting the capture point trajectory weight value from a plurality of capture point trajectory weight values, wherein each capture point trajectory weight value of the plurality of capture point trajectory weight values corresponds to a particular stepping behavior.

6. The method of claim 1 , wherein the reference capture point trajectory includes reference capture point locations, wherein the potential capture point trajectory includes potential capture points locations, wherein each reference capture point location corresponds to a particular potential capture point location, and wherein determining the capture point trajectory error comprises:

determining relative potential capture point locations as differences between the potential capture point locations and corresponding spatial points for a particular leg of the at least three legs of the robot defined by the corresponding potential step path;

determining relative reference capture point locations as differences between the reference capture point locations and corresponding spatial points for the particular leg defined by the reference step path;

determining capture point displacement values as differences between the relative potential capture point locations and the respective relative reference capture point locations; and

determining the capture point trajectory error as a sum of the capture point displacement values.

7. The method of claim 1 , wherein determining a given step path error comprises:

obtaining one or more constraints indicative of physical limitations of the robot;

determining that the potential step path corresponding to the particular combined error value does not violate the one or more constraints; and

selecting, as the particular step path, the potential step path corresponding to the particular combined error value.

8. The method of claim 1 , wherein generating the reference capture point trajectory comprises:

for the set of spatial points, determining corresponding capture points as linear combinations of (i) the position of the robot, (ii) the velocity of the robot, and (iii) the respective position of one of the at least three feet of the robot; and

determining the reference capture point trajectory as a combination of the determined capture points.

9. The method of claim 1 , wherein generating the reference capture point trajectory comprises:

obtaining a model of the robot, wherein the model indicates a manner in which the robot is expected to move when stepping in accordance with a given step path; and

based on the reference step path, the state of the robot, and the model of the robot, determining a predicted future state of the robot; and

based on the predicted future state of the robot and the reference step path, generating the reference capture point trajectory.

10. The method of claim 1 , further comprising:

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

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

11. The method of claim 1 , further comprising:

after a length of time from instructing the robot to begin stepping in accordance with the particular step path, performing steps of (i) obtaining a second reference step path, (ii) receiving a second state of the robot, (iii) generating a second reference capture point trajectory, (iv) obtaining at least two additional potential step paths for the robot and a second corresponding potential capture point trajectory, (v) selecting a second particular potential step path, and (vi) instructing the robot to begin stepping in accordance with the second particular step path.

12. A non-transitory computer-readable medium having instructions stored thereon that, upon execution by at least one processor, causes a robot to perform operations comprising:

obtaining a reference step path for the robot with at least three feet, wherein the reference step path includes a set of spatial points on a surface that define respective target touchdown locations for at least a first foot, a second foot, and a third foot of the robot;

receiving a state of the robot, wherein the state includes a position of the robot, a velocity of the robot, and respective positions of the at least three feet of the robot;

based on the reference step path and the state of the robot, generating a reference capture point trajectory, wherein the reference capture point trajectory defines a predicted path that a center of pressure of the robot would travel along provided that the robot stepped in accordance with the reference step path;

based on the reference step path, generating at least two potential step paths for the robot and a corresponding potential capture point trajectory;

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, wherein selecting the particular step path comprises: (i) determining at least two combined error values based on combinations of respective corresponding step path errors between the at least two potential step paths and the reference step path, and a capture point trajectory error between the potential capture point trajectory and the reference capture point trajectory, and (ii) selecting, as the particular step path, the potential step path corresponding to a particular combined error value of the at least two combined error values that is a smallest combined error value or is below a threshold error value; and

instructing the robot to begin stepping in accordance with the particular step path, wherein the robot, in response to the instructing, begins moving a foot of the robot toward a touchdown location of the particular step path.

13. The non-transitory computer-readable medium of claim 12 , wherein determining a given step path error comprises:

multiplying a difference between a potential step path and the reference step path by a step path weight value.

14. The non-transitory computer-readable medium of claim 12 , wherein determining the capture point trajectory error comprises:

squaring a difference between the corresponding potential capture point trajectory and the reference capture point trajectory to determine a squared capture point trajectory error; and

multiplying the squared capture point trajectory error by a capture point trajectory weight value.

15. A robot comprising:

at least three feet; and

a control system configured to perform operations comprising:

obtaining a reference step path for the robot, wherein 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;

receiving a state of the robot, wherein the state includes a position of the robot, a velocity of the robot, and respective positions of the at least three feet of the robot;

based on the reference step path and the state of the robot, generating a reference capture point trajectory, wherein the reference capture point trajectory defines a predicted path that a center of pressure of the robot would travel along provided that the robot stepped in accordance with the reference step path;

based on the reference step path, generating at least two potential step paths for the robot and a corresponding potential capture point trajectory;

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, wherein selecting the particular step path comprises: (i) determining at least two combined error values based on combinations of respective corresponding step path errors between the at least two potential step paths and the reference step path, and a capture point trajectory error between the potential capture point trajectory and the reference capture point trajectory, and (ii) selecting, as the particular step path, the potential step path corresponding to a particular combined error value of the at least two combined error values that is a smallest combined error value or is below a threshold error value; and

instructing the robot to begin stepping in accordance with the particular step path, wherein the robot, in response to the instructing, begins moving a foot of the robot toward a touchdown location of the particular step path.

16. The robot of claim 15 , wherein generating the reference capture point trajectory comprises:

obtaining a model of the robot, wherein the model indicates a manner in which the robot is expected to move when stepping in accordance with a given step path; and

based on the reference step path, the state of the robot, and the model of the robot, determining a predicted future state of the robot; and

based on the predicted future state of the robot and the reference step path, generating the reference capture point trajectory.

17. The method of claim 15 , wherein determining a given step path error comprises:

obtaining one or more constraints indicative of physical limitations of the robot;

determining that the potential step path corresponding to the particular combined error value does not violate the one or more constraints; and

selecting, as the particular step path, the potential step path corresponding to the particular combined error value.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE REMOVAL OF THE INCORRECTLY RECORDED APPLICATION NUMBERS 14/149802 AND 15/419313 PREVIOUSLY RECORDED AT REEL: 44144 FRAME: 1. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Mar 4, 2024
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 068092/0502 →
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 →
CHANGE OF NAME Recorded Oct 6, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044144/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2017
From: GOOGLE, INC.
To: BOSTON DYNAMICS, INC.
Reel/Frame 043811/0967 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2015
From: SWILLING, BENJAMIN
To: GOOGLE INC.
Reel/Frame 036788/0072 →