IP Library Granted Patent US 9,517,561
Granted Patent B2
US 9,517,561 · App. 14/586,519 · Granted Dec 13, 2016

Natural pitch and roll

Inventors: Alex Khripin (Waltham, MA); Alfred Anthony Rizzi (Waltham, MA)
Assignee: Google Inc.
B25J9/1694B62D57/032G05B2219/39082G05B2219/39215Y10S901/01Y10S901/09Y10S901/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,517,561
App. No.
14/586,519
Granted
Dec 13, 2016
Kind
B2
Abstract

A control system may receive a first plurality of measurements indicative of respective joint angles corresponding to a plurality of sensors connected to a robot. The robot may include a body and a plurality of jointed limbs connected to the body associated with respective properties. The control system may also receive a body orientation measurement indicative of an orientation of the body of the robot. The control system may further determine a relationship between the first plurality of measurements and the body orientation measurement based on the properties associated with the jointed limbs of the robot. Additionally, the control system may estimate an aggregate orientation of the robot based on the first plurality of measurements, the body orientation measurement, and the determined relationship. Further, the control system may provide instructions to control at least one jointed limb of the robot based on the estimated aggregate orientation of the robot.

Claims (76)

1. A method comprising:

receiving, from a plurality of sensors connected to a robot, a first plurality of measurements indicative of respective joint angles of a plurality of jointed limbs, wherein the robot comprises a body and the plurality of jointed limbs is connected to the body, and wherein the plurality of jointed limbs is associated with respective properties;

receiving a body orientation measurement indicative of an orientation of the body of the robot;

determining a relationship between the first plurality of measurements and the body orientation measurement based on the respective properties associated with the plurality of jointed limbs of the robot;

determining, based on the first plurality of measurements, the body orientation measurement, and the determined relationship, a predicted aggregate orientation the robot is estimated to be in at a future time;

before causing the robot to assume the predicted aggregate orientation, determining, based on the predicted aggregate orientation, that the predicted aggregate orientation is an unstable aggregate orientation; and

in response to determining that the predicted aggregate orientation of the robot is an unstable aggregate orientation, providing instructions to balance the predicted aggregate orientation by causing the robot to move at least one jointed limb of the plurality of jointed limbs of the robot.

2. The method of claim 1 , wherein the determined relationship is a first relationship, and wherein the method further comprises:

determining a particular mode of operation of the robot corresponding to one or more of the first plurality of measurements being within one or more respective operating ranges; and

determining a second relationship between the first plurality of measurements and the body orientation measurement associated with the particular mode of operation based on (i) the respective properties associated with the plurality of jointed limbs of the robot and (ii) the determined particular mode of operation of the robot.

3. The method of claim 2 , wherein determining the predicted aggregate orientation the robot is estimated to be in at the future time comprises:

based on determining that the robot is operating in the particular mode of operation, determining the predicted orientation the robot is estimated to be in at the future time based on the first plurality of measurements, the body orientation measurement, and the second relationship.

4. The method of claim 1 , wherein providing instructions to balance the predicted aggregate orientation by causing the robot to move the at least one jointed limb of the plurality of jointed limbs of the robot comprises:

based on the predicted aggregate orientation, determining an extent of force with which to place the at least one jointed limb of the plurality of jointed limbs of the robot on a surface in order to balance the predicted aggregate orientation; and

providing instructions to place the at least one jointed limb of the plurality of jointed limbs of the robot on the surface using the determined extent of force.

5. The method of claim 1 , wherein providing instructions to balance the predicted aggregate orientation by causing the robot to move the at least one jointed limb of the plurality of jointed limbs of the robot comprises:

based on the predicted aggregate orientation, determining a location to which to move the at least one jointed limb of the plurality of jointed limbs of the robot in order to balance the predicted aggregate orientation; and

providing instructions to move the at least one jointed limb of the plurality of jointed limbs of the robot to the determined location.

6. The method of claim 1 , wherein the provided instructions are first instructions, and wherein the method further comprises:

determining a path indicative of an expected trajectory of the robot based on the predicted aggregate orientation;

determining that an object is present within the determined path; and

based on determining that the object is present within the determined path, providing second instructions to control at least one jointed limb of the plurality of jointed limbs of the robot to avoid colliding with the object.

7. The method of claim 1 , further comprising:

estimating an angular velocity of the robot based on the predicted aggregate orientation of the robot; and

providing instructions to balance the predicted aggregate orientation by causing the robot to move the at least one jointed limb of the plurality of jointed limbs of the robot based on the determined estimated angular velocity.

8. The method of claim 7 , wherein the provided instructions are first instructions, and wherein the method further comprises:

receiving, from the plurality of sensors connected to the robot, a second plurality of measurements indicative of external forces exerted on the robot;

based on the received second plurality of measurements and the estimated angular velocity of the robot, determining a component of the estimated angular velocity caused by the external forces exerted on the robot; and

providing second instructions to balance the predicted aggregate orientation by causing the robot to move the at least one jointed limb of the plurality of jointed limbs of the robot based on the determined component of the estimated angular velocity caused by the external forces exerted on the robot.

9. The method of claim 1 , wherein the provided instructions are first instructions, and wherein the method further comprises:

providing a path indicative of a desired trajectory of the robot; and

based on the provided path and the predicted aggregate orientation of the robot, providing second instructions to control at least one jointed limb of the plurality of jointed limbs of the robot to maneuver the robot to travel along the provided path.

10. The method of claim 1 , wherein the provided instructions are first instructions, and wherein the method further comprises:

after causing the robot to assume the predicted aggregate orientation, determining a current aggregate orientation of the robot based on the first plurality of measurements, the body orientation measurement, and the determined relationship;

determining that a current stance of the robot is not stable based on the current aggregate orientation of the robot; and

in response to determining that the current stance of the robot is not stable, providing second instructions to control at least one jointed limb of the plurality of jointed limbs of the robot to adjust the current stance of the robot.

11. The method of claim 1 , wherein the provided instructions are first instructions, and wherein the method further comprises:

receiving, from the plurality of sensors connected to the robot, a second plurality of measurements indicative of external forces exerted on the robot;

determining an estimated angular velocity of the robot based on the predicted aggregate orientation of the robot;

determining a component of the estimated angular velocity caused by movements of the plurality of jointed limbs of the robot; and

providing second instructions to balance the predicted aggregate orientation by causing the robot to move the at least one jointed limb of the plurality of jointed limbs of the robot based on the determined component of the estimated angular velocity caused by movements of the plurality of jointed limbs of the robot.

12. The method of claim 1 , further comprising:

determining whether an object is in front of the robot; and

providing instructions to stop the robot responsive to determining that the object is in front of the robot.

13. The method of claim 1 , further comprising:

determining whether an object is within reach of a particular jointed limb of the plurality of jointed limbs of the robot; and

providing instructions to limit an angle through which the particular jointed limb can move to avoid making contact with the object.

14. The method of claim 1 , wherein the provided instructions are first instructions, wherein the robot is in midair above a surface, and wherein the method further comprises:

determining an angle by which to adjust the at least one jointed limb of the plurality of jointed limbs based on the predicted aggregate orientation in order to balance the predicted aggregate orientation of the robot when the at least one jointed limb of the plurality of jointed limbs lands on the surface; and

providing second instructions to adjust the at least one jointed limb of the plurality of jointed limbs by the determined angle.

15. The method of claim 1 , further comprising:

receiving, from the plurality of sensors connected to the robot, a second plurality of measurements indicative of external forces exerted on the robot;

determining a measured angular momentum of the robot based on the second plurality of measurements and at least one of (i) the first plurality of measurements, and (ii) the body orientation measurement, wherein the measured angular momentum includes noise having a first average amplitude;

estimating an angular velocity of the robot based on the predicted aggregate orientation of the robot;

determining an estimated angular momentum based on the measured angular momentum and the estimated angular velocity, wherein the estimated angular momentum includes noise having a second average amplitude, wherein the second average amplitude is less than the first average amplitude.

16. A robot comprising:

a body;

a plurality of jointed limbs connected to the body, wherein the plurality of jointed limbs is associated with respective properties;

a first plurality of sensors configured to provide a first plurality of measurements indicative of respective joint angles of the plurality of jointed limbs;

a second sensor configured to provide a body orientation measurement indicative of an orientation of the body of the robot, wherein the second sensor is coupled to the body;

a processing system, including a processor and a memory, configured to:

determine a relationship between the first plurality of measurements and the body orientation measurement based on the respective properties associated with the plurality of jointed limbs

determine, based on the first plurality of measurements, the body orientation measurement, and the determined relationship, a predicted aggregate orientation the robot is estimated to be in at a future time;

before causing the robot to assume the predicted aggregate orientation, determine, based on the predicted aggregate orientation, that the predicted aggregate orientation is an unstable aggregate orientation; and

in response to determining that the predicted aggregate orientation of the robot is an unstable aggregate orientation, provide instructions to balance the predicted aggregate orientation by causing the robot to move at least one jointed limb of the plurality of jointed limbs of the robot.

17. The robot of claim 16 , wherein the respective properties associated with the plurality of jointed limbs include a mass of each jointed limb and a shape of each jointed limb, and wherein the determined relationship further indicates a relationship between a torque produced from moving a given jointed limb of the plurality of jointed limbs and a torque applied to a portion of the robot.

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

receiving, from a plurality of sensors connected to the robot, a first plurality of measurements indicative of respective joint angles of a plurality of jointed limbs, wherein the robot comprises the plurality of jointed limbs, and wherein the plurality of jointed limbs is associated with respective properties;

receiving a body orientation measurement indicative of an orientation of a portion of the robot;

determining a relationship between the first plurality of measurements and the body orientation measurement based on the respective properties associated with the plurality of jointed limbs of the robot;

determining, based on the first plurality of measurements, the body orientation measurement, and the determined relationship, a predicted aggregate orientation the robot is estimated to be in at a future time;

before causing the robot to assume the predicted aggregate orientation, determining, based on the predicted aggregate orientation, that the predicted aggregate orientation is an unstable aggregate orientation; and

in response to determining that the predicted aggregate orientation of the robot is an unstable aggregate orientation, providing instructions to balance the predicted aggregate orientation by causing the robot to move at least one jointed limb of the plurality of jointed limbs of the robot.

19. The non-transitory computer-readable medium of claim 18 , wherein the operations further comprise:

providing the predicted aggregate orientation of the robot to a control system, wherein the control system is configured to maintain a balance of the robot.

20. The method of claim 1 , wherein the respective properties associated with the plurality of jointed limbs include a mass of each jointed limb and a shape of each jointed limb, and wherein the determined relationship further indicates a relationship between a torque produced from moving a given jointed limb of the plurality of jointed limbs and a torque applied to a portion of the robot.

Assignments (7)
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 →
LICENSE Recorded Jun 24, 2019
From: BOSTON DYNAMICS INC
To: US GOVERNMENT AS REPRESENTED BY THE SECRETARY OF THE ARMY
Reel/Frame 049566/0472 →
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 Dec 31, 2014
From: KHRIPIN, ALEX; RIZZI, ALFRED ANTHONY
To: GOOGLE INC.
Reel/Frame 034605/0593 →
Continuity (2)
Provisional Application 62041281 · Aug 25, 2014
Related Publication 20160052574A1 · Feb 25, 2016