ROBOT SYSTEM AND METHOD FOR ADJUSTING FORCE CONTROL PARAMETERS IN ROBOT SYSTEM - Patent application
The method optimizes force control parameters in robotic systems to address non-vertical insertion scenarios by measuring and adjusting for perpendicular forces, ensuring efficient and controlled component insertion or extraction.
Patent Information
- Application Number
- JP2020195934
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2020-11-26
- Publication Date
- 2024-12-17
- Estimated Expiration
- 2040-11-26
AI Technical Summary
Existing robot control systems fail to properly insert components into holes when the insertion direction is not vertically downward due to the assumption of zero target force in directions perpendicular to the insertion, leading to issues with normal and frictional forces from the hole's inner wall.
A method for adjusting force control parameters in a robotic system using a force detector and end effector to measure external forces during insertion or withdrawal, optimizing parameters to account for forces in directions perpendicular to the insertion or withdrawal, and performing iterative optimization to determine appropriate force control settings.
Enables proper insertion or extraction of components into or from gaps by accounting for forces in all directions, reducing operation time and preventing excessive force application.
Smart Images

Figure 0007600639000001 
Figure 0007600639000002 
Figure 0007600639000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates to a robot system, a control method for a robot system, and a method for adjusting force control parameters in a robot system. [Background technology]
[0002] Conventionally, there exists a robot control device that performs impedance control in an insertion operation for inserting a part into a hole. In the technology of Patent Document 1, viscosity parameters in impedance control are set corresponding to a plurality of sections set along the depth direction of the hole. In a viscosity parameter adjustment process, one of the viscosity parameters corresponding to each section is reduced, an insertion operation is performed by the robot, and a reaction force acting on the hand is measured by a force sensor provided on the robot. By repeating such a process that is performed in order for the viscosity parameters corresponding to each section, a set of viscosity parameters that satisfies the condition that the reaction force is equal to or less than a predetermined value and that shortens the time for the insertion operation r is set.
[0003] Patent Document 1 does not mention the target force in the direction perpendicular to the part insertion direction in the control. This is because Patent Document 1 is based on the premise that the part is inserted vertically downward. Conventionally, in such a case, the magnitude of the target force in the direction perpendicular to the insertion direction is set to 0. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] International Publication No. 2014 / 037999 Summary of the Invention [Problem to be solved by the invention]
[0005] However, the insertion direction of the part is not always vertically downward. If the insertion direction of the part is other than vertical, the part being inserted comes into contact with the inner wall of the hole and receives normal force and frictional force from the inner wall of the hole. For this reason, in practice, there are cases where the part cannot be properly inserted into the hole by control in which the magnitude of the target force in the direction perpendicular to the insertion direction is set to 0.
[0006] Furthermore, when subjected to an external force, the force sensor has the characteristic that, while it detects the force in the direction in which the force is actually received and outputs a detection signal, it also outputs a detection signal in a direction perpendicular to the direction in which the force is actually received, as if it had detected a force of about several percent of the force that was actually received.As a result, even if the insertion direction of the part is vertical, due to the characteristics of the force sensor, a force is detected in the direction perpendicular to the insertion direction, and control is performed to make that force zero, which may prevent the part from being properly inserted into the hole. [Means for solving the problem]
[0007] According to one embodiment of the present disclosure, there is provided a method for adjusting a force control parameter used in force control of a robot system. The robot system includes a robot, a force detector provided on the robot and capable of measuring an external force, and an end effector provided on the robot and capable of holding a first object. The force control is performed based on the measurement value of the external force by the force detector when a tracing operation is performed using the robot. The tracing operation is an operation in which at least a portion of the first object held by the end effector is inserted into a gap provided in the second object while contacting a second object, or the portion is extracted from the gap while contacting the second object. The adjustment method includes: a target force in the direction of said insertion or extraction; A target force in a direction perpendicular to the direction of insertion or extraction. and,a parameter updating step of performing an optimization process for the force control parameters using candidate values of the force control parameters including the force control parameter candidate values, and obtaining force measurement values which are measurement values of the external force in the tracing motion; a parameter updating step of performing an optimization process for the force control parameters using the force measurement values to obtain new candidate values of the force control parameters; and a parameter determining step of determining and outputting force control parameters to be used in the force control of the robot system by repeating the measurement step and the parameter updating step. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 is a perspective view showing a robot system 1 according to a first embodiment. [Diagram 2] 2 is a block diagram showing the functions of a robot control device 200 and a setting device 600. FIG. [Diagram 3] FIG. 2 is a diagram showing force control parameters 226 used in the control program 224. [Figure 4] 13 is a flowchart showing a procedure for creating a control program. [Diagram 5] 5 is a flowchart showing a method for adjusting a force control parameter in step S120 of FIG. 4. [Figure 6] FIG. 11 is a block diagram showing the input and output of the optimization algorithm used in the parameter update processing in steps S123 and S124. [Figure 7] 13 is a graph showing the transition of operation time accompanying the repetition of the processes of steps S123 to S126. [Figure 8] FIG. 11 is an explanatory diagram showing a state at the start of the tracing operation in step S140. [Figure 9] FIG. 11 is an explanatory diagram showing a state during the tracing operation in step S140. [Figure 10] FIG. 11 is an explanatory diagram showing a state during the tracing operation in step S140. [Figure 11] FIG. 11 is an explanatory diagram showing a state during the tracing operation in step S140. [Figure 12]FIG. 11 is an explanatory diagram showing a state immediately before the tracing operation in step S140 is ended. [Figure 13] 13 is a graph showing a force Fy in the positive y-axis direction that the end effector 140 receives during a tracing operation. [Figure 14] 13 is a graph showing a force Fz in the positive z-axis direction with which the end effector 140 supports the workpiece WK1 during a tracing operation. [Figure 15] FIG. 11 is an explanatory diagram showing another application example 1 of the technology of the present disclosure. [Figure 16] FIG. 11 is an explanatory diagram showing another application example 2 of the technique of the present disclosure. [Figure 17] FIG. 1 is a conceptual diagram showing an example of a robot control device configured using multiple processors. [Figure 18] FIG. 11 is a conceptual diagram showing another example of a robot control device configured by multiple processors. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] A. Embodiment: A1. Robot system configuration: 1 is a perspective view showing a robot system 1 according to an embodiment. The robot system 1 includes a camera 30, a robot 100, a force detector 130, an end effector 140, a robot control device 200, and a setting device 600. The robot 100, the robot control device 200, and the setting device 600 are communicatively connected via cables or wirelessly.
[0010] 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. 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 torsion joints. Various end effectors are attached to the arm flange 120 at the tip of the joint J6 for performing tasks such as gripping and processing an object. In this specification, an object handled by the robot 100 is also called a "workpiece."
[0011] A position near the tip of the arm 110 can be set as the tool center point. Hereinafter, the tool center point is referred to as "TCP." The TCP is a position used as a reference for the position of the end effector, and can be set at any position. For example, a predetermined position on the rotation axis of the joint J6 can be set as the TCP. Note that, although a six-axis robot is used in this embodiment, a robot having another joint mechanism may also be used.
[0012] The robot 100 can place the end effector in any position and in any 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. In this embodiment, the end effector 140 is a gripper. However, the robot 100 can be equipped with any other type of end effector.
[0013] The force detector 130 is provided on the robot 100 and can measure an external force. More specifically, the force detector 130 is a six-axis sensor that measures three-axis forces acting on the end effector 140 and torques acting around the three axes. The force detector 130 detects the magnitude of a force parallel to three mutually orthogonal detection axes in a sensor coordinate system, which is a unique coordinate system, and the magnitude of a torque around the three detection axes. Note that a force sensor may be provided as a force detector in any one or more of the joints J1 to J5 other than the joint J6. Note that the force detector may be a means for directly detecting a force or torque like the force detector 130, or a means for indirectly determining a force or torque by detecting the torque of a joint of the robot. Also, the force or torque may be detected only in the direction in which the force is controlled.
[0014] A coordinate system that defines the space in which the robot 100 is installed is called a robot coordinate system. The robot coordinate system is a three-dimensional Cartesian coordinate system defined by an x-axis and a y-axis that are mutually orthogonal on a horizontal plane, and a z-axis whose positive direction is vertically upward. 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 expressed by the positions in the x, y, and z-axis directions, and any posture in the three-dimensional space can be expressed by the rotation angles in the Rx, Ry, and Rz-axis directions. In this specification, the term "position" can mean both position and posture. In this specification, the term "force" can mean both force and torque.
[0015] A workpiece WK2, which is one of the targets of work by the robot 100, is placed on the worktable 50. A fitting hole H2 is formed on the side of the workpiece WK2. The fitting hole H2 has a circular cross section, extends in the positive direction of the y-axis from an opening on the side of the workpiece WK2, and is a hole with a bottom. A camera 30 is installed above the worktable 50. This camera 30 is installed so that the workpiece WK2 on the worktable 50 is included in its field of view. It should be noted that in the technology disclosed herein, the camera 30 can be omitted.
[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 an 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, the end effector 140, and the camera 30. More specifically, the robot control device 200 causes the robot 100 to perform a tracing operation. The tracing operation is generally an operation that follows an external force. More specifically, the tracing operation in this embodiment is an operation in which a part of the workpiece WK1 held by the end effector 140 is inserted into the fitting hole H2 of the workpiece WK2 while contacting the workpiece WK2. In addition, in the tracing operation, there may be a time period in which the workpiece WK1 separates from the workpiece WK2. In the tracing operation, 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. The functions of the robot control device 200 are realized by a computer having a processor and a memory executing a computer program.
[0018] The setting device 600 generates a control program in response to instructions from an instructor. The setting device 600 also adjusts force control parameters used in force control. The control program and force control parameters generated by the setting device 600 are transferred to the robot control device 200 and stored in the memory 220 of the robot control device 200.
[0019] 2 is a block diagram showing the functions of the robot control device 200 and the setting device 600. 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 the functions of a control execution unit 250 by executing program instructions 222 pre-stored in the memory 220. The control execution unit 250 causes the robot 100 to perform a task by executing a control program 224 stored in the memory 220. Note that some or all of the functions of the control execution unit 250 may be realized by a hardware circuit.
[0020] The setting device 600 includes a processor 610, a memory 620, a display device 660, and an input device 670. The memory 620 includes a volatile memory and a non-volatile memory. The processor 610 realizes the function of a program creation unit 650 by executing program instructions 622 prestored in the memory 620. The program creation unit 650 creates the control program 224 according to an input from a user by executing a setting program 624 stored in the memory 620. The program creation unit 650 further determines parameters of the control program 224 by executing the setting program 624. Note that a part or all of the function of the program creation unit 650 may be realized by a hardware circuit.
[0021] 3 is a diagram showing force control parameters 226 used in the control program 224. The force control parameters 226 are parameters related to the force control of the robot 100. The force control parameters 226 are referred to when force control is performed according to the control program 224.
[0022] The force control parameters 226 include parameters indicating the "start point" and "end point" of each motion (see the upper part of FIG. 3). In this embodiment, the "start point" and "end point" of the TCP of the robot 100 to be controlled are defined in the robot coordinate system. A translational position and a rotational position are defined for each axis of the robot coordinate system. The start point and end point may be defined in various coordinate systems.
[0023] In force control, at least some of the start and end points may not be defined in one motion. For example, when collision avoidance or tracking control is performed in a motion so that the force acting in a certain direction becomes zero, the start and end points in that direction may not be defined, and a state in which the position can be changed arbitrarily may be defined so that the force in that direction becomes zero.
[0024] The force control parameters 226 include "acceleration / deceleration characteristics" of the TCP in a plurality of movements (see the middle part of FIG. 3). The acceleration / deceleration characteristics define the speed of the TCP of the robot 100 at each time when the TCP moves from the start point to the end point of each movement. In this embodiment, the speed described by the acceleration / deceleration characteristics is the speed of the TCP of the robot 100 to be controlled. In this embodiment, the speed of the TCP is defined in the robot coordinate system. That is, a translational speed and a rotational speed, i.e., an angular speed, are defined for each axis of the robot coordinate system. The acceleration / deceleration characteristics may also be defined in various coordinate systems.
[0025] The force control parameters 226 include servo gains in the feedback control of the TCP position (see the middle part of FIG. 3). The servo gains include a proportional gain, an integral gain, and a differential gain in the PID control of the TCP position.
[0026] The force control parameters 226 include information indicating a "force control coordinate system" (see the lower part of FIG. 3). The force control coordinate system is a coordinate system for defining a target force of force control. Before optimization, the starting point of the target force vector is the origin of the force control coordinate system, and one axis of the force control coordinate system is oriented in the direction of the target force vector. When various target forces in force control are defined in teaching a robot, the action point of the target force in each operation of each task is taught. For example, when a point of an object is brought into contact with another object, and a certain target force is applied from the object to the other object at the contact point between the two, and the orientation of the object is changed in this state, the force control coordinate system is redefined as follows. That is, the point where the object comes into contact with the other object becomes the action point of the target force, and the force control coordinate system is defined with the action point as the origin.
[0027] The force control parameters 226 include, as parameters, information for specifying a coordinate system having an origin at the point where the target force of the force control acts and one axis pointing in the direction of the target force, that is, a force control coordinate system. The parameters can be defined in various ways. For example, the parameters for specifying the force control coordinate system can be defined by data indicating the relationship between the force control coordinate system and another coordinate system (such as a robot coordinate system).
[0028] The force control parameters 226 include a "target force" (see the lower part of FIG. 3). The target force is a force that is taught as a force to be applied to an arbitrary point in various tasks, and is defined by the force control coordinate system. The target force vector indicating the target force is defined as the origin of the target force vector and six-axis components from the origin, i.e., three-axis translational forces and three-axis torques, and is expressed in the force control coordinate system. By utilizing 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.
[0029] The force control parameters 226 include "impedance parameters" (see the lower part of Figure 3). Impedance control is 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 possesses is defined as a virtual mass coefficient m. The viscous resistance that the TCP virtually experiences is defined as a virtual viscosity coefficient d. The spring constant of the elastic force that the TCP virtually experiences is defined as a virtual elastic coefficient k. These coefficients m, d, and k are the impedance parameters. The impedance parameters are defined for translation and rotation with respect to each axis of the robot coordinate system.
[0030] In this embodiment, the target force and impedance parameters can be set for each of a plurality of sections defined according to the positions of the control points in the motion executed by each robot, and as a result, these parameters can be changed over time.
[0031] A2. Creating a control program and adjusting parameters: Fig. 4 is a flowchart showing the procedure for creating a control program. In this embodiment, the control program created by the process of Fig. 4 is a program for realizing a tracing operation in which the workpiece WK1 held by the end effector 140 is inserted into the fitting hole H2 provided in the workpiece WK2. The process of Fig. 4 is executed by a program creation unit 650 which is a functional unit of the processor 610 of the setting device 600.
[0032] In step S110, a flow of operations to be realized by the control program 224 of the robot 100 is created. Specifically, operations to be executed by the robot 100 and the order of these operations are determined according to the instructor's instructions inputted via the display device 660 and the input device 670 of the setting device 600.
[0033] In step S120, adjustment is made to the force control parameters used in the force control of the robot system 1. The adjustment of the force control parameters will be described in detail later.
[0034] In step S130, the motion flow determined in step S110 and the force control parameters adjusted in step S120 are converted into a control program. The converted control program is written in a low-level language.
[0035] In step S140, the control program is transferred from the setting device 600 to the robot control device 200 and stored in the memory 220 (see 224 in FIG. 2). Then, in accordance with the control program 224, the robot control device 200 controls the robot and makes the robot perform a task. This task can be performed as a confirmation task for checking the operation of the robot 100 on a production line, or as a main task for manufacturing a product on a production line.
[0036] Fig. 5 is a flowchart showing a method for adjusting the force control parameters in step S120 of Fig. 4. In the following description, in order to facilitate 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.
[0037] In step S121, the robot 100 is caused to perform a tracing motion using the motion flow of the tracing motion determined in step S110 and initial candidate values of force control parameters for the tracing motion. The initial candidate values of the force control parameters for the tracing motion are not values determined in accordance with a specific motion, but are determined so as to be applicable to various tracing motions. The initial candidate values of the force control parameters for the tracing motion include a target force in a direction perpendicular to the insertion or removal direction in addition to a target force in the insertion or removal direction. The initial candidate values of the force control parameters for the tracing motion are stored in advance in the memory 220 of the robot controller 200 (see the middle right part of FIG. 2).
[0038] In step S122, a measurement value of the external force in the tracing operation in step S121 is obtained. The measurement value of the external force is referred to as a "force measurement value." Also, in step S122, the time required for the tracing operation in step S121 is measured. The time required for the tracing operation is referred to as an "operation time." The process of step S122 is substantially performed in parallel with the process of step S121. The processes of steps S121 and S122 are collectively referred to as a "measurement process."
[0039] The tracing motion by the robot 100 in step S121 is performed seven times. In step S122, the maximum value of the measured external force of the tracing motion performed seven times is adopted as the force measurement value. The average value of the time required for each of the seven tracing motions is adopted as the motion time. After the maximum force measurement value and the average motion time are obtained, the process proceeds to step S123. Note that although the maximum value of the measured external force of the tracing motion is adopted as the force measurement value, this is not limiting, and the average value may be used.
[0040] In step S123, the force measurement values and the motion time are input to an optimization algorithm. The optimization algorithm performs an optimization process on the force control parameters using the force measurement values and the motion time, and outputs new candidate values for the force control parameters (see FIG. 3). The process by the optimization algorithm will be described later.
[0041] In step S124, new candidate values for the force control parameters output from the optimization algorithm are obtained. The processes in steps S123 and S124 are collectively referred to as "parameter update process."
[0042] In step S125, the robot 100 is caused to perform a conforming movement using the motion flow of the conforming movement determined in step S110 and the new candidate values of the force control parameters acquired in step S124.
[0043] In step S126, a force measurement value of the tracing operation in step S125 is acquired. Also, in step S126, the operation time of the tracing operation in step S125 is measured. The process of step S126 is substantially performed in parallel with the process of step S125. The process of step S126 is the same as the process of step S122. The processes of steps S125 and S126 are collectively referred to as "measurement process."
[0044] The robot 100 performs the tracing motion seven times in step S125. In step S126, the maximum value of the external force measurements of the seven tracing motions is adopted as the force measurement value. The average value of the time required for each of the seven tracing motions is adopted as the motion time. After the maximum force measurement value and the average motion time are obtained, the process proceeds to step S127.
[0045] In step S127, it is determined whether the evaluation value obtained in step S125 has converged. In this embodiment, the operation time is used as the evaluation value in step S127. Specific processing for determining whether the evaluation value has converged will be described later. If it is determined that the evaluation value has converged, the processing in FIG. 5 ends. If it is determined that the evaluation value has not converged, the processing returns to step S123.
[0046] The processes of steps S123 to S126 are repeated to determine the force control parameters used in the force control of the robot system 1. The determined force control parameters are output from the setting device 600 to the robot control device 200.
[0047] 6 is a block diagram showing the input and output of the optimization algorithm used in the parameter update process in steps S123 and S124. The optimization algorithm used in this embodiment is an algorithm that takes force measurement values and motion time as inputs and outputs candidate values of force control parameters. Specifically, the optimization algorithm used in this embodiment is CMA-ES (Covariance Matrix Adaptation Evolution Strategy).
[0048] The optimization algorithm receives the operation time OT and the force measurement values, ie, the detected force Fd and the detected torque Td, as inputs. The optimization algorithm outputs candidate values for the force control parameters (see the right part of Figure 6).
[0049] With this configuration, new candidate values for the force control parameters can be obtained by optimization processing that takes into account the force measurement values and the operation time in the parameter update processing in steps S123 and S124. Therefore, by performing force control with the force control parameters determined in the processing in Fig. 5, it is possible to make the robot 100 appropriately insert the workpiece WK1 into the fitting hole H2 with a movement that is highly evaluated in terms of the external force received by the robot 100 in the tracing operation and the operation time OT of the tracing operation.
[0050] The optimization algorithm performs optimization processing so as to reduce the evaluation value Eval defined by the following formula (1), for example: The second and third terms in formula (1) are so-called penalty terms. Eval = α × OT + β×[if (Fmax>Flimit), then 100] + γ×[if (Tmax>Flimit),then 100] ··· (1) OT: Operating time of tracing operation [sec]. Fmax: The maximum value of the detection force Fd detected during the scanning operation. The detection power Fd is the composite power of the x-axis, y-axis, and z-axis components. Flimit: The tolerance on the magnitude of the maximum power Fd. Tmax: The maximum value of the detected torque Td detected during the tracing operation. The detected torque Td is a composite torque of the x-axis, y-axis, and z-axis components. Tlimit: The tolerance for the maximum value of the detected torque Td. α,β,γ: weighting coefficients.
[0051] The candidate values of the force control parameters output by the optimization algorithm include a target force Ft in the tracing motion and impedance parameters (see the upper right part of FIG. 6 and the lower part of FIG. 3). The target force Ft is expressed by a force component Fxt in the x-axis direction, a force component Fyt in the y-axis direction, a force component Fzt in the z-axis direction, as well as a torque component Txt centered on the x-axis, a torque component Tyt centered on the y-axis, and a torque component Tzt centered on the z-axis direction. That is, the candidate values of the force control parameters in the tracing motion include a target force in a direction perpendicular to the insertion or extraction direction in addition to a target force in the insertion or extraction direction. The impedance parameters include a virtual mass coefficient m, a virtual viscosity coefficient d, and a virtual elasticity coefficient k.
[0052] In the force control parameters determined by such processing, the target force in the direction perpendicular to the insertion or removal direction can be set to an appropriate value other than 0. Therefore, by performing force control with such force control parameters, it is possible to perform appropriate force control according to the work environment, not limited to insertion or removal along the vertical direction, and to cause the robot 100 to appropriately insert the workpiece WK1 into the fitting hole H2. Also, even when the force detector outputs other-axis components in a direction perpendicular to the direction in which the force is actually received, it is possible to cause the robot 100 to appropriately insert the workpiece WK1 into the fitting hole H2. Furthermore, by adjusting the force control parameters using an optimization method, the force control parameters can be easily determined without the user having to repeat trial and error.
[0053] The optimization algorithm outputs a flag Flg that specifies whether force control is enabled or disabled, the positions xs, ys, zs, Rxs, Rys, and Rzs of the end effector 140 at the start of the tracing motion, and the positions xp, yp, and zp or Rxp, Ryp, and Rzp of the end effector 140 at a specified time between the start and end of the tracing motion (lower right part of FIG. 6). Note that in this embodiment, the position of the end effector 140 refers to a position based on a control point set at the tip of the end effector 140.
[0054] The parameters xs, ys, and zs represent the position of the end effector 140 at the start of the tracing motion as a point in three-dimensional space. The parameters Rxs, Rys, and Rzs represent the orientation of the end effector 140 at the start of the tracing motion.
[0055] The parameters xp, yp, and zp represent the position of the end effector 140 at a time between the start and end of the tracing motion as the position of a point in three-dimensional space. In other words, the parameters xp, yp, and zp represent the position of a pass point in the tracing motion as the position of a point in three-dimensional space. The parameters Rxp, Ryp, and Rzp represent the orientation of the end effector 140 at a time between the start and end of the tracing motion. In other words, the parameters Rxp, Ryp, and Rzp represent the orientation of the end effector 140 at the pass point in the tracing motion. The optimization algorithm outputs a specified one of the parameters xp, yp, and zp and the parameters Rxp, Ryp, and Rzp relating to the pass point.
[0056] By performing force control using force control parameters determined by such processing, it is possible to appropriately specify control over whether force control is enabled or disabled, the positions xs, ys, zs, Rxs, Rys, Rzs of the end effector 140 at the start of the tracing operation, and the positions xp, yp, zp or Rxp, Ryp, Rzp of the end effector 140 at the passing points of the tracing operation, thereby allowing the robot 100 to appropriately insert the workpiece WK1 into the mating hole H2.
[0057] For example, even without performing force control, there are cases where the workpiece WK1 can be appropriately inserted into the fitting hole H2 due to the deflection of the hardware configuration of the robot 100. In such cases, it is possible to avoid performing force control by including a flag Flg that specifies whether force control is enabled or disabled in the optimization process.
[0058] In addition to the parameters shown in FIG. 16, the optimization algorithm also outputs the force control parameters, namely, the acceleration / deceleration characteristics, the servo gain, and the force control coordinate system (see FIG. 3).
[0059] FIG. 7 is a graph showing the transition of the operation time with the repetition of the processes of steps S123 to S126. The horizontal axis is the number of times the processes of steps S123 to S126 are repeated. The left vertical axis is the operation time OT. The right vertical axis is the difference between the operation time of each time and the previous operation time. The circles in the graph of FIG. 7 represent the average value of the operation time obtained from the seven measurements in step S125. The triangles represent the maximum value of the operation time obtained from those seven measurements. The squares represent the minimum value of the operation time obtained from those seven measurements. It can be seen that the average value, maximum value, and minimum value all become smaller as the processes are repeated.
[0060] The X in the graph in Figure 7 indicates the difference between the average operation time in each measurement process and the average operation time in the previous measurement process. It can be seen that the absolute value of the difference also approaches 0 as the process is repeated.
[0061] 5, it is determined that the evaluation value has converged if, in the repetition of the processes of steps S123 to S126, the difference remains within a predetermined range Rth centered on 0 for four consecutive times. By performing such a process, it is possible to prevent a situation in which the processes of steps S123 to S126 are repeated even though the operation time is not shortened.
[0062] In this embodiment, the force control parameters for the target force Ft are adjusted by the process of FIG. 5 without imposing a constraint that the force component in the direction perpendicular to the insertion direction is set to 0. Therefore, a value other than 0 is set in principle for the force component in the direction perpendicular to the insertion direction. As a result, in step S140 of FIG. 4, the force control is performed according to the target force including a component in a direction perpendicular to the insertion direction and having a magnitude other than 0. Therefore, the control method for performing force control that also applies a force in a direction perpendicular to the insertion direction can cause the robot 100 to appropriately insert the workpiece WK1 into the fitting hole H2.
[0063] A3. Example of tracing motion: An example of the tracing operation will be described with reference to Figs. 8 to 12. The operation described in Figs. 8 to 12 is a snapping operation. The tracing operation described here is realized by force control executed by the robot control device 200. Figs. 8 to 12 do not accurately represent the shapes of the workpieces WK1, WK2, the end effector 140, and the force detector 130.
[0064] 8 is an explanatory diagram showing the state at the start of the tracing operation in step S140. In order to facilitate understanding of the technology, the technical content will be explained below along the robot coordinate system. The insertion direction in the tracing operation is the negative y-axis direction in the robot coordinate system (see H2 in FIG. 1).
[0065] A snapping mechanism SN is provided on the inner surface of the fitting hole H2 of the workpiece WK2 that is located in the positive direction of the z axis. The claw of the snapping mechanism SN is pressed in the negative direction of the z axis by a spring, and protrudes a predetermined distance from the inner surface of the fitting hole H2. When pressed in the positive direction of the z axis, the claw of the snapping mechanism SN moves from within the fitting hole H2 in the positive direction of the z axis. The claw of the snapping mechanism SN can retreat in the positive direction of the z axis to a position where it does not protrude from the inner surface of the fitting hole H2.
[0066] The control point CP of the robot 100 is located at the center of the tip surface of the workpiece WK1 held by the end effector 140. A virtual threshold plane Sc is defined near the end of the fitting hole H2 in the insertion direction. The threshold plane Sc is a plane parallel to the z-axis and x-axis. When the control point CP reaches the threshold plane Sc during the tracing operation, the tracing operation is determined to be completed.
[0067] In the state of FIG. 8, gravity Fg acts on the workpiece WK1. Gravity acting on the workpiece WK1 is represented by a vector with the center of gravity G of the workpiece WK1 as the base point. In the state of FIG. 8, the robot 100 performs force control so as to maintain the position and posture of the workpiece WK1 against gravity Fg acting on the workpiece WK1. The position and posture of the workpiece WK1 at this time are such that the area occupied by the workpiece WK1 is included within the area occupied by the fitting hole H2 of the workpiece WK2 when projected in the y-axis direction, which is the insertion direction. In this state, the robot 100 does not receive a reaction force in the y-axis direction from the workpiece WK2.
[0068] Fig. 9 is an explanatory diagram showing a state during the tracing operation in step S140. In the state of Fig. 9, the tip of the workpiece WK1 in the negative y-axis direction is positioned inside the fitting hole H2 (see CP in Fig. 9). However, the tip of the workpiece WK1 in the negative y-axis direction is not in contact with the snapping mechanism SN. At this time, the lower surface of the workpiece WK1 is in contact with the inner surface of the fitting hole H2.
[0069] In this state, the workpiece WK1 presses the inner surface of the fitting hole H2 in the negative direction of the z axis, and receives a normal force Fn1 in the positive direction of the z axis from the inner surface of the fitting hole H2.
[0070] The workpiece WK1, which is being moved in the negative direction of the y-axis by the tracing motion of the robot 100, receives a frictional force Ff1 in the positive direction of the y-axis from its contact surface with the inner surface of the fitting hole H2. In Fig. 9, the forces in the y-axis direction that the workpiece WK1 receives from the workpiece WK2 are collectively shown as Ff1 on the top of the workpiece WK1. In the state of Fig. 9, the frictional force that the workpiece WK1 receives from its contact surface with the inner surface of the fitting hole H2 increases as the workpiece WK1 is inserted into the fitting hole H2 and the contact area between the bottom surface of the workpiece WK1 and the inner surface of the fitting hole H2 increases.
[0071] The robot control device 200 controls the robot 100 so as to generate set target forces in the y-axis and z-axis directions. In other words, the robot control device 200 performs force control so that the y-axis direction force Ff1 and the z-axis direction force Fn1 detected by the force detector 130 match the y-axis direction component and the z-axis direction component of the target force, respectively. As a result, the workpiece WK1 is moved upward within the fitting hole H2.
[0072] Fig. 10 is an explanatory diagram showing a state during the tracing operation in step S140. In the state of Fig. 10, the tip of the workpiece WK1 in the negative y-axis direction is in contact with the claws of the snapping mechanism SN. The lower surface of the workpiece WK1 is in contact with the inner surface of the fitting hole H2.
[0073] In this state, the workpiece WK1 presses the claws of the snapping mechanism SN in the negative direction of the y axis, and receives a resistance force in the positive direction of the y axis from the claws of the snapping mechanism SN. The workpiece WK1 presses the inner surface of the fitting hole H2 in the negative direction of the z axis, and receives a normal resistance force Fn2 in the positive direction of the z axis from the inner surface of the fitting hole H2. Furthermore, the workpiece WK1, which is being moved in the negative direction of the y axis by the tracing operation of the robot 100, receives a friction force in the positive direction of the y axis from the contact surface with the inner surface of the fitting hole H2. In FIG. 10, the forces in the y axis direction that the workpiece WK1 receives from the workpiece WK2 are collectively shown as Ff2 on the top of the workpiece WK1.
[0074] The robot control device 200 performs force control so that the force Ff2 in the y-axis direction and the force Fn2 in the z-axis direction detected by the force detector 130 match the y-axis component and the z-axis component of the target force, respectively. As a result, the workpiece WK1 is pushed with a larger force in the negative y-axis direction compared to the state of FIG. 9. Meanwhile, the moving speed of the workpiece WK1 in the negative y-axis direction decreases. When the force with which the workpiece WK1 pushes the claws of the snapping mechanism SN in the negative y-axis direction exceeds a certain value, the claws of the snapping mechanism SN start to retract in the positive z-axis direction. The resistance in the positive y-axis direction that the workpiece WK1 receives from the snapping mechanism SN increases as the snapping mechanism SN proceeds to retract in the positive z-axis direction. Also, in the state of FIG. 10, the frictional force that the workpiece WK1 receives from the contact surface with the inner surface of the fitting hole H2 increases as the workpiece WK1 is inserted into the fitting hole H2 and the contact area between the lower surface of the workpiece WK1 and the inner surface of the fitting hole H2 increases. Therefore, as the workpiece WK1 is moved in the negative y-axis direction, the force Ff in the y-axis direction detected by the force detector 130 increases.
[0075] Fig. 11 is an explanatory diagram showing a state during the tracing operation in step S140. In the state of Fig. 11, the tip end of the workpiece WK1 has passed through the snapping mechanism SN, and the upper surface of the workpiece WK1 is in contact with the snapping mechanism SN.
[0076] In this state, the workpiece WK1 is pressed in the negative direction of the z axis by the claws of the snapping mechanism SN. The workpiece WK1 presses the inner surface of the fitting hole H2 in the negative direction of the z axis, and receives a normal force Fn3 in the positive direction of the z axis from the inner surface of the fitting hole H2. Furthermore, the workpiece WK1, which is being moved in the negative direction of the y axis by the tracing operation of the robot 100, receives a friction force in the positive direction of the y axis from the contact portion with the claws of the snapping mechanism SN and the contact surface with the inner surface of the fitting hole H2. In FIG. 11, the forces in the y axis direction that the workpiece WK1 receives from the workpiece WK2 including the claws of the snapping mechanism SN are collectively shown as Ff3 on the top of the workpiece WK1.
[0077] The robot control device 200 performs force control so that the force Ff3 in the y-axis direction and the force Fn3 in the z-axis direction detected by the force detector 130 match the y-axis component and the z-axis component of the target force, respectively. As a result, the workpiece WK1 is pushed in the negative y-axis direction with a smaller force than in the state of FIG. 10. However, even in the state of FIG. 11, the frictional force that the workpiece WK1 receives from the contact surface with the inner surface of the fitting hole H2 increases as the workpiece WK1 is inserted into the fitting hole H2 and the contact area between the bottom surface of the workpiece WK1 and the inner surface of the fitting hole H2 increases. Therefore, as the workpiece WK1 is moved in the negative y-axis direction, the force Ff in the y-axis direction detected by the force detector 130 increases.
[0078] Fig. 12 is an explanatory diagram showing a state immediately before the tracing operation in step S140 is ended. In the state of Fig. 12, the tip end of the workpiece WK1 in the negative y-axis direction has reached the threshold plane Sc (see CP in Fig. 12). When it is detected that the TCP has reached the threshold plane Sc, the robot control device 200 ends the tracing operation.
[0079] In Fig. 12, the forces in the y-axis direction that the workpiece WK1 receives from the workpiece WK2, including the jaws of the snapping mechanism SN, are collectively shown as Ff4 on the top of the workpiece WK1. In Fig. 12, the normal 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.
[0080] In the state shown in Fig. 12 immediately before the completion of the tracing operation, the forces that the workpiece WK1 receives from the inner surface of the workpiece WK2 and the jaws of the snapping mechanism SN are substantially the same as those in the state shown in Fig. 11. However, because the insertion of the workpiece WK1 into the workpiece WK2 has progressed further, the force Ff4 in the y-axis direction is greater than the force Ff3 in Fig. 11, and the force Fn4 in the z-axis direction is greater than the force Fn3 in Fig. 11.
[0081] When the tracing operation is completed, the gripper as the end effector 140 releases the workpiece WK1, and the robot 100 moves on to the next operation.
[0082] FIG. 13 is a graph showing the force Fy in the positive y-axis direction received by the end effector 140 during the tracing operation. The horizontal axis is the position of the control point CP along the negative y-axis direction. In the tracing operation shown in FIGS. 8 to 12, the force Fy in the positive y-axis direction received by the end effector 140 changes as shown in FIG. 13. The force Fy is maximum when the control point CP on the tip surface of the workpiece WK1 is at the apex position of the jaws of the snapping mechanism SN (see FIG. 10). In FIG. 13, the positions of the control point CP in the states shown in FIGS. 9 to 12 are indicated by P9 to P12, respectively. In FIG. 13, the forces Ff1 to Ff4 in the positive y-axis direction in the states shown in FIGS. 9 to 12 are shown.
[0083] The robot control device 200 sets a target force in a time series so as to generate a force Fy shown in FIG. 13 during the tracing operation. In the process of step S120 in FIG. 4, first, a plurality of sections are set in the y-axis direction, which is the insertion direction, to divide the range in which the tracing operation is performed. In step S123 in FIG. 5, an optimization process is performed to adjust the positions of the boundaries of the plurality of sections in the y-axis direction and the y-axis component of the target force at the boundaries of each section. The target force in each section is determined by interpolating the target forces at the boundaries at both ends of each section. Force control is performed to apply a force in the negative y-axis direction according to the y-axis component of the time series target force optimized in this way (see S120 in FIG. 4 and FIG. 13). As a result, the workpiece WK1 is inserted into the fitting hole H2 in a short time without receiving an excessive force in the y-axis direction.
[0084] FIG. 14 is a graph showing the force Fz in the positive direction of the z-axis that the end effector 140 receives during the tracing operation. The horizontal axis is the position of the control point CP along the negative direction of the y-axis. In the tracing operation shown in FIGS. 8 to 12, the force Fz in the positive direction of the z-axis that the end effector 140 receives changes as shown in FIG. 14. The force Fz increases as the workpiece WK1 is inserted into the fitting hole H2. In FIG. 14, the positions of the control point CP in the states shown in FIGS. 9 to 12 are indicated by P9 to P12, respectively. In FIG. 14, forces Fn1 to Fn4 in the positive direction of the z-axis in the states shown in FIGS. 9 to 12 are shown.
[0085] The robot control device 200 sets a time-series target force so as to generate a force Fz shown in FIG. 14 during the tracing operation. In step S123 of FIG. 5, an optimization process is performed to adjust the positions of boundaries of a plurality of sections in the y-axis direction and the z-axis component of the target force at the boundaries of each section. The target force in each section is determined by interpolating the target forces at the boundaries at both ends of each section. Force control is performed to apply a force in the negative z-axis direction according to the z-axis component of the time-series target force optimized in this way (see S120 of FIG. 4 and FIG. 14). As a result, the workpiece WK1 is inserted into the fitting hole H2 in a short time without receiving an excessive force in the z-axis direction.
[0086] As explained above, by setting each parameter of the force control to a value that changes over time, it is possible to set the force control parameters so that an appropriate force is applied even in an operation in which the reaction force or friction force changes during insertion or removal. This makes it possible to prevent excessive force from being applied to the object and to shorten the operation time.
[0087] In this embodiment, the robot control device 200 is also referred to as a "control unit." The setting device 600 is also referred to as an "adjustment unit." The workpiece WK1 is also referred to as a "first object." The workpiece WK2 is also referred to as a "second object." The fitting hole H2 is also referred to as a "gap." Steps S121, S122, and S125, S126 are also referred to as a "measurement process." Steps S123, S124 are also referred to as a "parameter update process." Steps S123 to S127 are also referred to as a "parameter determination process." The processing performed in steps S123 to S127 is also referred to as a "parameter determination process."
[0088] B. Other application example 1: FIG. 15 is an explanatory diagram showing another application example 1 of the technology of the present disclosure. Here, an example in which the technology of the present disclosure is applied to the assembly of an operating device of an automobile, a so-called differential gear, will be described. Note that in FIG. 15, configurations other than the object handled by the robot 100, the end effector 140, and the force detector 130 are omitted in order to facilitate understanding of the technology. FIG. 15 does not accurately represent the shapes of the object handled by the robot 100, the end effector 140, and the force detector 130.
[0089] In the partially assembled actuating device shown in Figure 15, a left side gear WK1b is attached to the end of a left drive shaft 383 (see the center of Figure 15). A right side gear 387 is attached to the end of a right drive shaft 386. A pair of opposing differential pinion gears WK2b, WK2c are assembled inside a differential gear case 381 (see the right part of Figure 15). Note that in order to facilitate understanding of the technology, Figure 15 shows only the parts of the differential pinion gears WK2b, WK2c that are provided with teeth, and the illustration of other parts is omitted.
[0090] The weight of the differential gear case 381 is generally large. For this reason, the right drive shaft 386 is assembled from the right to the differential gear case 381 fixed in a predetermined position. The left drive shaft 383 is assembled from the left to the differential gear case 381. In FIG. 15, the right drive shaft 386 is already assembled to the differential gear case 381. In this state, the right side gear 387 meshes with a pair of opposing differential pinion gears WK2b, WK2c.
[0091] In this application example, the left drive shaft 383 passes through a hole 381H of the differential gear case 381 and is assembled to the differential gear case 381. The tracing operation in this application example is an operation in assembling an actuator of an automobile in which the left side gear WK1b held by the end effector 140 is inserted into the gap between the differential pinion gears WK2b, WK2c while coming into contact with the differential pinion gears WK2b, WK2c.
[0092] The robot 100 holds the left drive shaft 383 by the end effector 140. The end effector 140 receives a gravity force Fgb acting on the left drive shaft 383 and the left side gear WK1b. The center of gravity Gb of the left drive shaft 383 and the left side gear WK1b is shown in FIG.
[0093] The force detector 130 detects a vertically downward force Fg acting on the end effector 140 and a torque resulting from the force Fg. In force control, the robot control device 200 generates forces and torques at each joint of the arm 110 that cancel out the force and torque, thereby maintaining the position and posture of the left drive shaft 383 and the left side gear WK1b. The control point CPb of the robot 100 is on the central axis of the left drive shaft 383 and the left side gear WK1b, and is determined to be at a position within the left side gear WK1b (see the center of FIG. 15).
[0094] In the state of Fig. 15, the left side gear WK1b is not in contact with the differential pinion gears WK2b, WK2c, and therefore does not receive any force from the differential pinion gears WK2b, WK2c.
[0095] The tracing operation is started from the state in FIG. 15, and the left drive shaft 383 and the left side gear WK1b are moved in the negative direction of the y-axis. After that, the left side gear WK1b comes into contact with the differential pinion gears WK2b, WK2c. Then, similar to the embodiment, the left side gear WK1b receives a normal force and a frictional force from the differential pinion gears WK2b, WK2c (see Ff1, Fn1 in FIG. 9). In FIG. 15, the normal force that the left side gear WK1b receives from the differential pinion gear WK2b is indicated by a broken line as force Fn21.
[0096] The normal force and frictional force that the left side gear WK1b receives from the differential pinion gears WK2b, WK2c change as the insertion progresses, as in the case of the embodiment. Meanwhile, the shape, position and posture of the differential pinion gears WK2b, WK2c deviate from the ideal shape, position and posture due to manufacturing errors of the differential pinion gears WK2b, WK2c and differences in the assembly of the differential pinion gears WK2b, WK2c to the differential gear case 381. The normal force and frictional force that the left side gear WK1b receives from the differential pinion gears WK2b, WK2c also deviate from the design assumed values due to manufacturing errors of the differential pinion gears WK2b, WK2c and differences in the assembly of the differential pinion gears WK2b, WK2c to the differential gear case 381.
[0097] The robot control device 200 performs force control so that the forces in the y-axis direction and the z-axis direction detected by the force detector 130 match the y-axis direction component and the z-axis direction component of the target force, respectively, and inserts the left drive shaft 383 into the differential gear case 381. When the control point CPb reaches a predetermined threshold plane Sc2, the insertion operation is completed. The threshold plane Sc2 is a plane parallel to the z-axis and the x-axis.
[0098] The technology of the present disclosure can be applied to such a tracing operation (see Figs. 4 and 5). By applying the technology of the present disclosure, the target force values in the x-axis direction and z-axis direction perpendicular to the insertion direction are appropriately set. As a result, by performing force control with the set force control parameters, the robot system 1 can appropriately insert the left side gear WK1b into the gap between the differential pinion gears WK2b and WK2c.
[0099] In this embodiment, the left side gear WK1b is also referred to as a "first object." The differential pinion gears WK2b, WK2c are also referred to as a "second object."
[0100] C. Other application example 2: FIG. 16 is an explanatory diagram showing another application example 2 of the technology of the present disclosure. Here, an example of applying the technology of the present disclosure to machine tending for an NC (Numerically Control) machine tool, that is, supplying a workpiece to the NC machine tool and removing the workpiece from the NC machine tool, will be described. In FIG. 16, in order to facilitate understanding of the technology, configurations other than the workpieces WK1c and WK1d handled by the robot 100, the NC machine tool 500 that processes the workpieces, the robot 100, and the end effector 140 are omitted. FIG. 16 does not accurately represent the shapes of the workpieces WK1c and WK1d, the NC machine tool 500 that processes the workpieces, the robot 100, and the end effector 140.
[0101] The NC machine tool 500 includes an NC operation panel 501, a machining space 502, an opening / closing door 503, a headstock 504, a chuck 505, a tool rest, and a cutting tool. In order to facilitate understanding of the technology, the tool rest and the cutting tool are omitted in Fig. 16.
[0102] The NC operation panel 501 is an input device for operating the NC machine tool 500. The machining space 502 is a space where the workpiece WK1c is machined by a cutting tool. The headstock 504, the chuck 505, the tool rest, and the cutting tool are disposed in the machining space 502. The openable door 503 is a door for separating the machining space 502 from the outside space.
[0103] The chuck 505 is provided on the headstock 504. The chuck 505 has three jaws WK2d that are equally spaced around the central axis of rotation of the headstock 504. The chuck 505 presses the workpiece WK1c from three sides with the three jaws WK2d to fix the workpiece WK1c to the headstock 504. The headstock 504 rotates around the central axis together with the chuck 505 and the workpiece WK1c held by the chuck 505.
[0104] The cutting tool is supported by a tool rest. The tool rest is brought close to the rotating workpiece WK1c and placed at a predetermined position, whereby the cutting tool is pressed against the rotating workpiece WK1c, cutting the workpiece WK1c. The position of the tool rest and the rotation speed of the headstock 504, which change over time, are determined in advance by input via the NC operation panel 501.
[0105] One of the copying operations in this application example is an operation in which a part of the workpiece WK1c held by the end effector 140 is inserted into a gap surrounded by the three jaws WK2d of the chuck 505 of the NC machine tool 500 while contacting one or more of the three jaws WK2d of the chuck 505. Another of the copying operations in this application example is an operation in which a part of the machined workpiece WK1d removably held by the three jaws WK2d of the chuck 505 is extracted from the gap surrounded by the three jaws WK2d of the chuck 505 while contacting one or more of the three jaws WK2d of the chuck 505.
[0106] Before machining the workpiece WK1c, the open / close door 503 is opened to expose the machining space 502. At this time, the three jaws WK2d of the chuck 505 are arranged at intervals large enough to receive the workpiece WK1c before machining. The workpiece WK1c before machining is placed in the tray TR1. The robot 100 holds the workpiece WK1c before machining by the end effector 140 and inserts a part of the workpiece WK1c into the gap surrounded by the three jaws WK2d of the chuck 505. Thereafter, the three jaws WK2d approach the workpiece WK1c and press the workpiece WK1c from three sides to fix the workpiece WK1c to the headstock 504.
[0107] The robot control device 200 performs force control so that the forces in the y-axis direction, z-axis direction, and x-axis direction detected by the force detector 130 match the y-axis direction component, z-axis direction component, and x-axis direction component of the target force, respectively, and inserts the unmachined workpiece WK1c into the gap surrounded by the three jaws WK2d of the chuck 505. When the control point reaches a predetermined threshold plane, the insertion operation ends. The threshold plane is a plane parallel to the z-axis and x-axis.
[0108] The technology of the present disclosure can be applied to such a tracing operation (see FIGS. 4 and 5). By applying the technology of the present disclosure, the target force values in the x-axis direction and z-axis direction perpendicular to the insertion direction are appropriately set. As a result, by performing force control with the set force control parameters, the robot system 1 can appropriately insert the unmachined workpiece WK1c into the gap surrounded by the three jaws WK2d of the chuck 505.
[0109] After the workpiece WK1c is machined, the openable door 503 is opened to expose the machining space 502. Thereafter, the three jaws WK2d of the chuck 505 are arranged with an interval large enough to allow the robot 100 to extract the machined workpiece WK1d. The machined workpiece WK1d is still held by the three jaws WK2d of the chuck 505. The robot 100 holds the machined workpiece WK1d by the end effector 140, and extracts the machined workpiece WK1d from the space surrounded by the three jaws WK2d of the chuck 505. The robot 100 then places the workpiece WK1d on the tray TR2.
[0110] The robot control device 200 performs force control so that the forces in the y-axis direction, z-axis direction, and x-axis direction detected by the force detector 130 match the y-axis direction component, z-axis direction component, and x-axis direction component of the target force, respectively, and extracts the unmachined workpiece WK1d from the gap surrounded by the three jaws WK2d of the chuck 505.
[0111] The technology of the present disclosure can be applied to such a tracing operation (see Figs. 4 and 5). By applying the technology of the present disclosure, the target force values in the x-axis direction and z-axis direction perpendicular to the removal direction are appropriately set. As a result, by performing force control with the determined force control parameters, the robot system 1 can appropriately remove the unmachined workpiece WK1d from the gap surrounded by the three jaws WK2d of the chuck 505.
[0112] In this embodiment, the workpieces WK1c and WK1d are also called the "first object." The three jaws WK2d of the chuck 505 of the NC machine tool 500 are also called the "second object."
[0113] D. Other application example 3: 17 is a conceptual diagram showing an example of a robot control device configured with multiple processors. In this example, in addition to the robot 100 and its robot control device 200, personal computers 680, 690 and a cloud service 900 provided via a network environment such as a LAN are depicted. The personal computers 680, 690 each include a processor and a memory. The processor and memory can also be used in the cloud service 900. It is possible to realize a control device and a setting device for the robot 100 by using some or all of these multiple processors.
[0114] Fig. 18 is a conceptual diagram showing another example in which a robot control device is configured by multiple processors. This example differs from Fig. 17 in that a robot control device 200 for the robot 100 is stored within the robot 100. In this example as well, it is possible to realize a control device and setting device for the robot 100 by using some or all of the multiple processors.
[0115] E. Other embodiments: E1. Alternative embodiment 1: (1) In the above embodiment, the end effector 140 can hold the workpiece WK1. However, the end effector 140 may be configured to hold the first object through another configuration as shown in Application Example 1 (see FIG. 15).
[0116] (2) In the above embodiment, the time-series change of the target force has been described (see FIGS. 13 and 14). The divisions of positions that realize the time-series change of the target force may be determined independently for the x-axis, y-axis, and z-axis, or may be determined uniformly for the x-axis, y-axis, and z-axis.
[0117] (3) In the above embodiment, the change in the target force over time has been described (see FIGS. 13 and 14). However, parameters other than the target force, such as impedance parameters, can also be values that change according to the position of the control point (see the upper right part of FIG. 6 and the lower part of FIG. 3). However, each parameter output by the algorithm may be a constant.
[0118] (4) In the above embodiment, in step S124, optimization processing using CMA-ES is performed (see FIGS. 5 and 6). However, the optimization processing may be performed using other methods such as PSO (Particle Swarm Optimization) or Bayesian optimization.
[0119] (5) In the above embodiment, the operation time OT is used as the evaluation value used in the determination in step S127 in Fig. 5 (see Fig. 7). However, the evaluation value used in determining the end condition of the process may be another evaluation value, such as detection power.
[0120] (6) In step S127 of the above embodiment, the end condition of the process is determined by determining whether the evaluation value obtained in step S125 has converged. However, the end condition of the process can also be determined by the evaluation value becoming a value better than a predetermined threshold value.
[0121] (7) Although not specifically mentioned in the above embodiment, it is preferable that the setting device 600 outputs the transition of the evaluation value according to the repetition of the process as a graph, for example as shown in Fig. 7, to the display device 660. Similarly, it is preferable that the transition of the output parameter candidate value according to the repetition of the process be output as a graph to the display device 660.
[0122] (8) In the above-mentioned Application Example 2, the robot 100 does not move relative to the NC machine tool 500. However, the robot 100 can also be configured as an autonomous mobile robot that can move together with a base equipped with trays TR1, TR2. In such an embodiment, one robot can perform machine tending for the NC machine tool 500.
[0123] E2. Alternative embodiment 2: (1) In the above embodiment, an algorithm is used in which the force measurement value and the operating time are input and the candidate value of the force control parameter is output (see FIG. 6). However, the input to the algorithm can be only one of the force measurement value and the operating time. Also, the input to the algorithm can be other evaluation values, such as the life span and the maximum torque ratio. In such an embodiment, optimization is performed for the evaluation value that is input, and a candidate value of the force control parameter that brings about a favorable result for the evaluation value that is input is determined.
[0124] (2) In the above embodiment, an algorithm is used that takes force measurement values and operation time as inputs (see FIG. 6). However, it is also possible to adopt an embodiment in which three or more evaluation values are input to the optimization algorithm. In an embodiment in which a plurality of evaluation values are input to the optimization algorithm, it is possible to obtain desirable force control parameters with fewer iterations by appropriately weighting the evaluation values as inputs (see S123 to S127 in FIG. 5).
[0125] In an embodiment in which multiple evaluation values are input to the optimization algorithm, the target function of the optimization process can be appropriately determined using the multiple evaluation values. The target function can be a single evaluation value, such as the operation time OT. The target function can also be a weighted sum of three evaluation values, consisting of the maximum value of the detection force Fd, the maximum value of the detection torque Td, and the operation time OT, or a hyper volume determined by these three evaluation values. The target function can also be a weighted sum of three evaluation values, consisting of the integral value of the detection force Fd and the integral value of the detection torque Td at an arbitrarily determined time during the tracing operation, and the operation time OT, or a hyper volume determined by these three evaluation values.
[0126] The maximum value of the detection power Fd may be the maximum value of the detection power Fd as a composite force of the x-axis, y-axis, and z-axis components. The maximum value of the detection power Fd may also be the maximum value of the detection power for each of the x-axis, y-axis, and z-axis components. The maximum value of the detected torque Td may be the maximum value of the detected torque Td as a composite torque of the components around the x-axis, y-axis, and z-axis. The maximum value of the detected torque Td may also be the maximum value of the detected torque for each of the components around the x-axis, y-axis, and z-axis.
[0127] The integral value of the detection power Fd may be the integral value of the detection power Fd as a composite force of the x-axis, y-axis, and z-axis components. The integral value of the detection power Fd may also be the integral value of the detection power for each of the x-axis, y-axis, and z-axis components. The integral value of the detection torque Td may be the integral value of the detection torque Td as a composite torque of the components around the x-axis, y-axis, and z-axis. The integral value of the detection torque Td may also be the integral value of the detection torque for each of the components around the x-axis, y-axis, and z-axis.
[0128] On the other hand, in a mode in which a plurality of evaluation values are input to the optimization algorithm, the optimization process may be a process of performing multi-objective optimization. For example, multi-objective optimization may be performed to minimize the maximum value of the detection force Fd, the maximum value of the detection torque Td, and the operation time OT. Multi-objective optimization may be performed to minimize the integral value of the detection force Fd and the integral value of the detection torque Td at an arbitrarily determined time during the tracing operation, and the operation time OT.
[0129] E3. Alternative embodiment 3: In the above embodiment, the optimization algorithm outputs a flag Flg that specifies whether force control is enabled or disabled, positions xs, ys, zs, Rxs, Rys, and Rzs of the end effector 140 at the start of the tracing motion, and positions xp, yp, zp, Rxp, Ryp, and Rzp of the end effector 140 at a specified time between the start and end of the tracing motion (lower right part of FIG. 6). However, it is also possible to adopt an embodiment in which one or more of these parameters are not included in the output. For example, it is possible to adopt an embodiment in which the output does not include a flag Flg that specifies whether force control is enabled or disabled, assuming that force control is performed.
[0130] On the other hand, the optimization algorithm may be configured to output multiple sets of positions xp, yp, zp, Rxp, Ryp, and Rzp of the end effector 140 corresponding to multiple passing points.
[0131] E4. Alternative embodiment 4: The candidate values of the force control parameters output by the optimization algorithm include the impedance parameters, virtual mass coefficient m, virtual viscosity coefficient d, and virtual elasticity coefficient k (see the upper right part of FIG. 6 and the lower part of FIG. 3). However, it is also possible to set one or more of the virtual mass coefficient m, virtual viscosity coefficient d, and virtual elasticity coefficient k as fixed values in advance, and not output the one or more coefficients of the optimization algorithm.
[0132] F. Further embodiments: (1) According to one embodiment of the present disclosure, there is provided a method for adjusting a force control parameter used in force control of a robot system. The robot system includes a robot, a force detector provided on the robot and capable of measuring an external force, and an end effector provided on the robot and capable of holding a first object. The force control is performed based on the measurement value of the external force by the force detector when a tracing operation is performed using the robot. The tracing operation is an operation in which at least a part of the first object held by the end effector is inserted into a gap of the second object while contacting a second object, or the part is extracted from the gap while contacting the second object. The adjustment method includes a measurement step of having the robot perform the tracing motion using candidate values of the force control parameter including a target force in a direction perpendicular to the insertion or extraction direction, and obtaining force measurement values that are measurement values of the external force in the tracing motion; a parameter updating step of performing an optimization process for the force control parameter using the force measurement values to obtain new candidate values for the force control parameter; and a parameter determination step of determining and outputting force control parameters to be used in the force control of the robot system by repeating the measurement step and the parameter updating step. According to this embodiment, the value of the target force in the direction perpendicular to the insertion or removal direction is appropriately set, and as a result, by performing force control with the determined force control parameter, the robot can appropriately insert the first object into the gap or remove the first object from the gap.
[0133] (2) In the adjustment method of the above aspect, the measurement step can include a step of measuring an operation time which is a time required for the scanning operation, and the parameter update step can be performed using an algorithm which receives the force measurement value and the operation time as inputs and outputs a candidate value of the force control parameter. With this aspect, in the parameter updating step, new candidate values for the force control parameters can be obtained by optimization processing that takes into account the force measurement values and the motion time. Therefore, by performing force control with the determined force control parameters, the robot system can appropriately insert the first object into the gap or extract the first object from the gap with a motion that is highly evaluated in terms of the external force received by the robot in the tracing motion and the motion time of the tracing motion.
[0134] (3) In the adjustment method of the above aspect, the algorithm may be configured to output a designation of whether the force control is enabled or disabled, the position of the end effector at the start of the tracing motion, and the position of the end effector at a time between the start and end of the tracing motion. By performing force control using force control parameters determined in this manner, it is possible to appropriately specify control over whether force control is enabled or disabled, the position of the end effector at the start of the tracing motion, and the position of the end effector at times between the start and end of the tracing motion, thereby allowing the robot system to appropriately insert or remove the first object into or from the gap.
[0135] (4) In the adjustment method of the above aspect, the force control parameters may include a target force in the insertion or extraction direction, a virtual viscosity coefficient, a virtual elasticity coefficient, and a virtual mass coefficient in the force control. In this manner, by performing force control using the determined force control parameters, appropriate force control can be performed, allowing the robot system to appropriately insert the first object into the gap or remove the first object from the gap.
[0136] (5) According to another aspect of the present disclosure, there is provided a method for controlling a robot system. The method for controlling a robot system includes a step of performing force control when performing a tracing operation using the robot system. The robot system includes a robot, a force detector provided on the robot and capable of measuring an external force, and an end effector provided on the robot and capable of holding a first object. The tracing operation is an operation in which at least a part of the first object held by the end effector is inserted into a gap provided in the second object while contacting a second object, or the part is extracted from the gap while contacting the second object. The force control is performed according to a target force including a component in a direction perpendicular to the direction of insertion or extraction and having a magnitude other than 0, based on a measurement value of the external force by the force detector. In this manner, the robot system can appropriately insert the first object into the gap or remove the first object from the gap by using force control to also apply force in a direction perpendicular to the insertion or removal direction.
[0137] (6) According to another aspect of the present disclosure, there is provided a robot system comprising: a robot, a force detector provided on the robot and capable of measuring an external force, an end effector provided on the robot and capable of holding a first object, a control unit that causes the robot to perform a tracing operation in which at least a portion of the first object held by the end effector is inserted into a gap of the second object while in contact with a second object, or the portion of the first object is extracted from the gap while in contact with the second object, and that performs force control of the robot based on a measurement value of the external force by the force detector during the tracing operation, and an adjustment unit that can adjust a force control parameter used in the force control. The adjustment unit can perform a measurement process in which the robot performs the tracing motion using candidate values of the force control parameter including a target force in a direction perpendicular to the insertion or removal direction, and a force measurement value that is a measurement value of the external force in the tracing motion is obtained, a parameter update process in which an optimization process is performed on the force control parameter using the force measurement value to obtain new candidate values for the force control parameter, and a parameter determination process in which the measurement process and the parameter update process are repeated to determine and output force control parameters to be used in the force control of the robot system. According to this embodiment, the value of the target force in the direction perpendicular to the insertion or removal direction is appropriately set, and as a result, by performing force control with the determined force control parameter, the robot can appropriately insert the first object into the gap or remove the first object from the gap.
[0138] (7) In the robot system of the above aspect, the measurement process may include a process of measuring an operation time, which is a time required for the tracing operation, and the parameter update process may be executed using an algorithm that receives the force measurement value and the operation time as input and outputs a candidate value for the force control parameter.
[0139] (8) In the robot system of the above aspect, the algorithm may be configured to output a designation of whether the force control is enabled or disabled, a position of the end effector at the start of the tracing motion, and a position of the end effector at a time between the start and end of the tracing motion.
[0140] (9) In the robot system of the above aspect, the force control parameters may include a target force in the insertion or extraction direction, a virtual viscosity coefficient, a virtual elasticity coefficient, and a virtual mass coefficient in the force control.
[0141] The present disclosure is not limited to the above-mentioned embodiments, examples, and modifications, and can be realized in various configurations without departing from the spirit of the present disclosure. 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 column can be appropriately replaced or combined in order to solve some or all of the above-mentioned problems or to achieve some or all of the above-mentioned effects. Furthermore, if a technical feature is not described as essential in this specification, it can be appropriately deleted. [Explanation of symbols]
[0142] 1...robot system, 30...camera, 50...work table, 100...robot, 110...arm, 120...arm flange, 130...force detector, 140...end effector, 200...robot control device, 210...processor, 220...memory, 222...program instructions, 224...control program, 226...force control parameters, 250...control execution unit, 381...differential gear case, 381H...hole, 383...left drive shaft, 386...right drive shaft, 387...right side gear, 500...NC machine tool, 501...NC operation panel, 502...actuator Working space, 503...opening and closing door, 504...headstock, 505...chuck, 600...setting device, 610...processor, 620...memory, 622...program instructions, 624...setting program, 650...program creation unit, 660...display device, 670...input device, 680...personal computer, 690...personal computer, 900...cloud service, CP...control point, CPb...control point, Fd...detection force, Ff1...force in the positive y-axis direction, Ff2...force in the positive y-axis direction, Ff3...force in the positive y-axis direction, Ff4...force in the positive y-axis direction, Fg...gravity, Fgb...gravity, Flg...flag , Fn1...normal force, Fn...normal force, Fn21...force, Ft...target force, Fxt...force component of target force in the x-axis direction, Fy...force in the y-axis positive direction, Fyt...force component of target force in the y-axis direction, Fz...force in the z-axis positive direction, Fzt...force component of target force in the z-axis direction, G...center of gravity, Gb...center of gravity, H2...fitting hole, J1...joint, J2...joint, J3...joint, J4...joint, J5...joint, J6...joint, OT...operation time, P9...position of control point CP in the state of Figure 9, P10...position of control point CP in the state of Figure 10, P11...position of control point CP in the state of Figure 11, P12...control point CP in the state of Figure 12 Position of the control point CP, Rth...range used as a reference for convergence judgment, Rxp...parameter representing the posture of the end effector at the intermediate point, Ryp...parameter representing the posture of the end effector at the intermediate point, Rzp...parameter representing the posture of the end effector at the intermediate point, Rxs...parameter representing the posture of the end effector at the start of the tracing motion, Rys...parameter representing the posture of the end effector at the start of the tracing motion, Rzs...parameter representing the posture of the end effector at the start of the tracing motion, SN...snapping mechanism,Sc...threshold plane, Sc2...threshold plane, TR1...tray, TR2...tray, Td...detected torque, Txt...torque component of target force around x-axis, Tyt...torque component of target force around y-axis, Tzt...torque component of target force around z-axis, WK1...work, WK1b...left side gear, WK1c...work, WK1d...work, WK2...work, WK2b...differential pinion gear, WK2c...differential pinion gear, WK2d...claw, d...virtual viscosity coefficient, k...virtual elasticity coefficient, m...virtual mass coefficient number, xp...parameter representing the position of the end effector at the intermediate point, yp...parameter representing the position of the end effector at the intermediate point, zp...parameter representing the position of the end effector at the intermediate point, xs...parameter representing the position of the end effector at the start of the tracing motion, ys...parameter representing the position of the end effector at the start of the tracing motion, zs...parameter representing the position of the end effector at the start of the tracing motion,
Claims
1. A method for adjusting a force control parameter used in force control of a robot system, comprising the steps of: The robot system includes a robot, a force detector provided on the robot and capable of measuring an external force, and an end effector provided on the robot and capable of holding a first object, the force control is performed based on a measurement value of the external force by the force detector when the robot is caused to perform a tracing operation; the tracing operation is an operation in which at least a portion of the first object held by the end effector is inserted into a gap provided in the second object while contacting the second object, or the portion is extracted from the gap while contacting the second object, The adjustment method includes: a measuring step of making the robot perform the tracing motion by using candidate values of the force control parameters including a target force in the insertion or removal direction and a target force in a direction perpendicular to the insertion or removal direction, and obtaining a force measurement value that is a measurement value of the external force during the tracing motion; a parameter updating step of performing an optimization process on the force control parameters using the force measurement values to obtain new candidate values for the force control parameters; a parameter determination step of determining and outputting force control parameters used in the force control of the robot system by repeating the measurement step and the parameter update step.
2. 2. A method for adjusting a force control parameter according to claim 1, comprising: the measuring step includes a step of measuring an operation time that is a time required for the scanning operation, An adjustment method, wherein the parameter updating step is performed using an algorithm that uses the force measurement value and the operation time as inputs and outputs a candidate value of the force control parameter.
3. 3. A method for adjusting a force control parameter according to claim 2, comprising the steps of: The algorithm comprises: Specifying whether the force control is enabled or disabled; a position of the end effector at the start of the tracing motion; and and a position of the end effector at a time between a start time and an end time of the tracing motion.
4. A method for adjusting a force control parameter according to any one of claims 1 to 3, comprising the steps of: The force control parameters include a virtual viscosity coefficient, a virtual elasticity coefficient, and a virtual mass coefficient in the force control.
5. 1. A robot system comprising: Robots and a force detector provided on the robot and capable of measuring an external force; an end effector provided on the robot and capable of holding a first object; a control unit that causes the robot to perform a tracing operation in which at least a portion of the first object held by the end effector is inserted into a gap of the second object while contacting the second object, or the portion is extracted from the gap while contacting the second object, and that performs force control of the robot based on a measurement value of the external force by the force detector during the tracing operation; an adjustment unit capable of adjusting a force control parameter used in the force control, The adjustment unit is a measurement process of making the robot perform the tracing motion by using candidate values of the force control parameters including a target force in the insertion or removal direction and a target force in a direction perpendicular to the insertion or removal direction, and obtaining a force measurement value that is a measurement value of the external force during the tracing motion; a parameter update process in which an optimization process is performed on the force control parameters using the force measurement values to obtain new candidate values for the force control parameters; and a parameter determination process for determining and outputting force control parameters used in the force control of the robot system by repeating the measurement process and the parameter update process.
6. The robot system according to claim 5, the measurement process includes a process of measuring an operation time that is a time required for the scanning operation, A robot system, wherein the parameter update process is executed using an algorithm that uses the force measurement value and the motion time as inputs and outputs candidate values of the force control parameters.
7. The robot system according to claim 6, The algorithm comprises: Specifying whether the force control is enabled or disabled; a position of the end effector at the start of the tracing motion; and and a position of the end effector at a time between a start time and an end time of the tracing motion.
8. The robot system according to any one of claims 5 to 7, The force control parameters include a virtual viscosity coefficient, a virtual elasticity coefficient, and a virtual mass coefficient in the force control.
Citation Information
Patent Citations
Reproduction device for robot teaching
JP2008134903A
Control device, robot, and robot system
JP2018199172A
Robot control device and robot system
JP2019188555A
Method for adjusting robot control parameters, robot system, and robot control device
WO2014037999A1
