Robot system and method for controlling robot

A robot system includes a robot including leading end, base, and multi-articular arm, and circuitry that controls the atm to move the end based on motion control program specifying transition over time of target position and posture of the end, the transition including correction target portion starting and ending in the transition; controls the arm to move the end in response to guided manipulation applying external force to the robot while the circuitry controls the arm; obtains relative command information based on the target position and posture at start of the correction portion and specifying the target position and posture at points in the correction portion including start and end in the correction portion; and controls the arm to move the end from the position and posture based on the information, beginning at time when movement of the arm controlled by the circuitry in response to the manipulation has ended.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims priority under 35 U.S.C. § 119 to Japanese Patent Application No. 2018-067031, filed Mar. 30, 2018. The contents of this application are incorporated herein by reference in their entirety.

BACKGROUND

Field of the Invention

The embodiments disclosed herein relate to a robot system and a method for controlling a robot.

Discussion of the Background

JP 2006-82185A discloses a method for guiding a robot. The method includes: a first step in which the robot stops during a reproduction motion that is based on a work program registered in advance; a second step of permitting direct manipulation of the robot; a third step of directly manipulating the robot to make a guided motion; a fourth step of prohibiting the direct manipulation of the robot; and a fifth step in which the robot continues the reproduction motion based on the work program. If, at the third step, any teaching point is modified in position, the motion of the robot at the fifth step is a motion equivalent to linear interpolation between the modified teaching point and the next, unmodified teaching point.

SUMMARY

According to one aspect of the present disclosure, a robot system includes a robot including a leading end, a base, and a multi-articular arm that adjusts a position and a posture of the leading end relative to the base, and circuitry that controls the multi-articular arm to move the leading end based on a motion control program that specifies a transition over time of a target position and a target posture of the leading end relative to the base, the transition including a correction target portion that starts and ends in the transition; controls the multi-articular arm to move the leading end in response to a guided manipulation that applies an external force to the robot while the circuitry is controlling the multi-articular arm; obtains relative command information that is based on the target position and the target posture of the leading end at a start point of the correction target portion and that specifies the target position and the target posture of the leading end at points in the correction target portion including a start point and an end point in the correction target portion; and controls the multi-articular arm to move the leading end from the position and the posture of the leading end based on the relative command information, beginning at a point of time when movement of the multi-articular arm controlled by the circuitry in response to the guided manipulation has ended.

According to another aspect of the present disclosure, a method for controlling a robot including a leading end, a base, and a multi-articular arm to adjust a position and a posture of the leading end relative to the base includes performing, using circuitry, normal control that includes controlling the multi-articular arm to move the leading end based on a motion control program that specifies a transition over time of a target position and a target posture of the leading end relative to the base, the transition including a correction target portion that starts and ends in the transition, performing, using the circuitry, force guide control that includes controlling the multi-articular arm to move the leading end in response to a guided manipulation that applies an external force to the robot during the normal control, obtaining relative command information that is based on the target position and the target posture of the leading end at a start point of the correction target portion and that specifies the target position and the target posture of the leading end at points in the correction target portion including a start point and an end point of the correction target portion, and performing correction control that comprises controlling the multi-articular arm to move the leading end from the position and the posture of the leading end based on the relative command information beginning at a point of time when movement of the multi-articular arm under the force guide control has ended.

The present disclosure provides a robot system that is effective for saving labor of a human being in cooperative work performed by the human being and a robot.

DESCRIPTION OF THE EMBODIMENTS

Robot System

As illustrated inFIG. 1, a robot system1is a human cooperative system, in which a robot2and a worker cooperate with each other. The robot system1includes the robot2and a controller100.

The robot2is a six-axis vertical multi-articular robot, and includes a base3, a leading end4, a multi-articular arm10, a tool5, and an input switch6. The base3is disposed on the floor of a workspace of the robot2.

The multi-articular arm10connects the base3and the leading end4to each other. The multi-articular arm10includes a plurality of joints, and adjusts the position and the posture of the leading end4relative to the base3by changing the angles of the plurality of joints. The multi-articular arm10includes a turnable part11, a lower arm12, an upper arm13, a wrist16, actuators21,22,23,24,25, and26, and force sensors31,32,33,34,35, and36.

The turnable part11is located at an upper part of the base3turnably about vertical axis Ax1. Specifically, the multi-articular arm10includes a joint41. The joint41makes the turnable part11turnable about the vertical axis Ax1.

The lower arm12is connected to the lower arm12swingably about axis Ax2, which crosses (for example, is orthogonal to) the vertical axis Ax1. Specifically, the multi-articular arm10includes a joint42. The joint42makes the lower arm12swingable about the axis Ax2. It is to be noted that the terms “cross”, “crosses”, and “crossing” encompass a skew relationship such as “grade separation”. The same applies in the following description.

The upper arm13is connected to an end of the lower arm12swingably about axis Ax3, which crosses the vertical axis Ax1. Specifically, the multi-articular arm10includes a joint43. The joint43makes the upper arm13swingable the axis Ax3. The axis Ax3may be parallel to the axis Ax2.

The leading end,15, of the upper arm13is turnable about axis Ax4, which extends along the axial center of the upper arm13. In other words, the leading end15of the upper arm13is turnable relative to the base end,14, of the upper arm13. Specifically, the multi-articular arm10includes a joint44. The joint44makes the leading end15of the upper arm13turnable about the axis Ax4.

The wrist16is connected to the leading end15of the upper arm13swingably about axis Ax5, which crosses (for example, is orthogonal to) the axis Ax4. Specifically, the multi-articular arm10includes a joint45. The joint45makes the wrist16swingable about the axis Ax5.

The leading end4is connected to the leading end of the wrist16turnably about axis Ax6, which extends along the axial center of the wrist16. Specifically, the multi-articular arm10includes a joint46. The joint46makes the leading end4turnable about the axis Ax6.

The actuators21,22,23,24,25, and26include electric motors as power sources to drive the respective movable parts of the multi-articular arm10. Specifically, the actuator21makes the turnable part11turn about the vertical axis Ax1; the actuator22makes the lower arm12swing about the axis Ax2; the actuator23makes the upper arm13swing about the axis Ax3; the actuator24makes the leading end15of the upper arm13turn about the axis Ax4; the actuator25makes the wrist16swing about the axis Ax5; and the actuator26makes the leading end4turn about the axis Ax6. More specifically, the actuators21to26respectively drive the joints41to46. The force sensors31to36are strain gauge torque sensors and detect torque acting on the respective joints41to46.

The tool5is mounted on the leading end4and used in work performed by the robot2. The tool5varies in detailed configuration depending on the type of work performed by the robot2. Examples of the tool5include, but are not limited to: a hand to hold workpieces; a driver for screwing purposes; and a welding torch. InFIG. 1and other drawings, the tool5is a hand to hold workpieces.

The input switch6is a switch through which the worker who cooperates with the robot2inputs various signals into the robot2. Examples of the signals that can be input through the input switch6include, but are not limited to: a guide-on signal, described later; a stop command signal, described later; and a resumption command signal, described later.

It is to be noted that the above-described configuration of the robot2is presented for example purposes only, and that the robot2may have any other configuration insofar as the robot2is capable of adjusting the position and the posture of the leading end4relative to the base3. For example, the robot2may be a seven-axis robot equivalent to the above-described six-axis vertical multi-articular robot plus a redundant axis. For further example, the robot2may be a SCARA (Selective Compliance Assembly Robot Arm) robot.

The controller100performs: normal control that includes controlling the multi-articular arm10to move the leading end4based on a motion program that specifies a transition over time of a target position and a target posture of the leading end4relative to the base3; force guide control that includes controlling the multi-articular arm10to move the leading end4in response to a guide manipulation of applying an external force to the robot2during the normal control; obtaining relative command information that is based on the target position and the target posture of the leading end4at a start point of a correction target section and that specifies the target position and the target posture of the leading end4at points of the correction target section including the start point and an end point of the correction target section (the correction target section is a section that is included in the transition and that starts and ends in the transition); performing correction control that includes controlling the multi-articular arm10to, based on the relative command information, move the leading end4from the position and the posture of the leading end4as of the point of time when movement of the multi-articular arm10under the force guide control ended.

The controller100includes functional configurations (hereinafter referred to as “functional modules”), namely, a motion program storage111, a normal control part112, a force guide control part114, a relative information obtaining part115, a correction control part116, a recovery control part117, and an emergency control part113.

The motion program storage111stores the above-described motion program. The motion program includes a plurality of motion commands aligned in time order. The plurality of motion commands include a motion command for the multi-articular arm10and a motion command for the tool5. The motion command for the multi-articular arm10includes a movement command that specifies a target position and a target posture of the leading end4relative to the base3. It is to be noted that at least some movement commands may be described to specify a relative change of the position and the posture of the leading end4. When a command is described in this manner, this command will be referred to as “relative command”. When, in contrast, a command is described to specify a target position and a target posture of the leading end4relative to the base3, this command will be referred to as “absolute command”. It is difficult or impossible to specify a target position and a target posture of the leading end4relative to the base3by relying solely on a relative command. When, however, at least one absolute command is included in the motion program, a target position and a target posture of the leading end4relative to the base3can be specified using a relative command based on the target position and the target posture specified by the absolute command. When the tool5is a hand, the motion command for the tool5includes a workpiece holding command and a workpiece releasing command. The motion program may include section specifying information, which specifies the correction target section.

FIG. 2is a schematic illustrating an example motion of the robot2. As illustrated inFIG. 2, a part92is located in an area WA1, and parts93are located in an area WA2. The example motion illustrated inFIG. 2includes transferring a part93from the area WA2to the area WA1and inserting the transferred part93into a hole92aof the part92. Point P1indicates the position of the tool5at the time of holding the part93. Point P9indicates the position of the tool5at the start of insertion of the part93into the hole92a. Point P10indicates the position of the tool5at the time of completion of insertion of the part93into the hole92a. Points P2to P8indicate the positions that the tool5passes between the points P1to P9.

FIG. 3is a table illustrating an example motion program for causing the robot2to make the motion illustrated inFIG. 2. Command 001 is a command for moving the tool5to the point P1. This movement command includes the target position and the target posture of the leading end4at the time of positioning the tool5at the point P1. Command 002 is a command for causing the tool5to hold the part93. CommandS003 to 011 are commands for moving the tool5respectively to the points P2to P10. Each of the commandS003 to 011 includes the target position and the target posture of the leading end4at the time of positioning the tool5at the corresponding destination point. Command 012 is a command for causing the tool5to release the part93. Command 013 is a command for moving the tool5to the point P9after the tool5has released the part93. The command 013 includes the target position and the target posture of the leading end4at the time of positioning the tool5at the point P9. Command 014 and the commands that follow the command 14 are commands for returning the tool5to the area WA2. “Correction target flag” in the table ofFIG. 3corresponds to the above-described section specifying information. The correction target flag is set on an individual command basis, and indicates whether the movement section of the corresponding command is a correction target section. Specifically, “0” indicates that the movement section is not a correction target section, and “1” indicates that the movement section is a correction target section. Specific examples of the above description will be provided below by referring toFIGS. 2 and 3as necessary.

The normal control part112controls the multi-articular arm10to move the leading end4based on a motion program that specifies a transition over time of the target position and the target posture of the leading end4relative to the base3. This control will be hereinafter referred to as “normal control”. For example, in order to move the position and the posture of the leading end4relative to the base3to a target position and a target posture specified in the motion program, the normal control part112derives target motion angles of the joints41to46, and controls the multi-articular arm10to follow the motion angles of the joints41to46. The normal control part112may control the multi-articular arm10to temporarily stop the movement of the leading end4while the motion program is being executed.

Timing specifying information specifies a timing at which to temporarily stop the movement of the leading end4. When the motion program includes the timing specifying information, the normal control part112may control the multi-articular arm10to temporarily stop the movement of the leading end4at the timing specified in the timing specifying information. For example, the normal control part112obtains the above-described section specifying information as the timing specifying information, and controls the multi-articular arm10to temporarily stop the movement of the leading end4immediately before the start of the correction target section. More specifically, the normal control part112controls the multi-articular arm10to temporarily stop the movement of the leading end4immediately before the correction target flag in the table ofFIG. 3changes from 0 to 1 (between the commands 010 and 011).

The force guide control part114controls the multi-articular arm10to move the leading end4in response to a guide manipulation of applying an external force to the robot2while the normal control part112is controlling the multi-articular arm10. This control will be hereinafter referred to as “force guide control”. In the human-cooperative robot system1, an external force of guide manipulation is applied to the robot2by the worker contacting the robot2. As used herein, the term “external force” encompasses force and moment, and the terms “move”, “movement”, and “moving” refer to a change of at least one of position and posture.

For example, in order to move the leading end4in the direction in which the external force is being applied, the force guide control part114derives a target position and a target posture of the leading end4; derives target motion angles of the joints41to46to move the leading end4to the target position and target posture that have been derived; and controls the multi-articular min10to follow the motion angles of the joints41to46.

The force guide control part114may start the force guide control with the movement of the leading end4temporarily stopping while the motion program is being executed, and prohibit the force guide control until the movement of the leading end4comes to a temporary stop. In the force guide control, the force guide control part114may control the multi-articular arm10to restrict the movable range of the leading end4. For example, the force guide control part114may restrict the movable range of the position and/or the posture of the leading end4, or may restrict the movable ranges of the joints41to46. Also, the force guide control part114may restrict the time for which to move the leading end4in response to the guide manipulation, thereby restricting the movable range of the position and/or the posture of the leading end4.

In the force guide control, the force guide control part114may control the multi-articular arm10to restrict the degree of movement freedom of the leading end4. Examples of how to restrict the degree of movement freedom of the leading end4include, but are not limited to: to prevent the posture of the leading end4from changing about a predetermined axis; to prevent the leading end4from moving along a predetermined axis; and to prevent the posture of the leading end4from changing while permitting the position of the leading end4to change.

The force guide control part114may start the force guide control in response to a guide-on command signal from the worker, and prohibit the force guide control until the guide-on command signal is input. For example, the force guide control part114may obtain the guide-on command signal in the form of the state of the input switch6as of the period of time for which the movement of the leading end4is temporarily stopping. Then, the force guide control part114may start the force guide control at the time when the input switch6is turned on. It is to be noted that the guide-on command signal will not be limited to the state of the input switch6. For example, based on a detection result(s) obtained by the force sensors31to36, the force guide control part114may detect the worker's manipulation of applying a predetermined external force to the robot2(for example, tapping on the robot2). Upon detection of the manipulation, the force guide control part114may start the force guide control.

The force guide control part114may perform the force guide control based on information concerning a torque(s) acting on the plurality of joints41to46. Specifically, the force guide control part114may derive the above-described external force based on the torque(s) acting on the joints41to46. Then, based on the external force, the force guide control part114may control the multi-articular arm10to move the leading end4. The force guide control part114may check a detection result(s) obtained by the force sensors31to36as the information concerning the torque(s) acting on the joints41to46. In another possible embodiment, the force guide control part114may check a detection result(s) of deflection angles of the axes of the joints41to46as the information concerning the torque(s) acting on the joints41to46. The deflection angles are torsion angles calculated based on the rotational angles of the actuators21to26, the reduction ratio of the axis of each joint, and/or the rotational angles of the joints41to46. Although this necessitates two angle sensors per joint axis, it is not necessary to provide the force sensors31to36. In another possible embodiment, the force guide control part114may check a torque(s) output from the actuators21to26as the information concerning the torque(s) acting on the joints41to46. The torque output from the actuators21to26can be derived based on a current(s) supplied to the actuators21to26.

The relative information obtaining part115obtains relative command information from the motion program. The relative command information specifies the target position and the target posture of the leading end4at the start point through to the end point of the correction target section. For example, the relative information obtaining part115obtains the relative command information based on the section specifying information included in the motion program. Specifically, the relative information obtaining part115obtains the relative command information such that the target position and the target posture at the start point correspond to the target position and the target posture as of the time immediately before the correction target flag changes from 0 to 1 (for example, the target position and the target posture corresponding to the command 010 in the table ofFIG. 3).

When a motion command in a correction target section is an “absolute command”, the relative information obtaining part115obtains, as the relative command information, information obtained by subtracting the target position and the target posture at the start point from the target position and the target posture specified by the motion command. When a motion command in a correction target section is a “relative command”, the relative information obtaining part115obtains the motion command itself as the relative command information.

Based on the relative command information obtained by the relative information obtaining part115, the correction control part116controls the multi-articular arm10to move the leading end4from the position and the posture of the leading end4as of the point of time when the movement of the multi-articular arm10under the force guide control ended (this position and this posture may occasionally be referred to as “the position and the posture after the force guide control”). This control will be hereinafter referred to as “correction control”.

The correction control part116may start the correction control in response to a resumption command signal from the worker. In this case, the resumption command signal may be input from the worker by contacting the robot2, so that the correction control part116may start the correction control in response to the resumption command signal. Specifically, the correction control part116may obtain the resumption command signal in the form of the state of the input switch6as of the time after the force guide control, and may start the correction control at the time when the input switch6is turned on. It is to be noted that the resumption command signal will not be limited to the state of the input switch6. For example, based on a detection result(s) obtained by the force sensors31to36, the correction control part116may detect the worker's manipulation of applying a predetermined external force to the robot2(for example, tapping on the robot2). Upon detection of the manipulation, the correction control part116may start the correction control.

the recovery control part117controls the multi-articular arm10so that the position and the posture of the leading end4as of the point of time when the movement of the multi-articular arm10controlled by the correction control part116ended change to a position and a posture that are specified in the motion program. This control will be hereinafter referred to as “recovery control”.

A resistant force may occur against the motions that the robot2makes under the control of the normal control part112, the correction control part116, and the recovery control part117. In response to an increase of the resistant force, the emergency control part113controls the multi-articular arm10to stop a motion against the resistant force. For example, the resistant force can increase when the worker contacts the robot2. For further example, the resistant force can increase when an arm or another part of the body of the worker has become caught between the components of the robot2(for example, between the lower arm12and the upper arm13). An increase of the resistant force is detectable based on a detection result(s) obtained by the force sensors31to36. As used herein, the phrase “stop a motion against the resistant force” not only refers to stopping a motion of the robot2but also encompasses moving the robot2in the direction in which the resistant force is acting (direction in which the resistant force is alleviated). The motion to “stop a motion against the resistant force” will be hereinafter referred to as “withdrawal motion”.

FIG. 4is a block diagram illustrating a hardware configuration of the controller100. As illustrated inFIG. 4, the controller100includes a circuit120. The circuit120includes at least one processor121, a memory122, a storage123, a driver124, and an input/output port125. The storage123is a computer-readable non-volatile storage medium (for example, a hard disc or a flash memory). The storage123includes a storage area in which programs for implementing the functional modules of the controller100are stored; and a storage area assigned to the motion program storage111. The memory122is a temporary storage for programs loaded from the storage123and for results of operations performed by the processor121. The processor121cooperates with the memory122to execute the programs, thereby implementing the functional modules of the controller100. The driver124, at a command from the processor121, outputs drive power to the motors of the actuators21to26. The input/output port125, at a command from the processor121, inputs and outputs electric signals from and to the force sensors31to36.

It is to be noted that the circuit120may not necessarily implement the functions using programs. For example, the circuit120may implement at least some of the functions using dedicated logic circuits or an application specific integrated circuit (ASIC) in which the dedicated logic circuits are integrated.

It is to be noted that while in the above-described embodiment the single circuit121is used to perform the functions of the parts of the controller100, this configuration is not intended in a limiting sense; it is also possible to use a plurality of circuits to perform the respective functions of the parts of the controller100.

Procedure for Controlling

An example method for controlling the robot2will be described. The example method is performed by the controller100, and a procedure for control performed by the controller100will be described below. This procedure includes performing: normal control that includes controlling the multi-articular arm10to move the leading end4based on a motion program that specifies a transition over time of a target position and a target posture of the leading end4relative to the base3; force guide control that includes controlling the multi-articular arm10to move the leading end4in response to a guide manipulation of applying an external force to the robot2during the normal control; obtaining relative command information that is based on the target position and the target posture of the leading end4at a start point of a correction target section and that specifies the target position and the target posture of the leading end4at points of the correction target section including the start point and an end point of the correction target section (the correction target section is a section that is included in the transition and that starts and ends in the transition); performing correction control that includes controlling the multi-articular arm10to, based on the relative command information, move the leading end4from the position and the posture of the leading end4as of the point of time when movement of the multi-articular arm10under the force guide control ended.

As illustrated inFIG. 5, the controller100performs steps S01, S02, S03, and S04. At step S01, the normal control part112performs the normal control until the time immediately before the start of the correction target section. Specifically, the normal control part112controls the multi-articular arm10to temporarily stop the movement of the leading end4.FIG. 12Aillustrates an example in which the movement of the leading end4is temporarily stopping with the tool5positioned at the point P9. At step S02, the force guide control part114performs the force guide control.FIG. 12Billustrates an example in which the leading end4has moved from the point P9to the point P21in response to a guide manipulation of applying external force TF1to the robot2. At step S03, the relative information obtaining part115obtains the relative command information, and the correction control part116performs the correction control.

As illustrated inFIG. 12C, the relative information obtaining part115obtains information concerning a relative command IM1. The relative command IM1is for moving the tool5from the point P9to the point P10and then from the point P10to the point P9. When the command 011 is described in the absolute command form, the relative information obtaining part115obtains, as the information concerning the relative command IM1, information obtained by subtracting the target position and the target posture at the point P9from the target position and the target posture specified by the command 011. When the command 011 is described in the relative command form, the relative information obtaining part115obtains the command 011 itself as the information concerning the relative command IM1.

At step S04, the recovery control part117performs the recovery control. As illustrated inFIG. 12C, the recovery control part117controls the multi-articular arm10to change the position and the posture at the point P21respectively to the position and the posture at the point P8.

Next, the controller100performs step S05. At step S05, the normal control part112checks whether there is an end command for ending the control of the robot2. Upon determining at step S05that there is no end command, the controller100returns the processing to step S01to perform the normal control, the force guide control, and the correction control again. Upon determining at step S05that there is an end command, the controller100completes the processing.

Procedure for Normal Control

An example procedure for the normal control performed at step S01will be described. As illustrated inFIG. 6, the controller100first performs steps S11, S12, and S13. At step S11, the normal control part112obtains a motion command from the motion program. For example, the normal control part112obtains a motion command that is smallest in number among un-executed motion commands in the motion program. At step S12, the normal control part112performs an inverse kinematics operation to derive joint angle target values (target values of the motion angles of the joints41to46) for moving the leading end4to the target position and the target posture specified by the motion command. When the time over which the motion command is executed is divided into a plurality of control periods, the normal control part112performs, for example, linear interpolation to derive joint angle target values on an individual control period basis. At step S13, the normal control part112selects the joint angle target values for the first control period.

Next, the controller100performs steps S14and S15. At step S14, the normal control part112controls the multi-articular arm10to cause the actuators21to26to drive the joints41to46based on the respective joint angle target values that have been selected. At step S15, the emergency control part113checks whether the resistant force has increased.

Upon determining at step S15that the resistant force has increased, the controller100performs step S16. At step S16, the emergency control part113performs the withdrawal control. Details of the withdrawal control will be described later.

Next, the controller100performs step S17. Upon determining at step S16that the resistant force has not increased, the controller100performs step S17without performing step S16. At step S17, the normal control part112checks whether the movement of the leading end4based on the motion command is complete. For example, the normal control part112checks whether the motion command has been executed in all the control periods.

Upon determining at step S17that the motion command has not been executed in all the control periods, the controller100performs step S18. At step S18, the normal control part112selects the joint angle target values for the next control period. Then, the controller100returns the processing to step S14to control again the leading end4to move based on the motion command while checking whether the resistant force has increased.

Upon determining at step S17that the motion command has been executed in all the control periods, the controller100performs step S19. At step S19, the normal control part112checks whether the leading end4has reached a wait position for the guide manipulation. The wait position for the guide manipulation is the target position and the target posture of the leading end4specified by the motion command immediately before the start of the correction target section (for example, the target position and the target posture specified by the command 010 in the table ofFIG. 3).

Upon determining at step S19that the leading end4has not reached the wait position, the controller100returns the processing to step S11to repeat the normal control until the leading end4reaches the wait position. Upon determining at step S19that the leading end4has reached the wait position, the controller100completes the normal control. This causes the movement of the leading end4to temporarily stop. It is to be noted that the wait position may not necessarily be the target position and the target posture of the leading end4specified by the motion command immediately before the start of the correction target section. For example, the wait position may be the target position and the target posture of the leading end4specified by a motion command that is two or more levels previous to the correction target section. In this case, the wait position may be set at a position and a posture that include the target position and the target posture of the leading end4at the start point of the correction target section in the movable range of the leading end4. In the example illustrated inFIG. 14, the wait position is the target position and the target posture of the leading end4specified by the command 008 (position corresponding to the point P7), which is three levels previous to the correction target section. In this case, the target position and the target posture of the leading end4at the start point of the correction target section (position corresponding to the point P9) is included in the movable range MA1in relation to the wait position.

The normal control part112may also control the multi-articular arm10to temporarily stop the movement of the leading end4in response to a stop command signal from the worker. In this case, the normal control part112may obtain the state of the input switch6as the stop command signal, and control the multi-articular arm10to temporarily stop the movement of the leading end4at the time when the input switch6is turned on.

An example procedure for the withdrawal control performed at step S16will be described. As illustrated inFIG. 7, the controller100first performs steps S21, S22, and S23. At step S21, the emergency control part113derives joint angle target values for alleviating the resistant force. The posture of the robot2corresponding to the derived joint angle target values will be hereinafter referred to as “withdrawal posture”. For example, the emergency control part113derives joint angle target values of the joints41to46for alleviating the torques detected by the force sensors31to36. When the time over which the withdrawal control is performed is divided into a plurality of control periods, the emergency control part113performs, for example, linear interpolation to derive joint angle target values on an individual control period basis. At step S22, the emergency control part113selects the joint angle target values for the first control period. At step S23, the emergency control part113controls the multi-articular arm10to cause the actuators21to26to drive the joints41to46based on the respective joint angle target values that have been selected.

Next, the controller100performs step S24. At step S24, the emergency control part113checks whether the posture of the robot2is the withdrawal posture. Upon determining at step S24that the posture of the robot2is not the withdrawal posture, the controller100performs step S25. At step S25, the normal control part112selects the joint angle target values for the next control period. Then, the controller100returns the processing to step S23to repeatedly change the posture of the robot2until the posture of the robot2becomes the withdrawal posture.

FIG. 13Aillustrates an example in which an arm of the worker contacts the robot2during the movement of the tool5from the point P7to the point P8. In this case, by changing the joint angle target values of the joints41to46in a manner that alleviates the torques detected by the force sensors31to36, the withdrawal posture of the robot2is set at such a posture that is farther away from the arm of the worker (seeFIG. 13B).

Upon determining at step S24that the posture of the robot2is the withdrawal posture, the controller100performs step S26. At step S26, the emergency control part113waits for the resumption command to be input. For example, the emergency control part113obtains the state of the input switch6as the resumption command signal, and waits for the input switch6to be turned on.

Next, the controller100performs steps S31, S32, S33, S34, and S35, as illustrated inFIG. 8. At step S31, the emergency control part113sets a recovery target position. For example, the emergency control part113sets the recovery target position at the position and the posture of the leading end4as of the time immediately before the posture of the robot2starts changing to the withdrawal posture. At step S32, the emergency control part113performs an inverse kinematics operation to derive joint angle target values (target values of the motion angles of the joints41to46) for moving the leading end4to the recovery target position. When the time over which the recovery to the recovery target position is performed is divided into a plurality of control periods, the emergency control part113performs, for example, linear interpolation to derive joint angle target values on an individual control period basis. At step S33, the emergency control part113selects the joint angle target values for the first control period. At step S34, the emergency control part113controls the multi-articular arm10to cause the actuators21to26to drive the joints41to46based on the respective joint angle target values that have been selected. At step S35, the emergency control part113checks whether the resistant force has increased.

Upon determining at step S35that the resistant force has increased, the controller100returns the processing to step S21. Upon determining at step S35that the resistant force has not increased, the controller100performs step S36. At step S36, the emergency control part113checks whether the movement of the leading end4to the recovery target position is complete.

Upon determining at step S36that the movement of the leading end4is not complete, the controller100performs step S37. At step S37, the emergency control part113selects the joint angle target values for the next control period. Then, the controller100returns the processing to step S34to repeatedly move the leading end4until the leading end4moves to the recovery target position. Upon determining at step S36that the movement of the leading end4is complete, the controller100completes the withdrawal control.

Procedure for Force Guide Control

An example procedure for the force guide control performed at step S02will be described. As illustrated inFIG. 9, the controller100first performs step S41. At step S41, the force guide control part114waits for the guide-on command to be input. For example, the force guide control part114obtains the guide-on command signal in the form of the state of the input switch6as of the period of time for which the movement of the leading end4is temporarily stopping. The force guide control part114waits for the input switch6to be turned on.

Next, the controller100performs steps S42, S43, S44, and S45. At step S42, the force guide control part114obtains, as the guide manipulation, information concerning the external force that has been input. For example, the force guide control part114obtains a detection result(s) obtained by the force sensors31to36. At step S43, the force guide control part114derives the target position and the target posture of the leading end4that are based on the external force (this target position and this target posture will be hereinafter referred to as “guide target position”). For example, based on the detection result(s) obtained by the force sensors31to36, the force guide control part114derives a force and a moment acting on the leading end4. Then, based on the force and the moment, the force guide control part114derives a target position and a target posture of the leading end4. At step S44, the force guide control part114performs an inverse kinematics operation to derive joint angle target values (target values of the motion angles of the joints41to46) for moving the leading end4to the guide target position. At step S45, the force guide control part114controls the multi-articular arm10to cause the actuators21to26to drive the joints41to46based on the respective joint angle target values.

Next, the controller100performs step S46. At step S46, the correction control part116checks whether the resumption command signal has been input. Specifically, the correction control part116obtains the resumption command signal in the form of the state of the input switch6as of the time after the force guide control, and checks whether the input switch6is on. Upon determining at step S46that the resumption command signal has not been input, the controller100returns the processing to step S42to repeat the force guide control until the resumption command signal is input. Upon determining at step S46that the resumption command signal has been input, the controller100completes the force guide control.

Procedure for Correction Control

An example procedure for the correction control performed at step S03will be described. As illustrated inFIG. 10, the controller100first performs steps S51and S52. At step S51, the relative information obtaining part115obtains the relative command information. When the command 011 is described in the absolute command form, the relative information obtaining part115obtains, as the information concerning the relative command IM1, information obtained by subtracting the target position and the target posture at the point P9from the target position and the target posture specified by the command 011. When the command 011 is described in the relative command form, the relative information obtaining part115obtains the command 011 itself as the information concerning the relative command IM1. At step S52, the correction control part116derives, based on the current position and the current posture of the leading end4, a target position and a target posture that the leading end4would take when the relative command information were taken into consideration (this target position and this target posture will be hereinafter referred to as “correction target position”). When a motion command corresponding to the relative command information is the first motion command in the correction target section, the current position and the current posture of the leading end4respectively correspond to the position and the posture of the leading end4as of the point of time when the movement of the robot2under the force guide control ended.

Next, the controller100performs steps S53, S54, and S55. At step S53, the correction control part116performs an inverse kinematics operation to derive joint angle target values (target values of the motion angles of the joints41to46) for moving the leading end4to the correction target position. When the time over which the leading end4is moved to the correction target position is divided into a plurality of control periods, the correction control part116performs, for example, linear interpolation to derive joint angle target values on an individual control period basis. At step S54, the correction control part116selects the joint angle target values for the first control period. At step S55, the correction control part116controls the multi-articular arm10to cause the actuators21to26to drive the joints41to46based on the respective joint angle target values that have been selected.

Next, the controller100performs step S56. At step S56, the emergency control part113checks whether the resistant force has increased. Upon determining that the resistant force has increased, the controller100performs step S57. At step S57, the emergency control part113performs the withdrawal control, similarly to step S16.

Next, the controller100performs step S58. Upon determining at step S56that the resistant force has not increased, the controller100performs step S58without performing step S57. At step S58, the correction control part116checks whether the movement of the leading end4to the correction target position is complete. For example, the correction control part116checks whether the motion command has been executed in all the control periods to move the leading end4to the correction target position.

Upon determining at step S58that the motion command has not been executed in all the control periods, the controller100performs step S59. At step S59, the correction control part116selects the joint angle target values for the next control period. Then, the controller100returns the processing to step S55to repeatedly move the leading end4to the correction target position while checking whether the resistant force has increased.

Upon determining at step S58that the movement of the leading end4is complete, the controller100performs step S61. At step S61, the correction control part116checks whether the correction control is complete in all the motion commands in the correction target section. Upon determining at step S61that the correction control is not complete in all the motion commands, the controller100returns the processing to step S51to repeat the correction control until the correction control is complete in all the motion commands in the correction target section. Upon determining at step S61that the correction control is complete in all the motion commands, the controller100completes the correction control.

Procedure for Recovery Control

An example procedure for the recovery control performed at step S04will be described. As illustrated inFIG. 11, the controller100first performs steps S71, S72, S73, and S74. At step S71, the recovery control part117sets a target position and a target posture of the leading end4at which to resume the normal control (this target position and this target posture will be hereinafter referred to as “recovery target position”). For example, the recovery control part117sets the recovery target position at the target position and the target posture of the leading end4specified by the motion command immediately after the correction target section. At step S72, the recovery control part117performs an inverse kinematics operation to derive joint angle target values (target values of the motion angles of the joints41to46) for moving the leading end4to the recovery target position. When the time over which the leading end4is moved to the recovery target position is divided into a plurality of control periods, the recovery control part117performs, for example, linear interpolation to derive joint angle target values on an individual control period basis. At step S73, the recovery control part117selects the joint angle target values for the first control period. At step S74, the recovery control part117controls the multi-articular arm10to cause the actuators21to26to drive the joints41to46based on the respective joint angle target values that have been selected.

Next, the controller100performs step S75. At step S75, the emergency control part113checks whether the resistant force has increased. Upon determining at step S75that the resistant force has increased, the controller100performs step S76. At step S76, the emergency control part113performs the withdrawal control, similarly to step S16.

Next, the controller100performs step S77. Upon determining at step S75that the resistant force has not increased, the controller100performs step S77without performing step S76. At step S77, the recovery control part117checks whether the movement of the leading end4to the recovery target position is complete. For example, the recovery control part117checks whether the motion command has been executed in all the control periods to move the leading end4to the recovery target position.

Upon determining at step S77that the movement of the leading end4is not complete, the controller100performs step S78. At step S78, the recovery control part117selects the joint angle target values for the next control period. Then, the controller100returns the processing to step S74to repeatedly control the leading end4to move to the recovery target position while checking whether the resistant force has increased. Upon determining at step S77that the movement of the leading end4is complete, the controller100completes the recovery control.

Advantageous Effects of the Embodiment

As has been described hereinbefore, the robot system1includes the robot2, the normal control part112, the force guide control part114, the relative information obtaining part115, and the correction control part116. The robot2includes the leading end4, the base3, and the multi-articular arm10. The multi-articular arm10adjusts the position and the posture of the leading end4relative to the base3. The normal control part112controls the multi-articular arm10to move the leading end4based on a motion program that specifies a transition over time of a target position and a target posture of the leading end4relative to the base3. The force guide control part114controls the multi-articular arm10to move the leading end4in response to a guide manipulation of applying an external force to the robot2while the normal control part112is controlling the multi-articular arm10. The relative information obtaining part115obtains relative command information that is based on the target position and the target posture of the leading end4at a start point of a correction target section and that specifies the target position and the target posture of the leading end4at points of the correction target section including the start point and an end point of the correction target section (the correction target section is a section that is included in the transition and that starts and ends in the transition). The correction control part116controls the multi-articular arm10to, based on the relative command information, move the leading end4from the position and the posture of the leading end4as of the point of time when movement of the multi-articular arm10controlled by the force guide control part114ended.

For robots to repeat highly accurate work based on motion programs, it is necessary for robots to work in unchanging work environments. In actual situations, however, robots may occasionally work in varied work environments (hereinafter referred to as “actual environment”). For example, workpieces may be arranged at varied positions and/or postures. In light of the circumstances, the robot system1according to this embodiment includes the force guide control part114. The force guide control part114is capable of allowing the worker to perform a guide manipulation of applying an external force to the robot2while the robot2is working on a workpiece. In this manner, the force guide control part114makes the position and the posture of the leading end4adapted to the actual environment. Further, the robot system1includes the correction control part116. The correction control part116controls the robot2to perform the rest of the work based on the position and the posture of the leading end4adapted to the actual environment. Thus, the robot system1is effective for saving labor of human beings in cooperative work of human beings and robots.

The motion program may include section specifying information that specifies the correction target section. The relative information obtaining part115may obtain the relative command information based on the section specifying information. Thus, the target section to be controlled by the correction control part is specified in advance in the motion program. This eliminates or minimizes such a situation that relative command information concerning an irrelevant target section is obtained. This, in turn, prevents the robot2from performing erroneous work.

The robot system1may further include the recovery control part117. The recovery control part117controls the multi-articular arm10so that the position and the posture of the leading end4as of the point of time when the movement of the multi-articular arm10controlled by the correction control part116ended change to a position and a posture that are specified in the motion program. This prevents the discrepancy between the motion program and the position and the posture of the leading end4from increasing through repeated control of the correction control part116. This, in turn, eliminates or minimizes degradation of reliability of the work performed by the robot2.

The normal control part112may control the multi-articular arm10to temporarily stop the movement of the leading end4while the motion program is being executed. With the movement of the leading end4temporarily stopping, the force guide control part114may start controlling the multi-articular arm10to move the leading end4in response to the guide manipulation. Temporarily stopping the motion of the robot2facilitates the guide manipulation.

The motion program may include timing specifying information that specifies a timing to temporarily stop the leading end4. The normal control part112may control the multi-articular arm10to temporarily stop the movement of the leading end4at the timing specified in the timing specifying information. Thus, a timing at which to temporarily stop the leading end4is specified in advance in the motion program. This stabilizes the position to start the guide manipulation. This, in turn, more reliably saves the worker the load associated with the guide manipulation.

When the force guide control part114controls the multi-articular arm10to move the leading end4in response to the guide manipulation, the force guide control part114may restrict the movable range of the leading end4. The normal control part112may control the multi-articular arm10to temporarily stop the leading end4with the leading end4taking a position and a posture such that the target position and the target posture of the leading end4at the start point of the correction target section are included in the movable range. By restricting the movable range of the leading end4, an erroneous guide manipulation is eliminated or minimized. Also, restricting the movable range of the leading end4prevents the movable range from becoming excessively small in correcting the position and the posture on which the relative command information is based.

When the force guide control part114controls the multi-articular arm10to move the leading end4in response to the guide manipulation, the force guide control part114may control the multi-articular atm10to restrict the movable range of the leading end4. By restricting the movable range of the leading end4, an erroneous guide manipulation is eliminated or minimized.

When the force guide control part114controls the multi-articular arm10to move the leading end4in response to the guide manipulation, the force guide control part114may control the multi-articular arm10to restrict the degree of movement freedom of the leading end4. By restricting the degree of movement freedom of the leading end4, an erroneous guide manipulation is eliminated or minimized.

In response to a resumption command signal from the worker, the correction control part116may start controlling the multi-articular arm10to move the leading end4based on the relative command information. This eliminates or minimizes such a situation that the correction control part116controls the multi-articular arm10at a timing unexpected for the worker.

In response to a guide-on command signal from the worker, the force guide control part114may start controlling the multi-articular arm10to move the leading end4in response to the guide manipulation. This eliminates or minimizes such a situation that the force guide control part114controls the multi-articular arm10at a timing unexpected for the worker.

In response to a stop command signal from the worker, the normal control part112may control the multi-articular arm10to temporarily stop the leading end4while the motion program is being executed. Thus, the movement of the leading end4can be temporarily stopped at a position desirable for the worker. This provides the worker with improved comfort in performing the guide manipulation.

In response to a resumption command signal from the worker by contacting the robot (2), the correction control part116may start controlling the multi-articular arm10to move the leading end4based on the relative command information. This ensures that the work performed by the robot2is resumed quickly after the guide manipulation made by the worker.

The robot system1may further include the emergency control part113, in response to an increase of a resistant force against a motion of the robot2controlled by the normal control part112, the emergency control part113controls the multi-articular arm10to stop the motion, which is against the resistant force.

The robot2may include a plurality of joints41to46. Based on information concerning a torque acting on the plurality of joints41to46, the force guide control part114may control the multi-articular arm10to move the leading end4in response to the guide manipulation. This ensures that the information obtainable at the multi-articular arm10can be effectively used in the control performed by the force guide control part114, resulting in a simplified apparatus configuration.

Obviously, numerous modifications and variations of the present disclosure are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the present disclosure may be practiced otherwise than as specifically described herein.