IP Library Granted Patent US 9,969,086
Granted Patent B1
US 9,969,086 · App. 15/714,324 · Granted May 15, 2018

Achieving a target gait in a legged robot based on steering commands

Inventor: Eric Whitman (Waltham, MA)
Assignee: Boston Dynamics, Inc.
B25J9/1664B25J5/00B25J9/1628B25J9/1666B25J13/006Y10S901/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 9,969,086
App. No.
15/714,324
Granted
May 15, 2018
Kind
B1
Abstract

Based on input steering commands, a legged robot may select a target gait. Based on the target gait, the legged robot may obtain a list of gait controllers. Each gait controller may define a gait of the legged robot, and include validity tests and steering commands. The legged robot may apply a cost function to the gait controllers, where the cost for a gait controller is based on a difference between the steering commands of the gait controller and the input steering commands, and a proximity of the legged robot to obstacles should the legged robot operate according the gait controller. The legged robot may reorder the list in increasing magnitude of the cost function, and traverse the list until a validity test associated with a particular gait controller passes. The legged robot may actuate its legs according to the steering commands of the particular gait controller.

Claims (59)

1. A method comprising:

receiving, at at least one processor, a target gait for a legged robot having at least one articulated leg, the target gait based on input steering commands;

based on the target gait, obtaining, at the at least one processor, a list of gait controllers, each gait controller defining a respective gait of the legged robot and including a respective validity test and steering commands for the respective gait;

applying, by the at least one processor, a cost function to the gait controllers in the list, the cost function assigning respective costs to each gait controller;

ordering, by the at least one processor, the list of gait controllers in increasing magnitude of the cost function;

traversing, by the at least one processor, the ordered list in order until a validity test associated with a particular gait controller passes; and

causing, by the at least one processor, actuation of the at least one articulated leg of the legged robot according to output parameters of the particular gait controller.

2. The method of claim 1 , wherein a cost for a given gait controller is based on:

a difference between the steering commands of the given gait controller and the input steering commands; and

a proximity of the legged robot to one or more obstacles when the legged robot operates according a given gait of the given gait controller for a pre-defined period of time.

3. The method of claim 2 , wherein the input steering commands comprise an input velocity and an input yaw rate, wherein the respective steering commands of the gait controllers comprise respective velocities and yaw rates, and wherein the difference between the steering commands of the given gait controller and the input steering commands is based on:

a difference between the respective velocity of the given gait controller and the input velocity; and

a difference between the respective yaw rate of the given gait controller and the input yaw rate.

4. The method of claim 3 , wherein the respective cost assigned to each gait controller increases:

with the difference between the respective yaw rate of the given gait controller and the input yaw rate; or

with the difference between the respective velocity of the given gait controller and the input velocity.

5. The method of claim 3 , wherein applying the cost function to the gait controllers in the list comprises:

estimating a first location for the legged robot based on a first assumption that the legged robot operates according to the input velocity and input yaw rate for the pre-defined period of time; and

estimating a second location for the legged robot based on a second assumption that the legged robot operates according to the given gait controller for the pre-defined period of time,

wherein the cost is also based on a difference between the first location and the second location.

6. The method of claim 3 , wherein applying the cost function to the gait controllers in the list comprises:

estimating a first yaw for the legged robot based on a first assumption that the legged robot operate according to the input yaw rate for the pre-defined period of time; and

estimating a second yaw for the legged robot based on a second assumption that the legged robot operate according to the given gait controller for the pre-defined period of time,

wherein the cost is also based on a difference between the first yaw and the second yaw.

7. The method of claim 2 , wherein the respective cost assigned to each gait controller increases in proportion to the proximity of the legged robot to the one or more obstacles when the robot operates according the given gait of the given gait controller for the pre-defined period of time.

8. The method of claim 2 , wherein the legged robot comprises a proximity sensor configured to detect obstacles in multiple directions, and wherein the proximity of the legged robot to the one or more obstacles is based on a signed-distance grid, points thereon representing respective distances from obstacles, and wherein the signed-distance grid is based on readings from the proximity sensor.

9. The method of claim 1 , wherein the gait controller of the target gait is at the beginning of the ordered list.

10. The method of claim 1 , wherein at least some of the gait controllers are either cyclic gait controllers that define respective touchdown timings and positions for feet of the legged robot that cause the legged robot to operate according to the respective gaits, acyclic gait controllers that define touchdown timings and positions for the feet that cause the legged robot to transition from one gait to another, or recovery gait controllers that define touchdown timings and positions for the feet that cause the legged robot to recover from deviations from a cyclic or acyclic gait.

11. A legged robot comprising:

at least one articulated leg;

at least one processor in communication with the at least one articulated leg; and

a data storage device in communication with the at least one processor, the data storage device storing instructions that when executed on the at least one processor cause the at least one processor to perform operations comprising:

receiving a target gait for the legged robot, the target gait based on input steering commands;

based on the target gait, obtaining a list of gait controllers, each gait controller defining a respective gait of the legged robot and including a respective validity test and steering commands for the respective gait;

applying a cost function to the gait controllers in the list, the cost function assigning respective costs to each gait controller;

ordering the list of gait controllers in increasing magnitude of the cost function;

traversing the ordered list in order until a validity test associated with a particular gait controller passes; and

causing actuation of the at least one articulated leg of the legged robot according to output parameters of the particular gait controller.

12. The legged robot of claim 11 , wherein a cost for a given gait controller is based on:

a difference between the steering commands of the given gait controller and the input steering commands; and

a proximity of the legged robot to one or more obstacles when the legged robot operates according a given gait of the given gait controller for a pre-defined period of time.

13. The legged robot of claim 12 , wherein the input steering commands comprise an input velocity and an input yaw rate, wherein the respective steering commands of the gait controllers comprise respective velocities and yaw rates, and wherein the difference between the steering commands of the given gait controller and the input steering commands is based on:

a difference between the respective velocity of the given gait controller and the input velocity; and

a difference between the respective yaw rate of the given gait controller and the input yaw rate.

14. The legged robot of claim 13 , wherein the respective cost assigned to each gait controller increases:

with the difference between the respective yaw rate of the given gait controller and the input yaw rate; or

with the difference between the respective velocity of the given gait controller and the input velocity.

15. The legged robot of claim 13 , wherein applying the cost function to the gait controllers in the list comprises:

estimating a first location for the legged robot based on a first assumption that the legged robot operates according to the input velocity and input yaw rate for the pre-defined period of time; and

estimating a second location for the legged robot based on a second assumption that the legged robot operates according to the given gait controller for the pre-defined period of time,

wherein the cost is also based on a difference between the first location and the second location.

16. The legged robot of claim 13 , wherein applying the cost function to the gait controllers in the list comprises:

estimating a first yaw for the legged robot that the legged robot operate according to the input yaw rate for the pre-defined period of time; and

estimating a second yaw for the legged robot that the legged robot operate according to the given gait controller for the pre-defined period of time,

wherein the cost is also based on a difference between the first yaw and the second yaw.

17. The legged robot of claim 12 , wherein the respective cost assigned to each gait controller increases in proportion to the proximity of the legged robot to the one or more obstacles when the robot operates according the given gait of the given gait controller for the pre-defined period of time.

18. The legged robot of claim 12 , further comprising a proximity sensor in communication with the data processing hardware, the proximity sensor configured to detect obstacles in multiple directions, and wherein the proximity of the legged robot to the one or more obstacles is based on a signed-distance grid, points thereon representing respective distances from obstacles, and wherein the signed-distance grid is based on readings from the proximity sensor.

19. The legged robot of claim 11 , wherein the gait controller of the target gait is at the beginning of the ordered list.

20. The legged robot of claim 11 , wherein at least some of the gait controllers are either cyclic gait controllers that define respective touchdown timings and positions for feet of the legged robot that cause the legged robot to operate according to the respective gaits, acyclic gait controllers that define touchdown timings and positions for the feet that cause the legged robot to transition from one gait to another, or recovery gait controllers that define touchdown timings and positions for the feet that cause the legged robot to recover from deviations from a cyclic or acyclic gait.

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 Sep 14, 2020
From: WHITMAN, ERIC
To: GOOGLE INC.
Reel/Frame 053760/0722 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2020
From: GOOGLE INC.
To: BOSTON DYNAMICS, INC.
Reel/Frame 053760/0789 →
Continuity (1)
Continuation 14931458 · Nov 3, 2015