# US 12,594,670 B1 · Generating a sequence of pose configurations for a robotic manipulator based on force and velocity ellipsoids

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,594,670 B1
- Document ID: US12594670B1
- Status: Granted
- Kind: B1
- Application number: 18/629,377
- Filed: 2024-04-08
- Granted: 2026-04-07
- Earliest claimed: 2024-04-08
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Yinan Pei; Yuri Anatoly Ivanov
- Web page: https://patentgrep.com/patent/US12594670B1

## CPC

- B25J 9/1664: {characterised by motion, path, trajectory planning}
- B25J: MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES ({manipulators specially adapted for use in surgery A61B34/70; manipulators used in cleaning hollow articles B08B9/04}; manipulators associated with rolling mills B21B39/20; manipulators associated with forging machines B21J13/10; {manipulators associated with picking-up and placing mechanisms B23P19/007}; means for holding wheels or parts thereof B60B30/00; {vehicles with ground-engaging propulsion means, e.g. walking members B62D57/02, B62D57/032; devices for picking-up and depositing articles or materials between conveyors B65G47/90, B65G47/91; manipulators with gripping or holding means for transferring packages B65H67/065}; cranes B66C; {manipulators used in the protection or supervision of pipe-line installations F17D5/00; walking equipment adapted for nuclear steam-generators F22B37/006}; manipulators specially adapted for, or associated with, nuclear reactors G21C; {apparatus used for handling wafers during manufacture or treatment of semiconductor H10P72/50})

## Abstract

Techniques for generating pose sequences for a robotic manipulator to perform a task based on velocity ellipsoids and force ellipsoids are described herein. For example, a computer system can generate candidate pose configurations of a robotic manipulator. Each candidate pose configuration can include a first end of the robotic manipulator being positioned along a trajectory. The computer system can determine a velocity ellipsoid and a force ellipsoid for each candidate pose configuration. The computer system can generate a sequence of pose configurations for the robotic manipulator to perform a task along the trajectory by minimizing a cost function subject to one or more constraints based at least in part on (i) the candidate pose configurations, (ii) a first weight for the velocity ellipsoid, and (iii) a second weight for the force ellipsoid.

## Claims

### Claim 1

A computer system, comprising:
a processing device; and
a non-transitory memory configured to store instructions that are executable by the processing device for causing the processing device to at least:
generate a trajectory of an end effector of a robotic arm based on a set of waypoints, wherein the trajectory is usable by the robotic arm to perform a task involving moving an object grasped by the end effector from an initial location to a destination location;
generate candidate pose configurations of the robotic arm by determining, for each waypoint of the trajectory of the end effector, a plurality of pose configurations that include the end effector being positioned at the waypoint, wherein a pose configuration of the candidate pose configurations comprises one or more joint positions and one or more joint angles of the robotic arm;
determine a velocity term of a cost function based on a velocity ellipsoid for each of the candidate pose configurations;
determine a force term of the cost function based on a force ellipsoid for each of the candidate pose configurations;
determine a first weight for the velocity term and a second weight for the force term;
generate a sequence of pose configurations for the robotic arm to perform the task along the trajectory by minimizing a cost function subject to one more constraints based on (i) the candidate pose configurations, (ii) the first weight and the velocity term, and (iii) the second weight and the force term;
generate a motion plan for the robotic arm based at least in part on the sequence of pose configurations; and
cause the robotic arm to implement the motion plan to execute the task.

### Claim 2 (depends on 1)

The computer system of claim 1, wherein the non-transitory memory is further configured to store instructions that are executable by the processing device for causing the processing device to determine the plurality of pose configurations for each waypoint of the trajectory by:
sampling a predefined number of nearest neighbor pose configurations centered on the waypoint.

### Claim 3 (depends on 2)

The computer system of claim 2, wherein the non-transitory memory is further configured to store instructions that are executable by the processing device for causing the processing device to, for each waypoint of the trajectory:
identify a nearest neighbor pose configuration of the sampled nearest neighbor pose configurations that has a velocity ellipsoid with a highest first major axis value;
identify another nearest neighbor pose configuration that has a force ellipsoid with a highest second major axis value;
normalize the velocity term of the cost function based at least in part on the highest first major axis value; and
normalize the force term of the cost function based at least in part on the highest second major axis value.

### Claim 4 (depends on 1)

The computer system of claim 1, wherein the one or more constraints comprise at least one of a maximum joint range of motion, a maximum velocity value, or a maximum torque value for the robotic arm performing the sequence of pose configurations.

### Claim 5

A computer-implemented method, comprising:
generating candidate pose configurations of a robotic manipulator, each of the candidate pose configurations including a first end of the robotic manipulator being positioned along a trajectory;
determining a velocity ellipsoid and a force ellipsoid for each of the candidate pose configurations;
generating a sequence of pose configurations for the robotic manipulator to perform a task along the trajectory by minimizing a cost function subject to one or more constraints based at least in part on (i) the candidate pose configurations, (ii) a first weight for the velocity ellipsoid, and (iii) a second weight for the force ellipsoid; and
causing the robotic manipulator to perform the task by executing the trajectory and the sequence of pose configurations.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, further comprising, for each of the candidate pose configurations:
determining a first radius of the velocity ellipsoid along a velocity direction of interest for the task; and
determining a second radius of the force ellipsoid along a force direction of interest for the task,
wherein the cost function is minimized at least in part on the first radius and the second radius.

### Claim 7 (depends on 5)

The computer-implemented method of claim 5, wherein the trajectory is usable by the robotic manipulator to move an object grasped at the first end from an initial location to a destination location.

### Claim 8 (depends on 5)

The computer-implemented method of claim 5, wherein each of the candidate pose configurations comprises at least one of one or more joint positions of the robotic manipulator or one or more joint angles of the robotic manipulator resulting in the first end being positioned at a waypoint of the trajectory.

### Claim 9 (depends on 5)

The computer-implemented method of claim 5, wherein the one or more constraints comprises at least one of a maximum joint range of motion, a maximum velocity value, or a maximum torque value for the robotic manipulator performing the sequence of pose configurations.

### Claim 10 (depends on 5)

The computer-implemented method of claim 5, further comprising
generating the trajectory for the first end of the robotic manipulator based at least in part on a set of waypoints,
wherein generating the candidate pose configurations further comprises determining, for each waypoint of the trajectory, a plurality of pose configurations that include the first end of the robotic manipulator being positioned at the waypoint.

### Claim 11 (depends on 10)

The computer-implemented method of claim 10, wherein determining, for each waypoint of the trajectory, the plurality of pose configurations further comprises:
sampling a predefined number of nearest neighbor pose configurations centered on the waypoint.

### Claim 12 (depends on 11)

The computer-implemented method of claim 11, further comprising, for each waypoint of the trajectory:
identifying the nearest neighbor pose configuration having a velocity ellipsoid with a highest first major axis value;
identifying the nearest neighbor pose configuration having a force ellipsoid with a highest second major axis value;
normalizing a first radius for the velocity ellipsoid in the cost function based at least in part on the highest first major axis value; and
normalizing a second radius for the force ellipsoid in the cost function based at least in part on the highest second major axis value.

### Claim 13 (depends on 5)

The computer-implemented method of claim 5, wherein a first value of the first weight or the second weight in the cost function for a first waypoint of the trajectory is different than a second value of the first weight or the second weight in the cost function for a second waypoint of the trajectory.

### Claim 14 (depends on 5)

The computer-implemented method of claim 5, further comprising:
generating a first sequence of pose configurations based on a first velocity weight for the velocity ellipsoid that is higher than a first force weight for the force ellipsoid; and
generating a second sequence of pose configurations based on a second velocity weight for the velocity ellipsoid that is lower than a second force weight for the force ellipsoid,
wherein the robotic manipulator is configured to execute the first sequence of pose configurations at a first linear velocity that is higher than a second linear velocity of the robotic manipulator executing the second sequence of pose configurations.

### Claim 15 (depends on 14)

The computer-implemented method of claim 14, wherein the robotic manipulator is configured to execute the second sequence of pose configurations with a second joint torque that is lower than a first joint torque of the robotic manipulator executing the first sequence of pose configurations.

### Claim 16

One or more non-transitory computer-readable media comprising computer-executable instructions that, when executed by one or more processing devices of a computer system, cause the computer system to perform operations comprising:
generating candidate pose configurations of a robotic manipulator, each of the candidate pose configurations including a first end of the robotic manipulator being positioned along a trajectory;
determining a velocity ellipsoid and a force ellipsoid for each of the candidate pose configurations;
generating a sequence of pose configurations for the robotic manipulator to perform a task along the trajectory by minimizing a cost function subject to one or more constraints based at least in part on (i) the candidate pose configurations, (ii) a first weight for the velocity ellipsoid, and (iii) a second weight for the force ellipsoid; and
causing the robotic manipulator to perform the task by executing the trajectory and the sequence of pose configurations.

### Claim 17 (depends on 16)

The one or more non-transitory computer-readable media of claim 16, wherein the operations further comprise:
receiving sensor data for the robotic manipulator detected while the robotic manipulator is performing the task;
adjusting the sequence of pose configurations based at least in part on the sensor data; and
causing the robotic manipulator to perform a remainder of the task by executing the adjusted sequence of pose configurations.

### Claim 18 (depends on 16)

The one or more non-transitory computer-readable media of claim 16, wherein the task involves manipulating a position of an object via the first end of the robotic manipulator, wherein each of the candidate pose configurations comprises at least one of one or more joint positions of the robotic manipulator or one or more joint angles of the robotic manipulator resulting in the first end being positioned at a waypoint of the trajectory.

### Claim 19 (depends on 18)

The one or more non-transitory computer-readable media of claim 18, wherein the operations further comprise:
receiving sensor data associated with the robotic manipulator manipulating the position of the object, the sensor data comprising at least one of torque data, velocity data, or position data for the robotic manipulator or the object; and
determining the first weight or the second weight based at least in part on the sensor data.

### Claim 20 (depends on 16)

The one or more non-transitory computer-readable media of claim 16, wherein the operations further comprise, for each of the candidate pose configurations:
determining a first radius of the velocity ellipsoid along a velocity direction of interest for the task; and
determining a second radius of the force ellipsoid along a force direction of interest for the task,
wherein the cost function is minimized at least in part by using the first radius and the second radius.
