# US 12,214,505 B2 · Robot controller, robot control method, and storage medium storing robot control program

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

- Number: US 12,214,505 B2
- Document ID: US12214505B2
- Status: Granted
- Kind: B2
- Application number: 18/009,988
- Filed: 2020-07-08
- Published: 2023-07-20
- Granted: 2025-02-04
- Earliest claimed: 2020-07-08
- Assignees: Mitsubishi Electric Corporation
- Applicants: Mitsubishi Electric Corporation
- Inventors: Nanase Haruo; Kiyoshi Maekawa; Koji Shiratsuchi; Takuya Okahara
- Web page: https://patentgrep.com/patent/US12214505B2

## CPC

- B25J 9/1666: {Avoiding collision or forbidden zones}
- 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/1633: {compliant, force, torque control, e.g. combined with position control}
- G05B 2219/40476: Collision, planning for collision free path
- 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)

## Abstract

A robot controller includes: axis motor control units that control motors for driving axes of a robot; and an action command generation unit that generates a first action command having the shortest action time when the robot is moved from an action start point to an action goal point without considering an obstacle, and selects, from among the axes, a major axis having the longest action time when the action is performed in accordance with the first action command. The first action command includes another axis command, and a major axis command, and the action command generation unit adjusts the other axis command so as to reduce an action time according to the other axis command and outputs a second action command including the major axis command and the adjusted other axis command and corresponding to a first trajectory when determining that the first trajectory avoids a clash between the robot and the obstacle.

## Claims

### Claim 1

A robot controller comprising:
axis motor control circuitry to control an axis motor that drives a corresponding one of a plurality of axes that moves joints of a robot;
storage circuitry to store robot information, end point information, and obstacle information, the robot information being information on the robot, the end point information including information on an action start point at which a specific position of the robot starts an action and information on an action goal point at which the specific position of the robot ends the action, the obstacle information being information on an obstacle with respect to the robot; and
action command generation circuitry to: generate, on the basis of the robot information and the end point information, a first action command as an action command for the axis motor, the first action command minimizing a first action time, the first action time being an action time of movement when the specific position of the robot is moved from the action start point to the action goal point without considering the obstacle; and to select, from among the axes, an axis having a longest action time when the action is performed in accordance with the first action command, the selected axis being a major axis, wherein
the first action command includes another axis command and a major axis command, the other axis command being an action command for an axis other than the major axis, the major axis command being an action command for the major axis, and
the action command generation circuitry
generates an action command different from the first action command and adjusts the other axis command so as to reduce a second action time, the second action time being an action time according to another axis command included in the generated action command, and
outputs, to the axis motor control circuitry, a second action command that includes the major axis command and the other axis command after adjustment and corresponds to a first trajectory when determining, on the basis of the obstacle information, that the first trajectory corresponding to the second action command is a trajectory that avoids a clash between the robot and the obstacle.

### Claim 2 (depends on 1)

The robot controller according to claim 1, wherein
the action command generation circuitry adjusts the major axis command on the basis of the robot information and the end point information, and
when the action command generation circuitry determines, on the basis of the obstacle information, that second trajectories corresponding to third action commands avoid a clash between the robot and the obstacle and third action times according to the third action commands are not longer than the second action time, the third action commands each including the major axis command after adjustment and the other axis command after adjustment, the action command generation circuitry outputs, to the axis motor control circuitry, a third action command among the third action commands, the output third action command providing a shortest one of the third action times.

### Claim 3 (depends on 2)

The robot controller according to claim 2, wherein
the action command generation circuitry
adjusts the major axis command when a clash between the robot and the obstacle cannot be avoided despite the adjustment of the other axis command.

### Claim 4 (depends on 3)

The robot controller according to claim 3, wherein
the action command generation circuitry
adjusts at least one of the other axis command and the major axis command so as to allow the robot to pass through one or a plurality of passing areas placed between the action start point and the action goal point.

### Claim 5 (depends on 4)

The robot controller according to claim 4, wherein
the action command generation circuitry
changes the passing area and adjusts at least one of the other axis command and the major axis command when the third action time does not equal the first action time.

### Claim 6 (depends on 5)

The robot controller according to claim 5, wherein
the action command generation circuitry adjusts at least one of the other axis command and the major axis command by applying a parameter for each of the passing area, the parameter expressing the action command and varying depending upon the passing area.

### Claim 7 (depends on 2)

The robot controller according to claim 2, wherein
the action command generation circuitry
adjusts at least one of the other axis command and the major axis command so as to allow the robot to pass through one or a plurality of passing areas placed between the action start point and the action goal point.

### Claim 8 (depends on 7)

The robot controller according to claim 7, wherein
the action command generation circuitry
changes the passing area and adjusts at least one of the other axis command and the major axis command when the third action time does not equal the first action time.

### Claim 9 (depends on 8)

The robot controller according to claim 8, wherein
the action command generation circuitry adjusts at least one of the other axis command and the major axis command by applying a parameter for each of the passing area, the parameter expressing the action command and varying depending upon the passing area.

### Claim 10 (depends on 2)

The robot controller according to claim 2, wherein
the action command generation circuitry
generates, on the basis of a parameter learning algorithm that learns an evaluation function of a parameter expressing the action command, a candidate for the parameter that reduces the third action time while avoiding a clash between the robot and the obstacle, and sets a candidate that provides the shortest action time of the robot, as a parameter in adjusting the other axis command or the major axis command.

### Claim 11 (depends on 10)

The robot controller according to claim 10, wherein
the parameter includes at least one of: the number of angle changes of the axis motor; a start timing of each of the angle changes; maximum velocity in each of the angle changes; a length of an output time that is a time during which the axis motor outputs the maximum velocity; acceleration in each of the angle changes; and deceleration in each of the angle changes.

### Claim 12 (depends on 11)

The robot controller according to claim 11, wherein
the action command generation circuitry
generates the candidate for the parameter that satisfies a torque constraint of the robot.

### Claim 13 (depends on 10)

The robot controller according to claim 10, wherein
the action command generation circuitry
generates the candidate for the parameter that satisfies a torque constraint of the robot.

### Claim 14 (depends on 1)

The robot controller according to claim 1, wherein
the action command generation circuitry
generates an action command different from the first action command so as to allow the robot to pass through one or a plurality of passing areas placed between the action start point and the action goal point.

### Claim 15

A robot control method for controlling an axis motor that drives a corresponding one of a plurality of axes that moves joints of a robot, the robot control method comprising:
acquiring robot information and end point information, the robot information being information on the robot, the end point information including information on an action start point at which a specific position of the robot starts an action and information on an action goal point at which the specific position of the robot ends the action, and a storage step of storing obstacle information that is information on an obstacle with respect to the robot;
generating, on the basis of the robot information and the end point information, a first action command as an action command for the axis motor, the first action command minimizing a first action time, the first action time being an action time of movement when the specific position of the robot is moved from the action start point to the action goal point without considering the obstacle;
selecting, from among the axes, an axis having a longest action time when the action is performed in accordance with the first action command, the selected axis being a major axis; and
generating a trajectory that avoids a clash between the robot and the obstacle, wherein
the first action command includes another axis command and a major axis command, the other axis command being an action command for an axis other than the major axis, the major axis command being an action command for the major axis, and
generating the trajectory includes:
generating an action command different from the first action command and adjusting the other axis command so as to reduce a second action time, the second action time being an action time according to another axis command included in the generated action command; and
outputting, to an axis motor control circuitry to control the axis motor, a second action command that includes the major axis command and the other axis command after adjustment and corresponds to a first trajectory when determining, on the basis of the obstacle information, that the first trajectory corresponding to the second action command is a trajectory that avoids a clash between the robot and the obstacle.

### Claim 16

A non-transitory storage medium to store a robot control program for controlling an axis motor that drives a corresponding one of a plurality of axes that moves joints of a robot, the robot control program causing a computer to execute:
acquiring robot information and end point information, the robot information being information on the robot, the end point information including information on an action start point at which a specific position of the robot starts an action and information on an action goal point at which the specific position of the robot ends the action, and a storage step of storing obstacle information that is information on an obstacle with respect to the robot;
generating, on the basis of the robot information and the end point information, a first action command as an action command for the axis motor, the first action command minimizing a first action time, the first action time being an action time of movement when the specific position of the robot is moved from the action start point to the action goal point without considering the obstacle;
selecting, from among the axes, an axis having a longest action time when the action is performed in accordance with the first action command, the selected axis being a major axis; and
generating a trajectory that avoids a clash between the robot and the obstacle, wherein
the first action command includes another axis command and a major axis command, the other axis command being an action command for an axis other than the major axis, the major axis command being an action command for the major axis, and
generating the trajectory includes:
generating an action command different from the first action command and adjusting the other axis command so as to reduce a second action time, the second action time being an action time according to another axis command included in the generated action command; and
outputting, to an axis motor control circuitry to control the axis motor, a second action command that includes the major axis command and the other axis command after adjustment and corresponds to a first trajectory when determining, on the basis of the obstacle information, that the first trajectory corresponding to the second action command is a trajectory that avoids a clash between the robot and the obstacle.
