Robot control device
Patent Information
- Application Number
- PCT/JP2023/034531
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-22
- Publication Date
- 2025-03-27
Smart Images

Figure JP2023034531_27032025_PF_FP_ABST
Abstract
Description
Robot control device
[0001] The present disclosure relates to a robot control device.
[0002] During autonomous operation of a robotic device equipped with a robot and a work tool, the robot may come into contact with surrounding equipment, a worker, or the like. Robot control devices that control the robot are known to detect external forces acting on the robot and stop the robotic device or perform avoidance actions to avoid contact. In particular, robotic devices equipped with general industrial robots are configured to stop the robot to ensure safety when the external force acting on the robot exceeds an upper limit.
[0003] In recent years, robotic systems have become known that include collaborative robots in which a worker and the robot work together, and these robotic systems are also known to stop the robot when an external force greater than a predetermined upper limit is applied to the robot.
[0004] Japanese Patent Publication No. 2021-37578 Japanese Patent No. 7260728 Japanese Patent Publication No. 2017-177293 International Publication No. WO2016 / 103308A1
[0005] A robot device that detects an external force acting on a robot and stops the robot includes a sensor for detecting the external force. A predetermined upper limit for the external force for stopping the robot is also set. For example, the robot control device can stop the robot by halting execution of the operating program when the external force exceeds the predetermined upper limit.
[0006] However, in addition to external forces caused by contact with surrounding equipment or workers, external forces acting on a robot include external forces generated when the robot device is working. For example, when inserting a workpiece into a hole formed in another workpiece, the other workpiece must be pushed into the hole in the first workpiece. When a robot pushes another workpiece against a workpiece, the robot receives a reaction force from the other workpiece via the work tool. The robot control device detects this reaction force as an external force. This has led to cases where the robot stops even though a worker or other person is not making contact.
[0007] One aspect of the present disclosure is a robot control device including a setting unit that sets a speed upper limit that is an upper limit for the robot's speed and an external force upper limit that is an upper limit for the external force applied to the robot, and a movement restriction unit that includes a speed calculation unit that calculates the robot's speed and an external force calculation unit that calculates the external force applied to the robot. The movement restriction unit performs control to restrict the movement of the robot when at least one of the robot's speed exceeding the speed upper limit and the external force upper limit exceeding the external force upper limit is exceeded. The setting unit sets one of the speed upper limit and the external force upper limit based on the correlation between the speed upper limit and the external force upper limit. The correlation is determined so that, in at least a partial range of one of the upper limits, the external force upper limit increases as the speed upper limit decreases.
[0008] 1 is a schematic diagram of a first robot device according to an embodiment. FIG. 2 is a block diagram of the first robot device. FIG. 3 is an enlarged view of the first robot device when fitting a first workpiece into a hole in a second workpiece. FIG. 4 is a first graph illustrating control for determining an external force upper limit value from an upper speed limit value. FIG. 5 is a flowchart of control by a robot control device according to an embodiment. FIG. 6 is a third graph illustrating control for determining an external force upper limit value from an upper speed limit value. FIG. 7 is a fourth graph illustrating control for determining an external force upper limit value from an upper speed limit value. FIG. 8 is a fifth graph illustrating control for determining a speed upper limit value from an external force upper limit value. FIG. 9 is a graph illustrating a warning notification range according to an embodiment. FIG. 10 is a block diagram of a motion restriction unit including a duplicated speed calculation unit and external force calculation unit. FIG. 11 is an enlarged side view of a work tool and workpiece of a second robot device according to an embodiment. FIG. 12 is another enlarged side view of the work tool and workpiece of the second robot device. FIG. 13 is an enlarged side view of the work tool and workpiece of a third robot device according to an embodiment. FIG. 14 is another enlarged side view of the work tool and workpiece of the third robot device. 10A and 10B are enlarged side views of a work tool and a workpiece of a fourth robot device according to an embodiment, and a fifth robot device according to an embodiment.
[0009] A robot control device and a robot device including the robot control device according to an embodiment will be described with reference to Figures 1 to 17. The robot control device according to this embodiment has a function of detecting an external force acting on the robot and limiting the movement of the robot.
[0010] 1 is a schematic diagram of a first robot device according to the present embodiment. The first robot device 5 includes a hand 2 as a work tool and a robot 1 that moves the hand 2. The robot 1 according to the present embodiment is an articulated robot that includes multiple joints 18. The robot 1 includes multiple components that can rotate around drive shafts.
[0011] The robot 1 includes a base 14 fixed to an installation surface and a swivel base 13 that rotates relative to the base 14. The robot 1 also includes an upper arm 11 and a lower arm 12. The lower arm 12 is rotatably supported by the swivel base 13. The upper arm 11 is rotatably supported by the lower arm 12. The robot 1 also includes a wrist 15 that is rotatably supported by the upper arm 11. A hand 2 is fixed to a flange 16 of the wrist 15. The upper arm 11 rotates around a drive axis that is parallel to the direction in which the upper arm 11 extends. The flange 16 rotates around a drive axis that is perpendicular to the surface of the flange 16 to which the hand 2 is fixed.
[0012] The robot in this embodiment has six drive axes, but is not limited to this configuration. A robot that changes its position and posture using any mechanism can be used. In this example, the work tool is a hand 2 with two claws, but is not limited to this configuration. Any device can be used as the work tool depending on the work to be performed by the robot device.
[0013] A reference coordinate system 88 is set in the robot device of this embodiment. In the example shown in Fig. 1, the origin of the reference coordinate system 88 is located on the swivel base 13 of the robot 1. The reference coordinate system 88 is also called a world coordinate system. The reference coordinate system 88 is a coordinate system in which the position of the origin is fixed and the orientation of the coordinate axes is also fixed.
[0014] A tool coordinate system 89 is set in the robot device 5, with its origin set at an arbitrary position on the work tool. In this embodiment, the origin of the tool coordinate system 89 is set at the tool tip point, which is the midpoint between the tips of the two claws of the hand 2. The tool coordinate system 89 is a coordinate system whose position and orientation change along with the work tool. The position of the robot 1 corresponds to, for example, the position of the origin of the tool coordinate system 89. The orientation of the robot 1 corresponds to the orientation of the tool coordinate system 89 with respect to the reference coordinate system 88.
[0015] A block diagram of the robot device according to this embodiment is shown in Figure 2. Referring to Figures 1 and 2, the robot 1 includes a robot drive device that changes the position and posture of the robot 1. The robot drive device includes a robot drive motor 22 that drives components such as the arm and wrist. In this embodiment, a robot drive motor 22 is provided for each drive shaft.
[0016] The robot device 5 includes a hand driving device that drives the hand 2. The hand driving device of this embodiment includes a hand driving motor 21 that drives the claws of the hand 2. The claws of the hand 2 open and close when driven by the hand driving motor 21. The hand may be configured to be driven by air pressure or the like.
[0017] The robot device 5 includes a control device 4 as a robot control device that controls the robot 1 and the hand 2. The control device 4 includes a control device main body 40 and a teaching operation panel 37 that allows an operator to operate the control device main body 40. The control device main body 40 includes an arithmetic processing device (computer) having a CPU (Central Processing Unit) as a processor. The arithmetic processing device has a RAM (Random Access Memory), a ROM (Read Only Memory), etc. that are connected to the CPU via a bus.
[0018] The teaching operation panel 37 is connected to the control device main body 40 via a communication device. The teaching operation panel 37 includes an input unit 38 for inputting information about the robot 1 and the hand 2. The input unit 38 is composed of input members such as a keyboard and a dial. The teaching operation panel 37 includes a display unit 39 for displaying information about the robot 1 and the hand 2. The display unit 39 can be composed of any display panel such as a liquid crystal display panel or an organic EL (Electro Luminescence) display panel.
[0019] An operation program 46 created in advance for operating the robot 1 and the hand 2 is input to the control device 4. Alternatively, an operator can set teaching points for the robot 1 by operating the teaching operation panel 37 to drive the robot 1. The control device 4 can generate the operation program 46 for the robot 1 and the hand 2 based on the teaching points. The operation program 46 is stored in the storage unit 42.
[0020] The control device main body 40 includes a motion control unit 43 that controls the motion of the robot 1 and the hand 2. The motion control unit 43 sends motion commands to the robot drive unit 45 for driving the robot 1 based on a motion program 46. The robot drive unit 45 includes an electrical circuit that drives the robot drive motor 22. The robot drive unit 45 supplies electricity to the robot drive motor 22 based on the motion commands. The motion control unit 43 also sends motion commands to the hand drive unit 44 for driving the hand 2 based on the motion program 46. The hand drive unit 44 includes an electrical circuit that drives the hand drive motor 21. The hand drive unit 44 supplies electricity to the hand drive motor 21 based on the motion commands. The control device may include a hand control device that includes a hand drive unit and a motion control unit that sends motion commands to the hand drive unit, separate from the control device main body. In this case, the hand control device can be configured using an arithmetic processing device, just like the control device main body.
[0021] The operation control unit 43 corresponds to a processor that operates in accordance with the operation program 46. The operation control unit 43 is configured to be able to read information stored in the storage unit 42. The processor reads the operation program 46 and performs the control defined in the operation program 46, thereby functioning as the operation control unit 43.
[0022] The control device main body 40 includes a storage unit 42 that stores information related to the control of the robot 1 and the hand 2. The storage unit 42 can be configured with a non-transitory storage medium capable of storing information. For example, the storage unit 42 can be configured with a storage medium such as a volatile memory, a non-volatile memory, a magnetic storage medium, or an optical storage medium.
[0023] The robot 1 includes a state detector for detecting the position and posture of the robot 1. The state detector in this embodiment includes a position detector 19 attached to the robot drive motor 22 of each drive shaft to detect the rotational position. The position detector 19 can be configured with an encoder that detects the rotation angle of the output shaft of the robot drive motor 22. In this embodiment, the position and posture of the robot 1 are detected based on the outputs of the multiple position detectors 19.
[0024] The robot 1 includes a torque sensor 25 as a sensor for detecting an external force acting on the robot 1. A plurality of torque sensors 25 are arranged on the drive shafts of a plurality of joints 18 of the robot 1. Each torque sensor 25 detects the torque around the drive shaft of the respective component. In this embodiment, a torque sensor 25 is arranged on all six drive shafts.
[0025] In this embodiment, a range of speeds at which the robot can be driven and a range of external forces that are permitted to be applied to the robot while it is moving are defined. The lower speed limit, which is the lower limit of the robot's speed, is zero, and the upper speed limit, which is the upper limit of the robot's speed, is defined as described below. The lower external force limit, which is the lower limit of the external force, is zero, and the upper external force limit, which is the upper limit of the external force, is defined as described below. These upper external force limit and upper speed limit values are written in an upper limit file 47 and stored in the memory unit 42.
[0026] The control device main body 40 includes a movement limiting unit 51 that limits the movement of the robot 1 in accordance with the speed of the robot 1 and the external force acting on the robot 1. The movement limiting unit 51 limits the movement of the robot 1 in at least one of the cases where the speed of the robot 1 exceeds an upper speed limit value and where the external force acting on the robot 1 exceeds an upper external force limit value. In this embodiment, the movement limiting unit 51 limits the movement of the robot 1 by stopping it.
[0027] The control for limiting the movement of the robot 1 is not limited to this form. Any control can be implemented so as to reduce the force with which the robot 1 comes into contact with a worker or objects around the robot 1. For example, control can be implemented to move components of the robot in the direction of an external force acting on the robot, or control can be implemented to slow down the movement speed of the robot.
[0028] The movement restriction unit 51 includes a speed calculation unit 52 that calculates the robot speed, which is the moving speed of the robot position, based on the output of the position detector 19. The movement restriction unit 51 includes an external force calculation unit 53 that calculates the external force acting on the robot 1 based on the output of the torque sensor 25.
[0029] The external force calculation unit 53 calculates the total force acting on the robot 1 from the outputs of the multiple torque sensors 25. Next, the external force calculation unit 53 calculates an internal force corresponding to the mass of the components of the robot 1 based on the position and posture of the robot calculated from the output of the position detector 19. In other words, the external force calculation unit 53 calculates the moment of inertia of the components of the robot 1. Next, the external force calculation unit 53 calculates the external force acting on the robot 1 by subtracting the internal force acting on the robot 1 from the total force acting on the robot.
[0030] Any method can be used to calculate the external force acting on the robot. For example, a force sensor can be attached to the base of the robot to detect the overall force acting on the robot. Alternatively, a pressure-sensitive sensor can be placed on the surface of a component such as the robot's arm.
[0031] The external forces acting on the robot 1 in this embodiment include forces acting on the robot 1 when a worker or a surrounding object comes into contact with the robot 1, and forces acting on the work tool when the robot device 5 performs work. For example, the external forces acting on the robot 1 in this embodiment include a reaction force from a workpiece.
[0032] The motion restriction unit 51 includes a determination unit 54 that determines whether the speed of the robot 1 calculated by the speed calculation unit 52 exceeds an upper speed limit. The determination unit 54 also determines whether the external force calculated by the external force calculation unit 53 exceeds an upper external force limit.
[0033] The movement restriction unit 51 includes a movement command generation unit 55 that generates a movement command that restricts the movement of the robot 1 based on the determination by the determination unit 54. When the determination unit 54 determines that at least one of the robot's speed and external force exceeds an upper limit, the movement restriction unit 51 restricts the movement of the robot 1. In this embodiment, the movement command generation unit 55 generates a movement command that stops execution of the movement program 46 and transmits it to the movement control unit 43. The movement control unit 43 stops the robot 1 and the hand 2 based on the received movement command.
[0034] The control device 4 includes a setting unit 58 that sets an upper speed limit value and an upper external force limit value of the robot before the robot device 5 performs an actual task. The setting unit 58 includes an upper speed limit setting unit 59 that sets an upper speed limit value of the robot, and an upper external force limit setting unit 60 that sets an upper external force limit value.
[0035] Each of the above-described units, the motion restriction unit 51, the speed calculation unit 52, the external force calculation unit 53, the determination unit 54, and the motion command generation unit 55, corresponds to a processor that operates in accordance with the motion program 46. Also, each of the units, the setting unit 58, the upper speed limit setting unit 59, and the upper external force limit setting unit 60, corresponds to a processor that operates in accordance with the motion program 46. The processor functions as each of the units by reading the motion program 46 and performing the control defined in the motion program 46.
[0036] 3 shows an enlarged view of the first workpiece, the second workpiece, and the hand when the first robot device fits the first workpiece into the hole of the second workpiece. With reference to FIGS. 1 and 3, the first workpiece 71 and the second workpiece 72 in this embodiment have a rectangular parallelepiped shape. The second workpiece 72 is fixed to a work table 80. The second workpiece 72 has a hole 72a formed in its surface. The hole 72a has a rectangular parallelepiped shape. The hole 72a has a shape corresponding to the shape of the first workpiece 71 so that the first workpiece 71 fits into the hole 72a.
[0037] In this embodiment, the first robot device 5 performs the task of fitting the first workpiece 71 into the hole 72a of the second workpiece 72. The control device 4 controls the position and attitude of the robot so that the first workpiece 71 is placed directly above the hole 72a of the second workpiece 72. The control device 4 controls the position and attitude of the robot so that the first workpiece 71 moves toward the hole 72a of the second workpiece 72, as shown by arrow 91. Furthermore, the first workpiece 71 is inserted into the hole 72a of the second workpiece 72 by pressing the first workpiece 71 in the direction shown by arrow 91.
[0038] The robot 1 moves the first workpiece 71 along the extension direction of the hole 72a. The robot 1 presses the first workpiece 71 with a pressing force in the direction indicated by arrow 92. The outer peripheral surface of the first workpiece 71 slides against the inner peripheral surface of the hole 72a of the second workpiece 72. The robot 1 receives a reaction force, indicated by arrow 93, in the opposite direction to the pressing force indicated by arrow 92. The external force calculation unit 53 calculates this reaction force as an external force acting on the robot 1.
[0039] In a comparative example, a constant upper limit value for external force can be adopted regardless of the robot's speed. For example, a constant upper limit value for external force is set in a range from zero to the maximum speed at which the robot can be driven. In this case, the upper limit value for external force is set small so as to correspond to the maximum speed. For this reason, if the reaction force received from the second workpiece 72 via the first workpiece 71 is large, the external force applied to the robot 1 may exceed the upper limit value for external force, causing the robot 1 to stop.
[0040] However, in the first robot device 5 of this embodiment, the speed at which the workpiece 71 moves is slow when fitting the first workpiece 71. When the robot moves the workpiece at a slow speed, even if the robot comes into contact with another object or a worker, the force acting from the robot per unit time is often small. In other words, because the amount of movement of the robot per unit time is small, the force acting from the robot is also small.
[0041] Furthermore, when the robot moves at a low speed, the robot does not substantially exert an impact force on other objects or workers. Furthermore, when the robot moves at a low speed, it is easy to limit the robot's movement. For example, the robot's movement can be stopped in a short time. Furthermore, the amount of movement of the robot's components due to inertia after the robot control device issues a stop command is small.
[0042] In the robot control device of this embodiment, a speed upper limit value and an external force upper limit value are set in accordance with the work to be performed by the robot device. The setting unit 58 sets one of the speed upper limit value and the external force upper limit value based on the correlation between the other speed upper limit value and the external force upper limit value. One of the upper limit values can be set in advance by the worker. The correlation between one upper limit value and the other upper limit value can be set in advance.
[0043] The correlation is also determined such that, in at least a portion of the range of one of the upper limits, the smaller the upper speed limit, the larger the upper external force limit. In this way, setting unit 58 sets the upper speed limit and the upper external force limit so that, in at least a portion of the range in which the robot can move, the greater the external force that the robot is allowed to receive.
[0044] 4 shows a first graph 81 illustrating the relationship between the upper speed limit value and the upper external force limit value in this embodiment. Fig. 4 shows a first graph 81 when setting unit 58 sets upper external force limit value Fes based on a predetermined upper speed limit value Vs.
[0045] Regarding the correlation between the upper speed limit value and the upper external force limit value shown in the first graph 81, for example, a function (mathematical formula) showing the relationship between the upper speed limit value and the upper external force limit value can be generated. For example, a function that calculates the upper external force limit value using the upper speed limit value as a variable can be stored in advance in the storage unit 42. The worker can determine the upper speed limit value Vs as one of the upper limits depending on the work to be performed by the robot device 5. For example, with the first robot device 5, the worker can determine the upper speed limit value at which the work can be performed safely when inserting the first workpiece 71 into the hole 72a of the second workpiece 72.
[0046] The operator inputs the upper speed limit value by operating the input unit 38 of the teaching pendant 37. An upper speed limit setting unit 59 of the setting unit 58 sets the value input by the operator as the upper speed limit value Vs. An upper external force limit setting unit 60 of the setting unit 58 sets an upper external force limit value Fes as the other upper limit value, based on the correlation between the upper speed limit value Vs and the first graph 81.
[0047] In the correlation shown in the first graph 81, the setting range of the upper speed limit is greater than or equal to 0 and less than or equal to the maximum value Vsmax. The maximum value Vsmax can be set, for example, to the maximum speed at which the robot can be driven. The setting range of the upper external force limit is greater than or equal to the reference value Feb and less than or equal to the maximum value Fesmax. In the region where the upper speed limit is greater than the boundary value Vss, the external force limit is a constant reference value Feb regardless of the magnitude of the upper speed limit. In the region where the upper speed limit is less than or equal to the boundary value Vss, there is a correlation in which the smaller the upper speed limit, the greater the external force limit. The external force limit changes in a linear function with respect to the upper speed limit. In this way, in the first graph 81, the correlation between the upper speed limit and the external force limit is defined such that, in a certain region of the upper speed limit, the smaller the upper speed limit, the greater the external force limit.
[0048] 5 shows a second graph when the upper speed limit value is set based on the upper external force limit value. Next, an example will be described in which the worker determines the upper external force limit value Fes as one upper limit value, and the setting unit 58 sets the upper speed limit value Vs as the other upper limit value.
[0049] In the second graph 82, the setting range of the external force upper limit value is equal to or greater than 0 and equal to or less than the maximum value Fesmax. The setting range of the speed upper limit value includes a range equal to or greater than 0 and equal to or less than the boundary value Vss, and the maximum value Vsmax. The correlation in the second graph 82 shows a correlation in which the smaller the speed upper limit value, the larger the external force upper limit value, in the range equal to or greater than the reference value Feb for the external force upper limit value and equal to or less than the maximum value Femax.
[0050] The worker can determine the external force upper limit value Fes in advance. For example, the worker can determine the external force upper limit value Fes based on the pressure force from the robot that is permissible for safety reasons when the robot 1 comes into contact with an object around the robot 1 or with the worker. The worker can also determine the external force upper limit value Fes by taking into account the external force generated by the work performed by the robot device 5. Furthermore, the worker can determine the external force upper limit value Fes by taking into account the size, shape, and material of the workpiece, etc.
[0051] The operator operates the input unit 38 of the teaching pendant 37 to input the external force upper limit value Fes. The external force upper limit setting unit 60 of the setting unit 58 sets the external force upper limit value Fes in accordance with the operator's input. The speed upper limit setting unit 59 of the setting unit 58 sets the speed upper limit value Vs corresponding to the external force upper limit value Fes, based on the correlation between the external force upper limit value Fes and the second graph 82. If the operator inputs an external force upper limit value less than the reference value Feb, the speed upper limit value is set to the maximum value Vsmax. In the region equal to or greater than the reference value Feb, the setting unit 58 can set the speed upper limit value such that the external force upper limit value increases as the speed upper limit value decreases.
[0052] In this way, the operator can specify either the external force upper limit value or the speed upper limit value. The setting unit 58 can then set one of the upper limits based on the correlation between the external force upper limit value and the speed upper limit value. The storage unit 42 can then store the speed upper limit value Vs and the external force upper limit value Fes set by the setting unit 58 in the upper limit value file 47.
[0053] In the technology of the comparative example, a constant external force upper limit can be set for the entire range of the speed upper limit. For example, a constant reference value Feb can be set for the entire range of the speed upper limit from 0 to the maximum value Vsmax. In consideration of safety, the reference value Feb in graphs 81 and 82 was set as the external force upper limit corresponding to the maximum speed upper limit Vsmax. In this way, the external force upper limit was set to be smaller as the robot speed increased. However, there were cases where the external force applied to the work tool during the robot device's work was too large, causing the robot device to stop.
[0054] In contrast, in this embodiment, when limiting the robot's speed to a low value in at least a portion of the region in which the robot operates, the external force upper limit value is set high so that a large external force can be applied. Alternatively, the external force upper limit value is set high so that a large external force can be applied, and the speed upper limit value is set low so that it corresponds to the external force upper limit value. In this way, the sensitivity for limiting the robot's operation can be reduced. In the first graph 81 and the second graph 82, the setting unit 58 sets the upper limit value so that the external force upper limit value increases as the speed upper limit value decreases in the region below the boundary value Vss where the robot's speed upper limit value decreases.
[0055] Therefore, it is possible to increase the upper limit of external force at which the robot's operation is restricted while ensuring safety when the robot comes into contact with an object around the robot or a worker. Even if the external force applied to the robot due to the robot's operation is large, the number of times the robot stops can be reduced. In the first robot device 5, even if the pressing force for pushing the first workpiece 71 into the hole 72 a of the second workpiece 72 is large, the number of times the operation of the robot device 5 is restricted can be reduced.
[0056] 6 is a flowchart showing the control of the robot device 5 according to this embodiment. Steps 101 and 102 are performed before the robot device 5 starts its actual work. Steps 104 and onward are performed after the robot device 5 starts its actual work.
[0057] In step 101, the operator determines one of the upper speed limit and the upper external force limit. The operator inputs one of the upper limits to the control device main body 40 via the input unit 38 of the teaching pendant 37. The setting unit 58 sets the other upper limit to the input value. In this embodiment, the operator sets one of the upper limits by manually inputting it, but this is not limiting. A file containing data on one of the upper limits may be created in advance and stored in the storage unit. In this case, the setting unit can set one of the upper limits by reading the file containing data on the one of the upper limits.
[0058] In step 102, the setting unit 58 sets one upper limit value based on the correlation between the other upper limit value and the predetermined speed upper limit value and external force upper limit value. The speed upper limit value and external force upper limit value are set, and the respective upper limit values are recorded in the upper limit value file 47.
[0059] Next, in step 103, the operation control unit 43 drives the robot device 5 to start actual work based on the operation program 46. In step 104, while the robot device 5 is performing work, the speed calculation unit 52 of the operation restriction unit 51 calculates the speed of the robot based on the output of the position detector 19. The external force calculation unit 53 calculates the external force acting on the robot 1 based on the position and orientation of the robot calculated from the output of the position detector 19, the output of the torque sensor 25, and the masses of the components of the robot. For example, the external force calculation unit 53 calculates the external force acting on the robot 1 by subtracting the internal force from the total force acting on the robot 1.
[0060] Next, in step 105, the determination unit 54 determines whether the speed of the robot is equal to or less than the upper speed limit. The determination unit 54 also determines whether the external force acting on the robot is equal to or less than the upper external force limit. If both the speed and external force variables of the robot are equal to or less than their respective upper limits, control proceeds to step 106.
[0061] In step 106, it is determined whether the work has been completed. The determination unit 54 determines whether the execution of the operation program 46 for performing the work has been completed and the robot has stopped. If the work of the robot device 5 has been completed, this control ends. If the work of the robot device has not been completed in step 106, control returns to step 104. Then, the control from step 104 to step 106 is repeated.
[0062] In step 105, if the determination unit 54 determines that at least one of the robot speed and the external force exceeds the upper limit, control proceeds to step 107. In step 107, the movement restriction unit 51 performs control to restrict the movement of the robot device 5. Here, the movement command generation unit 55 halts execution of the movement program 46 and sends a command to the movement control unit 43 to stop the robot 1. The movement control unit 43 stops the robot device 5. Note that, if the determination unit determines that the robot speed exceeds the upper speed limit, the movement command generation unit may perform control to reduce the robot speed to the upper speed limit.
[0063] In this way, the setting unit can set the external force upper limit value according to the robot's speed upper limit value when the robot comes into contact with an object around the robot or a worker. Because the worker sets the speed upper limit value first, there is no need to slow the robot's speed more than necessary. Alternatively, the setting unit can set the speed upper limit value according to the external force upper limit value. Because the worker sets the external force upper limit value first, the robot can perform work with a large force.
[0064] The robot control device of this embodiment can prevent the robot from stopping despite ensuring the safety of the worker, etc. As a result, the robot control device of this embodiment can drive the robot device efficiently.
[0065] In the above embodiment, the correlation between the two upper limit values is defined such that, in a certain range of one upper limit value, the external force upper limit value increases as the speed upper limit value decreases, but this is not limiting. The correlation between the speed upper limit value and the external force upper limit value may be defined such that, in the entire range of one upper limit value, the external force upper limit value increases as the speed upper limit value decreases.
[0066] In this embodiment, the relationship between the external force upper limit value and the speed upper limit value shown in the first graph 81 and the second graph 82 is stored in the storage unit 42 as a function (mathematical formula). The setting unit 58 calculates one upper limit value based on the other upper limit value and the function. By storing the relationship between the external force upper limit value and the speed upper limit value as a function, it is possible to calculate the other upper limit value as a continuous value for any input of one upper limit value. This makes it possible to set an optimal other upper limit value. Note that the correlation between the external force upper limit value and the speed upper limit value can be stored in the storage unit using any method. For example, the external force upper limit value and the speed upper limit value may be calculated by interpolating discrete values at predetermined intervals.
[0067] In this embodiment, a maximum value is set in advance for the other upper limit value. In the example shown in Fig. 4, a maximum value Fsmax is set in advance for the external force upper limit value, which is the other upper limit value. In the example shown in Fig. 5, a maximum value Vsmax is set in advance for the speed upper limit value, which is the other upper limit value. These maximum values are stored in the storage unit 42. Then, the setting unit 58 sets the other upper limit value so that it does not exceed the maximum value.
[0068] In this way, by setting a maximum value for the other upper limit, it is possible to prevent the other upper limit from becoming too large. For example, when the correlation between the external force upper limit and the speed upper limit is defined by a function, it is possible to prevent the other upper limit from becoming infinite. Note that the maximum value for the other upper limit does not have to be defined. For example, if there is no risk that the operator will enter an upper limit that will result in the other upper limit becoming too large, it is possible to not define a maximum value for the other upper limit.
[0069] In this embodiment, a function corresponding to the type of work performed by the robot device is determined and stored in the storage unit 42. For the first robot device 5, a function corresponding to the work of fitting the first workpiece 71 into the hole 72a of the second workpiece 72 is determined in advance. The worker can determine the function taking into consideration the shape and material of the workpiece, etc. In this way, by determining a function corresponding to the work of the robot device, it is possible to set appropriate upper speed limits and upper external force limits.
[0070] Furthermore, if a robotic device performs multiple types of work, the correlation between the upper limit of external force and the upper limit of speed may be defined for each type of work. For example, if a robotic device is equipped with an automatic work tool changer (ATC), the robotic device can change the work tool to perform multiple types of work. In this case, multiple functions indicating the correlation between the upper limit of speed and the upper limit of external force may be defined for each type of work performed by the robotic device.
[0071] Alternatively, the correlation between the upper limit external force value and the upper limit speed value may be determined as a single function for one robot device, or one correlation may be adopted regardless of the task performed by the robot device.
[0072] Furthermore, multiple tasks may be of the same type, but the orientation of the tasks or the size of the workpieces may differ. In this case, multiple pairs of upper speed and upper external force values may be defined according to the multiple tasks performed by a single operation program. For example, when performing an operation in which a workpiece is fitted to another workpiece while facing vertically and an operation in which a workpiece is fitted to another workpiece while facing horizontally, upper speed and upper external force values can be defined for each task. The operation restriction unit can then switch between the upper speed and upper external force values according to each task while a single operation program is being executed.
[0073] In the above embodiment, the correlation between the upper speed limit value and the upper external force limit value is formed by a straight line, but this is not limited to this. Any correlation between the upper speed limit value and the upper external force limit value can be determined.
[0074] FIG. 7 shows a third graph 83 illustrating the relationship between the upper speed limit value and the upper external force limit value. The third graph 83 is a graph used when determining the upper external force limit value Fes based on the upper speed limit value Vs. The graph shows a relationship in which the upper external force limit value increases in a curved manner as the upper speed limit value decreases in the region below the boundary value Vss. Other features are similar to those of the first graph 81 (see FIG. 4). In this way, the function indicating the correlation can include any function, such as a quadratic function or an exponential function.
[0075] FIG. 8 is a fourth graph showing the relationship between the upper speed limit value and the upper external force limit value. The fourth graph 84 is a graph when the upper external force limit value Fes is determined based on the upper speed limit value Vs. In the first graph 81 and the third graph 83 described above, the upper external force limit value changes continuously with changes in the upper speed limit value, but this is not limiting. As shown in the fourth graph 84, the upper external force limit value may be determined discontinuously with changes in the upper speed limit value. Within a predetermined range of the upper speed limit value, a constant upper external force limit value is used, but at a specific upper speed limit value, a discontinuous upper external force limit value is used. In this way, the upper external force limit value may be determined in stages with respect to the upper speed limit value.
[0076] 9 is a fifth graph showing the relationship between the upper speed limit value and the external force upper limit value. The fifth graph 85 is a graph when the upper speed limit value Vs is determined based on the external force upper limit value Fes. In the fifth graph, discontinuous upper speed limits are determined with respect to changes in the external force upper limit value. A constant upper speed limit value is adopted within a predetermined range of the external force upper limit value, but discontinuous upper speed limits are adopted for a specific external force upper limit value. In this way, the upper speed limit value may be determined in stages with respect to the external force upper limit value.
[0077] 8 and 9, by employing a function in which the upper limit value changes stepwise, the other upper limit value becomes a plurality of fixed values. This makes it easier for the operator to estimate the other upper limit value. Furthermore, when the setting unit 58 sets one upper limit value based on the other upper limit value, the amount of calculation can be reduced.
[0078] Fig. 10 shows a graph illustrating the warning notification range, which is the range within which the notification unit issues a warning. The graph in Fig. 10 is the first graph 81 (see Fig. 4). The control device 4 of this embodiment includes a notification unit that notifies the operator of information related to the robot. In this embodiment, the display unit 39 of the teaching pendant 37 functions as the notification unit.
[0079] In this example, an upper speed limit Vs and an upper external force limit Fes are defined. A constant reference value Feb for the upper external force limit is defined in advance for the entire range of the upper speed limit of the robot 1. In this example, the reference value Feb is a constant value defined in a range larger than the boundary value Vss for the upper speed limit.
[0080] In this embodiment, the warning notification range is set to an area greater than the reference value Feb and equal to or less than the external force upper limit value Fes. The determination unit 54 determines whether the external force applied to the robot 1 during the work period is within the warning notification range. If the external force applied to the robot 1 is greater than the reference value Feb, the display unit 39 displays that the external force is greater than the reference value Feb to notify the worker. By implementing this control, the worker can know that an external force greater than the reference value Feb is acting on the robot 1 while the robot device 5 continues working.
[0081] Here, the reference value Feb for the external force upper limit can be a fixed external force upper limit determined in the technology of the comparative example. That is, an external force upper limit corresponding to the maximum speed at which the robot 1 is driven (the maximum value of the speed upper limit) can be used. By adopting this configuration, the worker can know that an external force of a magnitude that would cause the robot to stop in the technology of the comparative example is acting on the robot. The worker can know that an external force greater than the expected external force is acting.
[0082] The reference value for the external force upper limit can be set to any value. For example, the warning notification range may be set to a range with a predetermined width equal to or less than the external force upper limit set by the setting unit. By implementing this control, the worker can know that an external force close to the external force upper limit at which the robot stops is acting on the robot.
[0083] The notification unit may be configured to notify a device external to the robot control device that the external force acting on the robot is greater than a reference value. For example, if the robot control device is connected to a process control device in a factory, the operation restriction unit as the notification unit may transmit information to the process control device that the external force is greater than a reference value.
[0084] The robot control device of this embodiment is suitable for a robot device equipped with a collaborative robot configured so that a worker and the robot device work together to perform a task. The collaborative robot is equipped with a sensor that detects an external force when the worker comes into contact with the robot. In addition, the collaborative robot has a set upper speed limit and an upper external force limit. Note that the robot is not limited to a collaborative robot, and may be a robot that works independently.
[0085] FIG. 11 shows a block diagram of another movement control unit in this embodiment. While the movement restriction unit 51 in the above-described embodiment is configured with a single processor, this is not limiting. Another movement restriction unit 56 in this embodiment has a duplicated calculation unit that calculates the robot's velocity and the external force applied to the robot. In this example, the control device main body includes two processors. The first processor functions as a first velocity calculation unit 52a and a first external force calculation unit 53a. The first processor also functions as a determination unit 54 and a movement command generation unit 55. The second processor functions as a second velocity calculation unit 52b and a second external force calculation unit 53b.
[0086] Each processor calculates the robot's velocity and external force independently of each other. The determination unit 54 determines that the robot's velocity has been calculated correctly if the difference between the robot's velocity calculated by the first velocity calculation unit 52a and the robot's velocity calculated by the second velocity calculation unit 52b is within a predetermined velocity determination range. Similarly, the determination unit 54 determines that the robot's external force has been calculated correctly if the difference between the external force calculated by the first external force calculation unit 53a and the external force calculated by the second external force calculation unit 53b is within a predetermined external force determination range. If the robot's velocity and external force have been calculated correctly, the robot can continue to operate.
[0087] On the other hand, if at least one of the difference in robot speed and the difference in external force falls outside the determination range, the determination unit 54 determines that at least one of the robot speed and the external force has not been calculated correctly. In this case, the movement restriction unit 56 restricts the movement of the robot. For example, the movement restriction unit 56 stops the robot 1. In this way, by calculating and comparing the robot's movement using dual circuits, the safety of the robot device is improved.
[0088] The determination units may also be configured to perform determinations in their respective processors and check whether the determinations are the same. That is, the operation restriction unit may include a first determination unit and a second determination unit, and the two determinations may be compared.
[0089] In addition, in this embodiment, one position detector and one torque sensor are provided as sensors for each robot drive motor or each drive shaft, but this is not limiting. Multiple sensors may be provided to detect one variable. Alternatively, multiple electrical circuits that output measurement values may be formed within a single sensor. In this case, the operation restriction unit may compare multiple output values from the sensors and, if the multiple output values obtained are different from each other, determine that the output value from the sensor is incorrect.
[0090] 12 shows an enlarged side view of the work tool and workpiece of the second robot device 6 in this embodiment. The second robot device 6 is equipped with a hand 3 as a work tool. The hand 3 grasps a first workpiece 73. The second robot device 6 performs the task of inserting pins 74a formed in a second workpiece 74 into holes 73a formed in the first workpiece 73. In this example, multiple pins 74a are inserted into multiple holes 73a.
[0091] The control device 4 adjusts the position and attitude of the robot 1 so that the hole 73a of the first workpiece 73 is positioned directly above the pin 74a of the second workpiece 74. The control device 4 controls the robot 1 to move the first workpiece 73 vertically downward, as shown by arrow 91.
[0092] Figure 13 shows another enlarged side view of the work tool and workpiece of the second robot device in this embodiment. Figure 13 is an enlarged view of the period during which the pin 74a is being inserted into the hole 73a of the first workpiece 73. While the pin 74a is being inserted into the hole 73a of the first workpiece 73, the robot 1 presses the first workpiece 73 in the direction indicated by arrow 92. The robot 1 receives a reaction force in the direction opposite to the pressing force, as indicated by arrow 93. The robot 1 receives the reaction force from the first workpiece 73 via the hand 3.
[0093] In this task, the reaction force received by the robot 1 may be large. In particular, the reaction force may be large depending on the clearance between the hole 73a and the pin 74a, the material of the workpiece, and the like. In this case, the worker can set a large external force upper limit value depending on the clearance, etc. The setting unit can set an appropriate speed upper limit value based on the external force upper limit value and the correlation. Alternatively, the worker can set a low speed upper limit value. The setting unit can set an appropriate external force upper limit value based on the speed upper limit value and the correlation. As a result, the work efficiency of the robot device is improved.
[0094] 14 and 15 are enlarged side views of the work tool and workpiece of the third robot device 7 according to this embodiment. Fig. 14 is an enlarged view before the screw 79 is tightened, and Fig. 15 is an enlarged view during the tightening of the screw 79. The third robot device 7 is equipped with a screw tightening tool 32 as the work tool.
[0095] 14 , a portion of a screw 79 is inserted into a hole 75a in a workpiece 75. The control device 4 controls the position and attitude of the robot 1 so that the bit 32a of the screw tightening tool 32 is positioned directly above the head of the screw 79. Next, the control device 4 controls the position and attitude of the robot 1 so that the bit 32a faces the head of the screw 79, as indicated by an arrow 91.
[0096] 15 , when the screw 79 is being tightened into the hole 75a, the screw tightening tool 32 rotates the bit 32a. The robot 1 presses the screw tightening tool 32 in the direction in which the screw 79 advances, as shown by arrow 92. The robot 1 receives a reaction force from the screw 79 via the screw tightening tool 32, as shown by arrow 93. This reaction force is detected as an external force of the robot.
[0097] In the third robot device 7, the screw 79 cannot be stably tightened unless the screw tightening tool 32 is pressed with a predetermined large force. On the other hand, the speed at which the screw tightening tool 32 moves may be slow. In the third robot device 7 as well, the control of this embodiment makes it possible to set appropriate upper speed and external force limits so as to improve work efficiency. At this time, the respective upper limits can be set depending on the size of the screw 79, the magnitude of the tightening force, etc.
[0098] In the third robot device, a drilling tool using a drill bit for drilling holes in a workpiece may be used instead of a screw tightening tool. In this case, too, the control of this embodiment can set appropriate upper speed and external force limits.
[0099] 16 shows an enlarged view of the workpiece and work tool of the fourth robot device 8 according to this embodiment. The fourth robot device 8 is equipped with a polishing tool 33 as the work tool. The polishing tool 33 includes a polishing member disposed on the bottom surface. The fourth robot device 8 polishes the surface of the workpiece 76.
[0100] The control device 4 controls the robot 1 so as to press the polishing tool 33 toward the workpiece 76, as shown by arrow 91a. The control device 4 maintains the state in which the polishing tool 33 is pressed against the workpiece 76. The control device 4 then controls the robot 1 so as to move the polishing tool 33 in a direction along the surface of the workpiece 76, as shown by arrow 91b. By performing this control, the surface of the workpiece 76 can be polished by the polishing tool 33.
[0101] During the polishing period, the robot 1 presses the polishing tool 33 as indicated by arrows 92a and 92b. More specifically, the resultant force of the force indicated by arrow 92a and the force indicated by arrow 92b corresponds to the pressing force applied by the robot 1 to the polishing tool 33.
[0102] Furthermore, in response to the force pressing and moving the polishing tool 33, the robot 1 receives a reaction force from the polishing tool 33, as indicated by arrows 93a and 93b. More specifically, the resultant force of the force indicated by arrow 93a and the force indicated by arrow 93b corresponds to the reaction force that the robot 1 receives via the polishing tool 33. This reaction force is detected as an external force acting on the robot 1.
[0103] In the fourth robot device 8, the robot 1 also needs to press the polishing tool 33 with a large force. Although the reaction force received by the robot 1 is large, the speed at which the robot 1 moves can be slow. In the fourth robot device 8, too, the control of this embodiment makes it possible to set appropriate upper speed and external force limits. At this time, the respective upper limits can be determined depending on the contact area of the polishing member, the roughness of the polishing member, the surface roughness of the workpiece, the material of the workpiece, etc.
[0104] 17 shows an enlarged view of the work tool and workpiece of the fifth robot apparatus 9 according to this embodiment. The fifth robot apparatus 9 is equipped with a welding torch 34 as the work tool, which performs arc welding. The welding torch 34 pushes a wire 34a toward a workpiece 77. Arc welding is performed while the wire 34a is being supplied. The robot 1 moves the welding torch 34 along the surface of the workpiece 77, as shown by arrow 91.
[0105] When the wire 34a is sufficiently melted during arc welding, a small gap is formed between the wire 34a and the workpiece 77. However, there are cases where the wire is temporarily not sufficiently melted. For example, when the balance between the supply of the wire 34a and the welding current is lost, the wire 34a may be supplied in excess. Then, the wire 34a may temporarily come into contact with the workpiece 77. In this case, the wire 34a presses the workpiece 77 in the direction indicated by arrow 92. The robot 1 receives a reaction force from the wire 34a via the welding torch 34, as indicated by arrow 93.
[0106] Arc welding is often performed at a low moving speed. The fifth robot device 9 can also set appropriate upper speed and external force limits by the control of this embodiment. The arc discharge is interrupted when the wire 34a comes into contact with the workpiece 77. However, when the wire 34a melts, the arc discharge resumes, allowing arc welding to continue.
[0107] At least one of the embodiments described above can provide a robot control device that suppresses restrictions on the movement of a robot while ensuring safety.
[0108] Although the present disclosure has been described in detail, the present disclosure is not limited to the individual embodiments described above. Various additions, substitutions, modifications, partial deletions, etc. are possible in these embodiments without departing from the gist of the present disclosure or the spirit of the present disclosure derived from the content of the claims and their equivalents. These embodiments can also be implemented in combination. For example, in the above-described embodiments, the order of each operation and the order of each process are shown as examples and are not limited to these. The same applies when numerical values or mathematical expressions are used in the description of the above-described embodiments.
[0109] The following supplementary notes are disclosed regarding the above-described embodiment and modifications.
[0110] (Supplementary Note 1) A robot control device 4 comprising: a setting unit 58 that sets a speed upper limit value that is an upper limit value for the speed of the robot 1 and an external force upper limit value that is an upper limit value for the external force applied to the robot 1; and an operation restriction unit 51 that includes a speed calculation unit 52 that calculates the speed of the robot 1 and an external force calculation unit 53 that calculates the external force applied to the robot, wherein the operation restriction unit 51 performs control to restrict the operation of the robot when at least one of the speed of the robot 1 exceeds the speed upper limit value and the external force applied to the robot 1 exceeds the external force upper limit value, and the setting unit 58 sets one of the speed upper limit value and the external force upper limit value based on the correlation between the speed upper limit value and the external force upper limit value, and the correlation is determined so that, in at least a partial range of the one upper limit value, the external force upper limit value increases as the speed upper limit value decreases.
[0111] (Supplementary Note 2) The robot control device 4 according to Supplementary Note 1, further comprising: a storage unit 42 that stores a function indicating a correlation; and a setting unit 58 that sets one upper limit value based on the other upper limit value and the function.
[0112] (Supplementary Note 3) The robot control device 4 according to Supplementary Note 1 or 2, further comprising: a storage unit 42 that stores a predetermined maximum value for the other upper limit value; and a setting unit 58 that sets the other upper limit value so as not to exceed the maximum value.
[0113] (Appendix 4) A robot control device 4 according to appendix 1 or 2, comprising a notification unit 39 that notifies an external device or worker of information relating to the robot 1, a reference value for a certain external force upper limit is predetermined for the entire range of the speed upper limit value of the robot 1 in the correlation, and when the external force applied to the robot 1 is greater than the reference value, the notification unit 39 notifies the external device or worker that the external force applied to the robot 1 is greater than the reference value.
[0114] (Supplementary Note 5) The robot control device 4 according to Supplementary Note 2, wherein the storage unit 42 stores a plurality of functions corresponding to a plurality of types of work performed by the robot devices 5, 6, 7, 8, and 9.
[0115] (Supplementary Note 6) The robot control device 4 according to Supplementary Note 1 or 2, wherein the robot 1 is a collaborative robot that performs a task in collaboration with a worker.
[0116] REFERENCE SIGNS LIST 1 Robot 4 Control device 5, 6, 7, 8, 9 Robot device 37 Teaching operation panel 39 Display unit 40 Control device main body 42 Memory unit 51, 56 Motion restriction unit 52, 52a, 52b Speed calculation unit 53, 53a, 53b External force calculation unit 54 Determination unit 55 Motion command generation unit 58 Setting unit
Claims
1. A robot control device comprising: a setting unit that sets a speed upper limit value that is an upper limit value for a robot's speed and an external force upper limit value that is an upper limit value for an external force applied to the robot; and a movement restriction unit including a speed calculation unit that calculates the speed of the robot and an external force calculation unit that calculates the external force applied to the robot, wherein the movement restriction unit performs control to restrict movement of the robot when at least one of a case where the speed of the robot exceeds the speed upper limit value and a case where an external force applied to the robot exceeds the external force upper limit value, and the setting unit sets one of the speed upper limit value and the external force upper limit value based on a correlation between the speed upper limit value and the external force upper limit value, and the correlation is determined such that, in at least a portion of the range of the one upper limit value, the external force upper limit value becomes larger as the speed upper limit value becomes smaller.
2. A robot control device according to claim 1, further comprising a storage unit that stores a function indicating the correlation, and the setting unit sets the one upper limit value based on the other upper limit value and the function.
3. A robot control device as described in claim 1 or 2, further comprising a memory unit that stores a predetermined maximum value for the other upper limit value, and the setting unit sets the other upper limit value so as not to exceed the maximum value.
4. A robot control device as described in claim 1 or 2, further comprising a notification unit which notifies an external device or worker of information relating to the robot, wherein a constant reference value for the upper external force limit is predefined for the entire range of the upper speed limit of the robot in the correlation, and when the external force applied to the robot is greater than the reference value, the notification unit notifies an external device or worker that the external force applied to the robot is greater than the reference value.
5. The robot control device according to claim 2, wherein the memory unit stores a plurality of the functions corresponding to a plurality of types of work performed by the robot device.
6. The robot control device according to claim 1 or 2, wherein the robot is a collaborative robot that works in collaboration with a worker.
Citation Information
Patent Citations
Robot, and device and method for current limiting
JP2010194645A
Robot safety monitoring device
JP2017077608A
Controller for limiting speed of robot constituent member
JP2019063974A
Controller for robot
JP2020037144A
Robot system for human-robot collaboration
WO2014048444A1