Control device, robot system, and program
The control device automates force control parameter adjustment for robotic screw fastening, enhancing usability and efficiency by switching between operation modes based on load detection, thus addressing the challenge of user-friendly parameter teaching.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- FANUC LTD
- Filing Date
- 2024-12-18
- Publication Date
- 2026-06-25
Smart Images

Figure JP2024044798_25062026_PF_FP_ABST
Abstract
Description
Control devices, robotic systems, and programs
[0001] This disclosure relates to control devices, robotic systems, and programs.
[0002] A robot system is known 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. In this regard, Patent Document 1 describes a robot system equipped with a function to automatically set some of the operation parameters related to force control. Furthermore, Patent Document 2 describes a robot system capable of performing screw tightening work by force control using a screw tightening machine mounted on the robot.
[0003] Japanese Patent Publication No. 2019-126894 Japanese Patent Publication No. 2002-331428
[0004] The process of automatically fastening screws using force control requires positioning the screw tightening machine at the starting position, properly positioning and rotating the screw in the screw hole, and finally, firmly fixing it in the screw hole. It is generally difficult for users to properly teach the force control parameters necessary to achieve this type of screw fastening. Therefore, there is a need for control devices, robot systems, and programs that enable users to properly teach the force control parameters for force-controlled fastening operations in a more user-friendly format.
[0005] One aspect of the present disclosure is a control device for controlling a robot, comprising: a force control unit that performs force control based on information relating to forces and moments acting on the robot; a load determination unit that determines the state of the load on the robot's axis based on the information; and an operation mode switching unit that switches the operation mode in the force control based on the result of the determination by the load determination unit.
[0006] These and other objects, features, and advantages of the present invention will become even clearer from the detailed description of typical embodiments of the present invention shown in the accompanying drawings.
[0007] This figure shows the equipment configuration of a robot system according to one embodiment. This is a functional block diagram of the robot system. This figure illustrates the phases of the screw tightening operation. This figure shows an example of a screen showing the load monitoring of each axis by the load determination unit. This figure shows an example of a screen showing the setting of force control parameters in the normal screw tightening mode. This figure shows an example of a screen showing the setting of force control parameters in the high-torque screw tightening mode. This figure shows the teaching process of force control parameters according to this embodiment. This figure illustrates the automatic teaching of the starting position in the high-torque screw tightening mode. This figure illustrates the automatic teaching of the starting position in the high-torque screw tightening mode. This figure illustrates the search for the attitude of the screw tightening machine in the high-torque screw tightening mode. This figure illustrates the details of the calculation of forces and moments acting on each axis by the load determination unit.
[0008] Next, embodiments of the present disclosure will be described with reference to the drawings. In the drawings, similar components or functional parts are given the same reference numerals. For ease of understanding, the scale of these drawings has been appropriately changed. Furthermore, the embodiments shown in the drawings are just one example of how to carry out the present invention, and the present invention is not limited to the illustrated embodiments.
[0009] Figure 1 shows the equipment configuration of a robot system 100 according to one embodiment. As shown in Figure 1, the robot system 100 comprises a robot 10, a robot control device 20 that controls the robot 10, and a teaching control panel 30 connected to the robot control device 20. A screw tightening machine 60, which serves as an end effector, is attached to the flange 11 of the wrist portion of the robot 10 via a mounting plate 51. A force sensor (force detector) 70 for detecting external forces is attached between the flange 11 of the wrist portion and the mounting plate 51. In the above configuration, the robot system 100 can set the screw tightening machine 60 to a desired position and orientation using the robot 10, and make the robot 10 perform a force-controlled screw tightening operation based on the detected value detected by the force sensor 70.
[0010] As an example, robot 10 is assumed to be a 6-axis vertical articulated robot. However, various types of robots may be used as robot 10, such as horizontal articulated robots, parallel link robots, and dual-arm robots, depending on the task to be performed. Figure 1 shows an example configuration in which a screw tightening machine 60 is mounted as an end effector on robot 10, but various types of end effectors can be attached to robot 10 depending on the task.
[0011] The robot control device 20 controls the operation of the robot 10 according to an operation program or commands from the teaching control panel 30. The robot control device 20 may have a hardware configuration as a general computer, including a processor 21, memory (ROM, RAM, non-volatile memory, etc.), storage unit 22, operation unit, input / output interface, network interface, etc. (see Figure 2).
[0012] The teaching control panel 30 is used as an operating terminal for teaching the robot 10 and performing various settings. A teaching device consisting of a tablet terminal or the like may be used as the teaching control panel 30. The teaching control panel 30 may have a hardware configuration as a general computer, including a processor, memory (ROM, RAM, non-volatile memory, etc.), storage device, operation unit, display unit 31 (see Figure 2), input / output interface, network interface, etc.
[0013] The screw tightening machine 60 is, as an example, an angle-type screw tightening machine (nut runner). The screw tightening machine 60 comprises a main body 61 that includes a control unit 161 and a motor 162 (see Figure 2), and a head 62 connected to the tip of the main body 61. The head 62 holds a socket 65 as a tool. A screw 81 is held in the socket 65. The screw tightening machine 60 is connected to a robot control device 20, and, according to commands from the robot control device 20, tightens and fixes the screw 81 into the screw hole of the object.
[0014] The screw tightening machine 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 tightening machine 60 to a desired position and orientation and perform screw tightening work on the object.
[0015] The force sensor 70 is a six-axis force sensor that detects forces acting in the mutually orthogonal X, Y, and Z axis directions, as well as moments around each axis. In this embodiment, the external force acting on the robot 10 is detected by the force sensor 70, but instead of the force sensor, the external force may be detected by the detection values of torque sensors provided on each axis of the robot.
[0016] Figure 2 is a functional block diagram of the robot system 100. As shown in Figure 2, the robot control device 20 includes an motion control unit 121, a force control unit 122, a force data processing unit 123, a load determination unit 124, a parameter adjustment unit 125, a position and attitude adjustment unit 126, an operation mode switching unit 127, a setting unit 128, and a search unit 129. These functional blocks may also 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, such as a non-volatile memory or a hard disk drive. The storage unit 22 stores various setting information, including an operation program for controlling the robot 10, force control parameters, operation parameters, and reference values for load determination.
[0018] The motion control unit 121 controls the movement of the robot 10 according to the motion program or according to commands from the teaching control panel 30. The robot control device 20 includes a servo control unit (not shown) that performs servo control on the motors 111 of each axis according to the commands for each axis generated by the motion control unit 121.
[0019] The force data processing unit 123 provides a function to calculate external forces (force and moment) acting on a predetermined part of the robot 10 (such as the screw tightening machine 60) based on the detected 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 tip of the robot 10's wrist in the coordinate system and the relative position information of the force sensor 70 with respect to the tip of the wrist. Based on the position, orientation, and detected values of the force sensor 70, the force data processing unit 123 can calculate the magnitude of the force and moment, as well as the direction of the force and moment, in an arbitrary coordinate system pre-set for the robot 10.
[0020] The force control unit 122 performs force control based on the force information calculated by the force data processing unit 123 and predetermined force control parameters. The force control may include impedance control, damping control, or hybrid control. The motion control unit 121 works in conjunction with the force control unit 122 to manage the operation performed by the force control.
[0021] The load determination unit 124 has the function of calculating, monitoring, and determining the load on each axis of the robot 10. The storage unit 22 stores tolerance values (thresholds) for multiple directional components of the load acting on each joint. For example, as tolerance values, for the joint axis J1 of the first joint DA1, the storage unit 22 stores tolerance values for the force in the direction along the joint axis J1, the moment around the joint axis J1, the force in an arbitrary direction perpendicular to the joint axis J1, and the moment around an arbitrary axis perpendicular to the joint axis J1. Each tolerance value can be set by the load capacity of the motor, reducer, bearing, etc. of each joint. The load determination unit 124 calculates the load acting on each joint based on the force and moment components detected by the force sensor 70 and the posture information of the robot 10 at the time the force was detected (rotational position information of each joint, etc.). The load determination unit 124 can calculate the force and moment components of the load acting on each joint in multiple directions. The load determination unit 124 can determine whether the load on each axis exceeds a threshold by comparing the calculated force and moment in multiple directions for each joint axis with the allowable values for the force and moment in multiple directions stored in the memory unit 22. The load determination unit 124 may also determine that the load on a joint axis exceeds the allowable value if any of the force and moment in multiple directions for that axis exceeds the allowable value. Details of how the load determination unit 124 calculates the force and moment acting on each axis will be described later with reference to Figure 11.
[0022] Furthermore, the load determination unit 124 has the function of determining that the robot 10 is in a normal screw tightening state when the load on all axes is 100% or less of the allowable load of each axis, and determining that it is in a high-torque screw tightening state when the load on at least one axis exceeds 100% of the allowable load of that axis.
[0023] The position and orientation adjustment unit 126 provides the function of adjusting the position and orientation of the robot 10 (end effector) according to a command.
[0024] The parameter adjustment unit 125 works in conjunction with the position and orientation adjustment unit 126 to provide a function that automatically adjusts force control parameters while force-controlled operations are being performed. For example, the parameter adjustment unit 125 can search for appropriate force control parameters (pressing force, force control gain, etc.) by repeatedly having the robot 10 perform force-controlled operations (operations involving position and orientation correction in screw tightening operations, precision fitting operations, etc.) while changing the force control parameters based on the load determination results for each axis by the load determination unit 124.
[0025] The operation mode switching unit 127 provides a function to switch the operation mode of force control based on the load determination result of the load determination unit 124 for each axis. The operation control unit 121 and the force control unit 122 can execute force control operations by applying force control parameters corresponding to the operation mode switched by the operation mode switching unit 127.
[0026] The setting unit 128 provides functions for setting (teaching) functions related to the operation program. The functions of the setting unit 128 include providing a user interface for making detailed settings for each icon in programming using icons corresponding to various functions of the robot. The setting unit 128 may also have a function to automatically switch the teaching mode depending on the type of force control parameter to be taught in accordance with the switching of the operation mode. Switching of the teaching mode may be performed by providing a user interface screen corresponding to the operation mode.
[0027] The setting unit 128 may also have a function to automatically adjust the position and orientation of the robot 10 (end effector) so that the robot 10 (end effector) takes the position and orientation required according to the operating mode.
[0028] The search unit 129 works in conjunction with the position and orientation adjustment unit 126 and the parameter adjustment unit 125 to provide a function for searching for the position and orientation of the robot 10 (end effector) such that the load on each axis of the robot 10 falls below the target load.
[0029] The screw tightening machine 60 includes a motor 162 for rotating the socket 65 and a control unit 161 for driving and controlling the motor 162. The control unit 161 drives and controls the motor 162 according to commands from the operation control unit 121 (including the specification of operation parameters, etc.). The control unit 161 may be composed of a microcomputer chip incorporating, for example, a CPU, memory (ROM, RAM, non-volatile memory, etc.).
[0030] As will be explained in detail below, the robot control device 20 according to this embodiment enables accurate control or teaching of the screw fastening work by the robot 10 by switching the force control operation mode according to the result of the load determination unit 124's determination of the load state of each axis.
[0031] Referring to Figure 3, the operation modes of force control in screw fastening operations will be explained. Generally, in screw fastening operations using force control, the robot 10 (socket 65) is first positioned at the taught screw fastening start position, and while correcting positional and orientation errors, it inserts the screw 81 into the screw hole and fastens and fixes the screw 81 in the screw hole. Such screw fastening operations can be divided into three phases, as shown by arrows A1, A2, and A3 in Figure 3.
[0032] The first phase, shown on the left side of Figure 3 by arrow A1, is a phase in which the positional error and attitude error (position and attitude error) of the robot 10 (socket 65), which is positioned at the screw tightening start position, are corrected using force control. Here, the positional error can be defined as the displacement of the center of the tip of the screw 81 relative to the center line C1 of the screw hole 91, expressed as a distance denoted by sign d. The attitude error can be defined as the inclination of the central axis C2 of the screw 81 (socket 65) relative to the center line C1 of the screw hole 91, as shown as an angle denoted by sign θ. In the first phase, the positional error d and attitude error θ are corrected by force control.
[0033] The second phase in the center of Figure 3, indicated by arrow A2, is the phase in which the position error d1 and attitude error θ1 are close to convergence, and the screw 81 is advanced in the screw tightening axis direction using force control to begin screw tightening. The third phase on the right side of Figure 3, indicated by arrow A3, is the phase in which the screw 81 is advanced in the axial direction using force control to further tighten and fix the screw 81.
[0034] From the perspective of the load on each shaft as determined by the load determination unit 124, the first and second phases of the screw fastening operation are positioned as operating modes in which the load on each shaft during screw tightening is 100% or less of the allowable load, and the third phase (retightening) is positioned as an operating mode in which there are shafts in which the allowable load exceeds 100% during screw tightening. In this embodiment, the operating mode in which the load on each shaft during screw tightening is 100% or less of the allowable load is referred to as the "normal screw tightening mode," and the operating mode in which there are shafts in which the allowable load exceeds 100% during screw tightening is also referred to as the "high-torque screw tightening mode." Different force control parameter sets are used for the normal screw tightening mode and the high-torque screw tightening mode.
[0035] Figure 4 shows an example of a load monitoring screen 200 provided by the load determination unit 124's load monitoring function for each axis. For example, the load determination unit 124 may determine that it is OK if the load on each axis is 100% or less of the allowable load, determine that it is a warning level if the load on each axis is between 101% and 120%, and determine that it is an overload state (NG) if the load on each axis exceeds 120%. The monitoring screen 200 has an area at the bottom for displaying the screw tightening program PR1, and the monitoring results of the load on each axis for each screw tightening operation are displayed in the center. Here, the monitoring results for five screw tightening operations (from top to bottom, program names A_THREAD_2, A_THREAD_2, A_THREAD_2, A_THREAD_2, A_THREAD_3UP) are shown. Of these five screw tightening operations, the first to third screw tightening operations (reference numerals 211, 212, and 213) all had loads below the allowable load, and the monitoring results shown in the monitoring results column 220 are OK. In the fourth screw tightening operation (indicated by reference numeral 214), the loads on the fifth and sixth shafts reached 111% and 114%, respectively, so the monitoring result is a warning state ("WARN"). In the sixth screw tightening operation (indicated by reference numeral 215), the loads on the fifth and sixth shafts exceeded 120%, so the monitoring result is NG ("NOT OK").
[0036] Next, with reference to Figures 5 and 6, the setting screens (user interfaces) used for teaching in the normal screw tightening mode and the high-torque screw tightening mode will be described. Here, the robot control device 20 is configured to accept programming using icons representing robot function commands, and the setting unit 128 is configured to provide a function for detailed settings of each icon. Figures 5 and 6 each show the setting screen 300 for the function icon 301 corresponding to the screw tightening function, provided by the function of the setting unit 128. The setting unit 128 displays the setting screen 300 on the display unit 31 of the teaching operation panel 30 and accepts input to the setting screen 300 from user operations via the operation unit of the teaching operation panel 30.
[0037] FIG. 5 is a diagram showing an example of a setting screen 300 for a normal screw tightening mode. The setting screen 300 for the normal screw tightening mode may be provided by setting the button for switching on / off the normal screw tightening mode to on in the designation column 321 at the lower part of the setting screen 300. On the other hand, by turning on the button for switching on / off the high torque screw tightening mode in the designation column 322 at the lower part of the setting screen 300, it is also possible to switch to the setting screen 400 for the high torque screw tightening mode shown in FIG. 6. As will be described later, the setting unit 128 can also provide a function of automatically switching the teaching mode according to the operation mode.
[0038] As shown in FIG. 5, the setting screen 300 has a display area 300a at the upper part for displaying the screw tightening program PR1. The setting screen 300 includes, as force control parameters to be set, a target force, a traveling speed, a screw tightening depth, a contact determination threshold value, and a force control gain. The contact determination threshold value is a threshold value for determining that the screw has contacted the object to be fastened. In the normal screw tightening mode, as the force control gain to be adjusted, six force control gains including the values (X, Y, Z) in each axis direction and the values (W, P, R) related to the moments around each axis are included. The user can set the target force by entering a numerical value in the designation column 311, set the traveling speed by entering a numerical value in the designation column 312, set the screw tightening depth by entering a numerical value in the designation column 313, set the contact determination threshold value by entering a numerical value in the designation column 314, and can set the six force control gains by entering a numerical value in the designation column 315a.
[0039] These designation columns of the setting screen 300 may be automatically set with standard values (target force: 50.000 N, traveling speed: 10.000 mm / s, contact determination value: 5.000 N, etc.) in the normal screw tightening mode as shown in FIG. 5 as default values.
[0040] The user can set the force control parameters on the settings screen 300 and execute the screw tightening operation in normal screw tightening mode by pressing the execute button 321b. In this case, it is assumed that necessary operations such as teaching the starting position of screw tightening have been performed.
[0041] Figure 6 shows an example of a setting screen 400 for a high-torque screw tightening mode. As shown in Figure 6, the setting screen 400 has a display area 400a at the top for displaying the screw tightening program PR1. The setting screen 400 includes target force, forward speed, screw tightening depth, and force control gain as force control parameters to be set. The user can set the target force, forward speed, screw tightening depth, and force control gain by entering numerical values in the specification fields 311, 312, 313, and 315b on the setting screen 400. The setting screen 400 also includes a specification field 331 for the screw tightening start position. Note that the screw tightening start position in the high-torque screw tightening mode can be automatically set by the setting unit 128, as will be described later. The setting screen 400 also includes a specification field 321 for switching the normal screw tightening mode on and off, and a specification field 322 for switching the high-torque screw tightening mode on and off. By pressing the execute button 322b in the designated field 322, the user can perform screw tightening in a high-torque screw tightening mode using the set force control parameters.
[0042] On the setting screen 400 for the high-torque screw tightening mode, the contact determination threshold value that was displayed on the setting screen 300 for the normal screw tightening mode is omitted. This is because in the high-torque screw tightening mode, the screw tightening is in progress and the contact determination is not performed. Also, on the setting screen 400, the setting of the force control gain is only in the Z-axis direction. This is because in the high-torque screw tightening mode, as shown in FIG. 3, the screw 81 is in a state of progressing along the center line C1 of the screw hole 91, and the setting of the force control gain in directions other than the Z-axis is not required or the standard value can be used. Thus, in the present embodiment, the force control parameters to be set can be adjusted to the minimum necessary state according to the operation mode. Such adjustment of the force control parameters for teaching is provided as a function of the setting unit 128.
[0043] In these designated fields on the setting screen 400, standard values (target force: 20,000 N, progress speed: 20,000 mm / s, etc.) in the high-torque screw tightening mode as shown in FIG. 6 may be automatically set as default values. Here, in the high-torque screw tightening mode, since the load on each axis becomes large, the target force is set smaller than in the normal screw tightening mode, while the progress speed is set higher than in the normal screw tightening mode because the axis of the screw 81 and the center line of the screw hole 91 coincide.
[0044] FIG. 7 is a flowchart showing the teaching process of the screw fastening operation involving switching of the operation mode according to the present embodiment. The overall flow of the teaching process in FIG. 7 is assumed to be controlled by the operation control unit 121 (processor 21).
[0045] First, in step S1, the setting of the necessary force control parameters by the user is received. Here, the setting unit 128 may receive the setting of the force control parameters in the normal screw tightening mode via the setting screen 300 and the setting of the force control parameters in the high-torque screw tightening mode via the setting screen 400. Note that the process from step S2 may be started by pressing the execution button 321b on the setting screen 300.
[0046] Next, the motion control unit 121 performs a process to automatically adjust the force control parameters so that the load on each axis of the robot 10 is 100% or less, by repeating the process from steps S2 to S4. This function can be performed by the cooperation of the load determination unit 124 and the parameter adjustment unit 125. Specifically, first, in step S2, the motion control unit 121 performs force-controlled screw tightening in the default normal screw tightening mode. Next, the load determination unit 124 feeds back the load status of all axes being monitored during force-controlled screw tightening to the force control side (specifically, the motion mode switching unit 127) (step S3). If the load on at least one axis of the robot 10 exceeds 100% of the allowable load of that axis (S4: NO), the process returns to step S2, the force control parameters are automatically adjusted (step S2), and the process from steps S2 to S4 is repeated. Furthermore, the adjustment of the force control parameters in the loop processing from steps S2 to S4 may be performed by increasing or decreasing the value of each force control parameter set in step S1 by a fixed number of steps.
[0047] If, even after adjusting the force control parameters within the adjustable range, the load on at least one axis does not fall below 100% (S4: NO - the load does not fall below 100% even with automatic adjustment), the process proceeds to step S5.
[0048] If the load on all axes is 100% or less of their respective allowable loads (S4: YES), the process proceeds to step S13.
[0049] In step S5, when it is determined by the load determination unit 124 that the screw tightening state is in a high torque state, the operation mode switching unit 127 switches the operation mode to the high torque screw tightening mode. When transitioning from step S4 to step S5, a message notifying the transition of the operation mode, such as "It is necessary to switch to the high torque screw tightening mode. After automatically teaching the correct position, turn on the high torque screw tightening mode." may be displayed on the display screen of the display unit 31. Also, the transition from step S4 to step S5 may be executed on the condition that the user performs an operation permitting the transition in response to the above notification message.
[0050] In step S6, the setting unit 128 automatically teaches the starting position where the position and orientation of the screw 81 held by the socket 65 have no error with respect to the axis of the screw hole. The automatic teaching of the starting position in the high torque screw tightening mode in step S6 will be described with reference to FIGS. 8 and 9. On the left side of FIG. 8, a state where the screw tightening is in the first phase described above is shown. The setting unit 128 records the position P A (screw tightening start position) of the socket 65 (screw tightening machine 60) in this case. On the right side of FIG. 8, a state where the screw tightening is in the second phase described above is shown. In the second phase, the central axis of the screw 81 (socket 65) is substantially aligned with the center line C1 of the screw hole 91. The setting unit 128 records the position P B of the socket 65 (screw tightening machine 60) at this stage. Note that FIGS. 8 (and FIGS. 9 - 10) illustrate the states of each axis direction of the tool coordinate system C.
[0051] As shown in FIG. 9, the setting unit 128 retreats from the position P B in the Z-axis direction of the tool coordinate system C to the position P A corresponding to the position P C and sets it as the starting position in the high torque screw tightening mode. That is, based on the positions P A , P B , a right triangle T is formed such that the side P B P C is along the Z-axis of the tool coordinate system C, and the position P CThis setting allows for the establishment of an accurate position with no error relative to the center line of the screw hole 91 as the starting position for the high-torque screw tightening mode.
[0052] Next, the motion control unit 121 performs a process to automatically adjust the force control parameters so that the load on each axis of the robot 10 is 100% or less, by repeating the process from steps S7 to S9. This function can be performed by the cooperation of the load determination unit 124 and the parameter adjustment unit 125. Specifically, first, in step S7, the motion control unit 121 performs force-controlled screw tightening in high-torque screw tightening mode. Next, the load determination unit 124 feeds back the load status of all axes being monitored during force-controlled screw tightening to the force control side (specifically, the motion mode switching unit 127) (step S8). If the load on at least one axis of the robot 10 exceeds 100% of the allowable load of that axis (S9: NO), the process returns to step S7, the force control parameters are automatically adjusted (step S7), and the process from steps S7 to S9 is repeated. In addition, the adjustment of the force control parameters in the loop processing from steps S7 to S9 may be performed by increasing or decreasing the values of each force control parameter set in step S1 for the high-torque screw tightening mode in fixed steps.
[0053] If, even after adjusting the force control parameters within the adjustable range, the load on at least one axis does not fall below 100% (S9: NO - the load does not fall below 100% even with automatic adjustment), the process proceeds to step S10.
[0054] If the load on all axes is 100% or less of their respective allowable loads (S9: YES), the process proceeds to step S13.
[0055] In step S10, the search unit 129 automatically searches for an appropriate posture. The automatic search for an appropriate posture by the search unit 129 will be explained with reference to Figure 10. Here, the search unit 129 rotates the posture of the screw tightening machine 60 (robot 10) by, for example, 10 degrees around the Z axis of the tool coordinate system C. This executes a series of operations in the high-torque screw tightening mode from step S7 to S11, and results in force control parameter settings where the load on all axes is 100% or less.
[0056] Furthermore, by changing the posture of the screw tightening machine 60 in step S10, the position and posture of the robot 10 change, which changes the direction of the force acting on each axis of the robot 10. This makes it possible to distribute the force acting on the axis with a small overload capacity (allowable load) (closer to the tip of the robot), and by changing the distance from the point where the force is applied to the axis (the distance between the point where the force acts and the center of the rotation axis), it becomes possible to distribute the load to the axis with a large overload capacity. As a result, the search unit 129 can automatically adjust the posture of the screw tightening machine 60 and search for a posture in which all axes are below their respective target loads.
[0057] In step S11, the search unit 129 determines whether the load on each axis will not drop to the target load (100% or less) even if all orientations of the screw tightening machine 60 are checked at the current position of the screw tightening machine 60 (determination in steps S7 to S9). If all orientations of the screw tightening machine 60 have not been checked (S11: NO), the process from step S7 is repeated as described above. If all orientations of the screw tightening machine 60 have been checked and the load on each axis will not drop to the target load (100% or less) (S11: YES), the process proceeds to step S12. Note that the above search operation can be achieved through the cooperation of the search unit 129 and the position and orientation adjustment unit 126.
[0058] In the situation where a YES determination is made in step S11, it is determined that screw tightening in high-torque screw tightening mode cannot be properly performed. Therefore, in step S12, the operation control unit 121 displays an alarm message on the display screen of the display unit 31 indicating that it is necessary to consider a different position and orientation as the starting position and orientation for screw tightening. The teaching process then ends.
[0059] In step S4 (S9), the system was configured to return to step S2 (S7) and adjust the force control parameters if the load on at least one axis did not fall below 100% of the allowable value. However, the processing in step S4 (S9) may be configured to return to step S2 (S7) and adjust the force control parameters if an excessive force is applied to the robot, the robot oscillates, or the load on at least one axis does not fall below 100% of the allowable value. An excessive force applied to the robot refers to a case where the force (force or moment) applied to the robot exceeds a threshold, and the robot oscillates refers to a case where the force (force or moment) as a response to the force control oscillates. Furthermore, the system may be configured to proceed to step S5 (S10) if there is no excessive force applied to the robot, the robot does not oscillate, but the load on any axis does not fall below 100% of the allowable value even after automatic adjustment.
[0060] After the above processing, in step S13, the setting unit 128 updates the force control parameters in each operating mode (each teaching mode) to the adjusted force control parameters. In step S13, the user may be allowed to manually adjust the force control parameters in each teaching mode.
[0061] Through the teaching process described above, optimal force control parameters can be obtained that prevent overload, excessive force, and robot oscillation in each axis.
[0062] This teaching process makes it possible to switch operating modes according to the load state of each axis to achieve proper screw tightening operation, and also allows the user to easily perform appropriate teaching according to the operating mode by switching the teaching mode according to the operating mode.
[0063] Furthermore, the above-described teaching process can also be described as a process that determines the load state of the robot's axes based on the detection values of force sensors mounted on the robot, and based on the result of this determination, switches the operation mode of force control, and thereby switches the teaching mode.
[0064] Here, we will explain in detail how the load determination unit 124 calculates the force and moment acting on each axis. For the sake of explanation, we will refer to the robot mechanism shown in Figure 11. Figure 11 shows the configuration of a 6-axis articulated robot, consisting of a first arm 4 located at the tip of the rotating body, a second arm 5 rotatably supported relative to the tip of the first arm 4, and a 3-axis wrist unit 6 directed at the tip of the second arm 5. The wrist unit 6 comprises a second wrist element 6b rotatably supported relative to a first wrist element 6a, and a third wrist element 6c rotatably supported relative to the second wrist element 6b around axis J6. Joint A6 is a rotary joint that uses a motor to rotate the second wrist element 6b and the third wrist element 6c relative to each other around axis J6.
[0065] A tool 7 is attached to the third wrist element 6c for performing work on a workpiece. The tool 7 is, for example, a nut runner used for screw tightening. The sensor S detects the force Fs acting on the tip of the third wrist element 6c due to the reaction force (external force) F acting on the tip of the tool 7 as a result of the work.
[0066] When a reaction force F acts on the tool 7, the force Fs acting on the third wrist element 6c is detected by a sensor S attached between the tool 7 and the third wrist element 6c at predetermined sampling intervals. Then, the six directional components of the detected force Fs in the sensor coordinate system are detected. Subsequently, the six directional components of the force Fs detected by the sensor S are passed to the load determination unit 124.
[0067] Next, the load determination unit 124 receives force Fs from the sensor S and also receives rotation angle information of the motors of each joint axis at the time the sensor S detected force Fs, which is fed back to the motion control unit 121. Then, based on the force Fs and the rotation angle information of each motor, the load determination unit 124 geometrically calculates the forces and moments acting on each joint in multiple directions. The load determination unit 124 calculates the axial force and moment around the axis for each joint with respect to its respective axis. In addition, the load determination unit 124 calculates the maximum force and moment among the axial forces and moments around the axis perpendicular to each axis.
[0068] Specifically, for example, in order to calculate the load f6 acting on joint A6 due to the external force F input to tool 7, first, the calculations shown in equations (1) and (2) below are performed. This calculates the axial force f6Z and moment f6R about the axis of joint A6 with respect to the axis J6 shown in Figure 11. f6Z = f・s ... (1) f6R = (r × f + M)・s ... (2) Here, f and M are the force vector and moment vector of the force Fs detected by sensor S, respectively, s is the unit vector in the direction of axis J6, and r is the position vector from axis J6 to the point of application of the external force input to tool 7.
[0069] Furthermore, by performing the calculations in equations (3) and (4) below, for example, the axial force f6Y and moment f6Q about an arbitrary axis perpendicular to the axis J6 of joint A6 shown in Figure 11 can be calculated. f6Y = |s × (f × s)| ... (3) f6Q = |s × ((r × f + M) × s)| ... (4)
[0070] The load determination unit 124 can calculate the force and moment in each of the four directions acting on each joint due to the external force F by performing similar calculations.
[0071] As described above, according to this embodiment, it is possible to properly teach the force control parameters for force-controlled fastening operations in a format that is easier for the user to understand.
[0072] More specifically, this embodiment provides the following benefits: Automatic teaching of position and automatic adjustment of force control parameters are performed even without the user's knowledge of adjusting force control parameters, thus improving teaching usability. A simple teaching mode is provided for high-torque screw tightening modes, allowing users to easily teach high-torque screw tightening modes. Therefore, the overall cycle time of the teaching process is reduced, and teaching can be performed more efficiently. Parameter settings that protect the robot's mechanism can be achieved, improving safety.
[0073] In the embodiments described above, it should be understood that not all of the functional elements in the functional block diagram shown in Figure 2 are essential components. Furthermore, the functional distribution in the functional block diagram in Figure 2 is illustrative, and various modifications can be made to the functional distribution of the functional blocks. For example, there may be a configuration in which at least some of the functional blocks placed in the robot control device 20 in Figure 2 (for example, the setting unit 128) are placed in the teaching operation panel 30.
[0074] Since the teaching control panel 30 functions as an operating terminal for the robot control device 20, the functions of the teaching control panel 30 can also be defined as the functions of the robot control device 20.
[0075] In the embodiments described above, a normal screw tightening mode and a high-torque screw tightening mode were described as operating modes for screw tightening. However, as an operating mode for screw tightening, there may also be an operating mode (low-torque mode) in which the progress speed of force control is increased when the load on all six axes falls below a predetermined value (such as 50%). In this case, the load determination unit 124 and the operating mode switching unit 127 may also determine the low-torque mode and switch to the operating mode available for screw tightening, and the setting unit 128 may be configured to provide a teaching mode corresponding to the low-torque mode.
[0076] The configuration described in the above-mentioned embodiment can be applied to control devices for various types of machines that are equipped with tools and capable of performing force-controlled operations.
[0077] In the functional block diagram of Figure 2, each functional block described as a function of the robot control device or teaching control panel may be realized by one or more processors of these devices executing various software stored in a memory device, or in this case, part of the function may be made up of hardware such as discrete circuits (i.e., the functional block may be realized by a combination of a processor and discrete circuits), or the functions shown in the functional block diagram may be realized by a hardware-based configuration such as an ASIC (Application Specific Integrated Circuit).
[0078] The program that performs various processes such as the teaching process (Figure 7) in the above-described embodiment, or the computer program for performing the processes of each part of the processor 21 of the robot control device, may be provided in the form of a program product recorded on various computer-readable recording media (for example, semiconductor memory such as ROM, EEPROM, flash memory, magnetic recording media, or optical recording media such as CD-ROM, DVD-ROM).
[0079] While this disclosure has been described in detail, it is not limited to the individual embodiments described above. These embodiments can be added, replaced, modified, partially deleted, etc., in any way that does not depart from the gist of this disclosure or from the spirit of this disclosure derived from the claims and their equivalents. Furthermore, these embodiments can be implemented in combination. For example, the order of operations and processes in the embodiments described above are given as examples only and are not limited thereto. The same applies when numerical values or mathematical formulas are used in the description of the embodiments described above.
[0080] The following further notes apply to the above embodiments and modifications. (Note 1) A control device (20) for controlling a robot (10), comprising: a force control unit (122) that performs force control based on information relating to forces and moments acting on the robot (10); a load determination unit (124) that determines the state of the load on the axes of the robot based on the information; and an operation mode switching unit (127) that switches the operation mode in the force control based on the result of the determination by the load determination unit. (Note 2) The control device (20) according to Note 1, wherein the operation mode includes a first operation mode that is applied when the load determination unit (124) determines that the load on all of the axes of the robot (10) is below a predetermined criterion; and a second operation mode that is applied when the load determination unit (124) determines that the load on at least one of the axes of the robot exceeds the predetermined criterion. (Note 3) The control device (20) according to Note 1 or 2, further comprising a parameter adjustment unit (125) that adjusts the force control parameters in the force control while automatically adjusting the position and orientation of the robot (10) based on the result of the determination by the load determination unit (124). (Note 4) The control device (20) according to any one of Notes 1 to 3, wherein the force control parameters in the force control include a target force, a contact determination threshold, a travel speed, and a force control gain. (Note 5) The control device (20) according to any one of Notes 1 to 4, further comprising a setting unit (128) for setting the force control parameters in the force control. (Note 6) The control device (20) according to Note 5, wherein the setting unit (128) has a function to automatically teach a teaching position as a starting position according to the operation mode. (Note 7) The control device (20) according to Note 5 or 6, wherein the setting unit (128) switches a teaching mode depending on the type of force control parameter to be set according to the operation mode. (Note 8) The control device (20) described in Note 7, wherein the setting unit (128) is a user interface for setting the force control parameters, and displays a user interface on a display screen in which the type of force control parameters to be set according to the teaching mode has been adjusted.(Note 9) The control device (20) according to any one of Notes 1 to 8, further comprising a search unit (129) for searching for a posture of the robot in which the load on the axis falls below a target load. (Note 10) The control device (20) according to any one of Notes 1 to 9, wherein the load determination unit (124) has a function of monitoring the load on the axis of the robot during the force control. (Note 11) A robot system (100) comprising: a robot (10); a force detector (70) mounted on the robot (10) and capable of detecting forces and moments acting on the robot (10); and a control device (20) for controlling the robot, wherein the control device (20) comprises: a force control unit (122) that performs force control based on the detected value from the force detector; a load determination unit (124) that determines the state of the load on the axis of the robot based on the detected value from the force detector; and an operation mode switching unit (127) that switches the operation mode in the force control based on the result of the determination by the load determination unit. (Note 12) A program for causing a computer processor to execute a procedure for determining the load state of the robot's axis based on the detection value of a force sensor mounted on the robot, and a procedure for switching the operating mode in force control based on the result of the determination.
[0081] 10 Robot 11 Flange 20 Robot control device 30 Teaching control panel 31 Display unit 51 Mounting plate 60 Screw tightening machine 61 Main body 62 Head unit 65 Socket 70 Force sensor 81 Screw 100 Robot system 111 Motor 121 Motion control unit 122 Force control unit 123 Force data processing unit 124 Load determination unit 125 Parameter adjustment unit 126 Position and attitude adjustment unit 127 Operation mode switching unit 128 Setting unit 161 Control unit 162 Motor
Claims
1. A control device for controlling a robot, comprising: a force control unit that performs force control based on information relating to the force and moment acting on the robot; a load determination unit that determines the state of the load on the axis of the robot based on the information; and an operation mode switching unit that switches the operation mode in the force control based on the result of the determination by the load determination unit.
2. The control device according to claim 1, wherein the operating mode includes a first operating mode applied when the load determination unit determines that the load on all of the axes of the robot is below a predetermined criterion, and a second operating mode applied when the load determination unit determines that the load on at least one of the axes of the robot exceeds the predetermined criterion.
3. The control device according to claim 1 or 2, further comprising a parameter adjustment unit that adjusts the force control parameters in the force control while automatically adjusting the position and posture of the robot based on the result of the determination by the load determination unit.
4. The control device according to any one of claims 1 to 3, wherein the force control parameters in the force control include a target force, a contact determination threshold, a travel speed, and a force control gain.
5. The control device according to any one of claims 1 to 4, further comprising a setting unit for setting force control parameters in the force control.
6. The control device according to claim 5, wherein the setting unit has a function to automatically teach a teaching position as a starting position according to the operating mode.
7. The control device according to claim 5 or 6, wherein the setting unit switches a teaching mode that depends on the type of force control parameter to be set, according to the operating mode.
8. The control device according to claim 7, wherein the setting unit is a user interface for setting the force control parameters, and displays a user interface on a display screen in which the types of force control parameters to be set according to the teaching mode have been adjusted.
9. The control device according to any one of claims 1 to 8, further comprising a search unit for searching for a posture of the robot in which the load on the axis falls below a target load.
10. The control device according to any one of claims 1 to 9, wherein the load determination unit has a function of monitoring the load on the axis of the robot during force control.
11. A robot system comprising: a robot; a force detector mounted on the robot and capable of detecting forces and moments acting on the robot; and a control device for controlling the robot, wherein the control device comprises: a force control unit that performs force control based on values detected from the force detector; a load determination unit that determines the load state of the robot's axis based on the values detected from the force detector; and an operation mode switching unit that switches the operation mode in the force control based on the result of the determination by the load determination unit.
12. A program that causes a computer processor to execute a procedure for determining the load state of the robot's axes based on the detection values of force sensors mounted on the robot, and a procedure for switching the operating mode in force control based on the result of the determination.