# US 12,109,704 B2 · Simulation signature keys for robotic simulations

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

- Number: US 12,109,704 B2
- Document ID: US12109704B2
- Status: Granted
- Kind: B2
- Application number: 17/043,056
- Filed: 2018-04-15
- Published: 2021-01-21
- Granted: 2024-10-08
- Earliest claimed: 2018-04-15
- Assignees: Siemens Industry Software Inc.
- Applicants: Siemens Industry Software Ltd.
- Inventors: Moshe Hazan
- Web page: https://patentgrep.com/patent/US12109704B2

## CPC

- B25J 9/1664: {characterised by motion, path, trajectory planning}
- B25J 9/1605: {Simulation of manipulator lay-out, design, modelling of manipulator}
- G05B 19/4097: characterised by using design data to control NC machines, e.g. CAD/CAM (G05B19/4093 takes precedence)
- G05B 19/41885: {characterised by modeling, simulation of the manufacturing system}
- G06F 30/20: Design optimisation, verification or simulation (optimisation, verification or simulation of circuit designs G06F30/30)
- Y02P 90/02: Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
- 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})
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02P: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS

## Abstract

Systems and methods may support generation and use of simulation signature keys for robotic simulations. A computer-aided manufacturing (CAM) system may access robotic path data for a robot that includes target locations and corresponding motion parameters for the robot. The CAM system may partition the robotic path data into simulation events according to event partitioning criteria such that each simulation event includes one or multiple target locations and corresponding motion parameters and further generate a respective signature simulation key for each partitioned simulation event. The simulation signature key may provide a lookup key into a motion planning data cache. When an entry exists in the motion planning data cache for a simulation signature key generated for a simulation event, the CAM system may retrieve cached motion planning data for the simulation event. When an entry does not exist, the CAM system may obtain motion planning data through robotic simulation.

## Claims

### Claim 1

A method comprising:
accessing robotic path data for a robot, the robotic path data comprising target locations and corresponding motion parameters for the robot;
partitioning the robotic path data into simulation events according to event partitioning criteria such that each simulation event includes one or multiple target locations and corresponding motion parameters; and
for a given simulation event:
generating a simulation signature key for the given simulation event using the one or more target locations and corresponding motion parameters for the given simulation event;
simulating the robot according to the given simulation event to output motion planning data for the given simulation event;
obtaining the motion planning data for the given simulation event output through the simulation of the robot according to the given simulation event; and
associating the simulation signature key for the given simulation event with the motion planning data obtained for the given simulation event, including by inserting an entry into a motion planning cache that pairs the simulation signature key for the given simulation event with the motion planning data obtained for the given simulation event, and
after simulating the robot according to the given simulation event and inserting the entry into the motion planning cache:
accessing additional robotic path data for the robot different from the robotic path data for the robot;
partitioning, according to the event partitioning criteria, the additional robotic path data into simulation events that include an additional simulation event;
generating a simulation signature key for the additional simulation event of the additional robotic path data;
determining that the simulation signature key generated for the additional simulation event matches the simulation signature key generated for the given simulation event of the robotic path data; and
accessing obtained motion planning data for the additional simulation event from the motion planning cache without simulating the robot according to the additional simulation event for the additional robotic path data for the robot different from the robotic path data for the robot.

### Claim 2 (depends on 1)

The method of claim 1, wherein the simulation events partitioned for the additional robotic path data includes another additional simulation event different from the additional simulation event, and further comprising, after simulating the robot according to the given simulation event and inserting the entry into the motion planning cache:
generating a simulation signature key for the another additional simulation event of the additional robotic path data;
determining that the motion planning cache does not include an entry for the simulation signature key generated for the another additional simulation event;
simulating the robot according to the another additional simulation event to obtain motion planning data for the additional simulation event; and
inserting an entry into the motion planning cache that pairs the simulation signature key for the another additional simulation event with the motion planning data obtained for the another additional simulation event through simulation.

### Claim 3 (depends on 1)

The method of claim 1, further comprising, prior to inserting the entry into the motion planning cache:
modifying selected portions of the motion planning data obtained for the given simulation event to account for multiple simulation iterations of the given simulation event.

### Claim 4 (depends on 1)

The method of claim 1, wherein generating the simulation signature key for the given simulation event comprises:
hashing a selected subset of the one or more target locations and corresponding motion parameters for the given simulation event.

### Claim 5 (depends on 4)

The method of claim 4, wherein hashing the selected subset comprises hashing a concatenation of robot configuration data, the one or more target locations, target zone data, robot speed data, and robot motion type data of the given simulation event.

### Claim 6 (depends on 1)

The method of claim 1, wherein partitioning the robotic path data into simulation events according to the event partitioning criteria is based on target zone data in the robotic path data, the target zone data specifying whether the robot reaches a given target location by precisely reaching the given target location or by reaching a zone surrounding the given target location; and
wherein partitioning the robotic path data into simulation events such that each of the simulation events ends with a target location that the target zone data specifies the robot is to precisely reach.

### Claim 7

A system comprising:
a motion planning cache; and
a robotic simulation engine configured to:
access robotic path data for a robot, the robotic path data comprising target locations and corresponding motion parameters for the robot;
partition the robotic path data into simulation events according to event partitioning criteria such that each simulation event includes one or multiple target locations and corresponding motion parameters; and
for each given simulation event of the robotic path data:
generate a simulation signature key for the given simulation event using the one or more target locations and corresponding motion parameters for the given simulation event;
responsive to a determination that the motion planning cache already includes an entry for the simulation signature key generated for the given simulation event:
obtain motion planning data already stored in the motion planning cache for the given simulation event from the entry for the simulation signature key; and
responsive to a determination that the motion planning cache does not include an entry for the simulation signature key generated for the given simulation event:
simulate the robot according to the given simulation event to output motion planning data for the given simulation event;
obtain the motion planning data for the given simulation event output through the simulation of the robot according to the given simulation event; and
insert an entry into the motion planning cache pairing the simulation signature key for the given simulation event with the motion planning data obtained for the given simulation event output through the simulation of the robot according to the given simulation event;
access additional robotic path data for the robot;
partition the additional robotic path data into simulation events according to the event partitioning criteria;
generate a simulation signature key for each of the simulation events of the additional robotic path data; and
obtain motion planning data from the motion planning cache for simulation events of the additional robotic path data with simulation signature keys already stored in the motion planning cache and without simulation of the simulation events of the additional robotic path data with simulation signature keys already stored in the motion planning cache.

### Claim 8 (depends on 7)

The system of claim 7, wherein the robotic simulation engine is configured to, for each particular simulation event of the additional robotic path data without its simulation signature key already stored in the motion planning cache:
simulate the robot according to the particular simulation event to obtain motion planning data as an output of the simulation of the robot according to the particular simulation event; and
insert an entry into the motion planning cache that pairs the simulation signature key for the particular simulation event with the obtained motion planning data for the particular simulation event.

### Claim 9 (depends on 7)

The system of claim 7, wherein the event partitioning criteria is based on target zone data in the robotic path data, the target zone data specifying whether the robot reaches a given target location by precisely reaching the given target location or by reaching a zone surrounding the given target location.

### Claim 10 (depends on 9)

The system of claim 9, wherein the robotic simulation engine is configured to partition the robotic path data into the simulation events such that each of the simulation event ends with a target location that the target zone data specifies the robot is to precisely reach.

### Claim 11 (depends on 9)

The system of claim 9, wherein the robotic simulation engine is configured to partition the simulation events such that at least one of the simulation events includes a sequence of multiple target locations and corresponding motion parameters.

### Claim 12

A non-transitory machine-readable medium comprising processor-executable instructions that, when executed, cause a system to:
access robotic path data for a robot, the robotic path data comprising target locations and corresponding motion parameters for the robot;
partition the robotic path data into simulation events according to event partitioning criteria such that each simulation event includes a sequence of one or multiple target locations and corresponding motion parameters;
for each given simulation event of the robotic path data:
generate a simulation signature key for the given simulation event using the sequence of one or more target locations and corresponding motion parameters for the given simulation event;
simulate the robot according to the given simulation event to output motion planning data for the given simulation event;
obtain the motion planning data for the given simulation event output through the simulation of the robot according to the given simulation event; and
insert an entry into a motion planning cache pairing the simulation signature key for the given simulation event with the motion planning data obtained for the given simulation event; and
access additional robotic path data for the robot different from the robotic toolpath for the robot;
partition the additional robotic path data into additional simulation events according to the event partitioning criteria; and
for each additional simulation event of the additional robotic path data:
generate a simulation signature key for the additional simulation event;
obtain motion planning data from the motion planning cache for the additional simulation event when with the simulation signature key for the additional simulation event is already stored in the motion planning cache and without simulation of the additional simulation event; and
when the simulation signature key for the additional simulation event is not already stored in the motion planning cache:
simulate the robot according to the additional simulation event to obtain motion planning data; and
insert an entry into the motion planning cache that pairs the simulation signature key for the additional simulation event with the obtained motion planning data for the additional simulation event.

### Claim 13 (depends on 12)

The non-transitory machine-readable medium of claim 12, wherein the event partitioning criteria is based on target zone data in the robotic path data, the target zone data specifying whether the robot reaches a given target location by precisely reaching the given target location or by reaching a zone surrounding the given target location.

### Claim 14 (depends on 13)

The non-transitory machine-readable medium of claim 13, wherein the processor-executable instructions, when executed, further cause the system to partition the robotic path data into the simulation events such that each of the simulation event ends with a target location that the target zone data specifies the robot is to precisely reach.

### Claim 15 (depends on 13)

The non-transitory machine-readable medium of claim 13, wherein the processor-executable instructions, when executed, further cause the system to partition the simulation events such that at least one of the simulation events includes a sequence of multiple target locations and corresponding motion parameters.

### Claim 16 (depends on 12)

The non-transitory machine-readable medium of claim 12, wherein the processor-executable instructions, when executed, cause the system to generate a simulation signature for the given simulation event by hashing a selected subset of the one or more target locations and corresponding motion parameters for the given simulation event.
