Control method, control device, information processing method, information processing device, robot device, article manufacturing method, program, and recording medium
The control method addresses the issue of hardware damage by prioritizing the joint with the highest speed or load during an unexpected stop, ensuring a controlled stop even when all constraints cannot be met, thereby reducing damage to the robot arm.
Patent Information
- Application Number
- JP2021096818
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-06-09
- Publication Date
- 2025-07-22
- Estimated Expiration
- 2041-06-09
AI Technical Summary
Existing methods for stopping a robot arm fail to adequately consider reducing hardware damage when axis target values cannot satisfy all physical constraints during an unexpected stop, leading to potential hardware risks.
A control method that prioritizes satisfying the physical constraints of the joint with the highest speed or most significant load when calculating stop axis target values, ensuring a controlled stop even if all constraints cannot be met simultaneously.
Reduces the risk of hardware damage by prioritizing the physical constraints of the joint with the highest speed or load, allowing a controlled stop that minimizes potential harm to the robot arm.
Smart Images

Figure 0007710901000015 
Figure 0007710901000016 
Figure 0007710901000017
Abstract
Description
Technical Field
[0001] The present invention relates to a method for controlling a robot and a method for processing information of a robot.
Background Art
[0002] In recent years, in production sites such as factories, operations such as assembly and conveyance have been automated by a robot system including a robot arm having a plurality of joints and an end effector such as a hand or a tool attached to the robot arm. When operating the robot arm, based on the target position, target speed, interpolation method, etc. input by the user, the control controller generates target values (target angles) for each joint and executes a desired operation. In such a robot system, when an unexpected operation or some kind of abnormality occurs for the user, it is necessary to immediately stop the robot arm and the end effector in order to ensure the safety of the user and the robot system.
[0003] The non-patent document shown below describes a method for calculating a stop target value such that the movement path of the tip (end effector) of the robot system coincides between normal operation and stop operation by introducing a mediating variable in the same dimension as the time axis of normal operation. Calculate mediating variables based on various physical constraints such as acceleration, jerk, and torque on an arbitrary axis, calculate target values for other axes based on the mediating variables, and if the calculated target values for each axis satisfy the physical constraints of all axes, then adopt those target values for each axis. Since the target values for each axis are calculated using the same mediating variable, it is ensured that the positional relationship between the axes is the same as the normal trajectory, and the path of the tip during normal operation and the path of the tip during stop operation are the same.
[0004] As a result, the end effector can be stopped on the same path as the path that should have moved before stopping, and the risk of the end effector colliding with surrounding objects during stopping can be reduced. Also, by complying with physical constraints in calculating the target value at the time of stopping, it is possible to prevent a rapid deceleration command that would place excessive demands on hardware such as arm links and reducers, and the risk of hardware damage can be reduced.
Prior Art Documents
Non-Patent Documents
[0005]
Non-Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0006] However, in the method described in Non-Patent Document 1 above, when the axis target values (control values) for stopping cannot be calculated such that the constraints of all axes are satisfied in obtaining the axis target values for stopping, the predetermined target values taught in advance in the operation being executed are used as they are. Therefore, in the case of stopping when the axis target values that can satisfy the constraints of all axes cannot be calculated, sufficient consideration has not been given to reducing the risk of hardware damage.
[0007] In view of the above problems, the present invention provides a control method capable of obtaining control values that can execute a stop with the risk of hardware damage reduced as much as possible even when the constraints of all axes cannot be satisfied.
Means for Solving the Problems
[0008] A control method for stopping a robot having a first joint and a second joint, wherein when executing the stop, a first physical constraint to be satisfied in a first physical quantity generated at the first joint, and a second physical constraint to be satisfied in a second physical quantity generated at the second joint when executing the stop are set. When it is not possible to obtain the control value that satisfies the first physical constraint and the second physical constraint when obtaining the control value for executing the stop, the control value is obtained so as to preferentially satisfy either the first physical constraint or the second physical constraint. Shi 、 The first physical quantity or the second physical quantity includes any one of velocity, acceleration, jerk, torque, and load, A control method characterized by this is adopted.
Advantages of the Invention
[0009] According to the present invention, even when it is not possible to satisfy the constraints of all axes, it is possible to obtain a control value that executes a stop with the risk of hardware damage reduced as much as possible.
Brief Description of the Drawings
[0010]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Embodiments for Carrying Out the Invention
[0011] Hereinafter, embodiments for carrying out the present invention will be described with reference to the accompanying drawings. Note that the embodiments shown below are merely examples, and for example, those skilled in the art can appropriately change the detailed configuration without departing from the spirit of the present invention. Also, the numerical values taken up in this embodiment are reference numerical values and do not limit the present invention. In the following drawings, the arrows X, Y, and Z in the figures indicate the overall coordinate system of the robot system. Generally, the XYZ three-dimensional coordinate system indicates the world coordinate system of the entire installation environment. In addition, depending on the convenience of control and the like, a local coordinate system may be appropriately used for the robot hand, finger parts, joints, etc. In this embodiment, the world coordinate system, which is the overall coordinate system, is represented by XYZ, and the local coordinate system is represented by xyz.
[0012] (First Embodiment) FIG. 1 is a schematic diagram showing the robot system 1000 in this embodiment. From FIG. 1, the robot system 1000 includes a multi-joint robot arm main body 200, an end effector 300 provided at the tip of the robot arm main body 200, and a control device 400 that controls the robot arm main body 200 and the end effector 300. Further, it includes a workpiece 600 that is operated using the robot arm main body 200 and the end effector main body 300, a mounting table 500 on which the workpiece 600 is placed, and a signal input device 700 that transmits the presence or absence of the workpiece to the control device 400. Furthermore, it includes an external input device 800 that inputs command values to the robot arm main body 200 and the end effector main body 300.
[0013] The robot arm main body 200 includes a base 210 that contacts the ground and five links 201, 202, 203, 204, and 205. It also includes five joints J1, J2, J3, J4, and J5 that connect these links 201 - 205 so that they can rotate in the directions of the respective arrows shown in FIG. 1. Further, joints J1 - J5 have arm motors 211 - 215 for swinging or rotating links 201 - 205 (FIG. 2). Each of the arm motors 211 - 215 is provided with a speed reducer (not shown) for reducing the rotation of the motor and generating torque for rotating each of the links 201 - 205. Furthermore, each of the joints J1 - J5 is provided with encoders 221 - 225 (FIG. 2), and the angles of each joint are detected from these encoders and fed back to the control device 400. By positioning each link at a predetermined position in this way, the end effector main body 300 can be positioned at a predetermined position in the XYZ space.
[0014] The end effector main body 300 is a robot hand and includes fingers 301 and 302, and a hand motor 312 (FIG. 2) for performing an opening / closing operation to move the fingers 301 and 302 closer to or farther from each other and a speed reducer (not shown). The robot system 1000 grips the workpiece 600 with the end effector main body 300 and performs processes such as bringing it into contact with another workpiece. By doing so, it is possible to manufacture an article in which the workpiece 600 and another workpiece are assembled, using the workpiece 600 and another workpiece as materials. Further, the hand motor 312 is provided with an encoder 322 (FIG. 2), and the speed of the hand motor 312 is detected from this encoder and fed back to the control device 400. In this embodiment, the end effector main body 300 is described by taking a robot hand as an example, but it is not limited to this. For example, tools such as an electric driver or an end mill may be used.
[0015] FIG. 2 is a block diagram showing a detailed configuration of the control system of the robot system 1000 in FIG. 1. The control device 400 is composed of a computer and includes a CPU (Central Processing Unit) 401 as a processor. Further, as a storage unit, it includes a ROM (Read Only Memory) 402, a RAM (Random Access Memory) 403, an HDD (Hard Disc Drive) 404, and a recording disc drive 405. Also, it includes interfaces 406, 407, 408, 409, 410, 411 for communicating with each device. The CPU 401, the ROM 402, the RAM 403, and the interfaces 406 to 412 are connected by a bus 412 so as to be communicable with each other.
[0016] Among these, the RAM 403 is used for temporarily storing data such as teaching points and control commands by the operation of the external input device 800. The ROM 402 stores a basic program 430 such as BIOS for causing the CPU 401 to execute various arithmetic processes. The CPU 401 executes various arithmetic processes based on the control program recorded (stored) in the HDD 404. The HDD 404 is a storage unit that stores various data and the like that are the arithmetic processing results of the CPU 401. The recording disc drive 405 can read various data and control programs recorded on the recording disc 431. Further, external storage devices 811 such as a monitor on which various images are displayed, a rewritable non-volatile memory, and an external HDD are connected to the interfaces 407 and 408.
[0017] As the external input device 800, for example, an operating device such as a teaching pendant (TP) can be considered, but it may also be another computer device (PC or server) capable of editing a robot program. The external input device 800 can be connected to the control device 400 via wired or wireless communication connection means and has a user interface function such as robot operation and status display. The target joint angles of each of the joints J1 to J5 input by the external input device 800 are output to the CPU 401 via the interface 406 and the bus 412.
[0018] The CPU 401 receives, for example, the teaching point data input by the external input device 800 from the interface 406. Further, based on the teaching point data input from the external input device 800, it can generate the trajectories of the respective axes of the robot arm main body 200 and transmit them to the arm motors 211 to 215 using the arm motor driver 230 via the interface 409. The CPU 401 outputs data of drive commands indicating the control amounts of the rotation angles of the respective arm motors 211 to 215 to the arm motor driver 230 at predetermined intervals via the bus 412 and the interface 409.
[0019] Based on the drive commands received from the CPU 401, the arm motor driver 230 calculates the current output amounts to the respective arm motors 211 to 215, supplies current to the respective arm motors 211 to 215, and controls the joint angles of the respective joints J1 to J5. Further, it outputs the pulse signals from the respective encoders 221 to 225 described above to the CPU 401 via the interface 409 and the bus 412. That is, the CPU 401 executes feedback control of the respective arm motors 211 to 215 via the arm motor driver 230 so that the current joint angle values of the joints J1 to J6 detected by the respective encoders 221 to 225 become the target joint angles.
[0020] Furthermore, the control device 400 is also connected to the hand motor 312 via the interface 410 and the hand motor driver 330. Based on the drive commands received from the CPU 401, the hand motor driver 330 calculates the current output amount to the hand motor 312, supplies current to the hand motor 312, and controls the speed of the hand motor 312. Further, it outputs the pulse signal from the encoder 322 described above to the CPU 401 via the interface 410 and the bus 412. That is, the CPU 401 executes feedback control of the hand motor 312 via the hand motor driver 330 so that the current speed value of the hand motor 312 detected by the encoder 322 becomes the target speed.
[0021] Furthermore, the control device 400 is also connected to the signal input device 700 via the interface 411 and the bus 412. The mounting table 500 is provided with a sensor such as a pressure sensor (not shown) that can detect the presence or absence of the workpiece 600. Based on the detection result of the pressure sensor, the signal input device 700 outputs a signal indicating the presence or absence of the workpiece 600 to the CPU 401 via the interface 411 and the bus 412. The CPU 401 can determine whether the workpiece 600 exists on the mounting table 500 based on the signal from the signal input device 700, and can control the robot arm main body 200 and the end effector main body 300 based on the determination.
[0022] Here, it is assumed that the robot arm main body 200 is executing an operation of moving the end effector main body 300 to a predetermined position on the mounting table 500 based on an instruction from the control device 400 in order to transport the workpiece 600 to another workpiece location. During this operation, the control device 400 detects, via the signal input device 700, that the workpiece 600 has not reached the predetermined position. If this continues, the operation will continue without gripping the workpiece 600, resulting in poor work efficiency. Therefore, the control device 400 calculates axis target values to stop the robot arm main body 200 as quickly as possible and requires the user to perform maintenance. Hereinafter, the stop process of the robot arm main body 200 in the present embodiment will be described in detail.
[0023] FIG. 3 is a control flowchart showing a process of obtaining axis target values (control values) for stopping the robot arm main body 200 in the present embodiment. The flowchart in FIG. 3 is composed of steps S1 to S7. Hereinafter, the contents of each process in steps S1 to S7 will be described in detail with reference to the drawings. Also, the following processes are assumed to be executed by the CPU 401 of the control device 400.
[0024] First, in step S1, axis target values (normal axis target values) for each joint (each axis) for executing normal operation are acquired. In the embodiment, it is applicable to any number of axes as long as it is the control of a robot device having two or more joints. This time, for simplicity of explanation, the control of two joints will be taken as an example and described in detail.
[0025] FIG. 4 is a graph showing the axis target values (normal axis target values) in the normal operation acquired in step S1. FIG. 4(a) shows the normal axis target value of the first joint, and FIG. 4(b) shows the normal axis target value in the normal operation of the second joint. In FIGS. 4(a) and 4(b), the horizontal axis represents the time step k, and the vertical axis represents the axis target value [deg]. i is a value indicating the first joint or the second joint. In FIG. 4(a), it shows the normal axis target value of the first joint, and in FIG. 4(b), it shows the normal axis target value of the second joint. The time step is set according to the control cycle of the robot arm main body 200.
[0026] From FIG. 4(a), the normal axis target value qd1(k) of the first joint in the range of the time step k where 0 ≦ k ≦ 5 is qd1(k) = [0, 0.550, 0.950, 1.200, 1.275, 1.350]. From FIG. 4(b), the normal axis target value qd2(k) of the second joint in the range of the time step k where 0 ≦ k ≦ 5 is qd2(k) = [0, 0.100, 0.270, 0.530, 0.900, 1.200]. This time, a stop command is received at the time step k = 3, and in order to switch from the normal operation after time k = 3 to the stop operation, the normal axis target value after time k = 3 is changed for stopping.
[0027] Next, in step S2, based on the stop command, the axis target value (constrained axis target value) when decelerating while observing the physical constraints for each joint is obtained. As specific physical constraints, limit values (upper limit values) such as acceleration, jerk, and torque can be considered. Here, the case of limiting acceleration will be taken as an example for explanation. In the following explanation, let the axis target value (stop axis target value) for the stop operation of axis i at time step k be represented by qci(k) [deg]. Let the value obtained by multiplying the velocity by the time step width be vci(k) [deg]. And when the value obtained by multiplying the limit value of the acceleration of axis i by the square of the time step width is ai′ [deg], the axis target value (constrained axis target value) qai(k) [deg] when decelerating at the upper limit of the acceleration constraint can be calculated by Equation (1).
[0028]
Number
[0029] In this embodiment, the limit value of the acceleration of each joint is the value of Equation (2).
[0030]
Number
[0031] At this time, at time step k = 4, the constrained axis target value of the first joint is the value of Equation (3).
[0032]
Number
[0033] Similarly, the constrained axis target value of the second joint is the value of Equation (4).
[0034]
Number
[0035] In this embodiment, acceleration constraints are considered, but it is also possible to consider torque constraints and jerk constraints simultaneously. In that case, among the limit axis target values calculated based on each physical constraint, the limit axis target value that is farthest (the most distant) from the current joint value (angle) may be adopted in this step S2.
[0036] Next, in step S3, the limit axis target value calculated in step S2 is used to obtain the intermediate variable Sai(k) projected onto the time axis. FIG. 5 is a diagram showing the limit axis target value and the intermediate variable obtained by projecting it onto the time axis. FIG. 5(a) shows the axis target value of the first joint, and FIG. 5(b) shows the axis target value of the second joint.
[0037] As shown in FIGS. 5 and 6, the intermediate variable Sai(k) may be obtained by linearly interpolating the normal axis target values in normal operation, and Sa1(4) and Sa2(4) are the values of equations (5) and (6), respectively.
[0038]
Equation
[0039]
Equation
[0040] Here, the reason why the time steps for obtaining the intermediate variable are different in equations (5) and (6) is based on the following. The limit axis target value qa1(4) of the first joint is greater than the normal axis target value qd1(4) of the normal trajectory, while the limit axis target value qa2(4) of the second joint is less than the normal axis target value qd2(4) of the normal trajectory. Therefore, the intermediate variable Sa2(4) cannot be obtained by linear interpolation between time step 4 and time step 5, so the interval between time step 3 and time step 4 is used.
[0041] Next, in step S4, candidates for the target values of the stop axes of each joint are obtained from the intermediate variables at each joint obtained in step S3. FIG. 6 is a diagram showing each intermediate variable in the graph of the normal trajectory of the first joint and the graph of the normal trajectory of the second joint. The upper graph in FIG. 6 is the graph of the normal trajectory of the first joint, and the lower graph in FIG. 6 is the graph of the normal trajectory of the second joint.
[0042] First, the target values of the stop axes at each joint are obtained from the intermediate variable Sa1(4) obtained from the target value of the restricted axis at the first joint. The target value of the stop axis at the first joint is equal to the target value of the restriction obtained in step 2 and is the value shown in equation (7).
[0043]
Equation
[0044] On the other hand, the target value of the stop axis at the second joint may be obtained by linear interpolation from the target value of the normal axis in the normal operation and is the value shown in equation (8).
[0045]
Equation
[0046] Subsequently, the target values of the stop axes at each joint are obtained from the intermediate variable Sa2(4) obtained from the target value of the restricted axis at the second joint. The target value of the stop axis at the first joint may be obtained by linear interpolation from the target value of the normal axis in the normal operation and is the value shown in equation (9).
[0047]
Equation
[0048] On the other hand, the target value of the stop axis at the second joint is equal to the target value of the restricted axis obtained in step S2 and is the value shown in equation 10.
[0049]
Equation
[0050] Next, in step S5, it is determined whether there exists a stop axis target value that satisfies the physical constraints of all axes (all joints) among the candidates for the stop axis target value obtained in step S4.
[0051] First, when adopting the stop axis target value obtained from the intermediate variable Sa1(4), it is determined whether the absolute value of the acceleration of each axis exceeds the physical constraints. The stop axis target value at the first joint is the value shown in Equation (7), and since it is a value obtained from the acceleration constraint values of the first and second joints from Equation (2), the acceleration at the first joint does not exceed the constraints.
[0052] On the other hand, when adopting the stop axis target value obtained from the intermediate variable Sa1(4), the value of the acceleration at the second joint is the value shown in Equation (11).
[0053]
Equation
[0054] From Equation (2) and Equation (11), the value of the acceleration at the second joint when adopting the stop axis target value obtained from the intermediate variable Sa1(4) exceeds the acceleration constraint value a2´ = 0.150 at the second joint. Therefore, the stop axis target value calculated from the intermediate variable sa1(4) is not a stop axis target value that satisfies the physical constraints of all axes.
[0055] Subsequently, when adopting the stop axis target value obtained from the intermediate variable Sa2(4), it is determined whether the absolute value of the acceleration of each axis exceeds the physical constraints. The stop axis target value at the second joint is the value shown in Equation (8), and since it is a value obtained from the acceleration constraint value of the second joint from Equation (4), the acceleration at the second joint does not exceed the constraints.
[0056] On the other hand, when adopting the stop axis target value obtained from the intermediate variable Sa2(4), the value of the acceleration at the first joint is the value shown in Equation (12).
[0057]
Number
[0058] From Equation (2) and Equation (12), when the target value of the stop axis obtained from the intermediate variable Sa2(4) is adopted, the value of the acceleration in the first joint exceeds the acceleration constraint value a1´ = 0.150 in the first joint. Therefore, the target value of the stop axis obtained from the intermediate variable Sa2(4) is not a target value of the stop axis that satisfies the physical constraints of all axes.
[0059] Here, among the candidates for the target value of the stop axis obtained in step S4, if there is a target value of the stop axis that satisfies the physical constraints of all axes, then step S5: No is reached and the process proceeds to step S7. Among the candidates for the target value of the stop axis obtained in step S4, if there is a target value of the stop axis that satisfies the physical constraints of all axes, then step S5: Yes is reached and the process proceeds to step S6, and the robot arm main body 200 is stopped using the target value of the stop axis that satisfies the physical constraints of all axes.
[0060] Here, as in this case, if there is no target value of the stop axis that satisfies the physical constraints of all axes, it becomes impossible to execute the stop. Therefore, in such a case as well, in order to stop while satisfying the physical constraints as much as possible, in step S7, based on a previously prepared evaluation method (predetermined conditions), the target value of the stop axis obtained in step S4 is evaluated. And it is a major feature that the target value of the stop axis with a high evaluation value is used as the target value of the stop axis for stopping the robot arm main body 200.
[0061] The method for determining the target value of the stop axis in step S7 in this embodiment determines the target value of the stop axis by giving priority to the physical constraints in the joint with a high speed based on the speed of each joint at the time step (k = 3 in this embodiment) when the stop command is received. The target value of the stop axis obtained by the intermediate variable Sai(k) obtained by the constraint of the joint with a high speed at the time step when the stop command is received is used as the target value of the stop axis for stopping the robot arm main body 200.
[0062] The speeds of the respective joints at the time step when the stop instruction is received are the values shown in Expressions (13) and (14).
[0063]
Number
[0064]
Number
[0065] From Expressions (13) and (14), since the speed of the second joint is the largest, the stop axis target value candidate obtained by the intermediate variable Sa2(4) obtained by the physical constraint of the second joint is used. The stop axis target value obtained by the intermediate variable Sa2(4) in the first joint is qc1(4) = 1.222 from Expression (9), and the stop axis target value in the second joint is qc2(4) = 0.640 from Expression (4). At this time, the absolute value of the acceleration in the first joint is |ac1(4)| = 0.228 from Expression (12), and the absolute value of the acceleration in the second joint is |ac2(4)| = a2´ = 0.1500 from Expression (2). As described above, regarding the axis operating at the maximum speed (in this case, the second joint), the stop axis target value can be determined while observing the physical constraints. In the present embodiment, the case where the physical constraints of the first joint and the physical constraints of the second joint are the same is taken as an example for explanation, but it may be implemented in different cases.
[0066] By repeating the above operations, the robot arm main body 200 can be stopped while observing the physical constraints as much as possible for the axis operating at the maximum speed. As a result, the physical constraints in the joints where the speed is high and the load on the transmission mechanism is large are preferentially observed. Therefore, even when a stop axis target value that satisfies the constraints of all joints (axes) cannot be obtained, a stop that satisfies the physical constraints as much as possible can be executed so as to reduce the risk of damage to the hardware (robot arm main body 200) as much as possible.
[0067] In the above-described embodiment, the physical constraints of the joints to be prioritized are determined based on the speed of each joint at the time step when the stop command is received, but the present invention is not limited to this. For example, before receiving the stop command (before the timing of k = 3), the physical constraints of the joint that has reached the maximum speed at the time step may be prioritized. Also, a predetermined threshold value of the speed may be set in advance, and the physical constraints of the joint with the largest number of times reaching the threshold value at the time step before receiving the stop command may be prioritized.
[0068] (Second Embodiment) Next, a second embodiment of the present invention will be described in detail. In this embodiment, the method for determining the stop axis target value in step S7 is different from that in the above-described first embodiment. In this embodiment, among the stop axis target values in step S4, the physical constraints of the joint with the least excess with respect to the physical constraints at the time step of stopping (k = 4, which is one time step after receiving the stop command of k = 3) are used to determine the stop axis target value. Hereinafter, as necessary, parts of the hardware and control system configuration different from those in the first embodiment will be illustrated and described. Also, parts similar to those in the first embodiment are assumed to have the same configuration and operation as above, and detailed description thereof will be omitted.
[0069] From Equation (9), the stop axis target value calculated from the intermediate variable Sa1(4) exceeds the acceleration constraint value of the second joint by 0.210 / 0.150 = 1.40 times. On the other hand, from Equation (12), the stop axis target value calculated from the intermediate variable Sa2(4) exceeds the acceleration constraint value of the second joint by 0.228 / 0.150 = 1.52 times. Therefore, when actually stopping, using the intermediate variable Sa1(4) in the first joint can suppress the excess of physical constraints.
[0070] As described above, even when it is impossible to obtain a stop axis target value that satisfies the constraints of all joints (axes), it is possible to execute a stop that satisfies the physical constraints as much as possible so as to minimize the risk of damage to the hardware (robot arm main body 200).
[0071] (Third Embodiment) Next, a third embodiment of the present invention will be described in detail. In this embodiment, the method for determining the stop axis target value in step S7 is different from that in the first and second embodiments described above. Hereinafter, as necessary, parts of the hardware and control system configurations that are different from the above-described embodiments will be illustrated and described. Also, parts that are the same as those in the first embodiment are assumed to have the same configurations and operations as above, and detailed descriptions thereof will be omitted.
[0072] In this embodiment, instead of using the stop axis target value calculated in step S4, the restricted axis target value obtained by formulas (3) and (4) is adopted. Thereby, even when it is impossible to calculate a stop axis target value that satisfies the constraints of all joints (axes), it is possible to execute a stop that reduces the risk of damage to the hardware (robot arm main body 200). Note that it is also possible to switch between the case of obtaining a stop axis target that satisfies the physical constraints of all joints and the case of obtaining a stop axis target value that satisfies the physical constraints of any one joint.
[0073] (Fourth Embodiment) Next, a fourth embodiment of the present invention will be described in detail. In this embodiment, the method for determining the stop axis target value in step S7 is different from that in the first and second embodiments described above. Hereinafter, as necessary, parts of the hardware and control system configurations that are different from the above-described embodiments will be illustrated and described. Also, parts that are the same as those in the first embodiment are assumed to have the same configurations and operations as above, and detailed descriptions thereof will be omitted.
[0074] In this embodiment, taking the case where the obtained stop command is related to an operator as an example, in the case of a stop related to an operator, it is necessary to immediately stop the robot arm main body 200 to ensure the safety of the operator. Therefore, the control device 400 stops the robot arm main body 200 so as to stop at the current position regardless of whether the obtained stop axis target value satisfies the physical constraints or not.
[0075] FIG. 7 shows the robot system 1000 in this embodiment. The base 210 of the robot arm main body 200 in this embodiment is provided with a detection sensor 260 for detecting an operator. The detection sensor 260 is a light irradiation type sensor. When the irradiated light is reflected by the operator, the reflected light is acquired to detect the presence or absence of the operator. Then, if the operator is detected, a signal is transmitted to the control device 400 as a stop command due to the approach of the operator. In this embodiment, an optical sensor is used, but it is not limited to this, and sensors such as magnetic sensors and imaging devices that can detect the operator may be used.
[0076] FIG. 8 is a diagram showing the control flowchart in this embodiment. Compared with the above-described embodiment, this embodiment is different in that steps S21 and S22 exist. Also, the following processing is assumed to be executed by the CPU 401 of the control device 400, and steps S21, S22, and S23, which are different steps, will be described in detail.
[0077] From FIG. 8, in this embodiment, before moving to step S1, a step of determining whether the stop command is due to the approach of an operator is provided by step S21. Step S21: Yes, that is, if there is a stop command due to the approach of an operator, proceed to step S22. If it is not due to the approach of an operator, from step S21: No, proceed to step S1 and perform the stop processing based on the various embodiments described above.
[0078] In step S22, in order to immediately stop the robot arm main body 200 to ensure the safety of the operator, the process is switched from stopping in a manner that does not satisfy each physical constraint of the robot arm main body 200 to an immediate stop process regardless of the physical constraints.
[0079] Then, in step S23, regardless of the physical constraints, in order to immediately stop, the current position of each joint of the robot arm main body 200 is used as the stop axis target value, and the robot arm main body 200 is stopped.
[0080] As described above, since a stop command can be obtained and the robot arm main body 200 can be immediately stopped, the safety of the operator can be reliably ensured. Also, since the robot arm main body 200 is immediately stopped, it is possible to minimize the damage to the hardware of the robot arm main body 200 caused by contact between the robot arm main body 200 and the operator, for example, by safety equipment worn by the operator.
[0081] (Fifth Embodiment) Next, the fifth embodiment of the present invention will be described in detail. The above-described various embodiments have described the stop operation of the robot arm main body 200 in an actual machine. However, the present invention can also be implemented in an information processing apparatus (simulation apparatus) that performs simulation of a robot arm. This will be described in detail below.
[0082] FIG. 9 shows a schematic diagram of an information processing apparatus 900 that performs simulation of the operation of the robot arm main body 200 in the present embodiment. The information processing apparatus 900 is a desktop personal computer including an OS (Operating System) 901, a display 902, a keyboard 903, and a mouse 904.
[0083] OS901 stores CAD data of the robot arm main body 200 and the robot hand main body 300, and a trajectory generation engine equivalent to the control device 400 of the actual machine. A simulation screen 905 of the robot arm main body 200 is displayed on a display 902 serving as a display unit. Also, a normal operation execution button 906, a stop button 907, a stop button 908, a stop button 909, and a stop button 910 are displayed.
[0084] Here, the stop button 907 is a button for executing a simulation of the stop process in the above-described first embodiment. The stop button 908 is a button for executing a simulation of the stop process in the above-described second embodiment. The stop button 909 is a button for executing a simulation of the third embodiment described above. The stop button 910 is a button for executing a simulation of the fourth embodiment described above.
[0085] An operator can input predetermined information (such as trajectory data of a normal trajectory) using the keyboard 903 and / or the mouse 904, and by clicking the normal operation execution button 906, execute an operation simulation of the robot arm main body 200. Click any one of the stop button 907, the stop button 908, the stop button 909, and the stop button 910 during the reproduction of the normal operation. When clicked, as if a stop command was output at the clicked timing, a stop process for obtaining a stop axis target value by applying the above-described embodiment is executed from there. As a result, it is possible to confirm by simulation a plurality of types of stop operations that reduce the risk of damage to the hardware of the robot arm main body 200 under various conditions.
[0086] (Other Embodiments) The processing procedures of the above-described embodiments are specifically executed by a control device or an information processing device. Therefore, a recording medium storing a software program capable of executing the functions described above is supplied to a device that integrates each control device, and the CPU that performs integrated processing reads and executes the program stored in the recording medium, thereby achieving the configuration. In this case, the program itself read from the recording medium realizes the functions of the above-described embodiments, and the program itself and the recording medium storing the program constitute the present invention.
[0087] Also, in each embodiment, a computer-readable recording medium is each ROM, each RAM, or each flash ROM, and the case where a control program is stored in the ROM, RAM, or flash ROM has been described. However, the present invention is not limited to such a form. The control program for implementing the present invention may be recorded on any recording medium as long as it is a computer-readable recording medium. For example, as the recording medium for supplying the control program, an HDD, an external storage device, a recording disk, etc. may be used.
[0088] Also, in the above-described various embodiments, the case where the robot arm main body 200 uses a multi-joint robot arm having a plurality of joints has been described, but the number of joints is not limited thereto. As the form of the robot arm, a vertical multi-axis configuration has been shown, but the same configuration as above can be implemented in different forms of joints such as a parallel link type.
[0089] Also, in the above-described embodiment, based on the speed and acceleration of each joint at the time step when a stop command is received, the physical constraints of the joints to be prioritized are determined. However, depending on the situation such as jerk, torque, load, etc., any physical quantity can be used for implementation.
[0090] In addition, in the above-described embodiment, the speed of the joint is obtained directly by a sensor, but the present invention is not limited to this. For example, a sensor may be provided on the robot hand main body 300, and based on the physical quantity generated in the robot hand main body 300, the physical quantity generated in each joint may be obtained and implemented.
[0091] In addition, the various embodiments described above are applicable to a machine that can automatically perform operations of expansion / contraction, flexion / extension, vertical movement, horizontal movement, or turning, or a combined operation thereof, based on information in a storage device provided in the control device.
[0092] Note that the present invention is not limited to the above-described embodiments, and many modifications are possible within the technical idea of the present invention. In addition, the effects described in the embodiments of the present invention are merely an enumeration of the most suitable effects resulting from the present invention, and the effects of the present invention are not limited to those described in the embodiments of the present invention.
Explanation of Reference Numerals
[0093] 200 Robot arm main body 201, 202, 203, 204, 205 Links 210 Base 300 Robot hand main body 301, 302 Fingers 400 Control device 500 Mounting table 600 Workpiece 700 Signal input device 800 External input device 900 Information processing device 901 OS 902 Display 903 Keyboard 904 Mouse 905 Simulation screen 906 Normal operation execution button 907, 908, 909, 910 Operation stop buttons 1000 Robot system J1, J2, J3, J4, J5 Joints
Claims
1. A control method for stopping a robot having a first joint and a second joint, comprising: a first physical constraint to be satisfied in a first physical quantity generated at the first joint when the stop is to be executed, and a second physical constraint to be satisfied in a second physical quantity generated at the second joint when the stop is to be executed, are set; when it is not possible to obtain the control value that satisfies the first physical constraint and the second physical constraint when obtaining the control value for executing the stop, obtain the control value so as to preferentially satisfy either the first physical constraint or the second physical constraint; wherein the first physical quantity or the second physical quantity includes any one of speed, acceleration, jerk, torque, and load; A control method characterized by the above.
2. In the control method according to Claim 1, the robot is capable of stopping without satisfying the first physical constraint or the second physical constraint; A control method characterized by the above.
3. In the control method according to Claim 1 or 2, either the first physical constraint or the second physical constraint is prioritized based on the first physical quantity at a first timing when a command to execute the stop of the robot is obtained, and the second physical quantity at the first timing; A control method characterized by the above.
4. In the control method according to any one of Claims 1 to 3, obtain the control value so as to preferentially satisfy the physical constraint in the joint where the physical quantity with the larger value occurs in the first physical quantity and the second physical quantity; A control method characterized by the above.
5. In the control method according to Claim 3, obtain the control value so as to preferentially satisfy the physical constraint in the joint where the physical quantity with the largest value occurs in the first physical quantity and the second physical quantity before the first timing; A control method characterized by the above.
6. In the control method according to Claim 3, obtain the control value so as to preferentially satisfy the physical constraint in the joint where the physical quantity that has reached a predetermined threshold the most times occurs in the first physical quantity and the second physical quantity before the first timing; A control method characterized by the above.
7. In the control method according to Claim 3, Based on the first physical quantity that will occur at the first joint at a second timing after the first timing and the second physical quantity that will occur at the second joint at the second timing, prioritize either the first physical constraint or the second physical constraint. A control method characterized by this.
8. In the control method according to claim 7, Obtain the control value so as to preferentially satisfy the physical constraint in the joint where the physical quantity with a smaller excess amount with respect to a predetermined threshold value occurs among the first physical quantity and the second physical quantity at the second timing. A control method characterized by this.
9. In the control method according to claim 7 or 8, The second timing is the timing one time step after the first timing. A control method characterized by this.
10. In the control method according to claim 9, The time step is set by the control period of the robot. A control method characterized by this.
11. In the control method according to any one of claims 1 to 10, The control value is A first target value that can satisfy the first physical constraint and the second physical constraint and execute the stop, An intermediate variable obtained based on the first target value, Obtained based on a second target value obtained based on the intermediate variable. A control method characterized by this.
12. In the control method according to claim 11, The first target value and the second target value are obtained as candidates for the control value. A control method characterized by this.
13. In the control method according to claim 11 or 12, When using the first target value or the second target value as the control value, determine whether the first physical constraint or the second physical constraint is satisfied. A control method characterized by this.
14. In the control method according to any one of claims 11 to 13, The intermediate variable is obtained based on the first target value and trajectory data for operating the robot. A control method characterized by this.
15. In the control method according to claim 14, The intermediate variable is obtained by linearly interpolating the first target value and the trajectory data. A control method characterized by this.
16. In the control method according to any one of claims 11 to 15, Use the first target value as the control value and execute the stop. A control method characterized by this.
17. In the control method according to any one of claims 1 to 16, acquiring the first physical quantity or the second physical quantity based on a third physical quantity applied to the end effector of the robot. A control method characterized by this.
18. In the control method according to any one of claims 1 to 17, when acquiring the control value, switching between a case where either the first physical constraint or the second physical constraint is preferentially satisfied and a case where both the first physical constraint and the second physical constraint are satisfied. A control method characterized by this.
19. In the control method according to any one of claims 1 to 18, when the stop of the robot is related to an operator, acquiring the control value for stopping the robot so as to maintain the current position of the robot at a first timing when a command to execute the stop of the robot is obtained, regardless of whether the first physical constraint and / or the second physical constraint is satisfied, and executing the stop of the robot. A control method characterized by this.
20. A method for manufacturing an article, characterized by controlling the robot using the control method according to any one of claims 1 to 19 to manufacture the article.
21. A control device for controlling a robot having a first joint and a second joint, wherein a first physical constraint to be satisfied in a first physical quantity generated at the first joint when executing the stop of the robot and a second physical constraint to be satisfied in a second physical quantity generated at the second joint when executing the stop of the robot are set, when it is not possible to obtain the control value that satisfies both the first physical constraint and the second physical constraint when obtaining the control value for executing the stop, obtaining the control value so as to preferentially satisfy either the first physical constraint or the second physical constraint, wherein the first physical quantity or the second physical quantity includes any one of speed, acceleration, jerk, torque, and load. A control device characterized by this.
22. A robot system including the control device according to claim 21 and the robot.
23. An information processing method for performing a simulation related to the stop of a robot having a first joint and a second joint, wherein a first physical constraint to be satisfied in a first physical quantity generated at the first joint when executing the stop and a second physical constraint to be satisfied in a second physical quantity generated at the second joint when executing the stop are set. When it is not possible to obtain the control value that satisfies the first physical constraint and the second physical constraint when obtaining the control value for executing the stop, obtain the control value so as to preferentially satisfy either the first physical constraint or the second physical constraint. The first physical quantity or the second physical quantity includes any one of speed, acceleration, jerk, torque, and load. Execute the simulation of the robot based on the control value. An information processing method characterized by the above.
24. In the information processing method according to claim 23, There are multiple types of the simulation. An information processing method characterized by displaying buttons for executing multiple types of the simulation on a display unit.
25. An information processing apparatus for executing a simulation related to the stop of a robot having a first joint and a second joint, A first physical constraint to be satisfied in a first physical quantity generated at the first joint when executing the stop, and a second physical constraint to be satisfied in a second physical quantity generated at the second joint when executing the stop are set. When it is not possible to obtain the control value that satisfies the first physical constraint and the second physical constraint when obtaining the control value for executing the stop, obtain the control value so as to preferentially satisfy either the first physical constraint or the second physical constraint. The first physical quantity or the second physical quantity includes any one of speed, acceleration, jerk, torque, and load. Execute the simulation of the robot based on the control value. An information processing apparatus characterized by the above.
26. In the information processing apparatus according to claim 25, There are multiple types of the simulation. Display buttons for executing multiple types of the simulation on a display unit. An information processing apparatus characterized by the above.
27. A control method according to any one of claims 1 to 19, or a program capable of executing the information processing method according to claim 23 or 24.
28. A computer-readable recording medium storing the program according to claim 27.
Citation Information
Patent Citations
Simulation device
JP2004148428A
Robot control method and control device
JP2009090462A
Articulated robot, articulation harmonization control device and method
JP2013215827A