# US 9,486,918 B1 · System and method for quick scripting of tasks for autonomous robotic manipulation

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

- Number: US 9,486,918 B1
- Document ID: US9486918B1
- Status: Granted
- Kind: B1
- Application number: 14/207,519
- Filed: 2014-03-12
- Granted: 2016-11-08
- Earliest claimed: 2013-03-13
- Assignees: HRL Laboratories, LLC
- Applicants: HRL Laboratories, LLC
- Inventors: Darren J. Earl; Derek W. Mitchell; Heiko Hoffmann
- Web page: https://patentgrep.com/patent/US9486918B1

## CPC

- B25J 9/163: {learning, adaptive, model based, rule based expert control}
- G05B 2219/32353: Use elementary control task, finite state machine and loop, inhibit, synchronisation connections
- 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)
- Y02P: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS

## Abstract

Described is a system for a system for autonomous robotic manipulation. The system is configured to receiving a selected task from a task file library. The task is associated with causing a robot end effector to perform an action with a particular item, such as picking up an item. The selected task is transformed into a state machine. Thereafter, the system executes the state machine and, in doing so, causes the robot end effector to perform the selected task.

## Claims

### Claim 1

A system for autonomous robotic manipulation, the system comprising:
one or more processors and a memory, the memory having executable instructions encoded thereon, such that upon execution of the instructions, the one or more processors perform operations of:
learning one or more movement primitives by recording both movement and force applications from human demonstration of a robot end effector, each movement primitive being a path command;
converting the movement primitive representing both movement and force applications into a differential equation;
receiving a selected task from a task file library, the selected task being associated with causing the robot end effector to perform an action with a particular item;
transforming the selected task into a state machine; and
executing the state machine and, in doing so, causing the robot end effector to perform the selected task.

### Claim 2 (depends on 1)

The system as set forth in claim 1, wherein executing the state machine further comprises operations of:
selecting goals to accomplish the selected task;
integrating perception data into a world model, the world model reflecting a position of the robot end effector in relation to the particular item;
selecting path commands to be executed by an Arm Control Module, with the Arm Control Module executing the path commands to control the robot end effector;
receiving feedback from sensors regarding the robot end effector;
modifying the path commands based on the feedback; and
executing and modifying the path commands until completion of the selected task.

### Claim 3 (depends on 2)

The system as set forth in claim 2, wherein in executing and modifying the path commands, the path commands are modified based on gravity-compensation torques and movement torques, with the gravity-compensation torques being added to the movement torques, with the movement torques combining path following and obstacle avoidance.

### Claim 4 (depends on 3)

The system as set forth in claim 3, wherein path following is implemented as a proportional-derivative (PD) controller, and obstacle avoidance is represented as a vector field dependent on position of the robot end effector.

### Claim 5 (depends on 1)

The system as set forth in claim 1, wherein for each movement primitive, the system learns from human demonstration a nominal behavior in task space and confidence boundaries to monitor task progress.

### Claim 6 (depends on 1)

The system as set forth in claim 1, wherein before executing the state machine to perform the selected task, the system tests alternative movement primitives against collisions with objects and selects the movement primitive with largest clearance from obstacles.

### Claim 7 (depends on 1)

The system as set forth in claim 1, wherein in transforming the selected task into a state machine, the system performs operations of:
compiling a text file that defines the state machine and conditions by which the state machine progresses, wherein each text file is organized to list states individually along with properties of actions specified in each state as well as the conditions for completion and a pointer to a next state; and
sorting the states and building the state machine to suit the selected task.

### Claim 8

A computer program product for autonomous robotic manipulation, the computer program product comprising:
a non-transitory computer-readable medium having executable instructions encoded thereon, such that upon execution of the instructions by one or more processors, the one or more processors perform operations of:
learning one or more movement primitives by recording both movement and force applications from human demonstration of a robot end effector, each movement primitive being a path command;
converting the movement primitive representing both movement and force applications into a differential equation;
receiving a selected task from a task file library, the selected task being associated with causing the robot end effector to perform an action with a particular item;
transforming the selected task into a state machine; and
executing the state machine and, in doing so, causing the robot end effector to perform the selected task.

### Claim 9 (depends on 8)

The computer program product as set forth in claim 8, wherein executing the state machine further comprises operations of:
selecting goals to accomplish the selected task;
integrating perception data into a world model, the world model reflecting a position of the robot end effector in relation to the particular item;
selecting path commands to be executed by an Arm Control Module, with the Arm Control Module executing the path commands to control the robot end effector;
receiving feedback from sensors regarding the robot end effector;
modifying the path commands based on the feedback; and
executing and modifying the path commands until completion of the selected task.

### Claim 10 (depends on 9)

The computer program product as set forth in claim 9, wherein in executing and modifying the path commands, the path commands are modified based on gravity-compensation torques and movement torques, with the gravity-compensation torques being added to the movement torques, with the movement torques combining path following and obstacle avoidance.

### Claim 11 (depends on 10)

The computer program product as set forth in claim 10, wherein path following is implemented as a proportional-derivative (PD) controller, and obstacle avoidance is represented as a vector field dependent on position of the robot end effector.

### Claim 12 (depends on 8)

The computer program product as set forth in claim 8, wherein for each movement primitive, a nominal behavior in task space and confidence boundaries to monitor task progress are learned from human demonstration.

### Claim 13 (depends on 8)

The computer program product as set forth in claim 8, wherein before executing the state machine to perform the selected task, alternative movement primitives are tested against collisions with objects and the movement primitive with largest clearance from obstacles is selected.

### Claim 14 (depends on 8)

The computer program product as set forth in claim 8, wherein transforming the selected task into a state machine further comprises operations of:
compiling a text file that defines the state machine and conditions by which the state machine progresses, wherein each text file is organized to list states individually along with properties of actions specified in each state as well as the conditions for completion and a pointer to a next state; and
sorting the states and building the state machine to suit the selected task.

### Claim 15

A computer implemented method for autonomous robotic manipulation, the method comprising an act of:
causing one or more processers to execute instructions encoded on a non-transitory computer-readable medium, such that upon execution, the one or more processors perform operations of:
learning one or more movement primitives by recording both movement and force applications from human demonstration of a robot end effector, each movement primitive being a path command;
converting the movement primitive representing both movement and force applications into a differential equation;
receiving a selected task from a task file library, the selected task being associated with causing the robot end effector to perform an action with a particular item;
transforming the selected task into a state machine; and
executing the state machine and, in doing so, causing the robot end effector to perform the selected task.

### Claim 16 (depends on 15)

The method as set forth in claim 15, wherein executing the state machine further comprises operations of:
selecting goals to accomplish the selected task;
integrating perception data into a world model, the world model reflecting a position of the robot end effector in relation to the particular item;
selecting path commands to be executed by an Arm Control Module, with the Arm Control Module executing the path commands to control the robot end effector;
receiving feedback from sensors regarding the robot end effector;
modifying the path commands based on the feedback; and
executing and modifying the path commands until completion of the selected task.

### Claim 17 (depends on 16)

The method as set forth in claim 16, wherein in executing and modifying the path commands, the path commands are modified based on gravity-compensation torques and movement torques, with the gravity-compensation torques being added to the movement torques, with the movement torques combining path following and obstacle avoidance.

### Claim 18 (depends on 17)

The method as set forth in claim 17, wherein path following is implemented as a proportional-derivative (PD) controller, and obstacle avoidance is represented as a vector field dependent on position of the robot end effector.

### Claim 19 (depends on 15)

The method as set forth in claim 15, wherein for each movement primitive, a nominal behavior in task space and confidence boundaries to monitor task progress are learned from human demonstration.

### Claim 20 (depends on 15)

The method as set forth in claim 15, wherein before executing the state machine to perform the selected task, alternative movement primitives are tested against collisions with objects and the movement primitive with largest clearance from obstacles is selected.
