Information processing method, information processing device, program, recording medium, production system, robot system and article production method

The information processing method optimizes robot arm trajectories by generating intermediate teaching points and optimizing them to satisfy operational constraints, addressing inefficiencies and constraint challenges in conventional methods.

JP2025079828AActive Publication Date: 2025-05-22CANON KK
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2025020762
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-02-12
Publication Date
2025-05-22
Estimated Expiration
2038-02-05

AI Technical Summary

Technical Problem

Conventional methods for generating robot arm trajectories are inefficient, often resulting in suboptimal operation times and difficulty in satisfying constraints such as joint torque and interference avoidance.

Method used

An information processing method that accepts user-defined teaching points and generates intermediate teaching points to define a path, which are then optimized to produce an optimal trajectory that satisfies constraints on robot operation.

Benefits of technology

This method reliably generates optimal trajectories that avoid interference and meet operational constraints, thereby improving efficiency and reducing labor costs in production systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025079828000001_ABST
    Figure 2025079828000001_ABST
Patent Text Reader

Abstract

To satisfy a restriction condition related to robot operation and to surely generate an optimum locus.SOLUTION: A first intermediate teaching point group between a start teaching point and a target teaching point of a locus for operating a robot arm (A) is displaced to generate a second intermediate teaching point group, (S102). Further, the locus of the robot arm (A) is generated based on the second intermediate teaching point group, (S103). An evaluation value for each second intermediate teaching point group or the locus thereof is generated, (S107); a process (S108) of moving the first intermediate teaching point group based on the evaluation value is repeated; and the first intermediate teaching point group satisfying a predetermined condition is determined as an intermediate teaching point group used to generate the locus for operating the robot arm, (S110).SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information processing method and an information processing apparatus for generating a trajectory of a robot arm.

Background Art

[0002] Conventionally, in a production system (production line) of industrial products such as automobiles and electrical products, a configuration in which an industrial robot device is arranged to automate operations such as welding and assembly is known. In this type of production system, the robot device, the workpiece, the workpiece table, the jig, and other peripheral devices are arranged in a state where they may interfere with each other (contact, collision). In recent years, in the design work of the operation trajectory of the arm of the robot device in such a production system, simulation using a virtual environment may be used.

[0003] When performing an operation simulation of a robot device using a simulator device offline, 3D (three-dimensional) models of a robot arm, a workpiece table, a jig, and other peripheral devices are arranged in a virtual environment. For example, in such a simulator device, there is one that generates a trajectory between teaching points of a robot arm created in advance, and also performs a simulation in which a 3D model of the robot arm in the virtual environment is operated along the trajectory for verification. The state of the robot arm model operating can be displayed in a video format or the like on the virtual display screen of the simulator device's display.

[0004] Naturally, the simulation results vary greatly depending on the operation trajectory of the robot arm. If the trajectory of the robot arm is inappropriate, a part of the operation trajectory of the robot arm may enter an area where the robot arm cannot operate, the robot arm may interfere with other objects, or the cycle time may be delayed due to unnecessary operations.

[0005] In the conventional method, the operator created the teaching points of the robot arm on the screen by trial and error, which satisfied the conditions that the robot arm would not enter an area where it could not operate, or interfere with peripheral equipment. In this case, since the conditions of being movable and not interfering were considered first, the robot trajectory that could operate at the optimal operating speed was not necessarily generated, and the cycle time was sometimes slow. In such cases, it was necessary to manually reconsider and reset the teaching points of the robot arm.

[0006] On the other hand, when using a robot device in a production system (line), the process designer must spend a lot of time creating teaching points, which leads to a problem of rising labor costs. Therefore, in recent years, methods and devices have been proposed that use computers to make the teaching work of a robot arm more efficient, instead of direct teaching by an instructor.

[0007] The following Non-Patent Document 1 discloses a method for generating a trajectory that avoids interference with obstacles around a robot arm and minimizes the torque of the motor used in the joints of the robot arm. Figure 8 shows an outline of the method for generating a trajectory for a robot arm in Non-Patent Document 1. In Figure 8, robot arm A is a simplified robot arm with two degrees of freedom having two rotation axes J1 and J2, and Ob indicates an obstacle.

[0008] In FIG. 8, p1, p2, ..., p9 indicate positions to which the end of the hand (TCP: Tool Center Point) of the robot arm A is moved. Among these positions, p1 indicates the start position (start teaching point) of the operation, and p9 indicates the target position (target teaching point) of the operation. Also, p2 to p8 indicate intermediate command values ​​to be placed between the start position (p1) and the target position (p9). For example, the postures of p1, p2, ..., p9 can be commanded to the robot arm A in sequence for each control cycle, and the robot arm A can perform an operation from p1 to p9. In this case, the operation time of the robot arm between the start position (p1) and the target position (p9) is calculated as the control cycle x (9-1). In the case of Non-Patent Document 1, the number of intermediate command values ​​(p2 to p8) is determined in advance as a constant, and in this case, it is 7. In FIG. 8, the robot arm and the obstacle Ob interfere with each other at p4 and p5, but a trajectory that can avoid the interference can be generated by the following method.

[0009] First, the joint angles corresponding to the intermediate command values ​​p2, p3, ..., p8 are smoothly displaced to generate N new intermediate command values ​​ri2, ri3, ..., ri8 (i = 1, ..., N). Next, the intermediate command values ​​ri2, ri3, ..., ri8 (i = 1, ..., N) are evaluated, and the process of displacing the intermediate command values ​​p2, p3, ..., p8 based on the evaluation value is repeated to optimize the trajectory. In Non-Patent Document 1, the penetration amount between the robot arm A and the obstacle Ob and the motor torque used for each joint axis are used as the evaluation value of the intermediate command value. By using such evaluation values, a trajectory is generated in which the robot arm A and the obstacle Ob do not interfere with each other and the motor torque used for each joint axis does not become overloaded. [Prior art documents] [Non-patent literature]

[0010] [Non-Patent Document 1] Kalakrishnan, Mrinal, et al. "STOMP: Stochastic trajectory optimization for motion planning." Robotics and Automation (ICRA), 2011 IEEE International Conference on IEEE, 2011. Summary of the Invention [Problem to be solved by the invention]

[0011] As described above, the technology of Non-Patent Document 1 generates a trajectory in which the robot arm A and the obstacle Ob do not interfere with each other and the motor torque used for each joint axis does not become overloaded. However, in the technology of Non-Patent Document 1, the number of intermediate command values ​​is fixed, and therefore the operation time from the start teaching point (p1) to the target teaching point (p9) is fixed, and there is a problem that, for example, the operation time of the arm cannot be optimized. In addition, when the operation time is fixed, it becomes difficult to satisfy the constraint conditions of the motor torque used for each joint axis and other constraint conditions. Such constraint conditions related to the robot operation that are difficult to achieve include, for example, constraint conditions related to the joint axis torque, the joint angular velocity, the joint angular acceleration and jerk, the hand velocity and the hand acceleration. That is, the conventional technology described in Non-Patent Document 1 has the following problems. That is, in an area where the number of intermediate command values ​​is too small, there is no guarantee that the constraint conditions related to the robot operation are satisfied, and conversely, in an area where the number of intermediate command values ​​is too large, a trajectory with an optimal operation time cannot be obtained.

[0012] In view of the above problems, an object of the present invention is to make it possible to reliably generate an optimal trajectory that satisfies constraints on robot operation. [Means for solving the problem]

[0013] One aspect of the present invention is an information processing method for acquiring a trajectory for operating a robot arm, the information processing method comprising the steps of: accepting a user's setting of a first teaching point and a second teaching point at which the robot arm is desired to operate; acquiring at least two intermediate teaching points that define a path from the first teaching point to the second teaching point; acquiring an intermediate teaching point group by displacing the at least two intermediate teaching points as a group; acquiring an intermediate trajectory based on the intermediate teaching point group; and acquiring a trajectory for operating the robot arm based on the intermediate trajectory. Another aspect of the present invention is an information processing method for acquiring a trajectory for operating a robot arm, comprising the steps of: accepting a user's setting of a first teaching point and a second teaching point about which the robot arm is desired to operate; acquiring at least two intermediate teaching points that define a path from the first teaching point to the second teaching point; acquiring an intermediate teaching point group by displacing the at least two intermediate teaching points as a group; acquiring an intermediate trajectory based on the intermediate teaching point group; and evaluating the intermediate trajectory. Another aspect of the present invention is an information processing device that acquires a trajectory for operating a robot arm, the information processing device accepts a user's setting of a first teaching point and a second teaching point at which the robot arm is desired to operate, acquires at least two intermediate teaching points that define a path from the first teaching point to the second teaching point, acquires an intermediate teaching point group by displacing the at least two intermediate teaching points as a group, acquires an intermediate trajectory based on the intermediate teaching point group, and acquires a trajectory for operating the robot arm based on the intermediate trajectory. Another aspect of the present invention is an information processing device that acquires a trajectory for operating a robot arm, the information processing device accepts a user's setting of a first teaching point and a second teaching point at which the robot arm is desired to operate, acquires at least two intermediate teaching points that define a path from the first teaching point to the second teaching point, acquires an intermediate teaching point group by displacing the at least two intermediate teaching points as a group, acquires an intermediate trajectory based on the intermediate teaching point group, and evaluates the intermediate trajectory. Effect of the Invention

[0014] With the above configuration, according to the present invention, it is possible to reliably generate an optimal trajectory that satisfies constraints on the robot operation. [Brief description of the drawings]

[0015] [Figure 1] FIG. 2 is an explanatory diagram showing a functional configuration of a trajectory generation device according to an embodiment of the present invention. [Diagram 2] FIG. 1 is an explanatory diagram showing a two-axis configuration of a robot arm according to an embodiment of the present invention. [Diagram 3] FIG. 2 is an explanatory diagram showing a teaching point group and a trajectory according to an embodiment of the present invention. [Figure 4] FIG. 11 is a flowchart illustrating a trajectory optimization process according to an embodiment of the present invention. [Diagram 5] 5(a) to 5(e) are explanatory diagrams showing a trajectory optimization process according to an embodiment of the present invention. [Figure 6] FIG. 2 is an explanatory diagram showing a teaching point group and a trajectory according to an embodiment of the present invention. [Figure 7] 5(a) to 5(e) are explanatory diagrams showing a trajectory optimization process according to an embodiment of the present invention. [Figure 8] FIG. 1 is an explanatory diagram showing a method of trajectory control according to the prior art. [Figure 9] FIG. 1 is a block diagram showing a schematic configuration of a control device applicable to an embodiment of the present invention. [Figure 10] FIG. 1 is an explanatory diagram showing a robot device that can be arranged in a production system according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0016] Hereinafter, an embodiment of the present invention will be described with reference to the accompanying drawings. Note that the configurations shown below are merely examples, and those skilled in the art can appropriately change the detailed configurations, for example, without departing from the spirit of the present invention. Also, the numerical values ​​used in the present embodiment are for reference only and do not limit the present invention.

[0017] <Embodiment 1> Fig. 1 shows the configuration of a trajectory generating device according to this embodiment. In this embodiment, the term "trajectory generating device" refers to a device that performs trajectory generation according to the present invention, but this trajectory generating device may be provided as a product such as a robot simulator device.

[0018] The trajectory generating device in Fig. 1 includes a calculation processing unit 1, an operation unit 2 for an instructor to input data, a recording unit 3 for recording operation programs, and a display unit 4 for displaying the motion trajectory of the robot arm. This trajectory generating device can be configured with computer hardware such as a PC (personal computer). A specific configuration example of the calculation processing unit 1 is shown in Fig. 9.

[0019] 9 shows a configuration example of a trajectory generating device, particularly a control device 1000 that corresponds to a main part of the arithmetic processing unit 1 (FIG. 1). As shown in the figure, this control device 1000 is a control system made up of each block arranged around a CPU 1601. Note that the configuration made up of each block arranged around the CPU 1601 can be applied in almost the same way to, for example, a robot control device (200: FIG. 10) described later.

[0020] The control device 1000 in Fig. 9 includes a CPU 1601 as a main control means, a ROM 1602 as a storage device, and a RAM 1603. The ROM 1602 can store a control program for the CPU 1601 for implementing a control procedure described later, constant information, etc. The RAM 1603 is used as a work area for the CPU 1601 when executing the control procedure described later.

[0021] 9 is the arithmetic processing unit 1 (FIG. 1), for example, a display 1608 (display unit 4 in FIG. 1) and an operation unit 1609 (operation unit 2 in FIG. 1) are connected as user interface devices to the interface 1607. The operation unit 1609 can be composed of, for example, a full keyboard and a pointing device, and constitutes a user interface for an operator who performs trajectory simulation and verification.

[0022] The control device 1000 in Fig. 9 includes a network interface 1605 as a communication means for communicating via a network NW. The arithmetic processing unit 1 (Fig. 1) can transmit and receive control information such as teaching point data and trajectory data to and from the actual robot arm A (or the robot control device 200 (Fig. 10)) via the network interface 1605 to the network NW. In this case, the network interface 1605 is configured with a communication standard for wired communication such as IEEE 802.3, or wireless communication such as IEEE 802.11 and 802.15. However, the network NW may of course adopt any other communication standard.

[0023] The control program of the CPU 1601 for realizing the control procedure described below can be stored in a storage unit such as an external storage device 1604 consisting of an HDD or SSD, or a ROM 1602 (for example, an EEPROM area). In this case, the control program of the CPU 1601 for realizing the control procedure described below can be supplied to each of the above storage units via a network interface 1605, and can be updated to a new (different) program. Alternatively, the control program of the CPU 1601 for realizing the control procedure described below can be supplied to each of the above storage units via various storage means such as magnetic disks, optical disks, and flash memories, and drive devices therefor, and can be updated. Various storage means and storage units in a state in which the control program of the CPU 1601 for realizing the above-mentioned control procedure is stored constitute a computer-readable recording medium storing the control procedure of the present invention.

[0024] In the case of the robot control device 200 (FIG. 10), driver circuits and the like for driving motors and solenoids (not shown) of each part of the robot arm A in the configuration of FIG. 9 are connected to the interface 1606. Also, in the case of the robot control device 200, the user interface consisting of the display 1608 and the operation unit 1609 may be replaced with an operation terminal such as a teaching pendant (for example, 204 in FIG. 10).

[0025] In general, a robot arm is composed of joints and links, and there are various types of joint mechanisms, such as rotary joints, linear joints, and ball joints. In this embodiment, the robot arm that generates the trajectory has a configuration in which links are connected by rotary joints, as shown in Figure 2.

[0026] Fig. 2 shows an example of a robot arm for which a trajectory is generated in this embodiment. For ease of explanation, the robot arm A in Fig. 2 is illustrated in a simplified configuration.

[0027] The robot arm A in FIG. 2 has two axes J1 and J2 consisting of two rotary joints. Hereinafter, the joint angles (joint positions) of the axes J1 and J2 of these joints are expressed as θ1 and θ2, respectively. Furthermore, a TCP (Tool Center Point) is defined as a reference position at the tip of the axis J2. In this embodiment, a teaching point that defines the position of the robot arm A is expressed as the position of this TCP. Furthermore, the trajectory of the robot arm A to be generated is generated as a trajectory along which this TCP moves.

[0028] In general, when the joint angles θ1 and θ2 of the axes J1 and J2 are given, the position of the TCP can be obtained by kinematic calculations, and when the position of the TCP is given, the joint angles θ1 and θ2 of the axes J1 and J2 when the TCP is at that position can be obtained by inverse kinematic calculations. In the following, when referring to the TCP, it may be simply called the "hand."

[0029] In addition, the robot arm A is illustrated as having a very simplified configuration for ease of understanding, but this configuration is not limited to the form in which the present invention is implemented. For example, when a person skilled in the art implements the present invention, the robot arm A can be configured as a six-axis articulated robot arm or a linear motion robot arm. The configuration and control procedure of the control system related to the robot arm of this embodiment described below can be easily extended to the case of using such a robot arm.

[0030] Next, the movement motion of robot arm A will be explained. When moving robot arm A, the teaching point indicating the start position of the movement is called the start teaching point, and the teaching point indicating the target position is called the target teaching point. The teaching points of robot arm A can be determined by the position and posture of the hand (TCP) or the joint axis angles. Furthermore, by inverse kinematics calculation, the position and posture of the hand (TCP) can be converted into the joint angles of each joint axis, and conversely, by (forward) kinematics calculation, the joint angles of each joint axis can be converted into the position and posture of the hand.

[0031] Here, the start teaching point and the target teaching point are Ps and Pg, respectively. The teaching points arranged between the start teaching point and the target teaching point are called intermediate teaching points and expressed as P1, P2, ..., Pn. When P1, P2, ..., Pn are collectively referred to, they may be called a group of intermediate teaching points.

[0032] As a method for smoothly interpolating the group of intermediate teaching points P1, P2, ..., Pn with a curve, there are known interpolation methods such as Spline interpolation, B-Spline interpolation, Bezier curve interpolation, etc. By using these interpolation methods to generate a path that smoothly connects the teaching points, it is possible to smoothly operate the robot arm A.

[0033] In this specification, the "motion path" or "path" of a robot arm refers to the trajectory of the motion of the robot arm, without including any time concepts such as speed. Also, the "motion trajectory" or "path" of a robot arm refers to an information body having information on the motion speed of the robot arm in addition to the above-mentioned "(motion) path" of the robot arm, and is used in this specification to clearly distinguish it from the above-mentioned "(motion) path". Note that in robot control technology, the "path" may also be expressed by a command value data string of the joints (angles) of the robot arm per unit time, for example, per control clock cycle of the robot controller.

[0034] The shortest time control is a method for generating a trajectory including speed information for the path of the robot arm generated using the above-mentioned interpolation method. By using the shortest time control, it is possible to obtain a trajectory that has the shortest operation time while observing the physical constraints of the robot arm based on the path generated by interpolation. Note that the shortest time control is a technology for obtaining a moving speed that takes the shortest time while passing through a fixed path, and the path for moving the robot arm depends solely on the intermediate teaching point group P1, P2, ... Pn. Other physical constraints of the robot arm may include, for example, joint torque constraints, joint angular velocity constraints, joint angular acceleration constraints, jerk constraints, hand velocity constraints, and hand acceleration constraints. In the following, the trajectory generated using the shortest time control is expressed as p1, p2, ... pt as a sequence of position command values ​​of the robot arm for each control period.

[0035] Fig. 3 shows a state in which a robot arm A (a 3D model simulating the robot arm A: robot arm model) and an obstacle Ob (a 3D model simulating the obstacle Ob: obstacle model) are both placed in an operating environment (virtual environment). Fig. 3 also shows a start teaching point Ps, a target teaching point Pg, and a group of intermediate teaching points P1, P2, ... Pn, and a trajectory (p1, p2, ... pt) generated thereby.

[0036] In the trajectory (p1, p2, ... pt) shown in Fig. 3, the robot arm A interferes with the obstacle Ob at p4 and p5, and cannot move from the start teaching point Ps to the target teaching point Pg on this trajectory. The objective of this embodiment is to find an optimal group of intermediate teaching points P1, P2, ... Pn that does not cause interference between the robot arm and obstacles (and also satisfies other constraints) between the start teaching point Ps and the target teaching point Pg. Note that the obstacle Ob is not limited to being stationary, and even if it is moving, optimization calculation of the trajectory is possible.

[0037] Fig. 4 is a flowchart describing the main control procedure of the trajectory generation method according to this embodiment. The control procedure shown in Fig. 4 can be stored in the ROM 1602 (or the external storage device 1604, etc.) as a control program of the CPU 1601. Fig. 5 shows the control procedure of each step in Fig. 4 in a format similar to that of Fig. 3. In the following, trajectory generation and optimization are performed for the 3D models of the robot arm A and the obstacle Ob, but for the sake of simplicity, in the following, the explicit mention of the "3D model" may be omitted, and the description may be made as if the object of control were the robot arm A or the obstacle Ob.

[0038] In step S100 of FIG. 4, a model of the robot arm A in the workspace where the robot arm A will perform work, as well as constraint conditions, a start teaching point Ps, and a target teaching point Pg are input (FIG. 5(a)). These inputs can be made by a user via a user interface constituted by the operation unit 2 and the display unit 4, for example. In particular, the start teaching point Ps and the target teaching point Pg can be input by the user via a virtual display (GUI) on the display unit 4, or they may be determined by the CPU 1601 when trajectory generation is performed by AI processing.

[0039] The above model of robot arm A is design information for the parts that make up the robot arm, and includes information such as the moment of inertia, mass, position, posture, number of axes, etc. of each link. In addition, the constraint conditions define the physical constraints of the robot arm, and include joint torque constraints, joint angular velocity constraints, joint angular acceleration constraints, jerk constraints, hand velocity constraints, hand acceleration constraints, etc.

[0040] In step S101, intermediate teaching points (first group of intermediate teaching points) P1, P2, ..., Pn are generated as initial values ​​between the start teaching point Ps and the target teaching point Pg of the robot arm A given in step S100 (FIG. 5(b)). In this embodiment, as shown in FIG. 5(b), the number of intermediate teaching points to be generated is n, and the intermediate teaching points are sequentially named P1, P2, ..., Pn.

[0041] A method of generating intermediate teaching points may be to use a path planning algorithm that calculates a path that avoids obstacles. There are many methods for generating paths, such as the potential method, PRM (Probabilistic RoadMap), and RRT (Rapidly-exploring Random Tree). In addition, the path generation method is not limited to the above, and other path generation methods such as the visibility graph method, cell division method, and Voronoi diagram method may also be applied. In addition, a process of linearly interpolating a start teaching point and a target teaching point with a straight line may be simply used without using a path planning algorithm. Note that the above-mentioned path planning technology calculates a path that ensures interference avoidance only when teaching points are connected with a straight line. Therefore, interference avoidance may not necessarily be guaranteed in a path in which the intermediate teaching points P1, P2, ... Pn are interpolated with a curve.

[0042] 5(b), the intermediate teaching point group P1, P2, ..., Pn (first intermediate teaching point group) corresponds to a trajectory that interferes with an obstacle Ob, for example. In this embodiment, even if processing is started from the intermediate teaching point group P1, P2, ..., Pn (first intermediate teaching point group) as such initial values, the intermediate teaching point group P1, P2, ..., Pn (first intermediate teaching point group) can be moved to generate an optimal trajectory.

[0043] Alternatively, the intermediate teaching point group P1, P2, ... Pn (first intermediate teaching point group) as initial values ​​may be set by the user by plotting them in the virtual environment on the screen via the user interface of the operation unit 2 and the display unit 4.

[0044] In step S102 in FIG. 4, a spatial displacement is given to the group of intermediate teaching points P1, P2, ... Pn (first group of intermediate teaching points) to generate a new group of intermediate teaching points R1, R2, ... Rn (second group of intermediate teaching points) (FIG. 5(c): intermediate teaching point generation process). As a method of giving this displacement, for example, a method of adding (adding) a random value as a parameter for giving a spatial displacement to each of the intermediate teaching points is considered. However, if a method of simply applying a random value is adopted, the teaching points may be arranged in a vibratory manner, and the operation of the robot arm may not be smooth. In general, when the operation of the robot arm becomes vibratory, the operation time tends to increase, so it is not desirable to arrange the teaching points in a vibratory manner.

[0045] Therefore, correlation is given between the random numbers acting on adjacent intermediate teaching points to give spatial displacement, which makes it possible to smooth the trajectory (path). For example, the joint values ​​of one axis of a robot arm in the group of intermediate teaching points P1, P2, ... Pn are θ11, θ12, ... θ1n, and a multivariate normal distribution with these as variables is considered. In this way, by giving a positive value to the covariance in the variance-covariance matrix, it is possible to give correlation to the joint values ​​of adjacent intermediate teaching points, making it possible to generate smooth random numbers along the path.

[0046] In step S103, the intermediate teaching points R1, R2, ... Rn are interpolated with a curve, and a trajectory is generated using the shortest time control (trajectory generation process). If the purpose is to avoid a stationary obstacle, it is sufficient to evaluate the interference of the robot arm A on the "route" interpolated with a curve, but when considering a moving obstacle, the time axis must also be taken into consideration, so in this embodiment, the "trajectory" is considered.

[0047] In step S104, it is determined whether the generated trajectory satisfies the constraints. If the trajectory does not satisfy the constraints, the process returns to S102. If the trajectory satisfies the constraints, the process proceeds to S105. The constraint conditions determined in step S104 are constraints that cannot be constrained by the time-optimal control technique used in step S103. The constraint conditions determined in step S104 are at least those that the mechanism of the robot arm A does not go outside the movable range on the trajectory generated in step S103. In addition, the constraint conditions determined in step S104 may include other conditions, such as a joint torque constraint, a joint angular velocity constraint, a joint angular acceleration constraint, a jerk constraint, a hand velocity constraint, or a hand acceleration constraint of the robot arm. In step S104, a determination can be made to generate a trajectory that satisfies one or more of these constraint conditions.

[0048] In step S105, the intermediate teaching point group R1, R2, ... Rn and the trajectory generated based on it are stored. The intermediate teaching point groups to be stored are denoted as Ri1, Ri2, ... Rin to distinguish them from other stored intermediate teaching point groups. i is the order in which they are stored.

[0049] In step S106, it is determined whether the number of the stored intermediate teaching point group and trajectory has reached a certain constant N. In step S106, if the number of the stored intermediate teaching point group and trajectory has not reached N, the process returns to step S102, and if the number has reached N, the process proceeds to step S107.

[0050] In step S107, an evaluation value is assigned to the stored N intermediate teaching point groups Ri1, Ri2, ... Rin (i = 1 to N) (Fig. 5(d): evaluation step). In this embodiment, this evaluation value is used to displace (move) the intermediate teaching point group P1, P2, ... Pn (first intermediate teaching point group) so as to generate an optimal trajectory.

[0051] Moreover, this evaluation value is generated, for example, by evaluating a trajectory corresponding to the group of intermediate teaching points Ri1, Ri2, ... Rin (i = 1 to N). For example, in this embodiment, in order to obtain a trajectory that avoids interference with an obstacle Ob, the amount of interference between the robot arm and the obstacle is used as the evaluation value. For example, this amount of interference may be the interference time during which the robot arm and the obstacle occupy the same space, the amount of penetration, or the interference distance (or the overlapping volume of the swept spaces of both). In this embodiment, for example, the interference time is adopted as the amount of interference and used as the evaluation value.

[0052] In the example of Figure 5(d), evaluation values ​​generated for three intermediate teaching point groups based on the amount of interference (interference time or penetration amount) are shown. The evaluation value is 10 for the second intermediate teaching point group R11, R12 ... R1n, 30 for R21, R22 ... R2n, and 50 for R31, R32 ... R3n. Here, the intermediate teaching point group R11, R12 ... R1n with the smallest amount of interference (close to 0) has the best evaluation value.

[0053] Note that, for purposes other than avoiding interference with the obstacle Ob, other methods may be adopted for evaluating the trajectory corresponding to the group of intermediate teaching points Ri1, Ri2, . . . Rin (i = 1 to N).

[0054] In step S108, the intermediate teaching point group P1, P2, ..., Pn is moved based on the evaluation values ​​of N intermediate teaching point groups Ri1, Ri2, ..., Rin (i = 1 to N) (FIG. 5(e)). One method of this movement is, for example, to move the intermediate teaching point group P1, P2, ..., Pn to the intermediate teaching point group with the lowest (best) evaluation value among the intermediate teaching point groups Ri1, Ri2, ..., Rin (i = 1 to N). In the example of FIG. 5(e), the intermediate teaching point group P1, P2, ..., Pn (in the first intermediate teaching point group) is moved to the position of the intermediate teaching point group R11, R12 ..., R1n with the smallest (closest to 0) interference amount.

[0055] In addition, a method may be used in which the inverse of the evaluation value of the intermediate teaching point group Ri1, Ri2, ... Rin (i = 1 to N) is used as the weight, a weighted average of N intermediate teaching point groups Ri1, Ri2, ... Rin (i = 1 to N) is taken, and the intermediate teaching point group P1, P2, ... Pn is moved.

[0056] In step S109, it is determined whether a condition for aborting the processing from step S102 to step S108 is met. If the condition is not met, the process returns to step S102, and if the condition is met, the process proceeds to step S110.

[0057] Alternatively, an upper limit number of times to execute the loop of steps S102 to S109 may be set. In this case, if the upper limit number of times is reached in step S109, further attempts are given up and the process proceeds to step S110. Alternatively, an appropriate error message may be output on the display unit 4, and other error handling may be performed.

[0058] The termination condition determined in step S109 is, for example, that an evaluation value similar to that in step S107 is generated for the intermediate teaching point group P1, P2, ... Pn (first intermediate teaching point group) after the movement, and that the evaluation value satisfies a predetermined condition. For example, the objective of this embodiment is to avoid interference between the robot arm A and an obstacle Ob. Therefore, the evaluation value generated for the intermediate teaching point group P1, P2, ... Pn (first intermediate teaching point group) after the movement is set to 0 (amount of interference: interference time and amount of intrusion are 0). This makes it possible to generate an optimal trajectory that satisfies the constraints on the robot operation (trajectory determination process).

[0059] In step S110, a group of intermediate teaching points P1, P2, ..., Pn is output as optimized teaching points. This output is performed, for example, by operating a 3D model (robot arm model) of the robot arm A on a trajectory generated by the optimized group of intermediate teaching points P1, P2, ..., Pn within a virtual display on the display unit 4. Alternatively, step S110 may be a process of outputting the optimized group of intermediate teaching points P1, P2, ..., Pn or trajectory data generated thereby to the actual robot arm A or its robot control device (200: FIG. 10).

[0060] In this embodiment, since the purpose is to avoid interference, when step S110 is reached, the robot arm will not interfere with any interfering object on the trajectory (p1, p2, ... pt) generated based on the intermediate teaching point group P1, P2, ... Pn after the movement, as shown in Figure 6.

[0061] According to this embodiment, a plurality of intermediate teaching point groups Ri1, Ri2, ... Rin (i = 1 to N) are generated, and the intermediate teaching point groups P1, P2, ... Pn are moved based on the result of evaluating the trajectory defined by the generated intermediate teaching point groups. Conditions related to physical constraints such as joint torque constraints are used for evaluating the trajectory, and a condition for achieving obstacle avoidance is used as an escape condition for the process of moving the intermediate teaching point groups P1, P2, ... Pn. With this configuration, according to this embodiment, it is possible to generate a smooth curved trajectory that avoids obstacles and satisfies physical constraints such as joint torque constraints.

[0062] <Embodiment 2> An example of optimization processing for generating a trajectory that allows the robot arm A (3D model) to move in the shortest time while avoiding interference with an obstacle Ob will be described below with reference to Fig. 7. The configuration other than that shown in Fig. 7, for example, the hardware configuration of the trajectory generation device and its control device, is assumed to be the same as that of the first embodiment.

[0063] The control procedure of the trajectory generation method of this embodiment is equivalent to the flowchart of FIG. 4 in Embodiment 1. However, in this Embodiment 2, compared with Embodiment 1, the initial values of the intermediate teaching point groups P1, P2, … Pn, the method of restricting the trajectory, the method of evaluating the trajectory, and the termination conditions are different. FIG. 7 shows the state of optimization of the trajectory (the first intermediate teaching point) performed in this embodiment. FIG. 7 shows the processing of each step of FIG. 4 in this embodiment in the same format as FIG. 5.

[0064] In the above Embodiment 1, in step S101 of FIG. 4, an example was shown in which the intermediate teaching point groups P1, P2, … Pn were generated by the path planning technique between the start teaching point Ps and the target teaching point Pg (FIG. 7(a)). In contrast, in this embodiment, the intermediate teaching point groups P1, P2, … Pn (FIGS. 6 and 7(b)) output through the optimization process of Embodiment 1 in step S101 of FIG. 4 are used.

[0065] By using the intermediate teaching point groups P1, P2, … Pn that have already been output through the optimization process of Embodiment 1 as the initial values, it is possible to perform optimization to shorten the operation time of the trajectory that has already avoided obstacles. Thus, the optimization control procedure (FIG. 4) of the present invention can be used in two passes (or more than two passes). In that case, in each pass, by applying different constraint conditions, it is possible to obtain a trajectory optimized for each constraint condition.

[0066] In Embodiment 1, new intermediate teaching point groups R1, R2, … Rn (the second intermediate teaching point groups) were generated (FIG. 5(c)). In step S104 of FIG. 4, when determining whether the trajectory of this second intermediate teaching point group satisfies the constraints, it was determined whether it was within the movable range of the robot arm A. In this embodiment, new intermediate teaching point groups R1, R2, … Rn (the second intermediate teaching point groups) are generated (FIG. 7(c)). In addition to determining whether it is within the movable range, it is determined whether the robot arm A interferes with the obstacle Ob. If there is interference with the obstacle, the intermediate teaching point groups R1, R2, … Rn are invalidated, and the process returns to step S102.

[0067] In the first embodiment, in step S107 in FIG. 4, the trajectory is evaluated using the interference time or the amount of penetration as the evaluation value. In the present embodiment, the trajectory is evaluated using the operation time of the robot arm A as the evaluation value (FIG. 7(d)). This makes it possible to generate a group of intermediate teaching points P1, P2, ... Pn that has the shortest operation time. In the example of FIG. 7(d), the evaluation value of the second group of intermediate teaching points related to the operation time is 180 for R11, R12 ... R1n, 120 for R21, R22 ... R2n, and 150 for R31, R32 ... R3n. Here, the group of intermediate teaching points R21, R22 ... R2n with the smallest amount of interference (small operation time value) has the best evaluation value.

[0068] In the first embodiment, the evaluation value becomes 0 as one of the conditions for stopping step S109 in FIG. 4. In contrast, in the present embodiment, a method of setting an upper limit on the number of times steps S102 to S109 are repeated, or a method of setting an upper limit on the number of times the evaluation value of the intermediate teaching point group P1, P2, ... Pn does not change (almost) continuously, is used. For example, when the operation time is not further reduced, the loop of steps S102 to S109 is exited, and the intermediate teaching point group P1, P2, ... Pn that can obtain the shortest time is output in step S110 (FIG. 7(e)). Alternatively, in the second embodiment, in step S110, the intermediate teaching point group P1, P2, ... Pn in the final moving state does not necessarily have to be output as the optimized teaching point. For example, a history of changes in the intermediate teaching point group P1, P2, ... Pn in the repetition of steps S102 to S108 may be taken, and the one with the highest evaluation may be output.

[0069] As described above, this embodiment has the advantage of being able to generate a trajectory that avoids obstacles, observes physical constraints such as torque constraints, and further minimizes the operation time. In particular, the optimization control procedure (FIG. 4) can be used in two passes (or multiple passes), in which case, by applying different constraint conditions in each pass, a trajectory optimized for each constraint condition can be obtained.

[0070] Here, a more specific configuration example of the robot arm A and a configuration in which the robot arm A is applied to a production system will be described.

[0071] Fig. 10 shows a more specific overall configuration of the robot arm A than the schematic configuration of Fig. 2. In Fig. 10, the robot arm A (robot device) includes an arm body 201 of a vertical articulated type having, for example, six axes (joints). Each joint of the arm body 201 can be controlled to a desired position and posture by servo-controlling a servo motor provided at each joint.

[0072] A tool such as a hand 202 is attached to the tip (hand tip) of the arm body 201, and this hand 202 can grip a workpiece 203 and perform production work such as assembling or processing the workpiece 203. The workpiece 203 is, for example, a part of an industrial product such as an automobile or an electric product, and the robot arm A can be arranged as a production device in such a production system (production line).

[0073] The movement of the arm body 201 of the robot arm A is controlled by a robot control device 200 (robot controller). The movement of the robot arm A can also be programmed (taught) by an operation terminal 204 (e.g., a teaching pendant) connected to the robot control device 200. For example, by sequentially specifying teaching points by the operation terminal 204, it is possible to program the movement of a specific part of the robot arm A (e.g., TCP: a tool mounting surface at the arm tip, etc.) along a desired trajectory.

[0074] Moreover, the robot arm A or the robot control device 200 can receive the intermediate teaching points or trajectory data optimized as described above from the trajectory generation device (or the robot simulator: FIG. 1) via the network NW. As a result, based on the intermediate teaching points or trajectory data optimized by the above processing, the robot arm A can be placed in a production system (production line) and operated as a production device to manufacture an article.

[0075] The present invention can also be realized by a process in which a program for implementing one or more of the functions of the above-mentioned embodiments is supplied to a system or device via a network or a storage medium, and one or more processors in a computer of the system or device read and execute the program. The present invention can also be realized by a circuit (e.g., ASIC) for implementing one or more of the functions. [Explanation of symbols]

[0076] A...robot arm, J1, J2...joint axis, Ob...obstacle, Ps...start teaching point, Pg...target teaching point, P1, P2, ...Pn...(first) intermediate teaching point group, Ri1, Ri2, Rin...(second) intermediate teaching point group, 1...calculation processing unit, 2...operation unit, 3...recording unit, 4...display unit.

Claims

1. 1. An information processing method for acquiring a trajectory for operating a robot arm, comprising: Accepting a user's setting of a first teaching point and a second teaching point at which the robot arm is to be operated; obtaining at least two intermediate teaching points that define a path from the first teaching point to the second teaching point; Obtaining a group of intermediate teaching points by displacing at least two of the intermediate teaching points as a group; Acquire an intermediate trajectory based on the intermediate teaching point group; obtaining a trajectory for moving the robot arm based on the intermediate trajectory; 23. An information processing method comprising:

2. 2. The information processing method according to claim 1, obtaining a trajectory for moving the robot arm by displacing at least two of the intermediate teaching points and not displacing the first teaching point and the second teaching point; 23. An information processing method comprising:

3. 3. The information processing method according to claim 1, The at least two intermediate teaching points are obtained using at least one of a potential method, a probabilistic road map (PRM), a rapidly-exploring random tree (RRT), a visibility graph method, a cell division method, and a Voronoi diagram method; 23. An information processing method comprising:

4. 3. The information processing method according to claim 1, Accepting a user's setting of at least two of the intermediate teaching points; 23. An information processing method comprising:

5. 5. The information processing method according to claim 1, Adding a value to each of at least two of the intermediate teaching points to displace them as a group, thereby obtaining the group of intermediate teaching points.

23. An information processing method comprising:

6. 6. The information processing method according to claim 5, The displacement is based on correlated random numbers.

23. An information processing method comprising:

7. 7. The information processing method according to claim 6, At least two of the intermediate teaching points are adjacent to each other, and the displacement is given to the at least two adjacent intermediate teaching points based on the random number.

23. An information processing method comprising:

8. 8. The information processing method according to claim 6, Correlating the random numbers by assigning positive values ​​to the covariances in a variance-covariance matrix; 23. An information processing method comprising:

9. 9. The information processing method according to claim 1, Obtaining at least two groups of intermediate teaching points by displacing at least two of the intermediate teaching points as a group; At least two of the intermediate teaching point groups are subjected to curve interpolation to obtain at least two of the intermediate trajectories; evaluating interference between the robot arm and an object in at least two of the intermediate trajectories obtained by curved line interpolation; 23. An information processing method comprising:

10. 10. The information processing method according to claim 9, evaluating interference between the robot arm and an object in at least two of the intermediate trajectories obtained by curved interpolation; and selecting a predetermined intermediate trajectory from among the at least two intermediate trajectories obtained by curved interpolation based on the interference evaluation; Further modifying the predetermined intermediate trajectory and using the interference between the robot arm and the object as a constraint condition to obtain at least two new intermediate trajectories in which the robot arm and the object do not interfere with each other; Evaluating items other than interference between the robot arm and an object in the at least two new intermediate trajectories.

23. An information processing method comprising:

11. 11. The information processing method according to claim 10, Acquire a new group of intermediate teaching points by displacing at least two intermediate teaching points on the predetermined intermediate trajectory; A new intermediate trajectory is obtained by performing curve interpolation on the new intermediate teaching point group. If the robot arm interferes with an object when operating the robot arm on the new intermediate trajectory, the new intermediate teaching point group is invalidated; again, by displacing at least two intermediate teaching points on the predetermined intermediate trajectory, a new group of intermediate teaching points is obtained, and a new intermediate trajectory is obtained by performing curve interpolation on the new group of intermediate teaching points.

23. An information processing method comprising:

12. 12. The information processing method according to claim 10, As an item other than the interference between the robot arm and an object, the evaluation is based on an operation time for operating the robot arm.

23. An information processing method comprising:

13. 13. The information processing method according to claim 9, Curve-interpolating at least two of the intermediate teaching point groups using at least one of Spline interpolation, B-Spline interpolation, and Bezier curve interpolation; 23. An information processing method comprising:

14. 5. The information processing method according to claim 4, At least two of the intermediate teaching points are obtained by a user's input to a display unit.

23. An information processing method comprising:

15. 15. The information processing method according to claim 14, displaying a virtual environment on a display unit, the virtual environment being a virtual display of a space in which the robot arm operates; and receiving a user's input to the virtual environment to obtain at least two of the intermediate teaching points.

23. An information processing method comprising:

16. 16. The information processing method according to claim 1, accepting settings of the first teaching point and the second teaching point through a user's input to a display unit; 23. An information processing method comprising:

17. 17. The information processing method according to claim 16, displaying a virtual environment on a display unit, the virtual environment being a virtual display of a space in which the robot arm operates, and accepting settings of the first teaching point and the second teaching point by a user's input into the virtual environment; 23. An information processing method comprising:

18. 18. The information processing method according to claim 1, If a trajectory for moving the robot arm that satisfies a predetermined condition cannot be acquired, an error is notified.

23. An information processing method comprising:

19. 19. The information processing method according to claim 1, displaying the acquired trajectory for moving the robot arm on a display unit; 23. An information processing method comprising:

20. 20. The information processing method according to claim 1, outputting the acquired trajectory for moving the robot arm to a control device that controls the robot arm; 23. An information processing method comprising:

21. 1. An information processing method for acquiring a trajectory for operating a robot arm, comprising: Accepting a user's setting of a first teaching point and a second teaching point at which the robot arm is to be operated; obtaining at least two intermediate teaching points that define a path from the first teaching point to the second teaching point; Obtaining a group of intermediate teaching points by displacing at least two of the intermediate teaching points as a group; Acquire an intermediate trajectory based on the intermediate teaching point group; evaluating the intermediate trajectory; 23. An information processing method comprising:

22. A program causing a computer to execute the information processing method according to any one of claims 1 to 21.

23. A computer-readable recording medium storing the program according to claim 22.

24. In an information processing device that acquires a trajectory for operating a robot arm, Accepting a user's setting of a first teaching point and a second teaching point at which the robot arm is to be operated; obtaining at least two intermediate teaching points that define a path from the first teaching point to the second teaching point; Obtaining a group of intermediate teaching points by displacing at least two of the intermediate teaching points as a group; Acquire an intermediate trajectory based on the intermediate teaching point group; obtaining a trajectory for moving the robot arm based on the intermediate trajectory; 23. An information processing apparatus comprising:

25. In an information processing device that acquires a trajectory for operating a robot arm, Accepting a user's setting of a first teaching point and a second teaching point at which the robot arm is to be operated; obtaining at least two intermediate teaching points that define a path from the first teaching point to the second teaching point; Obtaining a group of intermediate teaching points by displacing at least two of the intermediate teaching points as a group; Acquire an intermediate trajectory based on the intermediate teaching point group; evaluating the intermediate trajectory; 23. An information processing apparatus comprising:

26. A production system that manufactures an article by operating the robot arm along a trajectory acquired using the information processing method according to any one of claims 1 to 21 to assemble a workpiece.

27. A robot system comprising the robot arm, the operation of which is controlled based on a trajectory obtained using the information processing method according to any one of claims 1 to 21.

28. A method for manufacturing an article, comprising operating the robot arm along a trajectory acquired using the information processing method according to any one of claims 1 to 21 to assemble a workpiece and manufacture the article.

Citation Information

Patent Citations

  • Robot control apparatus, robot, and program thereof

    JP2013166224A

  • Method for determining trajectories manipulators to avoid obstacles

    US8700307B1

  • Interference avoidance device

    WO2018092860A1