Trajectory determination device, trajectory determination method, and trajectory determination program

WO2025094780A1PCT designated stage expired Publication Date: 2025-05-08OMRON CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/037692
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-11-02
Filing Date
2024-10-23
Publication Date
2025-05-08

AI Technical Summary

Technical Problem

The prior art is difficult to effectively determine the manipulator robot trajectory, especially when considering the safety and work efficiency of people and obstacles.

Method used

Generate manipulator robot trajectories by generating units, calculate the special amounts in behavioral data, evaluate the risk and work efficiency of the trajectory to obstacles, and optimize the trajectory to maximize or minimize the score.

Benefits of technology

It is realized that the manipulator robot trajectory is more appropriately determined while taking into account the safety and work efficiency of humans and obstacles, and the accuracy and efficiency of trajectory optimization are improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024037692_08052025_PF_FP_ABST
    Figure JP2024037692_08052025_PF_FP_ABST
Patent Text Reader

Abstract

This trajectory determination device comprises: a generating unit that generates a trajectory of a manipulator robot; a first calculating unit that calculates a plurality of feature quantities on the basis of behavior data of the manipulator robot, the behavior data corresponding to the trajectory to be generated; a second calculating unit that calculates, on the basis of at least some of the plurality of feature amounts, a score relating to the behavior of the manipulator robot, the score including an index for evaluating risk with respect to an obstacle and an index indicating the work efficiency of the manipulator robot; and an optimizing unit that optimizes the trajectory on the basis of the calculated score.
Need to check novelty before this filing date? Find Prior Art

Description

Orbit determination device, orbit determination method, and orbit determination program

[0001] The present invention relates to a method for determining a trajectory of a manipulator robot.

[0002] Conventionally, there have been methods for determining the trajectory of a manipulator robot. For example, International Publication No. 2019 / 146007 (Patent Document 1) discloses a position control device including: a path determination unit that indicates a control amount for insertion based on an image acquired from an imaging unit and a value of a force sensor and that learns from the results of alignment; and a synthesis unit that outputs a periodic control amount adjustment value based on a periodic control amount that is set for each control period to arrive at the control amount and a control amount that is adapted to an external force based on the value of the force sensor.

[0003] Japanese Patent Publication No. 2019-518616 (Patent Document 2) discloses a configuration for enabling optimization of any of the productivity factors of a robot, including the speed or execution time of a task, the industrial profitability of the task, and energy efficiency.

[0004] International Publication No. 2019 / 146007 Japanese Patent Application Publication No. 2019-518616

[0005] In order to determine the trajectory of a manipulator robot, it is necessary to evaluate the influence of the manipulator robot on a person and the relationship between the manipulator robot and obstacles.

[0006] An object of the present invention is to provide a new method for determining the trajectory of a manipulator robot.

[0007] A trajectory determination device according to one example of the present invention includes a generation unit that generates a trajectory for a manipulator robot, a first calculation unit that calculates a plurality of feature amounts based on behavior data of the manipulator robot corresponding to the generated trajectory, a second calculation unit that calculates a score related to the behavior of the manipulator robot, including an index that evaluates the risk of an obstacle and an index that indicates the work efficiency of the manipulator robot, based on at least a portion of the plurality of feature amounts, and an optimization unit that optimizes the trajectory based on the calculated score.

[0008] According to this configuration, the trajectory is optimized based on a score related to the behavior of the manipulator robot, so that a trajectory can be determined taking into account an index that evaluates the risk of obstacles and an index that indicates the working efficiency of the manipulator robot.

[0009] The optimization unit may adjust parameters used by the generation unit to generate a trajectory so that the calculated score is maximized or minimized. This configuration makes it possible to use an optimization algorithm that aims to maximize or minimize the calculated score.

[0010] The generation unit may include a path planning algorithm for executing the path plan and a trajectory planning algorithm for executing the trajectory plan. With this configuration, a path can be generated by the path plan, and then a trajectory can be generated based on the generated path.

[0011] The generator may execute trajectory planning for a selected route from the one or more routes determined by the route planning. This configuration reduces the computing resources required to generate the trajectory.

[0012] The orbit determination device may further include a user interface unit that provides a user interface screen for accepting selection of one or more routes determined by the route plan. With this configuration, by accepting selection of one or more routes from the user, it is possible to determine an orbit that reflects the user's intention.

[0013] The generation unit may execute route planning under the conditions of the specified search area. This configuration reduces the computing resources required to generate the route. This configuration also allows the route to be generated while reflecting the user's intentions.

[0014] The generation of the behavior data may be based on at least one of actually operating the manipulator robot and running a simulation of the operation of the manipulator robot. With this configuration, the behavior of the manipulator robot can be collected by actually operating the manipulator robot or by running a simulation of the manipulator robot.

[0015] The behavior data may include at least one of a target angle value, an actual angle value, a target angular velocity value, an actual angular velocity value, a target angular acceleration value, and an actual angular acceleration value of each joint that constitutes the manipulator robot. With this configuration, the behavior of each joint that constitutes the manipulator robot can be reflected in the score.

[0016] According to another example of the present invention, there is provided a computer-executed trajectory determination method, which includes generating a trajectory for a manipulator robot, calculating a plurality of feature amounts based on behavior data of the manipulator robot corresponding to the generated trajectory, calculating scores related to the behavior of the manipulator robot, including an index for evaluating a risk against an obstacle and an index indicating the work efficiency of the manipulator robot, based on at least a portion of the plurality of feature amounts, and optimizing the trajectory based on the calculated scores.

[0017] A trajectory determination program according to yet another example of the present invention causes a computer to generate a trajectory for a manipulator robot, calculate a plurality of feature amounts based on behavior data of the manipulator robot corresponding to the generated trajectory, calculate a score related to the behavior of the manipulator robot, including an index for evaluating the risk of obstacles and an index for indicating the work efficiency of the manipulator robot, based on at least a portion of the plurality of feature amounts, and optimize the trajectory based on the calculated score.

[0018] According to the present invention, the trajectory of a manipulator robot can be determined more appropriately.

[0019] FIG. 1 is a diagram for explaining an overview of a trajectory determination method according to the present embodiment. FIG. 2 is a schematic diagram showing an example configuration of a robot system according to the present embodiment. FIG. 3 is a schematic diagram showing an example hardware configuration of an information processing device according to the present embodiment. FIG. 4 is a schematic diagram showing an example hardware configuration of a controller according to the present embodiment. FIG. 5 is a flowchart showing a processing procedure of a trajectory determination method according to the present embodiment. FIG. 6 is a schematic diagram showing an example software configuration of a robot system according to the present embodiment. FIG. 7 is a diagram for explaining calculation of feature amounts in the trajectory determination method according to the present embodiment. FIG. 8 is an example showing a relationship between feature amounts calculated in the trajectory determination method according to the present embodiment and each index of a behavior score. FIG. 9 is a graph showing an example of kinetic energy and potential energy calculated in the trajectory determination method according to the present embodiment. FIG. 10 is a diagram for explaining an example method of calculating movement time efficiency and movement distance efficiency in the trajectory determination method according to the present embodiment. FIG. 11 is a schematic diagram showing an example user interface screen provided by an information processing device according to the present embodiment. FIG. 12 is a schematic diagram showing a modification of a robot system according to the present embodiment. FIG. 13 is a schematic diagram showing yet another modification of a robot system according to the present embodiment.

[0020] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention will be described in detail with reference to the accompanying drawings, in which the same or corresponding parts are designated by the same reference numerals and will not be described repeatedly.

[0021] <A. Application Examples> In this embodiment, a "manipulator robot" refers to a robot that can perform any operation on an object (workpiece), such as grasping, processing, moving, and rotating. In the following explanation, a vertical articulated robot will be used as an example of a manipulator robot. The manipulator robot may also be abbreviated to "robot."

[0022] In this embodiment, the manipulator robot may be used as a collaborative robot (or a cooperative robot). The collaborative robot is used in the same workspace as a human worker.

[0023] In this embodiment, determining and generating a "trajectory" includes path planning and trajectory planning. That is, in this embodiment, the term "trajectory" encompasses a path generated by path planning and a trajectory generated by trajectory planning.

[0024] Path planning is a process for determining a path from a start point to an end point. Path planning includes a process for searching for and determining one or more intermediate points along the way from the start point to the end point. In path planning, the dynamics of the robot does not need to be taken into consideration.

[0025] Trajectory planning involves searching for and determining a trajectory for each section defined by a start point, one or more intermediate points, and an end point. In trajectory planning, motion parameters for moving the robot along the determined trajectory are determined, taking into account the robot's dynamics. The motion parameters include, for example, target velocity values ​​for each joint of the robot.

[0026] The trajectory determination method according to the present embodiment determines an optimal trajectory based on a score related to the behavior of the manipulator robot. That is, the trajectory determination method according to the present embodiment optimizes at least one of the path planning and the trajectory planning based on the score related to the behavior of the manipulator robot.

[0027] The following shows an example of optimizing the trajectory of a manipulator robot used as a collaborative robot, but according to this embodiment, the trajectory of a manipulator robot can also be optimized even if the manipulator robot is used for purposes other than as a collaborative robot.

[0028] 1 is a diagram for explaining an outline of a trajectory determination method according to the present embodiment. Referring to FIG. 1, a robot system 1 includes a trajectory generation unit 250, a feature amount calculation unit 152, a behavior score calculation unit 154, and an optimization unit 156.

[0029] The trajectory generating unit 250 corresponds to the generating unit and generates a trajectory of the manipulator robot. The feature amount calculating unit 152 corresponds to the first calculating unit and calculates a plurality of feature amounts based on the behavior data 50 of the manipulator robot corresponding to the trajectory to be generated.

[0030] The behavior score calculation unit 154 corresponds to a second calculation unit, and calculates a score related to the behavior of the manipulator robot based on at least a part of the plurality of feature amounts. The calculated score may include, for example, an index for evaluating the risk of an obstacle and an index for indicating the work efficiency of the manipulator robot.

[0031] The optimization unit 156 optimizes the trajectory based on the calculated score. More specifically, the optimization unit 156 updates parameters and the like used by the trajectory generation unit 250 to generate a trajectory. The trajectory generation unit 250 repeats generating a trajectory based on the updated parameters.

[0032] According to the trajectory determination method of the present embodiment, the trajectory is optimized based on the score related to the behavior of the manipulator robot. By using such optimization, the trajectory of the manipulator robot can be determined more appropriately.

[0033] <B. Example of Hardware Configuration> Next, an example of a hardware configuration for realizing the orbit determination method according to the present embodiment will be described.

[0034] Fig. 2 is a schematic diagram showing an example of the configuration of a robot system 1 according to the present embodiment. Referring to Fig. 2, the robot system 1 includes a robot 300 and a controller 200 for controlling the robot 300. The controller 200 generates a command for driving the robot 300.

[0035] The information processing device 100 is an example of a trajectory determination device. The information processing device 100 calculates a score related to the behavior of the manipulator robot (hereinafter also referred to as a "behavior score" to distinguish it from other scores) based on behavior data 50 acquired from the controller 200 or behavior data 50 prepared by any method. The behavior score may include multiple indicators. The information processing device 100 optimizes a trajectory corresponding to the acquired behavior data 50 based on the calculated behavior score.

[0036] 3 is a schematic diagram showing an example of a hardware configuration of information processing device 100 according to the present embodiment. Referring to FIG. 3, information processing device 100 is an example of a computer, and includes one or more processors 102, a memory 104, an input interface 106, a display interface 110, a USB (Universal Serial Bus) controller 114, a network controller 116, and storage 120.

[0037] The one or more processors 102 provide the processes and functions described below by executing computer-readable instructions included in a program stored in storage 120. When the one or more processors 102 execute the computer-readable instructions included in the program, part or all of the program may be loaded into memory 104.

[0038] The storage 120 is a non-transitory computer-readable medium. For example, an operating system (OS) 122 and an orbit determination program 124 are stored in the storage 120. The OS 122 includes computer-readable instructions for providing an environment for executing applications.

[0039] The orbit determination program 124 corresponds to an information processing program according to the present invention and includes computer readable instructions for optimizing an orbit.

[0040] The input interface 106 receives input commands from an input device 108 such as a keyboard, a touch panel, a mouse, or a tablet. The input device 108 may be a part of the configuration of the information processing device 100.

[0041] The display interface 110 outputs the video signal to a display 112. The display 112 may be a part of the configuration of the information processing device 100.

[0042] The USB controller 114 exchanges data with the controller 200 etc. The USB controller 114 may also function as at least one of the input interface 106 and the display interface 110.

[0043] The network controller 116 exchanges data with other information processing devices via the network.

[0044] In this specification, the term "processor" encompasses not only arithmetic circuits that sequentially execute computer-readable instructions, such as a central processing unit (CPU) and a graphics processing unit (GPU), but also hardwired circuits. Examples of hardwired circuits include an application specific integrated circuit (ASIC) and a field programmable gate array (FPGA). The term "processor" encompasses a system on a chip (SoC) that integrates a core, memory, and peripheral circuits.

[0045] 4 is a schematic diagram showing an example of a hardware configuration of controller 200 according to the present embodiment. Referring to FIG. 4, controller 200 is an example of a computer, and includes one or more processors 202, a memory 204, a robot interface 212, a USB controller 214, and storage 220.

[0046] The one or more processors 202 execute computer-readable instructions contained in a program stored in storage 220 to provide the processes and functions described below. When the one or more processors 202 execute the computer-readable instructions contained in the program, part or all of the program may be deployed in memory 204.

[0047] The storage 220 is a non-transitory computer-readable medium. The storage 220 stores, for example, a system program 222 and a trajectory generation program 224. The system program 222 includes computer-readable instructions for providing the necessary functions of the controller 200.

[0048] The trajectory generation program 224 includes computer readable instructions for generating a trajectory for the robot 300. The trajectory generation program 224 may include a path planning algorithm and a trajectory planning algorithm. The trajectory generation program 224 may include algorithms that perform both path planning and trajectory planning.

[0049] The robot interface 212 exchanges data with the robot 300. The USB controller 214 exchanges data with the information processing device 100 and the like.

[0050] The robot 300 includes motors for driving each joint that constitutes the manipulator (the arm of the robot 300) and drivers for supplying power to the motors. The robot 300 includes sensors for measuring the load acting on the manipulator and sensors for detecting people and obstacles in the vicinity of the robot 300. The robot 300 includes an interface circuit that transmits commands from the controller 200 to the driver and transmits measurement results from the sensors to the controller 200. The hardware configuration of the robot 300 is publicly known, so further detailed description will not be provided.

[0051] <C. Example of Processing Procedure> Next, an example of the processing procedure of the orbit determination method according to the present embodiment will be described.

[0052] 5 is a flowchart showing the processing procedure of the orbit determination method according to the present embodiment. Each step shown in FIG. 5 may be executed by at least one of the information processing device 100 and the controller 200. The processing may be executed by one or more processors 102 of the information processing device 100 executing the orbit determination program 124. The processing may be executed by one or more processors 202 of the controller 200 executing the trajectory generation program 224.

[0053] 5, a route plan is executed for a pre-specified start point and end point (step S1), and one or more route candidates are generated by the route plan.

[0054] Next, it is determined whether one or more selections have been made for one or more generated route candidates (step S2). The user may make the selection for the route candidate, or the selection for the route candidate may be made according to a predetermined algorithm.

[0055] When one or more selections are made (YES in step S2), the selected one or more route candidates are determined as candidates for trajectory planning (step S3).

[0056] If one or more selections are not made (NO in step S2), the process of step S3 is skipped. That is, all of the one or more generated route candidates are used as candidates for trajectory planning.

[0057] Trajectory planning is performed for one or more route candidates to determine the route, and the trajectory and movement parameters for each section included in the route (step S4). The trajectory of the robot 300 is generated by at least steps S1 and S4.

[0058] In this way, trajectory planning is performed for a route selected from one or more route candidates determined by the route planning. Note that one route may be selected from one or more route candidates using a known algorithm.

[0059] When the conditions for starting the operation are met (YES in step S5), commands for driving the robot 300 are generated sequentially in accordance with the movement parameters determined by the trajectory planning (step S6). Information related to the movement of the robot 300 is collected as behavior data 50 (step S7).

[0060] In addition, an avoidance operation may be performed as necessary. Specifically, when it is determined that the moving robot 300 has approached a person or an obstacle, the trajectory of the robot 300 is changed according to the position and size of the detected person or obstacle.

[0061] A behavior score is calculated (step S8) based on the collected behavior data 50. In step S8, a plurality of feature amounts are calculated based on the behavior data 50 of the robot 300 corresponding to the generated trajectory, and a score (behavior score) related to the behavior of the robot 300 is calculated based on at least a part of the plurality of feature amounts.

[0062] Next, based on the calculated behavior score, it is determined whether or not the optimization of the trajectory (movement parameters) corresponding to the behavior data 50 has converged (step S9).

[0063] Whether or not the trajectory corresponding to the behavior data 50 satisfies the predetermined conditions may be based on the judgment of the user, or may be based on a score calculated according to a predetermined algorithm.

[0064] If the optimization of the trajectory corresponding to the behavior data 50 has not converged (NO in step S9), the trajectory is optimized (step S10). Note that, in a state where the optimization of the trajectory (step S10) has not been executed, it may be determined in step S9 that the optimization of the trajectory has not converged.

[0065] In this way, the trajectory is optimized based on the behavior score. In optimizing the trajectory, the path plan and the planning parameters (such as costs and weights) given to the trajectory plan are changed. The planning parameters are parameters used by the trajectory generation unit 250 to generate a trajectory. Then, the processing from step S1 onwards or the processing from step S4 onwards is repeated.

[0066] If the optimization of the trajectory corresponding to the behavior data 50 has converged (YES in step S9), the trajectory corresponding to the behavior data 50 is determined as the final trajectory (step S11), and the trajectory determination process is then completed.

[0067] Before accepting the selection of one or more route candidates (step S2), a behavior score may be calculated for each of the route candidates. By displaying the behavior score in association with the route candidate, it is possible to assist the user in selecting a route candidate.

[0068] <D. Software Configuration Example> Next, a software configuration example of the robot system 1 according to the present embodiment will be described.

[0069] 6 is a schematic diagram showing an example of a software configuration of the robot system 1 according to the present embodiment. Referring to FIG. 6, the controller 200 includes a trajectory generating unit 250, a command generating unit 256, and a behavior data collecting unit 260.

[0070] The controller 200 executes path planning and trajectory planning to generate a trajectory for the robot 300. The trajectory for the robot 300 may be a set of position target values ​​for a tool center point (TCP) set for the robot 300. The generated trajectory includes movement parameters for the robot 300 to move through each section.

[0071] The trajectory generation unit 250 generates a trajectory of the robot 300. The trajectory generation unit 250 includes a path planning algorithm 252 for executing a path plan, and a trajectory planning algorithm 254 for executing a trajectory plan.

[0072] The command generation unit 256 sequentially generates commands for the robot 300. The command generation unit 256 may include an avoidance operation algorithm 258. The avoidance operation algorithm 258 changes the trajectory predetermined by the trajectory plan in accordance with people and obstacles present in the vicinity of the robot 300.

[0073] The behavior data collection unit 260 collects the behavior data 50 used to calculate the behavior score. The behavior data 50 collected by the behavior data collection unit 260 may be transmitted to the information processing device 100.

[0074] The information processing device 100 includes an evaluation unit 150 , an optimization unit 156 , and a user interface unit 160 .

[0075] The evaluation unit 150 calculates a behavior score based on the behavior data 50. The evaluation unit 150 includes a feature amount calculation unit 152 and a behavior score calculation unit 154.

[0076] The feature amount calculation unit 152 calculates a plurality of feature amounts based on the behavior data 50. Details of the calculated feature amounts will be described later.

[0077] The behavior score calculation unit 154 calculates a behavior score including a plurality of indices based on at least some of the plurality of feature amounts calculated by the feature amount calculation unit 152 .

[0078] The optimization unit 156 optimizes the trajectory based on the behavior score calculated by the evaluation unit 150. The optimization unit 156 determines whether or not optimization is necessary based on the behavior score calculated by the evaluation unit 150. The optimization unit 156 changes the planning parameters provided for the path plan and the trajectory plan based on the behavior score calculated by the evaluation unit 150.

[0079] The user interface unit 160 provides a user interface screen, as will be described later, and includes a candidate presentation unit 162 and a selection reception unit 164.

[0080] The candidate presentation unit 162 presents to the user one or more route candidates determined by the route planning algorithm 252 of the trajectory generation unit 250 .

[0081] The selection receiving unit 164 receives a selection from one or more of the presented route candidates. The selection receiving unit 164 provides the received selection to the controller 200.

[0082] The candidate presentation unit 162 and the selection reception unit 164 may present one or more route candidates and receive selections via a common user interface screen.

[0083] <E. Behavior Data 50> Next, behavior data 50 (see step S7 in FIG. 5 and behavior data collection unit 260 in FIG. 6, etc.) collected in robot system 1 according to the present embodiment will be described.

[0084] The behavior data 50 may include at least one of a target angle value, an actual angle value, a target angular velocity value, an actual angular velocity value, a target angular acceleration value, and an actual angular acceleration value of each joint constituting the manipulator of the robot 300. The actual values ​​and the target values ​​may be time-series data. The behavior data 50 may include at least one of a moment of inertia, a simultaneous transformation matrix, a mass, an actual velocity value, and a target velocity value of each link constituting the manipulator of the robot 300. The behavior data 50 may include an end effector position.

[0085] The behavior data 50 may include information on a trajectory (hereinafter also referred to as an "original trajectory") that is predetermined by trajectory planning. When the robot 300 changes the predetermined trajectory due to an avoidance operation against an obstacle, the behavior data 50 may include the changed trajectory (hereinafter also referred to as an "avoidance trajectory"). The behavior data 50 may include information on the trajectory (original trajectory) that is predetermined by trajectory planning and information on the trajectory (avoidance trajectory) that has been changed due to an avoidance operation against an obstacle.

[0086] The original trajectory and the avoidance trajectory indicate the movement path of the robot 300. The original trajectory and the avoidance trajectory may be temporal changes in the TCP set for the robot 300. The behavior data 50 may include a profile (performance, specifications, etc.) of the robot 300. The behavior data 50 may also include the time required for the robot 300 to move (movement time).

[0087] <F. Behavior Score> Next, the behavior score calculated in the trajectory determination method according to the present embodiment (see step S8 in FIG. 5 and evaluation unit 150 in FIG. 6 , etc.) will be described. The calculated behavior score includes at least an index for evaluating the risk posed by an obstacle (an index related to risk assessment) and an index indicating the work efficiency of robot 300.

[0088] As an example, the behavior score includes indicators of cooperativeness, appropriateness, and execution efficiency. The cooperativeness indicates the degree to which a person can work with peace of mind. The appropriateness indicates whether the trajectory of the robot 300 is appropriate. The execution efficiency indicates changes in the operation efficiency of the robot 300.

[0089] Cooperation is an example of an index for evaluating a risk due to an obstacle. Execution efficiency is an example of an index indicating the work efficiency of the robot 300. Validity can be an index for evaluating a risk due to an obstacle and an index indicating the work efficiency of the robot 300.

[0090] The behavior score may reflect at least one of the following perspectives: stable operation of the robot 300, mental security of people working with the robot 300 in the same workspace, and operational efficiency of the robot 300.

[0091] 7 is a diagram for illustrating calculation of feature amounts in the trajectory determination method according to the present embodiment. Referring to FIG. 7, evaluation unit 150 includes a feature amount calculation unit 152 and a behavior score calculation unit 154.

[0092] The feature amount calculation unit 152 calculates a plurality of feature amounts based on the behavior data 50. The behavior score calculation unit 154 calculates a behavior score made up of a plurality of indices based on at least some of the plurality of feature amounts.

[0093] 8 shows an example of the relationship between the feature quantities calculated in the trajectory determination method according to the present embodiment and each indicator of the behavior score. As shown in FIG. 8, each indicator of the behavior score is calculated based on at least a part of the plurality of feature quantities. More specifically, the plurality of feature quantities associated with each indicator of the behavior score are multiplied by a predetermined weight, and the sum of these weights is determined as the value of each indicator.

[0094] The weight value of each feature may be determined according to the association between each index of the behavior score and the feature. For example, the weight of a feature associated with a certain index may be set to a non-zero value, and the weight of a feature not associated with that index may be set to zero.

[0095] The user may also be able to freely change the weights. The weights of the feature amounts may be set according to the application (task) of the robot 300. The feature amounts to be focused on may be different depending on the type of application.

[0096] For example, the behavior score may be a weighted sum of the indices. Specifically, the behavior score Score=w 1 ×[Indicator 1]+w 2 ×[Indicator 2]+...+w N × [index N], where w i (i∈N) denotes a weighting coefficient.

[0097] G. Feature Amounts Next, an example of feature amounts (see FIG. 8, etc.) used to calculate the behavior score in the trajectory determination method according to the present embodiment will be described. Each feature amount is calculated from behavior data 50.

[0098] (g1: Manipulability) Manipulability is a value that indicates the degree of ease of movement of the manipulator during avoidance operation. Manipulability indicates the distance to a singular posture. The smaller the manipulability, the more limited the force generated by the manipulator.

[0099] Manipulability w at time t t is calculated using the determinant of the basic Jacobian matrix J as shown in equation (1). The basic Jacobian matrix J is expressed as equation (2) using the number of joints n of the robot 300.

[0100] In formula (2), z n and t n is the homogeneous transformation matrix T shown in equation (3). n Specifically, the homogeneous transformation matrix T nFrom the components of the third and fourth columns of z n and t n are determined respectively.

[0101] As shown in equation (4), the manipulability wt is averaged for the number m of data included in the behavior data 50, to obtain the average manipulability w mean Furthermore, as shown in equation (5), the average manipulability w mean The manipulability score w is normalized to the range of 0 to 1. score is calculated.

[0102]

[0103] (g2: Relative Distance / Relative Speed) The relative distance and relative speed indicate the relative distance and relative speed of the robot 300 with respect to a person. The relative distance and relative speed are indices that indicate the likelihood that the robot 300 will avoid the person.

[0104] In calculating the relative distance and relative speed, based on the behavior data 50, it is evaluated how far away the robot 300 is from the person in the work space at each time, and how fast the robot 300 is approaching the person in the work space at each time.

[0105] The minimum value of the distance to the person calculated for the movement of the robot 300 may be determined as the relative distance. The maximum value of the speed to the person calculated for the movement of the robot 300 may be determined as the relative speed. The relative distance and relative speed may be determined by averaging the distances and speeds to the person calculated for the movement of the robot 300.

[0106] Note that at least one of the relative distance and the relative velocity may be calculated. That is, instead of calculating both the relative distance and the relative velocity, only the relative distance may be calculated, or only the relative velocity may be calculated.

[0107] (g3: Angle / distance / speed between face and end effector) The angle, distance, and speed between the face and the end effector are indicators of how close the end effector attached to the tip of the robot 300 will get to the person's face.

[0108] The angle between the face and the end effector is the angle between the end effector and the person's face while the robot 300 is moving. The angle between the person's face and the central axis of the end effector may be calculated sequentially while the robot 300 is moving. The smallest value (the acutest angle) of the angles calculated while the robot 300 is moving may be calculated as the angle between the face and the end effector.

[0109] The distance between the face and the end effector is the distance between the end effector and the person's face while the robot 300 is moving. The shortest distance from the person's face to the end effector may be calculated sequentially while the robot 300 is moving. The minimum value of the distances calculated during the movement of the robot 300 may be determined as the distance between the face and the end effector.

[0110] The velocity between the face and the end effector is the velocity at which the end effector moves relative to the person's face while the robot 300 is moving. While the robot 300 is moving, the component of the movement vector of the end effector that points toward the person's face may be calculated sequentially. The maximum value of the calculated velocities for the movement of the robot 300 may be determined as the velocity between the face and the end effector.

[0111] At least one of the angle, distance and velocity between the face and the end effector may be calculated.

[0112] (g4: Shortest distance) The shortest distance indicates how close the robot 300 is to a person and an obstacle. The shortest distance is an index indicating how likely it is that the robot 300 will avoid a person.

[0113] The shortest distance is the minimum value of the distance from the robot 300 to a person or an obstacle while the robot 300 is moving. The distances to people or obstacles around the robot 300 may be calculated sequentially while the robot 300 is moving. The minimum value of the distances calculated regarding the movement of the robot 300 may be determined as the shortest distance.

[0114] (g5: Angular Velocity) The angular velocity indicates the rotational velocity occurring at each joint during the movement of the robot 300. The angular velocity indicates the velocity of each link of the robot 300, and is an index indicating the likelihood that the robot 300 will avoid a person.

[0115] The angular velocity of each joint of the robot 300 may be sequentially acquired while the robot 300 is moving. The maximum value of the angular velocity of each joint calculated during the movement of the robot 300 may be determined as the angular velocity.

[0116] (g6: Link Energy) Link energy (workload score) indicates the energy possessed by each link while the robot 300 is moving. The higher the speed of the link, the lower the safety, and the higher the position of the link, the lower the safety. Link energy is an index that indicates how likely the robot 300 is to avoid a person. Link energy reflects kinetic energy and potential energy.

[0117] Specifically, as shown in equation (6), the total mechanical energy E of the robot 300 is the sum of the total kinetic energy K and the total potential energy U.

[0118] As shown in equation (7), the total kinetic energy K is the sum of the kinetic energy of each link. i (i is the link number) is calculated as shown in equation (8). i indicates the mass of each link, and v cmi indicates the velocity of the center of gravity of each link, and ω i indicates the angular velocity of each link, and I i indicates the completion moment of each link.

[0119] As shown in equation (9), the total potential energy U is the sum of the potential energies of each link. i (i is the link number) is calculated as shown in equation (10). In equation (10), g represents the gravitational acceleration, and y cmi indicates the height of the center of gravity of each link.

[0120] Finally, as shown in equation (11), the total mechanical energy E is normalized to the range of 0 to 1 using the sigmoid function σ(x) to obtain the work score E score is calculated. score is used as the link energy.

[0121]

[0122] 9 is a graph showing an example of the kinetic energy and potential energy calculated in the trajectory determination method according to the present embodiment. As shown in FIG. 9, the kinetic energy and potential energy are calculated for each link, and the link energy (workload score) is determined.

[0123] (g7: Travel Time Efficiency / Travel Distance Efficiency) Travel time efficiency and travel distance efficiency indicate the degree of influence on production efficiency due to an obstacle avoidance operation.

[0124] 10 is a diagram for explaining an example of a method for calculating travel time efficiency and travel distance efficiency in the trajectory determination method according to the present embodiment. Fig. 10 shows an example in which the trajectory of robot 300 determined by trajectory planning (original trajectory) is changed to an avoidance trajectory due to the presence of an obstacle.

[0125] The travel time efficiency indicates how much the time required to travel from the start point to the end point is increased by the avoidance action. Specifically, the travel time score t score is the travel time t when moving along the original trajectory total and the travel time t when moving along the avoidance trajectory. a It is calculated as follows using

[0126] t score = t total / ta The travel distance efficiency indicates how much the travel distance from the start point to the end point has increased due to the avoidance action. Specifically, the travel distance score l score is the distance traveled when moving along the original trajectory l total and the distance traveled when moving along the avoidance trajectory l a It is calculated as follows using

[0127] l score =l total / l a (g8: Amount of Trajectory Deviation) The amount of trajectory deviation is a value indicating the degree of change in trajectory due to an avoidance operation against an obstacle.

[0128] For example, the maximum distance between any point on the original trajectory and any point on the avoidance trajectory as shown in FIG. 10 may be determined as the trajectory deviation amount.

[0129] Alternatively, the amount of deviation from the trajectory can be calculated by calculating the travel distance efficiency by multiplying the travel distance l when traveling along the original trajectory. total and the distance traveled when moving along the avoidance trajectory l a It may be calculated using the following:

[0130] (g9: Radius of curvature) The radius of curvature is a value indicating the degree of change in the trajectory of the movement of the robot 300. The smaller the radius of curvature, the greater the change in the trajectory of the movement of the robot 300.

[0131] The radii of curvature are calculated sequentially along the trajectory of the robot 300. The minimum value of the sequentially calculated radii of curvature may be determined as the final radius of curvature. Alternatively, the final radius of curvature may be calculated by averaging the sequentially calculated radii of curvature.

[0132] (g10: Work Energy) Work energy indicates the energy of the work held by the robot 300 (end effector). The faster the work speed, the lower the safety, the higher the position of the work, and the heavier the work, the lower the safety. Work energy is an index that indicates how likely it is that the robot 300 will avoid a person.

[0133] The workpiece energy reflects the kinetic energy and potential energy of the workpiece. The workpiece energy can be calculated using the same formula as the link energy described above.

[0134] (g11: Others) It is not necessary to calculate all of the above-described feature amounts, but it is sufficient to calculate at least some of them. In addition to the above-described feature amounts, any feature amount indicating the behavior of the robot 300 or any feature amount indicating the relationship between the robot 300 and a person may be calculated.

[0135] <H. Orbit Optimization> Next, orbit optimization in the orbit determination method according to the present embodiment will be described.

[0136] If each of the N (N≧2) indicators included in the behavior score indicates a more favorable state the higher the value (the larger the behavior score value, the more favorable the state), then in optimizing the trajectory, planning parameters may be searched for so as to maximize (maximize) the behavior score.

[0137] On the other hand, if a smaller behavior score indicates a more favorable state, the planning parameters may be searched for in trajectory optimization so as to minimize (minimize) the behavior score.

[0138] A known optimization method can be used. For example, Bayesian optimization may be used to search for optimal planning parameters. Note that multiple paths may be output as the optimization result, rather than a single path.

[0139] A plurality of types of trajectories determined by the path plan and the trajectory plan may be evaluated in a round-robin manner. In this case, behavior data 50 for each trajectory is collected, and a behavior score is calculated for each of the collected behavior data 50. One or more trajectories with the highest calculated behavior scores may be output as the optimization result.

[0140] <I. Example of User Interface Screen> Next, an example of a user interface screen provided by information processing device 100 according to the present embodiment will be described.

[0141] 11 is a schematic diagram showing an example of a user interface screen 400 provided by information processing device 100 according to the present embodiment. User interface screen 400 includes a search area setting unit 410 for accepting designation of a search area. The search area defines the range within which a route is generated in route planning.

[0142] The user interface screen 400 includes a cross-section view 412 showing a cross section of the workspace and a plan view 414 showing a plan view of the workspace.

[0143] The user sets a search area for at least one of the cross-sectional view 412 and the plan view 414. A cross-sectional range 416 of the search area is set for the cross-sectional view 412, and a planar range 418 of the search area is set for the plan view 414.

[0144] The path planning algorithm 252 (FIG. 6) of the trajectory generation unit 250 generates one or more path candidates within the search area defined by the range 416 and the range 418. That is, the path planning algorithm 252 (FIG. 6) may perform path planning under the conditions of the specified search area.

[0145] The user interface screen 400 can accept robot parameters. In the example shown in Fig. 11, the user interface screen 400 accepts the setting of a maximum speed 420 as a robot parameter. The value set for the maximum speed 420 may be used as a constraint in trajectory planning.

[0146] The user interface screen 400 can accept target values ​​for the trajectory to be determined. In the example shown in Figure 11, the user interface screen 400 assigns a behavior score target value 422 and a maximum execution time 424. The values ​​set for the behavior score target value 422 and the maximum execution time 424 may be used as constraints and convergence conditions for trajectory optimization.

[0147] That is, a trajectory that shows a behavior score that exceeds the value set in the behavior score target value 422 and is equal to or less than the value set in the maximum execution time 424 may be determined as the final trajectory.

[0148] 12 is a schematic diagram showing an example of a user interface screen 430 provided by information processing device 100 according to the present embodiment. User interface screen 430 includes a route candidate list 440 for accepting selection of one or more route candidates generated by route planning.

[0149] In this way, the user interface unit 160 (FIG. 6) of the information processing device 100 provides a user interface screen 430 for accepting selection of one or more routes determined by the route plan.

[0150] 12, the route candidate list 440 includes a plurality of route candidates 442, 444, 446, and 448. The calculated behavior score and maximum execution time are displayed in association with each of the route candidates 442, 444, 446, and 448.

[0151] Route candidates whose behavior score is less than the value set in the behavior score target value 422 and whose maximum execution time exceeds the value set in the maximum execution time 424 may be displayed in an unselectable state or in a manner different from the other route candidates.

[0152] The user interface screen 430 includes a route display 450 that represents one or more route candidates generated by the route plan in three-dimensional space. The user can select a route candidate while referring to the route display 450.

[0153] By allowing the user to select route candidates, the time required for trajectory optimization to converge can be reduced.

[0154] <J. Modifications> The trajectory determination method according to this embodiment can be applied not only to vertical articulated robots but also to any manipulator robot. Examples of applicable manipulator robots include horizontal articulated robots (SCARA robots), parallel link robots, Cartesian robots, and dual-arm robots.

[0155] The determined trajectory may be output by transmitting data indicating the trajectory from the information processing device 100 to the controller 200, or by outputting the data indicating the trajectory as an electronic file.

[0156] Providing a user interface screen may include at least one of a method of outputting a video signal to a display 112 via a display interface 110 of the information processing device 100 and a method of transmitting a screen image to another information processing device via a network.

[0157] The generation of the trajectory, the collection of the behavior data 50, and the optimization of the trajectory may be performed by either the information processing device 100 or the controller 200.

[0158] 13A and 13B are schematic diagrams showing modified examples of the robot system 1 according to the present embodiment. Fig. 13A shows an example in which the trajectory generating unit 250 is arranged in the information processing device 100, rather than in the controller 200. Referring to Fig. 13A, the information processing device 100 includes the trajectory generating unit 250 in addition to the evaluation unit 150 and the selection receiving unit 164.

[0159] The information processing device 100 executes route planning and trajectory planning, and also collects behavior data 50 from the controller 200 to optimize the route.

[0160] 13B shows an example in which all components are arranged in the controller 200. The controller 200 includes an evaluation unit 150 and an optimization unit 156 in addition to a trajectory generation unit 250, a command generation unit 256, and a behavior data collection unit 260.

[0161] The controller 200 performs path planning and trajectory planning and optimizes the path based on the behavior data 50 .

[0162] For convenience of explanation, the candidate presentation unit 162 and the selection reception unit 164 are not illustrated in FIG. 13, but these components may be disposed in the information processing device 100 or the controller 200.

[0163] 13 are merely examples, and the necessary components may be arranged in any device. In addition, some components may be arranged in any device other than the information processing device 100 and the controller 200 (for example, computer resources on the cloud).

[0164] The behavior data 50 may be generated by a simulator instead of being collected by actually operating the robot 300 .

[0165] FIG. 14 is a schematic diagram showing yet another modified example of the robot system 1 according to the present embodiment.

[0166] 14A shows an example in which a robot simulator 270 is arranged in the controller 200. The robot simulator 270 simulates or emulates the operation of the robot 300. The robot simulator 270 sequentially calculates the state of the robot 300 in accordance with the commands sequentially generated by the command generator 256.

[0167] The behavior data collection unit 260 generates behavior data 50 based on the state of the robot 300 that is sequentially calculated by the robot simulator 270 .

[0168] 14(B) shows an example in which the trajectory generation unit 250 is arranged in the information processing device 100, rather than in the controller 200, similar to Fig. 13(A). In this example as well, the robot simulator 270 sequentially calculates the state of the robot 300 in accordance with the commands sequentially generated by the command generation unit 256.

[0169] 14 are merely examples, and the necessary components may be arranged in any device. For example, the robot simulator 270 may be arranged in any device (e.g., a computer resource on the cloud) other than the information processing device 100 and the controller 200.

[0170] For convenience of explanation, the candidate presentation unit 162 and the selection reception unit 164 are not shown in FIGS. 13 and 14, but these components may be arranged in the information processing device 100 or the controller 200.

[0171] As described above, the generation of the behavior data 50 may be based on at least one of actually operating the robot 300 and running a simulation of the operation of the robot 300 (robot simulator 270).

[0172] The information processing device 100 according to the present embodiment may not only execute the process as an orbit determination device, but also a plurality of information processing devices may cooperate to execute the process as an orbit determination device. Also, the controller 200 may include the orbit determination device.

[0173] <K. Supplementary Note> The present embodiment as described above includes the following technical idea.

[0174] [Configuration 1] A trajectory determination device comprising: a generation unit (250) that generates a trajectory for a manipulator robot (300); a first calculation unit (152) that calculates a plurality of feature amounts based on behavior data (50) of the manipulator robot that corresponds to the generated trajectory; a second calculation unit (154) that calculates a score related to the behavior of the manipulator robot, including an index that evaluates the risk of an obstacle and an index that indicates the work efficiency of the manipulator robot, based on at least a portion of the plurality of feature amounts; and an optimization unit (156) that optimizes the trajectory based on the calculated score.

[0175] [Configuration 2] The orbit determination device according to Configuration 1, wherein the optimization unit adjusts parameters used by the generation unit to generate the orbit so that the calculated score is maximized or minimized.

[0176] [Configuration 3] The orbit determination apparatus of Configuration 1, wherein the generator includes a path planning algorithm (252) for performing path planning, and a trajectory planning algorithm (254) for performing trajectory planning.

[0177] [Configuration 4] The trajectory determination device according to Configuration 3, wherein the generation unit executes trajectory planning for a route selected from one or more routes determined by the route planning.

[0178] [Configuration 5] The orbit determination device according to Configuration 3 or 4, further comprising a user interface unit (160) that provides a user interface screen (430) for accepting selection of one or more paths determined by the path planning.

[0179] [Configuration 6] The trajectory determination device according to any one of Configurations 3 to 5, wherein the generation unit executes the path planning under conditions of a designated search area.

[0180] [Configuration 7] The trajectory determination device according to any one of configurations 1 to 6, wherein the generation of the behavior data is based on at least one of actually operating the manipulator robot and executing a simulation of the operation of the manipulator robot.

[0181] [Configuration 8] The trajectory determination device according to any one of Configurations 1 to 7, wherein the behavior data includes at least one of a target angle value, an actual angle value, a target angular velocity value, an actual angular velocity value, a target angular acceleration value, and an actual angular acceleration value of each joint constituting the manipulator robot.

[0182] [Configuration 9] A trajectory determination method executed by a computer (100; 200), comprising: generating a trajectory for a manipulator robot (300) (S1, S4); calculating a plurality of feature amounts based on behavior data of the manipulator robot corresponding to the generated trajectory (S8); calculating a score related to the behavior of the manipulator robot, including an index for evaluating the risk of an obstacle and an index indicating the work efficiency of the manipulator robot, based on at least a portion of the plurality of feature amounts (S8); and optimizing the trajectory based on the calculated score (S10).

[0183] [Configuration 10] A trajectory determination program for causing a computer (100; 200) to execute the following steps: generating a trajectory for a manipulator robot (300) (S1, S4); calculating a plurality of feature amounts based on behavior data of the manipulator robot corresponding to the generated trajectory (S8); calculating a score related to the behavior of the manipulator robot, including an index for evaluating the risk of obstacles and an index indicating the work efficiency of the manipulator robot, based on at least a portion of the plurality of feature amounts (S8); and optimizing the trajectory based on the calculated score (S10).

[0184] L. Advantages To evaluate the safety of manipulator robots such as collaborative robots, it is necessary to evaluate the impact of the manipulator robot on people and the relationship between the manipulator robot and obstacles. The trajectory determination method according to this embodiment calculates a behavior score based on at least a portion of a plurality of feature amounts, the behavior score including an index for evaluating the risk posed by obstacles and an index indicating the work efficiency of the manipulator robot. The calculated behavior score is used to optimize the trajectory of the manipulator robot, allowing for more appropriate determination of the trajectory of the manipulator robot.

[0185] The embodiments disclosed herein should be considered to be illustrative in all respects and not restrictive. The scope of the present invention is defined by the claims, not by the above description, and is intended to include all modifications within the meaning and scope of the claims.

[0186] 1 Robot system, 50 Behavior data, 100 Information processing device, 102, 202 Processor, 104, 204 Memory, 106 Input interface, 108 Input device, 110 Display interface, 112 Display, 114, 214 USB controller, 116 Network controller, 120, 220 Storage, 122 OS, 124 Trajectory determination program, 150 Evaluation unit, 152 Feature calculation unit, 154 Behavior score calculation unit, 156 Optimization unit, 160 User interface unit, 162 Candidate presentation unit, 164 Selection reception unit, 200 Controller, 212 Robot interface, 222 System program, 224 Trajectory generation program, 250 Trajectory generation unit, 252 Path planning algorithm, 254 Trajectory planning algorithm, 256 Command generation unit, 258 Avoidance operation algorithm, 260 Behavior data collection unit, 270 Robot simulator, 300: robot, 400, 430: user interface screen, 410: search area setting section, 412: cross-sectional view, 414: plan view, 416, 418: range, 420: maximum speed, 422: behavior score target value, 424: maximum execution time, 440: route candidate list, 442, 444, 446, 448: route candidate, 450: route display.

Claims

1. A trajectory determination device comprising: a generation unit that generates a trajectory for a manipulator robot; a first calculation unit that calculates a plurality of feature amounts based on behavior data of the manipulator robot corresponding to the generated trajectory; a second calculation unit that calculates a score regarding the behavior of the manipulator robot, including an index for evaluating a risk due to an obstacle and an index indicating the work efficiency of the manipulator robot, based on at least a portion of the plurality of feature amounts; and an optimization unit that optimizes the trajectory based on the calculated score.

2. The orbit determination device according to claim 1, wherein the optimization unit adjusts parameters used by the generation unit to generate the orbit so that the calculated score is maximized or minimized.

3. The orbit determination device according to claim 1, wherein the generation unit includes a path planning algorithm for executing a path plan, and a trajectory planning algorithm for executing a trajectory plan.

4. The orbit determination device according to claim 3, wherein the generation unit executes trajectory planning for a route selected from one or more routes determined by the route planning.

5. The orbit determination device according to claim 3 or 4, further comprising a user interface unit that provides a user interface screen for accepting selection of one or more routes determined by the route plan.

6. The orbit determination device according to any one of claims 3 to 5, wherein the generation unit executes the path plan under conditions of a specified search area.

7. A trajectory determination device according to any one of claims 1 to 6, wherein the generation of the behavior data is based on at least one of actually operating the manipulator robot and executing a simulation of the operation of the manipulator robot.

8. A trajectory determination device as described in any one of claims 1 to 7, wherein the behavior data includes at least one of an angle target value, an angle actual value, an angular velocity target value, an angular velocity actual value, an angular acceleration target value, and an angular acceleration actual value of each joint constituting the manipulator robot.

9. A trajectory determination method executed by a computer, comprising: generating a trajectory for a manipulator robot; calculating a plurality of feature amounts based on behavior data of the manipulator robot corresponding to the generated trajectory; calculating a score related to the behavior of the manipulator robot, including an index for evaluating a risk due to an obstacle and an index indicating the work efficiency of the manipulator robot, based on at least a portion of the plurality of feature amounts; and optimizing the trajectory based on the calculated score.

10. A trajectory determination program for causing a computer to execute the following steps: generating a trajectory for a manipulator robot; calculating a plurality of feature amounts based on behavior data of the manipulator robot corresponding to the generated trajectory; calculating a score related to the behavior of the manipulator robot, including an index for evaluating a risk due to an obstacle and an index indicating the work efficiency of the manipulator robot, based on at least a portion of the plurality of feature amounts; and optimizing the trajectory based on the calculated score.

Citation Information

Patent Citations

  • Robot and communication robot system

    JP2006127047A

  • Robot control device, and robot system using the same

    JP2019206080A