IP Library Granted Patent US 11,559,893
Granted Patent B2
US 11,559,893 · App. 16/838,641 · Granted Jan 24, 2023

Robot control for avoiding singular configurations

Inventor: Sean Alexander Cassero (Palo Alto, CA)
Assignee: Intrinsic Innovation LLC
B25J9/1666B25J9/163B25J9/1607B25J9/1664G05B2219/37365G05B2219/40354G05B2219/50391
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,559,893
App. No.
16/838,641
Granted
Jan 24, 2023
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for avoiding singular configurations of a robot. A singular configuration of the robot is obtained. A location of an end effector of the robot when the robot is in the singular configuration is determined. For each of a plurality of voxels in a workcell, a distance from the voxel to the location of the end effector when the robot is in the singular configuration is computed. A negative potential gradient of the computed distance is computed. Control rules are generated, wherein the control rules, when followed by the robot, offset the trajectory of the robot according to the negative potential gradient.

Claims (100)

1. A computer-implemented method comprising:

obtaining a singular configuration of a robot;

determining a location of an end effector of the robot when the robot is in the singular configuration;

for each of a plurality of voxels in a workcell, computing a respective distance from the voxel to the location of the end effector when the robot is in the singular configuration;

computing a negative potential gradient of the computed distance, wherein a magnitude of the negative potential gradient is inversely proportional to the distance from the singular configuration; and

generating control rules to be followed by the robot, wherein the control rules, when followed by the robot, cause the robot to avoid the singular configuration by offsetting a trajectory of the robot according to the respective negative potential gradients of the voxels through which the robot end effector travels.

2. The method of claim 1 , further comprising controlling the robot according to the control rules.

3. The method of claim 2 , wherein controlling the robot according to the control rules comprises:

accessing an initial Cartesian trajectory comprising a sequence of initial Cartesian-space poses in Cartesian space;

for each initial Cartesian-space pose of the sequence:

computing a modified Cartesian-space pose by enforcing the control rules on the initial Cartesian-space pose; and

computing a joint-space pose in joint space by applying inverse kinematic to the modified Cartesian-space pose; and

controlling the robot according to a joint position trajectory, wherein the joint position trajectory is defined by a sequence of the computed joint-space poses.

4. The method of claim 3 , wherein computing the modified Cartesian-space pose comprises displacing the initial Cartesian-space pose in a local direction of the negative potential gradient.

5. The method of claim 3 , wherein computing the modified Cartesian-space pose comprises displacing the initial Cartesian-space pose in a local direction of the negative potential gradient by a distance proportional to a local magnitude of the negative potential gradient.

6. The method of claim 1 , wherein obtaining the singular configuration of the robot comprises computing the singular configuration of the robot.

7. The method of claim 6 , wherein computing the singular configuration of the robot comprises computing a plurality of singular configurations of the robot;

and wherein computing the respective distance from a voxel to the location of the end effector when the robot is in the singular configuration comprises:

for each of the plurality of singular configurations, computing a distance from the voxel to the location of the end effector when the robot is in the singular configuration; and

mapping each voxel to the distance from the voxel to the location of a nearest location of the end effector that corresponds to one of the singular configurations.

8. The method of claim 6 , wherein computing the singular configuration of the robot comprises:

computing a Jacobian matrix of the robot, the Jacobian matrix of the robot being computed by computing a time derivative of kinematic equations of the robot; and

identifying a configuration of the robot where the Jacobian matrix does not have an inverse as the singular configuration of the robot.

9. The method of claim 8 , wherein the robot comprises a plurality of joints, and wherein the configuration of the robot is defined by an angle of each of the joints of the robot.

10. The method of claim 1 , wherein the singular configuration is obtained from a pre-generated database of singular configurations computed for a particular robot model.

11. A computer-implemented method for controlling a robot at runtime, the method comprising:

accessing an initial Cartesian trajectory comprising a sequence of initial Cartesian-space poses in Cartesian space;

for each initial Cartesian-space pose of the sequence:

computing a modified Cartesian-space pose by enforcing control rules on the initial Cartesian-space pose, wherein enforcing the control rules on the initial Cartesian-space pose comprises offsetting the initial Cartesian-space pose according to a negative potential gradient of a distance from the initial Cartesian-space pose to a location of an end effector of the robot when the robot is in a singular configuration, wherein a magnitude of the negative potential gradient is inversely proportional to the distance; and

computing a joint-space pose in joint space by applying inverse kinematic to the modified Cartesian-space pose; and

controlling the robot according to a joint position trajectory, wherein the joint position trajectory is defined by a sequence of the computed joint-space poses.

12. The method of claim 11 , wherein computing the modified Cartesian-space pose comprises displacing the initial Cartesian-space pose in a local direction of the negative potential gradient.

13. The method of claim 11 , wherein computing the modified Cartesian-space pose comprises displacing the initial Cartesian-space pose in a local direction of the negative potential gradient by a distance proportional to a local magnitude of the negative potential gradient.

14. A computer-implemented method comprising:

obtaining a singular configuration of a robot;

for each of a plurality of hypervoxels in a workcell, computing a respective distance from the hypervoxel to the singular configuration;

computing a negative potential gradient of the computed distance, wherein a magnitude of the negative potential gradient is inversely proportional to the distance from the hypervoxel to the singular configuration; and

generating control rules to be followed by the robot, wherein the control rules, when followed by the robot, cause the robot to avoid the singular configuration by offsetting a trajectory of the robot according to the respective negative potential gradients of the hypervoxels.

15. The method of claim 14 , further comprising controlling the robot according to the control rules.

16. The method of claim 15 , wherein controlling the robot according to the control rules comprises:

accessing an initial Cartesian trajectory comprising a sequence of initial Cartesian-space poses in Cartesian space;

for each initial Cartesian-space pose of the sequence:

computing an initial joint-space pose in joint space by applying inverse kinematic to the initial Cartesian-space pose; and

computing a modified joint-space pose by enforcing the control rules on the initial joint-space pose; and

controlling the robot according to a joint position trajectory, wherein the joint position trajectory is defined by a sequence of the computed modified joint-space poses.

17. The method of claim 16 , wherein computing the modified joint-space pose comprises displacing the modified joint-space pose in a local direction of the negative potential gradient by a distance proportional to a local magnitude of the negative potential gradient.

18. The method of claim 14 , wherein the robot comprises a plurality of joints, and wherein each of the hypervoxels in the workcell is a discrete element of a configuration space, wherein the configuration space is an ensemble of a plurality of configurations that the robot can take, and wherein each of the plurality of configurations is defined by an angle of each of the joints of the robot.

19. A computer-implemented method for controlling a robot at runtime, the method comprising:

accessing an initial Cartesian trajectory comprising a sequence of initial Cartesian-space poses in Cartesian space;

for each initial Cartesian-space pose of the sequence:

computing an initial joint-space pose in joint space by applying inverse kinematic to the initial Cartesian-space pose; and

computing a modified joint-space pose by enforcing control rules on the initial joint-space pose, wherein enforcing the control rules on the initial joint-space pose comprises offsetting the initial joint-space pose according to a negative potential gradient of a distance from the initial joint-space pose to a singular configuration, wherein a magnitude of the negative potential gradient is inversely proportional to the distance; and

controlling the robot according to a joint position trajectory, wherein the joint position trajectory is defined by a sequence of the computed modified joint-space poses.

20. The method of claim 19 , wherein computing the modified joint-space pose comprises displacing the initial joint-space pose in a local direction of the negative potential gradient by a distance proportional to a local magnitude of the negative potential gradient.

21. A computing system comprising a plurality of computers and one or more storage devices storing instructions that are operable, when executed by the plurality of computers, to cause the plurality of computers perform operations comprising:

obtaining a singular configuration of a robot;

determining a location of an end effector of the robot when the robot is in the singular configuration;

for each of a plurality of voxels in a workcell, computing a respective distance from the voxel to the location of the end effector when the robot is in the singular configuration;

computing a negative potential gradient of the computed distance, wherein a magnitude of the negative potential gradient is inversely proportional to the distance from the singular configuration; and

generating control rules to be followed by the robot, wherein the control rules, when followed by the robot, cause the robot to avoid the singular configuration by offsetting a trajectory of the robot according to the respective negative potential gradients of the voxels through which the robot end effector travels.

22. One or more non-transitory computer storage media encoded with computer program instructions that when executed by a distributed system comprising a plurality of computers cause the plurality of computers to perform operations comprising:

obtaining a singular configuration of a robot;

determining a location of an end effector of the robot when the robot is in the singular configuration;

for each of a plurality of voxels in a workcell, computing a respective distance from the voxel to the location of the end effector when the robot is in the singular configuration;

computing a negative potential gradient of the computed distance, wherein a magnitude of the negative potential gradient is inversely proportional to the distance from the singular configuration; and

generating control rules to be followed by the robot, wherein the control rules, when followed by the robot, cause the robot to avoid the singular configuration by offsetting a trajectory of the robot according to the respective negative potential gradients of the voxels through which the robot end effector travels.

23. A computing system comprising a plurality of computers and one or more storage devices storing instructions that are operable, when executed by the plurality of computers, to cause the plurality of computers perform operations comprising:

accessing an initial Cartesian trajectory comprising a sequence of initial Cartesian-space poses in Cartesian space;

for each initial Cartesian-space pose of the sequence:

computing a modified Cartesian-space pose by enforcing control rules on the initial Cartesian-space pose, wherein enforcing the control rules on the initial Cartesian-space pose comprises offsetting the initial Cartesian-space pose according to a negative potential gradient of a distance from the initial Cartesian-space pose to a location of an end effector of a robot when the robot is in a singular configuration, wherein a magnitude of the negative potential gradient is inversely proportional to the distance; and

computing a joint-space pose in joint space by applying inverse kinematic to the modified Cartesian-space pose; and

controlling the robot according to a joint position trajectory, wherein the joint position trajectory is defined by a sequence of the computed joint-space poses.

24. One or more non-transitory computer storage media encoded with computer program instructions that when executed by a distributed system comprising a plurality of computers cause the plurality of computers to perform operations comprising:

accessing an initial Cartesian trajectory comprising a sequence of initial Cartesian-space poses in Cartesian space;

for each initial Cartesian-space pose of the sequence:

computing a modified Cartesian-space pose by enforcing control rules on the initial Cartesian-space pose, wherein enforcing the control rules on the initial Cartesian-space pose comprises offsetting the initial Cartesian-space pose according to a negative potential gradient of a distance from the initial Cartesian-space pose to a location of an end effector of a robot when the robot is in a singular configuration, wherein a magnitude of the negative potential gradient is inversely proportional to the distance; and

computing a joint-space pose in joint space by applying inverse kinematic to the modified Cartesian-space pose; and

controlling the robot according to a joint position trajectory, wherein the joint position trajectory is defined by a sequence of the computed joint-space poses.

25. A computing system comprising a plurality of computers and one or more storage devices storing instructions that are operable, when executed by the plurality of computers, to cause the plurality of computers perform operations comprising:

obtaining a singular configuration of a robot;

for each of a plurality of hypervoxels in a workcell, computing a respective distance from the hypervoxel to the singular configuration;

computing a negative potential gradient of the computed distance, wherein a magnitude of the negative potential gradient is inversely proportional to the distance from the hypervoxel to the singular configuration; and

generating control rules to be followed by the robot, wherein the control rules, when followed by the robot, cause the robot to avoid the singular configuration by offsetting a trajectory of the robot according to the respective negative potential gradients of the hypervoxels.

26. One or more non-transitory computer storage media encoded with computer program instructions that when executed by a distributed system comprising a plurality of computers cause the plurality of computers to perform operations comprising:

obtaining a singular configuration of a robot;

for each of a plurality of hypervoxels in a workcell, computing a respective distance from the hypervoxel to the singular configuration;

computing a negative potential gradient of the computed distance, wherein a magnitude of the negative potential gradient is inversely proportional to the distance from the hypervoxel to the singular configuration; and

generating control rules to be followed by the robot, wherein the control rules, when followed by the robot, cause the robot to avoid the singular configuration by offsetting a trajectory of the robot according to the respective negative potential gradients of the hypervoxels.

27. A computing system comprising a plurality of computers and one or more storage devices storing instructions that are operable, when executed by the plurality of computers, to cause the plurality of computers perform operations comprising:

accessing an initial Cartesian trajectory comprising a sequence of initial Cartesian-space poses in Cartesian space;

for each initial Cartesian-space pose of the sequence:

computing an initial joint-space pose in joint space by applying inverse kinematic to the initial Cartesian-space pose; and

computing a modified joint-space pose by enforcing control rules on the initial joint-space pose, wherein enforcing the control rules on the initial joint-space pose comprises offsetting the initial joint-space pose according to a negative potential gradient of a distance from the initial joint-space pose to a singular configuration, wherein a magnitude of the negative potential gradient is inversely proportional to the distance; and

controlling a robot according to a joint position trajectory, wherein the joint position trajectory is defined by a sequence of the computed modified joint-space poses.

28. One or more non-transitory computer storage media encoded with computer program instructions that when executed by a distributed system comprising a plurality of computers cause the plurality of computers to perform operations comprising:

accessing an initial Cartesian trajectory comprising a sequence of initial Cartesian-space poses in Cartesian space;

for each initial Cartesian-space pose of the sequence:

computing an initial joint-space pose in joint space by applying inverse kinematic to the initial Cartesian-space pose; and

computing a modified joint-space pose by enforcing control rules on the initial joint-space pose, wherein enforcing the control rules on the initial joint-space pose comprises offsetting the initial joint-space pose according to a negative potential gradient of a distance from the initial joint-space pose to a singular configuration, wherein a magnitude of the negative potential gradient is inversely proportional to the distance; and

controlling a robot according to a joint position trajectory, wherein the joint position trajectory is defined by a sequence of the computed modified joint-space poses.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2021
From: X DEVELOPMENT LLC
To: INTRINSIC INNOVATION LLC
Reel/Frame 057650/0218 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2020
From: CASSERO, SEAN ALEXANDER
To: X DEVELOPMENT LLC
Reel/Frame 052609/0490 →