Control device

JPWO2025041295A5Pending Publication Date: 2026-05-21
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Filing Date
2023-08-23
Publication Date
2026-05-21
Patent Text Reader

Abstract

The present invention provides a control device for controlling a robot which is equipped with an end effector and which performs a predetermined task, the control device comprising: a force control unit that carries out force control on the basis of a detected value from a force detector capable of detecting forces and moments acting on the robot; and a speed modification unit that modifies a speed involved in the progress of the force control and an operating speed of the end effector in coordination with one another, on the basis of the detected value from the force detector when operation according to the force control is being performed.
Need to check novelty before this filing date? Find Prior Art

Description

control device

[0001] The present disclosure relates to a control device.

[0002] There is known a robot system in which an end effector is mounted on the tip of an articulated robot and the articulated robot is operated by force control to perform a predetermined task. For example, Patent Documents 1 and 2 describe a robot system that can perform a screw tightening task by force control using a screw tightening machine mounted on the robot.

[0003] JP 2002-331428 A JP 2018-24075 A

[0004] When a robot equipped with an end effector performs a task using force control, the force control parameters are generally fixed and adjusted in advance by the user. However, in a task using force control, there may be a portion where the speed related to the progress of force control can be executed faster than when the task is executed using the fixed parameters adjusted in advance. There is a need for a technology that can shorten the task cycle time while accurately executing force control operations.

[0005] One aspect of the present disclosure is a control device that controls a robot equipped with an end effector and that performs a predetermined task, the control device comprising: a force control unit that performs force control based on detection values ​​from a force detector that can detect forces and moments acting on the robot; and a speed change unit that, when an operation based on the force control is being performed, changes the speed related to the progress of the force control and the operating speed of the end effector in coordination with each other based on the detection value of the force detector.

[0006] These and other objects, features and advantages of the present invention will become more apparent from the detailed description of exemplary embodiments of the invention illustrated in the accompanying drawings.

[0007] 1 is a diagram illustrating the device configuration of a robot system according to one embodiment; FIG. 2 is a functional block diagram of the robot system; FIG. 3 is a diagram for explaining each phase of screw tightening; FIG. 4 is a diagram illustrating the state of the force detection value during screw tightening, the progress speed of force control, and the rotation speed of the screw tightening machine; FIG. 5 is a graph illustrating the time progression of the detected value of the moment during position / posture correction when speed adjustment according to this embodiment is not performed, as a comparative example; FIG. 6 is a graph illustrating the time progression of the detected value of the moment during position / posture error speed adjustment according to this embodiment; FIG. 7 is a diagram illustrating the state of the force detection value during screw tightening and the speed of position / posture error correction; FIG. 8 is a diagram illustrating an example of a setting screen for setting termination conditions; FIG. 9 is a diagram for explaining a polishing operation using force control; FIG. 10 is a diagram for explaining a deburring operation using force control; FIG. 11 is a diagram for explaining speed adjustment according to this embodiment when a tool comes into contact with an object such as a burr during an operation such as deburring; FIG. 12 is a flowchart illustrating speed adjustment processing in force control according to this embodiment.

[0008] Next, embodiments of the present disclosure will be described with reference to the drawings. In the drawings, like components or functional parts are designated by like reference numerals. The scales of these drawings have been changed appropriately to facilitate understanding. Furthermore, the embodiment shown in the drawings is one example for implementing the present invention, and the present invention is not limited to the illustrated embodiment.

[0009] FIG. 1 is a diagram showing the equipment configuration of a robot system 100 according to one embodiment. As shown in FIG. 1 , the robot system 100 includes a robot 10, a robot controller 20 that controls the robot 10, and a teaching pendant 30 connected to the robot controller 20. A screw driver 60 serving as an end effector is attached to a flange 11 of the wrist of the robot 10 via a mounting plate 51. A force sensor (force detector) 70 that detects an external force is attached between the flange 11 of the wrist and the mounting plate 51. In the above configuration, the robot system 100 can set the screw driver 60 to a desired position and posture using the robot 10 and cause the robot 10 to perform a screw tightening operation using force control based on the detection value detected by the force sensor 70. As described in detail below, the robot controller 20 can shorten the cycle time of a task using force control by changing the speed related to the progress of force control and the operating speed of the end effector in coordination with each other based on the detection value of the force detector.

[0010] As an example, the robot 10 is a six-axis vertical articulated robot. However, various types of robots may be used as the robot 10 depending on the work object, such as a horizontal articulated robot, a parallel link robot, or a dual-arm robot. While Fig. 1 shows an example configuration in which the robot 10 is equipped with a screw driver 60 as an end effector, various types of end effectors can be attached to the robot 10 depending on the work application.

[0011] The robot control device 20 controls the operation of the robot 10 in accordance with an operation program or commands from the teaching pendant 30. The robot control device 20 may have a hardware configuration as a general computer having a processor 21 (see FIG. 2), memory (ROM, RAM, non-volatile memory, etc.), a storage device, an operation unit, an input / output interface, a network interface, etc.

[0012] The teaching pendant 30 is used as an operation terminal for teaching the robot 10 and performing various settings. A teaching device configured with a tablet terminal or the like may be used as the teaching pendant 30. The teaching pendant 30 may have a hardware configuration as a general computer having a processor, memory (ROM, RAM, non-volatile memory, etc.), a storage device, an operation unit, a display unit 31 (see FIG. 2 ), an input / output interface, a network interface, etc.

[0013] The screw driver 60 is, for example, an angle-type screw driver (nut runner). The screw driver 60 includes a main body 61 that houses a control unit 161 and a motor 162 (see FIG. 2 ), and a head 62 that is connected to the tip of the main body 61. The head 62 holds a socket 65 that serves as a tool. The socket 65 holds a screw 81. The screw driver 60 is connected to the robot control device 20, and in response to a command from the robot control device 20, tightens and fixes the screw 81 into a threaded hole in an object.

[0014] The screw driver 60 is attached to one side of the mounting plate 51, and the other side of the mounting plate 51 is attached to the flange 11 of the robot 10. In this configuration, the robot 10 can set the screw driver 60 to a desired position and posture to perform a screw tightening operation on an object.

[0015] The force sensor 70 is, for example, a six-axis force sensor that detects forces acting in the mutually orthogonal X, Y, and Z axis directions and moments around each axis. In this embodiment, the force sensor 70 is used to detect external forces acting on the robot 10, but instead of a force sensor, external forces may be detected by the detection values ​​of torque sensors provided on each axis of the robot.

[0016] 2 is a functional block diagram of the robot system 100. As shown in Fig. 2, the robot control device 20 includes a motion control unit 121, a force control unit 122, a parameter adjustment unit 123, a force data processing unit 124, a speed change unit 125, a setting unit 126, and a termination condition determination unit 127. These functional blocks may be functional elements realized by the processor 21 of the robot control device 20 executing software.

[0017] The robot control device 20 includes a storage unit 22. The storage unit 22 is a storage device formed of, for example, a non-volatile memory or a hard disk drive, etc. The storage unit 22 stores an operation program for controlling the robot 10, various setting information including force control parameters and operation parameters, etc.

[0018] The operation control unit 121 controls the operation of the robot 10 in accordance with an operation program or commands from the teaching pendant 30. The robot control device 20 includes a servo control unit (not shown) that executes servo control of the motor 111 for each axis in accordance with commands for each axis generated by the operation control unit 121.

[0019] The force data processing unit 124 provides a function for calculating external forces (forces and moments) acting on a predetermined part of the robot 10 (such as the screwdriver 60) based on the detection values ​​of the force sensor 70. The position and orientation of the force sensor 70 can be calculated from the position and orientation of the coordinate system of the wrist tip of the robot 10 and the relative position information of the force sensor 70 with respect to the wrist tip. The force data processing unit 124 can calculate the magnitude and direction of the force or moment in an arbitrary coordinate system preset in the robot 10 based on the position, orientation, and detection values ​​of the force sensor 70.

[0020] The force control unit 122 is responsible for the function of executing force control based on the force information calculated by the force data processing unit 124 and predetermined force control parameters. The movement control unit 121 has a function of causing the robot 10 to perform movements based on force control under instructions from the force control unit 122.

[0021] The parameter adjustment unit 123 provides a function for adjusting force control parameters (pressing force, force control gain (pressing direction, position error / posture error direction), etc.) by repeatedly causing the robot 10 to perform, for example, force-controlled operations (position / posture correction operations in screw tightening operations, precision fitting operations, etc.). The user can apply force control parameters acquired in advance using the functions of the parameter adjustment unit 123 as force control parameters for an operation program.

[0022] The speed change unit 125 provides a function for changing the speed related to the progress of force control and the operation speed of the end effector in coordination with each other based on the detection value of the force detector when an operation based on force control is being performed.

[0023] The setting unit 126 provides a function for setting functions related to the operation program. The functions of the setting unit 126 include a function for providing a user interface for setting detailed settings for each icon in programming using icons corresponding to various robot functions.

[0024] The end condition determination unit 127 has a function of determining whether or not the work performed by force control has ended based on a predetermined end determination condition.

[0025] The screw driver 60 includes a motor 162 for rotating the socket 65, and a control unit 161 for controlling the driving of the motor 162. The control unit 161 controls the driving of the motor 162 in accordance with commands (including the designation of operating parameters, etc.) from the operation control unit 121. The control unit 161 may be configured, for example, by a microcomputer chip incorporating a CPU, memory (ROM, RAM, non-volatile memory, etc.), etc.

[0026] The screw tightening operation using force control, which is performed under the control of the robot control device 20, will be described below.

[0027] To understand the screw tightening operation according to this embodiment, a typical screw tightening operation using force control will now be described. In a screw tightening operation using force control, the robot 10 (socket 65) is first positioned at a taught screw tightening start position, and then inserts the screw 81 into the screw hole while correcting positional and orientation errors, thereby tightening and fixing the screw 81 in the screw hole. In a screw tightening operation using force control as described above, parameters such as the pressing force, the rotational speed of the screw driver, the force control gain, and the force control progress speed are generally fixed values. However, a task using force control may include, for example, a portion where the force control progress speed can be faster than the fixed speed. On the other hand, to shorten the cycle time, it is time-consuming to create an operation program by dividing the task into parts and setting parameters such as the progress speed for each part. In consideration of this situation, the robot control device 20 according to this embodiment provides a function for automatically changing the speed related to the progress of force control and the operating speed of the end effector in coordination with each other based on the detection value of the force detector when a task using force control is being performed.

[0028] Below, two operation examples will be described as illustrative examples in which the robot control device 20 changes the speed related to the progress of force control and the operating speed of the end effector in coordination with each other during screw tightening work using force control. Note that in the two operation examples described below, the robot control device 20 achieves control in which the screw tightening work using force control is divided into three phases as shown in Figure 3 from the perspective of the transition in the magnitude of the detection value of the force detector, and speed adjustment is performed.

[0029] As shown on the left side of FIG. 3 , the first phase is a phase in which force control is used to correct the position error and attitude error (position / attitude error) of the robot 10 (socket 65) positioned at the screw tightening start position. Here, the position error can be defined as the positional deviation of the center of the tip of the screw 81 from the center line C1 of the screw hole 91, as shown as a distance d in the first phase of FIG. 3 . The attitude error can be defined as the inclination of the central axis C2 of the screw 81 (socket 65) from the center line C1 of the screw hole 91, as shown as an angle θ in the first phase of FIG. 3 . In the first phase, an operation is performed to correct the position error d and attitude error θ using force control.

[0030] The second phase is a phase in which the position error d1 and the attitude error θ1 are close to convergence, and the screw 81 is advanced in the screw fastening axial direction using force control to begin screw fastening, as shown in the center of Fig. 3. The third phase is a phase in which the screw 81 is advanced in the axial direction using force control, and the screw 81 is fastened and fixed in the screw hole 91, as shown on the right side of Fig. 3.

[0031] (First Operation Example) In the first operation example, the robot control device 20 changes the force control advance speed and the rotation speed of the screw driver 60 in coordination with each other in each of the first to third phases based on the detection value of the force detector. Here, the force control advance speed is, for example, a target speed at which the robot 10 (socket 65) moves in the target force (here, the pressing direction of the screw 81 (the screw fastening axis direction)). As shown in FIG. 3 , the first phase corresponds to the initial state in which the robot 10 (socket 65) is positioned at the start position. Therefore, in this state, the position / posture error is relatively large, and the detection values ​​(force / moment) of the force detector are large. When the speed change unit 125 detects that the detection value of the force detector is large (for example, when the detection value exceeds a predetermined threshold), it sets the force control advance speed to a low-speed mode (first speed mode) and sets the rotation speed of the screw driver 60 to a low-speed mode (first operating speed mode). The threshold for detecting whether the detection value of the force detector is large may be, for example, an experimental value or a theoretical value.

[0032] Here, the low-speed mode for the force control speed refers to a speed equal to or lower than a reference speed, which may be, for example, a fixed speed set by the user via a setting screen, or a standard value derived based on various parameters such as the length of the body of the screw 81, the pitch of the threads, the screw tightening time, and the rotation speed of the screw.

[0033] The low-speed mode of the screw driver 60 refers to a rotational speed that is equal to or lower than a reference rotational speed. The reference rotational speed (hereinafter also referred to as the reference rotational speed) is, for example, a rotational speed that is set in advance by the user via a setting screen, or a standard value derived from various parameters such as the length of the body of the screw 81, the pitch of the threads, and the screw tightening time.

[0034] In this way, the robot control device 20 sets the progress speed of force control to a low-speed mode when correcting position and posture errors of the robot 10, thereby appropriately correcting the position and posture and ensuring that the screw 81 is inserted into the screw hole 91. At this time, the robot control device 20 also sets the rotation speed of the screw driver 60 to the low-speed mode in cooperation with the robot control device 20, thereby protecting the screw 81 and ensuring that the position and posture are appropriately corrected.

[0035] In the second phase, the position and orientation errors are close to convergence due to the correction of the position and orientation errors in the first phase, so the detected values ​​by the force detectors become smaller. Specifically, the detected values ​​of the translational forces (forces in the X and Y directions in the figure) and moments (WPR) related to the position and orientation correction become smaller. Therefore, when the detected values ​​(translational forces, moments) of the force detectors become smaller (e.g., when the detected values ​​are detected to be equal to or less than a predetermined threshold), the speed change unit 125 sets the progress speed of the force control to high-speed mode (second speed mode) and the rotation speed of the screw driver 60 to high-speed mode (second operating speed mode). Here, the high-speed mode refers to a progress speed that is faster than the reference progress speed, for example. The high-speed mode refers to an operating speed of the screw driver 60 that is faster than the reference rotation speed, for example.

[0036] In the second phase, the position and orientation errors are close to convergence, and the screw 81 is at the stage where it has just begun to be tightened into the screw hole 91. Therefore, the second phase is a state in which it is possible to increase the progress speed of the force control and the rotation speed of the screw driver 60. Therefore, by increasing both the progress speed of the force control and the rotation speed of the screw driver 60 in the second phase, it is possible to shorten the overall cycle time for screw tightening.

[0037] In the third phase, the screw 81 is being tightened while rotating in the screw hole 91, so the detected value of the force detector becomes large. Therefore, when the detected value (force / moment) of the force detector becomes large (for example, when it is detected that the detected value exceeds a predetermined threshold), the speed change unit 125 sets the proceeding speed of the force control to the low-speed mode and sets the rotation speed of the screw driver 60 to the low-speed mode.

[0038] Thus, in the third phase, the robot control device 20 sets the progress speed of the force control to a relatively slow speed and the rotation speed of the screw driver 60 to a relatively slow speed so that the screw 81 can be properly tightened into the screw hole. This makes it possible to avoid large posture errors in the process of tightening the screw 81 into the screw hole and to perform stable screw tightening.

[0039] By controlling the speed using the first operation example as described above, it becomes possible to increase the progress speed of parts of the work that can be inherently increased using force control, thereby shortening the cycle time for the entire work.

[0040] The first operation example can be said to be an operation example in which, depending on the detection value of the force detector, it is possible to switch between a first speed mode in which the progress speed of force control is set to a first speed and the rotation speed of the screw driver 60 is set to a first rotation speed, and a second speed mode in which the progress speed of force control is set to a second speed slower than the first speed and the rotation speed of the screw driver 60 is set to a second rotation speed slower than the first rotation speed. Such a configuration increases the progress speed of parts in work using force control where the progress speed can be increased inherently, thereby making it possible to shorten the cycle time for the entire work.

[0041] FIG. 4 is a graph showing an example of actual measurement values ​​detected by the force detector during a screw tightening operation. The graph in FIG. 5 shows graphs G1, G2, and G3 of force detection values ​​in three directions, X, Y, and Z, by the force sensor 70. Here, X, Y, and Z are measurement values ​​based on a coordinate system, as shown in FIG. 3 , in which the axial direction (pushing direction) of the screw tightening is defined as the Z direction and two directions perpendicular to it are defined as the X and Y directions. Note that forces in the X and Y directions are defined as translational forces. For ease of understanding, FIG. 4 also shows the approximate correspondence between the time progression of detection values ​​and the first to third phases. In FIG. 4, cases in which the absolute value of the force value increases in the negative direction are also defined as cases in which the force increases.

[0042] The speed change unit 125 may determine the first phase, in which the position / posture error is relatively large, based on at least one of the following criteria (a1) and (a2) based on the detection values ​​of the force detector: (Criterion a1): The detected value of the force in the translational direction is large. In the example of FIG. 4 , graph G1 (detected force in the X direction) shows a relatively large change in the negative direction (see the arrow B). The speed change unit 125 may determine that the first phase is occurring when graph G1 (detected force in the X direction) shows a relatively large change in the negative direction. (Criterion a2): The detected value of the force in the pressing direction (Z direction) is large immediately after the start of screw tightening. If there is a position error at the start of screw tightening and the screw 81 has a position error relative to the screw hole 91, the detected value of the force in the pressing direction is also likely to be relatively large (see graph G3 at the start of screw tightening in FIG. 4 ). Therefore, the speed change unit 125 may determine that the first phase is occurring when the detected value of the force in the Z direction (graph G3) is large immediately after the start of screw tightening.

[0043] If it is determined that the first phase is in progress, the speed change unit 125 sets the progress speed of the force control to the low speed mode as described above, and sets the rotation speed of the screw driver 60 to the low speed mode.

[0044] In the second phase, as the position and orientation errors become smaller, the detected values ​​of the forces (translational forces) or moments in the X and Y directions become smaller. Here, the speed change unit 125 can detect that the translational forces have become smaller and determine that the system is in the second phase. When it determines that the system is in the second phase, the speed change unit 125 sets the progress speed of the force control to the high-speed mode as described above, and sets the rotation speed of the screw driver 60 to the high-speed mode.

[0045] When the screw 81 enters the third phase, it advances while being tightened within the screw hole 91, and is therefore susceptible to a large force in the X or Y direction. Therefore, as shown in FIG. 4 , the detected value of the force in the X or Y direction increases. Therefore, the speed change unit 125 can determine that the screw is in the third phase by detecting that the force in the X or Y direction has increased. When it is determined that the screw is in the third phase, the speed change unit 125 sets the advance speed of the force control to the low-speed mode and the rotation speed of the screw driver 60 to the low-speed mode, as described above.

[0046] As described above, the speed change unit 125 can perform accurate speed adjustment according to the stage of screw tightening by force control based on the detection value of the force detector, thereby shortening the cycle time of the entire screw tightening operation.

[0047] (Second Operation Example) Next, a second operation example will be described in which the robot control device 20 performs a task using force control. In the second operation example, in addition to the speed adjustment operation in the first operation example, the speed of correction of position error and orientation error is also adjusted. The following describes how the speed of correction of position and orientation errors is adjusted.

[0048] A second operation example will be described with reference to FIGS. 5 and 6 . FIG. 5 is a graph showing an example of actual measured values ​​of force detection when the robot 10 corrects position / orientation errors during a screw tightening operation without applying the second operation example. In FIG. 5 , the horizontal axis represents time and the vertical axis represents moment. The graph shown in FIG. 5 corresponds to a case where the robot 10 corrects position / orientation errors using raw detection values ​​from the force detector, i.e., standard parameters. FIG. 5 also shows a moment Mx about the X axis, a moment My about the Y axis, and a moment Mz about the Z axis. The X, Y, and Z axes correspond to the coordinate system shown in FIG. 4 . As shown in FIG. 5 , when the speed of correction of position / orientation errors is standard, the detection values ​​(here, moments) of the force detector exhibit a gradual change.

[0049] 6 is a graph showing the transition of the detected value of the force applied to correct the position / attitude error when the second operation example is being performed in a situation where the detected values ​​are observed as in FIG. 5. In FIG. 6, the horizontal axis represents time, and the vertical axis represents the detected value corresponding to the moment as torque. Torques T4, T5, and T6 in FIG. 6 correspond to moments Mx, My, and Mz, respectively. When the detected value of the force detector exceeds a predetermined threshold, the speed change unit 125 according to this embodiment determines that the position error or attitude error is increasing, and sets the speed of the position / attitude correction to a high-speed mode (first correction speed mode) so that the position error or attitude error is quickly corrected.

[0050] Here, the high-speed mode of position and orientation error correction will be described. When correcting position and orientation errors using force control, the larger the position and orientation errors, the larger the detected values ​​(forces and moments) from the force detectors. In force control, the robot is generally operated based on a command value obtained by multiplying the deviation of these detected values ​​from a reference value by a force control gain. The reference value used in calculating the deviation is typically zero. Therefore, the larger the detected values ​​in force control, the faster the response speed of position and orientation correction. The speed change unit 125 according to this embodiment monitors the detected values ​​of forces and moments over a certain time range. If the maximum detected value exceeds a predetermined threshold, the speed change unit 125 applies the maximum value (or a value based on the maximum value, such as a value equal to or greater than the maximum value) as the detected value for that time range, thereby enabling high-speed position and orientation correction using force control. This operating mode for position and orientation correction is referred to as the high-speed mode of position and orientation error correction.

[0051] Regarding the speed of correction of the position and attitude, the low-speed mode (second correction speed mode) refers to a speed mode in which the correction of the position and attitude is slower than in the high-speed mode. For example, this corresponds to the case where the raw detection value of the force detector is directly applied to correct the position and attitude by force control (operation as shown in FIG. 5).

[0052] Specific operations for correcting position and orientation errors according to the second operation example will be described with reference to FIGS. 5 and 6 . The speed change unit 125 performs this operation in the following procedure. (Step 1) First, the speed change unit 125 sets a certain time range for executing control of this operation example. (Step 2) The speed change unit 125 detects a maximum value exceeding a predetermined threshold for the detected force / moment values ​​within the certain time range (for example, captures a peak value exceeding a predetermined threshold). (Step 3) The speed change unit 125 applies the detected maximum value as the detected value for correcting the position and orientation errors (fixes the detected value for correcting the position and orientation errors to this maximum value), thereby setting the position and orientation correction speed to high-speed mode. (Step 4) If the detected value is equal to or less than the threshold, the position and orientation correction speed is set to low-speed mode (the raw detected value from the force detector is applied as is as the detected value for correcting the position and orientation errors).

[0053] Assume that in step 1, the speed change unit 125 sets a fixed time range from 2 seconds to 7 seconds and sets the threshold value to 15 N. Assume that in step 2, the observed values ​​are as shown in FIG. 5 , and it is detected that the maximum value of the moment My (15.01 Nm) exceeds the threshold value (15 Nm). In this case, the speed change unit 125 sets the maximum value (15.01 Nm) as the detected value of the moment My for the fixed time range (2 seconds to 7 seconds) (see FIG. 6 ). As a result, the force control unit 122 determines that the detected value of the moment My is 15.01 Nm for the time range from 2 seconds to 7 seconds (i.e., determines that a large attitude error continues), and quickly corrects the attitude error related to the moment My (step 3).

[0054] For forces and moments detected within a certain time range that do not exceed a threshold, the speed changer 125 sets the speed of position and attitude correction to the low-speed mode because there is little deviation in position and attitude (step 4). In the example graph of Figure 5, the detected values ​​for moments Mx and Mz are below the threshold (15 Nm), so the speed changer 125 corrects the position and attitude in the low-speed mode for correcting the attitude around the X-axis corresponding to moment Mx and for correcting the attitude around the Z-axis corresponding to moment Mz.

[0055] By controlling the speed of the position and posture as described above, it is possible to accurately detect the direction of the position or posture where there is a large deviation, and improve the speed of correction. This second operation example also makes it possible to shorten the cycle time of the entire screw tightening operation.

[0056] The speed change unit 125 performs the above-mentioned steps 1 to 4 while sequentially shifting a certain time range from 2 seconds to 7 seconds, 3 seconds to 8 seconds, 4 seconds to 9 seconds, etc., thereby realizing control to change the position and posture speed for the entire screw tightening operation.

[0057] 7 shows an example of actual measurement values ​​of the force detector during screw tightening, and the state of speed adjustment of the position / orientation error by the speed change unit 125 in that case. Note that the actual measurement values ​​here are the same as those shown in FIG. 4. In the first phase, when a relatively large position / orientation error occurs, the detected value in the translational direction (graph G1) or moment becomes relatively large as the position / orientation error correction is performed. In the first phase, the speed change unit 125 detects that the maximum detected value of the translational force or moment exceeds a predetermined threshold, determines that the position / orientation error is large, and sets the speed of position / orientation error correction to high-speed mode.

[0058] When the system enters the second phase in which the position / orientation errors converge, the detected value of the translational force or moment decreases. When the detected value of the translational force or moment falls below the threshold, the speed change unit 125 sets the speed of correction of the position / orientation errors to low-speed mode. Then, when the system enters the third phase, the screw 81 is tightened into the screw hole 91, and the translational force or moment becomes a large value that exceeds the threshold. In response, the speed change unit 125 sets the speed of correction of the position / orientation errors to high-speed mode.

[0059] In this way, the speed change unit 125 can accurately grasp the state of position and orientation errors and appropriately set the speed for correcting the position and orientation. This operation makes it possible to automatically shorten the processing time for parts of the overall screw tightening process where the processing time can be shortened, thereby shortening the overall screw tightening cycle time.

[0060] In the second operation example described above, the high-speed mode of position / attitude error correction is defined as the operation of, when a maximum value of a force or moment detected within a certain time range is detected and exceeds a predetermined threshold, setting that maximum value (or a value greater than that) as the detected value for correcting the position / attitude error. This definition is an example, and the high-speed mode of position / attitude error correction may also be the operation of, when a detected value of a force or moment within a certain time range exceeds a reference value, setting that reference value (or a value greater than that) as the detected value for correcting the position / attitude error.

[0061] The low-speed mode for correcting position and orientation errors may be any speed mode in which the speed of correcting position and orientation errors is slower than that in the high-speed mode described above.

[0062] In the above, it has been described that the adjustment of the speed of the position / orientation error in the second operation example is performed in addition to the adjustment of the progress speed of the force control in the first operation example. However, there can also be an operation example in which the adjustment of the speed of the position / orientation error in the second operation example is performed instead of the adjustment of the progress speed of the force control in the first operation example. That is, the following operation example (third operation example) is also possible. (Third Operation Example) - In the first phase, the position / orientation error correction is set to high-speed mode, and the motion speed of the end effector is set to low-speed mode. - In the second phase, the position / orientation error correction is set to low-speed mode, and the motion speed of the end effector is set to high-speed mode. - In the third phase, the position / orientation error correction is set to high-speed mode, and the motion speed of the end effector is set to low-speed mode.

[0063] Next, a description will be given of a function for setting screw tightening operation termination conditions by the setting unit 126 in order to speed up the screw tightening operation. Here, it is assumed that the robot control device 20 is configured to be able to accept programming using icons representing functional commands of the robot, and the setting unit 126 is configured to provide a function for making detailed settings for each icon. Figure 8 shows a setting screen 300 for a function icon 301 corresponding to a screw tightening function, which is provided by the function of the setting unit 126. The setting unit 126 displays the setting screen 300 on the display unit 31 of the teaching operation panel 30, and accepts input to the setting screen 300 by user operation via the operation unit of the teaching operation panel 30.

[0064] As shown in FIG. 8 , the setting screen 300 includes setting items related to screw tightening by force control, such as a target force, a force control progress speed, a screw tightening depth, a force termination determination threshold, and a speed termination determination threshold. Furthermore, the setting screen 300 includes setting buttons 311 to 314 for setting termination conditions for screw tightening by force control. (1) The setting button 311 is a button for setting the termination condition for screw tightening to be when the screw tightening pressing force reaches the target force. (2) The setting button 312 is a button for setting the termination condition for screw tightening to be when the screw tightening depth falls within a specified range from a minimum value to a maximum value. (3) The setting button 313 is a button for setting the termination condition to be when the pressing force exceeds a threshold value (90% of the target force) specified here, when the termination condition is force (pressing force). When both the setting buttons 311 and 313 are set to on, screw tightening is terminated when the target force exceeds the determination threshold set here. (4) The setting button 314 is a button for setting the termination condition to be when the speed of the robot 10 (socket 65) falls below the judgment threshold set here. Note that the termination conditions (1) to (4) shown here are examples, and the termination conditions are not limited to these. For example, a moment may be set as the termination condition. In this case, the setting screen of FIG. 8 may further include a setting item and a setting button for setting a threshold value for determining the moment (termination moment threshold) as the termination condition.

[0065] The termination condition determination unit 127 determines that screw tightening has ended when, for example, all of the termination conditions that are set to ON are satisfied.

[0066] The setting screen 300 allows the user to set whether or not each termination condition should function as a termination condition. Therefore, a user who intends to speed up screw tightening can avoid unnecessary control by turning on the minimum necessary termination conditions. For example, in situations where there are individual differences in screw length, monitoring the screw tightening depth is important. Therefore, in such situations, only the setting button 312 may be turned on.

[0067] The above-described embodiment has been an example of a configuration in which a nut runner is used as the screw tightening mechanism (end effector) mounted on the robot 10. However, configurations using an additional axis motor or a robot wrist axis as the screw tightening mechanism are also possible. In a configuration using an additional axis motor, a mounting plate is attached to the flange 11 of the robot 10, an additional axis motor is fixed to the mounting plate, and a screw tightening socket is fixed to the drive shaft of the additional axis motor. In this configuration, the robot control device 20 (speed change unit 125) changes the speed related to the progress of force control and the rotational speed of the additional axis motor in coordination with each other based on the detection value of the force detector. In a configuration using a robot wrist axis (drive axis of the wrist), a socket is fixed to the wrist axis of the robot 10. In this configuration, the robot control device 20 (speed change unit 125) changes the speed related to the progress of force control and the rotational speed of the wrist axis motor in coordination with each other based on the detection value of the force detector.

[0068] The above-described embodiment is an example of a configuration related to speed adjustment when screw tightening is performed by force control, but the configuration related to speed adjustment for force control in the above-described embodiment can be applied to various tasks using force control (polishing, deburring, precision fitting, profiling, friction stir welding, etc.) For example, consider the polishing task and deburring task shown in Figures 9 and 10, respectively.

[0069] As shown in Fig. 9, in the polishing operation, a polishing tool (sander or buff) 66 is rotatably attached as an end effector to a flange 11A on the wrist of a robot 10A. For example, a force sensor 70 is disposed between the flange 11A and the tool 66. The robot control device 20 performs the polishing operation by rotating the polishing tool 66 and moving it along a trajectory T on the surface of an object W1 in accordance with a polishing operation program. The robot 10A performs force control so that the detected force in the pressing direction (the direction of arrow A in Fig. 9) becomes a target force.

[0070] The configuration example shown in FIG. 9 is a configuration example in which the polishing tool 66 is rotationally driven by a wrist axis motor disposed in the wrist of the robot 10A. In this configuration, the robot control device 20 (speed change unit 125) changes the speed related to the progress of force control and the rotational speed of the wrist axis motor in coordination with each other based on the detection value of the force detector. Alternatively, instead of this configuration example, the polishing tool 66 may be rotationally driven by an additional axis motor mounted on the robot 10A. In this configuration, the robot control device 20 (speed change unit 125) changes the speed related to the progress of force control and the rotational speed of the additional axis motor in coordination with each other based on the detection value of the force detector. Note that, in the case of polishing work, the speed related to the progress of force control may be defined as the movement speed of the robot in a direction along the target trajectory (trajectory T). Note that, in the case of polishing work, various termination conditions can also be set and applied. For example, termination conditions can be when the movement of the length of the target trajectory (trajectory T) is completed, when the movement within the target range (work range) is completed, or when the detection power exceeds / below a specified value.

[0071] As shown in FIG. 10 , in a deburring operation, a grinder 67 is attached to a flange 11A on the wrist of a robot 10A in a manner that allows it to rotate by rotating the wrist axis. A force sensor 70 is disposed between the flange 11A and the grinder 67. The robot 10A operates in accordance with a deburring program to move the grinder 67 along a trajectory T2 on the target workpiece W2 to remove burrs from the ridgeline of the target workpiece W2. In the process of processing the ridgeline on the upper left side of the target workpiece W2 in the figure, force control is executed to press the grinder 67 in the pressing direction indicated by arrow A1 in the figure. In addition, in the process of processing the ridgeline on the front side of the target workpiece W2 in the figure, force control is executed to press the grinder 67 in the pressing direction indicated by arrow A2 in the figure.

[0072] The configuration example shown in FIG. 10 is a configuration example in which the grinder 67 is rotationally driven by a wrist axis motor disposed in the wrist of the robot 10A. In this configuration, the robot control device 20 (speed change unit 125) changes the speed related to the progress of force control and the rotational speed of the wrist axis motor in coordination with each other based on the detection value of the force detector. Alternatively, instead of this configuration example, the grinder 67 may be rotationally driven by an additional axis motor mounted on the robot 10A. In this configuration, the robot control device 20 (speed change unit 125) changes the speed related to the progress of force control and the rotational speed of the additional axis motor in coordination with each other based on the detection value of the force detector. Note that, in the case of deburring work, the speed related to the progress of force control may be defined as the movement speed of the robot in a direction along the target trajectory (trajectory T2). Note that, in the case of deburring work, various termination conditions can also be set and applied. For example, termination conditions can be when the movement of the length of the target trajectory (trajectory T2) is completed, when the movement within the target range (work range) is completed, or when the detection power exceeds / below a specified value.

[0073] FIG. 11 is a diagram illustrating a case where the speed adjustment described in the above embodiment is applied to the polishing operation shown in FIG. 9 and the deburring operation shown in FIG. 10 . While FIG. 11 illustrates a deburring operation using a grinder 67 as the end effector, similar operations are performed in a polishing operation using a tool 66 as the end effector. FIG. 11 illustrates behavior under force control when the grinder 67 contacts a protrusion M, such as a relatively large burr, and a large force is detected during a deburring operation to remove burrs from a workpiece W. In this manner, when the grinder 67 contacts the protrusion M on a pre-taught path, the robot 10 can behave in a manner that avoids the contact. Here, the grinder 67 contacts the protrusion M while traveling along a pre-taught path R1, and then travels through avoidance paths R2, R3, and R4 to return to the pre-taught path R4. Note that Figure 11 conceptually shows the behavior of the grinder 67 to avoid the protrusion M, and for example, when the pressing direction of the grinder 67 due to force control is toward the back of the paper in Figure 11, the avoidance path R2 to R3 may actually be a path that avoids the protrusion M in the front of the paper in Figure 11.

[0074] When the robot behaves in this manner, the speed change unit 125 according to this embodiment can set the proceeding speed of the force control to low-speed mode and the rotational speed of the grinder 67 to low-speed mode on routes R2, R3, and R4 when the robot performs an avoidance operation in response to detection of a large force (force / moment exceeding a threshold value) due to contact with the protrusion M. Then, when the grinder 67 returns to the taught route R5, the speed change unit 125 can set the proceeding speed of the force control to high-speed mode and the rotational speed of the grinder 67 to high-speed mode.

[0075] With this configuration, when the grinder 67 comes into contact with a protrusion M, the progress speed of the force control is slowed down and the rotation speed of the grinder is also reduced, thereby preventing the robot from behaving unnecessarily when the grinder 67 comes into contact with a relatively large protrusion M, etc., and stabilizing the operation. This makes it possible to reduce the cycle time for the entire operation.

[0076] The operation described in FIG. 11 can be similarly applied to the polishing operation shown in FIG.

[0077] 12 is a flowchart showing the speed adjustment process of the force control according to the above-described embodiment by the robot control device 20. Note that the speed adjustment process will be described here when the above-described first and second operation examples are applied.

[0078] First, the user instructs the parameters related to force control (step S1). Here, various parameters such as the target force, advance speed, screw tightening depth, force control gain, and so on are set. Next, the user sets the termination conditions for the force control operation via the setting screen shown in FIG. 8 (step S2).

[0079] The robot controller 20 (speed change unit 125) then starts the force control operation by the robot 10 and monitors various parameters including the force / moment, parameters for the termination condition, etc. (Step S3). Next, the robot controller 20 (speed change unit 125) determines whether the detected force value (force / moment) exceeds a threshold value (Step S4). If it is determined that the detected value (force / moment) exceeds the threshold value (S4: YES), the robot controller 20 (speed change unit 125) sets the progress speed of the force control to a low-speed mode, the rotation speed of the screw tightening machine (nut runner) 60 to a low-speed mode, and the speed for correcting the position / posture to a high-speed mode (Step S5).

[0080] On the other hand, if it is determined in step S4 that the detected value (force / moment) is below the threshold value (S4: NO), the robot control device 20 (speed change unit 125) sets the force control progress speed to high-speed mode, sets the rotation speed of the screw tightening machine (nut runner) 60 to high-speed mode, and sets the speed of position / posture correction to low-speed mode (step S6).

[0081] The robot controller 20 then proceeds with the work using force control (step S7). Next, the robot controller 20 (termination condition determination unit 127) determines whether the termination condition set by the user has been met (step S8). If the termination condition has not yet been met (S8: NO), the process from step S3 is repeated. If the termination condition has been met (S8: YES), the work is terminated.

[0082] According to the above-described embodiments, it is possible to adjust the speed of the progress of work by force control in accordance with the detected values ​​of force and moment, and to increase the speed of parts of the force control operation that can be performed at high speed. Furthermore, since the speed of the progress of force control and the operation speed of the end effector can be adjusted in conjunction with each other, it is also possible to perform work by force control stably and accurately.

[0083] In the above-described embodiment, the speed related to the progress of force control and the operating speed of the end effector are switched between two levels, a high-speed mode and a low-speed mode. However, it is also possible to switch the speed related to the progress of force control and the operating speed of the end effector between three or more levels depending on the detection value of the force detector. For example, with respect to the above-described "first operation example," by applying two thresholds (a first threshold and a second threshold lower than the first threshold) to the detected values ​​of force and moment, it is possible to select the first speed mode (the fastest speed mode) when the detected values ​​of force and moment exceed the first threshold, the second speed mode (the second fastest speed mode) when the detected values ​​of force and moment are equal to or less than the first threshold and exceed the second threshold, and the third speed mode (the slowest speed mode) when the detected values ​​of force and moment are equal to or less than the second threshold.

[0084] It can be seen that the speed can be adjusted in three stages in the same way for the above-mentioned "second operation example." Note that in the "second operation example," the speed of correcting the position / orientation errors can be adjusted by adjusting the magnitude of the detection value applied in correcting the position / orientation errors (input to the force control unit 122).

[0085] In the embodiment described above, the functional allocation of the functional block diagram described with reference to Fig. 2 is a cash register, and various modifications of the functional allocation of the functional blocks are possible. For example, there may be a configuration example in which at least a part of the functional blocks (e.g., the setting unit 126) arranged in the robot control device 20 in Fig. 2 is arranged in the teaching pendant 30.

[0086] Since the teaching pendant 30 functions as an operation terminal for the robot control device 20, the functions of the robot control device 20 can also be defined as including the functions of the teaching pendant 30.

[0087] The configurations described in the above embodiments can be applied to control devices for various types of machines that can be equipped with tools and perform work by force control.

[0088] The functional blocks shown in FIG. 2 may be realized by one or more processors of the robot control device executing various software stored in a storage device, or may be realized by a hardware-based configuration such as an ASIC (Application Specific Integrated Circuit).

[0089] In the above-described embodiment, the programs for executing various processes related to adjusting the force control progress speed, the speed of correction of position / posture errors, and the operating speed of the end effector can be recorded on various computer-readable recording media (for example, semiconductor memories such as ROM, EEPROM, and flash memory, magnetic recording media, and optical disks such as CD-ROM and DVD-ROM).

[0090] As described above, according to each embodiment, it is possible to shorten the cycle time of the entire work by force control while accurately executing the force control operation.

[0091] 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.

[0092] The following supplementary notes are further provided with respect to the above-described embodiments and modifications. (Supplementary Note 1) A control device (20) for controlling a robot (10) equipped with an end effector and performing a predetermined task, the control device (20) comprising: a force control unit (122) that performs force control based on detection values ​​from a force detector (70) that can detect forces and moments acting on the robot (10); and a speed change unit (125) that changes a speed related to the progress of the force control and a motion speed of the end effector in a coordinated manner based on the detection values ​​of the force detector (70) when an operation based on the force control is being performed. (Supplementary Note 2) The control device (20) according to Supplementary Note 1, wherein the speed related to the progress of the force control includes a progress speed in the direction of a target force of the force control or a progress speed in a direction along a target trajectory. (Supplementary Note 3) The control device (20) according to Supplementary Note 2, wherein the speed change unit (125) sets the progress speed of the force control to a first speed mode and sets the motion speed of the end effector to a first motion speed mode when the detection value exceeds a predetermined threshold, and sets the progress speed of the force control to a second speed mode faster than the first speed mode and sets the motion speed of the end effector to the second motion speed mode faster than the first motion speed mode when the detection value becomes equal to or less than the predetermined threshold. (Supplementary Note 4) The control device (20) according to any one of Supplementary Notes 1 to 3, wherein the speed related to the progress of the force control includes a speed of correction of a position error or an attitude error in the force control. (Supplementary Note 5) The control device (20) according to Supplementary Note 4, wherein the speed change unit (125) sets the speed of correction of the position error or attitude error to a first correction speed mode when the detected value exceeds a predetermined threshold, and sets the speed of correction of the position error or attitude error to a second correction speed mode slower than the first correction speed mode when the detected value is equal to or less than the predetermined threshold. (Supplementary Note 6) The control device (20) according to Supplementary Note 5, wherein the speed change unit (125) sets the first correction speed mode by applying the maximum value of the detected value detected within a certain time range or a value based on the maximum value to a calculation when calculating a command value for the robot by multiplying a deviation between a detected value of a force or moment and a reference value by a force control gain in order to correct a position or attitude error.(Supplementary Note 7) The control device (20) according to any one of Supplements 1 to 6, further comprising a termination condition determination unit (127) that terminates the operation by force control based on one or more specified termination conditions out of a plurality of predetermined termination conditions for terminating the operation by force control. (Supplementary Note 8) The control device (20) according to Supplementary Note 7, wherein the plurality of termination conditions include two or more of: (1) the pressing force reaches a target force; (2) the screw tightening depth reaches a specified range; (3) the pressing force exceeds a determination threshold set for the target force; and (4) the operating speed of the robot drops below a specified determination threshold. (Supplementary Note 9) The control device (20) according to any one of Supplements 1 to 8, wherein the predetermined task is a screw tightening task, the end effector is a screw tightening mechanism, and the operating speed of the end effector is the rotational speed of the screw tightening mechanism. (Supplementary Note 10) The control device (20) according to Supplementary Note 9, wherein the screw tightening mechanism uses any one of a nut runner, an additional axis motor, or a wrist axis of the robot. (Supplementary Note 11) The control device (20) according to any one of Supplements 1 to 7, wherein the predetermined task is a polishing task, the end effector is a polishing tool (66), and the operating speed of the end effector is the rotational speed of the polishing tool (66). (Supplementary Note 12) The control device (20) according to Supplementary Note 11, wherein the polishing tool (66) uses an additional axis motor or a wrist axis of the robot (10). (Supplementary Note 13) The control device (20) according to any one of Supplements 1 to 7, wherein the predetermined task is a deburring task, the end effector is a grinder (67), and the operating speed of the end effector is the rotational speed of the grinder (67). (Supplementary Note 14) The control device (20) according to Supplementary Note 13, wherein the grinder (67) uses an additional axis motor or a wrist axis of the robot (10).

[0093] REFERENCE SIGNS LIST 10 Robot 11 Flange 20 Robot control device 30 Teaching operation panel 51 Mounting plate 60 Screw driver 65 Socket 61 Main body 62 Head 70 Force sensor 100 Robot system 111 Motor 121 Operation control unit 122 Force control unit 123 Parameter adjustment unit 124 Force data processing unit 125 Speed ​​change unit 126 Setting unit 127 End condition determination unit 161 Control unit 162 Motor

Claims

1. A control device for controlling a robot equipped with an end effector that performs a predetermined task, A force control unit that performs force control based on detected values ​​from a force detector capable of detecting the force and moment acting on the robot, A speed change unit that, while the operation by the force control is being performed, changes the speed related to the progress of the force control and the operating speed of the end effector in coordination with the detected value of the force detector, A control device equipped with the following features.

2. The control device according to claim 1, wherein the speed related to the progress of the force control includes the speed of progress in the direction of the target force of the force control, or the speed of progress in the direction along the target trajectory.

3. The speed change unit is When the detected value exceeds a predetermined threshold, the progress speed of the force control is set to the first speed mode, and the operating speed of the end effector is set to the first operating speed mode. The control device according to claim 2, wherein when the detected value falls below the predetermined threshold, the progress speed of the force control is set to a second speed mode that is faster than the first speed mode, and the operating speed of the end effector is set to a second operating speed mode that is faster than the first operating speed mode.

4. The control device according to claim 1, wherein the speed related to the progress of the force control includes the speed of correcting position errors or attitude errors in the force control.

5. The speed change unit is When the detected value exceeds a predetermined threshold, the speed of correcting the position error or attitude error is set to the first correction speed mode. The control device according to claim 4, wherein when the detected value falls below a predetermined threshold, the speed of correcting the position error or attitude error is set to a second correction speed mode which is slower than the first correction speed mode.

6. The control device according to claim 5, wherein the speed changing unit sets the first corrected speed mode by applying the maximum value of the detected value detected within a certain time range, or a value based on the maximum value, to a calculation in which a command value for the robot is calculated by multiplying the deviation between the detected force or moment value and a reference value by a force control gain in order to correct an error in position or orientation.

7. The control device according to any one of claims 1 to 6, further comprising a termination condition determination unit that terminates the force-controlled operation based on one or more specified termination conditions from a predetermined plurality of termination conditions for terminating the force-controlled operation.

8. The aforementioned multiple termination conditions are, (1) The pressing force has reached the target force. (2) The screw tightening depth has reached the specified range. (3) The pressing force has exceeded the judgment threshold set for the target force. (4) The robot's operating speed has decreased to below the specified threshold. Including two or more of the following: The control device according to claim 7.

9. The control device according to any one of claims 1 to 6, wherein the predetermined operation is a screw tightening operation, the end effector is a screw tightening mechanism, and the operating speed of the end effector is the rotational speed of the screw tightening mechanism.

10. The control device according to claim 9, wherein the screw tightening mechanism uses a nut runner, an additional shaft motor, or the wrist axis of the robot.

11. The control device according to any one of claims 1 to 6, wherein the predetermined operation is a polishing operation, the end effector is a polishing tool, and the operating speed of the end effector is the rotational speed of the polishing tool.

12. The control device according to claim 11, wherein the polishing tool uses an additional axis motor or the wrist axis of the robot.

13. The control device according to any one of claims 1 to 6, wherein the predetermined operation is a deburring operation, the end effector is a grinder, and the operating speed of the end effector is the rotational speed of the grinder.

14. The control device according to claim 13, wherein the grinder uses an additional shaft motor or the wrist axis of the robot.