# US 11,897,145 B1 · Part modeling for path generation to guide robotic end effector

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

- Number: US 11,897,145 B1
- Document ID: US11897145B1
- Status: Granted
- Kind: B1
- Application number: 18/447,295
- Filed: 2023-08-09
- Published: 2024-02-15
- Granted: 2024-02-13
- Earliest claimed: 2022-08-10
- Assignees: Wilder Systems Inc.
- Applicants: Wilder Systems Inc.
- Inventors: Ademola Ayodeji Oridate; William Wilder; Spencer Voiss
- Web page: https://patentgrep.com/patent/US11897145B1

## CPC

- B25J 9/1697: {Vision controlled systems}
- B25J 9/0081: {with leader teach-in means}
- B25J 9/161: {Hardware, e.g. neural networks, fuzzy logic, interfaces, processor}
- B25J 9/163: {learning, adaptive, model based, rule based expert control}
- B25J 9/1661: {characterised by task planning, object-oriented languages}
- B25J 9/1664: {characterised by motion, path, trajectory planning}
- B25J 9/1666: {Avoiding collision or forbidden zones}
- B25J 9/1671: {characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems}
- B25J 9/1679: {characterised by the tasks executed}
- B25J 9/1682: {Dual arm manipulator; Coordination of several manipulators}
- B25J 13/006: {by means of a wireless system for controlling one or several manipulators}
- B64F 5/40: Maintaining or repairing aircraft
- G06F 16/22: Indexing; Data structures therefor; Storage structures
- G06F 18/23: Clustering techniques
- G06T 7/70: Determining position or orientation of objects or cameras (camera calibration G06T7/80)
- G05B 2219/33002: Artificial intelligence AI, expert, knowledge, rule based system KBS
- G05B 2219/40298: Manipulator on vehicle, wheels, mobile
- G05B 2219/45066: Inspection robot
- G06T 2207/20081: Training; Learning
- 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})
- B64F: GROUND OR AIRCRAFT-CARRIER-DECK INSTALLATIONS SPECIALLY ADAPTED FOR USE IN CONNECTION WITH AIRCRAFT; DESIGNING, MANUFACTURING, ASSEMBLING, CLEANING, MAINTAINING OR REPAIRING AIRCRAFT, NOT OTHERWISE PROVIDED FOR; HANDLING, TRANSPORTING, TESTING OR INSPECTING AIRCRAFT COMPONENTS, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- 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)

## Abstract

Aspects of the disclosure are directed towards path generation. A method includes a device registering working frame of a target object with a reference frame of a robot. The device can generate a path over a representation of a surface of the target object. The device can generate a trajectory over the surface of the target object based on the registration, the path, and a normal. The device can classify a target type for the real-world target using a machine learning model based on scanned data of the surface of the target object. The device can generate a robot job file, wherein the robot job file comprises the trajectory and an autonomous operation instruction. The device can transmit the robot job file to a robot controller.

## Claims

### Claim 1

A method, comprising:
registering, by a device, a working frame of a target object with a reference frame of a robot;
generating, by the device, a path over a representation of a surface of the target object, wherein the path comprises a virtual point and a normal at the virtual point, and wherein the virtual point corresponds to a real-world target;
generating, by the device, a trajectory over the surface of the target object based on the registration, the path, and the normal, wherein the trajectory comprises a set of robot joint parameters used to traverse the surface of the target object, and wherein the trajectory traverses the real-world target;
classifying, by the device, a target type for the real-world target using a machine learning model based on scanned data of the surface of the target object;
generating, by the device, a robot job file, wherein the robot job file comprises the trajectory and an autonomous operation instruction, and
transmitting, by the device, the robot job file to a robot controller.

### Claim 2 (depends on 1)

The method of claim 1, wherein the method further comprises:
clustering or segmenting data points of a point cloud representation of the target object to identify an object;
determining whether a cluster respectively represents a real-world target based on identifying a feature associated with the real-world target; and
calculating the normal for the cluster representing the real-world target based on the determination.

### Claim 3 (depends on 2)

The method of claim 2, wherein the method further comprises:
retrieving collision data comprising data of a first collision between the robot and the target object;
simulating a first candidate trajectory and a second candidate trajectory;
determining that the first candidate trajectory results in a second collision based on the collision data; and
selecting the second candidate trajectory as the trajectory based on the determination.

### Claim 4 (depends on 1)

The method of claim 1, wherein generating the trajectory is based on inverse kinematics.

### Claim 5 (depends on 1)

The method of claim 1, wherein classifying the target type using a machine learning model comprises:
receiving scanned data of the surface of the target object;
inputting the scanned data into the machine learning model, wherein the machine learning model is trained to identify a target object class; and
executing the machine learning model to classify the real-world target.

### Claim 6 (depends on 1)

The method of claim 1, wherein the method further comprises:
receiving an indication that a position of the virtual point in relation to the target object has been modified; and
generating a second path based on the modification of the position of the virtual point.

### Claim 7 (depends on 1)

The method of claim 1, wherein generating the path comprises using an optimization technique to identify a minimum length for traversing the surface of the target object.

### Claim 8

A device comprising:
one or more processors;
a computer readable medium including instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
registering a working frame of a target object with a reference frame of a robot;
generating a path over a representation of a surface of the target object, wherein the path comprises a virtual point and a normal at the virtual point, and wherein the virtual point corresponds to a real-world target;
generating a trajectory over the surface of the target object based on the registration, the path, and the normal, wherein the trajectory comprises a set of robot joint parameters used to traverse the surface of the target object, and wherein the trajectory traverses the real-world target;
classifying a target type for the real-world target using a machine learning model based on scanned data of the surface of the target object;
generating a robot job file, wherein the robot job file comprises the trajectory and an autonomous operation instruction, and
transmitting the robot job file to a robot controller.

### Claim 9 (depends on 8)

The device of claim 8, wherein the instructions that, when executed by the one or more processors, further cause the one or more processors to perform operations comprising:
clustering or segmenting data points of a point cloud representation of the target object to identify an object;
determining whether a cluster respectively represents a real-world target based on identifying a feature associated with the real-world target; and
calculating the normal for the cluster representing the real-world target based on the determination.

### Claim 10 (depends on 9)

The device of claim 9, wherein the instructions that, when executed by the one or more processors, further cause the one or more processors to perform operations comprising:
retrieving collision data comprising data of a first collision between the robot and the target object;
simulating a first candidate trajectory and a second candidate trajectory;
determining that the first candidate trajectory results in a second collision based on the collision data; and
selecting the second candidate trajectory as the trajectory based on the determination.

### Claim 11 (depends on 8)

The device of claim 8, wherein generating the trajectory is based on inverse kinematics.

### Claim 12 (depends on 8)

The device of claim 8, wherein classifying the target type using a machine learning model comprises:
receiving scanned data of the surface of the target object;
inputting the scanned data into the machine learning model, wherein the machine learning model is trained to identify a target object class; and
executing the machine learning model to classify the real-world target.

### Claim 13 (depends on 8)

The device of claim 8, wherein the instructions that, when executed by the one or more processors, further cause the one or more processors to perform operations comprising:
receiving an indication that a position of the virtual point in relation to the target object has been modified; and
generating a second path based on the modification of the position of the virtual point.

### Claim 14 (depends on 8)

The device of claim 8, wherein generating the path comprises using an optimization technique to identify a minimum length for traversing the surface of the target object.

### Claim 15

A computer-readable medium including one or more sequences of instructions, when executed by one or more processors, cause the one or more processors to perform operations comprising:
registering a working frame of a target object with a reference frame of a robot;
generating a path over a representation of a surface of the target object, wherein the path comprises a virtual point and a normal at the virtual point, and wherein the virtual point corresponds to a real-world target;
generating a trajectory over the surface of the target object based on the registration, the path, and the normal, wherein the trajectory comprises a set of robot joint parameters used to traverse the surface of the target object, and wherein the trajectory traverses the real-world target;
classifying a target type for the real-world target using a machine learning model based on scanned data of the surface of the target object;
generating a robot job file, wherein the robot job file comprises the trajectory and an autonomous operation instruction, and
transmitting the robot job file to a robot controller.

### Claim 16 (depends on 15)

The computer-readable medium of claim 15, wherein the instructions that, when executed by the one or more processors, further cause the one or more processors to perform operations comprising:
clustering or segmenting data points of a point cloud representation of the target object to identify an object;
determining whether a cluster respectively represents a real-world target based on identifying a feature associated with the real-world target; and
calculating the normal for the cluster representing the real-world target based on the determination.

### Claim 17 (depends on 16)

The computer-readable medium of claim 16, wherein the instructions that, when executed by the one or more processors, further cause the one or more processors to perform operations comprising:
retrieving collision data comprising data of a first collision between the robot and the target object;
simulating a first candidate trajectory and a second candidate trajectory;
determining that the first candidate trajectory results in a second collision based on the collision data; and
selecting the second candidate trajectory as the trajectory based on the determination.

### Claim 18 (depends on 15)

The computer-readable medium of claim 15, wherein generating the trajectory is based on inverse kinematics.

### Claim 19 (depends on 15)

The computer-readable medium of claim 15, wherein classifying the target type using a machine learning model comprises:
receiving scanned data of the surface of the target object;
inputting the scanned data into the machine learning model, wherein the machine learning model is trained to identify a target object class; and
executing the machine learning model to classify the real-world target.

### Claim 20 (depends on 15)

The computer-readable medium of claim 15, wherein the operations further comprise:
receiving an indication that a position of the virtual point in relation to the target object has been modified; and
generating a second path based on the modification of the position of the virtual point.
