IP Library Granted Patent US 12,210,335
Granted Patent B2
US 12,210,335 · App. 17/338,486 · Granted Jan 28, 2025

Workcell modeling using motion profile matching and swept profile matching

Inventors: Timothy Robert Kelch (San Jose, CA); Dirk Holz (Mountain View, CA)
Assignee: Intrinsic Innovation LLC
G05B19/414G05B19/21G05B19/4063G05B19/40931G06F30/17G06F30/20G06N5/04G06N20/00
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 12,210,335
App. No.
17/338,486
Granted
Jan 28, 2025
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for measuring and reporting calibration accuracy of robots and sensors assigned to perform a task in an operating environment. One of the methods includes obtaining sensor data of one or more physical robots performing a process in an operating environment; generating, from the sensor data for a first robot of the one or more physical robots, a motion profile representing how the first robot moves while performing the process; obtaining data representing a plurality of candidate virtual robot components, each having a respective virtual motion profile and is a candidate to be included in a virtual representation of the operating environment; performing a motion profile matching process to determine a first virtual robot component from the plurality of candidate virtual robot components that matches the first robot; and adding the first virtual robot component to the virtual representation.

Claims (61)

1. A computer-implemented method comprising:

obtaining sensor data of one or more physical robots performing a process in an operating environment;

generating, from the sensor data for a first robot of the one or more physical robots, a motion profile representing how the first robot moves while performing the process in the operating environment;

obtaining data representing a plurality of candidate virtual robot components that are candidates to be included in a virtual representation of the operating environment, wherein each candidate virtual robot component has a respective associated virtual motion profile;

performing a motion profile matching process to determine a first virtual robot component from the plurality of candidate virtual robot components that matches the first robot using the motion profile and the respective associated virtual motion profiles for the plurality of candidate virtual robot components, comprising:

selecting, using the respective associated virtual motion profiles, the first virtual robot component, wherein the first virtual robot component has a respective associated virtual motion profile with equivalent geometric characteristics, swept volume, or movable degrees of freedom represented by the data of the motion profile; and

adding the first virtual robot component to the virtual representation of the operating environment.

2. The computer-implemented method of claim 1 , wherein the sensor data for the first robot comprises: for each of a plurality of control signals configured to control at least the first robot of the one or more physical robots, respective sensor data monitoring a respective motion of the first robot under the control signal.

3. The computer-implemented method of claim 1 , wherein the motion profile representing how the first robot moves comprises data representing geometric characteristics, a swept volume, and movable degrees of freedom of the first robot.

4. The computer-implemented method of claim 3 , wherein performing the motion profile matching process to determine the first virtual robot component that matches the first robot, comprises:

selecting, as the first virtual robot component, one candidate virtual robot component from the plurality of candidate virtual robot components that has a respective virtual motion profile with equivalent geometric characteristics, swept volume, and movable degrees of freedom represented by the data of the motion profile.

5. The computer-implemented method of claim 1 , wherein the motion profile further comprises data representing a trajectory of the motion of the first robot under a particular control signal, the method further comprising:

determining one or more virtual actuators and controls of each of the one or more virtual actuators for the first virtual robot using an inverse kinematics algorithm so that the first virtual robot component is configured to travel along a virtual trajectory equivalent to the trajectory.

6. The computer-implemented method of claim 4 , wherein selecting one candidate virtual robot component as the first virtual robot component, further comprises:

obtaining data representing a trained machine learning model configured to perform inference computations for the motion profile as input;

generating a prediction of the first virtual robot component from the plurality of candidate virtual robot components as an output for performing inference computations using the trained machine learning model; and

selecting, as the first virtual robot component, one candidate virtual robot component from the plurality of candidate virtual robot components based at least on the prediction.

7. The computer-implemented method of claim 4 , wherein selecting one candidate virtual robot component as the first virtual robot component, further comprises:

for each of the plurality of candidate virtual robot components, generating a respective motion profile matching score based at least on a respective difference between the geometric characteristics, the movable degrees of freedom, and the swept volume for the first robot and those for the candidate virtual robot components; and

selecting, as the first virtual robot component, one candidate virtual robot component from the plurality of candidate virtual robot components based at least on the respective motion profile matching scores.

8. The computer-implemented method of claim 1 , wherein generating the motion profile comprises:

generating a dynamic function from the obtained sensor data for the first robot; and

generating the motion profile based on the dynamic function.

9. The computer-implemented method of claim 1 , further comprising:

providing data representing the virtual representation with the first virtual robot component for additional analysis or optimization.

10. A system comprising one or more computers and one or more storage devices storing instructions that when executed by one or more computers cause the one or more computers to perform respective operations, the operations comprising:

obtaining sensor data of one or more physical robots performing a process in an operating environment;

generating, from the sensor data for a first robot of the one or more physical robots, a motion profile representing how the first robot moves while performing the process in the operating environment;

obtaining data representing a plurality of candidate virtual robot components that are candidates to be included in a virtual representation of the operating environment, wherein each candidate virtual robot component has a respective associated virtual motion profile;

performing a motion profile matching process to determine a first virtual robot component from the plurality of candidate virtual robot components that matches the first robot using the motion profile and the respective associated virtual motion profiles for the plurality of candidate virtual robot components, comprising:

selecting, using the respective associated virtual motion profiles, the first virtual robot component, wherein the first virtual robot component has a respective associated virtual motion profile with equivalent geometric characteristics, swept volume, or movable degrees of freedom represented by the data of the motion profile; and

adding the first virtual robot component to the virtual representation of the operating environment.

11. The system of claim 10 , wherein the motion profile representing how the first robot moves comprises data representing geometric characteristics, a swept volume, and movable degrees of freedom of the first robot.

12. The system of claim 11 , wherein performing the motion profile matching process to determine the first virtual robot component that matches the first robot, comprises:

selecting, as the first virtual robot component, one candidate virtual robot component from the plurality of candidate virtual robot components that has a respective virtual motion profile with equivalent geometric characteristics, swept volume, and movable degrees of freedom represented by the data of the motion profile.

13. The system of claim 10 , wherein the motion profile further comprises data representing a trajectory of the motion of the first robot under a particular control signal, the operations further comprising:

determining one or more virtual actuators and controls of each of the one or more virtual actuators for the first virtual robot component using an inverse kinematics algorithm so that the first virtual robot component is configured to travel along a virtual trajectory equivalent to the trajectory.

14. The system of claim 12 , wherein selecting one candidate virtual robot component as the first virtual robot component, further comprises:

obtaining data representing a trained machine learning model configured to perform inference computations for the motion profile as input;

generating a prediction of the first virtual robot component from the plurality of candidate virtual robot components as an output for performing inference computations using the trained machine learning model; and

selecting, as the first virtual robot component, one candidate virtual robot component from the plurality of candidate virtual robot components based at least on the prediction.

15. The system of claim 12 , wherein selecting one candidate virtual robot component as the first virtual robot component, further comprises:

for each of the plurality of candidate virtual robot components, generating a respective motion profile matching score based at least on a respective difference between the geometric characteristics, the movable degrees of freedom, and the swept volume for the first robot and those for the candidate virtual robot components; and

selecting, as the first virtual robot component, one candidate virtual robot component from the plurality of candidate virtual robot components based at least on the respective motion profile matching scores.

16. One or more non-transitory computer-readable storage media storing instructions that when executed by one or more computers cause the one or more computers to perform respective operations, the respective operations comprising:

obtaining sensor data of one or more physical robots performing a process in an operating environment;

generating, from the sensor data for a first robot of the one or more physical robots, a motion profile representing how the first robot moves while performing the process in the operating environment;

obtaining data representing a plurality of candidate virtual robot components that are candidates to be included in a virtual representation of the operating environment, wherein each candidate virtual robot component has a respective associated virtual motion profile;

performing a motion profile matching process to determine a first virtual robot component from the plurality of candidate virtual robot components that matches the first robot using the motion profile and the respective associated virtual motion profiles for the plurality of candidate virtual robot components, comprising:

selecting, using the respective associated virtual motion profiles, the first virtual robot component, wherein the first virtual robot component has a respective associated virtual motion profile with equivalent geometric characteristics, swept volume, or movable degrees of freedom represented by the data of the motion profile; and

adding the first virtual robot component to the virtual representation of the operating environment.

17. The one or more non-transitory computer-readable storage media of claim 16 , wherein the motion profile representing how the first robot moves comprises data representing geometric characteristics, a swept volume, and movable degrees of freedom of the first robot.

18. The one or more non-transitory computer-readable storage media of claim 17 , wherein performing the motion profile matching process to determine the first virtual robot component that matches the first robot, comprises:

selecting, as the first virtual robot component, one candidate virtual robot component from the plurality of candidate virtual robot components that has a respective virtual motion profile with equivalent geometric characteristics, swept volume, and movable degrees of freedom represented by the data of the motion profile.

19. The one or more non-transitory computer-readable storage media of claim 18 , wherein selecting one candidate virtual robot component as the first virtual robot component, further comprises:

obtaining data representing a trained machine learning model configured to perform inference computations for the motion profile as input;

generating a prediction of the first virtual robot component from the plurality of candidate virtual robot components as an output for performing inference computations using the trained machine learning model; and

selecting, as the first virtual robot component, one candidate virtual robot component from the plurality of candidate virtual robot components based at least on the prediction.

20. The one or more non-transitory computer-readable storage media of claim 18 , wherein selecting one candidate virtual robot component as the first virtual robot component, further comprises:

for each of the plurality of candidate virtual robot components, generating a respective motion profile matching score based at least on a respective difference between the geometric characteristics, the movable degrees of freedom, and the swept volume for the first robot and those for the candidate virtual robot components; and

selecting, as the first virtual robot component, one candidate virtual robot component from the plurality of candidate virtual robot components based at least on the respective motion profile matching scores.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2021
From: X DEVELOPMENT LLC
To: INTRINSIC INNOVATION LLC
Reel/Frame 057650/0405 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2021
From: KELCH, TIMOTHY ROBERT; HOLZ, DIRK
To: X DEVELOPMENT LLC
Reel/Frame 056465/0809 →