Information processing methods, information processing devices, programs, recording media, production systems, robot systems, methods for manufacturing goods
The method optimizes robot arm trajectories by evaluating and selecting paths that avoid interference and adhere to operational constraints, addressing inefficiencies in conventional systems and reducing manual adjustments.
Patent Information
- Application Number
- JP2025020762
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2025-02-12
- Publication Date
- 2026-07-13
- Estimated Expiration
- 2038-02-05
AI Technical Summary
Conventional methods for generating robot arm trajectories in production systems fail to optimize operating time and satisfy constraints on motor torque and other operational parameters, leading to inefficient and labor-intensive manual adjustments.
An information processing method that generates a trajectory by acquiring multiple first and second trajectories, evaluating them based on specific conditions, and selecting an optimal path that avoids interference and adheres to physical constraints.
Ensures the generation of an optimal trajectory that satisfies constraints on robot movement, avoiding interference and optimizing operating time while reducing manual labor.
Smart Images

Figure 0007888775000001 
Figure 0007888775000002 
Figure 0007888775000003
Abstract
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 performs a simulation to operate the 3D model of the robot arm in the virtual environment along the trajectory for verification. The state of the operation of the robot arm model can be displayed in a video format or the like on the virtual display screen of the display of the simulator device.
[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 conventional methods, operators would manually create teaching points for the robot arm on a screen, ensuring that the robot arm did not enter areas where it could not move or interfere with peripheral equipment. Because the conditions of mobility and non-interference were the primary considerations, the resulting robot trajectory did not always allow for optimal speed, sometimes leading to slower cycle times. In such cases, manual work was required to re-examine and reset the robot arm's teaching points.
[0006] On the other hand, when robotic devices are used in production systems (lines), the amount of work required for process designers to create teaching points is significant, leading to rising labor costs. Therefore, in recent years, methods and devices have been proposed to streamline the teaching process for robot arms using computers, instead of direct teaching by human teachers.
[0007] Non-Patent Document 1, described below, discloses a method for generating a trajectory that avoids interference with obstacles around the robot arm and minimizes the torque of the motors used in the joints of the robot arm. Figure 8 schematically shows the robot arm trajectory generation method described 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 represents an obstacle.
[0008] In Figure 8, p1, p2...p9 indicate the positions where the tool center point (TCP) of robot arm A moves. Of these positions, p1 indicates the starting position of the movement (start teaching point), and p9 indicates the target position of the movement (target teaching point). Furthermore, p2~p8 indicate intermediate command values placed between the starting position (p1) and the target position (p9). For example, the robot arm A can be commanded sequentially to move from p1 to p9 by commanding the postures of p1, p2...p9 in each control cycle. In this case, the movement time of the robot arm between the starting position (p1) and the target position (p9) is calculated as control cycle × (9-1). In the case of Non-Patent Literature 1, the number of intermediate command values (p2~p8) is predetermined as a constant, and in this case there are 7. In Figure 8, the robot arm and obstacle Ob interfere at p4 and p5, but a trajectory that avoids interference can be generated by the following method.
[0009] First, smooth displacement is applied to the joint angles corresponding to the intermediate command values p2, p3, ... p8, generating 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 is repeated based on these evaluation values to optimize the trajectory. Non-patent document 1 uses the amount of penetration between the robot arm A and the obstacle Ob, and the motor torque used for each joint axis as evaluation values for the intermediate command values. 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. [Overview of the project] [Problems that the invention aims to solve]
[0011] As described above, the technology in 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 in Non-Patent Document 1, the number of intermediate command values is fixed, and therefore the operating time from the starting teaching point (p1) to the target teaching point (p9) is fixed, which presents a problem in that, for example, the operating time of the arm cannot be optimized. Furthermore, when the operating time is fixed, it becomes difficult to satisfy the constraints on the motor torque used for each joint axis and other constraints. Such constraints on robot operation that become difficult to achieve include, for example, constraints on joint axis torque, joint angular velocity, joint angular acceleration and jerk, and end-effector velocity and end-effector acceleration. In other words, the conventional technology described in Non-Patent Document 1 has the following problems: In regions where the number of intermediate command values is too small, there is no guarantee that the constraints on robot operation will be satisfied, and conversely, in regions where the number of intermediate command values is too large, it is not possible to obtain a trajectory with an optimal operating time.
[0012] In view of the above problems, the object of the present invention is to enable the reliable generation of an optimal trajectory that satisfies the constraints on robot movement. [Means for solving the problem]
[0013] One aspect of the present invention is, From the first position to the second position In an information processing method for acquiring the trajectory of a robotic arm, A plurality of first trajectories defining a path from the first position to the second position are obtained; a predetermined first trajectory is selected from the first trajectories based on a first evaluation condition; a plurality of second trajectories are obtained by displacing the intermediate points corresponding to the predetermined first trajectories, which are determined to satisfy the first evaluation condition; a predetermined second trajectory is selected from the plurality of second trajectories based on a second evaluation condition; and a trajectory is obtained for operating the robot arm based on the predetermined second trajectory. This is an information processing method characterized by the following features. Another aspect of the present invention is that An information processing device for acquiring a trajectory for moving a robot arm from a first position to a second position, characterized in that it acquires a plurality of first trajectories defining the path from the first position to the second position, selects a predetermined first trajectory from the first trajectories based on a first evaluation condition, acquires a plurality of second trajectories that are determined to satisfy the first evaluation condition in the trajectory obtained by displacing the intermediate point corresponding to the predetermined first trajectory, selects a predetermined second trajectory from the plurality of second trajectories based on a second evaluation condition, and acquires a trajectory for moving the robot arm based on the predetermined second trajectory. it is.
Advantages of the Invention
[0014] According to the present invention with the above configuration, it is possible to surely generate an optimal trajectory that satisfies the constraint conditions related to robot operation.
Brief Description of the Drawings
[0015] [Figure 1] It is an explanatory diagram showing a functional configuration of a trajectory generation device according to an embodiment of the present invention. [Figure 2] It is an explanatory diagram showing a two-axis configuration in a robot arm according to an embodiment of the present invention. [Figure 3] It is an explanatory diagram showing a taught point group and a trajectory according to an embodiment of the present invention. [Figure 4] It is a flowchart diagram for explaining an optimization process of a trajectory according to an embodiment of the present invention. [Figure 5] (a) to (e) are explanatory diagrams showing an optimization process of a trajectory according to an embodiment of the present invention. [Figure 6] It is an explanatory diagram showing a taught point group and a trajectory according to an embodiment of the present invention. [Figure 7] (a) to (e) are explanatory diagrams showing an optimization process of a trajectory according to an embodiment of the present invention. [Figure 8] It is an explanatory diagram showing a method of trajectory control according to the prior art. [Figure 9] It is a block diagram showing a schematic configuration of a control device applicable to an embodiment of the present invention. [Figure 10] It is an explanatory diagram showing a robot device that can be arranged in a production system according to an embodiment of the present invention. <00Hereinafter, embodiments for implementing the present invention will be described with reference to the accompanying drawings. Note that the configurations shown below are merely examples, and for example, those skilled in the art can appropriately modify the detailed configurations without departing from the spirit of the present invention. Also, the numerical values mentioned in this embodiment are reference values and do not limit the present invention.
[0017] <Embodiment 1> FIG. 1 shows the configuration of the trajectory generation device according to this embodiment. In this embodiment, the device that performs trajectory generation according to the present invention is referred to as a "trajectory generation device". This trajectory generation device may be provided as a product such as a robot simulator device, for example.
[0018] The trajectory generation device in FIG. 1 includes an arithmetic processing unit 1, an operation unit 2 for a teacher or the like to perform data input and the like, a recording unit 3 for recording an operation program and the like, and a display unit 4 for displaying the operation trajectory of a robot arm and the like. This trajectory generation device can be configured by computer hardware such as a PC (personal computer), for example. Here, a specific configuration example of the arithmetic processing unit 1 is shown in FIG. 9.
[0019] FIG. 9 shows a configuration example of a control device 1000 corresponding to the main part of the trajectory generation device, particularly the arithmetic processing unit 1 (FIG. 1). As shown in the figure, this control device 1000 is a control system composed of each block arranged around the CPU 1601. Note that the configuration composed of each block arranged around this CPU 1601 can be applied in substantially the same manner to, for example, a robot control device (200: FIG. 10) described later. < In the configuration shown in Figure 9, if the calculation processing unit 1 (Figure 1) is the user interface device, for example, a display 1608 (display unit 4 in Figure 1) and an operation unit 1609 (operation unit 2 in Figure 1) are connected to interface 1607. The operation unit 1609 can consist of, for example, a full keyboard and a pointing device, and constitutes a user interface for operators performing trajectory simulations and verifications.
[0022] The control device 1000 in Figure 9 is equipped with a network interface 1605 as a communication means for communicating via a network NW. The arithmetic processing unit 1 (Figure 1) can send and receive control information such as teaching point data and trajectory data to the actual robot arm A (or its robot control device 200 (Figure 10)) via the network interface 1605 and the network NW. In this case, the network interface 1605 is configured using a communication standard such as wired communication like IEEE 802.3 or wireless communication like IEEE 802.11 or 802.15. However, of course, any other communication standard can be used for the network NW.
[0023] The control program for the CPU 1601, which implements the control procedure described later, can also be stored in an external storage device 1604, such as an HDD or SSD, or in a storage unit such as ROM 1602 (for example, the EEPROM area). In this case, the control program for the CPU 1601, which implements the control procedure described later, can be supplied to each of the above-mentioned storage units via the network interface 1605 and updated with a new (different) program. Alternatively, the control program for the CPU 1601, which implements the control procedure described later, can be supplied to each of the above-mentioned storage units via various storage means such as magnetic disks, optical disks, and flash memory, and their respective drive devices, and their contents can be updated. Various storage means and storage units that store the control program for the CPU 1601, which implements the control procedure described above, constitute a computer-readable recording medium storing the control procedure of the present invention.
[0024] In the case of the robot control device 200 (Figure 10), the configuration in Figure 9 is further enhanced by connecting driver circuits (not shown) that drive motors, solenoids, etc., for each part of the robot arm A to the interface 1606. Furthermore, the user interface consisting of the display 1608 and the control unit 1609 may be replaced with an operating terminal such as a teaching pendant (for example, 204 in Figure 10) in the case of the robot control device 200.
[0025] Generally, robot arms are composed of joints and links, and there are various types of joint mechanisms, including rotary joints, linear joints, and ball-and-socket 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] Figure 2 shows an example of a robot arm that is the target of trajectory generation in this embodiment. Robot arm A in Figure 2 is shown in a simplified configuration for ease of explanation.
[0027] The robot arm A in Figure 2 has two axes J1 and J2, which consist of two rotational joints. Hereafter, the joint angles (joint positions) of axes J1 and J2 will be denoted as θ1 and θ2, respectively. A Tool Center Point (TCP) is defined as a reference position at the tip of axis J2. In this embodiment, the teaching point that defines the position of robot arm A is represented by the position of this TCP. Furthermore, the trajectory of robot arm A that is generated is generated as the trajectory in which this TCP moves.
[0028] Generally, given the joint angles θ1 and θ2 of axes J1 and J2, the position of the TCP can be obtained through kinematic calculations. Conversely, given the position of the TCP, the joint angles θ1 and θ2 of axes J1 and J2 at the time the TCP takes that position can be obtained through inverse kinematic calculations. In the following, when referring to the TCP, it may simply be called the "endoscope."
[0029] For the sake of clarity, the robot arm A is shown in a very simplified configuration, but this configuration is not limited to the embodiment of the present invention. For example, a person skilled in the art can use a 6-axis articulated robot arm or a linear robot arm as the robot arm A. The configuration and control procedure of the control system for the robot arm of this embodiment, as shown below, can be easily extended when using such robot arms.
[0030] Next, we will explain the movement of robot arm A. When moving robot arm A, the teaching point indicating the starting position of the movement is called the starting 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 orientation of the end-effector (TCP) or the joint axis angles. Furthermore, the position and orientation of the end-effector (TCP) can be converted to the joint angles of each joint axis by inverse kinematics calculations, and conversely, the joint angles of each joint axis can be converted to the position and orientation of the end-effector by (forward) kinematics calculations.
[0031] Here, the starting teaching point and the target teaching point are denoted as Ps and Pg, respectively. Teaching points placed between the starting teaching point and the target teaching point are called intermediate teaching points and are denoted as P1, P2, ..., Pn. Furthermore, when referring to P1, P2, ..., Pn collectively, they are sometimes called a group of intermediate teaching points.
[0032] Interpolation methods known for smoothly interpolating intermediate teaching point clusters P1, P2, ..., Pn with curves include spline interpolation, B-spline interpolation, and Bézier curve interpolation. By using these interpolation methods to generate paths that smoothly connect the teaching points, the robot arm A can be made to move smoothly.
[0033] In this specification, the "motion path" or "path" of a robot arm refers to the trajectory of the robot arm's movement, excluding temporal concepts such as velocity. Furthermore, the "motion trajectory" or "trajectory" of a robot arm refers to an information body that, in addition to the above-mentioned "(motion) path," also contains information about the robot arm's motion speed, and is used in this specification as a clear distinction from the above-mentioned "(motion) path." In robot control technology, the "trajectory" may also be represented by a data sequence of command values for the robot arm's joints (angles) per unit of time, for example, per control clock period of the robot controller.
[0034] One method for generating a trajectory that includes velocity information for the path of a robot arm generated using the interpolation method described above is shortest time control. By using shortest time control, it is possible to find a trajectory that minimizes the operating time while adhering to the physical constraints of the robot arm, based on the path generated by interpolation. Note that shortest time control is a technique for finding the movement speed that minimizes the time while traveling along a fixed path, and the path through which the robot arm operates depends on the intermediate teaching point group P1, P2, ... Pn. Other physical constraints on the robot arm can also be applied, such as joint torque constraints, joint angular velocity constraints, joint angular acceleration constraints, jerk constraints, end-effector velocity constraints, and end-effector acceleration constraints. In the following, the trajectory generated using shortest time control will be expressed as p1, p2, ... pt, representing a sequence of robot arm position command values for each control period.
[0035] Figure 3 shows the robot arm A (a 3D model simulating it: robot arm model) and the obstacle Ob (a 3D model simulating it: obstacle model) both placed in the operating environment (virtual environment). Figure 3 also shows the starting teaching point Ps, the target teaching point Pg, the intermediate teaching point group P1, P2, ... Pn, and the resulting trajectory (p1, p2, ... pt).
[0036] In the trajectory shown in Figure 3 (p1, p2, ...pt), the robot arm A interferes with the obstacle Ob at p4 and p5, and therefore cannot move from the starting teaching point Ps to the target teaching point Pg on this trajectory. The objective of this embodiment is to find the optimal set of intermediate teaching points P1, P2, ...Pn such that the robot arm and the obstacle do not interfere with each other between the starting teaching point Ps and the target teaching point Pg (and that other constraints are also satisfied). Note that the optimization calculation of the trajectory is not limited to the case where the obstacle Ob is stationary; it is also possible to calculate the trajectory even if it is moving.
[0037] Figure 4 is a flowchart illustrating the main control procedure for the trajectory generation method according to this embodiment. The control procedure shown in Figure 4 can be stored as a control program for the CPU 1601 in ROM 1602 (or external storage device 1604, etc.). Figure 5 shows the control procedure for each step in Figure 4 in the same format as Figure 3. In the following, trajectory generation and optimization are performed on 3D models of robot arm A and obstacle Ob, but for the sake of simplicity, the explicit mention of "3D model" will be omitted below, and the control may be described as if the target of control were robot arm A or obstacle Ob.
[0038] In step S100 of Figure 4, the model of robot arm A, constraints, starting teaching point Ps, and target teaching point Pg in the workspace where robot arm A will perform its work are input (Figure 5(a)). These inputs can be made by the user through a user interface configured by, for example, the operation unit 2 and the display unit 4. In particular, the starting teaching point Ps and 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 if trajectory generation is performed by AI processing.
[0039] The above model of robot arm A contains design information for the components that make up the robot arm, including information such as the moment of inertia, mass, position, orientation, and number of axes of each link. The constraints define the physical constraints of the robot arm, including joint torque constraints, joint angular velocity constraints, joint angular acceleration constraints, jerk constraints, end-effector velocity constraints, and end-effector acceleration constraints.
[0040] In step S101, intermediate teaching points (first group of intermediate teaching points) P1, P2, ... Pn are generated as initial values between the starting teaching point Ps and the target teaching point Pg of the robot arm A given in step S100 (Figure 5(b)). In this embodiment, as shown in Figure 5(b), the number of intermediate teaching points to be generated is n, and the intermediate teaching points are named P1, P2, ... Pn in order.
[0041] One possible method for generating intermediate teaching points is to use a path planning algorithm that calculates a path that avoids obstacles. There are many path generation methods, such as the potential method, PRM (Probabilistic RoadMap), and RRT (Rapidly-exploring Random Tree). Furthermore, the method is not limited to the above path generation methods; other path generation methods such as the visible graph method, cell partitioning method, and Voronoi diagram method may also be applied. Alternatively, instead of using a path planning algorithm, a process of linear interpolation with straight lines between the starting teaching point and the target teaching point may be used. It should be noted that the above path planning techniques only calculate paths where interference avoidance is guaranteed when the teaching points are connected by straight lines. Therefore, interference avoidance may not necessarily be guaranteed in paths where the intermediate teaching point group P1, P2, ... Pn is interpolated with curves.
[0042] For example, as shown in Figure 5(b), the intermediate teaching point group P1, P2, ... Pn (the first intermediate teaching point group) corresponds to a trajectory that interferes with, for example, an obstacle Ob. In this embodiment, even if processing is started from such an initial intermediate teaching point group P1, P2, ... Pn (the first intermediate teaching point group), the intermediate teaching point group P1, P2, ... Pn (the first intermediate teaching point group) can be moved to generate an optimal trajectory.
[0043] Alternatively, the initial intermediate teaching point groups P1, P2, ... Pn (the first intermediate teaching point group) may be set by the user by plotting them in a virtual environment on the screen via the user interface of the operation unit 2 and the display unit 4.
[0044] In step S102 of Figure 4, spatial displacement is applied to the intermediate teaching point group P1, P2, ... Pn (the first intermediate teaching point group) to generate a new intermediate teaching point group R1, R2, ... Rn (the second intermediate teaching point group) (Figure 5(c): Intermediate teaching point generation process). One way to apply this displacement is to add (add) random values as parameters for spatial displacement to each intermediate teaching point. However, if a method of simply applying random values is adopted, the teaching points may be placed oscillatingly, and the movement of the robot arm may not be smooth. Generally, when the movement of the robot arm becomes oscillating, the movement time tends to increase, so it is undesirable for the teaching points to be placed oscillatingly.
[0045] Therefore, by introducing a correlation between random numbers that act on adjacent intermediate teaching points to introduce spatial displacement, the trajectory (path) can be smoothed. For example, consider a multivariate normal distribution with the joint values of one axis of the robot arm at the intermediate teaching point group P1, P2, ..., Pn as θ11, θ12, ..., θ1n, as variables. In this way, by giving a positive value to the covariance in the variance-covariance matrix, it is possible to introduce a correlation between 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 point group R1, R2, ... Rn is interpolated with a curve, and a trajectory is generated using shortest time control (trajectory generation process). If the objective is to avoid a stationary obstacle, it is sufficient to evaluate the interference of the robot arm A on the "path" interpolated with the curve. However, when considering a moving obstacle, the time axis must also be taken into consideration, so in this embodiment, a "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 does satisfy the constraints, the process proceeds to S105. The constraints determined in step S104 are those that cannot be constrained by the shortest time control technique used in step S103. At a minimum, the constraint determined in step S104 is that the mechanism of robot arm A does not extend outside its range of motion on the trajectory generated in step S103. Other constraints that can be determined in step S104 include, for example, joint torque constraints, joint angular velocity constraints, joint angular acceleration constraints, jerk constraints, end-effector velocity constraints, or end-effector acceleration constraints of the robot arm. In step S104, it is possible to determine whether to generate a trajectory that satisfies one or more of these constraints.
[0048] In step S105, the intermediate teaching point groups R1, R2, ..., Rn, and the trajectories generated based on them are saved. To distinguish the saved intermediate teaching point groups from other saved intermediate teaching point groups, they are denoted as Ri1, Ri2, ..., Rin, where i is the order in which they were saved.
[0049] In step S106, it is determined whether the number of saved intermediate teaching points and orbitals has reached a certain constant N. If the number of saved intermediate teaching points and orbitals has not reached N in step S106, the process returns to step S102; if it has reached N, the process proceeds to step S107.
[0050] In step S107, evaluation values are assigned to the N saved intermediate teaching point groups Ri1, Ri2, ..., Rin (i = 1 to N) (Figure 5(d): Evaluation process). In this embodiment, these evaluation values are used to displace (move) the intermediate teaching point groups P1, P2, ..., Pn (the first intermediate teaching point group) in order to generate the optimal trajectory.
[0051] Furthermore, this evaluation value is generated, for example, by evaluating the trajectories corresponding to the intermediate teaching point group Ri1, Ri2, ..., Rin (i = 1~N). For example, in this embodiment, in order to find 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 their sweep spaces, etc.). 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 in Figure 5(d), evaluation values generated by interference amount (interference time or penetration amount) are shown for three intermediate teaching point groups. These evaluation values are 10 for the second intermediate teaching point group R11, R12...R1n, 30 for R21, R22...R2n, and 50 for R31, R32...R3n. The best evaluation value is found for the intermediate teaching point group R11, R12...R1n, which has a small interference amount (close to 0).
[0053] Furthermore, for purposes other than avoiding interference from obstacles Ob, other methods may be used to evaluate the trajectories corresponding to the intermediate teaching point groups Ri1, Ri2, ..., Rin (i = 1~N).
[0054] In step S108, intermediate teaching point groups P1, P2, ... Pn are moved based on the evaluation values of N intermediate teaching point groups Ri1, Ri2, ... Rin (i = 1 to N) (Figure 5(e)). One way to move them is to move intermediate teaching point groups 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 in Figure 5(e), intermediate teaching point groups P1, P2, ... Pn (within the first intermediate teaching point group) are moved to the position of intermediate teaching point groups R11, R12, ... R1n, which have a small (close to 0) interference amount.
[0055] Alternatively, one may use a method in which the weighted average of N intermediate teaching point groups Ri1, Ri2, ..., Rin (i = 1 to N) is taken, with the reciprocal of the evaluation values of each intermediate teaching point group Ri1, Ri2, ..., Rin (i = 1 to N) as the weight, and then move the intermediate teaching point groups P1, P2, ..., Pn.
[0056] In step S109, it is determined whether the conditions for terminating the processes from steps S102 to S108 are met. If the termination conditions are not met, the process returns to step S102; if the termination conditions are met, the process proceeds to step S110.
[0057] Alternatively, an upper limit may be set on the number of times the loop from steps S102 to S109 can be executed. In that case, if the upper limit is reached in step S109, further attempts are abandoned and the process proceeds to step S110. Alternatively, error handling may be performed, such as outputting an appropriate error message using the display unit 4.
[0058] The termination condition determined in step S109 is, for example, that evaluation values similar to those in step S107 are generated for the intermediate teaching point group P1, P2, ... Pn (first intermediate teaching point group) after movement, and that the evaluation values satisfy predetermined conditions. For example, the objective of this embodiment is to avoid interference between the robot arm A and the obstacle Ob. Therefore, the evaluation value generated for the intermediate teaching point group P1, P2, ... Pn (first intermediate teaching point group) after movement is set to 0 (interference amount: interference time and penetration amount are 0). This makes it possible to generate an optimal trajectory that satisfies the constraints on robot movement (trajectory determination step).
[0059] In step S110, the intermediate teaching point group P1, P2, ... Pn is output as optimized teaching points. This output is performed, for example, by operating a 3D model of robot arm A (robot arm model) on the trajectory generated by the optimized intermediate teaching point group P1, P2, ... Pn within the virtual display of the display unit 4. Alternatively, step S110 may be a process that outputs the optimized intermediate teaching point group P1, P2, ... Pn or the trajectory data generated therefrom to the actual robot arm A or its robot control device (200: Figure 10).
[0060] In this embodiment, since the purpose is to avoid interference, when step S110 is reached, the robot arm will be in a state where it does not interfere with the interfering object in the trajectory (p1, p2, ...pt) generated based on the intermediate teaching point cloud P1, P2, ... Pn after 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 based on the results of evaluating the trajectories defined thereby, the intermediate teaching point groups P1, P2, ..., Pn are moved. Conditions related to physical constraints such as joint torque constraints are used for evaluating the trajectories, and the condition for achieving obstacle avoidance is used as the 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 smooth curved trajectories that avoid obstacles and satisfy physical constraints such as joint torque constraints.
[0062] <Embodiment 2> The following example of optimization processing is shown with reference to Figure 7, which generates a trajectory that allows robot arm A (or its 3D model) to move in the shortest possible time while avoiding interference with obstacle Ob. Other configurations, such as the hardware configuration of the trajectory generation device and its control device, are assumed to be the same as in Embodiment 1.
[0063] The control procedure for the trajectory generation method in this embodiment is equivalent to the flowchart in Figure 4 of Embodiment 1, however, in Embodiment 2, the initial values of the intermediate teaching point group P1, P2, ... Pn, the trajectory constraint method, the trajectory evaluation method, and the termination conditions differ from those in Embodiment 1. Figure 7 shows the optimization of the trajectory (first intermediate teaching point) performed in this embodiment. Figure 7 shows the processing of each step in Figure 4 in this embodiment in the same format as Figure 5.
[0064] In the above-described Embodiment 1, step S101 in Figure 4 shows an example in which intermediate teaching point groups P1, P2, ... Pn are generated between the starting teaching point Ps and the target teaching point Pg (Figure 7(a)) by path planning technology. In contrast, in this embodiment, the intermediate teaching point groups P1, P2, ... Pn (Figures 6 and 7(b)) output after the optimization process of Embodiment 1 are used in step S101 in Figure 4.
[0065] By using the intermediate teaching point clouds P1, P2, ..., Pn, which have already been output after the optimization process of Embodiment 1, as initial values, it is possible to perform optimization that reduces the operating time of a trajectory that has already avoided obstacles. Thus, the optimization control procedure of the present invention (Figure 4) can be used in two passes (or more passes), and in that case, by applying different constraint conditions in each pass, an optimized trajectory for each constraint condition can be obtained.
[0066] In Embodiment 1, a new intermediate teaching point group R1, R2, ... Rn (second intermediate teaching point group) is generated (Figure 5(c)), and in step S104 of Figure 4, when determining whether the trajectory of this second intermediate teaching point group satisfies the constraints, it was determined whether or not it was within the range of motion of the robot arm A. In this embodiment, a new intermediate teaching point group R1, R2, ... Rn (second intermediate teaching point group) is generated (Figure 7(c)), and in addition to determining whether or not it is within the range of motion, it is determined whether or not the robot arm A is interfering with an obstacle Ob. If it is interfering with an obstacle, the intermediate teaching point group R1, R2, ... Rn is invalidated, and the process returns to step S102.
[0067] Furthermore, in Embodiment 1, the trajectory was evaluated using interference time or penetration amount as the evaluation value in step S107 of Figure 4. In this embodiment, the trajectory is evaluated using the operation time of the robot arm A as the evaluation value (Figure 7(d)). This makes it possible to generate intermediate teaching point groups P1, P2, ... Pn that have the shortest operation time. In the example in Figure 7(d), the evaluation values of the second intermediate teaching point group related to operation time are 180 for R11, R12... R1n, 120 for R21, R22... R2n, and 150 for R31, R32... R3n. The intermediate teaching point group R21, R22... R2n has the best evaluation value, as it has the smallest interference amount (smallest operation time value).
[0068] Furthermore, in Embodiment 1, one of the termination conditions in step S109 in Figure 4 was considered to be when the evaluation value becomes 0. In contrast, in this embodiment, a method is used in which an upper limit is set on the number of repetitions from step S102 to step S109, or a method is used in which an upper limit is set on the number of times in which the evaluation values of the intermediate teaching point group P1, P2, ... Pn do not change (almost) continuously. For example, if the operation time is not shortened any further, the loop from step S102 to step S109 is exited, and the intermediate teaching point group P1, P2, ... Pn that yields the shortest time is output in step S110 (Figure 7(e)). Alternatively, in Embodiment 2, in step S110, the intermediate teaching point group P1, P2, ... Pn of the final movement state is not necessarily output as the optimized teaching point. For example, the history of changes in the intermediate teaching point group P1, P2, ... Pn in the repetitions from step S102 to step S108 may be taken, and the one with the highest evaluation may be output.
[0069] As described above, this embodiment has the effect of generating a trajectory that avoids obstacles, adheres to physical constraints such as torque constraints, and minimizes operating time. In particular, the optimization control procedure (Figure 4) can be used in two passes (or more passes), in which case, by applying different constraint conditions in each pass, an optimized trajectory for each constraint condition can be obtained.
[0070] Here, we will show more specific configuration examples of robot arm A, as well as configurations when robot arm A is applied to a production system.
[0071] Figure 10 shows a more specific overall configuration of robot arm A than the schematic configuration in Figure 2. In Figure 10, robot arm A (robot device) comprises, for example, a vertical multi-joint arm body 201 with 6 axes (joints). Each joint of the arm body 201 can be controlled to a desired position and orientation by servo control of the servo motor provided at each joint.
[0072] A tool such as a hand 202 is attached to the tip (end-effector) of the arm body 201, and this hand 202 can be used to grasp a workpiece 203 and perform production tasks 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 electrical product, and the robot arm A can be placed as a production device in such a production system (production line).
[0073] The movement of the arm body 201 of robot arm A is controlled by a robot control device 200 (robot controller). The movement of robot arm A can also be programmed (taught) by an operating terminal 204 (e.g., a teaching pendant) connected to the robot control device 200. For example, by sequentially specifying teaching points using the operating terminal 204, it is possible to program the movement of a specific part of robot arm A (e.g., TCP: the tool mounting surface at the tip of the arm) along a desired trajectory.
[0074] Furthermore, via the network NW, the robot arm A or the robot control device 200 can receive the optimized intermediate teaching point or trajectory data from the trajectory generation device (or robot simulator: Figure 1) as described above. Based on the intermediate teaching point or trajectory data optimized by the above processing, the robot arm A can be placed in the production system (production line), operated as a production device, and used to manufacture goods.
[0075] The present invention can also be realized by supplying a program that implements one or more of the functions of the above embodiments to a system or device via a network or storage medium, and by having one or more processors in the computer of that system or device read and execute the program. It can also be realized by a circuit (e.g., an ASIC) that implements one or more functions. [Explanation of symbols]
[0076] A...Robot arm, J1, J2...Joint axes, 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. An information processing method for acquiring a trajectory for moving a robot arm from a first position to a second position, A plurality of first trajectories defining the path from the first position to the second position are obtained, A predetermined first orbital is selected from the first orbital based on the first evaluation condition, Multiple second orbits are obtained that are determined to satisfy the first evaluation condition in the orbit obtained by displacing the intermediate point corresponding to the predetermined first orbit, A predetermined second orbital is selected from the aforementioned plurality of second orbitals based on the second evaluation condition. A trajectory is obtained to operate the robot arm based on the predetermined second trajectory. An information processing method characterized by the following:
2. In the information processing method described in Claim 1, The first evaluation condition is whether or not the robot arm and the object are interfering with each other. The second evaluation condition is the operating time of the robot arm. An information processing method characterized by the following:
3. In the information processing method according to claim 1 or 2, The displacement is caused by adding a value based on correlated random numbers to adjacent midpoints corresponding to the predetermined first orbit. An information processing method characterized by the following:
4. In the information processing method described in Claim 3, The random numbers are correlated by assigning a positive value to the covariance in the variance-covariance matrix. An information processing method characterized by the following:
5. In the information processing method according to any one of claims 1 to 4, Any trajectory obtained by displacing the intermediate point corresponding to the predetermined first trajectory that does not satisfy the first evaluation condition shall be deemed invalid. An information processing method characterized by the following:
6. In the information processing method according to any one of claims 1 to 5, When displacing the intermediate point corresponding to the predetermined first trajectory, the first position and the second position are not displaced. An information processing method characterized by the following:
7. In the information processing method according to any one of claims 1 to 6, The system allows the user to set intermediate points that define the path from the first position to the second position, and obtains the plurality of first trajectories by displacing the intermediate points set by the user. An information processing method characterized by the following:
8. In the information processing method described in Claim 7, The user plots the robot arm in the displayed virtual space to set intermediate points that define the path from the first position to the second position. An information processing method characterized by the following:
9. In the information processing method according to any one of claims 1 to 6, Intermediate points defining the path from the first position to the second position are obtained using at least one of the following methods: potential method, PRM (Probabilistic Road Map), RRT (Rapidly-exploring Random Tree), visible graph method, cell partitioning method, and Voronoi diagram method. The plurality of first trajectories are obtained by displacing the intermediate points that define the path from the acquired first position to the second position. An information processing method characterized by the following:
10. In the information processing method according to any one of claims 1 to 9, The plurality of first trajectories are obtained by curve interpolation of the intermediate points after displacing the intermediate points that define the path from the first position to the second position, The intermediate points obtained by curve interpolation after displacing the intermediate points corresponding to the predetermined first orbit are determined to satisfy the first evaluation condition, and these are acquired as the plurality of second orbits. An information processing method characterized by the following:
11. In the information processing method described in claim 10, Interpolate the midpoints using curve interpolation with at least one of the following methods: spline interpolation, B-spline interpolation, or Bézier curve interpolation. An information processing method characterized by the following:
12. In the information processing method according to any one of claims 1 to 11, The first position and the second position are set by AI. An information processing method characterized by the following:
13. In the information processing method according to any one of claims 1 to 12, If the trajectory for operating the robot arm cannot be obtained, an error will be notified. An information processing method characterized by the following:
14. In the information processing method according to any one of claims 1 to 13, The acquired trajectory of the robot arm is displayed on the display unit. An information processing method characterized by the following:
15. In the information processing method according to any one of claims 1 to 14, The acquired trajectory for operating the robot arm is output to the control device that controls the robot arm. An information processing method characterized by the following:
16. In the information processing method described in Claim 15, The acquired trajectory for operating the robot arm is output to the control device via the network. An information processing method characterized by the following:
17. A program that causes a computer to execute the information processing method described in any one of claims 1 to 16.
18. A computer-readable recording medium storing the program described in claim 17.
19. A production system for manufacturing articles by operating the robot arm along a trajectory acquired using the information processing method described in any one of Claims 1 to 16 to assemble a workpiece.
20. A robot system comprising a robot arm whose movement is controlled based on a trajectory acquired using the information processing method described in any one of claims 1 to 16.
21. A method for manufacturing an article, comprising assembling a workpiece and manufacturing an article by operating the robot arm along a trajectory acquired using the information processing method described in any one of Claims 1 to 16.
22. An information processing device for acquiring a trajectory for moving a robot arm from a first position to a second position, A plurality of first trajectories defining the path from the first position to the second position are obtained, A predetermined first orbital is selected from the first orbital based on the first evaluation condition, Multiple second orbits are obtained that are determined to satisfy the first evaluation condition in the orbit obtained by displacing the intermediate point corresponding to the predetermined first orbit, A predetermined second orbital is selected from the aforementioned plurality of second orbitals based on the second evaluation condition. A trajectory is obtained to operate the robot arm based on the predetermined second trajectory. An information processing device characterized by the following:
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
