Control device
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- FANUC LTD
- Filing Date
- 2023-08-23
- Publication Date
- 2026-06-25
AI Technical Summary
Existing robot systems using fixed force control parameters are inefficient in tasks that can be performed faster with variable force control rates, leading to increased cycle times and labor intensity.
A control device that includes a force control unit and a velocity change unit to adjust velocity based on force detector feedback, allowing for dynamic speed adjustments during force control operations.
The solution significantly reduces cycle times and improves precision in tasks like screwdriving, polishing, and deburring by optimizing speed according to detected forces and moments.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
field of technology The present disclosure relates to a control device. State of the art A robot system is known that is equipped with an end effector at the tip of an articulated robot and is designed to perform a predefined task by controlling the articulated robot via force control. For example, PTL 1 and PTL 2 describe a robot system that can perform a screwdriving task by force control using a screwdriving machine mounted on a robot. List of quotations Patent literature [PTL 1] Unexamined Japanese patent publication (Kokai) No. 2002-331428 A [PTL 2] Unexamined Japanese patent publication (Kokai) No. 2018-24075 A Overview Technical task When a robot equipped with an end effector is instructed to perform work using force control, a fixed parameter, pre-set by a user, is generally used instead of multiple force control parameters. However, there may be a portion of the work performed using force control that can be executed faster with a variable force control rate than with a pre-set fixed parameter. A technique is desired that allows a control device to reduce the cycle time of the work while simultaneously executing the force control movement precisely. Technical solution One aspect of the present disclosure is a control device configured to control a robot equipped with an end effector and configured to perform a predetermined work, comprising: a force control unit configured to perform force control based on a detection value from a force detector capable of detecting a force and a moment acting on the robot; and a velocity change unit configured to change a velocity with respect to a progress of the force control and a movement velocity of the end effector in mutual interaction based on a detection value from the force detector when a movement is performed by the force control. The tasks, features and advantages and other tasks, features and advantages will become more apparent from the detailed description of typical embodiments of the present invention, which are illustrated in the accompanying drawings. Brief description of the drawings Fig. 1 is a graphical representation depicting a configuration of a robot system according to a first embodiment. Fig. 2 is a graphical functional block representation of the robot system. Fig. 3 is a graphical representation depicting each phase of a screwing operation. Fig. 4 is a graphical representation depicting a force detection value during a screwing operation and the state of a force control progress rate and rotational speed of a screw machine. Fig. 5 is a diagram illustrating, as a comparative example, the time transition of a torque detection value during a correction of position and orientation when no adjustment to a speed is made according to the present embodiment.Figure 6 is a diagram illustrating the time transition of a torque detection value when an adjustment for position and alignment errors is made according to the present embodiment. Figure 7 is a graphical representation showing a force detection value during a screwing operation and a state of a position and alignment error correction rate. Figure 8 is a graphical representation showing an example of a setting screen for setting an end condition. Figure 9 is a graphical representation showing a polishing movement by force control. Figure 10 is a graphical representation showing deburring work by force control.Figure 11 is a graphical representation illustrating an adjustment to a speed according to the present embodiment when a tool comes into contact with an object, such as a burr, during a movement such as deburring. Figure 12 is a flowchart illustrating a speed adjustment process during force control according to the present embodiment. Description of the embodiments Next, embodiments of the present disclosure are described with reference to the drawings. A similar configuration or functional area is identified in the aforementioned drawings by the same reference numeral. For clarity, the scale in the drawings has been appropriately modified. An aspect shown in the drawing is an example of an implementation of the present invention, and the present invention is not limited to the aspect shown. Fig. 1 is a graphical representation depicting a configuration of a robot system 100 according to a first embodiment. As shown in Fig. 1, the robot system 100 comprises a robot 10, a robot control unit 20 that controls the robot 10, and a programming handheld device 30 connected to the robot control unit 20. A screwdriver 60, acting as an end effector, is mounted via a mounting plate 51 on a flange 11 of a wrist section of the robot 10. A force sensor (force detector) 70, which detects an external force, is located between the flange 11 of the wrist section and the mounting plate 51.In the configuration described above, the robot system 100 can position a screwdriving machine 60 at a desired location and in a desired orientation using the robot 10, and can cause the robot 10 to perform screwdriving operations by force control based on a detection value received by the force sensor 70. As described in detail below, the robot control unit 20 can shorten the cycle time of the work by force control by modifying a speed related to the progress of the force control and the movement speed of the end effector, based on a detection value from the force detector, through mutual interaction. It is assumed that robot 10 is, by way of example, a six-axis vertical articulated robot. It should be noted that various types of robots, such as a horizontal articulated robot, a robot with parallel linkage, and a dual-arm robot, can be used as robot 10, depending on the workpiece. Fig. 1 shows a configuration example in which robot 10 is equipped with the screw machine 60 as an end effector; however, various types of end effectors can be attached to robot 10, depending on the work application. The robot control unit 20 controls the movement of the robot 10 according to a motion program or a command from the programming handheld device 30. The robot control unit 20 can have a hardware configuration as a general computer, which includes a processor 21 (see Fig. 2), memory (such as ROM, RAM and non-volatile memory), a storage device, an operator panel, an input / output interface, a network interface and the like. The programming handheld device 30 is used as an operator interface for performing the programming and various types of settings of the robot 10. A programming device, such as a tablet computer, can be used as the programming handheld device 30. The programming handheld device 30 can have a hardware configuration as a general-purpose computer, including a processor, memory (such as ROM, RAM, and non-volatile memory), a storage device, an operator interface, a display unit 31 (see Fig. 2), an input / output interface, a network interface, and the like. The screwdriving machine 60, for example, is an angle-type screwdriving machine (nut wrench). The screwdriving machine 60 comprises a main body section 61, which includes a control unit 161 and a motor 162 (see Fig. 2), and a head section 62, which is connected to a tip section of the main body section 61. The head section 62 holds a socket wrench insert 65 as a tool. A screw 81 is held in the socket wrench insert 65. The screwdriving machine 60 is connected to the robot control unit 20 and fastens and secures the screw 81 in a screw hole of an object according to a command from the robot control unit 20. The screw machine 60 is mounted on one side of the mounting plate 51, and the other side of the mounting plate 51 is mounted on the flange 11 of the robot 10. In this configuration, the screw machine 60 can be adjusted to a desired position and orientation by the robot 10, and the screwing operation can be performed on an object. For example, the force sensor 70 is a 6-axis force sensor that detects a force acting on each of the mutually orthogonal x, y, and z axes, and a moment about each axis. It should be noted that in the present embodiment, an external force acting on the robot 10 is detected by the force sensor 70; however, an external force can also be detected by a torque sensor provided on each axis of the robot instead of the force sensor. Fig. 2 is a graphical functional block representation of the robot system 100. As shown in Fig. 2, the robot control unit 20 includes a motion control unit 121, a force control unit 122, a parameter adjustment unit 123, a force data processing unit 124, a velocity change unit 125, a setting unit 126, and an end condition determination unit 127. The functional blocks can be functional elements that are achieved by the processor 21 of the robot control unit 20 executing software. The robot control unit 20 includes a memory unit 22. The memory unit 22 is a storage device, for example, a non-volatile memory, a hard disk device, or the like. The memory unit 22 stores a motion program that controls the robot 10, various types of setting information including a force control parameter and a motion parameter, and the like. The motion control unit 121 controls the movement of the robot 10 according to a motion program or a command from a programming handheld device 30. The robot control unit 20 includes a (not shown) servo control unit that performs servo control on a motor 111 of each axis according to a command generated for each axis by the motion control unit 121. The force data processing unit 124 has a function for calculating an external force (a force and a moment) acting on a predefined area (such as the screw machine 60) of the robot 10, based on a detection value from the force sensor 70. The position and orientation of the force sensor 70 can be calculated from the position and orientation of a coordinate system at the tip of the robot 10's wrist area and from relative position information about the force sensor 70 with respect to the tip of the wrist area. Based on the position, orientation, and detection value of the force sensor 70, the force data processing unit 124 can calculate the magnitude of a force and a moment in any predefined coordinate system on the robot 10, as well as the direction of the force and the moment. The force control unit 122 has a function for executing force control based on force information calculated by the force data processing unit 124 and a predefined force control parameter. The motion control unit 121 has a function for causing the robot 10 to execute a movement by force control according to a command from the force control unit 122. For example, the parameter adjustment unit 123 has a function for adjusting a force control parameter (such as a pressing force and force control gain (in a pressing direction or position error and orientation error directions)) by causing the robot 10 to repeatedly perform a movement through force control (a corrective movement of a position and orientation of the robot during screwing, precision fitting, and the like). A user can apply the force control parameter, which has been pre-captured by the function of the parameter adjustment unit 123, as the force control parameter of a motion program. The velocity change unit 125 has a function for changing a velocity with respect to a progress of the force control and a movement velocity of the end effector under mutual linkage based on a detection value of the force detector when a movement is performed by the force control. The setting unit 126 has a function for performing function settings of a motion program. This function includes displaying a user interface for detailed configuration of each icon when programming using icons that correspond to different robot functions. The end-condition determination unit 127 has a function for determining whether work has been completed by force control, based on a given end-condition determination. The screwdriver 60 includes a motor 162 for rotating the socket wrench insert 65 and a control unit 161 that controls the driving of the motor 162. The control unit 161 controls the driving of the motor 162 according to a command (including a specification of a movement parameter, etc.) from the motion control unit 121. The control unit 161 can be designed as a microcomputer chip containing, for example, a CPU, memory (such as ROM, RAM, and non-volatile memory), and the like. The following describes the screwing operation using force control, which is carried out under control by the robot control unit 20. To understand a screwing motion according to the present embodiment, a general screwing motion using force control is described herein. In the screwing motion using force control, the robot 10 (socket wrench insert 65) is first positioned in a learned screwing start position, then it inserts the screw 81 into a screw hole, correcting any positional and alignment errors, and secures and fixes the screw 81 in the screw hole. In the screwing motion using force control, as described above, a fixed value is generally used for a parameter such as a pressing force, a rotational speed of the screw machine, a force control gain, and a force control progression rate.When working with force control, there may be, for example, a part that can be executed at a force control progress rate higher than the fixed progress rate. In contrast, it is very time-consuming and labor-intensive to create a motion program in such a way that a job is divided into multiple parts, a program is created for each divided part, and parameters such as a progress rate are set for each divided part in order to reduce the cycle time.In view of such a situation, the robot control device 20 according to the present embodiment is designed to have a function for automatically changing a speed with respect to a progress of the force control and a movement speed of the end effector by mutual linking on the basis of a detection value of the force detector when work is performed by the force control. The following describes two examples of motion in which the robot control unit 20, during work performed by force control, changes a speed with respect to a progress of the force control and a movement speed of the end effector, through mutual interaction. It should be noted that in the two motion examples described below, the robot control unit 20 achieves speed adjustment by dividing the screwing work into three phases using force control, as illustrated in Fig. 3 from the perspective of a transition in the magnitude of a detection value of the force detector. As shown on the left side of Fig. 3, the first phase is a phase in which a position error and a situating error (position and situating error) of the robot 10 (socket wrench insert 65), which is positioned in a screw-starting position, are corrected by means of force control. Here, as indicated in the first phase in Fig. 3 as distance d, the position error can be defined as the positional deviation from the center of a tip of the screw 81 with respect to a centerline C1 of the screw bore 91. As indicated in the first phase in Fig. 3 as angle θ, the situating error can be defined as the inclination of a centerline C2 of the screw 81 (socket wrench insert 65) with respect to the centerline C1 of the screw bore 91. In the first phase, a movement to correct the position error d and the situating error θ is performed by force control. As shown in the center of Fig. 3, a second phase is a phase in which a positional error d1 and a positional error θ1 are in a state near convergence, and the screwing process is initiated by causing the screw 81 to advance in a screw axis direction by means of force control. As shown on the right side of Fig. 3, a third phase is a phase in which the screw 81 is caused to advance in the axial direction by means of force control, and the screw 81 is fastened and fixed in the screw bore 91. First movement example In a first example of movement, the robot control unit 20 modifies the progress rate of the force control and the rotational speed of the screwdriving machine 60 in the first to third phases, each time based on a detection value from the force detector. The progress rate determined by the force control is, for example, a target speed at which the robot 10 (socket wrench insert 65) is moved in the direction of a target force (here, a pressing direction (screw axis direction) of the screw 81). As shown in Fig. 3, the first phase corresponds to an initial state in which the robot 10 (socket wrench insert 65) is positioned in a starting position. Therefore, position and orientation errors are relatively large, and the detection value (force and torque) from the force detector is high.When the force detector detects that the detection value is in a high state (for example, when it detects that the detection value exceeds a predefined threshold), the speed change unit 125 sets the progress speed via the force control to a low-speed mode (first speed mode) and sets the rotational speed of the screw machine 60 to a low-speed mode (first movement speed mode). A threshold for detecting whether a force detector's detection value is in a high state can be, for example, an experimental or a theoretical value. For the force control progress rate, the low-speed mode specifies a speed equal to or less than a reference progress rate. The reference progress rate (hereinafter also referred to as the reference progress rate) is, for example, a fixed progress rate set by a user via a settings screen, or a default value determined based on various parameters such as the length of a main body section of screw 81, the pitch of a screw thread, the screw-in time, and the screw rotational speed. For the movement speed of the screw machine 60, the low-speed mode indicates a rotational speed that is equal to or less than a reference speed. The reference speed (hereinafter also referred to as the reference speed) is, for example, a speed set by a user via a settings screen, or a standard value determined from various parameters such as the length of the main body of the screw 81, the pitch of a screw thread, and a screw-in time. In this way, when correcting position and orientation errors of the robot 10, the robot control unit 20 sets the progress rate of the force control to low-speed mode, ensuring that the correction of the robot 10's position and orientation is carried out appropriately and that the screw 81 is reliably inserted into the screw bore 91. Furthermore, at this time, the robot control unit 20 also correspondingly sets the rotational speed of the screwing machine 60 to low-speed mode, thus protecting the screw 81 and ensuring that the correction of the robot's position and orientation is carried out accurately. In the second phase, the position and orientation errors are near convergence due to the correction of the position and orientation errors in the first phase, and therefore the detection value by the force detector is small. In particular, the detection value of a force in a translational direction (force in an xy direction in Fig. 3) and of a moment (WPR) with respect to a correction of position and orientation is small. When the detection value (translational force and moment) of the force detector is small (for example, when it is detected that the detection value is equal to or less than a predetermined threshold), the speed change unit 125 therefore sets the progress rate of the force control to a high-speed mode (second speed mode) and sets the rotational speed of the screw machine 60 to a high-speed mode (second movement speed mode).In this context, the progress rate in high-speed mode is, for example, a progress rate that is higher than the reference progress rate described above. The movement speed of the screw machine 60 in high-speed mode is, for example, a higher rotational speed than the reference rotational speed described above. In the second phase, the positional and alignment errors are nearing convergence, and the screw 81 is at a stage where it begins to tighten in the screw bore 91. Therefore, the second phase is a state in which the progress rate of the force control and the speed of the screwing machine 60 can be increased. By increasing both the progress rate of the force control and the speed of the screwing machine 60 in the second phase, the cycle time of the entire screwing process can be reduced. In the third phase, the screw 81 is in a state where it is being tightened while rotating in the screw bore 91, and thus the force detector's detection value is a large value. If the force detector's detection value (force and torque) is large (for example, if it detects that the detection value exceeds a predetermined threshold), the speed change unit 125 therefore sets the progress speed of the force control to low-speed mode and sets the speed of the screw machine 60 to low-speed mode. In this way, during the third phase, the robot control unit 20 sets the progress rate of the force control to a relatively low speed and adjusts the rotational speed of the screwing machine 60 to a relatively low speed, so that the fastening of the screw 81 in the screw hole is carried out appropriately. In this way, an increase in a positional error during the fastening process of the screw 81 in the screw hole can be avoided and a stable screwing operation can be carried out. By controlling the speed in the first motion example, as described above, the progress speed of a part whose progress speed can be significantly increased during work using force control, and in this way the cycle time of the entire work can be reduced. It can be said that the first motion example is a motion example capable of switching, according to a detection value of the force detector, between the first speed mode, in which a force control progression speed is set as the first speed and a screw machine speed of 60 is set as the first speed, and the second speed mode, in which a force control progression speed is set as the second speed, lower than the first speed, and a screw machine speed of 60 is set as the second speed, lower than the first speed. Such a configuration can, when working with force control, significantly increase the progression speed of a part, thereby shortening the cycle time of the entire operation. Fig. 4 is a diagram showing an example of an actual value of a detection value detected by the force detector during the execution of a screwing operation. The diagram shown in Fig. 5 includes graphs G1, G2, and G3 of a detection value of the force in three directions xyz by the force sensor 70. Here, as shown in Fig. 3, xyz is a measured value with reference to a coordinate system in which one axial direction (pressing direction) of the screwing operation is a z-direction, and two directions orthogonal to the z-direction are an x- and a y-direction. It should be noted that the force in the x- and y-directions is defined here as a translational force. For better understanding, Fig. 4 shows a general correspondence between the temporal transition of the detection value and the first to third phases.4. A case in which an absolute value of a force increases in a negative direction is also defined as a case in which the force increases. The velocity change unit 125 can determine the first phase, in which position and orientation errors are relatively large, based on at least one of determination criteria (a1) and (a2) as follows, using a detection value from the force detector. (Determination criterion a1): a detection value of the force in the translational direction is large. In the example in Fig. 4, the graph G1 (detection force in the x-direction) changes relatively sharply in the negative direction (see one point of arrow B). The velocity change unit 125 can determine, at a time when the graph G1 (detection force in the x-direction) changes relatively sharply in the negative direction, that a phase is the first phase. (Determination criterion a2): The detection value of the force in the pressing direction (z-direction) is high immediately after the screwing process starts. In a state where a positional error exists at the start of the screwing process, and the screw 81 exhibits a positional error with respect to the screw bore 91, it is conceivable that the detection value of the force in the pressing direction is also relatively large (see graph G3 at the start of the screwing process in Fig. 4). Therefore, if the detection value (graph G3) of the force in the z-direction is large immediately after the start of the screwing process, the velocity change unit 125 can determine that the phase is the first phase. If it is determined that the phase is the first phase, the speed change unit 125 sets a progress speed of the force control to the low speed mode and sets a speed of the screw machine 60 to the low speed mode, as described above. When the phase enters the second phase, a detectable value of the force (translational force) or torque in the x- and y-directions decreases, along with a reduction in position and orientation errors. The speed change unit 125 can determine that the phase is the second phase by detecting this decrease in translational force. Once the phase is determined to be the second phase, the speed change unit 125 sets the progress rate of the force control to high-speed mode and adjusts the rotational speed of the screw machine 60 to high-speed mode, as described above. When the phase enters the third phase, the screw 81 is in a progressing state as it is tightened in the screw bore 91 and is thus subjected to a large force in the x-direction or the y-direction. As shown in Fig. 4, a detection value of the force in the x-direction or the y-direction increases. Therefore, the speed change unit 125 can determine that the phase is the third phase by detecting an increase in the force in the x-direction or the y-direction. Upon determining that the phase is the third phase, the speed change unit 125 sets the progress speed of the force control to low-speed mode and sets the rotational speed of the screw machine 60 to low-speed mode, as described above. As described above, the speed change unit 125 can perform an accurate speed adjustment according to a stage of the screwing process by force control based on a recognition value of the force detector, and can thus shorten the cycle time of the entire screwing operation. Second movement example Next, a second motion example is described for the case in which the robot control unit 20 performs work using force control. This second motion example, in addition to the speed adjustment in the first, also includes speed adjustment with respect to the rate of correction for position errors and orientation errors. The following describes how to adjust the rate of correction for position errors and orientation errors. The second motion example is described with reference to Figures 5 to 6. Figure 5 is the diagram that shows an example of an actual value of a force detection value when the robot 10 performs a correction of position and orientation errors during a screw motion without applying the second motion example. Note that in Figure 5, a horizontal axis represents time and a vertical axis represents the moment. The diagram shown in Figure 5 corresponds to a case in which the robot 10 corrects position and orientation errors by applying a raw detection value from the force detector, that is, using a standard parameter. Figure 5 represents a moment Mx about an x-axis, a moment My about a y-axis, and a moment Mz about a z-axis. The xyz-x axes correspond to the coordinate system shown in Figure 4. As in Figure 5, the force detector is used to calculate the torque.As shown in Figure 5, in a situation where a speed of correction of position and alignment errors is standard, the detection value (herein the moment) of the force detector gradually changes over time. Fig. 6 is a diagram depicting the transition of a detection value of a force applied to correct position and alignment errors when the second motion example is performed in the situation where the detection value is observed as in Fig. 5. It should be noted that in Fig. 6, a horizontal axis represents time and a vertical axis represents a detection value corresponding to a moment as a torque. Torques T4, T5, and T6 in Fig. 6 correspond to moments Mx, My, and Mz, respectively.When a detection value of the force detector rises above a predetermined threshold, the velocity change unit 125, according to the present embodiment, considers this state as a state in which a position error or a stance error is large, and sets a speed of correction of a position and a stance to a high-speed mode (first correction speed mode) so that the position error or the stance error is corrected quickly. This section describes the high-speed mode for correcting position and orientation errors. When correcting a position or orientation error using force control, a detection value (force and torque) from the force detector increases with the increase in the position or orientation error. The robot is then controlled by a command value, which is determined by multiplying a deviation from a reference value of the detection value by a force control gain. It is important to note that the reference value used to calculate a deviation is typically zero. Therefore, as the force control detection value increases, the reaction speed of position and orientation correction generally also increases.The speed change unit 125 according to the present embodiment monitors a detection value of force and torque within a fixed time range, and when a maximum value of the detection value rises above a predetermined threshold, the speed change unit 125 applies the maximum value (or perhaps a value based on the maximum value, such as a value equal to or greater than the maximum value, and a value equal to the maximum value) as the detection value within the fixed time range, and thus a high-speed correction of position and attitude is carried out by force control. Such a mode of motion with respect to the correction of position and attitude is referred to as the high-speed mode of position and attitude correction. For a correction speed of a position and a stance, a low-speed mode (second correction speed mode) refers to a speed mode in which a correction of a position and a stance is slower than the high-speed mode described above, and, for example, a case (a movement as shown in Fig. 5) in which a raw detection value of the force detector is applied unchanged and a correction of a position and a stance is carried out by the force control corresponds to the low-speed mode. A specific movement for correcting positional and alignment errors using the second movement example is described with reference to Figures 5 and 6. The velocity change unit 125 performs the movement as follows: (Procedure 1) First, the velocity change unit 125 sets a fixed time interval in which the movement example is controlled. (Procedure 2) The velocity change unit 125 detects a maximum value exceeding a predefined threshold from the force and torque values within the fixed time interval (for example, the velocity change unit 125 detects a peak value exceeding the predefined threshold).(Procedure 3) The velocity change unit 125 sets a position and orientation correction rate to high-speed mode by applying the detected maximum value as the detection value for position and orientation error correction (by setting the detection value for position and orientation error correction to the maximum value). (Procedure 4) If the detection value is equal to or less than the threshold value, a position and orientation correction rate is set to low-speed mode (a raw detection value from the force detector is applied unchanged as the detection value for position and orientation error correction). In Procedure 1, it is assumed that the velocity change unit 125 sets a fixed time range of 2 seconds to 7 seconds and sets a threshold of 15 N. Then, in Procedure 2, it is assumed that an observed value is as shown in Fig. 5, and it is detected that a maximum value (15.01 Nm) of the torque My exceeds the threshold (15 Nm). In this case, the velocity change unit 125 sets the maximum value (15.01 Nm) as the detection value of the torque My for the fixed time range (2 seconds to 7 seconds) (see Fig. 6). In this way, the force control unit 122 considers the recognition value of the torque My to be 15.01 Nm for the time range from 2 seconds to 7 seconds (in other words, the force control unit 122 assumes that a large position error is ongoing), and a position error with respect to the torque My is corrected at high speed (procedure 3). If the force and torque detected within the fixed time interval do not exceed the threshold, the deviation of a position and attitude is small, and therefore the velocity change unit 125 sets a position and attitude correction speed to low-speed mode (procedure 4). In the example of the diagram in Fig. 5, a detected torque Mx and torque Mz is equal to or less than the threshold (15 Nm), and therefore the velocity change unit 125 corrects a position and attitude in low-speed mode to correct an attitude about the x-axis according to torque Mx and to correct an attitude about the z-axis according to torque Mz. By controlling the speed of a position correction, as described above, a position and direction that exhibits a large deviation can be accurately detected, and the speed of the correction can be improved. In this second example of motion, the cycle time of the entire screwing operation can also be reduced. The speed change unit 125 can achieve control for changing a speed, correcting a position and a stance for the entire screwing operation by performing the processing through procedure 1 to procedure 4, successively shifting the fixed time range, for example in the sequence from 2 seconds to 7 seconds, 3 seconds to 8 seconds, 4 seconds to 9 seconds. Fig. 7 is a graphical representation showing an example of an actual value of a force detector's detection value during a screwing operation and a state of speed adjustment for position and alignment errors by the speed change unit 125 in this case. It should be noted that the actual value here is the same as that shown in Fig. 4. In the first phase, where relatively large position and alignment errors occur, the detection value (graph G1) in the translational direction, or the torque due to the position and alignment error correction process, is relatively large.In the first phase, the velocity change unit 125 recognizes that a maximum value of the recognition value of the translational force or the moment exceeds a predetermined threshold, considers this state to be a state of large position and orientation errors and sets the speed of the correction of the position and orientation errors to the high-speed mode. When a phase enters the second phase, in which the position and alignment errors converge, the detection value of the translational force or torque decreases. In response to the detection value of the translational force or torque being equal to or less than the threshold, the rate-change unit 125 sets the rate of position and alignment error correction to low-speed mode. When the phase enters the third phase, the screw 81 is in a state where it is being secured in the screw bore 91, and the translational force or torque is a large value exceeding the threshold. In response, the rate-change unit 125 sets the rate of position and alignment error correction to high-speed mode. In this way, the speed change unit 125 can accurately detect position and orientation errors and adjust the speed of position and orientation correction accordingly. Therefore, during the entire screwing process, the machining time of a part whose machining time can be reduced is automatically shortened, and the cycle time of the entire screwing process is reduced. It should be noted that in the second motion example described above, the setting mode, when a maximum value of a detection value for force or torque is detected within a fixed time range that exceeds a predefined threshold, defines the maximum value (or a value equal to or greater than the maximum value) as the detection value for position and alignment error correction. This definition is an example, and, for instance, the high-speed position and alignment error correction mode could be a mode in which, when a detection value of force or torque exceeds a reference value within a fixed time range, the reference value (or a value equal to or greater than the reference value) is set as the detection value for position and alignment error correction. The low-speed mode for correcting position and alignment errors can be a speed mode in which the speed of correcting position and alignment errors is slower than in the high-speed mode described above. It should be noted that the above description describes an adjustment of the speed of a correction for position and alignment errors in the second motion example, in addition to an adjustment of the progress rate of the force control in the first motion example. However, a motion example in which an adjustment of the speed of a correction for position and alignment errors is performed in the second motion example instead of an adjustment of the progress rate of the force control in the first motion example is also possible. In other words, a motion example (third motion example) like the following is also possible. Third movement example - In the first phase, position and alignment errors are corrected in low-speed mode, and the end effector's movement speed is set in low-speed mode. - In the second phase, position and alignment errors are corrected in low-speed mode, and the end effector's movement speed is set in high-speed mode. - In the third phase, position and alignment errors are corrected in high-speed mode, and the end effector's movement speed is set in low-speed mode. Next, a setting function for an end condition of a screw operation by the setting unit 126 for accelerating the screw operation is described. It is assumed here that the robot control unit 20 is configured to accept programming via an icon representing a robot function command, and that the setting unit 126 is configured to accept detailed settings for each icon. Fig. 8 shows a setting screen 300 of a function icon 301 corresponding to a screw function provided by the setting unit 126. The setting unit 126 displays the setting screen 300 on the display unit 31 of the programming handheld device 30 and accepts input to the setting screen 300 via user operation through the control unit of the programming handheld device 30. As shown in Fig. 8, the setting screen 300 includes a target force, a force control progress rate, a screw-in depth, a force end-determination threshold, and a speed end-determination threshold as setting elements with respect to a screwing operation by the force control. Furthermore, the setting screen 300 includes setting buttons 311 to 314 for setting an end condition for the screwing operation by the force control. (1) Setting button 311 is a button for setting the condition that a pressing force during the screwing operation reaches a target force, as an end condition for the screwing operation. (2) Setting button 312 is a button for setting the condition that a screw-in depth falls within a range from a predefined minimum value to a predefined maximum value, as an end condition for the screwing operation.(3) The setting button 313 is a button for setting a condition that the pressing force exceeds a threshold value (90% of a target force) specified herein when the force (pressing force) is set as the end condition. If both the setting button 311 and the setting button 313 are switched to ON, the screwing operation ends if a target force exceeds a detection threshold value set herein. (4) The setting button 314 is a button for setting a condition that the speed of the robot 10 (socket wrench insert 65) is less than a detection threshold value set herein. It should be noted that the end conditions (1) to (4) described herein are examples and that an end condition is not limited to these. For example, a torque can be set as an end condition. In this case, the setting screen in Fig. 8 can also be equipped with a setting element and a setting button for setting a threshold value (end-time torque threshold) to determine a torque as an end condition. The end condition determination unit 127 determines the end of a screwing operation when, for example, all end conditions that are set to ON are met. On settings screen 300, it can be configured whether each of the end conditions should function as an end condition. Therefore, a user who wants to speed up a screwing operation can avoid unnecessary control execution by activating only the minimum required end condition. For example, in a situation where the length of a screw varies, monitoring the screw-in depth is important. Therefore, in such a situation, only setting button 312 should be activated. The embodiment described above is a configuration example for a case in which a nut wrench is used as the screwing mechanism (end effector) mounted on the robot 10. However, a configuration example using an auxiliary axis motor or a wrist axis of the robot as the screwing mechanism is also possible. In the configuration using the auxiliary axis motor, a mounting plate is attached to the flange 11 of the robot 10, the auxiliary axis motor is attached to the mounting plate, and a screw socket insert is attached to a drive shaft of the auxiliary axis motor. In this configuration, the robot control unit 20 (speed change unit 125) changes a speed with respect to a force control advance and a rotational speed of the auxiliary axis motor in a mutually linked manner based on a detection value from the force detector.In the configuration using the robot's wrist axis (drive shaft of the wrist area), a socket wrench insert is attached to the robot's wrist axis 10. In this configuration, the robot control unit 20 (speed change unit 125) changes a speed in relation to a force control progress and a rotational speed of a wrist axis motor by mutual interaction based on a detection value from the force detector. The embodiment described above is the configuration example with respect to speed adjustment when a screwing operation is performed by force control, but the configuration with respect to speed adjustment of the force control in the embodiment described above can be applied to various types of work by force control (such as polishing, deburring, precision fitting, copying, and friction stir welding). For example, the polishing and deburring work shown in Figures 9 and 10 are considered. As shown in Fig. 9, during the polishing operation, a polishing tool (a grinder or a polishing wheel) 66 is rotatably mounted as an end effector on a flange 11A of a wrist section of a robot 10A. For example, the force sensor 70 is arranged between the flange 11A and the tool 66. The robot control unit 20 performs the polishing operation, in which the polishing tool 66 moves to trace a path T on a surface of the object W1 while rotating according to a polishing motion program. The robot 10A performs the force control such that a detection force in a pressing direction (arrow direction A in Fig. 9) is a target force. The configuration example shown in Fig. 9 is an example for a case in which the polishing tool 66 is rotated and driven by a wrist axis motor arranged on the wrist area of the robot 10A. In this configuration, the robot control unit 20 (speed change unit 125) changes a speed with respect to a progress of the force control and a rotational speed of the wrist axis motor by mutual interaction based on a detection value of the force detector. Alternatively, instead of such a configuration example, a configuration is also possible in which the polishing tool 66 is rotated and driven by an additional axis motor mounted on the robot 10A.In this configuration, the robot control unit 20 (speed change unit 125) changes a speed in relation to the progress of the force control and a rotational speed of the auxiliary axis motor, mutually linked based on a detection value from the force detector. It should be noted that during polishing, a speed in relation to the progress of the force control can be defined as the robot's movement speed in one direction along a target trajectory (track T). It should also be noted that various end conditions can be set and applied during polishing.For example, a condition that a movement is completed along the length of a target trajectory (track T), a condition that a movement is completed within a target area (area of the workpiece), a condition that a recognition force exceeds / is less than a specified value, and the like, can be used as a termination condition. As shown in Fig. 10, the grinding machine 67 is rotatably mounted on the flange 11A of the wrist area of the robot 10A during deburring operations by means of a rotation of a wrist axis. The force sensor 70 is arranged between the flange 11A and the grinding machine 67. The robot 10A performs a movement such that the grinding machine 67 moves along the track T2 on the workpiece W2 and removes a burr from an edge line of the workpiece W2. In the process of machining an edge line of the workpiece W2 on the upper left side in Fig. 10, the force control for pressing the grinding machine 67 is implemented in a pressing direction indicated by arrow A1 in Fig. 10. Furthermore, in the process of machining an edge line of the workpiece W2 on the front side in Fig. 10, force control for pressing the grinding machine 67 is implemented in a pressing direction indicated by arrow A2 in Fig. 10. The configuration example shown in Fig. 10 is an example configuration for a case in which the grinding machine 67 is rotated and driven by the wrist axis motor arranged on the wrist area of the robot 10A. In this configuration, the robot control unit 20 (speed change unit 125) changes a speed with respect to a progress of the force control and a rotational speed of the wrist axis motor by mutual interaction based on a detection value of the force detector. Alternatively, instead of such a configuration example, a configuration is also possible in which the grinding machine 67 is rotated and driven by the auxiliary axis motor mounted on the robot 10A.In this configuration, the robot control unit 20 (speed change unit 125) changes a speed relative to the progress of the force control and a rotational speed of the auxiliary axis motor, mutually linked based on a detection value from the force detector. It should be noted that during deburring, a speed relative to the progress of the force control can be defined as the robot's movement speed in one direction along a target trajectory (track T2). It should also be noted that various end conditions can be set and applied during deburring.For example, a condition that a movement is completed along the length of a target trajectory (track T2), a condition that a movement is completed within a target area (area of the workpiece), a condition that a recognition force exceeds / is less than a specified value, and the like, can be used as a termination condition. Fig. 11 is a graphical representation of a case in which speed adjustment in the embodiment described above is applied to the polishing operation shown in Fig. 9 and the deburring operation shown in Fig. 10. It should be noted that Fig. 11 depicts a case of deburring operation using the grinding machine 67 as the end effector, but the movement is similar in a case of polishing operation using the tool 66 as the end effector. Fig. 11 illustrates the robot's behavior due to force control when the grinding machine 67 comes into contact with a protrusion M, such as a relatively large burr, and a large force is detected during deburring operation on the workpiece W. In this way, the robot 10 can perform an evasive movement if the grinding machine 67 comes into contact with the protrusion M along a pre-learned path.This describes a situation in which the grinding machine 67 comes into contact with the projection M while progressing along a pre-learned route R1, following alternative routes R2, R3, and R4, and returning to a pre-learned route R4. It should be noted that Fig. 11 conceptually represents the behavior of the grinding machine 67 avoiding the projection M, and if, for example, a pressing direction of the grinding machine 67, determined by force control, is a depth direction of the paper plane of Fig. 11, the alternative route R2 to R3 may actually be a route avoiding the projection M in a forward direction of the paper plane of Fig. 11. When the robot performs such a movement, the speed control unit 125, according to the present embodiment, can set the progress rate of the force control on routes R2, R3, and R4 to a low-speed mode at the time the robot performs the evasive movement, and can set the rotational speed of the grinding machine 67 to a low-speed mode if a large force (force and torque exceeding a threshold) is detected due to contact with the projection M. When the grinding machine 67 then returns to the learned route R5, the speed control unit 125 can set the progress rate of the force control to a high-speed mode and set the rotational speed of the grinding machine 67 to a high-speed mode. With such a configuration, by setting the force control's progress rate to a low speed and furthermore reducing the grinding machine's rotational speed in the event of contact with the projection M, unnecessary robot behavior can be avoided when the grinding machine 67 comes into contact with the relatively large projection M, and the robot's movement can be stabilized. In this way, the overall cycle time can be reduced. The movement described in Fig. 11 can be applied in a similar way to the polishing work shown in Fig. 9. Figure 12 illustrates the speed adjustment processing of the force control according to the embodiment described above by the robot control unit 20. It should be noted that this describes the speed adjustment processing when applying the first and second motion examples described above. First, a parameter related to force control is taught by the user (step S1). This includes, for example, setting a target force, a progress rate, a screw-in depth, a force control gain, and other various parameters. Next, the user sets an end condition for a force control movement via the settings screen shown in Fig. 8 (step S2). Then the robot control unit 20 (speed change unit 125) begins force control work by the robot 10 and monitors various parameters, including force and torque parameters, an end condition, and the like (step S3). Next, the robot control unit 20 (speed change unit 125) determines whether a detection value (force and torque) of the force exceeds a threshold value (step S4).If it is determined that the detection value (force and torque) exceeds the threshold (S4: YES), the robot control unit 20 (speed change unit 125) sets a progress speed of the force control to a low-speed mode, sets a speed of the screw machine (nut turner) 60 to a low-speed mode and sets a speed of a correction of a position and a stance to a high-speed mode (step S5). If, on the other hand, it is determined in step S4 that the detection value (force and torque) is equal to or less than the threshold value (S4: NO), the robot control unit 20 (speed change unit 125) sets a progress speed of the force control to a high-speed mode, sets a speed of the screw machine (nut turner) 60 to a high-speed mode and sets a speed of a correction of a position and a position to a low-speed mode (step S6). The robot control unit 20 then continues with the work via force control (step S7). Next, the robot control unit 20 (end condition determination unit 127) determines whether the end condition set by the user has been met (step S8). If the end condition has not yet been met (S8: NO), the processing is repeated from step S3. If the end condition has been met (S8: YES), the work ends. According to each of the embodiments described above, the speed of work performed by the force control can be adjusted according to a recognized force and torque value. Furthermore, the speed of a part that can be performed at high speed during a force control movement can be accelerated. Additionally, the speed of the force control and the speed of the end effector can be coordinated, allowing the work to be performed stably and accurately. It should be noted that in the embodiments described above, the configuration is described in which the speed with respect to the progress of the force control and a movement speed of the end effector are switched between two stages, the high-speed mode and the low-speed mode, but the speed with respect to the progress of the force control and a movement speed of the end effector can also be switched between many stages of three or more stages according to a detection value of the force detector.For example, with regard to the "first motion example" described above, by applying two types of thresholds (a first threshold and a second threshold lower than the first threshold) to a force and torque detection value, a first speed mode (fastest speed mode) can be set if the force and torque detection value exceeds the first threshold, a second speed mode (second fastest speed mode) can be set if the force and torque detection value is equal to or less than the first threshold and exceeds the second threshold, and a third speed mode (slowest speed mode) can be set if the force and torque detection value is equal to or less than the second threshold. With regard to the "second movement example" described above, it should also be understood that speed adjustment on three planes is performed similarly. It should be noted that in the "second movement example," the speed of a correction for position and alignment errors can be adjusted by changing the size of a detection value that is applied during the correction of the position and alignment errors (entered into the force control unit 122). The arrangement of functions in the graphical function block representation described with reference to Fig. 2 in the embodiments described above is one example, and various modification examples for the arrangement of function blocks are possible. For example, a configuration example is also possible in which at least one part (for example, the setting unit 126) of the function blocks arranged in the robot control unit 20 in Fig. 2 is arranged in the programming handheld device 30. Since the programming handheld device 30 acts as the operator terminal of the robot control unit 20, an integrated function that includes both the functions of the robot control unit 20 and the programming handheld device 30 can be defined as a function of the robot control unit 20. The configuration in the embodiments described above can be applied to a control device of various types of machines that can be equipped with a tool and perform work by force control. The functional block shown in Fig. 2 can be achieved by executing different types of software stored in a memory device by one or more processors of the robot control unit, or can be achieved by a configuration in which a hardware component such as an application-specific integrated circuit (ASIC) is a major component. The program for performing various types of processing with respect to adjusting the progress rate of the force control, the rate of correcting position and alignment errors, and the movement rate of the end effector in the embodiments described above can be recorded in various computer-readable recording media (for example, a semiconductor memory such as a ROM, an EEPROM, and a flash memory, a magnetic recording medium, or an optical disc such as a CD-ROM and a DVD-ROM). As described above, according to each of the embodiments, the cycle time of the entire work can be shortened by the force control, while a movement of the force control can be executed precisely. Although the present disclosure has been described in detail above, it is not limited to the individual embodiments described above. Various types of additions, substitutions, modifications, partial deletions, and the like may be made to the embodiments without deviating from the purpose of the present disclosure or from the content described in the claims and the scope of the present disclosure resulting from their correspondences. Furthermore, the embodiments may also be implemented in combination. For example, a sequence of operations and a sequence of parts of a processing operation are given in the embodiments described above as examples that are not limited to these. The same applies if a numerical value or expression is used in the description of the embodiments described above. With regard to the embodiments and modification examples described above, further supplementary remarks are described below. Supplementary Note 1 A control device (20) configured to control a robot (10) equipped with an end effector and configured to perform a predetermined work, the control device (20) comprising: a force control unit (122) configured to perform force control based on a detection value from a force detector (70) capable of detecting a force and a moment acting on the robot (10); and a velocity change unit (125) configured to change a velocity with respect to a progress of the force control and a movement velocity of the end effector in mutual interaction based on a detection value from the force detector (70) when a movement is performed by the force control. Supplementary Note 2 The control device (20) according to Supplementary Note 1, wherein the velocity in relation to the progress of the force control includes a progress velocity in a direction of a target force of the force control or a progress velocity 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) is configured to: set the progress speed of the force control to a first speed mode and also to set the movement speed of the end effector to a first movement speed mode when the detection value exceeds a predetermined threshold; and to set the progress speed of the force control to a second speed mode which is faster than the first speed mode and also to set the movement speed of the end effector to a second movement speed mode which is faster than the first movement speed mode when the detection value is 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 in relation to the progress of the force control includes a speed of correction of a position error or a position error in the force control. Supplementary note 5 The control device (20) according to Supplementary Note 4, wherein the speed change unit (125) is configured to: set the speed of correction of the position error or position error to a first correction speed mode when the detection value exceeds a predetermined threshold; and set the speed of correction of the position error or position error to a second correction speed mode, which is slower than the first correction speed mode, when the detection 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) is configured to set the first correction speed mode by applying a maximum value of the detection value detected within a fixed time range or a value based on the maximum value for calculation when a command value for the robot is calculated by multiplying a deviation between a detection value of force or torque and a reference value with a force control gain to correct the position error or orientation error. Supplementary note 7 The control device (20) according to any one of the supplementary notes 1 to 6, which further includes an end-condition determination unit (127) configured to terminate the motion by force control on the basis of one or more predetermined end conditions from a plurality of predetermined end conditions for terminating the motion by force control. Supplementary Note 8 The control device (20) according to supplementary note 7, wherein the plurality of end conditions includes two or more of (1) a circumstance that a pressing force reaches a target force, (2) a circumstance that a screw-in depth reaches a predetermined range, (3) a circumstance that a pressing force exceeds a detection threshold set for a target force, and (4) a circumstance that a movement speed of a robot decreases to less than a predetermined detection threshold. Supplementary note 9 The control device (20) according to any one of the supplementary notes 1 to 8, wherein the specified work is a screwing work, the end effector is a screwing mechanism and the speed of movement of the end effector is a rotational speed of the screwing mechanism. Supplementary Note 10 The control device (20) according to supplementary note 9, wherein the screwing mechanism uses any one of a nut driver, an auxiliary axis motor and a wrist axis of the robot. Supplementary Note 11 The control device (20) according to any one of the supplementary notes 1 to 7, wherein the specified work is a polishing work, the end effector is a polishing tool (66) and the speed of movement of the end effector is a 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 auxiliary axis motor or a wrist axis of the robot (10). Supplementary Note 13 The control device (20) according to any one of the supplementary notes 1 to 7, wherein the specified work is a deburring work, the end effector is a grinding machine (67) and the speed of movement of the end effector is a rotational speed of the grinding machine (67). Supplementary Note 14 The control device (20) according to supplementary note 13, wherein the grinding machine (67) uses an additional axis motor or a wrist axis of the robot (10). List of reference symbols 10 Robot 11 Flange 20 Robot control device 30 Programming handheld device 51 Mounting plate 60 Screwdriver 65 Socket wrench insert 61 Main body section 62 Head section 70 Force sensor 100 Robot system 111 Motor 121 Motion 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 detection unit 161 Control unit 162 Motor
Claims
A control device configured to control a robot equipped with an end effector and configured to perform a predetermined task, the control device comprising: a force control unit configured to perform force control based on a detection value from a force detector capable of detecting a force and a moment acting on the robot; and a velocity change unit configured to change a velocity with respect to a progress of the force control and a movement velocity of the end effector in mutual interaction based on a detection value from the force detector when a movement is performed by the force control. Control device according to claim 1, wherein the speed with respect to the progress of the force control includes a progress rate in a direction of a target force of the force control or a progress rate in a direction along a target trajectory. Control device according to claim 2, wherein the speed change unit is configured to: set the progress rate of the force control to a first speed mode and furthermore to set the movement speed of the end effector to a first movement speed mode when the detection value exceeds a predetermined threshold; and to set the progress rate of the force control to a second speed mode which is faster than the first speed mode, and furthermore to set the movement speed of the end effector to a second movement speed mode which is faster than the first movement speed mode when the detection value is equal to or less than the predetermined threshold. Control device according to any one of claims 1 to 3, wherein the speed in relation to the progress of the force control includes a speed of correction of a position error or a position error in the force control. Control device according to claim 4, wherein the speed change unit is configured to: set the speed of correction of the position error or the orientation error to a first correction speed mode when the detection value exceeds a predetermined threshold; and set the speed of correction of the position error or the orientation error to a second correction speed mode, which is slower than the first correction speed mode, when the detection value is equal to or less than the predetermined threshold. Control device according to claim 5, wherein the speed change unit is configured to set the first correction speed mode by applying a maximum value of the detection value that has been detected within a fixed time range or a value based on the maximum value for calculation when a command value for the robot is calculated by multiplying a deviation between a detection value of the force or torque and a reference value with a force control gain to correct the position error or the orientation error. Control device according to any one of claims 1 to 6, which further comprises an end condition determination unit configured to terminate the movement by force control on the basis of one or more predetermined end conditions from a plurality of predetermined end conditions for terminating the movement by force control. Control device according to claim 7, wherein the plurality of end conditions includes two or more of (1) a circumstance that a pressing force reaches a target force, (2) a circumstance that a screw-in depth reaches a predetermined range, (3) a circumstance that a pressing force exceeds a detection threshold set for a target force, and (4) a circumstance that a movement speed of a robot decreases to less than a predetermined detection threshold. Control device according to any one of claims 1 to 8, wherein the specified work is a screwing work, the end effector is a screwing mechanism and the movement speed of the end effector is a rotational speed of the screwing mechanism. Control device according to claim 9, wherein the screwing mechanism uses any one of a nut driver, an auxiliary axis motor and a wrist axis of the robot. Control device according to any one of claims 1 to 7, wherein the specified work is a polishing work, the end effector is a polishing tool and the speed of movement of the end effector is a rotational speed of the polishing tool. Control device according to claim 11, wherein the polishing tool uses an auxiliary axis motor or a wrist axis of the robot. Control device according to any one of claims 1 to 7, wherein the specified work is a deburring work, the end effector is a grinding machine and the movement speed of the end effector is a rotational speed of the grinding machine. Control device according to claim 13, wherein the grinding machine uses an additional axis motor or a wrist axis of the robot.