# US 10,245,731 B2 · Programming of a robotic arm using a motion capture system

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

- Number: US 10,245,731 B2
- Document ID: US10245731B2
- Status: Granted
- Kind: B2
- Application number: 15/892,008
- Filed: 2018-02-08
- Published: 2018-06-14
- Granted: 2019-04-02
- Earliest claimed: 2013-03-05
- Assignees: X Development LLC
- Applicants: X Development LLC
- Inventors: Jeffrey Linnell
- Web page: https://patentgrep.com/patent/US10245731B2

## CPC

- B25J 9/1697: {Vision controlled systems}
- B25J 9/1664: {characterised by motion, path, trajectory planning}
- G05B 19/427: Teaching successive positions by tracking the position of a joystick or handle to control the positioning servo of the tool head, leader-follower control (G05B19/423 takes precedence)
- G05B 2219/36442: Automatically teaching, teach by showing
- G05B 2219/37563: Ccd, tv camera
- Y10S 901/01: Mobile robot
- Y10S 901/46: Sensing device
- Y10S 901/47: Optical
- 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)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

An example method includes receiving position data indicative of position of a demonstration tool. Based on the received position data, the method further includes determining a motion path of the demonstration tool, wherein the motion path comprises a sequence of positions of the demonstration tool. The method additionally includes determining a replication control path for a robotic device, where the replication control path includes one or more robot movements that cause the robotic device to move a robot tool through a motion path that corresponds to the motion path of the demonstration tool. The method also includes providing for display of a visual simulation of the one or more robot movements within the replication control path.

## Claims

### Claim 1

A computer-implemented method comprising:
causing a robotic device to move a robot tool using one or more robot movements of a replication control path, wherein the one or more robot movements of the replication control path cause the robotic device to move the robot tool through a motion path that corresponds to a predetermined motion path of a demonstration tool;
receiving position data indicative of position of the robot tool during movement of the robot tool by the robotic device;
comparing the position data to the predetermined motion path of the demonstration tool; and
based on the comparison, determining a refinement to the one or more robot movements of the replication control path.

### Claim 2 (depends on 1)

The method of claim 1, wherein the position data indicative of the position of the robot tool is received from one or more cameras.

### Claim 3 (depends on 2)

The method of claim 2, wherein the position data received from the one or more cameras comprises data indicative of position of one or more control markers attached to the robot tool.

### Claim 4 (depends on 3)

The method of claim 3, wherein the one or more control markers comprise one or more light emitting diode markers.

### Claim 5 (depends on 1)

The method of claim 1, wherein the refinement is determined before the robotic device completes the one or more movements of the replication control path, and the method further comprises causing the robotic device to adjustment motion of the robot tool based on the refinement.

### Claim 6 (depends on 1)

The method of claim 1, wherein:
the demonstration tool is a camera used to film a scene; and
the robot tool is a camera used by the robotic device to film a different iteration of the scene.

### Claim 7 (depends on 1)

The method of claim 1, wherein:
the demonstration tool is a manufacturing tool used to fabricate an output product; and
the robot tool is a manufacturing tool used by the robotic device to fabricate a copy of the output product.

### Claim 8 (depends on 1)

The method of claim 1, wherein the robot tool is a welding tool.

### Claim 9 (depends on 1)

The method of claim 1, wherein the robot tool is a paint brush.

### Claim 10 (depends on 1)

The method of claim 1, further comprising determining one or more refinements to the one or more robot movements of the replication control path in order to smooth one or more curves of robot movements within the replication control path.

### Claim 11 (depends on 1)

The method of claim 1, further comprising:
receiving one or more refinements to the one or more robot movements of the replication control path via a user interface; and
updating a displayed visual simulation of the one or more robot movements within the replication control path to reflect the one or more refinements.

### Claim 12 (depends on 1)

The method of claim 1, wherein the motion path of the robot tool comprises scaled positions from the motion path of the demonstration tool.

### Claim 13 (depends on 1)

The method of claim 1, wherein the predetermined motion path of the demonstration tool comprises a sequence of positions resulting from a force of nature applied to the demonstration tool.

### Claim 14 (depends on 13)

The method of claim 13, wherein the force of nature comprises gravity.

### Claim 15

A system comprising:
a robotic device; and
a control system configured to:
cause the robotic device to move a robot tool using one or more robot movements of a replication control path, wherein the one or more robot movements of the replication control path cause the robotic device to move the robot tool through a motion path that corresponds to a predetermined motion path of a demonstration tool;
receive position data indicative of position of the robot tool during movement of the robot tool by the robotic device;
compare the position data to the predetermined motion path of the demonstration tool; and
based on the comparison, determine a refinement to the one or more robot movements of the replication control path.

### Claim 16 (depends on 15)

The system of claim 15, further comprising one or more cameras, wherein the position data indicative of the position of the robot tool is received from the one or more cameras.

### Claim 17 (depends on 16)

The system of claim 16, further comprising one or more control markers attached to the robot tool, wherein the position data received from the one or more cameras comprises data indicative of position of the one or more control markers attached to the robot tool.

### Claim 18 (depends on 17)

The system of claim 17, wherein the one or more control markers comprise one or more light emitting diode markers.

### Claim 19 (depends on 15)

The system of claim 15, wherein the control system is further configured to cause the robotic device to adjustment motion of the robot tool based on the refinement.

### Claim 20

A non-transitory computer readable medium having stored therein instructions, that when executed by a computing system, cause the computing system to perform functions comprising:
causing a robotic device to move a robot tool using one or more robot movements of a replication control path, wherein the one or more robot movements of the replication control path cause the robotic device to move the robot tool through a motion path that corresponds to a predetermined motion path of a demonstration tool;
receiving position data indicative of position of the robot tool during movement of the robot tool by the robotic device;
comparing the position data to the predetermined motion path of the demonstration tool; and
based on the comparison, determining a refinement to the one or more robot movements of the replication control path.
