Control apparatus and control method for robot arm, assembly robot, control program for robot arm, and control-purpose integrated electronic circuit for robot arm

Provided is a control apparatus for a robot arm performing assembly. The control apparatus includes an operation database recording information as to an operation of the robot arm, and includes a correction operation type determining unit determining a correction type for the operation. The control apparatus also includes a force detecting unit detecting a force of a person, and an operation correction unit correcting an operation in accordance with the force of the person and the correction type, while the robot arm is performing a task.

BACKGROUND OF THE INVENTION

The present invention relates to a control apparatus and a control method for a robot arm for generating and teaching an assembly method to a robot that performs assembly in a factory, for example, an assembly robot having a control apparatus for a robot arm, a program for a robot arm, and a control-purpose integrated electronic circuit for a robot arm.

In recent years, cellular manufacturing is becoming actively employed in factories. According to cellular manufacturing, a wide variety of tasks, such as a screw tightening task or a fitting task and an attaching task of components, an inserting task and a polishing task of a flexible circuit board or the like, are mostly carried out manually.

Further, as to electric products such as mobile phones, the number of models thereof is increasing, and additionally, model change frequently occurs for each of such models. Accordingly, a specification change or a change in the task procedure of handled components frequently occurs.

In order for the tasks to be automated by robots, the tasks must address a wide variety of components or task procedures with flexibility.

To this end, a change in components or in task procedures must be taught easily and quickly.

An exemplary teaching method for a robot apparatus is performed as follows. A force sensor is attached to the wrist of a robot, and a teaching person directly grips a handle attached to the tip of the force sensor so as to guide the robot to teaching points. Thus, the positions of the robot are taught (see Patent Document 1).

What is also performed is as follows. When a robot is taught by being directly gripped, the robot comprehends the intention of the task teaching person and manipulation feel in force control is automatically changed during the teaching work (see Patent Document 2).

PRIOR ART DOCUMENTS

Patent Document

SUMMARY OF THE INVENTION

Issues to be Resolved by the Invention

However, in Patent Document 1, because the teaching person must teach all the teaching points, the teaching takes time and is very laborious. Further, in the field of industrial use, when a part of taught motion is to be modified, this must be done through programming through use of a remote apparatus called a teaching pendant, or the entire operation must be taught again from the beginning. Thus, it is inefficient.

Further, in Patent Document 2, in the course of direct teaching by the person, the intention of the task teaching person is comprehended, and the manipulation feel during the task is automatically changed. However, this fails to achieve comprehension of any manipulation intention other than the manipulation feel. That is, which parameter out of a plurality of types of teaching parameters such as position, force, speed, and the like the task teaching person is intended to manipulate is not comprehended. Therefore, the task teaching person must explicitly set which parameter the person is to teach. Still further, the taught motion cannot be modified partially, and hence, the task efficiency is poor.

The present invention has been made in consideration of the foregoing issues, and an object thereof is to provide a control apparatus and a control method for a robot arm, an assembly robot, a control program for a robot arm, and a control-purpose integrated electronic circuit for a robot arm, with which a worker teach a robot easily and quickly.

Means for Resolving the Issues

In order to achieve the foregoing object, the present invention is structured as follows.

According to a first aspect of the present invention, there is provided a control apparatus for a robot arm, the control apparatus controlling an operation of the robot arm for an assembly task-performing robot to perform an assembly task of assembling an assembly-target object gripped by the robot arm with respect to a targeted object, comprising:

a force detecting unit that detects a person's force acting on the robot arm;

an information acquiring unit that acquires information as to the operation that includes a position of the robot arm in the assembly task, and the person's force detected by the force detecting unit;

a target object force detecting unit that detects a force applied to the assembly-target object by the robot arm;

a correction operation type determining unit that determines a correction operation type for correcting the operation, based on the information as to the operation including the position of the robot arm in the assembly task and information as to the person's force each acquired by the information acquiring unit, and the force applied to the target object detected by the target object force detecting unit; and

an operation correction unit that corrects the operation by controlling the robot arm, in accordance with the person's force detected by the force detecting unit and acquired by the information acquiring unit, and the correction operation type determined by the correction operation type determining unit, during the assembly task of the robot arm previously determined.

According to an 11th aspect of the present invention, there is provided a control method for a robot arm, the control method controlling an operation of the robot arm for an assembly task-performing robot to perform an assembly task of assembling an assembly-target object gripped by the robot arm with respect to a targeted object, comprising:

detecting by a force detecting unit a person's force acting on the robot arm;

detecting by a target object force detecting unit a force applied to the assembly-target object by the robot arm;

determining by a correction operation type determining unit a correction operation type for correcting the operation, using information as to the operation that includes the position of the robot arm in the assembly task, information as to the person's force acting on the robot arm detected by the force detecting unit and acquired by an information acquiring unit, and the force applied to the target object detected by the target object force detecting unit; and

correcting the operation by an operation correction unit by controlling the robot arm, in accordance with the person's force detected by the force detecting unit and acquired by the information acquiring unit, and the correction operation type determined by the correction operation type determining unit, during the assembly task of the robot arm previously determined.

According to a 12th aspect of the present invention, there is provided an assembly robot comprising:

the robot arm; and

the control apparatus for a robot arm according to any one of the first to ninth aspects which controls the robot arm.

According to a 13th aspect of the present invention, there is provided a control program for a robot arm for an assembly task-performing robot, the control program being for controlling an operation of the robot arm for the assembly task-performing robot to perform an assembly task of assembling an assembly-target object gripped by the robot arm with respect to a targeted object, the control program causing a computer to execute the steps of:

determining by a correction operation type determining unit a correction operation type for correcting the operation, using information as to the operation that includes a position of the robot arm in the assembly task, information as to the person's force acting on the robot arm detected by force detecting unit and acquired by an information acquiring unit, and a force detected by target object force detecting unit and applied to the target object by the robot arm; and

correcting the operation by an operation correction unit by controlling the robot arm, in accordance with the person's force detected by the force detecting unit and acquired by the information acquiring unit, and the correction operation type determined by the correction operation type determining unit, during the assembly task of the robot arm previously determined.

According to a 14th aspect of the present invention, there is provided a control-purpose integrated electronic circuit for a robot arm for an assembly task-performing robot, the control-purpose integrated electronic circuit being for controlling an operation of the robot arm for the assembly task-performing robot to perform an assembly task of assembling an assembly-target object gripped by the robot arm with respect to a targeted object, and comprising:

a correction operation type determining unit that determines a correction operation type for correcting the operation, using information as to the operation that includes a position of the robot arm in the assembly task, information as to the person's force acting on the robot arm detected by force detecting unit and acquired by an information acquiring unit, and a force detected by target object force detecting unit and applied to the target object by the robot arm; and

an operation correction unit that corrects the operation by controlling the robot arm, in accordance with the person's force detected by the force detecting unit and acquired by the information acquiring unit, and the correction operation type determined by the correction operation type determining unit during the assembly task of the robot arm previously determined.

Effects of the Invention

As has been described in the foregoing, with the control apparatus for a robot arm of the present invention, provision of the correction operation type determining unit, the force detecting unit, the target object force detecting unit, the operation correction unit, and the control unit makes it possible to exert control of the robot arm, in such a way that an assembly operation can easily be corrected in accordance with the person's force, using the information as to the assembly operation including the force applied by the robot arm, the force applied to the target object, and the position and speed of the robot arm.

Further, with the control method for a robot arm, a control program for a robot arm, and a control-purpose integrated electronic circuit for a robot arm of the present invention, provision of the correction operation type determining unit, the operation correction unit, and the control unit makes it possible to exert control of the robot arm, in such a way that an assembly operation can easily be corrected in accordance with the person's force detected by the force detecting unit, using the information as to the assembly operation including the force applied by the robot arm, the force applied to the target object, and the position and speed of the robot arm.

Still further, provision of the correction operation type determining unit makes it possible to automatically switch and correct a plurality of operations, without the necessity of using buttons or the like.

Still further, provision of the correction operation type determining unit makes it possible to switch between corrections of a plurality of correction types executed at once, and a correction of one correction type executed solely, in accordance with the skill of the person who manipulates or the like.

Still further, further provision of the control parameter managing unit and the control unit makes it possible to set the mechanical impedance value of the robot arm in accordance with the correction operation type, whereby it becomes possible to exert control with the mechanical impedance value changed in accordance with the correct direction of the robot arm or to weaken or stop the force applied to the task plane during the correction.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In the following, with reference to the drawings, a detailed description will be given of embodiments of the present invention.

In the following, before proceeding with the detailed description of the embodiments of the present invention with reference to the drawings, various modes of the present invention will be described.

According to a first aspect of the present invention, there is provided a control apparatus for a robot arm, the control apparatus controlling an operation of the robot arm for an assembly task-performing robot to perform an assembly task of assembling an assembly-target object gripped by the robot arm with respect to a targeted object, comprising:

a force detecting unit that detects a person's force acting on the robot arm;

an information acquiring unit that acquires information as to the operation that includes a position of the robot arm in the assembly task, and the person's force detected by the force detecting unit;

a target object force detecting unit that detects a force applied to the assembly-target object by the robot arm;

a correction operation type determining unit that determines a correction operation type for correcting the operation, based on the information as to the operation including the position of the robot arm in the assembly task and information as to the person's force each acquired by the information acquiring unit, and the force applied to the target object detected by the target object force detecting unit; and

an operation correction unit that corrects the operation by controlling the robot arm, in accordance with the person's force detected by the force detecting unit and acquired by the information acquiring unit, and the correction operation type determined by the correction operation type determining unit, during the assembly task of the robot arm previously determined.

With such a structure, an assembly method of the robot arm can be corrected in accordance with the person's force.

According to a second aspect of the present invention, there is provided the control apparatus for a robot arm according to the first aspect, wherein

the information as to the operation includes, as being corresponding to the assembly task performed by the robot arm, at least one of: information as to the position and the orientation of the robot arm; information as to a force applied to an assembly task plane by the robot arm; information as to a direction of the robot arm; speed information as to the robot arm; and task disapproved region information being information as to a region where no task of the robot arm is performed.

With such a structure, as being corresponding to the task performed by the robot arm, at least one piece of information out of the positional information, the information as to a force applied by the robot arm, the information as to a direction, the speed information, and the information as to a task undesired region, at each point of time, can be corrected.

According to a third aspect of the present invention, there is provided the control apparatus for a robot arm according to the first aspect, wherein

the information as to the operation includes, as being corresponding to the assembly task performed by the robot arm, at least information as to a force applied to the task plane by the robot arm, and

based on the information as to the operation, the operation correction unit sets a force control mode in which the robot arm performs the operation having a preset force acted on the task plane, for each of axes of x-, y-, and z-axis directions in which the robot arm is shiftable and, while the robot arm is performing the operation, the operation correction unit corrects, in accordance with the person's force detected by the force detecting unit and acquired by the information acquiring unit, one of a magnitude and a direction of the set force included in the information as to the operation before a correction operation.

With such a structure, while the robot arm is performing the operation in a force control mode in which the robot arm performs the operation having a preset force acted on the task plane, the force control mode being set for each of axes of x-, y-, and z-axis directions in which the robot arm is shiftable, in accordance with the person's force detected by the force detecting unit, one of a magnitude and a direction of the set force included in the information as to the operation before a correction operation can be corrected, based on the information as to the operation.

According to a fourth aspect of the present invention, there is provided the control apparatus for a robot arm according to the first aspect, wherein

the information as to the operation includes, as being corresponding to the assembly task performed by the robot arm: information as to the position and the orientation of the robot arm; information as to a direction of the robot arm; speed information as to the robot arm; and task disapproved region information being information as to a region where no task is performed, and

an based on the information as to the operation, the operation correction unit sets impedance control mode in which the robot arm actuates in accordance with a force applied to the robot arm by the person while operating in a position control mode in which the position of the robot arm is controlled, the impedance control mode being set for each of axes of x-, y-, z-axis directions in which the robot arm is shiftable and, while the robot arm is operating the task, the operation correction unit corrects, in accordance with the person's force detected by the force detecting unit and acquired by the information acquiring unit, the operation of the information as to the operation in the impedance control.

With such a structure, while the robot arm is operating the task in an impedance control mode in which the robot arm actuates in accordance with a force applied to the robot arm by the person with its drive stopped while operating in a position control mode in which the position of the robot arm is controlled, the impedance control mode being set for each of axes of x-, y-, z-axis directions in which the robot arm is shiftable, the operation of the information as to the operation in the impedance control can be corrected in accordance with the person's force detected by the force detecting unit, based on the information as to the operation.

According to a fifth aspect of the present invention, there is provided the control apparatus for a robot arm according to one of the first to fourth aspects, further comprising

a display unit that displays information as to the correction operation type based on the correction operation type determined by the correction operation type determining unit.

According to a sixth aspect of the present invention, there is provided the control apparatus for a robot arm according to the first aspect, wherein

the correction operation type determining unit detects a shift amount of the position and the orientation of the hand of the robot arm,

when the force applied to the target object detected by the target object detecting unit and acquired by the information acquiring unit is less than a first threshold value, and the shift amount of the position and the orientation of the hand of the robot arm detected by the correction operation type determining unit is equal to or more than a third threshold value, the correction operation type determining unit determines a task plane position-and-orientation shift type as the correction operation type, and

the operation correction unit corrects the position and the orientation of the hand of the robot arm, in accordance with the person's force detected by the force detecting unit and acquired by the information acquiring unit and the correction operation type determined by the correction operation type determining unit.

According to a seventh aspect of the present invention, there is provided the control apparatus for a robot arm according to the first aspect, wherein

the correction operation type determining unit detects a shift amount of the position and the orientation of the hand of the robot arm,

when the force applied to the target object detected by the target object detecting unit and acquired by the information acquiring unit is less than a first threshold value, and the shift amount of the position and the orientation of the hand of the robot arm detected by the correction operation type determining unit is less than a third threshold value, the correction operation type determining unit determines a speed correction type as the correction operation type, and

the operation correction unit corrects a speed of the robot arm, in accordance with the person's force detected by the force detecting unit and acquired by the information acquiring unit and the correction operation type determined by the correction operation type determining unit.

According to an eighth aspect of the present invention, there is provided the control apparatus for a robot arm according to the first aspect, wherein

the correction operation type determining unit detects a shift amount of the position and the orientation of the hand of the robot aria,

in a situation: where a component of the force applied to the target object detected by the target object force detecting unit and acquired by the information acquiring unit exceeds a certain threshold value for a certain time period; where the force applied to the target object detected by the target object force detecting unit and acquired via the information acquiring unit is equal to or less than another certain threshold value for a certain time period; and where the shift amount of the robot arm detected by the correction operation type determining unit is equal to or more than a certain threshold value, the correction operation type determining unit determines a position-and-orientation correction type as the correction operation type, and

the operation correction unit corrects the position and the orientation of the robot arm, in accordance with the force applied to the target object detected by the target object force detecting unit and acquired via the information acquiring unit and the correction operation type determined by the correction operation type determining unit.

According to a ninth aspect of the present invention, there is provided the control apparatus for a robot arm according to the first aspect, wherein

in a situation: where a component of the force applied to the target object detected by the target object force detecting unit and acquired via the information acquiring unit exceeds a certain threshold value for a certain time period; and where the force applied to the target object detected by the target object force detecting unit and acquired via the information acquiring unit exceeds another certain threshold value for a certain time period, the correction operation type determining unit determines a force correction type as the correction operation type, and

the operation correction unit corrects the position and the orientation of the robot arm, in accordance with the force applied to the target object detected by the target object force detecting unit and acquired via the information acquiring unit and the correction operation type determined by the correction operation type determining unit.

According to a tenth aspect of the present invention, there is provided the control apparatus for a robot arm according to any one of the first to ninth, further comprising

a display unit that displays information as to the correction operation type based on the correction operation type determined by the correction operation type determining unit.

With such a structure, information as to a correction operation type can be displayed.

According to an 11th aspect of the present invention, there is provided a control method for a robot arm, the control method controlling an operation of the robot arm for an assembly task-performing robot to perform an assembly task of assembling an assembly-target object gripped by the robot arm with respect to a targeted object, comprising:

detecting by a force detecting unit a person force acting on the robot arm;

detecting by a target object force detecting unit a force applied to the assembly-target object by the robot arm;

determining by a correction operation type determining unit a correction operation type for correcting the operation, using information as to the operation that includes the position of the robot arm in the assembly task, information as to the person's force acting on the robot arm detected by the force detecting unit and acquired by an information acquiring unit, and the force applied to the target object detected by the target object force detecting unit; and

correcting the operation by an operation correction unit by controlling the robot arm, in accordance with the person's force detected by the force detecting unit and acquired by the information acquiring unit, and the correction operation type determined by the correction operation type determining unit, during the assembly task of the robot arm previously determined.

With such a structure, it becomes possible to determine the correction type of the operation, to detect the person's force, so as to provide the operation in accordance with the person's force and the correction type, during the robot arm is performing the task, based on information as to the operation of the robot arm.

According to a 12th aspect of the present invention, there is provided an assembly robot comprising:

the robot arm; and

the control apparatus for a robot arm according to any one of the first to ninth aspects which controls the robot arm.

According to a 13th aspect of the present invention, there is provided a control program for a robot arm for an assembly task-performing robot, the control program being for controlling an operation of the robot arm for the assembly task-performing robot to perform an assembly task of assembling an assembly-target object gripped by the robot arm with respect to a targeted object, the control program causing a computer to execute the steps of:

determining by a correction operation type determining unit a correction operation type for correcting the operation, using information as to the operation that includes a position of the robot arm in the assembly task, information as to the person's force acting on the robot arm detected by force detecting unit and acquired by an information acquiring unit, and a force detected by target object force detecting unit and applied to the target object by the robot arm; and

correcting the operation by an operation correction unit by controlling the robot arm, in accordance with the person's force detected by the force detecting unit and acquired by the information acquiring unit, and the correction operation type determined by the correction operation type determining unit, during the assembly task of the robot arm previously determined.

According to a 14th aspect of the present invention, there is provided a control-purpose integrated electronic circuit for a robot arm for an assembly task-performing robot, the control-purpose integrated electronic circuit being for controlling an operation of the robot arm for the assembly task-performing robot to perform an assembly task of assembling an assembly-target object gripped by the robot arm with respect to a targeted object, and comprising:

a correction operation type determining unit that determines a correction operation type for correcting the operation, using information as to the operation that includes a position of the robot arm in the assembly task, information as to the person's force acting on the robot arm detected by force detecting unit and acquired by an information acquiring unit, and a force detected by target object force detecting unit and applied to the target object by the robot arm; and

an operation correction unit that corrects the operation by controlling the robot arm, in accordance with the person's force detected by the force detecting unit and acquired by the information acquiring unit, and the correction operation type determined by the correction operation type determining unit during the assembly task of the robot arm previously determined.

In the following, with reference to the drawings, a detailed description will be given of embodiments of the present invention.

First Embodiment

First, a description will be given of the structure of an assembly robot1including a control apparatus for a robot arm according to a first embodiment of the present invention.

As shown inFIG. 1, as one example of the assembly robot1, a description will be given of a robot arm5for an assembly robot that performs an assembly task, based on cellular manufacturing in a factory, of installing a flexible circuit board74in a flexible circuit board insert slot75of a device6such as a television set, a DVD recorder, or a mobile phone.

The robot arm5of the assembly robot1is installed on a wall surface7aof a workbench7. The base end of the robot arm5is shiftably supported by a rail8fixed to the wall surface7a, such that the robot arm5can shift on the rail8in a lateral direction along the rail8, e.g., in the horizontal direction, by a force of a hand16of a person16A, or can automatically be shifted by a motor or the like. The fixation position of the base end of the robot arm5is not limited to the wall surface7aof the workbench7, and it may be installed at the ceiling or the like.

Provided at the side surface of the workbench7is a data input IF26such as a console26A having a button26aor the like disposed. Further, a display unit14as one example of display means is provided at the wall surface of the workbench7.

The rail8is structured with a rail fixed portion8afixed to the wall surface7aand a rail movable portion8b, which includes a wheel (not shown) rotated in forward and reverse directions by a drive operation of a motor65, so as to be shiftable relative to the rail fixed portion8a. The base portion34having the base end of the robot arm5coupled thereto is coupled to the rail movable portion8b. Thus, the base portion34of the robot arm5is structured to be shiftable with the rail movable portion8brelative to the rail fixed portion8a. Alternatively, this structure may be replaced by a structure in which the base portion34having the base end of the robot arm5coupled thereto is provided with a wheel rotated in forward and reverse directions by a drive operation of the motor65, such that the base portion34shifts along the rail8fixed on the wall surface7a.

At the tip of the robot arm5, a hand30capable of opening and closing for gripping the flexible circuit board74is attached.

The assembly robot1is a robot which inserts the flexible circuit board74into the insert slot75of the device6fixedly placed on the workbench7, and is structured with the robot arm5and a control apparatus controlling the operation of the robot arm5.

The overview of the manipulation procedure of the assembly robot1will be given.

First, as shown inFIG. 2A, a person16turns the power on through the data input IF26disposed at the side surface of the workbench7(e.g., by pressing “ON” of the power button26aof the console26A shown inFIG. 26).

Next, the device6is installed on the workbench7. Upon installation, as shown inFIG. 2B, the robot arm5can be shifted by the person's hand16, so that the tip of the robot arm5is shifted to attain easier installation of the device6on the workbench7(the robot arm5can be shifted by the person's hand16to a position where it does not bother the installation of the device6on the workbench7).

Next, the data input IF26disposed at the side surface of the workbench7(e.g., a start button of task switches26cof the console26A shown inFIG. 26) is pressed by the person's hand16, whereby the assembly robot1actuates. Then, an optimum assembly operation is selected by an operation selecting unit29, the description of which will be given later. Based on the selected operation, the assembly task by the robot arm5is started.

It is to be noted that, though it has been described that the console26A as one example of the data input IF26is fixed at the side surface of the workbench7, it may be a remote controller with which teleoperation can be performed.

When the robot arm5performs the assembly task, the circuit board of the flexible circuit board74itself or any desired portion such as a connector portion at the tip of the circuit board is gripped by the hand30of the robot arm5. Thereafter, in a state where the robot arm5is gripping the flexible circuit board74with the hand30, the robot arm5is shifted by the person's hand16or is automatically shifted, whereby the connector portion of the flexible circuit board74faces the flexible circuit board insert slot75of the device6, and the robot arm5inserts the connector portion of the flexible circuit board74into the insert slot75. Thus, the flexible circuit board74is assembled into the device6. Here, as necessary, control is exerted so as to correct the operation of the robot arm5, e.g., by pushing the robot arm5with the person's hand16.

More specifically, as shown inFIG. 18B, in a case where an extent of force or position in connection with an insertion of the flexible circuit board74into the insert slot75is changed, due to a change in model of the flexible circuit board74, the device6or the like, the person16checks the state of such a change, and executes a correction by pushing the robot arm5with the person's hand16, as shown inFIG. 18C, such that the robot arm5exerts a greater force. In this manner, as shown inFIG. 18D, the insert operation can be performed with a greater extent of force. In the following, a detailed description will be given of the assembly task by such a robot arm5.

FIG. 3is a view showing the constituents of the control apparatus structuring the assembly robot1, in which the detailed structure of a control apparatus body unit45, an operation generating apparatus12generating operations, the robot arm5being the control target, the rail8, and a peripheral apparatus47are shown. The control apparatus of the assembly robot1is schematically structured with the control apparatus body unit45, the operation generating apparatus12, and the peripheral apparatus47.

The control apparatus body unit45, the operation generating apparatus12, and the peripheral apparatus47are each structured with a general personal computer.

The control apparatus body unit45is structured to include: a control parameter managing unit21as one example of control parameter managing means connected to each of an operation correction unit20as one example of operation correction means of the operation generating apparatus12, a correction operation type determining unit23as one example of correction operation type determining means, and the data input IF26of the peripheral apparatus47; and a control unit (impedance control unit)22as one example of impedance control means connected to the control parameter managing unit21and an input/output IF24of the peripheral apparatus47.

The operation generating apparatus12is structured to include an operation database17, a task disapproved region database28, the operation correction unit20, the correction operation type determining unit23, the operation storage unit15, the operation selecting unit29, and an information acquiring unit (one example of information acquiring means)100. The operation storage unit15is connected to the operation database17, the task disapproved region database28, and the operation correction unit20. The operation database17and the task disapproved region database28are both connected to the operation storage unit15, the operation correction unit20, and the operation selecting unit29. Connected to the operation correction unit20are the operation database17, the task disapproved region database28, the operation storage unit15, the control parameter managing unit21of the control apparatus body unit45, the correction operation type determining unit23, and the data input IF26of the peripheral apparatus47. The correction operation type determining unit23is connected to the operation correction unit20, the data input IF26of the peripheral apparatus47, and the control parameter managing unit21of the control apparatus body unit45. The operation selecting unit29is connected to the operation database17, the task disapproved region database28, and the data input IF26. The information acquiring unit100is connected to the correction operation type determining unit23, the operation database17, the task disapproved region database28, a force detecting unit (one example of force detecting means)53of the control unit22and a target object force detecting unit (one example of target object force detecting means)78. Hence, the information acquiring unit100is capable acquiring information as to the operation of the robot arm5including the position of the robot arm5in performing the assembly task, information as to a person's force acting on the robot arm5detected by the force detecting unit53, and information from the target object force detecting unit78. The information acquired by the information acquiring unit100is input to the correction operation type determining unit23. Based on the information as to the operation and the information as to the person's force each acquired by the information acquiring unit100, as will be described later, the correction operation type determining unit23can determine a correction operation type for correcting the operation of the robot arm5.

The peripheral apparatus47is structured to include: the data input IF26connected to the correction operation type determining unit23, the operation correction unit20, the control parameter managing unit21of the control apparatus body unit45, the display unit14, and the operation generating apparatus12; the input/output IF24connected to an encoder64attached to the rotary shaft of a motor65of the rail movable portion8bto detect an angle of rotation of the rotary shaft, an encoder44attached to the rotary shaft of a motor43of each of joint portions to detect an angle of rotation of the rotary shaft, and an encoder61attached to the rotary shaft of a hand drive-purpose motor62to detect an angle of rotation of the rotary shaft, the input/output IF24receiving inputs of the such pieces of angle information and being connected to the control unit22; a motor driver25connected to the motor65of the rail movable portion8b, the motor43of each of the joint portions of the robot arm5, and the hand open/close drive-purpose motor62; and the display unit14connected to the correction operation type determining unit23.

The input/output IF24is structured to include elements connected to an expansion slot such as a PCI bus of a personal computer, for example, a D/A board, an A/D board, a counter board, and the like.

The operation generating apparatus12, the control apparatus body unit45, and the peripheral apparatus47, each controlling the operations of the robot arm5and the rail movable portion8b, perform their respective operations, whereby the joint angle information pieces, which are joint angle information pieces as to respective joint portions of the robot arm5and are output from the encoder44, the description of which will be given later, are acquired by the control apparatus body unit45via the input/output IF24. Then, the control apparatus body unit45calculates control command values for rotary operations of the joint portions of the robot arm5based on the acquired joint angle information pieces. Further, positional information as to the rail movable portion8bbeing output from the encoder64of the motor65of the rail movable portion8bis acquired by the control apparatus body unit45via the input/output IF24. Then, the control apparatus body unit45calculates a control command value for the motor65of the rail movable portion8bbased on the acquired pieces of positional information.

The calculated control command values of the motors43of respective joint portions of the robot arm5are provided to the motor driver25via the input/output IF24. In accordance with the control command values sent from the motor driver25, the motors43of respective joint portions of the robot arm5are driven independently of one another.

Further, the calculated control command value of the rail movable portion8bis provided to the motor driver25via the input/output IF24. In accordance with the control command value sent from the motor driver25, the motor65of the rail movable portion8bis driven.

Still further, the hand30is structured to further include the hand drive-purpose motor62as one example of a hand driving device whose drive operation is controlled by the motor driver25and the encoder61that detects a rotation phase angle of the rotary shaft of the hand drive-purpose motor62. Thus, for example, rotation of the rotary shaft of the motor62in the forward direction causes the hand30to open, while the flexible circuit board74is positioned at a position where it can be gripped by the hand30; and rotation of the rotary shaft of the motor62in the reverse direction causes the hand30to close, and to grip the flexible circuit board74having been positioned where it can be gripped by the hand30. In such a case, the hand30is opened and closed by causing the rotary shaft of the hand drive-purpose motor62to rotate in the forward and reverse directions, by having the rotary drive operation of the hand drive-purpose motor62controlled via the motor driver25by a control signal (open/close command signal) from a hand control unit54(shown inFIG. 7) of the control unit22of the control apparatus body unit45, based on the angle of rotation of the rotary shaft of the motor62detected by the encoder61.

The robot arm5, which is a multi-link manipulator having six degrees of freedom, includes the hand30, a fore-arm link32having at its tip a wrist portion31to which the hand30is attached, an upper-arm link33having its tip rotatably coupled to the base end of the fore-arm link32, and a base portion34to which the base end of the upper-arm link33is rotatably coupled and supported thereon. The base portion34is coupled to the rail movable portion8b. The wrist portion31has three rotation axes relating to a fourth joint portion38, a fifth joint portion39, and a sixth joint portion40, such that the relative orientation of the hand30to the fore-arm link32can be changed. That is, inFIG. 3, the fourth joint portion38makes it possible to change the relative orientation about the lateral axis of the hand30to the wrist portion31. The sixth joint portion40makes it possible to change the relative orientation about the lateral axis of the hand30to the wrist portion31, the lateral axis being perpendicular to the lateral axis of the fourth joint portion38and to the longitudinal axis of the fifth joint portion39. The other end of the fore-arm link32is allowed to rotate about a third joint portion37relative to the tip of the upper-arm link33, that is, about the lateral axis parallel to the lateral axis of the fourth joint portion38. The other end of the upper-arm link33is allowed to rotate about a second joint portion36relative to the base portion34, that is, about the lateral axis parallel to the lateral axis of the fourth joint portion38. Further, a top-side movable portion34aof the base portion34is allowed to rotate about a first joint portion35relative to a bottom-side fixed portion34bof the base portion34, that is, about the longitudinal axis parallel to the longitudinal axis of the fifth joint portion39. As a result, the robot arm5is allowed to rotate about each of the six axes in total, to structure the multi-link manipulator having six degrees of freedom.

Each of the joint portions structuring the rotation portions of the respective axes includes the motor43as one example of a rotary driver device, and the encoder44detecting a rotation phase angle (i.e., a joint angle) of the rotary shaft of the motor43. The motor43is included in one of paired members (e.g., a rotation-side member and a support-side member supporting the rotation-side member) structuring each of the joint portions, and its drive operation is controlled by the motor driver25, the description of which will be given later (the motor is actually disposed inside the one member of each joint portion of the robot arm5). Further, the encoder44is disposed in the one member for detecting a rotation phase angle (i.e., a joint angle) of the rotary shaft of the motor43(the encoder44is actually disposed inside the one member of each joint portion of the robot arm5). The rotary shaft of the motor43included in the one member is coupled to the other member to cause the rotary shaft to rotate in the forward and reverse directions, whereby the other member is allowed to rotate about each axis relative to the one member.

Reference numeral46denotes a rail coordinate system Od, which represents the relative positional relationship with reference to a point Osat an end of the rail8(seeFIG. 8). Reference numeral41denotes a base portion coordinate system of the base portion34fixed to the rail movable portion8bfixed to the rail8, which represents the relative positional relationship with reference to the rail coordinate system Od. A hand coordinate system42represents the relative positional relationship with reference to the base portion coordinate system41.

The origin position Od(x, y) of the rail coordinate system46viewed from the point Osat the end of the rail8is defined as the position of the rail movable portion8b(rail position). Further, a hand position and orientation vector is defined as a vector r=[x, y, z, φ, θ, ψ]T, in which the origin position Oe(x, y, z) of the hand coordinate system42viewed from the base portion coordinate system41is the hand position of the robot arm5(the position of the tip of the hand30); and the orientation of the hand coordinate system42viewed from the base portion coordinate system41is the hand orientation of the robot arm5represented by (φ, θ, ψ) easing a roll angle, a pitch angle, and a yaw angle. With reference toFIGS. 12A to 12C, a description will be given of the roll angle, the pitch angle, and the yaw angle.

First, it is discussed a coordinate system in which the coordinate system is rotated by an angle φ using Z-axis of an absolute coordinate system35as the rotation axis (FIG. 12A). It is assumed that the coordinate axes here are [X′, Y′, Z].

Next, this coordinate system is rotated about Z-axis by an angle θ using Y′ as the rotation axis (seeFIG. 12B). It is assumed that the coordinate axes here are [X″, Y′, Z″.

Finally, this coordinate system is rotated about X″-axis by an angle ψ using X″-axis as the rotation axis (seeFIG. 12C). It is assumed that the coordinate axes here are X″, Y′″, Z′″]. It is assumed that the orientation of the coordinate system here is represented by the roll angle φ, the pitch angle θ, and the yaw angle ψ, and hence the orientation vector here is (φ, θ, ψ). It is assumed that, in a case where a coordinate system (φ, θ, ψ) of the orientation having its origin position translated to the origin position Oe(x, y, z) of the hand coordinate system42agrees with the hand coordinate system42, the orientation vector of the hand coordinate system42is (φ, θ, ψ).

In a case where the hand position and orientation of the robot arm5is to be controlled, the hand position and orientation vector r is caused to follow a hand position and orientation target vector rdgenerated by a desired trajectory generating unit55, the description of which will be given later.

Reference numeral26denotes the data input IF (interface) through which a person (assembly worker) inputs commands such as start or end of an assembly task to the assembly robot1, using an input device such as a button, a keyboard, a mouse, or a microphone.

The display unit14is a display apparatus installed in the workbench7, for example, and it displays on itself operations of the robot or types of parameter to be corrected, the description of which will be given later.

The operation database17stores and retains information as to operations of the rail movable portion8band the robot arm5(e.g., an assembly operation), such as the position and orientation thereof at a certain time (information as to an operation). Here, the database includes, as the information as to an operation, at least one piece of information out of the following information pieces, each being corresponding to a task (e.g., an assembly task) performed by the robot arm5: information as to a hand position orientation of the robot arm5; information as to a force applied by the robot arm5to the device6; speed information of the robot arm5; and task disapproved region information which is information as to a region where no task is performed.

The operation database17will be detailed.

The operation database17is structured to store therein, for example, pieces of information as to the operation of the rail movable portion8band the robot arm5shown in FIG.4, which are: task ID numbers identifying tasks; operation ID numbers identifying individual operations in each task; information as to the position of the rail movable portion8bin the corresponding operation; information as to the hand position and orientation of the robot arm5in the corresponding operation; information as to a force applied by the robot arm5to the assembly task plane (e.g., an insert plane of the flexible circuit board insert slot75of the device6) in the corresponding operation; information as to a flag indicative of which one of information pieces among a position parameter, an orientation parameter, and a force parameter, each of which is of the robot arm5, is valid (a flag indicative of validity); information as to a time period during which respective operations are active; information as to the type of a parameter to be corrected, in correcting the operation information in the operation database17by the operation correction unit20, the description of which will be given later; and progress information indicative of whether or not the operation is presently in operation.

The task ID number in the operation database17identifying the inserting task is information representing the task ID number allotted to each task for discerning tasks from one another, in a case where there are a plurality of types of assembly tasks (e.g., the inserting task).

The operation ID numbers identifying individual operations in each assembly task in the operation database17are information pieces representing the operation ID numbers allotted to respective assembly operations for discerning individual assembly operations in one assembly task from one another, in a case where one assembly task is structured with a plurality of assembly operations.

The information as to the position of the rail movable portion8bin the operation database17represents the aforementioned information as to the rail position. That is, in a case where the origin position of the rail coordinate system46viewed from Osat the end of rail8is Od(x, y), and for example as shown inFIG. 8, where the assembly robot1travels from left to right on the rail fixed portion8ato perform the assembly operation, a first rail position (x1, y1), a second rail position (x2, y2), and a third rail position (x3, y3) of the rail movable portion8bare stored.

The information as to the position of the rail movable portion8bin the operation database17may previously be set in the operation database17, or may be stored by directly gripping the robot arm5by the person's hand16, and shifting the robot arm5in an impedance control mode, the description of which will be given later.

The information as to the hand position and orientation of the robot arm5in the operation database17represents the aforementioned hand position and orientation of the robot arm5, and represented as (x, y, z, φ, θ, ψ), based on the origin position Oeand the orientation.

The information as to the position and orientation of the robot arm5and the information as to a time period in the operation database17are acquired and stored in the following manner. For example, as shown inFIG. 1, the robot arm5is directly gripped by the person's hand16, and in the impedance control mode whose description will be given later, the robot arm5is shifted, such that the control unit22acquires information as to hand position and orientation of the robot arm5every certain time period (e.g., every 0.2 msec) (specifically, as will be described in the section in connection with the control unit22, a forward kinematics calculation unit58converts a joint angle measured by the encoder44at each of the joint portions into the hand position and orientation, to acquire the information as to the hand position and orientation of the robot arm5). The acquired information is stored by the operation storage unit15, together with information as to time period, in the operation database17. It is to be noted that the information as to the position and orientation of the robot arm5and the information as to a time period may previously be generated in the similar manner before shipment at the manufacturer, and may be stored in the operation database17. Alternatively, such pieces of information may be acquired and stored in the following manner. The robot arm5is shifted, and an image of the environment (an environment including the robot arm56and the device6) is picked up by an image pickup apparatus such as a camera (which is disposed above the robot arm5, for example). The acquired image data (e.g., an image of the insert slot75of the device6included in the acquired environment information) is subjected to a model matching process against an image of a previously stored object (e.g., an image of the insert slot75of the device6). The matched position is stored as the hand position of the robot arm5in the operation database17, by the operation storage unit15via the data input IF26, which is not specifically shown. The information as to a force applied by the robot arm5stored in the operation database17represents information as to the force applied to an object being the target of a task performed by the robot arm5, in which the force applied by the robot arm5in each of the x, y, and z directions is represented as fx, fy, and fz, respectively, and the force applied in each of the φ, θ, and ψ directions is represented as fφ, fθ, and fψ, respectively. In the operation database17, the force is represented as (fx, fy, fz, fφ, fθ, fψ). For example, in a case where fz=5[N], it represents that a task is performed with a force of 5N being applied in the z-axis direction. This is a parameter used in a case where, in performing an assembly task of inserting the flexible circuit board74into the insert slot75of the device6, the insertion is carried out applying the force perpendicularly to the insert plane of the insert slot75of the device6.

The flag indicative of which one of information pieces among a position parameter, an orientation parameter, and a force parameter, each of which is of the robot arm5, is valid (the flag indicative of validity) in the operation database17, that is, the flag information in the operation database17inFIG. 4, is a value that indicates which one of information pieces is valid among the information as to the position, the information as to the orientation, and the information as to the force, each of which is of the robot arm5under each corresponding operation ID. Specifically, it is represented by numerical values of 32 bits shown inFIG. 5. InFIG. 5, in a case where respective values of the position and orientation, and the force are valid as being represented by their respective bits, the values each assume “1”; whereas the values each assume “0” when invalid. For example, the 0th bit assumes “1” when the value of x-coordinate of the position is valid, and assumes “0” when invalid. The 1st bit assumes “1” when the value of y-coordinate of the position is valid, and assumes “0” when invalid. The 2nd bit assumes “1” when the value of z-coordinate of the position is valid, and assumes “0” when invalid. In succession thereto, the 3rd, 4th, and 5th bits indicate the validity of φ, θ, ψ of the orientation. The 6th to 11th bits respectively indicate whether the respective force components of fx, fy, fz, fφ, fθ, fψare valid or invalid. It is to be noted that, extra flag (32 bits) is prepared for future expansion, and 12th to 31st bits are not used and, accordingly, these unused bits assume “0” in the present example. However, it is possible that the 12th bit solely is a variable that can be stored. InFIG. 5, because the 0th and 1st bits assume “1” and the 8th bit assumes “1”, it is indicated that only x, y information as to the position and fzinformation as to the force are valid among the operation information pieces, and that whatever values are stored for z, φ, θ, and ψ information and force information other than fzamong the operation information pieces, they are invalid.

The information as to the time period during which each operation is executed in the operation database17, that is, the time period in the operation database17shown inFIG. 4, is the time period required for the assembly robot1to perform each operation, indicating that the operation stored with the corresponding operation1D is operated by the assembly robot1taking the time period stored therein. This time period is not the absolute time, but represents the relative time period elapsed after the previous operation. That is, it represents a time period until the rail movable portion8band the robot arm5respectively shift to the position of the rail movable portion8band the position and orientation of the robot arm5indicated by the operation ID.

The information as to the type of a parameter to be corrected in the operation database17, in correcting the operation information in the operation database17by the operation correction unit20, that is, the correction parameter flag shown inFIG. 4, is information indicative of which parameter should be corrected in accordance with the type determined by the correction operation type determining unit23, the description of which will be given later. Specifically, it is represented by numerical values of 32 bits shown inFIG. 6. InFIG. 6, in a case where respective values of the position and orientation, and the force are correctable as being represented by their respective bits, the value assumes “1”; whereas the value assumes “0” when uncorrectable. For example, the 0th bit assumes “1” when the value of x-coordinate of the position is correctable, and assumes “0” when uncorrectable. The 1st bit assumes “1” when the value of y-coordinate of the position is correctable, and assumes “0” when uncorrectable. The 2nd bit assumes “1” when correction of the value of z-coordinate of the position is possible, and assumes “0” when impossible. In succession thereto, the 3rd, 4th, and 5th bits indicate the correction feasibility of φ, θ, ψ of the orientation. Similarly, the 6th to 11th bits respectively indicate the correction feasibility of the force. It is to be noted that, extra flag (32 bits) is prepared for future expansion, and the 12th to 31st bits are not used and, accordingly, these unused bits assume “0” in the present example. However, it is possible that the 12th bit solely is a variable that can be stored.

The progress information in the operation database17indicative of whether or not the operation is presently in operation is information indicative of whether or not the operation is presently operated by the assembly robot1. When it is in operation, “1” is recorded, and when not in operation, “0” is recorded. Specifically, the person selects via the data input IF26an assembly task desired to be performed, and the selected information is input from the data input IF26to the operation selecting unit29. When the first assembly operation included in the selected task is started by the assembly robot1, the operation selecting unit29stores “1” in the operation database17for the assembly operation presently in operation out of a plurality of assembly operations constituting the assembly task, and stores “0” in the operation database17for the assembly operation not in operation. It is to be noted that, as to the information as to whether or not it is in operation, a report about completion of the operation commanded by the control unit22is input via the operation correction unit20to the operation storage unit15, which is then stored by the operation storage unit15in the task method database17.

InFIG. 4, the operation IDs “1” to “8” are, as shown inFIG. 21A, operations in which the hand30of the robot arm5grips the flexible circuit board74and shifts above the device6to the insert slot75of the device6. The operations “9” to “16” are, as shown inFIG. 21B, operations in which the robot arm5is used to insert the flexible circuit board74into the insert slot75of the device6.

When the person16selects the optimum task via the data input IF26out of a task list (e.g., the task display such as “insert 1” and “insert 2” displayed on the bottom side of the center of the switch26cshown inFIG. 26) in the operation database17, the operation selecting unit29shown inFIG. 3sets “1” to the progress information of the operation ID presently in operation included in the selected task, and stores the same in the operation database17; and sets “0” to the other operations and stores the same in the operation database17.

The task disapproved region database28stores information as to region in which a task (in the present example, the flexible circuit board inserting task) is not performed by the assembly robot1, and the specific information is shown inFIG. 10. InFIG. 10, the position (x, y) of the task disapproved region represents the region where the person does not desire the assembly robot1to perform the task. For example, in a case where the hatched region is the task disapproved region RB in the task approved plane R shown inFIG. 11, the coordinates required for representing the region RB (in this example, coordinates of four corners of a rectangular region (xc1, yc1) (xc2, yc2), (xc3, yc3), (xc4, yc4)) are stored. It is to be noted that the coordinates are expressed by the relative coordinates relative to the coordinates Osat the end of the rail8, in the task route in the task region RA where the task is performed. The coordinates representing the task disapproved region RB are generated by the operation correction unit20, the description of which will be given later, and stored in the task disapproved region database28.

The correction operation type determining unit23determines the correction type which can be exerted, so as to allow the operation correction unit20to correct an operation, the description of which will be given later, based on a force applied by the person's hand16to the robot arm5. For example, as shown inFIG. 19C, when the person applies a force in the lateral direction to the robot arm5with the hand16, the position of the robot arm5is shifted in a direction parallel to the task plane (e.g., the insert plane of the insert slot75of the device6) (e.g., the horizontal direction is meant by the direction parallel to the task plane, in a case where the task plane extends along the horizontal direction. In the following description, such a direction is simply referred to as the “horizontal direction”, for ease of explanation.) This allows the task region RA to be translated. The correction operation type in this case is “shift task plane position”. In a situation where the robot arm5is inserting the flexible circuit board74into the insert slot75of the device6as shown inFIG. 18A, when the person applies a downward force to the robot arm5(e.g., the hand30) from above the robot arm5with the hand16as shown inFIG. 18C, the operation correction unit20, the description of which will be given later, can increase the extent of force applied for insertion as shown inFIG. 19D. The correction operation type in this case is the “force applied extent”. Thus, the correction operation type determining unit23can determine the correction type for the assembly operation based on the extent of the force applied to the robot arm5by the person's hand16, the hand position of the robot arm5, and the like. A detailed description thereof will be given later.

The operation correction unit20has a function of correcting the assembly operation information in the operation database17by the person applying a force to the robot arm5with the hand16, while the assembly robot1is performing assembly operation based on the information pieces as to the position and orientation and as to the time period in the operation database17. A detailed description thereof will be given later.

The operation storage unit15stores the operation information corrected by the operation correction unit20in the operation database17or in the task disapproved region database28.

Next, the control parameter managing unit21will be detailed.

Based on an operation correction instruction from the operation correction unit20, the control parameter managing unit21sets the following: changeover among an impedance control mode, a hybrid impedance control mode, a force control mode, a force hybrid impedance control mode, and a high-rigidity position control mode, all of which are of the robot arm5; mechanical impedance set values in the respective control modes; hand position and orientation target correction outputs rdΔ, which are to be output from an impedance calculation unit51of the control unit22in the respective control modes; and operation information from the control unit22to the desired trajectory setting unit55.

Further, the control parameter managing unit21generates a route in the task region RA omitting the task disapproved region RB in the task disapproved region database28, from the position of the rail movable portion8b(the origin position Od(x, y) of the rail coordinate system46viewed from coordinates Osat the end of the rail8) stored in the operation database17. Further, the control parameter managing unit21receives the information such as information as to the hand position of the robot arm5or as to the force from the control unit22, the control parameter managing unit21reports such information to the operation correction unit20. Still further, when an open/close command of the hand30is input via the data input IF26, such input information from the data input IF26is input to the hand control unit54of the control unit22via the control parameter managing unit21, and the control parameter managing unit21issues an open/close command of the hand30to the hand control unit54.

The position control mode is a mode in which the robot arm5operates based on a hand position and orientation target vector command of the desired trajectory generating unit55, the description of which will be given later.

The impedance control mode is a mode in which the robot arm5operates in accordance with a force applied to the robot arm5by the person or the like.

The hybrid impedance control mode is a mode in which the robot arm5operates, while the robot arm5is in operation in the position control mode, in accordance with a force applied to the robot arm5by the person or the like (an impedance control mode), and it is a mode in which the position control mode and the impedance control mode are executed in parallel. For example, it is a mode in which, midway during the assembly task of inserting the flexible circuit board74into the insert slot75of the device6, the robot arm5is directly held by the person's hand16as shown inFIG. 180so as to make a correction, such as to translate the task region RA.

The force control mode is a control mode in which the robot arm5operates while pressing a target object (e.g., the flexible circuit board74) gripped with the hand30against the task plane (e.g., the insert plane of the insert slot75of the device6) with a force previously given to the control unit22. It is a control mode used for a task plane component of the robot arm5in a situation where, for example, the robot arm5inserts the flexible circuit board74into the insert slot75applying a certain force to the insert slot75of the device6.

The force hybrid impedance control mode is a control mode to switch between the hybrid impedance control mode and the impedance control mode for each of the six-axis directions, and further, to cause an operation to be performed in the force control mode in which the operation is performed exerting the specified force. It is to be noted that the impedance control mode cannot be set in the direction in which the force control mode is set (the force control mode and the impedance control mode are in a mutually exclusive relationship).

When the assembly operation is performed, an appropriate control mode out of these control modes is set in the following manner for each of the direction and orientation of the robot arm5to cause the robot arm5to operate.

For example, in a case where, as shown inFIG. 18A, the assembly robot1inserts the flexible circuit board74gripped with the hand30into the insert slot75applying a specified force to the insert slot75of the device6in the insert direction perpendicular to the insert plane of the insert slot75of the device6being one example of the task plane (inFIG. 18A, because the insert plane of the insert slot75extends along the horizontal plane, the insert direction is perpendicular to the horizontal plane and is downward), the force hybrid impedance control mode is set. Specifically, for the six axes of (x, y, z, φ, θ, ψ), the following control modes are respectively set. That is, what is set is the force hybrid impedance control mode in which: (x, y) components are operated in the hybrid impedance control mode; (φ, θ, ψ) components are operated in the impedance control mode; and the z-axis component is operated in the force control mode. In this manner, by setting the hybrid impedance control mode to the direction parallel to the insert plane of the insert slot75of the device6, the following is achieved: midway during an operation in the position control mode, by switching to the hybrid impedance control mode upon the person's manipulation, it becomes possible to shift the robot arm5in accordance with a force applied to the robot arm5by a person or the like. Further, by setting the impedance control mode to (φ, θ, ψ) components, it becomes possible to change the orientation of the robot arm5in accordance with the force applied to the robot arm5in a stopped state from the person or the like. Still further, by setting the force control mode for the z-axis component, it becomes possible for an operation to be performed pressing with a specified force.

A high-rigidity position control mode is a mode in which the position control mode during an assembly task is further enhanced in rigidity, and is achieved by increasing the gain in the positional error compensation unit56, the description of which will be given later. In this mode, the robot arm5is not easily shifted by a force being applied to the robot arm5by the person's hand16, whereby the force detecting unit53can detect the force applied by the person's hand16based on a change amount of the hand position of the robot arm5.

The setting parameters of the mechanical impedance set values include inertia M, viscosity D, and rigidity K. The setting of the respective parameters of the mechanical impedance set values are carried out based on the following evaluation equations, by using correction values.
M=KM×(a correction value)  equation (1)
D=KD×(a correction value)  equation (2)
K=KK×(a correction value)  equation (3)

In the foregoing equations (1) to (3), KM, MD, and KK are gains, each of which is a certain constant value.

The control parameter managing unit21outputs the inertia M, the viscosity D, and the rigidity K, which are the mechanical impedance parameters calculated based on the equations (1) to (3), respectively, to the control unit22.

According to the equations (1) to (3), for example, as shown inFIG. 19C, in a case where the person desires to make a correction so as to shift the region of the task plane (e.g., the task plane to which the inserting task of inserting the flexible circuit board75into the insert slot75is performed), and if the position and orientation components other than those of x-axis and y-axis easily move, then it becomes difficult to execute the correction work. Therefore, the control parameter managing unit21sets the correction values of high values (specifically, about ten times as high as the correction values) for only the position and orientation components other than those of x-axis and y-axis, whereby the viscosity D and the rigidity K are set to be higher. Thus, resistance or rigidity is generated in the motion of the robot arm5, and it becomes not easy to move with respect to the position and orientation components other than those of x-axis and y-axis.

Alternatively, another method is to null by the control parameter managing unit21the values other than those of x-axis and y-axis out of the components of the hand position and orientation target correction output rdΔoutput from the impedance calculation unit51, the description of which will be given later. Thus, no shift can be caused by a force of the person's hand16as to any components other than those of x-axis and y-axis, and therefore it becomes possible to prevent any erroneous manipulation.

Further, it is necessary for the control parameter managing unit21to report to the operation correction unit20about the hand position and orientation of the robot arm5and the information as to the force applied by the person (the information as to the person's force acting on the robot arm5). Accordingly, the control parameter managing unit21receives the hand position of the robot arm5and the information as to the force from the control unit22, and reports about the same to the operation selecting unit29, the operation storage unit15, and the operation correction unit20. Further, the control parameter managing unit21reports to the control unit22about the operation information as to the position and orientation, the time period and the like having been input from the operation correction unit20.

FIG. 7shows a block diagram of the control unit22. The control unit22operates in the control mode set by the control parameter managing unit21, and in accordance with the control mode, controls the mechanical impedance value of the robot arm5such that it assumes the mechanical impedance set value of the robot arm5having been set based on the set values of the inertia M, the viscosity D, and the rigidity K. Further, the control unit22controls, in a case of the inserting task, such that the flexible circuit board74is pressed against the insert plane of the insert slot75with a specified force. Further, the control unit22controls the rail movable portion8bso as to shift the robot arm5to a specified position on the rail fixed portion8a.

Next, with reference toFIG. 7, the control unit22will be detailed.

The control unit22is structured to include a robot arm control unit49controlling the drive operation of the motor43of each of the joint portions of the robot arm5, and a rail control unit48controlling the drive operation of the motor65of the rail movable portion8b. The robot arm control unit49is structured to include a positional error calculation unit50, an impedance calculation unit51, the force detecting unit53as one example of force detecting means, the hand control unit54, a desired trajectory generating unit55, a positional error compensation unit56, an approximation inverse kinematics calculation unit57, and the forward kinematics calculation unit58. The positional error compensation unit56, the approximation inverse kinematics calculation unit57, and the forward kinematics calculation unit58constitute a position control system59.

Next, the robot arm control unit49will be detailed.

From the robot arm5, a present value (a joint angle vector) vector q=[q1, q2, q3, q4, q5, q6]Tof each of the joint angles as measured by the encoder44of the joint axis of each of the joint portions is output, and taken into the control unit22via the input/output IF24. Here, q1, q2, q3, q4, q5, and q6are joint angles of the first joint portion35, the second joint portion36, the third joint portion37, the fourth joint portion38, the fifth joint portion39, and the sixth joint portion40.

The desired trajectory generating unit55receives an input of the assembly operation from the control parameter managing unit21, and outputs a hand position and orientation target vector rd, a hand force vector fd, and a flag indicative of which parameter is valid for each direction (a flag indicative of validity), for achieving a targeted operation of the robot arm5. In connection with the targeted operation of the robot arm5, in accordance with the targeted assembly task, information as to position and orientation (rd0, rd1, rd2, . . . ) for each point of time (t=0, t=t1, t=t2, . . . ) and information as to force (fd0, fd1, fd2, . . . ) are provided to the desired trajectory generating unit55from the operation correction unit20via the control parameter managing unit21.

The desired trajectory generating unit55interpolates the trajectories and forces at respective points using polynomial interpolation, to generate the hand position and orientation target vector rdand the force vector fd.

In response to the hand open/close command received from the control parameter managing unit21, the hand control unit54issues a command to the hand drive-purpose motor62of the robot arm5to drive the hand drive-purpose motor62so as to open and close the hand30.

The force detecting unit53functions as one example of force detecting means, and detects an external force applied to the robot arm5by any contact between the person or the like and the robot arm5. The force detecting unit53takes in, via the input/output IF24, a current value i=[i1, i2, i3, i4, i5, i6]Tof current flowing through each of the motors43that respectively drive the joint portions of the robot arm5, the current value i being measured by a current sensor of the motor driver47. The force detecting unit53also takes in, via the input/output IF24, a present value q of the joint angle of each of the joint portions, and a joint angle error compensation output uqefrom the approximation inverse kinematics calculation unit57, the description of which will be given later. The force detecting unit53functions as an observer, and calculates a torque τextwhich is generated in each of the joint portions by an external force applied to the robot arm5, based on the current value i, the present value q of each joint angle, and the joint angle error compensation output uqe. Then, the force detecting unit53converts the torque to an equivalent hand external force Fextof the hand of the robot arm5based on Fext=Jv(q)−Tτext−[0, 0, mg]T, to output the equivalent hand external force Fext. Here, Jv(g) is a Jacobian matrix that satisfies the following equation:
v=Jv(q){dot over (q)}
where v=[vx, vy, vz, ωx, ωy, ωz]T; in which (vx, vy, vz) is a translation speed of the hand of the robot arm5in the hand coordinate system42; and (ωx, ωy, ωz) is an angular velocity of the hand of the robot arm5in the hand coordinate system42. Further, m is the weight of the flexible circuit board74gripped by the hand30of the robot arm5, and g is the gravitational acceleration. Though the value of weight m of the flexible circuit board74may be input by the person to the force detecting unit53via the data input IF26before causing the hand30to grip the flexible circuit board74, the weight m may be a preset value, because normally the value of weight m of the flexible circuit board74is not subjected to change very often.

The impedance calculation unit51is a unit that functions to achieve the control of a mechanical impedance value of the robot arm5to the mechanical impedance set value of the robot arm5.

When the impedance control mode is specified, the impedance calculation unit51outputs the hand position and orientation target correction output rdΔ. When being switched to the force hybrid impedance control mode, in a case where there exists a force component that is specified as valid by the flag (the flag indicative of validity), the impedance calculation unit51calculates the hand position and orientation target correction output rdΔfor achieving control for the mechanical impedance value of the robot arm5to approximate the mechanical impedance set value of the robot arm5based on the following equation (4) using the inertia M, the viscosity D, the rigidity K, each being the impedance parameter having been set by the control parameter managing unit21, the present value q of each joint angle, the external force Fextdetected by the force detecting unit53, and fdoutput from the desired trajectory generating unit55, and the impedance calculation unit51outputs the result.

The hand position and orientation target correction output rdΔis added by the positional error calculation unit50to the hand position and orientation target vector rdoutput from the desired trajectory generating unit55. Thus, a hand position and orientation correction target vector rdmis generated by the positional error calculation unit50. For example, in a case where the insertion is to be carried out with application of a force in solely the z-axis direction, while the other components should move in the position control mode, the positional error calculation unit50sets 0 to all the components of the hand position and orientation target correction output rdΔother than the z component.

The positional error calculation unit50further obtains an error rebetween the hand position and orientation correction target vector rdmand the hand position and orientation vector r calculated by the forward kinematics calculation unit58, the description of which will be given later, and outputs the obtained error reto the positional error compensation unit56.

From the encoder44of the joint axis of each of the joint portions of the robot arm5to the forward kinematics calculation unit58, the joint angle vector q being the present value q of each joint angle as measured by the encoder44is input via the input/output IF24. The forward kinematics calculation unit58performs geometrical calculation to convert the joint angle vector q of the robot arm5to the hand position and orientation vector r. The hand position and orientation vector r calculated by the forward kinematics calculation unit58is output to the positional error calculation unit50, the impedance calculation unit51, and the desired trajectory generating unit55.

The positional error compensation unit56outputs a position error compensation output ureto the approximation inverse kinematics calculation unit57, based on the error reobtained by the positional error calculation unit50.

Specifically, the position error compensation output ureis calculated by the following equation:

ure=KP⁢re+Kf⁢∫0t⁢re⁢⁢ⅆt′+KD⁢ⅆreⅆt
where KPis a proportional gain matrix; KIis an integral gain matrix; and KDis a differential gain matrix, each being a diagonal matrix whose diagonal components are constituted by the gain for the components of the hand position vector re=[x, y, z, φ, θ, ψ]T.

Further, the positional error compensation unit56sets each of the proportional gain matrix KP, the integral gain matrix KI, and the differential gain matrix KDto a preset greater value, when the high-rigidity position control mode is set. As used herein, the high rigidity refers to an enhanced rigidity as compared to the normal position control. Specifically, a greater value as compared to the normal position control mode is set. For example, by setting a value approximately twice as great as that of the normal position control mode, the rigidity can approximately be doubled at a maximum.

In this manner, the high-rigidity position control can be achieved. It is to be noted that, by changing the gain for each component, control can be exerted such that, for example, operations can be performed with high rigidity as to z-axis direction solely, while having the other directions governed by the normal position control.

The approximation inverse kinematics calculation unit57performs approximation calculation of inverse kinematics based on approximate equation uout=Jr(q)−1uin, using the position error compensation output urereceived from the positional error compensation unit56and the joint angle vector q measured by the robot arm5. Here, Jr(q) is a Jacobian matrix that satisfies the following relationship:
{dot over (r)}→Jr(q){dot over (q)}
where uinis the input to the approximation inverse kinematics calculation unit57; and uoutis the output from the approximation inverse kinematics calculation unit57. Assuming that the input uinis a joint angle error qe, a conversion equation from the hand position orientation error reto the joint angle error qe, as expressed by qe=Jr(q)−1re, is obtained.

Accordingly, when the position error compensation output ureis input from the positional error compensation unit56to the approximation inverse kinematics calculation unit57, as an output of the approximation inverse kinematics calculation unit57, the approximation inverse kinematics calculation unit57outputs the joint angle error compensation output uqefor compensating for the joint angle error qeto the motor driver25of the robot arm5via the input/output IF24.

The joint angle error compensation output uqeis provided to the motor driver25of the robot arm5via the D/A board of the input/output IF24as a voltage command value, whereby the motors43rotate respective joint axes in forward and reverse directions, and the robot arm5operates.

Based on the positional information of the rail movable portion8breceived from the desired trajectory generating unit55, the rail control unit48exerts control over the drive operation of the motor65of the rail movable portion8b, such that the robot arm5shifts with the rail movable portion8bon the rail fixed portion8a. Specifically, the rotation in forward and reverse directions of the motor65of the rail movable portion8bis controlled by the rail control unit48, such that the rail movable portion8bto which the robot arm5is coupled is shiftable rightward and leftward on the rail fixed portion8a.

In the following, with reference to the flowchart ofFIG. 16, a description will be given of actual operation steps of the robot arm control program of the robot arm5.

The joint angle data (a joint variable vector or the joint angle vector q) measured by the encoder44of each of the joint portions of the robot arm5is taken in by the control apparatus body unit45(step S51).

Subsequently, the inverse kinematics calculation unit57performs calculations such as Jacobian matrix Jrand the like, which is required for performing the kinematics calculation of the robot arm5(step S52).

Subsequently, the forward kinematics calculation unit58calculates the present hand position and orientation vector r of the robot arm5, based on the joint angle data (joint angle vector q) from the robot arm5(step S53).

Subsequently, the desired trajectory calculation unit55calculates the robot arm5's hand position and orientation target vector rdand the force target vector fd, based on the operation information transmitted from the operation correction unit20(step S54).

Subsequently, the force detecting unit53calculates the equivalent hand external force Fextat the hand of the robot arm5, based on the drive current value i of the motor43, the joint angle data (the joint angle vector q), and the joint angle error compensation output μqe(step S55).

Subsequently, in step S56, the control mode set by the control parameter managing unit21is set. When the high-rigidity position control mode solely is set, the process proceeds to step S57. On the other hand, when the force hybrid impedance control mode, the impedance control mode, or the hybrid impedance control mode is set, the process proceeds to step S58. In step S57(the process performed by the impedance calculation unit51), in a case where the high-rigidity position control mode is set by the control parameter managing unit21, the impedance calculation unit51sets the hand position and orientation target correction output rdΔto 0 vector. Thereafter, the process proceeds to step S59.

In the case where the force hybrid impedance control mode, the impedance control mode, or the hybrid impedance control mode is set by the control parameter managing unit21, the impedance calculation unit51calculates the hand position and orientation target correction output rdΔ, based on the inertia M, the viscosity D, and the rigidity K being the mechanical impedance parameters set by the control parameter managing unit21, the joint angle data (the joint angle vector q), and the equivalent hand external force Fextapplied to the robot arm5calculated by the force detecting unit53(step S58).

Subsequently, the positional error calculation unit50calculates the hand position and orientation error rewhich is the difference between the hand position and orientation correction target vector rdmbeing the sum of the hand position and orientation target vector rdand the hand position and orientation target correction output rdΔ, and the present hand position and orientation vector r (steps S59and S60). In step S60, a specific example of the positional error compensation unit56may be a PID compensator. By appropriately adjusting three gains, namely, the proportional gain, the differential gain and the integral gain, each of which is a diagonal matrix of constants, the control is exerted such that the position error converges to 0. In step S59, by increasing each gain to a certain value, the high-rigidity position control is achieved.

In step S61subsequent to step S59or step S60, the approximation inverse kinematics calculation unit57converts the position error compensation output urefrom a value as to the error of the hand position and orientation into a joint angle error compensation output uqebeing a value as to the error of the joint angle, by multiplying an inverse matrix of the Jacobian matrix Jrcalculated in step S52by the approximation inverse kinematics calculation unit57.

Subsequent to step S61, the approximation inverse kinematics calculation unit57provides the joint angle error compensation output uqeto the motor driver25via the input/output IF24, to thereby change the amount of current flowing through each motor43. This causes rotary motion in each of the joint axes of the robot arm5(step S62).

By repeatedly executing the foregoing steps S51to S62as a controlling calculation loop, control of the operations of the robot arm5can be achieved, that is, the operation of exerting control so as to set the mechanical impedance values of the robot arm5to the aforementioned appropriately set set values can be achieved.

Next, the correction operation type determining unit23and the operation correction unit20will be detailed.

The correction operation type determining unit23determines, by the operation correction unit20, the correction type that can be exerted by applying a force to the robot arm5with the person's hand16, to correct the assembly operation. There are six types of correction as follows.

The first correction type is “shift task plane position”. Specifically, when the flexible circuit board74awhose size or rigidity has been changed due to model change is to be inserted into the insert slot75of the device6using the operation information according to which an operation is performed as shown inFIG. 19A, there may be a case in which the flexible circuit board74ais caught by the insert slot75aand the connector portion of the flexible circuit board74acannot be inserted into the insert slot75a, as shown inFIG. 19B. In such a case, as shown inFIG. 190, while the robot arm5is inserting the flexible circuit board74ainto the insert slot75of the device6in the position control mode, when a force is applied in the lateral direction to the robot arm5with the person's hand16as shown inFIG. 19C, the operation correction unit20allows the robot arm5to shift its position in the horizontal direction relative to the task plane (e.g., the insert plane of the insert slot75of the device6) of the robot arm5as shown inFIG. 19D, whereby the robot arm5can translate relative to the insert plane of the insert slot75of the device6.

The second correction type is “force applied extent” when the flexible circuit board74is inserted. This is valid when the force bit is “1” in the flag (the flag indicative of validity) of the operation presently in operation (the progress information in the operation database17is “1”). While the robot arm5is performing an inserting task of the flexible circuit board74binto the insert slot75bas shown inFIG. 18B, when a force is applied downward from above to the robot arm5with the person's hand16as shown inFIG. 18C, the operation correction unit20can correct the extent of applied force to be greater, as shown inFIG. 18D; conversely, when a force is applied upward from below to the robot arm5with the person's hand16, the operation correction unit20can correct the extent of applied force to be smaller.

The third correction type is the “speed” of the hand of the robot arm5. While the robot arm5gripping the flexible circuit board74is shifting toward the insert slot75of the device6as shown inFIG. 22A, when a force is applied in the direction opposite to the traveling direction of the robot arm to the robot arm5with the person's hand16as shown inFIG. 22B, the operation correction unit20can decelerate the speed of the robot arm5when the robot arm5shifts, as shown inFIG. 22C. Conversely, when a farce is applied to the robot arm5in the traveling direction of the robot arm5with the person's hand16while the robot arm5is shifting, the operation correction unit20can accelerate the speed of the robot arm5when the robot arm5shifts.

The fourth correction type is “direction (orientation) change”. In a case where the operation information according to which an operation is performed as shown inFIGS. 20A and 20C(the latter is a drawing showingFIG. 20Aviewed from above) is used and the orientation of the insert slot75of the device6shown inFIG. 20Ais changed as an insert slot75cshown inFIG. 203due to model change, as shown inFIG. 203, when the robot arm5gripping the flexible circuit board74performs insertion in a similar manner as that performed to the insert slot75of the device6shown inFIG. 20A, the flexible circuit board74is caught by the insert slot75cand the flexible circuit board74cannot be inserted into the insert slot75c. In such a case, as shown inFIG. 20D, when a force is applied to the robot arm5(in particular, to the hand30or the portion near the hand) with the person's hand16so as to change the orientation of the robot arm5(in particular, the hand30gripping the flexible circuit board74) while the robot arm5is performing the inserting task of the flexible circuit board74, the operation correction unit20can change, as shown inFIG. 20E, the orientation of the robot arm5(in particular, the hand30gripping the flexible circuit board74), to thereby change the traveling direction of the robot arm5(in particular, the hand30) so as to agree with the insert slot75a. This can be achieved by changing the orientation (φ, θ, ψ) of the hand of the robot arm5.

The fifth correction type is “task undesired region”. When the robot arm5(e.g., the hand30) is gripped by the hand16of the person16A as shown inFIG. 23, and the robot arm5(e.g., hand30) is shifted with a force being applied to the robot arm5along the contour of a task undesired region RB, the operation correction unit20can set the task undesired region RB as shown inFIG. 23.

The sixth correction type is the “shift in direction perpendicular to task plane”. As shown inFIG. 24A, while the robot arm5is performing the inserting task of the flexible circuit board74into the insert slot75of the device6, when an upward force is applied to the robot arm5by the person's hand16to shift the robot arm5upward as shown inFIG. 24B, the operation correction unit20allows the inserting task of the flexible circuit board74to be carried out at, for example, a projecting portion6aof the device6which projects upward, as shown inFIG. 24C.

The correction operation type determining unit23determines one correction type out of the six correction types. Specifically, one correction type is selected out of the six correction types via the data input IF26such as a button, or the correction operation type determining unit23estimates the type, based on the relationship information among the force applied to the robot arm5by the person's hand16detected by the force detecting unit53and acquired by the information acquiring unit100, the force applied to the robot arm5having stored in the operation database17and acquire by the information acquiring unit100, and the correction type (e.g., the relationship information among the direction of the force being applied, the magnitude of the force being applied, and the correction type).

In the following, with reference to the flowchart ofFIG. 14, a detailed description will be given of a specific correction type estimation process of the correction type estimation method.

In a state where the power button26aof the assembly robot1turned “ON”, in a case where no force is applied to the robot arm5by being gripped by the person's hand16, the robot arm5does not move. When a force is applied to the robot arm5by the person's hand16, the robot arm5can be shifted in any desired direction in the impedance control mode (the mode in which the robot arm5is shifted in the direction in which the force of the person's hand16is detected under the impedance control). In this case, the force detecting unit53of the control unit22detects the force acting on the robot arm5, and the information as to the force detected by the force detecting unit53is input to the correction operation type determining unit23via the information acquiring unit100(step S71).

Subsequently, in step S72, the correction operation type determining unit23determines whether or not all the components (the six components of fx, fy, fz, fφ, fθ, fψ) of the force detected by the force detecting unit53and acquired by the information acquiring unit100are equal to or less than a certain threshold values (specifically, (fdx, fdy, fdz, fdφ, fdθ, fdψ) of the ID “1” inFIG. 17). When the correction operation type determining unit23determines that all the components (the six components of fx, fy, fz, fφ, fθ, fψ) of the force detected by the force detecting unit53and acquired by the information acquiring unit100are equal to or less than the certain threshold values, the robot arm5does not move, and no correction is made (step S88), and the correction type estimation process of the corrected operation type estimation method ends. The control mode in this case is the impedance control mode.

In step S72, when the correction operation type determining unit23determines that any component of the force detected by the force detecting unit53and acquired by the information acquiring unit100(any component out of the six components of fx, fy, fz, fφ, fθ, fψ) exceeds the certain threshold values (specifically, (fdx, fdy, fdz, fdφ, fdθ, fdψ) of the ID “1” in FIG.17)), the process proceeds to step S73.

In step S73, the correction operation type determining unit23further determines whether the assembly robot1at present is in operation in terms of the operation database17, based on the information acquired via the information acquiring unit100. Specifically, when the correction operation type determining unit23determines that no task is selected by the operation selecting unit29, and that the progress information is “0” for every task ID in the operation database17(a state where no task is started), the correction operation type determining unit23determines that it is not in operation in terms of the operation database17, and the process proceeds to step S76. When the correction operation type determining unit23determines that the operation selecting unit29has selected the assembly task and the assembly has started, and that the progress information is “1”, the correction operation type determining unit23determines that it is in operation in terms of the operation database17, and the process proceeds to step S74.

In step S74, when the robot arm5is gripped by the person's hand16and applied with a force in a direction toward which the operation of the robot arm5is desired to be corrected, the force detecting unit53detects the force applied to the robot arm5; the correction operation type determining unit23measures a displacement amount for a certain time period for each force (fx, fy, fz, fφ, fθ, fψ) applied by the person's hand16detected by the force detecting unit53and acquired via the information acquiring unit100; and the correction operation type determining unit23measures which displacement amount, i.e., that of the position components (fx, fy, fz) or that of the orientation components (fφ, fθ, fψ), is greater. Specifically, as shown inFIG. 15, the correction operation type determining unit23measures the force in the time sequence for each of (fx, fy, fz, fφ, fθ, fψ); the correction operation type determining unit23measures an extent of displacement of the force for a certain time period (e.g., time1); and the correction operation type determining unit23measures the component whose displacement is the greatest. In this example, because the displacement of fφis the greatest, the correction operation type determining unit23determines that a greater force is applied in terms of the orientation components than in terms of the position components. Then, the process proceeds to step S79.

In step S74, when the correction operation type determining unit23determines that the displacement amount of orientation is greater than the displacement amount of position, the correction operation type determining unit23determines that the correction type is the “direction (orientation) change”, and the correction type estimation process ends (step S79). The control mode at this time is the control mode identical to that before the correction type is determined (i.e., the force hybrid impedance control mode).

On the other hand, in step S74, when the correction operation type determining unit23determines that the displacement amount of position is equal to or more than the displacement amount of orientation, the correction operation type determining unit23further determines whether a force component in the direction perpendicular to the task plane (e.g., the insert plane of the insert slot75of the device6) (for example, the force component in the direction perpendicular to the task plane is fz, in a case where the connector portion of the flexible circuit board75is inserted into the device6which is placed such that the insert slot75of the device6becomes parallel to the ground (e.g., a placement plane for the device6) or, as a part of the assembly task, in a case where it is a polishing task of polishing a polishing target plane of the device6which is placed so as to be in parallel to the ground (e.g., placement plane for the device6)) is equal to or more than a certain threshold value (specifically, fdzof ID “1” inFIG. 17) (step S75).

In step S75, when the correction operation type determining unit23determines that the force component in the direction perpendicular to the task plane (e.g., the insert plane of the insert slot75of the device6) is smaller than the certain threshold value, the correction operation type determining unit23further determines whether the force component (e.g., one of or both of fxand fy, in a case where the flexible circuit board74is inserted into the device6being set in parallel to the workbench7) in the direction (the direction extending along the task plane) parallel to the task plane (e.g., the insert plane of the insert slot75of the device6) is equal to or more than a certain threshold value (specifically, fdxand fdyof ID “1” inFIG. 17) (step S80).

In step S80, when the correction operation type determining unit23determines that the force component, in the direction (the direction extending along the task plane) parallel to the task plane (e.g., the insert plane of the insert slot75of the device6) is less than the certain threshold value (specifically, fxand fyof ID “1” inFIG. 17), it is determined that there is no correction (no type), and the correction type estimation process ends (step S81). When there is no correction, the task is performed having correction aborted.

In step S80, when the correction operation type determining unit23determines that the force component in the direction (the direction extending along the task plane) parallel to the task plane (e.g., the insert plane of the insert slot75of the device6) is equal to or more than the certain threshold value, the process proceeds to step S83.

In step S83, when the correction operation type determining unit23further determines that the shift amount of the robot arm5in the direction (the direction extending along the task plane) parallel to the task plane (e.g., the insert plane of the insert slot75of the device6) calculated by the correction operation type determining unit23is equal to or more than a certain threshold value (specifically, gxand gyof ID “2” inFIG. 17), the correction operation type determining unit23determines the type “shift task plane position” as the correction type, and the correction type estimation process ends (step S84). It is to be noted that, when the correction operation type determining unit23calculates the shift amount in the direction parallel to the task plane (e.g., the insert plane of the insert slot75of the device6), it is performed in the following manner specifically: the correction operation type determining unit23receives from the control unit22, via the control parameter managing unit21or the information acquiring unit100, the hand position of the robot arm5before manipulated by the person and the hand position during manipulation, and the correction operation type determining unit23subtracts the hand position before manipulation from the hand position during manipulation, to obtain the result as the shift amount. Further, when the correction operation type determining unit23calculates the shift amount perpendicular to the task plane, it is performed in the following manner specifically: the correction operation type determining unit23receives from the control unit22, via the control parameter managing unit21or the information acquiring unit100, the z component of the hand position of the robot arm5before manipulated by the person and the z component of the hand position during manipulation, and the correction operation type determining unit23subtracts the z component of the hand position before manipulation from the z component of the hand position during manipulation, to obtain the result as the shift amount.

In step S83, when the correction operation type determining unit23determines that the shift amount in the direction parallel to the task plane (e.g., the insert plane of the insert slot75of the device6) is less than the certain threshold value, the type “speed” in the direction parallel to the task plane (e.g., the insert plane of the insert slot75of the device6) is determined as the correction type, and the correction type estimation process ends (step S85).

On the other hand, in step S75, when the correction operation type determining unit23determines that the force perpendicular to the task plane (e.g., the insert plane of the insert slot75of the device6) is equal to or more than the certain threshold value, the correction operation type determining unit23further determines whether or not the shift amount of the robot arm5in the direction perpendicular to the task plane (e.g., the insert plane of the insert slot75of the device6) calculated by the correction operation type determining unit23is greater than a certain threshold value (specifically, gzof ID “2” inFIG. 17) (step S82).

In step S82, when the correction operation type determining unit23determines that the shift amount in the direction perpendicular to the task plane (e.g., the insert plane of the insert slot75of the device6) is greater than the certain threshold value, the correction operation type determining unit23determines the type “shift in direction perpendicular to task plane” as the correction type, and the correction type estimation process ends (step S87).

On the other hand, in step S82, when the correction operation type determining unit23determines that the shift amount in the direction perpendicular to the task plane (e.g., the insert plane of the insert slot75of the device6) is equal to or less than the threshold value, “force correction” is determined as the correction type (step S86), and the correction type estimation process ends.

On the other hand, in step S73, when the correction operation type determining unit23determines that it is not in operation in terms of the operation database17, the process proceeds to step S76. In step S76, the correction operation type determining unit23further determines whether or not the force applied to the robot arm5by the person's hand16is parallel to the task plane (e.g., the insert plane of the insert slot75of the device6), and that a shift amount in the horizontal direction for a certain time period is equal to or more than a threshold value (specifically, gxand gyof ID “2” inFIG. 17).

In step S76, when the correction operation type determining unit23determines that the force applied to the robot arm5by the person's hand16is parallel to the task plane (e.g., the insert plane of the insert slot75of the device6) and that the shift amount in the horizontal direction for a certain time period is equal to or more than the certain threshold value, the type “task undesired region” is determined as the correction type (step S78), and the correction type estimation process ends. On the other hand, in step S76, when the correction operation type determining unit23determines that the force applied to the robot arm5by the person's hand16is not parallel to the task plane (e.g., the insert plane of the insert slot75of the device6) (e.g., when it is perpendicular thereto), or when the shift amount in the horizontal direction is less than the certain threshold value even though the force is parallel to the task plane (e.g., the insert plane of the insert slot75of the device6), the “no correction” is determined as to the correction type (step S77), and the correction type estimation process ends.

According to the procedure described in the foregoing, the correction type can be switched by the correction operation type determining unit23, without the necessity of using the data input IF26such as a button.

The operation correction unit20is a function of correcting the operation information in the operation database17upon application of a force to the robot arm5by the person's hand16, while being operated based on the position and orientation and the time in the operation database17.

In the following, a description will be given of the function of the operation correction unit20.

When the data input IF26(e.g., the power button26aof the console26A) disposed at the workbench7of the assembly robot1is powered on by the person's hand16, the operation correction unit20issues a command to the control parameter managing unit21to operate in the impedance control mode.

Next, a desired assembly task is selected from the task list in the operation database17by the operation selecting unit29through use of the person's hand16, and start of an assembly operation is instructed. The operation correction unit20sets the control mode of the rail movable portion8band the robot arm5, based on the operation information (specifically, the position of the rail movable portion8band the position and orientation and time period of the robot arm5) identified by the selected task ID from the operation database17. In the present example, because the task ID “3” shown inFIG. 4is selected, the operation correction unit20sets the hybrid impedance control mode the mode in which, while in operation in the position control mode, the robot arm5actuates in accordance with a force applied from the person or the like to the robot arm5) to each of the position and orientation of the robot arm5having the flag whose bit represents “1”, of the flag (the flag indicative of validity) corresponding to the operation ID “1” in the operation database17, and issues a command to the control parameter managing unit21. When the operation correction unit20issues the command to the control parameter managing unit21, as shown inFIG. 21A, the robot arm5gripping the flexible circuit board75with the hand30shifts toward the insert slot75. Commands are successively issued to the control parameter managing unit21based on the operation information pieces following the operation ID “1”. The operation ID “9” causes a command to be issued to the control parameter managing unit21, commanding to operate in the force hybrid impedance control mode.

In a case of the force hybrid impedance control mode, the operation correction unit20sets the hybrid impedance control mode (the mode in which, while in operation in the position control mode, the robot arm5actuates in accordance with a force applied from the person or the like to the robot arm5) to each of the position and orientation of the robot arm5having the flag whose bit represents “1”, and sets the force control mode to any component having the force flag whose bit represents “1” (the flag indicative of validity), of the flag (the flag indicative of validity) corresponding to the operation ID in the operation database17. The operation correction unit20sets the impedance control mode to those components to which none of the hybrid impedance control mode and the force control mode is set out of the six components of position and orientation.

For example, the operation ID “9” of the task ID “3” inFIG. 4represents the task of inserting the flexible circuit board74into the insert slot75. The flag corresponding to the operation ID “9” is “1” for only the 1st, the 2nd, and the 8th bits. Therefore, the operation correction unit20sets the hybrid impedance control mode to the x-axis component and the y-axis component; the operation correction unit20sets the force control mode to the z-axis component; and the operation correction unit20sets the impedance control mode to the orientation components.

The control parameter managing unit21receives a command from the operation correction unit20. That is, when the operation correction unit20issues a command to the control parameter managing unit21to perform the assembly task in the force hybrid impedance control mode or the force hybrid impedance control mode, as shown inFIGS. 21A and 21B, after the robot arm5has shifted toward the insert slot75, the robot arm5starts the task of inserting the flexible circuit board74into the insert slot75.

Next, a description will be given of an exemplary case in which, in accordance with any specification change of the flexible circuit board74or the insert slot75due to model change or the like, the person checks the situation or the like and desires to cause the robot arm5to translate slightly further in the lateral direction to perform the task, as shown inFIG. 19C. As shown inFIG. 19C, the robot arm5is directly gripped by the person's hand16, and a force is applied to the robot arm5in parallel to the task plane (e.g., the insert plane of the insert slot75of the device6), such that the robot arm5translates relative to the task plane (e.g., the insert plane of the insert slot75of the device6).

The correction operation type determining unit23estimates and determines the correction type according to the correction type estimation process shown in the flowchart ofFIG. 14, based on the force applied to the robot arm5by the person's hand16and the information stored in the operation database17, each acquired by the information acquiring unit100. Here, the force is applied by the person's hand16to the robot arm5in the direction parallel to the task plane (e.g., the insert plane of the insert slot75of the device6), to shift the robot arm5by a value equal to or more than the certain threshold value. Therefore, in step S84, the correction operation type determining unit23determines the type “shift task plane position” as the correction type.

In a case where the task is the one whose task ID is “3” and the operation ID is “9” inFIG. 4, while the robot arm5is being shifted in the position control mode, the x-axis component and the y-axis component are in the force hybrid impedance control mode, so that the force detecting unit53detects the force applied to the robot arm5by the person's hand16in the impedance control mode, whereby the robot arm5is shifted as to x-axis direction and the y-axis direction in the direction in which the force has been applied to the robot arm5by the person's hand16. Thus, the insertion position of the flexible circuit board75can be corrected as shown inFIG. 19D.

It is to be noted that, in the present example, it is desired to correct the operation as to the x-axis direction and as to the y-axis direction only. Therefore, at the timing where the correction operation type determining unit23determines the correction type, the correction operation type determining unit23sets “1” for the 0th and 1st bits of the correction parameter flag shown inFIG. 6and sets “0” for the other bits, and the correction operation type determining unit23issues a command to the control parameter managing unit21. Thus, it becomes possible to set so as to prevent shifting in any directions other than the x-axis and the y-axis. Further, the correction operation type determining unit23changes the mechanical impedance set value in the impedance control mode and issues a command to the control parameter managing unit21. This makes it possible to reduce the rigidity in the x-axis direction and the y-axis direction so as to be lower than the rigidity of the other directions, such that the robot arm5is easily moved by the person's hand16in the x-axis direction and the y-axis direction; and makes it possible to increase the rigidity of any directions other than the x-axis direction and the y-axis direction, such that the robot arm5is not easily moved by the person's hand16in any directions other than the x-axis direction and the y-axis direction. This prevents the z-axis component of the robot arm5from being erroneously corrected, in a case where only the x-axis component and the y-axis component of the robot arm5are desired to be corrected. Further, while a correction of the robot arm5is being made as to the x-axis direction and the y-axis direction, the correction operation type determining unit23can weaken or reduce the force as to the z-axis component applied to the task plane (e.g., the insert plane of the insert slot75of the device6) as compared to (specifically, about half as great as) that applied in the operation before the correction is made. Alternatively, the correction operation type determining unit23can issue a command to the control parameter managing unit21to stop the force control. Specifically, the correction operation type determining unit23sets “0” for the 6th to 17th bits of the flag in the operation database17. This prevents the force from being applied to the robot arm5while the correction is made to shift the robot arm5in the x-axis direction and the y-axis direction, which may otherwise cause damage to the device6.

As described above, in a case where the robot arm5is gripped by the person's hand16and applied with a force in the direction parallel to the task plane (e.g., the insert plane of the insert slot75of the device6), so as to be shifted by Δx and Δy in the x-axis direction and the y-axis direction, the value Δx and the value Δy are transmitted to the operation correction unit20via the control unit22and the control parameter managing unit21.

The operation correction unit20obtains corrected operation information by subtracting Δx from every x-coordinate value of the operation information of the selected task ID, and further subtracting Δy from every y-coordinate value, and transmits the result to the control parameter managing unit21. The control parameter managing unit21instructs the control unit22to cause the robot arm5to operate at the coordinates corrected by Δx and Δy. Thus, the corrected operation as shown inFIG. 19Dcan be achieved. Next, the operation storage unit15stores the operation information subtracted by Δx and Δy in the operation database17.

Next, as shown inFIG. 24B, for example, when an inserting task is to be performed at the projecting portion6aprovided to the device6while a task is performed above the device6, the robot arm5is directly gripped by the person's hand16, to apply a force to the robot arm5perpendicularly to the task plane (e.g., the insert plane of the insert slot75of the device6), such that the robot arm5shifts upward, i.e., in the direction perpendicular to the task plane (e.g., the insert plane of the insert slot75of the device6).

The correction operation type determining unit23estimates and determines the correction type according to the correction type estimation process shown in the flowchart ofFIG. 14, based on the force applied to the robot arm5by the person's hand16and the information in the operation database17each acquired by the information acquiring unit100. Here, the force is applied by the person's hand16to the robot arm5in the direction perpendicular to the task plane (e.g., the insert plane of the insert slot75of the device6), to shift the robot arm5by a value equal to or more than the certain threshold value. Therefore, in step S87, the correction operation type determining unit23determines the type “shift in direction perpendicular to task plane” as the correction type.

The force hybrid impedance control mode or the hybrid impedance control mode makes it possible to detect, while the robot arm5is being shifted in the position control mode, the force of the person's hand16by the force detecting unit53in the impedance control mode so as to allow the robot arm5to shift in the z-axis direction which is the direction in which the force has been applied to the robot arm5by the person's hand16. Thus, the insertion position can be corrected as to the z-axis direction as shown inFIG. 24C.

It is to be noted that, in the present example, it is desired to correct the operation as to the z-axis direction only. Therefore, at the timing where the correction operation type determining unit23determines the correction type, the correction operation type determining unit23sets “1” for the 2nd bit shown inFIG. 6, and sets “0” for the other bits, and the correction operation type determining unit23issues a command to the control parameter managing unit21. Thus, it becomes possible to set so as to prevent shifting in any directions other than the z-axis direction. Further, the correction operation type determining unit23changes the mechanical impedance set value in the impedance control mode and issues a command to the control parameter managing unit21. This makes it possible to reduce the rigidity in the z-axis direction so as to be lower than the rigidity of the other directions, such that the robot arm5is easily moved by the person's hand16in the z-axis direction; and makes it possible to increase the rigidity of any directions other than the z-axis direction, such that the robot arm5is not easily moved by the person's hand16in any directions other than the z-axis direction.

Further, when a correction of the operation as to the z-axis direction of the robot arm5is to be made, the correction operation type determining unit23can weaken or reduce the force as to the z-axis component applied to the task plane (e.g., the insert plane of the insert slot75of the device6) as compared to (specifically, about half as great as) that applied in the operation before the correction is made. Alternatively, the correction operation type determining unit23can issue a command to the control parameter managing unit21to stop the force control. Specifically, the correction operation type determining unit23sets “0” for the 6th to 17th bits of the flag in the operation database17. This prevents the force from being applied to the robot arm5while the robot arm5is shifted in the z-axis direction, which may otherwise cause damage to the device6.

As described above, in a case where the robot arm5is gripped by the person's hand16and applied with a force in the direction perpendicular to the task plane (e.g., the insert plane of the insert slot75of the device6), so as to be shifted by Δz in the z-axis direction, the value Δz is transmitted to the operation correction unit20via the control unit22and the control parameter managing unit21.

The operation correction unit20obtains corrected operation information by subtracting Δz from every z-coordinate value of the operation information identified by the selected task ID, and transmits the result to the control parameter managing unit21. The control parameter managing unit21instructs the control unit22to cause the robot arm5to operate at the coordinates corrected by Δz. Thus, the corrected operation as shown inFIG. 24Ccan be achieved. Next, the operation storage unit15stores the operation information subtracted by Δz in the operation database17.

As shown inFIG. 20B, for example, when the orientation of the robot arm5is to be changed, as shown inFIG. 20D, the robot arm5is directly gripped by the person's hand16, and the robot arm5is shifted in the change-desired direction.

The correction operation type determining unit23estimates and determines the correction type according to the correction type estimation process shown in the flowchart shown inFIG. 14, based on the force applied to the robot arm5by the person's hand16and the information in the operation database17each acquired by the information acquiring unit100. Here, the force is applied to the robot arm5by the person's hand16in the change-desired direction. Therefore, in step S79, the correction operation type determining unit23determines type “direction (orientation) change” as the correction type.

The hybrid impedance control mode or the force hybrid impedance control mode makes it possible to detect, while the robot arm5is being shifted in the position control mode, the force applied to the robot arm5by the person's hand16by the force detecting unit53in the impedance control mode so as to allow the robot arm5to rotate in the φ-axis direction which is the direction in which the force has been applied to the robot arm5by the person's hand16. Thus, the insertion direction can be corrected as shown inFIG. 20E.

It is to be noted that, in the present example, it is desired to correct the operation as to φ-axis direction only. Therefore, at the timing where the correction operation type determining unit23determines the correction type, the correction operation type determining unit23sets “1” for the 3rd bit of the correction parameter flag shown inFIG. 6, and sets “0” for the other bits, and the correction operation type determining unit23issues a command to the control parameter managing unit21. Thus, the correction operation type determining unit23can set so as to prevent shifting in any directions other than the φ-axis direction. Further, the correction operation type determining unit23changes the mechanical impedance set value in the impedance control mode and issues a command to the control parameter managing unit21. This makes it possible to reduce the rigidity of the φ-axis direction to be lower than the rigidity of the other directions, such that the robot arm5is easily moved by the person's hand16in the φ-axis direction; and makes it possible to increase the rigidity of any directions other than the φ-axis direction, such that the robot arm5is not easily moved by the person's hand16in any directions other than the φ-axis direction.

Further, while a correction of the robot arm5as to φ-axis direction is being made, the correction operation type determining unit23can weaken or reduce the force as to the z-axis component applied to the task plane (e.g., the insert plane of the insert slot75of the device6) as compared to (specifically, about half as great as) that applied in the operation before the correction is made. Alternatively, the correction operation type determining unit23can issue a command to the control parameter managing unit21to stop the force control. Specifically, the correction operation type determining unit23sets “0” for the 6th to 17th bits of the flag in the operation database17. This prevents the force from being applied to the robot arm5while being shifted in the φ-axis direction, which may otherwise cause damage to the device6.

As described above, in a case where the robot arm5is gripped by the person's hand16and applied with a force in the direction perpendicular to the task plane (e.g., the insert plane of the insert slot75of the device6), so as to be rotated in the φ-axis direction by Δφ, the value Δφ is transmitted to the operation correction unit20via the control unit22and the control parameter managing unit21.

The operation correction unit20obtains corrected operation information by subtracting Δφ from every φ-coordinate value of the operation information identified by the selected task ID, and transmits the result to the control parameter managing unit21. The control parameter managing unit21instructs the control unit22to cause the robot arm5to operate at the coordinates corrected by Δφ. Thus, the corrected operation as shown inFIG. 20Ecan be achieved. Next, the operation storage unit15stores the operation information subtracted by Δφ in the operation database17.

According to the procedure described in the foregoing, in a state where the robot arm5is in operation in the hybrid impedance control mode or the force hybrid impedance control mode, a force applied to the robot arm5by the person's hand16allows the operation correction unit20to correct the generated position for each direction, with reference to the position and orientation and time in the operation database17.

Next, as shown inFIG. 18C, when a force to the task plane (e.g., the insert plane of the insert slot75of the device6) in performing the assembly task is to be changed, the robot arm5is directly gripped by the person's hand16, and a force is applied to the robot arm5in a direction perpendicular to the task plane (e.g., the insert plane of the insert slot75of the device6).

The correction operation type determining unit23estimates and determines the correction type according to the correction type estimation process shown in the flowchart ofFIG. 14, based on the force applied to the robot arm5by the person's hand16and the information stored in the operation database17each acquired by the information acquiring unit100. Here, the force is applied to the robot arm5by the person's hand16in the direction perpendicular to the task plane (e.g., the insert plane of the insert slot75of the device6), but the robot arm5is not shifted by an amount equal to or more than the certain threshold value. Therefore, in step S86, the correction operation type determining unit23determines the type “force correction” as the correction type.

At the timing where the correction operation type determining unit23determines the correction type to be the “force correction”, the correction operation type determining unit23issues a command to the control parameter managing unit21to operate in the high-rigidity position control mode, from the force hybrid impedance control mode. In issuing the command from the correction operation type determining unit23to the control parameter managing unit21, the correction operation type determining unit23in the high-rigidity position control mode can set high rigidity for each direction when controlling the positions. Therefore, for example, as to the flag of the operation whose task ID is “3” and the operation ID is “9” in the operation database17inFIG. 4, “1” is set for the 0th, 1st, and 8th bits. Therefore, the operation is performed in the force control mode as to the z-axis direction, and is performed in the hybrid impedance control mode as to the other directions. Accordingly, the correction operation type determining unit23issues a command to the control parameter managing unit21to operate in the high-rigidity position control mode as to the z-axis direction only, and to operate in the hybrid impedance control mode as to the other directions.

Next, as shown inFIG. 18C, when it is desired to change the inserting force to be greater (a greater force) by directly gripping the robot arm5by the person's hand16while the robot arm5is operating to perform the inserting task of the flexible circuit board74, a force is applied downward to the robot arm5by the person's hand16toward the task plane (e.g., the insert plane of the insert slot75of the device6). The high-rigidity position control mode is a mode with further higher rigidity than the position control mode being set for each direction under the hybrid impedance control mode when performing the assembly task. The high-rigidity position control mode can be achieved by increasing the gain in the positional error compensation unit56(specifically, about twice as great as that in the position control mode when the assembly task is performed). In the high-rigidity position control mode, when a force is applied to the robot arm5by the person's hand16, the robot arm5cannot easily be shifted, and the force detecting unit53can detect the force applied to the robot arm5by the person's hand16. The force detected by the force detecting unit53of the control unit22is reported to the operation correction unit20. The force reported to the operation correction unit20is stored by the operation storage unit15in the operation database17. This makes it possible to correct the operation to perform insertion more forcibly (with a greater force). When the person desires to finish correcting, the person stops applying the force to the robot arm5by gripping the robot arm5. In such a case where a force is not applied to the robot arm5by the person's hand16, every component of the force becomes equal to or less than the threshold value, in step S72inFIG. 14. Therefore, the correction operation type determining unit23determines “no correction” as the correction type (step S88inFIG. 14). Upon receipt of the “no correction” information at the operation correction unit20, the correction operation type determining unit23issues a command to the control parameter managing unit21to exert control in the hybrid impedance control mode, from the high-rigidity position control mode. Thus, the task is performed according to the operation database17after the correction is made.

According to the procedure described in the foregoing, in a state where the robot arm5is in operation in the hybrid impedance control mode, a force applied by the person's hand16allows the operation correction unit20to make a correction such that insertion is performed with the corrected force, with reference to the force information in the operation database17.

Next, as shown inFIG. 22B, when a speed of shift of the robot arm5is to be changed, the robot arm5is directly gripped by the person's hand16; and in a case where it is desired to accelerate, a force is applied to the robot arm5by the person's hand16in the direction identical to the traveling direction of the robot arm5for performing insertion; whereas in a case where it is desired to decelerate, a force is applied to the robot arm5by the person's hand16in the direction opposite to the traveling direction of the robot arm5for performing insertion. Here, the force is applied to the robot arm5by the person's hand16such that the speed of the hand position of the robot arm5may be changed, but the position should not be moved by an amount equal to or more than the certain threshold value.

The correction operation type determining unit23estimates and determines the correction type according to the correction type estimation process shown in the flowchart ofFIG. 14, based on the force applied to the robot arm5by the person's hand16and the information stored in the operation database17each acquired by the information acquiring unit100. Here, the force is applied to the robot arm5by the person's hand16in the direction parallel to the task plane (e.g., the insert plane of the insert slot75of the device6), but the robot arm5is not shifted by an amount equal to or more than the certain threshold value. Therefore, in step S85inFIG. 14, the correction operation type determining unit23determines the type “speed” in the direction parallel to the task plane (e.g., the insert plane of the insert slot75of the device6), as the correction type.

In the hybrid impedance control mode, while the robot arm5is being shifted in the position control mode, the force detecting unit53detects the force applied to the robot arm5by the person's hand16and the robot arm5is shifted as to the x-axis direction and the y-axis direction in the direction in which the force has been applied to the robot arm5by the person's hand16, in the impedance control mode. Assuming that the time period it takes for the robot arm5to shift, e.g., from the position (x1, y2, z1) identified by the task ID and the operation ID in the operation database17to the robot arm5's position (x2, y2, z2) identified by the next operation ID is t1, when the speed of the robot arm5is changed by a force of the person's hand16(seeFIG. 22B), that is, when the time period it takes to shift from the position (x1, y2, z1) to the position (x2, y2, z2) is changed from t1to t2, the value time period t2is transmitted to the operation correction unit20via the control unit22and the control parameter managing unit21. The operation correction unit20changes the time period t1to the time period t2for the operation information identified by the selected task ID, and transmits the same to the control parameter managing unit21. The control parameter managing unit21instructs the control unit22to operate with the t2which is the corrected time period. Thus, the corrected operation as shown inFIG. 22Cis achieved. Next, the operation storage unit15stores the time period t2in the operation database17.

According to the procedure described in the foregoing, in a state where the robot arm5is in operation in the force hybrid impedance control mode, a force applied to the robot arm5by the person's hand16allows the operation correction unit20to correct the operation speed of the robot arm5, with reference to the information pieces of the position and orientation and the time period in the operation database17.

A description will be given of, as shown inFIG. 23, an exemplary case in which the task undesired region RB is set to the assembly robot1through use of the robot arm5.

When the data input IF26(e.g., the power button26aof the console26A) disposed at the top portion of the assembly robot1is powered on by the person's hand16, the operation correction unit20issues a command to the control parameter managing unit21to operate in the impedance control mode. In a state where no task is selected by the operation selecting unit29, as shown inFIG. 23, the hand16of the person16A directly grips the robot arm5(e.g., the hand30) to shift the robot arm5in the direction parallel to the task plane (e.g., the top plane of the workbench7where the device6is placed), to thereby shift the robot arm5(e.g., the hand30) along the contour of the task undesired region RB.FIG. 25Ashows the task plane (e.g., the top plane of the workbench7where the device6is placed) as viewed from above. In a case where the task undesired region RB is the hatched region, the person's hand16shifts the robot arm5(e.g., the hand30) along the contour of the task undesired region RB, as indicated by arrows. Here, a mark63is applied to the center tip on the top plane of the hand of the robot arm5(the hand30) (seeFIGS. 25A and 25B), and the robot arm5is shifted having the mark63point in the direction where a task performance is undesired.

In a case where: the correction operation type determining unit23executes the correction type estimation process shown inFIG. 14and determines that it is not in operation in terms of the operation database17(steps S72, S73, and S76); and the force applied to the robot arm5by the person's hand16is parallel to the task plane (e.g., the top plane of the workbench7where the device6is placed) and the shift amount in the horizontal direction for a certain time period is equal to or more than the certain threshold value, in step S78, the type “task undesired region” is determined as the correction type.

In the impedance control mode, the force detecting unit53detects the force applied to the robot arm5by the person's hand16, and the robot arm5is shifted by the person's hand16as to the x-axis direction and the y-axis direction in the direction in which the force has been applied to the robot arm5. Thus, as shown inFIG. 25A, the robot arm5(e.g., the hand30) is shifted in order of the position (x1, y1), the position (x2, y2), the position (x3, y3), and the position (x4, y4). Here, these pieces of positional information are transmitted to the operation correction unit20via the control unit22and the control parameter managing unit21. Upon receipt of the command, the operation correction unit20allows the operation storage unit15to store the pieces of positional information as the information as to the task disapproved region RB in the task disapproved region database28. The four positions' being the information as to the apexes of the task disapproved region RB makes it possible to, for example, acquire hand positions of the robot arm5shifted by the person at certain intervals, to generate a region by connecting the coordinates of the acquired hand positions, and to regard it as the task disapproved region RB. Further, it is also possible to add a function for determining the shape to be taken by the region. For example, in a case where it is set as “rectangular”, when the shift direction is changed by an angle of approximately 90 degrees, the position is stored as the apex information. In a case where it is set as “random”, the hand positions of the robot arm5shifted by the person at certain intervals are acquired, to generate a region by connecting the coordinates of the acquire hand positions, and to regard it as the task disapproved region RB.

It is to be noted that, in the present example, it is desired to correct the operation of the robot arm5as to the x-axis direction and the y-axis direction only. Therefore, at the timing where the correction operation type determining unit23determines the correction type, the correction operation type determining unit23sets “1” for the 0th and 1st bits of the correction parameter flag shown inFIG. 6, and sets “0” for the other bits, and the correction operation type determining unit23issues a command to the control parameter managing unit21. Thus, it becomes possible to set so as to prevent the robot arm5from shifting in any axial directions other than the x-axis direction and the y-axis direction. Further, the correction operation type determining unit23changes the mechanical impedance set value in the impedance control mode and issues a command to the control parameter managing unit21. This makes it possible to reduce the rigidity of the x-axis direction and the y-axis direction, such that the robot arm5is easily moved by the person's hand16in the x-axis direction and the y-axis direction; and makes it possible to increase the rigidity of any axial directions other than the x-axis direction and the y-axis direction, such that the robot arm5is not easily moved by the person's hand16in any axial directions other than the x-axis direction and the y-axis direction.

According to the procedure described in the foregoing, a force applied by the person's hand16allows the operation correction unit20to set the task undesired region.

As shown inFIG. 9, the display unit14displays any item on its screen which is divided into two right and left windows14aand14b. On the left window14a, the assembly operation of the robot arm5described in the operation database17is displayed as videos, photographs, or text. Further, on the right window14b, the information as to the correction type estimated by the correction operation type determining unit23is displayed as videos, photographs, or text. In the present example shown inFIG. 9, when an operation of correcting the extent of force to be applied by applying a force to the robot arm5by the person's hand16perpendicularly to the task plane (e.g., the insert plane of the insert slot75of the device6) is performed, at the timing where the correction operation type determining unit23determines the type “force correction” as the correction type, the video in which the correction of the force is being made, and the magnitude of the force at present are displayed on the right window14b.

It is to be noted that, though the videos, the photographs, or the text is presented in the present example, voices or the like explaining the operation may be produced.

With reference to the flowchart ofFIG. 13, a description will be given of operation steps of the operation correction unit20, the correction operation type determining unit23, the operation selecting unit29, the operation storage unit15, the operation database17, and the control parameter managing unit21(that is, an assembly task and assembly operation setting process that is executed from when the assembly robot1starts driving until when an assembly task starts).

The assembly robot1is powered on via the data input IF26by the person's hand16(step S121).

Subsequently, the operation correction unit20issues a command to the control parameter managing unit21to control in the impedance control mode (step S122).

Next, the correction operation type determining unit23determines whether it is a correction of the task disapproved region RB (step S130). When the correction operation type determining unit23determines that it is the correction of the task disapproved region RB, the operation correction unit20makes the correction (step S133), and the operation storage unit15stores the correction information in the operation database17(step S134). Thereafter, the process proceeds to step S123.

On the other hand, when the correction operation type determining unit23determines that it is not the correction of the task disapproved region RB in step S130, or after step S134is executed, the process proceeds to step S123. In step S123, the operation selecting unit29allows the person to select one task from the assembly task list displayed on the display unit14via the data input IF26, and sets the selected present task in the progress information in the operation database17(step S123).

Subsequently, the operation correction unit20issues a command to the control parameter managing unit21to operate in the force hybrid impedance control mode; the robot arm5is guided by the person's hand16to the task plane of the device6or the like (e.g., the insert plane of the insert slot75of the device6); via the data input IF26(e.g., the start button of the switch26c), the mode is switched to the hybrid impedance control mode or the force hybrid impedance control mode; and task start is commanded (step S124).

Subsequently, when the person applies a force in the direction toward which a correction is desired, the correction operation type determining unit23estimates and determines the correction operation type (step S125).

Subsequently, in step S125, when the correction operation type determining unit23determines the correction type of the force applied to the task plane (e.g., the insert plane of the insert slot75of the device6) as the correction type, the operation correction unit20issues a command to the control parameter managing unit21to operate in the high-rigidity position control mode relative to the direction perpendicular to the task plane (e.g., the insert plane of the insert slot75of the device6) (steps S126and S127).

Subsequently, by the person's hand16gripping the robot arm5to apply the force to the robot arm5with the person's hand16in the direction in which the correction is desired, the operation correction unit20corrects the operation information (step S128).

On the other hand, in step S125, when a correction type other than type of the force applied to the task plane (e.g., the insert plane of the insert slot75of the device6) is determined as the correction type, the control mode is not changed from the force impedance control mode, and by the person's hand16applying the force to the robot arm5in the direction in which the correction is desired, the operation correction unit20corrects the operation information (steps S126and S128).

Subsequently, the operation storage unit15stores the operation information corrected in step S128in the operation database17. Then, the assembly task and assembly operation setting process sequence ends (step S129).

On the other hand, in step S125, when the correction operation type determining unit23determines “no correction” as the correction type, the assembly task and assembly operation setting process sequence ends (steps S126and S131).

After the assembly task and assembly operation setting process ends, based on the assembly task and the assembly operation being set, the assembly robot1performs the assembly task.

Through the foregoing operation steps S121and S122, S130, S123and S124, and S133to S134, the assembly task performed by the robot arm5is achieved by correcting, during an operation performed in the hybrid impedance control mode or the force hybrid impedance control, the assembly operation in the hybrid impedance control mode or the high rigidity position control.

Further, the correction operation type determining unit23makes it possible to automatically switch and correct a plurality of operations simply by application of a force to the robot arm5by the person's hand16, without the necessity of using buttons or the like.

Still further, provision of the control parameter managing unit21and the control unit22makes it possible to set the mechanical impedance value of the robot arm5as appropriate in accordance with the correction operation type, so as to change the mechanical impedance value and exerting the control in accordance with the direction of the robot arm5to be corrected, and to weaken or stop the force applied while the correction is made. Therefore, it becomes possible to prevent the device6from being damaged during a correction being made to an operation.

Further, in the first embodiment, the correction operation type determining unit23estimates the correction type based on the force applied to the robot arm5by the person's hand16and the information in the operation database17each acquired by the information acquiring unit100, and immediately thereafter the operation correction unit20makes a correction of the operation. However, for the purpose of preventing the person from accidentally applying a force to the robot arm5with the hand16, which otherwise causes an unintended correction type to be selected, the correction may be started after a lapse of a certain time period after the estimation by the correction operation type determining unit23is made. In this case, until the correction is started, the person can manipulate as many times as desired until the intended correction type is selected.

Still further, in the first embodiment, each of or any arbitrary part of the operation selecting unit29, the operation storage unit15, the operation correction unit20, the correction operation type determining unit23, the control parameter managing unit21, and the control unit22can be structured as software. Hence, for example, each of the steps can be executed by readably storing, as a computer program including the steps structuring the control operation of the first embodiment or the following embodiment described in the present specification, in a recording medium such as a storage device (hard disk or the like), and have the computer program installed in the temporary storage device (a semiconductor memory or the like) of a computer, and have it executed through use of a CPU.

Second Embodiment

An assembly robot1including a control apparatus for a robot arm according to a second embodiment of the present invention is similar to the first embodiment as to the basic structure of the control apparatus for the robot arm. Therefore, the description as to the common constituents is not repeated herein, and the difference from the first embodiment solely will be detailed in the following.

In the second embodiment, as in the first embodiment, the description will be given of an exemplary case in which, as shown inFIG. 1, a flexible circuit board74is installed in a flexible circuit board insert slot75of a device6such as a television set, or a DVD recorder, in a factory employing cellular manufacturing.

The structure of the assembly robot1is shown inFIG. 27.

The robot arm5other than the control apparatus body unit45, the peripheral apparatus47, the task load region database28, the operation storage unit15, the operation selecting unit29, and a target object force detecting unit78functioning as one example of target object force detecting means (as shown inFIG. 27, it is structured with a target object force detecting mechanism76and a target object force information output unit77. However, for ease of understanding, the target object force detecting mechanism76is shown to be located near the target object force information output unit77by a phantom line, although it is different from its actual disposition position corresponding to the position of the hand30.) is the same as that according to the first embodiment and, therefore, the description thereof is not repeated.

The target object force detecting mechanism76is structured with, for example, a mechanism of six-axis force sensor, and is disposed near the hand30of the robot arm5. The target object force detecting mechanism76is a mechanism that detects a force applied to the flexible circuit board74as shown inFIG. 28Cwhen the robot arm5inserts the flexible circuit board74into the insert slot75as shown inFIG. 28A, and when a person teaches the robot arm5to insert the flexible circuit board74into the insert slot75by manipulating the robot arm5by gripping the robot arm5with the person's hand16as shown inFIG. 285. The target object force information output unit77outputs six-axis force values detected by the target object force detecting mechanism76to each of the operation correction unit20, the correction operation type determining unit23, and the information acquiring unit100. The information acquiring unit100is capable of acquiring information as to the operation of the robot arm5including the position of the robot arm5in the assembly task, information as to a person's force acting on the robot arm5detected by the force detecting unit53, and information as to a force applied to the flexible circuit board74detected by the target object force detecting unit78(which is detected by the target object force detecting mechanism76and output from the target object force information output unit77). The information acquired by the information acquiring unit100is input to the correction operation type determining unit23. Based on the information as to the operation and the information as to the person's force each acquired by the information acquiring unit100, the correction operation type determining unit23can determine the correction operation type for correcting the operation of the robot arm5.

In the first embodiment, the force detecting unit53detects both the force applied by the person, and the force acting on the flexible circuit board74, which is one example of a target object. On the other hand, in the second embodiment, the force acting on the flexible circuit board74being one example of a target object is detected by the target object force detecting mechanism76, and the force applied by the person is detected by the force detecting unit53.

FIG. 29shows one example of the operation database17. All the items are identical to those in the first embodiment.

The task of the task ID “4” will be detailed.FIG. 31is a graph indicating the force applied to the flexible circuit board74in time sequence.

The task ID “4” represents an inserting task performed by the robot arm5to insert the flexible circuit board74into the insert slot75. Specifically, it is shown inFIGS. 30A to 30F(FIGS. 30G to 30Nare each an enlarged view around the insert slot75).

First, operation IDs “1” to “7” of the task ID “4” each represent an operation in which, as shown inFIG. 30A, the robot arm5gripping the flexible circuit board74with the hand30is shifting toward the insert slot75(the value of the force applied to the flexible circuit board74detected by the target object force detecting mechanism76is in a state of “31a” inFIG. 31).

Next, an operation ID “8” of the task ID “4” represents an operation at a time point, as shown inFIGS. 30B and 30G(FIG. 30Gis an enlarged view of the inserted portion of the insert slot75), where a connector portion74gof the flexible circuit board74is brought into contact with the insert slot75(the value of the force applied to the flexible circuit board74detected by the target object force detecting mechanism76is in a state of “31b” inFIG. 31).

Next, an operation ID “9” of the task ID “4” represents an operation in which, as shown inFIGS. 30C and 30H(FIG. 30His an enlarged view of the inserted portion of the insert slot75), the robot arm5is shifting toward a tip portion75hof the insert slot75until a tip portion74hof the connector portion74gof the flexible circuit board74is brought into contact therewith. It is to be noted that, it represents a state where the connector portion74gof the flexible circuit board74is not stuck into the insert slot75(in a state where the tip portion of the connector portion74gof the flexible circuit board74is not entering the insert slot75even in a slightest amount) (the value of the force applied to the flexible circuit board74detected by the target object force detecting mechanism76is in a state of “31c” inFIG. 31).

Next, an operation ID “10” of the task ID “4” represents an operation in which, as shown by the operation inFIGS. 30D,30I, and30L (FIGS. 30I and 30Lare each an enlarged view of the inserted portion of the insert slot75), the tip portion75hof the insert slot75and the tip portion74hof the flexible circuit board74are brought into contact with each other (the value of the force applied to the flexible circuit board74detected by the target object force detecting mechanism76is in a state of “31d” inFIG. 31).

Next, operation IDs “11” and “12” of the task ID “4” each represent an operation in which, as shown inFIGS. 30E,30J, and30M (FIGS. 30J and 30Mare each an enlarged view of the inserted portion of the insert slot75), the tip portion74hof the flexible circuit board74is stuck into a recess75iof the insert slot75, and the tip portion74his in the course of being further inserted into the recess75i(the value of the force applied to the flexible circuit board74detected by the target object force detecting mechanism76is in a state of “31e” inFIG. 31).

Next, operation IDs “13” and “14” of the task ID “4” each represent a state in which, as shown inFIGS. 37F,30K, and30N (FIGS. 30K and 30Nare each an enlarged view of the inserted portion of the insert slot75), insertion of the flexible circuit board74into the insert slot75has been completed (a state where the tip portion74hhas completely been inserted into the recess75i) (the value of the force applied to the flexible circuit board74detected by the target object force detecting mechanism76is in a state of “31f” inFIG. 31).

Similarly to the first embodiment, the correction operation type determining unit23determines the correction type that can be exerted, so as to allow the operation correction unit20to correct an operation, based on a force applied by the person's hand16to the robot arm5. There are four correction types as follows.

The first correction type is “position and orientation correction”. Specifically, when the position or orientation of the insert slot75shown inFIG. 33Ais changed as an insert slot75jshown inFIG. 38Bdue to model change of the device6, the flexible circuit board74is caught by the insert slot75jand cannot be inserted, as shown inFIG. 333. In such a case, as shown inFIG. 33B, while the robot arm5is performing an inserting task of the flexible circuit board74into the insert slot75j, when a force is applied by the person's hand16so as to change the position or orientation of the robot arm5, the operation correction unit20can change the position and orientation of the robot arm5as shown inFIG. 33C, and can change the traveling direction of the robot arm5so as to agree with the insert slot75j. This can be achieved by changing the orientation (x, y, z, φ, θ, ψ) of the hand of the robot arm5.

The second correction type is the “speed” of the hand of the robot arm5. Similarly to the first embodiment, while the robot arm5gripping the flexible circuit board74is shifting toward the insert slot75of the device6as shown inFIG. 22A, when a force is applied in the direction opposite to the traveling direction of the robot arm5to the robot arm5with the person's hand16as shown inFIG. 22C, the operation correction unit20can decelerate the speed of the robot arm5when the robot arm5shifts, as shown inFIG. 22C. Conversely, when a force is applied to the robot arm5in the traveling direction of the robot arm5with the person's hand16while the robot arm5is shifting, the operation correction unit20can accelerate the speed of the robot arm5when the robot arm5shifts.

The third correction type is “force applied extent” when the flexible circuit board74is inserted. This is valid when the force bit is “1” in the flag (the flag indicative of validity) of the operation presently in operation (the progress information in the operation database17is “1”). Similarly to the first embodiment, while the robot arm5is performing an inserting task of the flexible circuit board74into the insert slot75bas shown inFIG. 18B, when a force is applied downward from above to the robot arm5with the person's hand16as shown inFIG. 18C, the operation correction unit20can correct the extent of applied force to be greater, as shown inFIG. 18D; conversely, when a force is applied upward from below to the robot arm5with the person's hand16, the operation correction unit20can correct the extent of applied force to be smaller.

The fourth correction type is “task undesired region”. Similarly to the first embodiment, when the robot arm5(e.g., the hand30) is gripped by the hand16of the person16A as shown inFIG. 23, and the robot arm5(e.g., hand30) is shifted with a force being applied to the robot arm5along the contour of a task undesired region RB, the operation correction unit20can set the task undesired region RB as shown inFIG. 23.

The correction operation type determining unit23determines one correction type out of the four correction types. Specifically, one correction type is selected out of the four correction types via the data input IF26such as a button, or the correction operation type determining unit23estimates the type, based on the relationship information between the force applied to the robot arm5by the person's hand16detected by the force detecting unit53and acquired by the information acquiring unit100and the correction type (e.g., the relationship information among the direction of the force being applied, the magnitude of the force being applied, and the correction type), and the force applied to a target object such as the flexible circuit board74detected by the target object force detecting mechanism76and acquired by the information acquiring unit100via the target object force information output unit77.

In the following, with reference to the flowchart ofFIG. 32, a detailed description will be given of a specific correction type estimation process of the correction type estimation method.

In a state where the power button26aof the assembly robot1turned “ON”, in a case where no force is applied to the robot arm5by being gripped by the person's hand16, the robot arm5does not move. When a force is applied to the robot arm5by the person's hand16, the robot arm5can be shifted in any desired direction in the impedance control mode (the mode in which the robot arm5is shifted in the direction in which the force of the person's hand16is detected under the impedance control). In this case, the force detecting unit53of the control unit22detects the force acting on the robot arm5, and the information as to the force detected by the force detecting unit53is input to the correction operation type determining unit23via the information acquiring unit100(step S1).

Subsequently, in step S2, the correction operation type determining unit23determines whether or not all the components (the six components of fx, fy, fz, fφ, fθ, fψ) of the force detected by the force detecting unit53and acquired by the information acquiring unit100are equal to or less than certain threshold values. Specific threshold values are previously stored as inFIG. 17based on the rigidity of the flexible circuit board74: when the ID of the flexible circuit board74(the flexible circuit board ID) is “1”, the threshold values are (fdx1, fdy1, fdz1, fdφ1, fdθ1, fdψ1) of the ID “1” inFIG. 17. When the correction operation type determining unit23determines that all the components (the six components of fx, fy, fz, fφ, fθ, fψ) of the force detected by the force detecting unit53and acquired by the information acquiring unit100are equal to or less than the threshold values, the robot arm5does not move, and no correction is made (step S3), and the correction type estimation process of the corrected operation type estimation method ends. The control mode in this case is the impedance control mode.

In step S2, when the correction operation type determining unit23determines that any component of the force detected by the force detecting unit53and acquired by the information acquiring unit100(any component out of the six components of fx, fy, fz, fφ, fθ, fψ) exceeds the certain threshold values (specifically, in a case where the flexible circuit board ID is “1”, (fdx1, fdy1, fdz1, fdφ1, fdθ1, fdψ1) of the ID “1” inFIG. 17), the process proceeds to step S4.

In step S4, the correction operation type determining unit23further determines whether the assembly robot1at present is in operation in terms of the operation database17, based on the information acquired via the information acquiring unit100. Specifically, when the correction operation type determining unit23determines that no task is selected by the operation selecting unit29, and that the progress information is “0” for every task ID in the operation database17(a state where no task is started), the correction operation type determining unit23determines that it is not in operation in terms of the operation database17, and the process proceeds to step S6. When the correction operation type determining unit23determines that the operation selecting unit29has selected and started the assembly task, and that the progress information is “1”, the correction operation type determining unit23determines that it is in operation in terms of the operation database17, and the process proceeds to step S5.

In step S5, the target object force detecting unit76detects a force applied to the flexible circuit board74as one example of a target object, and information as to the force applied to the target object detected by the target object force detecting unit76is input to the correction operation type determining unit23via the information acquiring unit100.

In step S9, the correction operation type determining unit23determines whether or not the force (ftx, fty, ftz, ftφ, ftθ, ftψ) applied to the flexible circuit board74and detected by the target object force detecting unit76is continuously equal to or more than a certain “threshold value 1” (specifically, when the flexible circuit board ID is “1”, (ftdox1, ftdoy1, ftdoz1, ftdoφ1, ftdoθ1, ftdoψ1) of the ID “3” inFIG. 17, and “threshold value 1” inFIG. 31) for a certain time period (e.g., 1 sec). When the correction operation type determining unit23determines that the force (ftx, fty, ftz, ftφ, ftθ, ftψ) applied to the target object detected by the target object force detecting unit76is less than the certain “threshold value 1” (i.e., in a case where it corresponds to (31a) being the case it is less than “threshold value 1” inFIG. 31), the process proceeds to step S11(however, it must be equal to or more than the force determined in step S2). In step S9, when the force (ftx, fty, ftz, ftφ, ftθ, ftψ) applied to the target object detected by the target object force detecting unit76is equal to or more than the certain “threshold value 1” (i.e., in a case where it corresponds to (31c) inFIG. 31), the process proceeds to step S10. The reason for determining whether the force is continuously equal to or more than a certain threshold value (“threshold value 1”) for a certain time period (e.g., 1 sec) in step S9is to determine whether or not the force is intendedly applied by the person. The detection of a force being equal to or more than the threshold value for just a moment is considered a noise. It is considered that, when a force is applied by the person intendedly, the force cannot last just for a moment, but it should last for approximately one second or more. Thus, whether or not a force is applied by the person intendedly is determined.

In step S11, when the correction operation type determining unit23determines that the shift amount of the robot arm5calculated by the correction operation type determining unit23is equal to or more than a certain threshold value (specifically, when the flexible circuit board ID is “1”, gx1, gy1, gz1, gφ1, gθ1, gψ1of ID “2” inFIG. 17), the correction operation type determining unit23determines the type “position and orientation correction” as the correction type, and the correction type estimation process ends (step S14). It is to be noted that, when the correction operation type determining unit23calculates the shift amount of the robot arm5, it can specifically be obtained as follows: the control unit22inputs, via the control parameter managing unit21or the information acquiring unit100, the hand position of the robot arm5before manipulation by the person and the hand position during manipulation to the correction operation type determining unit23, so that the correction operation type determining unit23can subtract the hand position before manipulation from the hand position during manipulation, to obtain the result as the shift amount.

On the other hand, in step S11, when the correction operation type determining unit23determines that the shift amount of the robot arm5is less than the certain threshold value, the type “speed” is determined as the correction type, and the correction type estimation process ends (step S15).

In step S10, the target object force detecting unit76detects the force applied to the flexible circuit board74, and the correction operation type determining unit23determines whether or not the force (ftx, fty, ftz, ftφ, ftθ, ftψ) applied to the target object, having been detected by the target object force detecting unit76and acquired by the information acquiring unit100via the target object force information output unit77is continuously equal to more than a certain “threshold value 2” (specifically, when the flexible circuit board ID is “1”, (ftdox21, ftdoy21, ftdoz21, ftdoφ21, ftdoθ21, ftdoψ21) of the ID “4” inFIG. 17, and “threshold value 2” inFIG. 31) for a certain time period (e.g., 1 sec). When the correction operation type determining unit23determines that the force (ftx, fty, ftz, ftφ, ftθ, fψ) applied to the target object detected by the target object force detecting unit76is less than the certain “threshold value 2” (i.e., in a case where it corresponds to (31c) of the case being less than the threshold value 2 inFIG. 31), the process proceeds to step S16. When the correction operation type determining unit23determines that the force (ftx, fty, ftz, ftφ, ftθ, ftψ) applied to the target object detected by the target object force detecting unit76is equal to or more than the certain “threshold value 2” (i.e., in a case where it corresponds to (31d) inFIG. 31), the type “force correction” is determined as the correction type, and the correction type estimation process ends (step S12). The reason for determining whether the force is continuously equal to or more than a certain threshold value (“threshold value 2”) for a certain time period (e.g., 1 sec) in step S10is to determine whether or not the force is intendedly applied by the person. The detection of a force being equal to or more than the threshold value for just a moment is considered a noise. It is considered that, when a force is applied by the person intendedly, the force cannot last just for a moment, but it should last for approximately one second or more. Thus, whether or not a force is applied by the person intendedly is determined.

In step S16, when the correction operation type determining unit23determines that the shift amount of the position of the hand of the robot arm5calculated by the correction operation type determining unit23is equal to or more than a certain threshold value (specifically, when the flexible circuit board ID is “1”, gx1, gy1, gz1, gφ1, gθ1, gψ1of ID “2” inFIG. 17), the correction operation type determining unit23determines the type “position and orientation correction” as the correction type, and the correction type estimation process ends (step S18).

In step S16, when the correction operation type determining unit23determines that the shift amount of the robot arm5is less than the certain threshold value, the type “force correction” is determined as the correction type, and the correction type estimation process ends (step S17).

On the other hand, in step S4, when the correction operation type determining unit23determines that it is not in operation in terms of the operation database17, the process proceeds to step S6. In step36, the correction operation type determining unit23determines whether or not a shift amount of the robot arm5for a certain time period is equal to or more than a certain threshold value.

In step S6, when the correction operation type determining unit23determines that the shift amount of the robot arm5for a certain time period is equal to or more than the certain threshold value, the type “task undesired region” is determined as the correction type (step S8), and the correction type estimation process ends.

In step S6, when the correction operation type determining unit23determines that the shift amount of the robot arm5for a certain time period is less than the certain threshold value, “no correction” is determined as the correction type, and the correction type estimation process ends (step S7).

According to the procedure described in the foregoing, the correction operation type determining unit23can switch the correction type without the necessity of using the data input IF26such as a button.

Similarly to the first embodiment, the operation correction unit20is a function of correcting the operation information in the operation database17by applying a force to the robot arm5with the person's hand16, while in operation based on the position and orientation and time in the operation database17.

In the following, a description will be given of the function of the operation correction unit20.

When the data input IF26(e.g., the power button26aof the console26A) disposed at the workbench7of the assembly robot1is powered on by the person's hand16, the operation correction unit20issues a command to the control parameter managing unit21to operate in the impedance control mode.

Next, a desired assembly task is selected from the task list in the operation database17by the operation selecting unit29through use of the person's hand16, and start of an assembly operation is instructed. The operation correction unit20sets the control mode of the rail movable portion8band the robot arm5, based on the operation information (specifically, the position of the rail movable portion8band the position and orientation and time period of the robot arm5) identified by the selected task ID from the operation database17. In the present example, because the task ID “4” shown inFIG. 29is selected, the operation correction unit20sets the hybrid impedance control mode (the mode in which, while in operation in the position control mode, the robot arm5actuates in accordance with a force applied from the person or the like to the robot arm5) to each of the position and orientation of the robot arm5having the flag whose bit represents “1”, of the flag (the flag indicative of validity) corresponding to the operation ID “1” in the operation database17, and issues a command to the control parameter managing unit21. When the operation correction unit20issues the command to the control parameter managing unit21, as shown inFIG. 30A, the robot arm5gripping the flexible circuit board75with the hand30shifts toward the insert slot75. Commands are successively issued to the control parameter managing unit21based on the operation information pieces following the operation ID “1”. The operation IDs “9” to “12” each cause a command to be issued to the control parameter managing unit21, commanding to operate in the force hybrid impedance control mode.

In a case of the force hybrid impedance control mode, the operation correction unit20sets the hybrid impedance control mode (the mode in which, while in operation in the position control mode, the robot arm5actuates in accordance with a force applied from the person or the like to the robot arm5) to each of the position and orientation of the robot arm5having the flag whose bit represents “1”, and sets the force control mode to any component having the force flag whose bit represents “1” (the flag indicative of validity), of the flag (the flag indicative of validity) corresponding to the operation ID in the operation database17. The operation correction unit20sets the impedance control mode to those components to which none of the hybrid impedance control mode and the force control mode is set out of the six components of position and orientation.

For example, the operation ID “9” of the task ID “4” inFIG. 29represents an operation in which, as shown inFIGS. 33A,30C, and30H (FIG. 30His an enlarged view of the inserted portion), the tip portion74hof the flexible circuit board74is shifting toward the tip portion75hof the insert slot75until being brought into contact therewith. The flag corresponding to the operation ID is “9” is “1” for only the 0th, 1st, 3rd, 4th, 5th, and 8th bits. Therefore, the operation correction unit20sets the hybrid impedance control mode to the x-axis, y-axis and orientation components, and sets the force control mode to the z-axis component.

Next, with the operation IDs “10” to “12” of the task ID “4”, the operation is performed in the similar operation modes as with the operation ID “9”.

Next, with the operation IDs “13” and “14” of the task ID “4”, the operation is performed in the similar operation modes as with the operation ID “1”.

Next, a description will be given of an exemplary case in which, in accordance with a specification change in the flexible circuit board74or the insert slot75due to model change or the like, the person checks the situation or the like and desires to shift the position of the robot arm5or the orientation of the robot arm5, to have it perform a task, as shown inFIG. 33B.

As shown inFIG. 33A, while an operation corresponding to the operation IDs “1” to “8” of the task ID “4” is being performed, the robot arm5is directly gripped by the person's hand16, and a force is applied to the robot arm5so as to shift relative to the task plane (e.g., the insert plane of the insert slot75of the device6).

The correction operation type determining unit23estimates and determines the correction type according to the correction type estimation process shown in the flowchart ofFIG. 32, based on the force applied to the robot arm5by the person's hand16and the information stored in the operation database17acquired by the information acquiring unit100. Here, the force is applied to the robot arm5by the person's hand16, in a state not being brought into contact with the flexible circuit board74(in a state where the force detected by the target object force detecting unit76is equal to or less than the threshold value), to shift the robot arm5by an amount equal to or more than the certain threshold value. Therefore, in step S14, the correction operation type determining unit23determines the type “position and orientation correction” as the correction type.

In a case where the task is the one whose task ID is “4” and the operation ID is “1” inFIG. 29, while the robot arm5is being shifted in the position control mode, all the components of the position orientation are controlled in the hybrid impedance control mode, so that the force detecting unit53detects the force applied to the robot arm5by the person's hand16in the impedance control mode, whereby the robot arm5is shifted in the direction in which the force has been applied to the robot arm5by the person's hand16, which has been acquired by the information acquiring unit100. Thus, the position and orientation can be corrected as shown inFIG. 33C.

As described above, in a case where the robot arm5is gripped by the person's hand16and applied with a force such that the robot arm5shifts by (Δx, Δy, Δz, Δφ, Δθ, Δψ), the values (Δx, Δy, Δz, Δφ, Δθ, Δψ) are transmitted to the operation correction unit20via the control unit22and the control parameter managing unit21.

The operation correction unit20obtains corrected operation information by subtracting (Δx, Δy, Δz, Δφ, Δθ, Δψ) from all the position and orientation components of the operation information of the selected task ID, and transmits the result to the control parameter managing unit21. The control parameter managing unit21instructs the control unit22to cause the robot arm5to operate at the coordinates corrected by (Δx, Δy, Δz, Δφ, Δθ, Δψ). Thus, the corrected operation as shown inFIG. 33Bcan be achieved. Next, the operation storage unit15stores the operation information subtracted by (Δx, Δy, Δz, Δφ, Δθ, Δψ) in the operation database17.

According to the procedure described in the foregoing, in a state where the robot arm5is in operation in the hybrid impedance control mode or the force hybrid impedance control mode, a force by applied to the robot arm5by the person's hand16allows the operation correction unit20to correct the generated position for each direction, with reference to the position and orientation and time in the operation database17.

As shown inFIGS. 34A and 34D(FIG. 34Dis an enlarged view of the inserted portion of the insert slot75shown inFIG. 34A), in a case where an insertion is performed obliquely while an operation whose the operation ID “9” is being performed, as shown inFIG. 34B, the robot arm5is directly gripped by the person's hand16, and a force is applied to the robot arm5so as to shift relative to the task plane (e.g., the insert plane of the insert slot75of the device6).

The correction operation type determining unit23estimates and determines the correction type according to the correction type estimation process shown in the flowchart ofFIG. 32, based on the force applied to the robot arm5by the person's hand16and the information stored in the operation database17each acquired by the information acquiring unit100. Here, in a state where a force being equal to or more than the “threshold value 2” is applied to the flexible circuit board74(step S10), the robot arm5is shifted by an amount equal to or more than the certain threshold value by applying a force to the robot arm5with the person's hand16(step S16). Therefore, in step S17, the correction operation type determining unit23determines the type “position and orientation correction” as the correction type.

In a case where the task is the one whose task ID is “4” and the operation ID is “9” inFIG. 29, while the robot arm5is being shifted in the position control mode, the components of the position orientation except for the z-axis component are controlled in the hybrid impedance control mode, so that the force detecting unit53detects the force applied to the robot arm5by the person's hand16in the impedance control mode, whereby the robot arm5is shifted in the direction in which the force has been applied to the robot arm5by the person's hand16. Thus, the position and orientation can be corrected as shown inFIG. 34C.

Next, as shown inFIG. 22B, when the speed is to be changed, the robot arm5is directly gripped by the person's hand16; and in a case where it is desired to accelerate, a force is applied to the robot arm5by the person's hand16in the direction identical to the traveling direction of the robot arm5; whereas in a case where it is desired to decelerate, a force is applied to the robot arm5by the person's hand16in the direction opposite to the traveling direction of the robot arm b. Here, the force is applied to the robot arm5by the person's hand16such that the speed of the hand position of the robot arm5may be changed, but the position should not be moved by an amount equal to or more than a certain threshold value.

The correction operation type determining unit23estimates and determines the correction type according to the correction type estimation process shown in the flowchart ofFIG. 32, based on the force applied to the robot arm5by the person's hand16, the information in the operation database17, and the force applied to the target object, each acquired by the information acquiring unit100. Here, the force is applied to the robot arm5by the person's hand16, but the robot arm5is not shifted by an amount equal to or more than a certain threshold value. Therefore, in step S15inFIG. 32, the correction operation type determining unit23determines the type “speed” as the correction type.

In the hybrid impedance control mode, while the robot arm5is being shifted in the position control mode, the force detecting unit53detects the force applied to the robot arm5by the person's hand16and the robot arm5is shifted in the direction in which the force has been applied to the robot arm5by the person's hand16, in the impedance control mode. Assuming that the time period it takes for the robot arm5to shift, e.g., from the position (x1, y2, z1) identified by the task ID and the operation ID in the operation database17to the robot arm5's position (x2, y2, z2) identified by the next operation ID is t1, when the speed of the robot arm5is changed by a force of the person's hand16(seeFIG. 22B), that is, when the time period it takes to shift from the position (x1, y2, z1) to the position (x2, y2, z2) is changed from t1to t2, the value time period t2is transmitted to the operation correction unit20via the control unit22and the control parameter managing unit21. The operation correction unit20changes the time period t1to the time period t2for the operation information identified by the selected task ID, and transmits the same to the control parameter managing unit21. The control parameter managing unit21instructs the control unit22to operate with the t2which is the corrected time period. Thus, the corrected operation as shown inFIG. 22Cis achieved. Next, the operation storage unit15stores the time period t2in the operation database17.

According to the procedure described in the foregoing, in a state where the robot arm5is in operation in the hybrid impedance control mode, a force applied to the robot arm5by the person's hand16allows the operation correction unit20to correct the operation speed of the robot arm5, with reference to the information pieces of the position and orientation and the time period in the operation database17.

Next, a description will be given of, as shown inFIG. 35B, a case in which a force to the task plane (e.g., the insert plane of the insert slot75of the device6) in performing a task is to be changed; the robot arm5is directly gripped by the person's hand16; and a force is applied to the robot arm5in the direction perpendicular to the task plane (e.g., the insert plane of the insert slot75of the device6). This operation is shown inFIGS. 35A to 35F(FIGS. 35D to 35Fare enlarged views showing around the insert slot75). However, as to the operation similar to that shown inFIGS. 30A to 30F(FIGS. 30G to 30Nare enlarged views showing around the insert slot75) which show the previously described inserting task of the robot arm5inserting the flexible circuit board74into the insert slot75, the description thereof will not be repeated.

The correction operation type determining unit23estimates and determines the correction type according to the correction type estimation process shown in the flowchart ofFIG. 32, based on the force applied to the robot arm5by the person's hand16, the information stored in the operation database17, and the force applied to the target object, each acquired by the information acquiring unit100. Here, the flexible circuit board74is brought into contact with the insert slot75, the force of which being equal to or less than the “threshold value 2”; and a force is applied to the robot arm5by the person's hand16, but the robot arm5is not shifted by an amount equal to or more than the certain threshold value. Therefore, in step S18, the correction operation type deter mining unit23determines the type “force correction” as the correction type.

At the timing where the correction operation type determining unit23determines the correction type to be the “force correction”, the correction operation type determining unit23issues a command to the control parameter managing unit21to operate in the high-rigidity position control mode, from the force hybrid impedance control mode. In issuing the command from the correction operation type determining unit23to the control parameter managing unit21, the correction operation type determining unit23in the high-rigidity position control mode can set high rigidity for each direction when controlling the positions. Therefore, for example, as to the flag of the operation whose task ID is “4” and the operation ID is “9” in the operation database17inFIG. 4, “1” is set for the 0th, 1st, 3rd, 4th, 5th and 8th bits. Therefore, the operation is performed in the force control mode as to the z-axis direction, and is performed in the hybrid impedance control mode as to the other directions. Accordingly, the correction operation type determining unit23issues a command to the control parameter managing unit21to operate in the high-rigidity position control mode as to the z-axis direction only, and to operate in the hybrid impedance control mode as to the other directions.

Next, as shown inFIG. 35B, when it is desired to change the inserting force to be greater (a greater force) by directly gripping the robot arm5by the person's hand16while the robot arm5is operating to perform the inserting task of the flexible circuit board74, a force is applied downward to the robot arm5by the person's hand16toward the task plane (e.g., the insert plane of the insert slot75of the device6). The high-rigidity position control mode is a mode with further higher rigidity than the position control mode being set for each direction under the hybrid impedance control mode. The high-rigidity position control mode can be achieved by increasing the gain in the positional error compensation unit56(specifically, about twice as great as that in the normal position control mode). In the high-rigidity position control mode, when a force is applied to the robot arm5by the person's hand16, the robot arm5cannot easily be shifted, and the force detecting unit53can detect the force applied to the robot arm5by the person's hand16. The force detected by the force detecting unit53of the control unit22is reported to the operation correction unit20. The force reported to the operation correction unit20is stored by the operation storage unit15in the operation database17. This makes it possible to correct the operation to perform insertion more forcibly (with a greater force). When the person desires to finish correcting, the person stops applying the force to the robot arm5by gripping the robot arm5. In such a case where a force is not applied to the robot arm5by the person's hand16, every component of the force becomes equal to or less than a threshold value, in step S2inFIG. 32. Therefore, the correction operation type determining unit23determines “no correction” as the correction type (step S3inFIG. 32). Upon receipt of the “no correction” information at the operation correction unit20, the correction operation type determining unit23issues a command to the control parameter managing unit21to exert control in the hybrid impedance control mode, from the high-rigidity position control mode. Thus, the task is performed according to the operation database17after the correction is made.

According to the procedure described in the foregoing, in a state where the robot arm5is in operation in the hybrid impedance control mode, a force applied by the person's hand16allows the operation correction unit20to make a correction such that insertion task is performed with the corrected force, with reference to the force information in the operation database17.

It is to be noted that, in the present example, the force control mode is switched to the high-rigidity position control mode for acquiring the force correction value. However, being different from the first embodiment, because the force detecting unit53detecting a force applied by the person and the target object force detecting unit76detecting a force applied to the target object are separately arranged, the force detecting unit53can detect a force applied by the person with the unchanged control mode, i.e., the force control mode. Further, in a case where the control is switched to the position control mode, the force detecting unit53is capable of performing detection also in the normal position control mode, without the necessity of changing the rigidity.

Next, a description will be given of, as shown inFIG. 36B, a case in which a force to the task plane (e.g., the insert plane of the insert slot75of the device6) in performing a task is to be changed, while an operation whose the task ID is “4”, “11”, or “12” is being performed; the robot arm5is directly gripped by the person's hand16; and a force is applied to the robot arm5in the direction perpendicular to the task plane (e.g., the insert plane of the insert slot75of the device6). This operation is shown inFIGS. 36A to 36I(FIGS. 36D to 36Fare enlarged views showing around the insert slot75, andFIGS. 36G to 36Iare enlarged views of the encircled portions inFIGS. 36D to 36F). However, as to the operation similar to that shown inFIGS. 30A to 30F(FIGS. 30G to 30Nare enlarged views showing around the insert slot75) which show the previously described inserting task of the robot arm5inserting the flexible circuit board74into the insert slot75, the description thereof will not be repeated.

The correction operation type determining unit23estimates and determines the correction type according to the correction type estimation process shown in the flowchart inFIG. 32, based on the force applied to the robot arm5by the person's hand16, the information stored in the operation database17, and the force applied to the flexible circuit board74being one example of the target object, each acquired by the information acquiring unit100. Here, the flexible circuit board74is brought into contact with the insert slot75, the force of which being equal to or greater than the “threshold value 2”; and a force is applied to the robot arm5by the person's hand16. Therefore, in step S12, the correction operation type determining unit23determines the type “force correction” as the correction type. Here, only the “force correction” is selectable irrespective of the shift amount of the robot arm. This prevents the robot arm from shifting while the tip portion74hof the flexible circuit board74is being inserted as shown inFIG. 36E, which may otherwise cause damage to the tip portion74hof the flexible circuit board74.

At the timing where the correction operation type determining unit23determines the correction type to be the “force correction”, the correction operation type determining unit23issues a command to the control parameter managing unit21to operate in the high-rigidity position control mode, from the force hybrid impedance control mode. In issuing the command from the correction operation type determining unit23to the control parameter managing unit21, the correction operation type determining unit23in the high-rigidity position control mode can set high rigidity for each direction when controlling the positions. Therefore, for example, as to the flag of the operation whose task ID is “4” and the operation ID is “9” in the operation database17inFIG. 4, “1” is set for the 0th, 1st, 3rd, 4th, 5th and 8th bits. Therefore, the operation is performed in the force control mode as to the z-axis direction, and is performed in the hybrid impedance control mode as to the other directions. Accordingly, the correction operation type determining unit23issues a command to the control parameter managing unit21to operate in the high-rigidity position control mode as to the z-axis direction only, and to operate in the hybrid impedance control mode as to the other directions.

Next, as shown inFIG. 35B, when it is desired to change the inserting force to be greater (a greater force) by directly gripping the robot arm5by the person's hand16while the robot arm5is operating to perform the inserting task of the flexible circuit board74, a force is applied downward to the robot arm5by the person's hand16toward the task plane (e.g., the insert plane of the insert slot75of the device6). The high-rigidity position control mode is a mode with further higher rigidity than the position control mode being set for each direction under the hybrid impedance control mode. The high-rigidity position control mode can be achieved by increasing the gain in the positional error compensation unit56(specifically, about twice as great as that in the normal position control mode). In the high-rigidity position control mode, when a force is applied to the robot arm5by the person's hand16, the robot arm5cannot easily be shifted, and the force detecting unit53can detect the force applied to the robot arm5by the person's hand16. The force detected by the force detecting unit53of the control unit22is reported to the operation correction unit20. The force reported to the operation correction unit20is stored by the operation storage unit15in the operation database17. This makes it possible to correct the operation to perform insertion more forcibly (with a greater force). When the person desires to finish correcting, the person stops applying the force to the robot arm5by gripping the robot arm5. In such a case where a force is not applied to the robot arm5by the person's hand16, every component of the force becomes equal to or less than a threshold value, in step S2inFIG. 32. Therefore, the correction operation type determining unit23determines “no correction” as the correction type (step S3inFIG. 32). Upon receipt of the “no correction” information at the operation correction unit20, the correction operation type determining unit23issues a command to the control parameter managing unit21to exert control in the hybrid impedance control mode, from the high-rigidity position control mode. Thus, the task is performed according to the operation database17after the correction is made.

According to the procedure described in the foregoing, in a state where the robot arm5is in operation in the hybrid impedance control mode, a force applied by the person's hand16allows the operation correction unit20to make a correction such that insertion task is performed with the corrected force, with reference to the force information in the operation database17.

It is to be noted that, in the present example, the force control mode is switched to the high-rigidity position control mode for acquiring the force correction value. However, being different from the first embodiment, because the force detecting unit53detecting a force applied by the person and the target object force detecting unit76detecting a force applied to the target object are separately arranged, the force detecting unit53can detect a force applied by the person with the unchanged control mode, i.e., the force control mode. Further, in a case where the control is switched to the position control mode, the force detecting unit53is capable of performing detection also in the normal position control mode, without the necessity of changing the rigidity.

A description will be given of, as shown in FIG.23, an exemplary case in which the task undesired region RB is set to the assembly robot1through use of the robot arm5.

When the data input IF26(e.g., the power button26aof the console26A) disposed at the top portion of the assembly robot1is powered on by the person's hand16, the operation correction unit20issues a command to the control parameter managing unit21to operate in the impedance control mode. In a state where no task is selected by the operation selecting unit29, as shown inFIG. 23, the hand16of the person16A directly grips the robot arm5(e.g., the hand30) to shift the robot arm5in the direction parallel to the task plane (e.g., the top plane of the workbench7where the device6is placed), to thereby shift the robot arm5(e.g., the hand30) along the contour of the task undesired region RB.FIG. 25Ashows the task plane (e.g., the top plane of the workbench7where the device6is placed) as viewed from above. In a case where the task undesired region RB is the hatched region, the person's hand16shifts the robot arm5(e.g., the hand30) along the contour of the task undesired region RB, as indicated by arrows. Here, a mark63is applied to the center tip of the hand of the robot arm5(the hand30) (seeFIGS. 25A and 25B), and the robot arm5is shifted having the mark63point in the direction where a task performance is undesired.

In a case where: the correction operation type determining unit23executes the correction type estimation process shown inFIG. 32and determines that it is not in operation in terms of the operation database17(step S4); and the shift amount for a certain time period is equal to or more than the certain threshold value, in step S8, the type “task undesired region” is determined as the correction type.

In the impedance control mode, the force detecting unit53detects the force applied to the robot arm5by the person's hand16, and the robot arm5is shifted by the person's hand16in the direction in which the force has been applied to the robot arm5. Thus, as shown inFIG. 25A, the robot arm5is shifted in order of the position (x1, y1) the position (x2, y2) the position (x3, y3), and the position (x4, y4). Here, these pieces of positional information are transmitted to the operation correction unit20via the control unit22and the control parameter managing unit21. Upon receipt of the command, the operation correction unit20allows the operation storage unit to store the pieces of positional information as the information as to the task disapproved region RB in the task disapproved region database28. The four positions' being the information as to the apices of the task disapproved region RB makes it possible to, for example, acquire hand positions of the robot arm5shifted by the person at certain intervals, to generate a region by connecting the coordinates of the acquired hand positions, and to regard it as the task disapproved region RB. Further, it is also possible to add a function for determining the shape to be taken by the region. For example, in a case where it is set as “rectangular”, when the shift direction is changed by an angle of approximately 90 degrees, the position is stored as the apex information. In a case where it is set as “random”, the hand positions of the robot arm5shifted by the person at certain intervals are acquired, to generate a region by connecting the coordinates of the acquire hand positions, and to regard it as the task disapproved region RB.

According to the procedure described in the foregoing, a force applied by the person's hand16allows the operation correction unit20to set the task undesired region.

By properly combining the arbitrary embodiments of the aforementioned various embodiments, the effects possessed by the embodiments can be produced.

INDUSTRIAL APPLICABILITY

The present invention is useful as a control apparatus and a control method for a robot arm, an assembly robot, a control program for a robot arm for an assembly robot, and a control-purpose integrated electronic circuit for a robot arm for an assembly robot, for controlling the operation of a robot arm of an assembly robot, for example in a situation where a robot, such as a robot performing assembly in a factory, performs a task in coordination with a person.