IP Library Granted Patent US 10,065,311
Granted Patent B1
US 10,065,311 · App. 15/177,319 · Granted Sep 4, 2018

Singularity handling for robot jogging

Inventor: Thomas Buschmann (Mountain View, CA)
Assignee: X DEVELOPMENT LLC
B25J9/163B25J9/1607B25J9/1664
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 10,065,311
App. No.
15/177,319
Granted
Sep 4, 2018
Kind
B1
Abstract

Methods, apparatus, systems, and computer-readable media are provided for avoiding and/or operating robots through singularities. In various implementations, a Cartesian input velocity to be attained by a robot end effector may be received as user input. An attainable velocity of the end effector may be determined that excludes at least one directional component deemed unattainable by the end effector based on physical attribute(s) of the robot. Joint velocities to be attained by joints of the robot in joint space to move the end effector pursuant to the attainable velocity in configuration space may be calculated and scaled to account for a joint velocity limit associated with at least one joint. Actuator trajectories may be calculated for the joints of the robot based at least in part on the scaled joint velocities. The joints of the robot may then be operated in accordance with the calculated joint trajectories.

Claims (44)

1. A computer-implemented method, comprising:

receiving, by one or more processors, an input velocity to be attained by an end effector of a robot in configuration space of the end effector;

identifying as unattainable by the end effector, by one or more of the processors and based on one or more physical attributes of the robot, at least a first translational or rotational velocity component of the input velocity;

identifying as attainable by the end effector, by one or more of the processors and based on one or more physical attributes of the robot, at least a second translational or rotational velocity component of the input velocity;

determining, by one or more of the processors, an attainable velocity of the end effector that excludes the at least first translational or rotational velocity and includes the at least second translational or rotational velocity;

calculating, by one or more of the processors, one or more joint velocities that will be attained by one or more joints of the robot in joint space to move the end effector pursuant to the attainable velocity in configuration space;

scaling, by one or more of the processors, the one or more joint velocities to account for a joint velocity limit associated with at least one of the one or more joints;

calculating, by one or more of the processors, one or more actuator trajectories for the one or more joints of the robot based at least in part on the scaled one or more joint velocities; and

operating, by one or more of the processors, the one or more joints of the robot in accordance with the calculated actuator trajectories.

2. The computer-implemented method of claim 1 , wherein the one or more joint velocities comprises a plurality of joint velocities that are scaled by proportionate amounts.

3. The computer-implemented method of claim 2 , wherein calculating the one or more actuator trajectories comprises determining the one or more actuator trajectories using a higher order function.

4. The computer-implemented method of claim 3 , wherein the higher order method comprises a time integration scheme.

5. The computer-implemented method of claim 3 , wherein the higher order method comprises the Runge-Kutta method.

6. The computer-implemented method of claim 1 , wherein the first translational or rotational velocity component comprises a direction in which a kinematic chain comprised of the one or more joints is already extended a maximum distance.

7. The computer-implemented method of claim 1 , wherein the first translational or rotational velocity component comprises a direction in which a kinematic chain comprised of the one or more joints would reach a singularity.

8. A system comprising one or more processors and memory storing instructions that, in response to execution of the instructions by the one or more processors, cause the one or more processors to:

receive an input velocity to be attained by an end effector of a robot in configuration space of the end effector;

identify as unattainable by the end effector, based on one or more physical attributes of the robot, at least a first translational or rotational velocity component of the input velocity;

identify as attainable by the end effector, based on one or more physical attributes of the robot, at least a second translational or rotational velocity component of the input velocity;

determine an attainable velocity of the end effector that excludes the at least first translational or rotational velocity and includes the at least second translational or rotational velocity;

calculate one or more joint velocities that will be attained by one or more joints of the robot in joint space to move the end effector pursuant to the attainable velocity in configuration space;

scale the one or more joint velocities to account for a joint velocity limit associated with at least one of the one or more joints;

calculate one or more actuator trajectories for the one or more joints of the robot based at least in part on the scaled one or more joint velocities; and

operate the one or more joints of the robot in accordance with the calculated actuator trajectories.

9. The system of claim 8 , wherein the one or more joint velocities comprises a plurality of joint velocities that are scaled by proportionate amounts.

10. The system of claim 9 , wherein calculation of the one or more actuator trajectories comprises determining the one or more actuator trajectories using a higher order function.

11. The system of claim 10 , wherein the higher order method comprises a time integration scheme.

12. The system of claim 10 , wherein the higher order method comprises the Runge-Kutta method.

13. The system of claim 8 , wherein the first translational or rotational velocity component comprises a direction in which a kinematic chain comprised of the one or more joints is already extended a maximum distance.

14. The system of claim 8 , wherein the first translational or rotational velocity component comprises a direction in which a kinematic chain comprised of the one or more joints would reach a singularity.

15. At least one non-transitory computer-readable medium comprising instructions that, in response to execution of the instructions by one or more processors, cause the one or more processors to perform the following operations:

receiving an input velocity to be attained by an end effector of a robot in configuration space of the end effector;

identifying as unattainable by the end effector, based on one or more physical attributes of the robot, at least a first translational or rotational velocity component of the input velocity;

identifying as attainable by the end effector, based on one or more physical attributes of the robot, at least a second translational or rotational velocity component of the input velocity;

determining an attainable velocity of the end effector that excludes the at least first translational or rotational velocity and includes the at least second translational or rotational velocity;

calculating one or more joint velocities that will be attained by one or more joints of the robot in joint space to move the end effector pursuant to the attainable velocity in configuration space;

scaling the one or more joint velocities to account for a joint velocity limit associated with at least one of the one or more joints;

calculating one or more actuator trajectories for the one or more joints of the robot based at least in part on the scaled one or more joint velocities; and

operating the one or more joints of the robot in accordance with the calculated actuator trajectories.

16. The non-transitory computer-readable medium of claim 15 , wherein the one or more joint velocities comprises a plurality of joint velocities that are scaled by proportionate amounts.

17. The non-transitory computer-readable medium of claim 16 , wherein calculating the one or more actuator trajectories comprises determining the one or more actuator trajectories using a higher order function.

18. The non-transitory computer-readable medium of claim 17 , wherein the higher order method comprises a time integration scheme.

19. The non-transitory computer-readable medium of claim 17 , wherein the higher order method comprises the Runge-Kutta method.

20. The non-transitory computer-readable medium of claim 15 , wherein the first translational or rotational velocity component comprises a direction in which a kinematic chain comprised of the one or more joints is already extended a maximum distance.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2016
From: GOOGLE INC.
To: X DEVELOPMENT LLC
Reel/Frame 039900/0610 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2016
From: BUSCHMANN, THOMAS
To: GOOGLE INC.
Reel/Frame 039346/0283 →
Cited By (3)
US 12,496,718 US 12,528,184 US 12,690,421