Method for Adjusting Force Control Parameter and Force Control Parameter Adjustment Device
The method for adjusting force control parameters in robot systems addresses the challenge of balancing speed and oscillation, enabling less experienced operators to set parameters effectively by using higher second-type servo gains and optimization processes, thus enhancing operational efficiency.
Patent Information
- Application Number
- JP2021104753
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-06-24
- Publication Date
- 2025-06-03
- Estimated Expiration
- 2041-06-24
AI Technical Summary
In force control of robot systems, there is a trade-off between operating speed and oscillation, requiring skilled operators to set control parameters effectively, and there is a demand for a technology that allows less experienced operators to set these parameters.
A method for adjusting force control parameters in a robot system that includes a measurement step using second-type servo gains with higher values than first-type servo gains, a parameter update step performing optimization using force measurement values, and a parameter determination step repeating these steps to determine suitable force control parameters.
This method allows even inexperienced operators to set force control parameters that minimize oscillation, ensuring the robot operates efficiently and effectively.
Smart Images

Figure 0007687081000001 
Figure 0007687081000002 
Figure 0007687081000003
Abstract
Description
Technical Field
[0001] The present disclosure relates to a method for adjusting force control parameters and a force control parameter adjustment device.
Background Art
[0002] Conventionally, there is a technology for automatically setting parameters that define the operation of a robot. In the technology of Patent Document 1, the operation adjustment device adjusts the operation command value generated by the robot control device according to the detection result of the external sensor and the constraint conditions given from the outside. The operation command value is a position command value, a speed command value, or an acceleration command value at each time of the end effector. The external sensor is a force sensor, a vision sensor, a tactile sensor, or a touch sensor. Patent Document 1 describes that it is also possible to adjust control parameters instead of operation command values. The control parameters are force control gains related to force control, impedance parameters, gains related to visual servo control, visual impedance parameters, and setting parameters of filters used for feedback control.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] In force control, there is a trade-off relationship between the operating speed of the robot and the ease of oscillation. That is, when the control parameters are set so that the operating speed of the robot increases, oscillation is likely to occur. On the other hand, when the control parameters are set so that oscillation is less likely to occur, the operating speed of the robot decreases. Therefore, the setting of the control parameters for force control is performed by a skilled operator who grasps the relationship between the operating speed of the robot and the ease of oscillation in relation to the numerical values of the force control parameters. There has been a demand for a technology that allows even an operator with little experience to set the control parameters for force control.
Means for Solving the Problem
[0005] According to one aspect of the present disclosure, there is provided a method for adjusting force control parameters used in force control of a robot system. The robot system includes a robot, a force detector capable of measuring an external force applied to the robot, and a control unit that causes the robot to perform an operation by feedback control. The adjustment method includes a measurement step of causing the robot to perform an operation using one or more second-type servo gains corresponding to one or more first-type servo gains used in the control unit when causing the robot system to perform an actual operation, the second-type servo gains having values higher than the corresponding first-type servo gains, and candidate values of the force control parameters, to obtain a force measurement value that is a measured value of the external force; a parameter update step of performing an optimization process on the force control parameters using the force measurement value to obtain new candidate values of the force control parameters; and a parameter determination step of determining the force control parameters used in the force control of the robot system by repeating the measurement step and the parameter update step.
Brief Description of the Drawings
[0006]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Mode for Carrying Out the Invention
[0007] A. First Embodiment: A1. Configuration of the Robot System: FIG. 1 is a perspective view showing the robot system 1 in the embodiment. This robot system 1 includes a robot 100, a force detector 130, an end effector 140, and a robot control device 200. The robot 100 and the robot control device 200 are communicably connected via a cable or wireless communication.
[0008] The robot 100 is a single-arm robot that is used by attaching various end effectors to an arm flange 120 at the tip of an arm 110.
[0009] The arm 110 has six joints J1 to J6. The joints J2, J3, and J5 are bending joints, and the joints J1, J4, and J6 are twisting joints. Each joint is provided with a servo motor 150 and a position sensor 160. The servo motor 150 generates a rotational output for driving each joint. The position sensor 160 detects the angular position of the output shaft of the servo motor 150. For ease of understanding of the technology, in FIG. 1, the servo motor 150 and the position sensor 160 are not shown.
[0010] Various end effectors for performing operations such as gripping and processing on an object are attached to the arm flange 120 at the tip of the joint J6. In this specification, an object handled by the robot 100 is also referred to as a "workpiece".
[0011] The position near the tip of the arm 110 can be set as a tool center point. Hereinafter, the tool center point is referred to as "TCP". TCP is a position used as a reference for the position of the end effector 140. For example, a predetermined position on the rotation axis of the joint J6 can be set as TCP.
[0012] The robot 100 can arrange the end effector at an arbitrary position and in an arbitrary posture within the movable range of the arm 110. A force detector 130 and an end effector 140 are installed on the arm flange 120. The end effector 140 is a gripper in this embodiment.
[0013] The force detector 130 is provided on the robot 100 and can measure the external force applied to the robot 100. Specifically, the force detector 130 is a six-axis sensor. The force detector 130 can detect the magnitudes of the forces parallel to the x-axis, y-axis, and z-axis that are orthogonal to each other in the sensor coordinate system, which is its own coordinate system, and the magnitudes of the torques around the three axes.
[0014] The coordinate system that defines the space where the robot 100 is installed is called the "robot coordinate system". The robot coordinate system is a three-dimensional orthogonal coordinate system defined by an x-axis and a y-axis that are orthogonal to each other on a horizontal plane and a z-axis with the vertically upward direction as the positive direction. The coordinate system shown in FIG. 1 is the robot coordinate system. The rotation angle around the x-axis is represented by Rx, the rotation angle around the y-axis is represented by Ry, and the rotation angle around the z-axis is represented by Rz. Any position in the three-dimensional space can be represented by the positions in the x, y, and z-axis directions, and any orientation in the three-dimensional space can be represented by the rotation angles in the x, y, and z-axis directions. When referred to as "position" in this specification, it may also mean position and orientation. Also, when referred to as "force" in this specification, it may also mean force and torque.
[0015] A workpiece WK2, which is one of the objects of the operation of the robot 100, is placed on the workbench 50. A fitting hole H2 is formed on the upper surface of the workpiece WK2. The fitting hole H2 has a circular cross-section, extends in the negative z-axis direction from the opening on the upper surface of the workpiece WK2, and is a hole with a bottom.
[0016] The end effector 140 is provided on the robot 100 and can hold the workpiece WK1. The workpiece WK1 is a cylindrical part. The outer diameter of the workpiece WK1 is slightly smaller than the inner diameter of the fitting hole H2. The end effector 140 can perform the operation of fitting the workpiece WK1 held by the end effector 140 into the fitting hole H2 of the workpiece WK2.
[0017] The robot control device 200 controls the arm 110 and the end effector 140. The robot control device 200 can cause the robot 100 to perform an imitation operation. The imitation operation is generally an operation that follows an external force. More specifically, in the present embodiment, the imitation operation is an operation in which a part of the workpiece WK1 held by the end effector 140 contacts the workpiece WK2 and is inserted into the fitting hole H2 provided in the workpiece WK2. Note that in the imitation operation, there may be a time interval during which the workpiece WK1 separates from the workpiece WK2. The robot control device 200 performs force control of the robot 100 based on the measured value of the external force by the force detector 130 in the imitation operation.
[0018] Furthermore, the robot control device 200 receives an instruction from an instructor and generates a control program. Also, the robot control device 200 adjusts the force control parameters used in force control. The control program and the force control parameters 226 generated by the robot control device 200 are stored in the memory of the robot control device 200.
[0019] FIG. 2 is a block diagram showing the functions of the robot control device 200. The robot control device 200 includes a processor 210 and a memory 220. The memory 220 includes a volatile memory and a non-volatile memory. The processor 210 realizes various functions by executing a program pre-stored in the memory 220.
[0020] The processor 210 has a control execution unit 250 as a functional unit. The control execution unit 250 causes the robot 100 to perform an operation by executing the program instructions 222 stored in the memory 220 in accordance with the control program 224 stored in the memory 220. The control execution unit 250 causes the robot 100 to perform an operation by feedback control based on the outputs of the position sensor 160, the force detector 130, and the like.
[0021] Processor 210 has a parameter adjustment unit 270 as a functional unit. Processor 210 realizes the function as the parameter adjustment unit 270 by executing a setting program 225 pre-stored in memory 220. The parameter adjustment unit 270 determines the parameters of control program 224. The parameter adjustment unit 270 adjusts, for example, the force control parameters used in the force control of robot system 1.
[0022] FIG. 3 is a diagram showing the force control parameter 226 used in control program 224. The force control parameter 226 is a parameter related to the force control of robot 100. The force control parameter 226 is used during the force control performed according to control program 224.
[0023] The force control parameter 226 includes parameters indicating the "starting point" and "ending point" in each operation (see the upper part of FIG. 3). In this embodiment, the "starting point" and "ending point" of the control point CP of the robot 100 to be controlled are defined in the robot coordinate system. The translational position and rotational position for each axis of the robot coordinate system are defined. Note that the starting point and the ending point may be defined in various coordinate systems.
[0024] Note that in force control, at least a part of the starting point and the ending point may not be defined in one operation. For example, in a certain operation, when collision avoidance or follow-up control is performed so that the force acting in a certain direction becomes 0, the starting point and the ending point in that direction are not defined, and a state where the position can change arbitrarily may be defined so that the force in that direction becomes 0.
[0025] The force control parameter 226 includes the "acceleration / deceleration characteristics" of the TCP in a plurality of operations (refer to the middle part of FIG. 3). According to the acceleration / deceleration characteristics, the speed of the TCP of the robot 100 at each moment when the TCP moves from the start point to the end point of each operation is defined. In the present embodiment, the speed described by the acceleration / deceleration characteristics is the speed of the TCP of the robot 100 to be controlled. In the present embodiment, the speed of the TCP is defined in the robot coordinate system. That is, for each axis of the robot coordinate system, a translational speed and a rotational speed, i.e., an angular speed, are defined. Note that the acceleration / deceleration characteristics may also be defined in various coordinate systems.
[0026] The force control parameter 226 includes, as a parameter, information for specifying a coordinate system, i.e., a force control coordinate system, with the point at which the target force of the force control acts as the origin and one axis pointing in the direction of the target force (refer to the middle part of FIG. 3). Various definitions are possible for the parameter. For example, the parameter for specifying the force control coordinate system can be defined by data indicating the relationship between the force control coordinate system and other coordinate systems (such as the robot coordinate system).
[0027] The force control parameter 226 includes a "target force" (refer to the lower part of FIG. 3). The target force is a force taught as a force to act on an arbitrary point in various operations and is defined by the force control coordinate system. The target force vector indicating the target force is defined as the starting point of the target force vector and the six-axis components from the starting point, i.e., the three-axis translational force and the three-axis torque, and is expressed in the force control coordinate system. Note that by using the relationship between the force control coordinate system and other coordinate systems, it is possible to convert the target force into a vector in an arbitrary coordinate system, for example, the robot coordinate system.
[0028] The force control parameter 226 includes the "impedance parameter" (see the lower part of FIG. 3). Impedance control is a control that realizes a virtual mechanical impedance by the driving force of the motor that drives each joint. In impedance control, the mass that the TCP virtually has is defined as the virtual mass coefficient m. The viscous resistance that the TCP virtually receives is defined as the virtual viscous coefficient d. The spring constant of the elastic force that the TCP virtually receives is defined as the virtual elastic coefficient k. The impedance parameter is these coefficients m, d, k. The impedance parameter is defined for the translation and rotation with respect to each axis of the robot coordinate system.
[0029] In the present embodiment, the target force and the impedance parameter can be set for each of a plurality of sections determined according to the position of the control point in the operation executed by each robot. As a result, those parameters can change in time series.
[0030] FIG. 4 is a block diagram showing the relationship between the components of the control execution unit 250 of the robot control device 200 and the servo motor 150, the position sensor 160, and the force detector 130 provided in the robot 100. The control execution unit 250 performs feedback control on the position, speed, and current of the control point CP of the robot 100.
[0031] The control execution unit 250 includes, as its components, a control signal generation unit 251, a position control unit 252, a speed control unit 253, a torque control unit 255, a servo amplifier 256, and a force control unit 259. The control signal generation unit 251, the position control unit 252, the speed control unit 253, the torque control unit 255, and the force control unit 259 are realized by the processor 210 of the robot control device 200.
[0032] The control signal generation unit 251 generates a position control signal representing the target position St where the end effector 140 should be located, and outputs it to the position control unit 252. When the control signal generation unit 251 receives an instruction from the user to perform force control, it generates a force control signal representing the target force fSt, that is, the force that the end effector 140 should generate and the direction of that force, as well as the torque and the direction of that torque, and outputs it to the force control unit 259.
[0033] The force control unit 259 receives a force control signal representing the target force fSt, that is, the force that the end effector 140 should generate and the direction of that force, as well as the torque and the direction of that torque, from the control signal generation unit 251. The force control unit 259 receives the forces in the three-axis directions of the x-axis, y-axis, and z-axis acting on the end effector 140, and the torques around the x-axis, y-axis, and z-axis, from the force detector 130. The forces in the three-axis directions of the x-axis, y-axis, and z-axis acting on the end effector 140, and the torques around the x-axis, y-axis, and z-axis, are collectively denoted as fS in FIG. 4. The force control unit 259 receives the rotational positions of the respective servo motors 150 from the position sensor 160 of the robot 100. Then, based on those parameters, the force control unit 259 determines the position correction amount ΔS, and outputs a signal representing the correction amount ΔS to the position control unit 252.
[0034] The position control unit 252 receives a position control signal representing the target position St from the control signal generation unit 251. The position control unit 252 receives a signal representing the position correction amount ΔS from the force control unit 259. As position feedback, the position control unit 252 receives the rotational positions of the respective servo motors 150 from the position sensor 160 of the robot 100. Based on that information, the position control unit 252 calculates the joint angles or joint displacements that are appropriate solutions of inverse kinematics, generates speed control signals for the respective servo motors 150 of the robot 100, and outputs them to the speed control unit 253.
[0035] The speed control signal includes an element obtained by multiplying the deviation between the rotational position of the servo motor 150 obtained from the position sensor 160 and the target rotational position by a coefficient Kp. The coefficient Kp is the servo gain for position feedback. The servo gain Kp is stored in advance in the memory 220 of the robot control device 200. In FIG. 2, the servo gains are collectively shown as servo gain 227 (see the lower part of FIG. 2).
[0036] In feedback control involving force control, the servo gain for position feedback is set smaller than the servo gain in feedback control without force control. The same applies to the servo gain for velocity feedback and the servo gain for current feedback. In the present embodiment, the following description is made on the premise that feedback control involving force control is performed.
[0037] When the position control unit 252 has not received an instruction to perform force control from the control signal generation unit 251, the information received from the force control unit 259 is not considered when generating the speed control signal.
[0038] The speed control unit 253 receives a speed control signal from the position control unit 252. Also, the speed control unit 253 acquires the rotational speed of each servo motor 150 based on the information from the position sensor 160 of the robot 100 as speed feedback. The speed control unit 253 generates a torque control signal based on the speed control signal and the rotational speed of each servo motor 150, and outputs it to the torque control unit 255.
[0039] The torque control signal includes an element obtained by multiplying the deviation between the rotational speed of the servo motor 150 and the target rotational speed by a coefficient Kv. The coefficient Kv is the servo gain for speed feedback. The servo gain Kv is stored in advance in the memory 220 of the robot control device 200 (see the lower part of FIG. 2).
[0040] The torque control unit 255 receives a torque control signal from the speed control unit 253. Further, the torque control unit 255 receives a feedback signal representing the amount of current supplied to each servo motor 150 from the servo amplifier 256. The torque control unit 255 determines the amount of current to be supplied to each servo motor 150 based on the torque control signal and the current feedback signal of each servo motor 150, and drives each servo motor 150 via the servo amplifier 256. Specifically, the torque control unit 255 generates a drive signal DS for driving the robot 100 based on the torque control signal and the current feedback signal of each servo motor 150.
[0041] The drive signal DS includes an element obtained by multiplying the deviation between the rotational acceleration of the servo motor 150 and the target rotational acceleration by a coefficient Ka. The coefficient Ka is a servo gain for feedback regarding the amount of current. The coefficient Ka is also a servo gain for feedback regarding acceleration.
[0042] A2. Creation of Control Program and Adjustment of Parameters: FIG. 5 is a flowchart showing the procedure for creating a control program. In the present embodiment, the control program created by the process of FIG. 5 is a program for realizing an imitation operation in which the work WK1 held by the end effector 140 is inserted into the fitting hole H2 provided in the work WK2. The process of FIG. 5 is executed by the processor 210 of the robot control device 200.
[0043] In step S110, a flow of operations realized by the control program 224 of the robot 100 is created. Specifically, according to an operator's instruction input via the display device and input device provided in the robot control device 200, the operations to be executed by the robot 100 and the order of those operations are determined.
[0044] In step S120, the operation flow determined in step S110 is converted into a control program. The converted control program is described in a low-level language. The control program is stored in the memory 220 (see 224 in FIG. 2).
[0045] In step S130, according to the control program 224, the robot control device 200 controls the robot 100 to cause the robot 100 to perform an operation. This operation can be executed as a confirmation operation for checking the operation of the robot 100 on the production line. In the present embodiment, as the operation performed in step S130, an operation is assumed to be performed while controlling the magnitude of the reaction force received by the robot 100 when the object held by the robot 100 contacts another member. Examples of such operations include an insertion operation and an assembly operation.
[0046] In step S140, adjustment of the force control parameters used in the force control of the robot system 1 is performed. The adjustment of the force control parameters will be described in detail later.
[0047] In step S150, according to the control program 224, using the force control parameters adjusted in step S140, the robot control device 200 controls the robot 100 to cause the robot 100 to perform an operation. This operation can be executed as the main operation for manufacturing a product on the production line. In the present embodiment, as the operation performed in step S150, an operation is assumed to be performed while controlling the magnitude of the reaction force received by the robot 100 when the object held by the robot 100 contacts another member. Examples of such operations include an insertion operation and an assembly operation.
[0048] FIG. 6 is a flowchart showing a method for adjusting the force control parameters in step S140 of FIG. 5. By the process of FIG. 6, the force control parameters used in the force control of the robot system 1 are adjusted. In the following description, for ease of understanding of the technology, each component of the target force Ft is described along the x-axis, y-axis, and z-axis of the robot coordinate system.
[0049] In step S141, the processor 210 of the robot control device 200 causes the robot 100 to perform a mimicking operation using the operation flow of the mimicking operation determined in step S110 of FIG. 5 and the initial candidate values of the force control parameters of the mimicking operation. The initial candidate values of the force control parameters of the mimicking operation are not values determined according to a specific operation, but are determined so as to be applicable to various mimicking operations. The initial candidate values of the force control parameters of the mimicking operation are stored in advance in the memory 220 of the robot control device 200. In FIG. 2, the initial candidate values of the force control parameters of the mimicking operation and the adjusted force control parameters in step S140 are collectively shown as the force control parameter 226.
[0050] In the operation in step S141, the control execution unit 250 of the processor 210 causes the robot 100 to perform an operation using a servo gain different from the servo gain used by the control execution unit 250 when causing the robot system 1 to perform an actual operation in step S150 of FIG. 5. In step S150 of FIG. 5 and step S141 of FIG. 6, the servo gains for which different values are used are specifically the servo gain Kp for feedback on position and the servo gain Kv for feedback on speed (see the upper left part of FIG. 4). For the servo gain Ka for feedback on current, the same value is used in step S150 of FIG. 5 and step S141 of FIG. 6.
[0051] For the sake of distinction, the servo gain used in the control execution unit 250 when causing the robot system 1 to perform actual work while performing force control in step S150 of FIG. 5 is referred to as the "first type of servo gain". The servo gain used in the operation when adjusting the force control parameter in step S141 of FIG. 6 is referred to as the "second type of servo gain".
[0052] The second type of servo gains Kps and Kvs are servo gains corresponding to the first type of servo gains Kp and Kv used in the control execution unit 250 when causing the robot system 1 to perform actual work in step S150 of FIG. 5, respectively. However, the second type of servo gains Kps and Kvs have values higher than the corresponding first type of servo gains Kp and Kv, respectively. That is, the second type of servo gain Kps has a value higher than the first type of servo gain Kp. The second type of servo gain Kvs has a value higher than the first type of servo gain Kv. As a result, in the operation in step S141, the responsiveness is higher and oscillation is more likely to occur than in the operation when causing the robot system 1 to perform actual work. The second type of servo gains Kps and Kvs are stored in advance in the memory 220 of the robot control device 200 (see the lower part of FIG. 2).
[0053] In step S142 of FIG. 6, the processor 210 of the robot control device 200 acquires the measured value of the external force in the imitation operation of step S141. The measured value of the external force is referred to as the "force measurement value". Also, in step S142, the processor 210 of the robot control device 200 measures the time required for the imitation operation of step S141. The time required for the imitation operation is referred to as the "operation time". The process of step S142 is performed substantially in parallel with the process of step S141. The processes of step S141 and step S142 are also collectively referred to as the "measurement process". The steps of step S141 and step S142 are also collectively referred to as the "measurement step". The functional part of the processor 210 that executes the processes of step S141 and step S142 is shown in FIG. 2 as the "measurement unit 272".
[0054] The imitation operation by the robot 100 in step S141 of FIG. 6 is executed 7 times. In step S142, the maximum value of the measured external force of the imitation operations performed 7 times is adopted as the force measurement value. The average value of the time required for each of the imitation operations performed 7 times is adopted as the operation time. After obtaining the force measurement value as the maximum value and the operation time as the average value, the process proceeds to step S143.
[0055] In step S143, the processor 210 of the robot control device 200 inputs the force measurement value and the operation time into the optimization algorithm. The optimization algorithm outputs new candidate values for the force control parameters by performing optimization processing on the force control parameters using the force measurement value and the operation time (see FIG. 3). The processing by the optimization algorithm will be described later.
[0056] In step S144 of FIG. 6, the processor 210 of the robot control device 200 acquires the new candidate values of the force control parameters output from the optimization algorithm. The processes of step S143 and step S144 are also collectively referred to as "parameter update processing". The steps of step S143 and step S144 are also collectively referred to as "parameter update steps". The functional part of the processor 210 that executes the processes of step S143 and step S144 is shown in FIG. 2 as the "parameter update unit 274".
[0057] In step S145 of FIG. 6, the processor 210 of the robot control device 200 causes the robot 100 to perform the imitation operation using the operation flow of the imitation operation determined in step S110 and the new candidate value of the force control parameter acquired in step S144. Also in the operation in step S145, the control execution unit 250 of the processor 210 causes the robot 100 to perform an operation using the second type of servo gains Kps and Kvs. For the servo gain Ka for current feedback, a common value is used in step S150 of FIG. 5 and step S146 of FIG. 6. The process of step S145 is the same as the process of step S141 except that the candidate values of the force control parameter are different.
[0058] In step S146, the processor 210 of the robot control device 200 acquires the force measurement value of the imitation operation in step S145. Also in step S146, the processor 210 of the robot control device 200 measures the operation time of the imitation operation in step S145. The process of step S146 is performed substantially in parallel with the process of step S145. The process of step S146 is the same as the process of step S142. The processes of step S145 and step S146 are also collectively referred to as "measurement process". The steps of step S145 and step S146 are also collectively referred to as "measurement step". The functional unit of the processor 210 that executes the processes of step S145 and step S146 is the measurement unit 272 (see FIG. 2).
[0059] The imitation operation by the robot 100 in step S145 is also executed 7 times. In step S146, the maximum value of the measured values of the external force of the imitation operation performed 7 times is adopted as the force measurement value. The average value of the time required for each of the imitation operations performed 7 times is adopted as the operation time. After the force measurement value as the maximum value and the operation time as the average value are obtained, the process proceeds to step S147.
[0060] In step S147, the processor 210 of the robot control device 200 determines whether the evaluation value of each candidate value of the force control parameter satisfies the end condition. If it is determined that the evaluation value satisfies the end condition, the process of FIG. 6 ends. If it is determined that the evaluation value does not satisfy the end condition, the process returns to step S143.
[0061] In step S147, the evaluation value Eval of each candidate value of the force control parameter is calculated by the following formula (1). The second and third terms of formula (1) are so-called penalty terms. Eval = α×OT + β×[if (Fmax>Flimit), then 100] + γ×[if (Tmax>Flimit), then 100] ··· (1) OT: The operation time of the imitation operation. Fmax: The magnitude of the maximum value of the detected output force Fd detected during the imitation operation. Note that the detected output force Fd is the combined force of the components of the x-axis, y-axis, and z-axis. Flimit: The allowable value of the magnitude of the maximum value of the detected output force Fd. Tmax: The magnitude of the maximum value of the detected torque Td detected during the imitation operation. Note that the detected torque Td is the combined torque of the components for the x-axis, y-axis, and z-axis. Tlimit: The allowable value of the magnitude of the maximum value of the detected torque Td. α, β, γ: Weight coefficients.
[0062] The end condition in step S147 is that the following two conditions are satisfied. (c1) The latest evaluation value is smaller than either β×100 and β×100. (c2) The condition that the absolute value of the difference in the average value of the working time from the previous generation is equal to or less than the threshold value Dth is satisfied continuously for N generations (N is an integer of 2 or more).
[0063] The satisfaction of condition (c1) means that the maximum value Fmax of the detection output Fd does not exceed the allowable value Flimit, and the maximum value Tmax of the detection torque Td does not exceed the allowable value Tlimit. Such a condition is imposed when it is not required to minimize the maximum value Fmax of the detection output Fd and it is not required to minimize the maximum value Tmax of the detection torque Td.
[0064] The satisfaction of condition (c2) means that there is little possibility of improving the evaluation value even if the processes of steps S143 to S147 are repeated further.
[0065] The processor 210 of the robot control device 200 determines the force control parameters used in the force control of the robot system 1 by repeating the processes of steps S143 to S146. The processes of steps S143 to S147 are collectively referred to as "parameter determination processing". The steps of S143 to S147 are collectively referred to as "parameter determination steps". The functional part of the processor 210 that executes the processes of steps S143 to S147 is shown in FIG. 2 as the "parameter determination unit 276". The determined force control parameters are stored in the memory 220 of the robot control device 200 (see 226 in FIG. 2).
[0066] In this embodiment, in the adjustment of the force control parameters in step S140 of FIG. 5, the operation of the robot 100 is performed with the second type of servo gains Kps and Kvs that are more likely to oscillate than the first type of servo gains Kp and Kv in the actual operation of step S150 (see S141 and S145 in FIG. 6). Then, based on the obtained force measurement values, the force control parameters are adjusted (see S144 in FIG. 6). Therefore, by setting the second type of servo gains Kps and Kvs, it is possible to ensure in advance the difficulty of oscillation in the actual operation. That is, by setting the second type of servo gain Kps used for the adjustment of the force control parameters to be larger than the first type of servo gain Kp, it is possible to make it less likely for oscillation to occur in the actual operation with the adjusted force control parameters. Similarly, by setting the second type of servo gain Kvs to be larger than the first type of servo gain Kv, it is possible to make it less likely for oscillation to occur in the actual operation with the adjusted force control parameters. Therefore, even an operator with little experience who does not grasp the relationship between the operating speed and the ease of oscillation in terms of the numerical values of the force control parameters can appropriately set the force control parameters that are less likely to oscillate.
[0067] FIG. 7 is a block diagram showing the input and output of the optimization algorithm used in the parameter update process of steps S143 and S144 in FIG. 6. The optimization algorithm used in this embodiment is an algorithm that takes the force measurement value and the operation time as inputs and outputs candidate values of the force control parameters. Specifically, the optimization algorithm used in this embodiment is the Covariance Matrix Adaptation Evolution Strategy (CMA-ES).
[0068] The optimization algorithm receives the operation time OT, the detected output Fd which is the force measurement value, and the detected torque Td (see the left part of FIG. 7). The optimization algorithm outputs candidate values of the force control parameters (see the right part of FIG. 7). The optimization algorithm performs optimization processing so that the evaluation value Eval defined by the above formula (1) becomes smaller.
[0069] With such a configuration, in the parameter update process of steps S143 and S144 in FIG. 6, a new candidate value of the force control parameter can be obtained by an optimization process that takes into account the force measurement value and the operation time. Therefore, by performing force control with the force control parameter determined in the process of FIG. 6, the robot 100 can appropriately insert the work WK1 into the fitting hole H2 with a highly evaluated movement regarding the external force received by the robot 100 in the imitation operation and the operation time OT of the imitation operation.
[0070] The candidate value of the force control parameter output by the optimization algorithm includes the target force Ft in the imitation operation and the impedance parameter (see the upper right part of FIG. 7 and the lower part of FIG. 3). The target force Ft is represented by the force component Fxt in the x-axis direction, the force component Fyt in the y-axis direction, the force component Fzt in the z-axis direction, and the torque component Txt centered on the x-axis, the torque component Tyt centered on the y-axis, and the torque component Tzt centered on the z-axis direction. The impedance parameter includes the virtual mass coefficient m, the virtual viscosity coefficient d, and the virtual elasticity coefficient k for each of the x-axis, y-axis, and z-axis.
[0071] The optimization algorithm outputs a flag Flg that specifies whether force control is effective or not, the positions xs, ys, zs, Rxs, Rys, Rzs of the end effector 140 at the start of the imitation operation, and the positions xp, yp, zp, or Rxp, Ryp, Rzp of the end effector 140 at a specified time between the start and end of the imitation operation (see the lower right part of FIG. 7). Note that in this embodiment, the position of the end effector 140 refers to the position of the TCP set near the tip of the end effector 140.
[0072] By performing force control with the force control parameter determined by such a process, appropriate control is performed by appropriately specifying whether force control is effective or not and the positions of the end effector 140 at the start of the imitation operation and at the passing points of the imitation operation, so that the robot 100 can appropriately insert the work WK1 into the fitting hole H2.
[0073] For example, even without performing force control, the workpiece WK1 may be appropriately inserted into the fitting hole H2 due to the deflection of the hardware configuration of the robot 100. By including a flag Flg for specifying valid or invalid for each of the three axes related to force control position and the three axes related to rotation in the object of the optimization process, in such a case, it is possible not to perform force control.
[0074] Note that the optimization algorithm can output, in addition to the parameters shown in FIG. 7, the acceleration / deceleration characteristics, which are force control parameters, and the force control coordinate system (see FIG. 4).
[0075] A3. Example of mimicking operation: Hereinafter, an example of the mimicking operation will be described. The operation described below is a snapping operation. The mimicking operation is realized by the force control executed by the robot control device 200.
[0076] FIG. 8 is an explanatory diagram showing the state at the start of the mimicking operation in step S150. Here, for the sake of easy understanding of the technology, the technical content will be described along the robot coordinate system instead of the sensor coordinate system. The insertion direction in the mimicking operation is the negative z-axis direction in the robot coordinate system (see H2 in FIG. 1). Note that FIGS. 8 to 10 do not accurately represent the shapes of the workpieces WK1, WK2, the end effector 140, and the force detector 130.
[0077] On the surface of the inner surface of the fitting hole H2 of the workpiece WK2 that is located in the positive y-axis direction, a snapping mechanism SN is provided. The claws of the snapping mechanism SN are pressed in the negative y-axis direction by a spring and protrude from the inner surface of the fitting hole H2 by a predetermined dimension. When the claws of the snapping mechanism SN are pressed in the positive y-axis direction, they move in the positive z-axis direction from the inside of the fitting hole H2. The claws of the snapping mechanism SN can retract in the positive y-axis direction to a position where they do not protrude from the inner surface of the fitting hole H2.
[0078] The control point CP of the robot 100 is arranged at the center of the tip surface of the work WK1 held by the end effector 140. A virtual threshold plane SC is defined in the vicinity of the end in the insertion direction of the fitting hole H2. The threshold plane SC is a plane parallel to the z-axis and the x-axis. In the mimicking operation, when the control point CP reaches the threshold plane SC, the mimicking operation is determined to be completed. The operation time OT of the mimicking operation is the time from the start of the force control until the control point CP reaches the threshold plane SC.
[0079] In the state of FIG. 8, the gravitational force Fg acts on the work WK1. In the state of FIG. 8, the robot 100 performs force control so as to maintain the position and posture of the work WK1 against the gravitational force Fg acting on the work WK1. The position and posture of the work WK1 at this time are the position and posture in which the area occupied by the work WK1 is included in the area occupied by the fitting hole H2 of the work WK2 when projected in the z-axis direction which is the insertion direction.
[0080] FIG. 9 is an explanatory diagram showing a state during the mimicking operation in step S150. In the state of FIG. 9, the tip of the work WK1 in the negative y-axis direction is in contact with the claw of the snapping mechanism SN. The surface of the work WK1 in the positive y-axis direction is in contact with the inner surface of the fitting hole H2.
[0081] In this state, the work WK1 presses the claw of the snapping mechanism SN in the negative y-axis direction and receives a reaction force in the positive y-axis direction from the claw of the snapping mechanism SN. The work WK1 presses the inner surface of the fitting hole H2 in the negative z-axis direction and receives a perpendicular reaction force Fn2 in the positive y-axis direction from the inner surface of the fitting hole H2. Further, the work WK1 being moved in the negative z-axis direction by the mimicking operation of the robot 100 receives a frictional force in the positive z-axis direction from the contact surface with the inner surface of the fitting hole H2. In FIG. 9, the force in the z-axis direction received by the work WK1 from the work WK2 is collectively shown as Ff2.
[0082] FIG. 10 is an explanatory diagram showing the state immediately before the mimicking operation in step S150 ends. In the state of FIG. 10, the tip of the workpiece WK1 in the negative y-axis direction has reached the threshold plane SC (see CP in FIG. 10). When the robot control device 200 detects that the TCP has reached the threshold plane SC, the robot control device 200 ends the mimicking operation.
[0083] In FIG. 10, the force in the z-axis direction that the workpiece WK1 receives from the workpiece WK2 including the claws of the snapping mechanism SN is collectively shown as Ff4 at the upper part of the workpiece WK1. In FIG. 10, the perpendicular resistance force in the positive z-axis direction that the workpiece WK1 receives from the inner surface of the fitting hole H2 is shown as Fn4.
[0084] When the mimicking operation ends, the gripper as the end effector 140 releases the workpiece WK1, and the robot 100 shifts to the next operation.
[0085] FIG. 11 is a graph showing the position deviation in the y-axis direction of the control point CP in the mimicking operation. The horizontal axis represents time. The robot control device 200 sets target positions for each axis in time series in the mimicking operation. The graph in FIG. 11 represents the deviation of the position of the control point CP in the y-axis direction from the target position in the mimicking operation. In the mimicking operation shown in FIGS. 8 to 10, the position deviation in the y-axis direction of the control point CP changes as shown in FIG. 11. The position deviation becomes maximum immediately after the control point CP on the tip surface of the workpiece WK1 passes the position of the apex of the claws of the snapping mechanism SN (see FIG. 9).
[0086] FIG. 12 is a graph showing the detected output force Fd received by the end effector 140 during the mimicking operation. The horizontal axis represents time. The robot control device 200 sets target forces for each axis in a time series manner during the mimicking operation. In the mimicking operation shown in FIGS. 8 to 10, the detected output force Fd, which is the combined force of the actual forces received by the end effector 140 in each axis direction, changes as shown in FIG. 12. The detected output force Fd gradually increases after the start of the operation. This is because as the insertion progresses, the frictional force in the positive z-axis direction received by the workpiece WK1 from the contact surface with the inner surface of the fitting hole H2 increases. The detected output force Fd reaches its maximum when the control point CP at the tip surface of the workpiece WK1 is at a position just before the apex of the claw of the snapping mechanism SN (see FIG. 9).
[0087] FIG. 13 is a table showing the transition of the working time and the force measurement values in the process of FIG. 6. The working time and the force measurement values are repeatedly acquired in the processes of steps S142 and S146 in FIG. 6. The working time and the force measurement values acquired in step S142 are the working time and the force measurement values of the operation executed according to the initial candidate values of the force control parameters. The working time and the force measurement values acquired in step S146 are the working time and the force measurement values of the operation executed according to the candidate values of the force control parameters acquired in the immediately preceding step S144.
[0088] In the example of FIG. 13, in the above formula (1), α = β = γ = 1, Flimit = 23.0, and Tlimit = 1000. Also, in (c2) among the end conditions of step S147 in FIG. 6, Dth = 0.5 and N = 4.
[0089] In the leftmost column of the table in FIG. 13, the number of repetitions of the processes of steps S142 and S146 in FIG. 6 is shown as "generation". "Generation" means the generation of the candidate values of the force control parameters acquired in step S144.
[0090] In the second column from the left end of the table in FIG. 13, the number of groups is shown. The "number of groups" is the number of times the operations executed in steps S141 and S145 in FIG. 6. As described above, in steps S141 and S145, the imitation operation by the robot 100 is executed 7 times. Therefore, the number of groups is 7 in each generation.
[0091] In the third to fifth columns from the left end of the table in FIG. 13, the average value, maximum value, and minimum value of the working times of the 7 operations obtained in steps S142 and S146 in FIG. 6 are shown.
[0092] In the sixth column from the left end of the table in FIG. 13, the difference from the value of the previous generation of the average value of the working times of the 7 operations obtained in steps S142 and S146 in FIG. 6 is shown. From FIG. 13, it can be seen that up to the eighth generation, there are negative difference values, indicating that the average value of the working time has been improved.
[0093] In the seventh column from the left end of the table in FIG. 13, the maximum value of the force observed in the 7 operations obtained in steps S142 and S146 in FIG. 6 is shown. In the eighth column from the left end of the table in FIG. 13, the maximum value of the torque observed in the 7 operations obtained in steps S142 and S146 is shown.
[0094] In the ninth column from the left end of the table in FIG. 13, the evaluation value Eval of the candidate values of the force control parameter for each generation is shown (see the above formula (1)).
[0095] As described above, in step S147 in FIG. 6, it is determined whether the evaluation value of each candidate value of the force control parameter satisfies the end condition. In the example of FIG. 13, specifically, the end condition is that the following two conditions are satisfied. (c1e) The latest evaluation value is less than 100. (c2e) The condition that the magnitude of the absolute value of the difference in the average value of the working time from the previous generation is 0.5 or less is satisfied continuously for 4 generations.
[0096] In the example of FIG. 13, since the above termination conditions (c1) and (c2) were satisfied in the 14th generation, the adjustment of the force control parameters has been completed (see the lower right part of FIG. 13).
[0097] In the present embodiment, in the adjustment of the force control parameters in step S140 of FIG. 5, the operation of the robot 100 is performed with the second type of servo gains Kps and Kvs that are more likely to oscillate than the first type of servo gains Kp and Kv in the actual operation of step S150. Then, based on the obtained force measurement values, the force control parameters are adjusted. Therefore, by setting the second type of servo gains Kps and Kvs, it is possible to ensure in advance the difficulty of oscillation in the actual operation. Thus, even an operator with little experience can appropriately set the force control parameters that are less likely to oscillate.
[0098] In the adjustment of the force control parameters using the optimization process, as the number of populations and the number of generations increase, the evaluation value improves at least to a certain extent (see S143 to S147 in FIG. 6 and FIG. 13). On the other hand, as the number of populations for the force control parameters and the number of generations repeated for the force control parameters increase, the force control parameters become overfitted to the work and operations used in the adjustment of the force control parameters. For example, the fewer the number of works that can be used in the adjustment of the force control parameters, the more likely it is that overfitting of the force control parameters to the used works will occur. As a result, there is a possibility that force control parameters that are fast in operation speed and less likely to oscillate in actual work will not be determined.
[0099] In the present embodiment, by setting the second type of servo gains Kps and Kvs, it is possible to ensure in advance the difficulty of oscillation in the actual operation. Thus, even if an end condition that does not cause overfitting is set, the force control parameters that are less likely to oscillate can be appropriately set (see S147 in FIG. 6).
[0100] The robot control device 200 in the present embodiment is also referred to as an "adjustment device". The control execution unit 250 is also referred to as a "control unit".
[0101] B. Second Embodiment: In the first embodiment, in the operations of steps S141 and S145 in FIG. 6, constant values are used as the second type of servo gains Kps and Kvs (see the upper left part of FIG. 4). However, in the second embodiment, the plurality of measurement processes executed in the parameter determination process are performed using the second type of servo gains that are used for the same feedback and have different values from each other. That is, in the parameter determination process of steps S143 to S147, the plurality of measurement processes are performed using the second type of servo gain Kps that is used for position feedback and has different values from each other (see S145 in FIG. 6). Similarly, in the parameter determination process, the plurality of measurement processes are performed using the second type of servo gain Kvs that is used for speed feedback and has different values from each other (see S145 in FIG. 6). Hereinafter, the operation of step S145 in FIG. 6 will be described. The operation of step S141 is performed in the same manner.
[0102] In step S145 of FIG. 6 in the second embodiment, the processor 210 of the robot control device 200 corrects the second type of servo gains Kps and Kvs by multiplying positive coefficients Cps and Cvs to the second type of servo gains Kps and Kvs, respectively, prior to each of the seven operations. The coefficients Cps and Cvs are random numbers having a probability density distribution of a normal distribution with an average of 1 and a standard deviation of 0.1. As a result, in step S145 of FIG. 6 in the second embodiment, the seven operations are performed using servo gains Kps having different values. Also, the seven operations are performed using servo gains Kvs having different values. Although the seven operations are all performed according to the same control program 224, they are slightly different from each other. The process of correcting the second type of servo gains Kps and Kvs prior to each of the seven operations is shown surrounded by a broken line as "Determination of Servo Gain" in FIG. 7.
[0103] In the adjustment of the force control parameters using the optimization process, as the number of populations and the number of generations increase, the evaluation value improves at least to a certain extent (see S143 to S147 in FIG. 6 and FIG. 13). On the other hand, as the number of populations for the force control parameters and the number of generations repeated for the force control parameters increase, the force control parameters become overfitted to the work and operations used in the adjustment of the force control parameters. For example, the fewer the number of workpieces available for adjusting the force control parameters, the more likely overfitting of the force control parameters to the workpieces will occur. As a result, in actual work, due to workpieces WK1 and WK2 including dimensional errors and the positions of workpieces WK1 and WK2 including errors, there is a risk that the robot 100 may not operate properly.
[0104] However, in the present embodiment, by performing the above processing, even in an actual work environment including variations in various external factors such as dimensional errors of workpieces WK1 and WK2 and errors in the positions where workpieces WK1 and WK2 are placed, a force control parameter that is less likely to oscillate and allows the robot 100 to operate properly can be set in the processing of FIG. 6 (see S150 in FIG. 5).
[0105] C. Other Embodiments: C1. Other Embodiment 1: (1) In the above embodiment, the robot 100 is a vertically articulated 6-axis robot having six joints J1 to J6 (see FIG. 1). However, the technical scope of the present disclosure may be applied to robots having other joint mechanisms such as horizontally articulated robots or Cartesian coordinate robots.
[0106] (2) In the above embodiment, the force detector 130 is provided on the arm flange 120 at the tip of the arm 110 (see FIG. 1). However, the force detector may be provided at other parts such as joints other than the joint located at the most distal end of the robot arm or the base of the robot arm.
[0107] (3) In the above embodiment, the force detector 130 can detect the magnitude of the force parallel to the three detection axes of the x-axis, y-axis, and z-axis that are orthogonal to each other in the sensor coordinate system, which is a unique coordinate system, and the magnitude of the torque around the three detection axes (see FIG. 1). However, the force detector may detect only the force in the direction of controlling the force or only the torque around the axis in that direction. Further, the force detector may not directly detect the force or torque, but may detect, for example, the torque of the robot joint based on the measured value of the current of the servo motor. That is, the force detector only needs to be able to detect the force or torque in the direction of controlling the control point.
[0108] (4) In the above embodiment, the end effector 140 is a gripper that can hold an object (see FIG. 1). However, the end effector can be any other type of end effector used for force control, such as a drill for drilling holes or a driver for tightening screws.
[0109] (5) The generation of the control program 224 may be performed in the robot control device 200, or may be performed in a setting device that is connected to the robot control device 200 by wire or wirelessly. As the setting device, for example, a personal computer installed with the setting program 225 is applicable (see the lower part of FIG. 2). In such a mode, the control program generated in the setting device is transmitted to the robot control device 200 and stored in the robot control device 200.
[0110] (6) In the above embodiment, the adjustment of the force control parameters is performed by the robot control device 200 that causes the robot 100 to operate by feedback control (see 250 and 270 in FIG. 2). However, the adjustment of the force control parameters may be performed in a setting device that is connected to the robot control device 200 by wire or wirelessly. As the setting device, for example, a personal computer installed with a setting program 225 can be adopted (see the lower part of FIG. 2). In such a mode, the force control parameters 226 adjusted in the setting device are transmitted to the robot control device 200 and stored in the robot control device 200.
[0111] (7) The control execution unit 250 and the parameter adjustment unit 270 are realized by the processor 210 executing a program (see FIG. 2). However, part or all of the functions of the control execution unit 250 and the parameter adjustment unit 270 may be realized by a hardware circuit.
[0112] (8) In the above embodiment, the force control parameters 226 include the "start point" and "end point" in each operation, the "acceleration / deceleration characteristics" of the TCP in a plurality of operations, information specifying the force control coordinate system, the "target force", and the "impedance parameters" (see FIG. 3). However, the force control parameters are not limited to this, and for example, they may not include the "acceleration / deceleration characteristics".
[0113] (9) In the above embodiment, the second type of servo gain Kps used in the adjustment of the force control parameters is larger than the first type of servo gain Kp used in the actual operation of performing force control. The second type of servo gain Kvs used in the adjustment of the force control parameters is larger than the first type of servo gain Kv used in the actual operation of performing force control.
[0114] In feedback control involving force control, for example, due to the presence or absence of an external force caused by the presence or absence of contact between members, oscillation is more likely to occur than in feedback control without force control. For this reason, in feedback control involving force control, the servo gain is set smaller than in feedback control without force control. In other words, in feedback control without force control, generally, in order to increase the position accuracy of the control point and shorten the time required for operation, the servo gain is set as large as possible within the range where oscillation does not occur. On the other hand, the servo gain in feedback control involving force control is set, for example, to 50% - 70% of the servo gain in feedback control without force control.
[0115] The second type of servo gain Kps is preferably smaller than the value of the first type of position servo gain used in actual work where position control is performed without force control. The second type of servo gain Kvs is preferably smaller than the value of the first type of speed servo gain used in actual work where position control is performed without force control.
[0116] (10) In the above embodiment, the imitation operation by the robot 100 in steps S141 and S145 of FIG. 6 is executed 7 times. However, the number of times the robot operates to obtain an evaluation value may be a smaller number such as 1, 2, 3, etc., or a larger number such as 8, 10, etc.
[0117] (11) In the above embodiment, the coefficients Cps and Cvs used to generate the feedback gain for each operation are random numbers having a probability density distribution of a normal distribution with an average of 1 and a standard deviation of 0.1. And the coefficients Cps and Cvs are coefficients multiplied by the original feedback gain. However, the generation of the feedback gain for each operation may be generated by other methods such as adding random numbers to the original feedback gain. Also, the average and standard deviation of the random numbers can be appropriately determined according to the usage method of the random numbers.
[0118] (12) In the above embodiment, in step S144, an optimization process using CMA-ES is performed (see FIGS. 6 and 7). However, the optimization process may be performed by other methods such as particle swarm optimization (PSO) or Bayesian optimization.
[0119] (13) In the above embodiment, the operation time OT is adopted as the evaluation value used in the determination in step S147 of FIG. 6 (see FIG. 7). However, the evaluation value used for determining the end condition of the process can also be other evaluation values such as a value obtained based on the force measurement value.
[0120] (14) In the above embodiment, when the maximum value Fmax of the detected output Fd exceeds the allowable value Flimit and when the maximum value Tmax of the detected torque Td exceeds the allowable value Tlimit, a penalty is imposed in the determination of the evaluation value (see the above formula (1)). That is, constraint conditions are imposed on the maximum value of the detected output and the maximum value of the detected torque. However, the constraint conditions can also be conditions related to other parameters, for example, that the magnitude of the integral value in a predetermined time interval before and after the peak of the measured value exceeds a threshold value.
[0121] (15) In the above embodiment, the end condition in step S147 of FIG. 6 is that conditions (c1) and (c2) are satisfied. However, the end condition can also be other conditions, for example, "the above condition (c1) is satisfied continuously for N generations (N is an integer of 2 or more)".
[0122] (16) In step S147 of the above embodiment, it is determined whether or not the evaluation value obtained in step S145 has converged as the determination of the end condition of the process (see condition (c2)). However, it is also possible to set only that the evaluation value has become a value better than a predetermined threshold as the end condition of the process.
[0123] C2. Other Embodiment 2: In the above-described embodiment, in the feedback control of the operation of the robot 100, the control execution unit 250 performs feedback control on the position, speed, and acceleration of the control point CP of the robot 100 (see FIG. 4). Then, different values are used for the servo gain Kp of the feedback for the position and the servo gain Kv of the feedback for the speed in step S150 of FIG. 5 and step S141 of FIG. 6.
[0124] However, in the feedback control of the operation of the robot 100, for example, feedback may not be performed for some of the position, speed, and acceleration, such as not performing feedback for the acceleration. That is, in the feedback control of the operation of the robot 100, feedback may be performed for one or more of the position, speed, and acceleration. Also, the second type of servo gain, which uses a value higher than the value of the first type of servo gain used when causing the robot system to perform actual work, may be the servo gain of the feedback for one or more of the position, speed, and acceleration.
[0125] C3. Other Embodiment 3: In the second embodiment, the plurality of measurement processes executed in the parameter determination process are performed using the second type of servo gain that is used for the same feedback and has different values from each other. However, the plurality of measurement processes executed in the parameter determination process may be performed using the second type of servo gain having a fixed value as in the first embodiment. Also, different values may be used for each measurement process for some of the servo gains of the feedback, and a fixed value may be used for some other servo gains of the feedback.
[0126] D. Still Other Embodiments: The present disclosure is not limited to the above-described embodiments, examples, and modifications, and can be implemented in various configurations without departing from the spirit thereof. For example, the technical features in the embodiments, examples, and modifications corresponding to the technical features in each form described in the summary of the invention can be appropriately replaced or combined in order to solve some or all of the above-described problems or to achieve some or all of the above-described effects. Further, if the technical feature is not described as essential in this specification, it can be appropriately deleted.
[0127] (1) According to one aspect of the present disclosure, there is provided a method for adjusting force control parameters used in force control of a robot system. The robot system includes a robot, a force detector capable of measuring an external force applied to the robot, and a control unit that causes the robot to operate by feedback control. The adjustment method includes a measurement step of causing the robot to operate using one or more second-type servo gains corresponding to one or more first-type servo gains used in the control unit when causing the robot system to perform an actual operation, the second-type servo gains having values higher than the corresponding first-type servo gains, and candidate values of the force control parameters, to obtain a force measurement value that is a measured value of the external force; a parameter update step of performing an optimization process on the force control parameters using the force measurement value to obtain new candidate values of the force control parameters; and a parameter determination step of determining the force control parameters used in the force control of the robot system by repeating the measurement step and the parameter update step. In such an aspect, in the adjustment of the force control parameters, the robot operates with a second-type servo gain that is more likely to oscillate than the first-type servo gain in actual operation, and the force control parameters are adjusted based on the obtained force measurement value. Therefore, by setting the second-type servo gain, it is possible to ensure in advance the difficulty of oscillation in actual operation. Thus, even an operator with little experience can appropriately set force control parameters that are less likely to oscillate.
[0128] (2) In the adjustment method of the above aspect, the control unit performs the feedback control on the position and speed of the control points of the robot, and the second type of servo gain can be configured to include at least one of the servo gain of the feedback for position and the servo gain of the feedback for speed. With such an aspect, even an operator with little experience can appropriately set the force control parameters that are less likely to cause oscillation due to the position command value and the speed command value in the feedback control of the robot.
[0129] (3) In the adjustment method of the above aspect, the plurality of measurement steps executed in the parameter determination step can be configured to include the plurality of measurement steps performed using different second type of servo gains that are the second type of servo gain used for the same feedback. With such an aspect, even in a practical work environment including variations in various external factors, the force control parameters that are less likely to cause oscillation can be set.
[0130] (4) According to another aspect of the present disclosure, there is provided an adjustment device for adjusting force control parameters used in force control of a robot system including a robot, a force detector capable of measuring an external force applied to the robot, and a control unit that causes the robot to perform an operation by feedback control. The adjustment device includes a measurement unit that uses, as one or more second-type servo gains corresponding to one or more first-type servo gains used in the control unit when causing the robot system to perform an actual operation, second-type servo gains each having a value higher than the corresponding first-type servo gain, and candidate values of the force control parameters, to cause the robot to perform an operation and perform a measurement process for obtaining a force measurement value that is a measured value of the external force; a parameter update unit that performs an optimization process on the force control parameters using the force measurement value to obtain a new candidate value of the force control parameters; and a parameter determination unit that performs a parameter determination process for determining the force control parameters used in the force control of the robot system by repeating the measurement process and the parameter update process.
[0131] (5) In the adjustment device of the above aspect, the control unit performs feedback control on the position and velocity of the control point of the robot, and the second-type servo gain can include at least one of a feedback servo gain for position and a feedback servo gain for velocity.
[0132] (6) In the adjustment device of the above aspect, in the parameter determination process, the parameter determination unit can execute a plurality of the measurement processes using second-type servo gains having different values from each other among the second-type servo gains used for the same feedback.
[0133] The present disclosure can also be implemented in various forms other than the method for adjusting force control parameters and the force control parameter adjustment device. For example, it can be implemented in the form of a robot setting method, a robot control method, a computer program for realizing those methods, a non-transitory recording medium recording the computer program, and the like.
Explanation of Signs
[0134] 1…Robot system, 50…Workbench, 100…Robot, 110…Arm, 120…Arm flange, 130…Force detector, 140…End effector, 150…Servo motor, 160…Position sensor, 200…Robot control device, 210…Processor, 220…Memory, 222…Program instruction, 224…Control program, 225…Setting program, 226…Force control parameter, 227…Servo gain, 250…Control execution unit, 251…Control signal generation unit, 252…Position control unit, 253…Speed control unit, 255…Torque control unit, 256…Servo amplifier, 259…Force control unit, 270…Parameter adjustment unit, 272…Measurement unit, 274…Parameter update unit, 276…Parameter determination unit, CP…Control point, DS…Drive signal, Fd…Detected output, Ff2…Reaction force in the z-axis direction, Ff4…Reaction force in the z-axis direction, Fg…Gravity, Flg…Flag, Fn2…Vertical resistance, Ft…Target force, Fxt…Force component, Fyt…Force component, Fzt…Force component, G…Center of gravity, H2…Fitting hole, J1~J6…Joints, Ka…Servo gain, Kp…Servo gain, Kps…Servo gain, Kv…Servo gain, Kvs…Servo gain, OT…Operation time of the mimicking operation, Rxp…Angle of the end effector, Ryp…Angle of the end effector, Rzp…Angle of the end effector, Rxs…Angle of the end effector at the start of the mimicking operation, Rys…Angle of the end effector at the start of the mimicking operation, Rzs…Angle of the end effector at the start of the mimicking operation, SN…Snapping mechanism, SC…Threshold plane, St…Target position, Td…Detected torque, Txt…Torque component, Tyt…Torque component, Tzt…Torque component, WK1…Workpiece, WK2…Workpiece, d…Virtual viscosity coefficient, fSt…Target force, k…Virtual elastic coefficient, m…Virtual mass coefficient, xp…Position of the end effector, yp…Position of the end effector, zp…Position of the end effector, xs…Position of the end effector at the start of the mimicking operation, ys…Position of the end effector at the start of the mimicking operation, zs…Position of the end effector at the start of the mimicking operation, ΔS…Correction amount
Claims
1. A method for adjusting force control parameters used in force control of a robot system, comprising: 、 The robot system includes a robot, a force detector capable of measuring an external force applied to the robot, and a control unit that causes the robot to operate by feedback control. The adjustment method includes: Using one or more types of second servo gains corresponding to one or more types of first servo gains used in the control unit when causing the robot system to perform actual work, wherein each of the second servo gains has a value higher than the corresponding first servo gain, and candidate values of the force control parameters, causing the robot to operate, obtaining a force measurement value that is a measured value of the external force in a measurement step; performing an optimization process on the force control parameters using the force measurement value to obtain new candidate values of the force control parameters in a parameter update step; and determining the force control parameters used in the force control of the robot system by repeating the measurement step and the parameter update step in a parameter determination step. The control unit performs the feedback control on the position and velocity of a control point of the robot. The second servo gain includes at least one of a feedback servo gain for the position and a feedback servo gain for the velocity. The plurality of measurement steps executed in the parameter determination step include a plurality of measurement steps performed using different second servo gains having different values among the second servo gains used for the same feedback.
2. An adjustment device for adjusting force control parameters used in force control of a robot system including a robot, a force detector capable of measuring an external force applied to the robot, and a control unit that causes the robot to operate by feedback control, using one or more types of second servo gains corresponding to one or more types of first servo gains used in the control unit when causing the robot system to perform actual work, wherein each of the second servo gains has a value higher than the corresponding first servo gain, and candidate values of the force control parameters, causing the robot to operate. A measurement unit that performs a measurement process of obtaining a force measurement value which is a measured value of the external force; By performing an optimization process on the force control parameter using the force measurement value, A parameter update unit that performs a parameter update process of obtaining a new candidate value of the force control parameter; By repeating the measurement process and the parameter update process, a parameter determination unit that performs a parameter determination process of determining the force control parameter used in the force control of the robot system; and The control unit includes: Performing feedback control on the position and speed of the control point of the robot; The second type of servo gain includes at least one of a servo gain of feedback for the position and a servo gain of feedback for the speed; In the parameter determination process, the parameter determination unit uses the second type of servo gain having different values from each other, which is the second type of servo gain used for the same feedback, to execute a plurality of the measurement processes. An adjustment device.
Citation Information
Patent Citations
Method of controlling industrial robot
JP1989146680A
Method for controlling power control robot
JP1990139190A
Control device, robot, and robot system
JP2018126798A
Robot motion adjustment device, motion control system, and robot system
WO2019098044A1