Method of adjusting force control parameter, robot system, and force control parameter adjustment program

A first step of executing a first operation to bring a hand placed on a robot arm or a first object held by the hand into contact with a second object based on a first force control parameter, a second step of acquiring information of an external force applied to the robot arm by executing a second operation different from the first operation on a robot with the hand or the first object in contact with the second object, a third step of acquiring information of external rigidity based on the acquired external force information, and a fourth step of changing the force control parameter from the first force control parameter to a second force control parameter acquired based on the acquired external rigidity information and a position of a control point corresponding to the acquired external rigidity information are provided.

The present application is based on, and claims priority from JP Application Serial Number 2020-153567, filed Sep. 14, 2020, the disclosure of which is hereby incorporated by reference herein in its entirety.

BACKGROUND

1. Technical Field

The present disclosure relates to a method of adjusting force control parameters, a robot system, and force control parameters adjustment program.

2. Related Art

A robot having a robot arm and a force detection unit that detects a force applied to the robot arm and performing predetermined work by force control to drive the robot arm based on a detection result of the force detection unit is known. In the robot, for example, as disclosed in JP-A-2014-233814, for the force control, it is necessary to determine a mode in which the robot arm is driven and set force control parameters to a suitable value.

However, the suitable force control parameter changes depending on details of work, characteristics of the robot arm itself, surrounding environments, or the like. It is difficult to set the suitable force control parameter in consideration thereof.

SUMMARY

A method of adjusting force control parameters of a robot having a robot arm driven by force control and performing work to insert a first object into a second object according to an aspect of the present disclosure includes a first step of executing a first operation to bring a hand placed on the robot arm or the first object held by the hand into contact with the second object based on a first force control parameter, a second step of acquiring information of an external force applied to the robot arm by executing a second operation different from the first operation on the robot with the hand or the first object in contact with the second object, a third step of acquiring information of external rigidity based on the acquired external force information, and a fourth step of changing the force control parameter from the first force control parameter to a second force control parameter acquired based on the acquired external rigidity information and a position of a control point corresponding to the acquired external rigidity information.

A robot system according to an aspect of the present disclosure includes a robot having a robot arm driven by force control and performing work, a force detection unit detecting a force applied to the robot arm, and a control unit controlling actuation of the robot, wherein the control unit executes a first operation to bring a hand placed on the robot arm or a first object held by the hand into contact with a second object based on a first force control parameter, acquires information of an external force applied to the robot arm by executing a second operation different from the first operation on the robot with the hand or the first object in contact with the second object, acquires information of external rigidity based on the acquired external force information, and performs control to set a second force control parameter acquired based on the acquired external rigidity information and a position of a control point corresponding to the acquired external rigidity information as the force control parameter.

A non-transitory computer-readable storage medium storing a force control parameter adjustment program for adjusting force control parameters of a robot having a robot arm driven by force control and performing work to insert a first object into a second object according to an aspect of the present disclosure causes a computer to perform the steps of a first step of executing a first operation to bring a hand placed on the robot arm or the first object held by the hand into contact with the second object based on a first force control parameter, a second step of acquiring information of an external force applied to the robot arm by executing a second operation different from the first operation on the robot with the hand or the first object in contact with the second object, a third step of acquiring information of external rigidity based on the acquired external force information, and a fourth step of setting a second force control parameter acquired based on the acquired external rigidity information and a position of a control point corresponding to the acquired external rigidity information as the force control parameter.

DESCRIPTION OF EXEMPLARY EMBODIMENTS

Embodiment

FIG.1shows an overall configuration of a robot system.FIG.2is a block diagram of the robot system shown inFIG.1.FIG.3is a conceptual diagram for explanation of external rigidity.FIG.4is a plan view showing an example of an input window.FIG.5is a flowchart for explanation of a control operation executed by the robot system shown inFIG.1.FIGS.6and7are longitudinal sectional views for explanation of a first operation.FIGS.8to10are longitudinal sectional views for explanation of a second operation.FIG.11is a conceptual diagram for explanation of a method of acquiring force control parameters.

As below, a method of adjusting force control parameters, a robot system, and force control parameters adjustment program according to the present disclosure will be explained in detail based on preferred embodiments shown in the accompanying drawings. Hereinafter, for convenience of explanation, a +Z-axis direction, i.e., the upside inFIG.1is also referred to as “upper” and a −Z-axis direction, i.e., the downside is also referred to as “lower”. Further, regarding a robot arm, a base11side inFIG.1is also referred to as “proximal end” and the opposite side, i.e., an end effector side is also referred to as “distal end”. Furthermore, the Z-axis directions, i.e., the upward and downward directions inFIG.1are referred to as “vertical directions” and X-axis directions and Y-axis directions, i.e., the leftward and rightward directions are referred to as “horizontal directions”.

As shown inFIG.1, a robot system100includes a robot1, a control apparatus3that controls the robot1, and a teaching apparatus4, and executes a method of adjusting force control parameters according to the present disclosure.

The robot1shown inFIG.1is a single-arm six-axis vertical articulated robot in the embodiment, and has a base11and a robot arm10. Further, an end effector20may be attached to the distal end portion of the robot arm10. The end effector20may be a component element of the robot1or not a component element of the robot1.

Note that the robot1is not limited to the illustrated configuration, but may be e.g. a dual-arm articulated robot. Or, the robot1may be a horizontal articulated robot.

The base11is a supporter that supports the robot arm10from the downside so that the robot arm can be driven and fixed to e.g. a floor within a factory. In the robot1, the base11is electrically coupled to the control apparatus3via a relay cable18. Note that the coupling between the robot1and the control apparatus3is not limited to the wired coupling like the configuration shown inFIG.1, but may be e.g. wireless coupling or coupling via a network such as the Internet.

In the embodiment, the robot arm10has a first arm12, a second arm13, a third arm14, a fourth arm15, a fifth arm16, and a sixth arm17, and these arms are sequentially coupled from the base11side. Note that the number of the arms of the robot arm10is not limited to six, but may be e.g. one, two, three, four, five, seven, or more. The sizes including the entire lengths of the respective arms are not particularly limited, but can be appropriately set.

The base11and the first arm12are coupled via a joint171. Further, the first arm12is pivotable about a first pivot axis parallel to the vertical directions as a pivot center relative to the base11. The first pivot axis is aligned with a normal of the floor to which the base11is fixed.

The first arm12and the second arm13are coupled via a joint172. Further, the second arm13is pivotable about a second pivot axis parallel to the horizontal directions as a pivot center relative to the first arm12. The second pivot axis is parallel to an axis orthogonal to the first pivot axis.

The second arm13and the third arm14are coupled via a joint173. Further, the third arm14is pivotable about a third pivot axis parallel to the horizontal directions as a pivot center relative to the second arm13. The third pivot axis is parallel to the second pivot axis.

The third arm14and the fourth arm15are coupled via a joint174. Further, the fourth arm15is pivotable about a fourth pivot axis parallel to the center axis direction of the third arm14as a pivot center relative to the third arm14. The fourth pivot axis is orthogonal to the third pivot axis.

The fourth arm15and the fifth arm16are coupled via a joint175. Further, the fifth arm16is pivotable about a fifth pivot axis as a pivot center relative to the fourth arm15. The fifth pivot axis is orthogonal to the fourth pivot axis.

The fifth arm16and the sixth arm17are coupled via a joint176. Further, the sixth arm17is pivotable about a sixth pivot axis as a pivot center relative to the fifth arm16. The sixth pivot axis is orthogonal to the fifth pivot axis.

Furthermore, the sixth arm17is a robot distal end portion located at the most distal end side of the robot arm10. The sixth arm17may pivot together with the end effector20by driving of the robot arm10.

The robot1includes a motor M1, a motor M2, a motor M3, a motor M4, a motor M5, and a motor M6as drive units and an encoder E1, an encoder E2, an encoder E3, an encoder E4, an encoder E5, and an encoder E6. The motor M1is provided inside of the joint171and relatively rotates the base11and the first arm12. The motor M2is provided inside of the joint172and relatively rotates the first arm12and the second arm13. The motor M3is provided inside of the joint173and relatively rotates the second arm13and the third arm14. The motor M4is provided inside of the joint174and relatively rotates the third arm14and the fourth arm15. The motor M5is provided inside of the joint175and relatively rotates the fourth arm15and the fifth arm16. The motor M6is provided inside of the joint176and relatively rotates the fifth arm16and the sixth arm17.

Further, the encoder E1is provided inside of the joint171and detects the position of the motor M1. The encoder E2is provided inside of the joint172and detects the position of the motor M2. The encoder E3is provided inside of the joint173and detects the position of the motor M3. The encoder E4is provided inside of the joint174and detects the position of the motor M4. The encoder E5is provided inside of the joint175and detects the position of the motor M5. The encoder E6is provided inside of the joint176and detects the position of the motor M6.

The encoder E1to encoder E6are electrically coupled to the control apparatus3and position information, i.e., amounts of rotation of the motor M1to motor M6are transmitted to the control apparatus3as electrical signals. Then, the control apparatus3drives the motor M1to motor M6via motor drivers (not shown) based on the information. That is, to control the robot arm10is to control the motor M1to motor M6.

A control point CP is set at the distal end of the robot arm10. The control point CP is a point as a reference for control of the robot arm10. In the robot system100, the position of the control point CP is acquired in a robot coordinate system and the robot arm10is driven to move the control point CP to a desired position.

Further, in the robot1, a force detection unit19that detects a force is detachably placed in the robot arm10. The robot arm10may be driven with the force detection unit19placed therein. The force detection unit19is a six-axis force sensor in the embodiment. The force detection unit19detects magnitude of forces on three detection axes orthogonal to one another and magnitude of torque about the three detection axes. That is, the force detection unit19detects force components in the respective axial directions of the X-axis, the Y-axis, Z-axis orthogonal to one another, a force component in a Tx direction about the X-axis, a force component in a Ty direction about the Y-axis, and a force component in a Tz direction about the Z-axis. Note that, in the embodiment, the Z-axis directions are the vertical directions. The force components in the respective axial directions may be referred to as “translational force components” and the force components about the respective axes may be referred to as “torque components”. The force detection unit19is not limited to the six-axis force sensor, but may have another configuration.

In the embodiment, the force detection unit19is placed in the sixth arm17. Note that the placement position of the force detection unit19is not limited to the sixth arm17, i.e., the arm located at the most distal end side, but may be in the other arm, between the adjacent arms, or in a lower part of the base11, for example.

The end effector20may be detachably attached to the force detection unit19. The end effector20includes a hand gripping an object by moving a pair of claws closer to or away from each other. The present disclosure is not limited to that, but two or more claws may be provided. Or, a hand gripping an object by adsorption may be employed.

Further, in the robot coordinate system, a tool center point TCP is set in an arbitrary position at the distal end of the end effector20, preferably, at the distal end at which the respective claws are close to each other. As described above, in the robot system100, the position of the control point CP is acquired in the robot coordinate system and the robot arm10is driven to move the control point CP to a desired position. The type, particularly, the length of the end effector20is acquired, and thereby, an offset amount between the tool center point TCP and the control point CP may be acquired. Accordingly, the position of the tool center point TCP may be acquired in the robot coordinate system. Therefore, the tool center point TCP may be used as a reference for the control.

As shown inFIG.1, the robot1performs work to grip, insert, and fits a workpiece W1as a first object into a workpiece W2as a second object. Here, “fit” is used as not only “fit” in the narrow sense, but used in the broad sense including “fit in” and “engage”. Therefore, depending on the configurations of the workpiece W1and the workpiece W2, “fit” may be read to “fit in”, “engage”, or the like. Note that the work may be work to grip the workpiece W2and insert the workpiece W1into the workpiece W2.

The workpiece W1is a rod-shape member having a circular cross-sectional shape. Note that the workpiece W1may have a cross-sectional shape in a polygonal shape such as a triangular shape, a quadrangular shape, or a shape with more vertices, or a star shape. The workpiece W2has a block shape having an insertion hole200in which the workpiece W1is inserted.

Next, the control apparatus3and the teaching apparatus4will be explained.

The control apparatus3is placed apart from the robot1and includes a computer having a CPU (Central Processing Unit) as an example of a processor provided therein. The control apparatus3may be provided inside of the base11of the robot1.

The control apparatus3is communicably coupled to the robot1by the relay cable18. The control apparatus is coupled to the teaching apparatus4by a cable or communicably coupled in wireless connection. The teaching apparatus4may be a dedicated computer or a general-purpose computer in which programs for teaching the robot1are installed. For example, a teaching pendant or the like as a dedicated device for teaching the robot1may be used in place of the teaching apparatus4. Or, the control apparatus3and the teaching apparatus4may have separate housings or may be integrally formed.

In the teaching apparatus4, a program for generating an execution program having a target position and attitude Stand a target force fSt, which will be described later, as parameters in the control apparatus3and loading the execution program in the control apparatus3may be installed. The teaching apparatus4includes a display, a processor, a RAM, and a ROM, and these hardware resources generate the execution program in cooperation with a teaching program.

As shown inFIG.2, the control apparatus3is a computer in which a control program for control of the robot is installed. The control apparatus3includes a processor and a RAM and a ROM (not shown), and these hardware resources control the robot1in cooperation with the program.

Further, as shown inFIG.2, the control apparatus3has a target position setting section3A, a drive control section3B, and a memory section3C. The memory section3C includes e.g. a volatile memory such as a RAM (Random Access Memory), a nonvolatile memory such as a ROM (Read Only Memory), and a detachable external memory device. In the memory section3C, operation programs for actuation of the robot1including programs for execution of the method of adjusting the force control parameter according to the present disclosure are stored.

The target position setting section3A sets the target position and attitude Stand a motion route for execution of predetermined work on the workpiece W1. The target position setting section3A sets the target position and attitude Stand the motion route based on teaching information input from the teaching apparatus4or the like.

The drive control section3B controls driving of the robot arm10and has a position control unit30, a coordinate transformation unit31, a coordinate transformation unit32, a correction unit33, a force control unit34, and a command integration unit35.

The position control unit30generates a position command signal, i.e., a position command value for controlling the position of the tool center point TCP of the robot1according to a target position designated by a command created in advance.

Here, the control apparatus3can control motion of the robot1by force control or the like. “Force control” refers to control of the motion of the robot1to change the position of the end effector20, i.e., the position of the tool center point TCP and the attitudes of the first arm12to sixth arm17based on the detection result of the force detection unit19.

The force control includes e.g. force trigger control and impedance control. In the force trigger control, force detection is performed by the force detection unit19, and the robot arm10is moved and changed in attitude until a predetermined force is detected by the force detection unit19.

The impedance control includes profile control. First, in brief explanation, in the impedance control, the motion of the robot arm10is controlled so that the force applied to the distal end portion of the robot arm10may be maintained as equal to the predetermined force as possible, that is, a force in a predetermined direction detected by the force detection unit19may be maintained as equal to the target force fStas possible. Thereby, for example, when the impedance control is performed on the robot arm10, the robot arm10performs profiling motion for an external force applied by an object or an operator with respect to the predetermined direction. Note that the target force fStincludes zero. For example, as one of settings in a case of the profiling motion, the target value may be set to “0”. The target force fStmay be set to another numerical value than zero. The target force fStcan be appropriately set by the worker.

The memory section3C stores correspondence relationships between combinations of the rotation angles of the motor M1to motor M6and the positions of the tool center point TCP in the robot coordinate system. Further, the control apparatus3stores at least one of the target position and attitude Stand the target force fStfor each step of the work performed by the robot1according to the command in the memory section3C. The command having the target position and attitude Stand the target force fStas parameters is set for each step of the work performed by the robot1.

The drive control section3B controls the first arm12to sixth arm17so that the set target position and attitude Stand target force fStmay coincide at the tool center point TCP. The target force fStis a detection force and torque of the force detection unit19to be achieved by the motion of the first arm12to sixth arm17. Here, the character “S” expresses one direction of directions of the axes (X, Y, Z) defining the robot coordinate system. Further, “S” also expresses a position in an S direction. For example, when S=X, an X direction component of the target position set in the robot coordinate system is St=Xt, and an X direction component of the target force is fSt=fXt.

In the drive control section3B, when the rotation angles of the motor M1to motor M6are acquired, the coordinate transformation unit31shown inFIG.2transforms the rotation angles into the position and attitude S (X, Y, Z, Tx, Ty, Tz) of the tool center point TCP in the robot coordinate system based on the correspondence relationships. Then, the coordinate transformation unit32specifies an acting force fSactually acting on the force detection unit19in the robot coordinate system based on the position and attitude S of the tool center point TCP and the detection value of the force detection unit19.

The point of application of the acting force fSis defined as a force detection origin separate from the tool center point TCP. The force detection origin corresponds to a point at which the force detection unit19detects a force. Note that the control apparatus3stores a correspondence relationship defining directions of detection axes in a sensor coordinate system of the force detection unit19with respect to each position and attitude S of the tool center point TCP in the robot coordinate system. Therefore, the control apparatus3may specify the acting force fSin the robot coordinate system based on the position and attitude S of the tool center point TCP in the robot coordinate system and the correspondence relationship. Further, torque acting on the robot may be calculated from the acting force fSand a distance from a contact point to the force detection unit19and is specified as a torque component. Note that, when the end effector20performs work in contact with the workpiece W1, the contact point may be regarded as the tool center point TCP.

The correction unit33performs gravity compensation on the acting force fS. The gravity compensation refers to removal of components of a force and torque caused by the gravity force from the acting force fS. The gravity-compensated acting force fSmay be regarded as another force than the gravity force acting on the robot arm10or the end effector20.

Further, the correction unit33performs inertia compensation on the acting force fS. The inertia compensation refers to removal of components of a force and torque caused by the inertial force from the acting force fS. The inertia-compensated acting force fSmay be regarded as another force than the inertial force acting on the robot arm10or the end effector20.

The force control unit34performs impedance control. The impedance control is active impedance control that realizes virtual mechanical impedance using the motor M1to motor M6. The control apparatus3executes the impedance control in processes under contact conditions in which forces are applied to the end effector20from workpieces as objects including fitting work, screwing work, polishing work of the workpieces and for direct teaching. Even in another case than the above described processes, for example, the impedance control is performed when a human contacts the robot1, and thereby, safety may be increased.

In the impedance control, the target force fStis substituted into the equation of motion, which will be described later, and the rotation angles of the motor M1to motor M6are derived. The signals for controlling the motor M1to motor M6by the control apparatus3are PWM (Pulse Width Modulation)-modulated signals.

In a non-contact process in which no external force is applied to the end effector20, the control apparatus3controls the motor M1to motor M6at the rotation angles derived by linear calculation from the target position and attitudes St. A mode in which the motor M1to motor M6are controlled at the rotation angles derived by linear calculation from the target position and attitudes Stis referred to as “position control mode”.

The control apparatus3specifies a force-derived correction amount ΔS by substitution of the target force fStand the acting force fSinto the equation of motion of the impedance control. The force-derived correction amount ΔS refers to magnitude of the position and attitude S to which the tool center point TCP should move to resolve a force deviation ΔfS(t) from the target force fStwhen the tool center point TCP is subjected to mechanical impedance. The following Equation (1) is the equation of motion of the impedance control.
mΔ{umlaut over (S)}(t)+dΔ{dot over (S)}(t)+kΔS(t)=ΔfS(t)  (1)

The left side of Equation (1) is formed by the first term in which the second-order differential value of the position and attitude S of the tool center point TCP is multiplied by a virtual mass coefficient m (hereinafter, referred to as “mass coefficient m”), the second term in which the differential value of the position and attitude S of the tool center point TCP is multiplied by a virtual viscosity coefficient d (hereinafter, referred to as “viscosity coefficient d”), and the third term in which the position and attitude S of the tool center point TCP is multiplied by a virtual elastic coefficient k (hereinafter, referred to as “elastic coefficient k”). The right side of Equation (1) is formed by the force deviation ΔfS(t) obtained by subtraction of the real force f from the target force fSt. The differential in Equation (1) refers to time differential. In a process performed by the robot1, a constant value may be set as the target force fStor a time function may be set as the target force fSt.

The mass coefficient m refers to a mass that the tool center point TCP virtually has, the viscosity coefficient d refers to a viscous resistance to which the tool center point TCP is virtually subjected, and the elastic coefficient k refers to a spring constant of an elastic force to which the tool center point TCP is virtually subjected.

The larger the value of the mass coefficient m, the lower the acceleration of the motion, and the smaller the value of the mass coefficient m, the higher the acceleration of the motion. The larger the value of the viscosity coefficient d, the lower the velocity of the motion, and the smaller the value of the viscosity coefficient d, the higher the velocity of the motion. The larger the value of the elastic coefficient k, the higher the spring property, and the smaller the value of the elastic coefficient k, the lower the spring property.

In this specification, the respective mass coefficient m, viscosity coefficient d, and elastic coefficient k are referred to as “force control parameters”. These mass coefficient m, viscosity coefficient d, and elastic coefficient k may be set to different values with respect to each direction or set to common values regardless of the directions. Further, the mass coefficient m, the viscosity coefficient d, and the elastic coefficient k can be appropriately set by the worker before work. This will be described later in detail.

As described above, in the robot system100, the correction amount is obtained from the detection value of the force detection unit19, the preset force control parameters, and the preset target force. The correction amount refers to the above described force-derived correction amount ΔS and a difference between the position in which the external force is applied and the position to which the tool center point TCP should be moved.

Then, the command integration unit35adds the force-derived correction amount ΔS to the position command value P generated by the position control unit30. The addition is performed as necessary, and thereby, the command integration unit35obtains a new position command value P′ from the position command value P used for movement to the position in which the external force is applied.

Then, the coordinate transformation unit31transforms the new position command value P′ into the robot coordinates and an execution part351executes, and thereby, the tool center point TCP is moved to the position in consideration of the force-derived correction amount ΔS and the impact by the application of the external force may be relaxed and the more load applied to the object in contact with the robot1may be relaxed.

According to the above described drive control section3B, the robot arm10may be driven with the workpiece W1gripped to move the tool center point TCP toward the target position and attitude Stand to move the tool center point TCP until the target force fStbecomes a preset value. Specifically, the insertion work is performed until the workpiece W1is inserted into the insertion hole200of the workpiece W2and the preset target force fStis detected, and thereby, the insertion work may be completed. Further, in the insertion process, the above described force control is performed, and thereby, excessive loads applied to the workpiece W1and the workpiece W2may be prevented or suppressed.

Here, it is necessary for the worker to set the above described force control parameters, i.e., the above described mass coefficient m, viscosity coefficient d, and elastic coefficient k to appropriate values before work according to details of the work, types of the workpiece W1and the workpiece W2, or the like. These coefficients are set to the appropriate values, and thereby, the mode of the robot arm10during work may be set in a mode suitable for the work and accurate and prompt work may be performed.

However, the suitable force control parameter changes depending on not only details of work but also characteristics of the robot arm10itself, surrounding environments, or the like. It is difficult to set the suitable force control parameter in consideration thereof. Accordingly, in the present disclosure, the worker inputs conditions, which will be described later, tentatively drives the robot arm10, acquires information of rigidity of the robot arm10itself and external rigidity information as information of peripheral rigidity, and adjusts the force control parameter based on the acquired external rigidity information. Thereby, the force control parameter in consideration of the external rigidity may be set.

Note that the external rigidity refers to rigidity of the entire external part as seen from the tool center point TCP. That is, as shown inFIG.3, the external rigidity refers to entire rigidity in consideration of rigidity of the robot arm10, rigidity of the end effector20, rigidity of the workpiece W1, and rigidity of the workpiece W2. The rigidity of each element correlates with an external force applied to the robot arm10. In other words, the external rigidity is determined by a function of an amount of movement of the tool center point TCP and the external force applied to the robot arm10, i.e., an external force obtained from the detection value detected by the force detection unit19. Further, the external rigidity is a real number expressed in a unit of “N/mm” or “Nmm/deg”, and the unit is determined according to the type of a second operation, which will be described later.

As described above, the elements determining the external rigidity include information of elements belonging to the robot arm10, information of the end effector20as the hand, information of the workpiece W1as the first object, and information of the workpiece W2as the second object. Thereby, the external rigidity information may be accurately acquired. As a result, the force control parameter may be accurately set.

Note that the external rigidity includes rigidity of a workbench (not shown) on which the workpiece W2is mounted, rigidity of a placement surface on which the robot is placed, etc. in addition to the above described rigidity.

“Acquisition” in this specification refers to reception and storage of information in one of the control apparatus3, the teaching apparatus4, and a communicable external memory device.

As below, an example of the method of adjusting the force control parameter according to the present disclosure will be explained using the flowchart shown inFIG.5. The following respective steps S101to S112are shared by the control apparatus3and the teaching apparatus4in the embodiment, however, the present disclosure is not limited to that. One of the control apparatus3and the teaching apparatus4may execute the steps.

Step S101is a step at which the worker inputs using an input window40shown inFIG.4and the processor of the teaching apparatus4executes based on the input. First, the input window40is explained. The input window40is displayed on the display of the teaching apparatus4and the worker may perform various settings by operating the window. Note that the input window40may be displayed on another display than that of the teaching apparatus4.

The input window40has a first input portion41, a second input portion42, a third input portion43, a fourth input portion44, and a fifth input portion45. The first input portion41is for input of information, particularly, a type of the workpiece W1. The second input portion42is for selection of a direction in which the workpiece W1is gripped. Specifically, the second input portion42is for input of an insertion length of the workpiece W1into the workpiece W2. The third input portion43is for input of information, particularly, a material of the workpiece W2. The fourth input portion44is for input of a distance from an initial position at the start of work to a position in which the workpiece W1and the workpiece W2contact. The fifth input portion45is for input of whether or not an attitude of the workpiece W1is changed when the workpiece W1is inserted.

The first input portion41to fifth input portion may have e.g. configurations in which cursors are operated to select and input using a mouse, a keyboard, or the like or touch-panel configurations in which the worker touches desirable positions to select and input.

When the worker performs the above described settings by operating the first input portion41to fifth input portion45, various kinds of settings information is received at step S101.

Then, at step S102, a start position is determined. That is, without contact between the workpiece W1and the workpiece W2, a position where the robot arm10starts force control is determined. This step is determined based on the information set by the worker at step S101.

As shown inFIGS.6to11, an operation to insert the tool center point TCP in the Z-axis direction is explained as an example.

Then, at step S103, insertion is started, that is, the force control is started to move the workpiece W1closer to the workpiece W2(seeFIG.6). The force control parameter at this step is a first force control parameter as a preset initial value. The first force control parameter may be set by the worker at step S101or stored. Note that, to step S105and at step S108and step S109, the force control is executed with the first force control parameter.

At this step, the work to insert the workpiece W1into the workpiece W2is explained as the example and the robot arm10is driven until the workpiece W1contacts the workpiece W2, however, the present disclosure is not limited to that. Depending on the details of work, the end effector20may be driven to contact the workpiece W2.

Then, at step S104, when the contact between the workpiece W1and the workpiece W2is sensed based on a detection result of the force detection unit19, at step S105, the robot arm10is stopped in the middle of insertion (seeFIG.7).

These step S103and step S104are a first step of executing a first operation to bring the end effector20as the hand placed on the robot arm10or the workpiece W1as the first object held by the end effector20into contact with the workpiece W2as the second object based on the first force control parameter.

Then, at step S106, with the contact between the workpiece W1and the workpiece W2, a force applied to the robot arm10is detected while the second operation is executed. That is, the detection result of the force detection unit19is acquired while the following second operation is executed.

The second operation includes the operation as shown inFIGS.8to10.

As shown inFIG.8, the second operation includes an operation to drive the robot arm10to move the workpiece W1in directions crossing directions in which the workpiece W1is inserted into and pulled out of the workpiece W2, e.g. the X-axis directions within an XY-plane. Thereby, when imperfect alignment occurs during insertion of the workpiece W1, an external force applied to the robot arm10may be detected.

Further, as shown inFIG.9, the second operation includes an operation to drive the robot arm10to move the workpiece W1in directions crossing directions in which the workpiece W1is inserted into and pulled out of the workpiece W2, e.g. the Y-axis directions within an XY-plane. Thereby, when imperfect alignment occurs during insertion of the workpiece W1, an external force applied to the robot arm10may be detected. Note that, in the embodiment, a case where the robot arm10is driven in directions to move the tool center point TCP along the X-axis directions and the Y-axis directions is explained.

Furthermore, as shown inFIG.10, the second operation includes an operation to drive the robot arm10to rotate the workpiece W1about an axis along directions in which the workpiece W1is inserted into and pulled out of the workpiece W2, i.e., the Z-axis. Thereby, an external force applied to the robot arm10when the operation to rotate the workpiece W1during insertion of the workpiece W1may be detected.

At step S106, while the above described second operation is performed, the detection results of the force detection unit19are stored with respect to each of the above described operations. Thereby, an external force applied to the robot arm10may be acquired with respect to each different operation.

Note that, though not shown in the drawings, the robot arm10is driven in directions in which the tool center point TCP rotates about the X-axis and the Y-axis, and thereby, an external force is detected.

As described above, in the embodiment, the robot arm10is driven to move the tool center point TCP in five directions of a direction along the X-axis, a direction along the Y-axis, a direction of rotation about the X-axis, a direction of rotation about the Y-axis, and a direction of rotation about the Z-axis, and thereby, an external force is detected.

The above described operations are not limited to those in the above described order. Further, in the second operation, not all of the operations shown inFIGS.8to10are necessarily executed, but at least one of the operations may be executed. Or, the second operation may include an operation in a different direction from the above described directions. For example, an operation in a direction along the Z-axis may be added.

In the second operation, the robot arm10is driven by position control. Specifically, the robot arm10is driven to move the tool center point TCP to a predetermined distance or a predetermined angle set in advance.

As described above, the second operation is executed by driving of the robot arm10by position control. Thereby, an external force applied to the robot arm10may be accurately and reliably detected.

Further, the second operation is an operation to move the tool center point TCP as the control point in at least one direction of the insertion direction in which the workpiece W1as the first object is inserted into the workpiece W2as the second object, a direction crossing the insertion direction, and a direction of rotation about an axis along the insertion direction. Thereby, magnitude of an external force applied to the robot arm10when work is actually performed may be accurately detected. Therefore, as will be described later, external rigidity may be accurately known.

Further, at the second step, an amount of movement of the tool center point TCP as the control point is increased until the detected external force becomes a predetermined value. That is, an upper limit of the external force detected by the force detection unit19is set and the second operation of the robot arm10is performed until the external force becomes the upper limit. According to the configuration, magnitude of an external force applied to the robot arm10may be accurately detected while an excessive load on the workpiece W1and the workpiece W2is prevented.

Then, at step S107, information of external rigidity is acquired based on the information of the magnitude of the external force obtained at step S106. At this step, the external rigidity information is acquired using a standard curve or table showing a relationship between external force information and the external rigidity. This table is shown by a function of the amount of movement of the tool center point and the detection value of the force detection unit19. This standard curve or table is stored in one of the control apparatus3, the teaching apparatus4, and an external memory device and experimentally obtained in advance.

The standard curve or table is stored with respect to each direction of the external force and stored with respect to each direction of the second operation. That is, in the embodiment, the standard curve or table is stored with respect to each of the five directions of the direction along the X-axis, the direction along the Y-axis, the direction of rotation about the X-axis, the direction of rotation about the Y-axis, and the direction of rotation about the Z-axis.

Through step S107, the external rigidity information in the five directions may be acquired with respect to each type of the second operation. This step S107is a third step of acquiring external rigidity information based on the acquired external force information.

Then, at step S108, the force control parameter is acquired. Note that the force control parameter acquired at step S108is a second force control parameter. At this step, as shown inFIG.11, the external rigidity information in the five directions, information of the position and the attitude of the robot arm10when the force is detected, and a working direction are input to a database. Thereby, the force control parameter may be output and acquired with respect to each of the five directions. Therefore, the force control parameter may be acquired and set with respect to each operation direction. Note that the position of the robot arm10refers to the position of the tool center point TCP in the robot coordinate system and the attitude of the robot arm10refers to angle information of the respective joints. The database is stored in one of the control apparatus3, the teaching apparatus4, and an external memory device.

In the embodiment, the input information input to the database is the external rigidity information, the information of the position and the attitude of the robot arm10, and the working direction, however, the present disclosure is not limited to that. The force control parameter may be acquired only by input of the external rigidity information and the position of the robot arm10.

Or, the force control parameters in the rotational directions may be the same. That is, the force control parameter for the rotation about the X-axis directions, the force control parameter for the rotation about the Y-axis directions, and the force control parameter for the rotation about the Z-axis directions may be set to the same.

As described above, the force control parameters are the same with respect to each direction, and thereby, processing for setting the force control parameters may be simplified.

Or, all of the mass coefficient m, the viscosity coefficient d, and the elastic coefficient k may be set to the same numerical value. In this case, the processing for setting the force control parameters may be further simplified.

Or, the settings may be made by a combination of the above described patterns.

Then, at step S109, the workpiece W1is pulled out from the workpiece W2, and, at step S110, the tool center point TCP is returned to the start position. Then, at step S111, an insertion completion position is detected. That is, when the second operation is executed, a position where the tool center point TCP moves is detected and stored. Then, the detection value is used as a target position for the next second operation. Thereby, the second and subsequent second operations may be promptly and accurately performed.

Then, at step S112, whether or not the acquisition of the force control parameter is the second time is determined. When not the second time, i.e., the first time is determined, the process returns to step S103and the subsequent steps are repeated. Note that the second time is determined, the process moves to step S113.

At step S113, the force control parameter acquired at the first time and the force control parameter acquired at the second time are compared and whether or not a difference is within a predetermined range set in advance is determined. At this step, the force control parameters are compared between the first time and the second time with respect to each direction of the second operation and, when the differences between the respective force control parameters are within the predetermined range, at step S114, the force control parameter at the first time or the second time compared at step S113is set as the force control parameter when work is actually performed.

Note that, at step S113, when the difference is out of the predetermined range set in advance, that is, when the difference is larger, the process returns to step S103and the external rigidity is remeasured as the first measurement.

As described above, when the force control parameter is measured twice and the difference is within the predetermined range, the force control parameter is employed, and thereby, the force control parameter may be set more accurately.

This step S114is a fourth step of setting the second force control parameter acquired based on the acquired external rigidity information and the position of the tool center point TCP corresponding to the acquired external rigidity information as the force control parameter.

As described above, the method of adjusting the force control parameter according to the present disclosure is the method of adjusting the force control parameter of adjusting the force control parameter of the robot1having the robot arm10driven by force control and performing work to insert the workpiece W1as the first object into the workpiece W2of the second object. Further, the method of adjusting the force control parameter according to the present disclosure includes the first step of executing the first operation to bring the end effector20as the hand placed on the robot arm10or the workpiece W1held by the end effector20into contact with the workpiece W2based on the first force control parameter, the second step of acquiring the information of the external force applied to the robot arm10by executing the second operation different from the first operation with the end effector20or the workpiece W1in contact with the workpiece W2, the third step of acquiring the information of the external rigidity based on the acquired external force information, and the fourth step of changing the force control parameter from the first force control parameter to the second force control parameter acquired based on the acquired external rigidity information and the position of the tool center point TCP corresponding to the acquired external rigidity information. Thereby, the force control parameter may be easily and accurately set in consideration of the external rigidity.

The force control parameter adjustment program according to the present disclosure is the force control parameter adjustment program for adjusting the force control parameter of the robot1having the robot arm10driven by force control and performing work to insert the workpiece W1as the first object into the workpiece W2of the second object. Further, the force control parameter adjustment program according to the present disclosure is for executing the first step of executing the first operation to bring the end effector20as the hand placed on the robot arm10or the workpiece W1held by the end effector20into contact with the workpiece W2based on the first force control parameter, the second step of acquiring the information of the external force applied to the robot arm10by executing the second operation different from the first operation with the end effector20or the workpiece W1in contact with the workpiece W2, the third step of acquiring the information of the external rigidity based on the acquired external force information, and the fourth step of setting the second force control parameter acquired based on the acquired external rigidity information and the position of the tool center point TCP corresponding to the acquired external rigidity information as the force control parameter. Thereby, the force control parameter may be easily and accurately set in consideration of the external rigidity.

Note that the force control parameter adjustment program according to the present disclosure may be stored in a memory unit of the control apparatus3or the teaching apparatus4, stored in a recording medium e.g. a CD-ROM or the like, or stored in a memory device that can be connected via a network or the like.

The robot system100according to the present disclosure includes the robot1having the robot arm10driven by force control and performing work, the force detection unit19detecting the force applied to the robot arm10, and the control apparatus3or the teaching apparatus4as the control unit controlling actuation of the robot1. Further, the control apparatus3or the teaching apparatus4executes the first operation to bring the end effector20as the hand placed on the robot arm10or the workpiece W1held by the end effector20into contact with the workpiece W2based on the first force control parameter, acquires the information of the external force applied to the robot arm10by executing the second operation different from the first operation with the end effector20or the workpiece W1in contact with the workpiece W2, acquires the information of the external rigidity based on the acquired external force information, and performs control to set the second force control parameter acquired based on the acquired external rigidity information and the position of the tool center point TCP corresponding to the acquired external rigidity information as the force control parameter. Thereby, the force control parameter may be easily and accurately set in consideration of the external rigidity.

The force detection unit19is used when the robot arm10is driven by force control. That is, the force detection unit19serves as both a force detection unit that detects an external force while the second operation is performed and a force detection unit that detects an external force when force control is performed. Thereby, the apparatus configuration may be simplified and the control may be simplified.

Other Configuration Examples of Robot System

FIG.12is a block diagram for explanation of the robot system with a focus on hardware.

FIG.12shows an overall configuration of a robot system100A in which the robot1, a controller61, and a computer62are coupled. The control of the robot1may be executed by reading of a command in a memory using a processor in the controller61or executed by reading of a command in a memory using a processor in the computer62via the controller61.

Therefore, one or both of the controller61and the computer62may be regarded as “control apparatus”.

Modified Example 1

FIG.13is a block diagram showing modified example 1 of the robot system with a focus on hardware.

FIG.13shows an overall configuration of a robot system100B in which a computer63is directly coupled to the robot1. The control of the robot1is directly executed by reading of a command in a memory using a processor in the computer63.

Therefore, the computer63may be regarded as “control apparatus”.

Modified Example 2

FIG.14is a block diagram showing modified example 2 of the robot system with a focus on hardware.

FIG.14shows an overall configuration of a robot system100C in which the robot1containing the controller and a computer66are coupled and the computer66is coupled to a cloud64via a network65such as a LAN. The control of the robot1may be executed by reading of a command in a memory using a processor in the computer66, or executed by reading of a command in a memory via the computer66using a processor on the cloud64.

Therefore, one, two, or three of the controller61, the computer66, and the cloud64may be regarded as “control apparatus”.

As above, the method of adjusting the force control parameter, the robot system, and the force control parameter adjustment program according to the present disclosure are explained with respect to the illustrated embodiments, however, the present disclosure is not limited to the embodiments. The respective parts forming the robot system may be replaced by arbitrary configurations that may exert the same functions. Further, an arbitrary configuration may be added thereto.