Patent ID: 12251840

DESCRIPTION OF EXEMPLARY EMBODIMENTS

A. First Embodiment

A1. Configuration of Robot System:

FIG.1is a perspective view showing a robot system1according to the embodiment. The robot system1includes a robot100, a force detector130, an end effector140, and a robot control apparatus200. The robot100and the robot control apparatus200are connected to each other in a communicable manner via cabled or wireless communication.

The robot100is a single-arm robot with any of a variety of end effectors to be used attached to an arm flange120at the front end of an arm110.

The arm110includes six joints J1to J6. The joints J2, J3, and J5are bending joints, and the joints J1, J4, and J6are torsional joints. The joints are each provided with a servomotor150and a position sensor160. The servomotor150generates rotational output to drive the joint. The position sensor160detects the angular position of the output shaft of the servomotor150. For ease of understanding the technology, neither the servomotor150nor the position sensor160is shown inFIG.1.

Any of a variety of end effectors is attached to the arm flange120at the front end of the joint J6to grip, process, or otherwise manipulate a target object. In the present specification, the target object handled by the robot100is also called a “workpiece”.

The position in the vicinity of the front end of the arm110can be set as a tool center point. The tool center point is hereinafter called a “TCP”. The TCP is a position used as a point of reference for the position of the end effector140. For example, a predetermined position on the axis of rotation of the joint J6can be set as the TCP.

The robot100can position the end effector in any position and in any posture within the range over which the arm110is movable. The force detector130and the end effector140are disposed at the arm flange120. The end effector140is a gripper in the present embodiment.

The force detector130is provided as part of the robot100and can measure an external force exerted on the robot100. The force detector130is specifically a six-axis sensor. The force detector130can detect the magnitudes of forces parallel to axes x, y, and z, which are perpendicular to one another in a sensor coordinate system, which is a unique coordinate system, and the magnitudes of torques around the three axes.

The coordinate system that defines the space in which the robot100is installed is called a “robot coordinate system. The robot coordinate system is a three-dimensional orthogonal coordinate system defined by the axes x and y, which are perpendicular to each other in a horizontal plane, and the axis z, the vertically upward direction of which is assumed to be a positive direction. The coordinate system shown inFIG.1is the robot coordinate system. Rx represents the angle of rotation around the axis x, Ry represents the angle of rotation around the axis y, and Rz represents the angle of rotation around the axis z. Any position in the three-dimensional space can be expressed in the form of positions on the axes x, y, and z, and any posture in the three-dimensional space can be expressed in the form of angles of rotation around the axes x, y, and z. The term “position” used in the present specification may also mean both a position and a posture. The term “force” used in the present specification may also mean both a force and a torque.

A workpiece WK2, which is a target manipulated by the robot100, is placed on a worktable50. A fitting hole H2is formed via the upper surface of the workpiece WK2. The fitting hole H2has a circular cross section, extends in the negative direction of the axis z from the opening at the upper surface of the workpiece WK2, and is a bottomed hole.

The end effector140is provided as part of the robot100and can hold a workpiece WK1. The workpiece WK1is a cylindrical part. The outer diameter of the workpiece WK1is slightly smaller than the inner diameter of the fitting hole H2. The end effector140can perform the task of fitting the workpiece WK1gripped by the end effector140into the fitting hole H2of the workpiece WK2.

The robot control apparatus200controls the arm110and the end effector140. The robot control apparatus200can cause the robot100to perform a following action. The following action is generally an action that follows an external force. The following action in the present embodiment is more specifically an action of inserting a portion of the workpiece WK1held by the end effector140into the fitting hole H2formed in the workpiece WK2with the portion being in contact with the workpiece WK2. The following action may include a time segment for which the workpiece WK1separates from the workpiece WK2. In the following action performed by the robot100, the robot control apparatus200performs force control on the robot100based on the value of an external force measured by the force detector130.

Furthermore, the robot control apparatus200generates a control program in response to an instruction from an instructor. The robot control apparatus200further adjusts force control parameters used in the force control. The control program and force control parameters226generated by the robot control apparatus200are stored in a memory of the robot control apparatus200.

FIG.2is a block diagram showing the functions of the robot control apparatus200. The robot control apparatus200includes a processor210and a memory220. The memory220includes a volatile memory and a nonvolatile memory. The processor210achieves a variety of functions by executing a program stored in the memory220in advance.

The processor210includes a control executor250as a functional section. The control executor250causes the robot100to perform an action by executing a program instruction222stored in the memory220in accordance with a control program224stored in the memory220. The control executor250causes the robot100to perform an action through feedback control based on the output from the position sensor160, the force detector130, and other components.

The processor210includes a parameter adjuster270as a functional section. The processor210achieves the function as the parameter adjuster270by executing a setting program225stored in the memory220in advance. The parameter adjuster270determines parameters in the control program224. The parameter adjuster270adjusts, for example, the force control parameters used in the force control performed by the robot system1.

FIG.3shows the force control parameters226used in the control program224. The force control parameters226are parameters relating to the force control performed by the robot100. The force control parameters226are used in the force control performed in accordance with the control program224.

The force control parameters226include parameters representing a “start point” and an “end point” in each action (see upper portion ofFIG.3). In the present embodiment, the “start point” and the “end point” of a control point CP of the robot100under the control are defined in the robot coordinate system. Translational positions along the axes of the robot coordinate system and rotational positions around the axes thereof are defined. The start point and the end point may be defined in any of a variety of other coordinate systems.

In the force control, at least part of the start and end points is not defined in a single action in some cases. For example, when collision avoidance or following control is so performed that a force acting in a certain direction is reduced to zero in a certain action, the start and end points in the direction are not defined, but a state in which the position where the action is performed can arbitrarily change in such a way that the force in the direction becomes zero is defined in some cases.

The force control parameters226include “acceleration and deceleration characteristics” of the TCP in a plurality of actions (see middle portion ofFIG.3). The acceleration and deceleration characteristics specify the velocity of the TCP at each point of time as the TCP of the robot100moves from the start point to the end point of each action. In the present embodiment, the velocity specified by the acceleration and deceleration characteristics is the velocity of the TCP of the robot100under the control. In the present embodiment, the velocity of the TCP is defined in the robot coordinate system. That is, a translational velocity along each of the axes of the robot coordinate system and a rotational velocity or an angular velocity around each of the axes thereof are defined. The acceleration and deceleration characteristics may also be defined in any of a variety of other coordinate systems.

The force control parameters226include, as a parameter, information for identifying the coordinate system having an origin on which a target force in the force control acts and having one axis oriented in the direction of the target force, that is, a force control coordinate system (see middle portion ofFIG.3). The parameter can be defined in a variety of manners. For example, the parameter for identifying the force control coordinate system can be defined by data representing the relationship between the force control coordinate system and another coordinate system (such as robot coordinate system).

The force control parameters226include the “target force” (see lower portion ofFIG.3). The target force is a force instructed as a force that should act on an arbitrary point in variety of tasks, and is defined in the force control coordinate system. A target force vector representing the target force is defined as a base point of the target force vector and six-axis components starting from the base point, that is, translational forces along three axes and torques around the three axes, and is expressed in the force control coordinate system. Using the relationship between the force control coordinate system and another coordinate system allows the target force to be converted into a vector in any coordinate system, for example, the robot coordinate system.

The force control parameters226include an “impedance parameter” (see lower portion ofFIG.3). Impedance control is control in which virtual mechanical impedance is achieved by the driving force produced by the motor that drives each of the joints. In the impedance control, a virtual mass of the TCP is defined as a virtual mass coefficient m. Viscous resistance to which the TCP is virtually subjected is defined as a virtual viscosity coefficient d. The spring constant of the elastic force to which the TCP is subjected is defined as a virtual elastic modulus k. The impedance parameter is formed of the coefficients m, d, and k. The impedance parameter is defined for translation along each of the axes of the robot coordinate system and rotation around each of the axes thereof.

In the present embodiment, the target force and the impedance parameter can be set for each of a plurality of segments specified in accordance with the position of the control point in an action performed by the robot. As a result, the parameters are variable over time.

FIG.4is a block diagram showing the relationship of components of the control executor250of the robot control apparatus200with the servomotor150, the position sensor160, and the force detector130provided in the robot100. The control executor250performs feedback control on the position and velocity of the control point CP of the robot100and the current flowing through the control point CP.

The control executor250includes as components thereof a control signal generator251, a position controller252, a velocity controller253, a torque controller255, a servo amplifier256, and a force controller259. The control signal generator251, the position controller252, the velocity controller253, the torque controller255, and the force controller259are achieved by the processor210of the robot control apparatus200.

The control signal generator251generates a position control signal representing a target position St, at which the end effector140should be positioned, and outputs the position control signal to the position controller252. When the control signal generator251receives from a user a force control performing instruction, the control signal generator251generates a force control signal representing a target force fSt, that is, a force to be generated by the end effector140and the direction of the force, and a torque to be generated by the end effector140and the direction of the torque, and outputs the force control signal to the force controller259.

The force controller259receives the force control signal, which represents the target force fSt, that is, a force to be generated by the end effector140and the direction of the force, and a torque to be generated by the end effector140and the direction of the torque, from the control signal generator251. The force controller259receives, from the force detector130, forces along the axes x, y, and z and the torques around the axes x, y, and z acting on the end effector140. The forces along the axes x, y, and z and the torques around the axes x, y, and z acting on the end effector140are collectively denoted by fS inFIG.4. The force controller259receives the rotational positions of the servomotors150from the position sensors160of the robot100. The force controller259then determines the amount of positional correction ΔS based on the parameters described above and outputs a signal representing the amount of correction ΔS to the position controller252.

The position controller252receives the position control signal representing the target position St from the control signal generator251. The position controller252further receives the signal representing the amount of positional correction ΔS from the force controller259. The position controller252further receives as position feedback the rotational positions of the servomotors150from the position sensors160of the robot100. The position controller252calculates joint angles or joint displacements, which are appropriate solutions in inverse kinematics, based on the received information, generates a velocity control signal that controls the velocities of the servomotors150of the robot100, and outputs the velocity control signal to the velocity controller253.

The velocity control signal contains elements that are each a product of a coefficient Kp and a deviation of the rotational position of the servomotor150, which is provided from the position sensor160, from a target rotational position. The coefficient Kp is a servo gain in the position feedback. The servo gain Kp is stored in advance in the memory220of the robot control apparatus200. InFIG.2, the entire servo gains are collectively shown as servo gain227(see lower portion ofFIG.2).

In feedback control involving the force control, the servo gain in the position feedback is set at a value smaller than the servo gain in feedback control involving no force control. The same holds true for the servo gain in velocity feedback and the servo gain in current feedback. In the present embodiment, the following description will be made on the assumption that the feedback control involving the force control is performed.

When the position controller252has not received the force control performing instruction from the control signal generator251, the position controller252does not take the information received from the force controller259into consideration when generating the velocity control signal.

The velocity controller253receives the velocity control signal from the position controller252. The velocity controller253acquires as velocity feedback the rotational velocities of the servomotors150based on the information from the position sensors160of the robot100. Based on that velocity control signal and the rotational velocities of the servomotors150, the velocity controller253generates a torque control signal and outputs the torque control signal to the torque controller255.

The torque control signal contains elements that are each a product of a coefficient Kv and a deviation of the rotational velocity of the servomotor150from a target rotational velocity. The coefficient Kv is a servo gain in the velocity feedback. The servo gain Kv is stored in advance in the memory220of the robot control apparatus200(see lower portion ofFIG.2).

The torque controller255receives the torque control signal from the velocity controller253. The torque controller255further receives from the servo amplifier256a feedback signal representing the amounts of current supplied to the servomotors150. The torque controller255determines the amounts of current to be supplied to the servomotors150based on the torque control signal and current feedback signals from the servomotors150, and drives the servomotors150via the servo amplifier256. Specifically, the torque controller255generates a drive signal DS, which drives the robot100, based on the torque control signal and the current feedback signals from the servomotors150.

The drive signal DS contains elements that are each a product of a coefficient Ka and a deviation of the rotational acceleration of the servomotor150from a target rotational acceleration. The coefficient Ka is a servo gain in the feedback on the amount of current. The coefficient Ka is also a servo gain in acceleration feedback.

A2. Creation of Control Program and Adjustment of Parameters:

FIG.5is a flowchart showing the procedure of creation of the control program. In the present embodiment, the control program created by the processes shown inFIG.5is a program that achieves the following action of inserting the workpiece WK1held by the end effector140into the fitting hole H2provided in the workpiece WK2. The processes inFIG.5are carried out by the processor210of robot control apparatus200.

In step S110, the procedure of actions of the robot100that are achieved by the control program224is created. Specifically, the actions to be performed by the robot100and the order in accordance with which the actions are performed are determined in accordance with operator's instructions inputted via a display apparatus and an input apparatus provided in the robot control apparatus200.

In step S120, the action procedure determined in step S110is converted into the control program. The converted control program is written in a low-level language. The control program is stored in the memory220(see224inFIG.2).

In step S130, the robot control apparatus200controls the robot100in accordance with the control program224to cause the robot100to perform a task. The task can be performed as a checking task of checking the actions of the robot100in a production line. In the present embodiment, the action performed in step S130is assumed to be an action performed while the robot control apparatus200controls the magnitude of a reaction force received by the robot100when a target object held by the robot100comes into contact with another member. Examples of the action may include insertion and assembly actions.

In step S140, the force control parameters used in the force control performed by the robot system1are adjusted. The adjustment of the force control parameters will be described later in detail.

In step S150, the robot control apparatus200controls the robot100in accordance with the control program224along with the force control parameters adjusted in step S140to cause the robot100to perform a task. The task can be performed as a main task of manufacturing a product in the production line. In the present embodiment, the action performed in step S150is assumed to be an action performed while the robot control apparatus200controls the magnitude of a reaction force received by the robot100when the target object held by the robot100comes into contact with another member. Examples of the action may include insertion and assembly actions.

FIG.6is a flowchart showing a method for adjusting the force control parameters in step S140inFIG.5. The processes inFIG.6adjust the force control parameters used in the force control performed by the robot system1. In the following description, the components of a target force Ft will be described along the axes x, y, and z of the robot coordinate system to facilitate understanding of the technology.

In step S141, the processor210of the robot control apparatus200uses the following action procedure determined in step S110inFIG.5and initial candidate values of the force control parameters for the following action to cause the robot100to perform the following action. The initial candidate values of the force control parameters for the following action are not specified in accordance with a specific action, but are specified so as to be applicable to a variety of following actions. The initial candidate values of the force control parameters for the following action are stored in advance in the memory220of the robot control apparatus200. InFIG.2, the initial candidate values of the force control parameters for the following action and the force control parameters adjusted in step S140are collectively shown as the force control parameters226.

In the action in step S141, the control executor250of the processor210uses servo gains different from servo gains used by the control executor250when the robot system1is caused to perform an actual task in step S150inFIG.5to cause the robot100to perform the action. The servo gains used in step S150inFIG.5and the serve gains in step S141inFIG.6, which have values different from each other, are specifically the servo gain Kp for the position feedback and the servo gain Kv for the velocity feedback (see upper left portion ofFIG.4). As for the servo gain Ka for the current feedback, a common value is used in step S150inFIG.5and step S141inFIG.6.

To distinguish the two kinds of servo gains from each other, the servo gains used by the control executor250when the robot system1is caused to perform an actual task while performing the force control in step S150inFIG.5are called “first servo gains”. The servo gains used in the action of adjusting the force control parameters in step S141inFIG.6are called “second servo gains”.

Second servo gains Kps and Kvs are servo gains corresponding to the first servo gains Kp and Kv, respectively, used by the control executor250when the robot system1is caused to perform an actual task in step S150inFIG.5. It is, however, noted that the second servo gains Kps and Kvs have values greater than the values of the corresponding first servo gains Kp and Kv. That is, the second servo gain Kps has a value greater than the value of the first servo gain Kp. The second servo gain Kvs has a value greater than the value of the first servo gain Kv. As a result, in the action in step S141, the robot system1is more responsive and oscillation is more likely to occur than when the robot system1is caused to perform an actual task. The second servo gains Kps and Kvs are stored in advance in the memory220of the robot control apparatus200(see lower portion ofFIG.2).

In step S142inFIG.6, the processor210of the robot control apparatus200acquires the value of a measured external force in the following action in step S141. The value of the measured external force is called a “measured force value”. In step S142, the processor210of the robot control apparatus200further measures the period required for the following action in step S141. The period required for the following action is called an “action period”. The process in step S142is substantially carried out in parallel to the process in step S141. The processes in steps S141and S142are also collectively called a “measurement process”. Steps S141and S142are also collectively called a “measurement step”.FIG.2shows the functional section, of the processor210, that carries out the processes in steps S141and S142as a “measurement section272”.

The following action performed by the robot100in step S141inFIG.6is performed seven times. In step S142, the maximum of the values of the measured external force in the following action performed seven times is employed as the measured force value. The average of the periods required for the following action performed seven times is employed as the action period. After the measured force value as the maximum value and the action period as the average period are obtained, the processor210proceeds to the process in step S143.

In step S143, the processor210of the robot control apparatus200inputs the measured force value and the action period to an optimization algorithm. The optimization algorithm outputs new candidate values of the force control parameters by performing an optimization process on the force control parameters by using the measured force value and the action period (seeFIG.3). Processes carried out in accordance with the optimization algorithm will be described later.

In step S144inFIG.6, the processor210of the robot control apparatus200acquires new candidate values of the force control parameters outputted from the optimization algorithm. The processes in steps S143and S144are also collectively called a “parameter update process”. Steps S143and S144are also collectively called a “parameter update step”.FIG.2shows the functional section, of the processor210, that carries out the processes in steps S143and S144as a “parameter update section274”.

In step S145inFIG.6, the processor210of the robot control apparatus200uses the following action procedure determined in step S110and the new candidate values of force control parameters acquired in step S144to cause the robot100to perform the following action. Also in the action in step S145, the control executor250of the processor210uses the second servo gains Kps and Kvs to cause the robot100to perform the action. As for the servo gain Ka for the current feedback, a common value is used in step S150inFIG.5and step S146inFIG.6. The process in step S145is the same as the process in step S141except that the candidate values of the force control parameters are different between the two steps.

In step S146, the processor210of the robot control apparatus200acquires a measured force value in the following action in step S145. In step S146, the processor210of the robot control apparatus200further measures the action period for which the following action in step S145is performed. The process in step S146is substantially carried out in parallel to the process in step S145. The process in step S146is the same as the process in step S142. The processes in steps S145and S146are also collectively called a “measurement process”. Steps S145and S146are also collectively called a “measurement step”. The functional section, of the processor210, that carries out the processes in steps S145and S146is the measurement section272(seeFIG.2).

The following action performed by the robot100in step S145is also performed seven times. In step S146, the maximum of the values of the measured external force in the following action performed seven times is employed as the measured force value. The average of the periods required for the following action performed seven times is employed as the action period. After the measured force value as the maximum value and the action period as the average period are obtained, the processor210proceeds to the process in step S147.

In step S147, the processor210of the robot control apparatus200evaluates whether or not an assessed value of each of the candidate values of the force control parameters satisfies termination conditions. When the result of the evaluation shows that the assessed values satisfy the termination conditions, the processes inFIG.6are terminated. When the result of the evaluation shows that the assessed values do not satisfy the termination conditions, the processor210returns to the process in step S143.

In step S147, an assessed value Eval of each of the candidate values of the force control parameters is calculated by Expression (1) below. The second and third terms in Expression (1) are each what is called a penalty term.
Eval=α×OT+β×[if(Fmax>Flimit),then 100]+γ×[if(Tmax>Flimit),then 100]  (1)

OT: Action period for which following action is performed

Fmax: Magnitude of maximum detected force Fd detected during following action

in which the detected force Fd is a resultant force of the components along the axes x, y, and z

Flimit: Acceptable magnitude of maximum detected force Fd

Tmax: Magnitude of maximum detected torque Td detected during following actionin which the detected torque Td is a resultant torque of the components around the axes x, y, and z

Tlimit: Acceptable magnitude of maximum detected torque Td

α, β, γ: Weight coefficients

The termination conditions in step S147are that the following two conditions are satisfied:

(c1) The latest assessed value is smaller than both β×100 and γ×100.

(c2) The condition indicating that the magnitude of the absolute value of the difference in the average task period between the current and previous generations is smaller than or equal to a threshold Dth is satisfied for N consecutive generations (N is an integer greater than or equal to 2).

The situation in which the condition (c1) is satisfied means that the maximum value Fmax of the detected force Fd does not exceed the acceptable value Flimit and the maximum value Tmax of the detected torque Td does not exceed the acceptable value Tlimit. The condition described above is imposed when the maximum value Fmax of the detected force Fd is not required to be minimized and the maximum value Tmax of the detected torque Td is not required to be minimized.

The situation in which the condition (c2) is satisfied means that the assessed value is unlikely to be improved by repeating steps S143to S147any further.

The processor210of the robot control apparatus200determines the force control parameters to be used in the force control performed by the robot system1by repeating steps S143to S146. The processes in steps S143to S147are also collectively called a “parameter determination process”. Steps S143to S147are also collectively called a “parameter determination steps”.FIG.2shows the functional section, of the processor210, that carries out the processes in steps S143to S147as a “parameter determination section276”. The determined force control parameters are stored in the memory220of the robot control apparatus200(see226inFIG.2).

In the present embodiment, in the adjustment of the force control parameters in step S140inFIG.5, the robot100is caused to perform an action by using the second servo gains Kps and Kvs, which are more likely to cause oscillation than the first servo gains Kp and Kv in the actual task in step S150(see S141and S145inFIG.6). The force control parameters are then adjusted based on the provided measured force value (see S144inFIG.6). A situation in which oscillation is unlikely to occur in the actual task can therefore be ensured in advance by setting the second servo gains Kps and Kvs. That is, setting the second servo gain Kps, which is used in the force control parameter adjustment, at a value greater than the first servo gain Kp allows oscillation to be less likely to occur in the actual task using the adjusted force control parameters. Similarly, setting the second servo gain Kvs at a value greater than the first servo gain Kv allows oscillation to be less likely to occur in the actual task using the adjusted force control parameters. Therefore, even operators who have little experience and do not understand the relationship between the velocity of the action of the robot and how easily oscillation occurs in relation to the numerical values of force control parameters can appropriately set force control parameters that are unlikely to cause oscillation.

FIG.7is a block diagram showing the input and output to and from the optimization algorithm used in the parameter update process in steps S143and S144inFIG.6. The optimization algorithm used in the present embodiment is an algorithm using a measured force value and an action period as the input and candidate values of the force control parameters as the output. The optimization algorithm used in the present embodiment is specifically covariance matrix adaptation evolution strategy (CMA-ES).

The optimization algorithm receives input of the action period OT, the detected force Fd and the detected torque Td, the latter two of which form a measured force value (see left portion ofFIG.7). The optimization algorithm outputs candidate values of the force control parameters (see right portion ofFIG.7). The optimization algorithm performs the optimization process in such a way that the assessed value Eval specified by Expression (1) described above decreases.

The configuration described above along with the optimization process in consideration of the measured force value and the action period in the parameter update process in steps S143and S144inFIG.6can provide new candidate values of the force control parameters. Performing the force control using the force control parameters determined by the processes inFIG.6therefore allows the robot100to appropriately insert the workpiece WK1into the fitting hole H2in a motion highly assessed in terms of external forces received by the robot100in the following action and the action period OT for which the following action is performed.

The force control parameter candidate values outputted by the optimization algorithm include the target force Ft and the impedance parameter in the following action (see upper right portion ofFIG.7and lower portion of FIG.3). The target force Ft is expressed by a force component Fxt along the axis x, a force component Fyt along the axis y, a force component Fzt along the axis z, a torque component Txt around the axis x, a torque component Tyt around the axis y, a torque component Tzt around the axis z. The impedance parameter includes the virtual mass coefficient m, the virtual viscosity coefficient d, and the virtual elastic modulus k for each of the axes x, y, and z.

The optimization algorithm outputs a flag Flg, which specifies whether the force control is enabled or disabled, positions xs, ys, zs, Rxs, Rys, and Rzs of the end effector140at the start of the following action, and positions xp, yp, and zp, or Rxp, Ryp, and Rzp of the end effector140at a specified point of time between the start and end of the following action (see lower right portion ofFIG.7). The position of the end effector140in the present embodiment is the position of the TCP set in the vicinity of the front end of the end effector140.

Performing the force control using the force control parameters determined by the process described above allows appropriately specified control of whether the force control is enabled or disabled and the position of the end effector140at the start of the following action and at the point through which the end effector140performing the following action passes, whereby the robot100can appropriately insert the workpiece WK1into the fitting hole H2.

For example, the workpiece WK1can be appropriately inserted into the fitting hole H2without the force control in some cases when the hardware configuration of the robot100bends. The force control can be omitted in such a case by configuring the optimization process to include the flag Flg, which specifies whether the force control is enabled or disabled for each of the position-related three axes and the rotation-related three axes.

In addition to the parameters shown inFIG.7, the optimization algorithm can also output the acceleration and deceleration characteristics, which are one of the force control parameters, and the force control coordinate system (seeFIG.4).

A3. Example of Following Action:

An example of the following action will be described below. The task described below is a snapping task. The following action is achieved by the force control performed by the robot control apparatus200.

FIG.8is a descriptive diagram showing the state at the start of the following action in step S150. To facilitate understanding of the technology, the contents of the technology will be described in accordance with the robot coordinate system rather than the sensor coordinate system. The direction of the insertion in the following action is the negative direction of the axis z in the robot coordinate system (see H2inFIG.1). It is noted thatFIGS.8to10do not accurately show the shapes of the workpieces WK1and WK2, the end effector140, and the force detector130.

A snapping mechanism SN is provided at a portion of the inner surface of the fitting hole H2of the workpiece WK2, the portion facing the positive direction of the axis y. A claw-shaped protrusion of the snapping mechanism SN is pressed by a spring in the negative direction of the axis y and protrudes from the inner surface of the fitting hole H2by a dimension specified in advance. When pressed in the positive direction of the axis y, the claw-shaped protrusion of the snapping mechanism SN moves out of the fitting hole H2in the positive direction of the axis z. The claw-shaped protrusion of the snapping mechanism SN can retract in the positive direction of the axis y to the position where the claw-shaped protrusion does not protrude from the inner surface of the fitting hole H2.

The control point CP of the robot100is located at the center of the front end surface of the workpiece WK1held by the end effector140. A virtual threshold plane SC is defined in the vicinity of an end of the fitting hole H2, the end facing the insertion direction. The threshold plane SC is a plane parallel to the axes z and x. In the following action, when the control point CP reaches the threshold plane SC, it is determined that the following action is complete. The action period OT, for which the following action is performed, ranges from the point of time when the force control starts to the point of time when the control point CP reaches the threshold plane SC.

In the state shown inFIG.8, a gravitational force Fg acts on the workpiece WK1. In the state shown inFIG.8, the robot100performs the force control to maintain the position and posture of the workpiece WK1against the gravitational force Fg acting on the workpiece WK1. The position and the posture of the workpiece WK1at this point of time is a position and a posture that cause the area occupied by workpiece WK1to fall within the area occupied by the fitting hole H2of the workpiece WK2when projected in the axis-z direction, which is the insertion direction.

FIG.9is a descriptive diagram showing the state in the middle of the following action in step S150. In the state shown inFIG.9, a front end of the workpiece WK1, the front end facing the negative direction of the axis y, is in contact with the claw-shaped protrusion of the snapping mechanism SN. A surface of the workpiece WK1, the surface facing the positive direction of the axis y, is in contact with the inner surface of the fitting hole H2.

In this state, the workpiece WK1presses the claw-shaped protrusion of the snapping mechanism SN in the negative direction of the axis y and therefore receives a reaction force in the positive direction of the axis y from the claw-shaped protrusion of the snapping mechanism SN. The workpiece WK1presses the inner surface of the fitting hole H2in the negative direction of the axis z and therefore receives a vertical reaction force Fn2in the positive direction of the axis y from the inner surface of the fitting hole H2. Furthermore, the workpiece WK1being moved in the negative direction of the axis z by the robot100performing the following action receives a frictional force in the positive direction of the axis z from the surface where the workpiece WK1is in contact with the inner surface of the fitting hole H2. InFIG.9, the forces in the axis-z direction that the workpiece WK1receives from the workpiece WK2are collectively shown as a force Ff2.

FIG.10is a descriptive diagram showing the state immediately before the following action in step S150is completed. In the state shown inFIG.10, a front end of the workpiece WK1, the front end facing the negative direction of the axis y, has reached the threshold plane SC (see CP inFIG.10). When sensing that the TCP has reached the threshold plane SC, the robot control apparatus200terminates the following action.

InFIG.10, the forces in the axis-z direction that the workpiece WK1receives from the workpiece WK2including the claw-shaped protrusion of the snapping mechanism SN are collectively shown as a force Ff4at the top of the workpiece WK1. InFIG.10, the vertical reaction force which acts in the positive direction of the axis z and which the workpiece WK1receives from the inner surface of the fitting hole H2is shown as a force Fn4.

When the following action is completed, the gripper as the end effector140releases the workpiece WK1, and the robot100transitions to the next action.

FIG.11is a graph showing positional deviation of the control point CP in the axis-y direction during the following action. The horizontal axis represents time. The robot control apparatus200sets target positions on the axes in a time sequential manner in the following action. The graph inFIG.11shows the deviation of the position of the control point CP in the axis-y direction from the target position in the following action. In the following action shown inFIGS.8to10, the positional deviation of the control point CP in the axis-y direction changes as shown inFIG.11. The positional deviation is maximized immediately after the control point CP, which is located at the front end surface of the workpiece WK1, passes through the position of the apex of the claw-shaped protrusion of the snapping mechanism SN (seeFIG.9).

FIG.12is a graph showing the detected force Fd, which the end effector140receives in the following action. The horizontal axis represents time. The robot control apparatus200sets target forces along the axes in a time sequential manner in the following action. In the following action shown inFIGS.8to10, the detected force Fd, which is the resultant force actually received by the end effector140along the axes, changes as shown inFIG.12. The detected force Fd gradually increases after the start of the action. The reason for this is that the frictional force which acts in the positive direction of the axis z and which the workpiece WK1receives from the inner surface of the fitting hole H2with which the workpiece WK1is in contact increases as the insertion advances. The detected force Fd is maximized when the control point CP, which is located at the front end surface of the workpiece WK1, is located in a position immediately before the apex of the claw-shaped protrusion of the snapping mechanism SN (seeFIG.9).

FIG.13is a table showing transition of the task period and the measured force value in the processes inFIG.6. The task period and the measured force value are repeatedly acquired in the processes in steps S142and S146inFIG.6. The task period and the measured force value acquired in step S142are the task period and the measured force value in the action performed in accordance with the initial candidate values of the force control parameters. The task period and the measured force value acquired in step S146are the task period and the measured force value in the action performed in accordance with the candidate values of the force control parameters acquired in step S144carried out immediately before step146.

In the example inFIG.13, α=β=γ=1, Flimit=23.0, and Tlimit=1000 in Expression (1) described above. In (c2) out of the termination conditions in step S147inFIG.6, Dth=0.5 and N=4.

In the leftmost column of the table inFIG.13, the number of reiterations of steps S142and S146inFIG.6is labeled as “generation”. “Generation” means the generation of the candidate values of the force control parameters acquired in step S144.

The second column counted from the leftmost column of the table inFIG.13shows the number of groups. The “number of groups” is the number of actions performed in steps S141and S145inFIG.6. In steps S141and S145, the following action performed by the robot100is performed seven times, as described above. The number of groups is therefore seven in each generation.

The third to fifth columns counted from the leftmost column of the table inFIG.13show the average, maximum, and minimum of the task period required for the seven actions and acquired in steps S142and S146inFIG.6.

The sixth column counted from the leftmost column of the table inFIG.13shows the difference from the preceding-generation average of the task period required for the seven actions and acquired in steps S142and S146inFIG.6.FIG.13shows that up to the eighth generation, the value of the difference is negative and the average of the task period is improved.

The seventh column counted from the leftmost column of the table inFIG.13shows the maximum force observed in the seven actions and acquired in steps S142and S146inFIG.6. The eighth column counted from the leftmost column of the table inFIG.13shows the maximum torque observed in the seven actions and acquired in steps S142and S146.

The ninth column counted from the leftmost column of the table inFIG.13shows the assessed value Eval of the candidate values of any of the force control parameters in each generation (see Expression (1) shown above).

In step S147inFIG.6, the processor210of the robot control apparatus200evaluates whether or not the assessed value of each of the candidate values of the force control parameters satisfies termination conditions, as described above. In the example shown inFIG.13, the termination conditions are specifically that the following two conditions are satisfied:

(c1e) The latest assessed value is smaller than 100.

(c2e) The condition indicating that the magnitude of the absolute value of the difference in the average task period from the previous generation is smaller than or equal to 0.5 is satisfied for four consecutive generations.

In the example shown inFIG.13, the adjustment of force control parameters has been terminated because the termination conditions (c1) and (c2) described above are satisfied in the 14th generation (see lower right portion ofFIG.13).

In the present embodiment, in the adjustment of the force control parameters in step S140inFIG.5, the robot100is caused to perform an action by using the second servo gains Kps and Kvs, which are more likely to cause oscillation than the first servo gains Kp and Kv in the actual task in step S150. The force control parameters are then adjusted based on the obtained measured force value. The situation in which oscillation is unlikely to occur in the actual task can therefore be ensured in advance by setting the second servo gains Kps and Kvs. Even inexperienced operators can therefore appropriately set force control parameters that are unlikely to cause oscillation.

In the adjustment of the force control parameters using the optimization process, the assessed values improve at least to some extent as the number of groups and the number of generations increase (see S143to S147inFIG.6, as well asFIG.13). On the other hand, increases in the number of groups for the force control parameters and the number of generations repeated for the force control parameters result in overfitting of the force control parameters to the workpieces and actions used in the adjustment of the force control parameters. For example, the fewer the number of workpieces that can be used to adjust the force control parameters, the more likely the force control parameters are to overfit to the workpieces used in the adjustment. As a result, there is a risk that force control parameters that increase the velocity of the action of the robot and are unlikely to cause oscillation are not determined in an actual task.

In the present embodiment, the situation in which oscillation is unlikely to occur in an actual task can be ensured in advance by setting the second servo gains Kps and Kvs. Therefore, even when the termination conditions appropriate enough not to cause overfitting are set, the force control parameters that are unlikely to cause oscillation can be appropriately set (see S147inFIG.6).

The robot control apparatus200in the present embodiment is also called an “adjustment apparatus”. The control executor250is also called a “control section”.

B. Second Embodiment

In the first embodiment, in the actions in steps S141and S145inFIG.6, fixed values are used as the second servo gains Kps and Kvs (see upper left portion ofFIG.4). In a second embodiment, however, the plurality of measurement processes carried out in the parameter determination process are carried out by using the second servo gains used in the same feedback but having values different from each other. That is, in the parameter determination process in steps S143to S147, the plurality of measurement processes are carried out by using the second servo gain Kps used in the position feedback but having values different from each other (see S145inFIG.6). Similarly, in the parameter determination process, the plurality of measurement processes are carried out by using the second servo gain Kvs used in the velocity feedback but having values different from each other (see S145inFIG.6). The action in step S145inFIG.6will be described below. The action in step S141is performed in the same manner.

In step S145inFIG.6in the second embodiment, the processor210of the robot control apparatus200corrects the second servo gains Kps and Kvs by multiplying the second servo gains Kps and Kvs by positive coefficients Cps and Cvs, respectively, prior to each of the seven actions. The coefficients Cps and Cvs are each a random number having a probability density distribution that is a normal distribution the average of which is 1 and the standard deviation of which is 0.1. As a result, in step S145inFIG.6in the second embodiment, the seven actions are performed by using the servo gain Kps having different values. Furthermore, the seven actions are performed by using the servo gain Kvs having different values. The seven actions are all performed in accordance with the same control program224but slightly differ from each other.FIG.7shows the process of correcting the second servo gains Kps and Kvs prior to each of the seven actions as “determine servo gains” enclosed with the broken line.

In the adjustment of the force control parameters using the optimization process, the assessed values improve at least to some extent as the number of groups and the number of generations increase (see S143to S147inFIG.6, as well asFIG.13). On the other hand, increases in the number of groups for the force control parameters and the number of generations repeated for the force control parameters result in overfitting of the force control parameters to the workpieces and actions used in the adjustment of the force control parameters. For example, the fewer the number of workpieces that can be used to adjust the force control parameters, the more likely the force control parameters are to overfit to the workpieces. As a result, the robot100may not be able to perform an action preferably in an actual task due to workpieces WK1and WK2having dimensional errors or the positions of the workpieces WK1and WK2having the dimensional errors.

In the present embodiment, however, in which the processes described above are carried out, the processes inFIG.6allow setting of force control parameters that are unlikely to cause oscillation and cause the robot100to perform an action preferably even in an actual task environment involving variations in a variety of external factors, such as dimensional errors of the workpieces WK1and WK2and errors in the positions where the workpieces WK1and WK2are placed (see S150inFIG.5).

C. Other Embodiments

C1. Other Embodiment 1

(1) In the embodiments described above, the robot100is a vertically articulated 6-axis robot including the six joints J1to J6(seeFIG.1). The technology of the present disclosure may instead be applied to robots having other joint mechanisms, such as horizontally articulated robots and orthogonal-coordinate-type robots.

(2) In the embodiments described above, the force detector130is provided at the arm flange120located at the front end of the arm110(seeFIG.1). The force detector may instead be provided at other locations, such as a joint other than the most distal joint of the robot arm, or a base of the robot arm.

(3) In the embodiments described above, the force detector130can detect the magnitude of forces parallel to three detection axes, the axes x, y, and z, which are perpendicular to one another in the sensor coordinate system, which is a unique coordinate system, and the magnitude of torques around the three detection axes (seeFIG.1). The force detector may instead detect a force only along a force controlling direction, or only detect a torque around an axis extending in the direction. The force detector may still instead have an aspect in which the force detector does not directly detect a force or a torque but detects a torque at a joint of the robot based, for example, on a measured value of the current flowing in the servomotor. That is, the force detector only needs to be capable of detecting a force or a torque in the direction in which the control point is controlled.

(4) In the embodiments described above, the end effector140is a gripper capable of holding a target object (seeFIG.1). The end effector can instead be any other type of end effector used to perform force control, such as a drill that drills holes or a screwdriver that tightens screws.

(5) The control program224may be generated by the robot control apparatus200, or by a setting apparatus wired or wirelessly coupled to the robot control apparatus200. The setting apparatus can, for example, be a personal computer with the setting program225installed therein (see lower portion ofFIG.2). In such an aspect, the control program generated by the setting apparatus is transmitted to the robot control apparatus200and stored in the robot control apparatus200.

(6) In the embodiments described above, the force control parameters are adjusted by the robot control apparatus200, which causes the robot100to perform actions through feedback control (see250and270inFIG.2). The force control parameters may instead be adjusted by the setting apparatus wired or wirelessly coupled to the robot control apparatus200. The setting apparatus can, for example, be a personal computer with the setting program225installed therein (see lower portion ofFIG.2). In such an aspect, the force control parameters226adjusted by the setting apparatus are transmitted to the robot control apparatus200and stored in the robot control apparatus200.

(7) The control executor250and the parameter adjuster270are achieved by the processor210through execution of a program (seeFIG.2). Some or all of the functions of the control executor250and the parameter adjuster270may instead be achieved by a hardware circuit.

(8) In the embodiments described above, the force control parameters226contain the “start point” and the “end point” in each action, the “acceleration and deceleration characteristics” of the TCP in a plurality of actions, information that identifies the force control coordinate system, the “target force”, and the “impedance parameter” (seeFIG.3). The force control parameters are, however, not limited to those described above and may not contain, for example, the “acceleration and deceleration characteristics”.

(9) In the embodiments described above, the second servo gain Kps used to adjust the force control parameters is greater than the first servo gain Kp used in an actual task in which the force control is performed. The second servo gain Kvs used to adjust the force control parameters is greater than the first servo gain Kv used in an actual task in which the force control is performed.

In feedback control involving force control, oscillation is more likely to occur than in feedback control involving no force control due, for example, to the presence or absence of external forces caused by the presence or absence of contact between members. Therefore, in the feedback control involving force control, the servo gains are set at values smaller than those in the feedback control involving no force control. In other words, in the feedback control involving no force control, the servo gains are generally set as large as possible to the extent that no oscillation occurs in order to increase the positional accuracy of the control point and shorten the period required for an action. On the other hand, the servo gains in the feedback control involving force control are set, for example, at values that are 50% to 70% of the servo gains in the feedback control involving no force control.

The second servo gain Kps is preferably smaller than the position first servo gain used in an actual task in which positional control is performed without force control. The second servo gain Kvs is preferably smaller than the velocity first servo gain used in an actual task in which positional control is performed without force control.

(10) In the embodiments described above, the following action performed by the robot100in steps S141and S145inFIG.6is performed seven times. The number of actions performed by the robot to provide assessed values may instead be a smaller number, such as one, two, or three, or a larger number, such as eight or ten.

(11) In the embodiments described above, the coefficients Cps and Cvs used to generate feedback gains for respective actions are each a random number having a probability density distribution that is a normal distribution the average of which is 1 and the standard deviation of which is 0.1. The coefficients Cps and Cvs are coefficients by which original feedback gains are multiplied. The feedback gains for the respective actions may instead be generated in any other method, for example, by adding random numbers to the original feedback gains. The average and standard deviation of the random numbers can be appropriately specified in accordance with how the random numbers are used.

(12) In the embodiments described above, the optimization process using CMA-ES is carried out in step S144(seeFIGS.6and7). The optimization process may instead be carried out by any other method, such as particle swarm optimization (PSO) or Bayesian optimization.

(13) In the embodiments described above, the action period OT is employed as the assessed value used in the evaluation in step S147ofFIG.6(seeFIG.7). The assessed value used to evaluate the process termination conditions can instead be another assessed value, such as a value produced based on the measured force value.

(14) In the embodiments described above, when the maximum value Fmax of the detected force Fd exceeds the acceptable value Flimit, and when the maximum value Tmax of the detected torque Td exceeds the acceptable value Tlimit, a penalty is imposed in the determination of the assessed value (see Expression (1) shown above). That is, the constraint conditions are imposed on the maximum value of the detected force and the maximum value of the detected torque. The constraint conditions can instead be conditions on other parameters, for example, a condition that the magnitude of the integral value of measured values over a predetermined time segment before and after a peak measured value exceeds a threshold.

(15) In the embodiments described above, the termination conditions in step S147inFIG.6are that the conditions (c1) and (c2) are satisfied. The termination conditions may instead be other conditions, for example, a condition that “the condition (c1) described above is satisfied for N consecutive generations (N is an integer greater than or equal to 2)”.

(16) In step S147in the embodiments described above, it is evaluated as the evaluation of the process termination conditions whether or not the assessed value provided in step S145has converged (see condition (c2)). The process termination conditions can instead be only a condition that the assessed value is better than a threshold specified in advance.

C2. Other Embodiment 2

In the embodiments described above, in the feedback control of the action of the robot100, the control executor250performs feedback control on the position, velocity, and acceleration of the control point CP of the robot100(seeFIG.4). The values of the servo gain Kp in the position feedback and the servo gain Kv in the velocity feedback used in step S150inFIG.5differ from the values used in step S141inFIG.6.

The feedback control of the action of the robot100can instead have an aspect in which no feedback is performed on part of the position, velocity, and acceleration, for example, an aspect in which no feedback is performed on the acceleration. That is, in the feedback control of the action of the robot100, feedback only needs to be performed on one or more of the position, velocity, and acceleration. The second servo gains, which have values greater than the values of the first servo gains used when the robot system is caused to perform an actual task, may be feedback servo gains of one or more of the position, velocity, and acceleration.

C3. Other Embodiment 3

In the second embodiment, the plurality of measurement processes carried out in the parameter determination process are carried out by using the second servo gains used in the same feedback but having values different from each other. The plurality of measurement processes carried out in the parameter determination process may instead be carried out by using second servo gains having a fixed value, as in the first embodiment. Still instead, some of the feedback servo gains may have different values on a measurement process basis, and the other feedback servo gains may have a fixed value.

D. Still Another Embodiment

The present disclosure is not limited to the embodiments, examples, and variations described above and can be achieved in a variety of configurations to the extent that they do not depart from the substance of the present disclosure. For example, the technical features described in the embodiments, examples, and variations and corresponding to the technical features in the aspects described in the section of Summary can be replaced with other features or combined with each other as appropriate to solve part or entirety of the problems described above or achieve part or entirety of the effects described above. Furthermore, when any of the technical features has not been described as an essential feature in the present specification, the technical feature can be deleted as appropriate.

(1) According to an aspect of the present disclosure, there is provided a method for adjusting a force control parameter used in force control performed by a robot system. The robot system includes a robot, a force detector configured to measure an external force exerted on the robot, and a control section that causes the robot to perform an action through feedback control. The adjustment method includes a measurement step of producing a measured force value that is a measured value of the external force by causing the robot to perform an action using one or more second servo gains corresponding to one or more first servo gains used by the control section when the robot system is caused to perform an actual task, the second servo gains each having a value greater than the value of the corresponding first servo gain, and further using a candidate value of the force control parameter, a parameter update step of producing a new candidate value of the force control parameter by carrying out an optimization process on the force control parameter by using the measured force value, and a parameter determination step of determining the force control parameter used in the force control performed by the robot system by repeating the measurement step and the parameter update step.

In the present embodiment, in the adjustment of the force control parameter, the robot is caused to perform an action by using the second servo gains, which are more likely to cause oscillation than the first servo gains in the actual task, and the force control parameter is adjusted based on the measured force value produced in the action. The situation in which oscillation is unlikely to occur in the actual task can therefore be ensured in advance by setting the second servo gains. Even inexperienced operators can therefore appropriately set a force control parameter that is unlikely to cause oscillation.

(2) In the adjustment method according to the aspect described above, the control section may perform the feedback control on the position and velocity of a control point of the robot, and the second servo gain may include at least one of a servo gain in feedback of the position and a servo gain in feedback of the velocity.

The aspect described above allows even inexperienced operators to appropriately set a force control parameter that is unlikely to cause oscillation resulting from position and velocity command values in the feedback control of the robot.

(3) In the adjustment method according to the aspect described above, the plurality of measurement steps carried out in the parameter determination step may include the plurality of measurement steps carried out by using the second servo gains used in the same feedback but having values different from each other.

The aspect described above allows a force control parameter that is unlikely to cause oscillation to be set even in an actual task environment involving variations in a variety of external factors.

(4) According to another aspect of the present disclosure, there is provided an adjustment apparatus that adjusts a force control parameter used in force control performed by a robot system including a robot, a force detector configured to measure an external force exerted on the robot, and a control section that causes the robot to perform an action through feedback control. The adjustment apparatus includes a measurement section that carries out a measurement process of producing a measured force value that is a measured value of the external force by causing the robot to perform an action using one or more second servo gains corresponding to one or more first servo gains used by the control section when the robot system is caused to perform an actual task, the second servo gains each having a value greater than the value of the corresponding first servo gain, and further using a candidate value of the force control parameter, a parameter update section that carries out a parameter update process of producing a new candidate value of the force control parameter by carrying out an optimization process on the force control parameter by using the measured force value, and a parameter determination section that carries out a parameter determination process of determining the force control parameter used in the force control performed by the robot system by repeating the measurement process and the parameter update process.

(5) In the adjustment apparatus according to the aspect described above, the control section may perform the feedback control on the position and velocity of a control point of the robot, and the second servo gain includes at least one of a servo gain in feedback of the position and a servo gain in feedback of the velocity.

(6) In the adjustment apparatus according to the aspect described above, in the parameter determination process, the parameter determination section may carry out the plurality of measurement processes by using the second servo gains used in the same feedback but having values different from each other.

The present disclosure can also be achieved in a variety of aspects other than the force control parameter adjustment method and the force control parameter adjustment apparatus. For example, the present disclosure can be achieved in the form of a robot setting method and a robot controlling method, a computer program that achieves the methods, and a non-transitory recording medium and other media on which the computer program is recorded.