[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2011036865A1 - ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路 - Google Patents

ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路 Download PDF

Info

Publication number
WO2011036865A1
WO2011036865A1 PCT/JP2010/005705 JP2010005705W WO2011036865A1 WO 2011036865 A1 WO2011036865 A1 WO 2011036865A1 JP 2010005705 W JP2010005705 W JP 2010005705W WO 2011036865 A1 WO2011036865 A1 WO 2011036865A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot arm
unit
information
motion
control
Prior art date
Application number
PCT/JP2010/005705
Other languages
English (en)
French (fr)
Inventor
優子 津坂
Original Assignee
パナソニック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Priority to CN201080005921.7A priority Critical patent/CN102300679B/zh
Priority to JP2010547779A priority patent/JP4699572B2/ja
Publication of WO2011036865A1 publication Critical patent/WO2011036865A1/ja
Priority to US13/096,376 priority patent/US8175750B2/en
Priority to US13/416,660 priority patent/US8290621B2/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40424Online motion planning, in real time, use vision to detect workspace changes

Definitions

  • home robots such as care robots or housework support robots have been actively developed. Unlike a robot for industrial use, a home robot is operated by an amateur at home, so it is necessary to be able to easily teach the operation. Furthermore, since the operating environment when the robot is working varies depending on the home, it is necessary to flexibly cope with various home environments.
  • the object of the present invention has been made in view of such a problem, and it is possible to perform robot control that enables an operator to easily teach a robot arm in a short time even if there is an unpredictable environmental change.
  • a robot arm control device and method, a robot, a robot arm control program, and a robot arm control integrated electronic circuit that can be realized.
  • a robot arm control device for controlling an operation of a robot arm
  • a motion information acquisition unit that acquires the motion information from a motion information database in which at least one of the position, posture, and speed of the robot arm corresponding to the motion is stored as motion information in time series; Corrected motion information corresponding to at least one or more of the motion information acquired by the motion information acquisition unit when a person operates the robot arm to correct the motion of the robot arm.
  • a motion correction unit In response to the environmental change notification operation of the person of the robot arm, the environmental information acquired by the environmental information acquisition unit is determined, and the motion information corrected by the motion correction unit and the environmental information acquisition unit
  • a control rule generation unit that generates a control rule for automatically operating the robot arm by associating the acquired environment information with the environment information;
  • a robot arm control device that controls the operation of the robot arm based on the control rule generated by the control rule generation unit while referring to the environment information acquired by the environment information acquisition unit.
  • a robot arm control device for controlling the operation of the robot arm,
  • a motion information acquisition unit that acquires the motion information from a motion information database stored as time-series motion information of the force applied to the object by the robot arm corresponding to the motion;
  • the motion information related to the motion information acquired by the motion information acquisition unit and correction motion information related to the force applied by the robot arm are acquired.
  • a robot arm control method for controlling an operation of a robot arm
  • the motion information acquisition unit acquires the motion information from a motion information database in which at least one of the position, posture, and speed of the robot arm corresponding to the motion is stored as motion information in time series, Corrected motion information corresponding to at least one of the motion information acquired by the motion information acquisition unit when a person operates the robot arm to correct the motion of the robot arm.
  • the environmental information acquired by the environmental information acquisition unit is determined, and the motion information corrected by the motion correction unit and the environmental information acquisition unit
  • a control rule for automatically operating the robot arm is generated by a control rule generation unit
  • a step of acquiring a correction operation information acquisition unit Obtaining environmental information, which is information relating to an object on which the robot arm acts, in an environmental information obtaining unit in response to the human environment change notification operation to the robot arm; Controlling the robot arm with a position control unit in a position control mode so as to move the robot arm based on the motion information acquired by the motion information acquisition unit; The motion information is corrected according to the corrected motion information at each time acquired by the corrected motion information acquisition unit while the robot arm is moving in the position control mode under the control of the position control unit.
  • the control rule generation unit By associating with the environment information acquired by the information acquisition unit, the control rule generation unit generates a control rule for the robot arm to automatically operate, Provided is an integrated electronic circuit for controlling a robot arm that controls the operation of the robot arm based on the control rule generated by the control rule generation unit while referring to the environment information acquired by the environment information acquisition unit To do.
  • FIG. 19E is a plan view showing an operation state of the robot arm control device in the second embodiment of the present invention
  • FIG. 20 is a diagram showing an example of the environment information image in the second embodiment of the present invention
  • FIG. 21 is a diagram showing an outline of a robot in the third embodiment of the present invention.
  • FIG. 22A is a diagram for explaining a list of operation information in an operation information database of the robot arm control device of the robot in the third embodiment
  • FIG. 22B is a diagram illustrating a list of operation information in the operation information database of the control device for the robot arm of the robot in the third embodiment
  • FIG. 23 is a diagram illustrating flag information of the motion information database of the robot arm control device of the robot according to the third embodiment.
  • a robot arm control program for controlling the operation of the robot arm, Obtaining at least one of the position, posture, and speed of the robot arm corresponding to the motion from the motion information database stored as motion information in time series by the motion information acquisition unit; Corrected motion information corresponding to at least one or more of the motion information acquired by the motion information acquisition unit when a person operates the robot arm to correct the motion of the robot arm.
  • the robot arm 5 is controlled in the following manner by a robot arm control device including a motion generation device 12, a control device main body 11, and a peripheral device 14, which will be described later.
  • the rotation angle information of the rotating shaft of the motor 62 detected by the encoder 61 is taken into the control device main body 11 through the counter board of the input / output IF 24. Based on the rotation angle information taken into the control device main body 11, a control command value for the opening / closing operation of the hand 30 is calculated by the hand control unit 54 (shown in FIG. 4) of the control unit 22 of the control device main body 11. The The calculated control command value is given to the motor driver 25 that also opens and closes the hand 30 through the D / A board of the input / output IF 24.
  • the motion information database 17 stores information related to the motion of the robot arm 5 such as the hand position and posture of the robot arm 5 at a predetermined time (hereinafter referred to as motion information).
  • the operation information may be set in advance, or may be input and stored in the operation information database 17 by the database input / output unit 28 via the control rule generation unit 23.
  • the “operation ID” column of the operation information stored in the operation information database 17 indicates an operation ID number for identifying individual movements of the robot arm 5 for executing work on the robot arm 5.
  • the column of “key operation ID” of the operation information indicates a key operation ID number for identifying each operation (key operation) (command, command) in the control program for controlling the operation of the robot arm 5.
  • the “flag” column of the operation information indicates information regarding a flag indicating whether any information of the hand position, posture, and force parameters of the robot arm 5 is valid.
  • the “hand” column of the operation information indicates information indicating the hand open / close state indicating whether or not the hand 30 is open / closed.
  • the “time” column of the operation information indicates information related to the time for executing each key operation of the robot arm 5. In the first embodiment, as an example, it is shown in seconds (sec).
  • the column of “correction parameter flag” of the operation information indicates information on the type of parameter to be corrected when correcting the operation information in the operation information database 17 using the operation correction unit 20 described later.
  • “work” means work performed by the robot arm 5 according to a certain procedure such as stirring work or wiping and cleaning work.
  • operation means movement of the robot arm 5 for causing the robot arm 5 to execute “operation” such as a stirring operation or a wiping operation. By executing one or more “operations”, the “work” can be executed by the robot arm 5.
  • the “key operation” means a command (command) for causing the robot arm 5 to perform an “operation” at a certain time on a control program for controlling the operation of the robot arm 5.
  • ”(Command) constitutes the“ motion ”
  • the“ motion ”of the robot arm 5 is realized by controlling a plurality of“ key motions ”(commands) to be executed by the control device in time series. Can do.
  • "Position and orientation" of the operation information database 17 of FIG. 5A i.e., information relating to the tip unit position and orientation of the robot arm 5 represents a hand position and orientation of the robot arm 5 described above, from the origin position O e and the orientation, (x , Y, z, ⁇ , ⁇ , ⁇ ).
  • the information on the “flag” in the motion information database 17 in FIG. 5A indicates whether information on the hand position, posture, and force of the robot arm 5 based on the motion information indicated by each “key motion ID” is valid.
  • FIG. 6 is represented by the 32-bit numerical value shown in FIG. 5A, and the parameters of each bit number, position and orientation, and force are associated with each other.
  • “1” is set when each value of the hand position, posture, and force is valid in each bit
  • “0” is set when each value of the hand position, posture, and force is invalid.
  • “1” is set when the x-coordinate value of the hand position of the robot arm 5 is valid
  • “0” is set when it is invalid.
  • the first bit “1” is set when the value of the y-coordinate of the hand position of the robot arm 5 is valid, and “0” is set when it is invalid.
  • “1” is set when the value of the z-coordinate of the hand position of the robot arm 5 is valid, and “0” is set when the value is invalid.
  • the third, fourth, and fifth bits sequentially indicate the validity of the postures ⁇ , ⁇ , and ⁇ (that is, “1” when valid and “0” when invalid).
  • the 6th to 11th bits indicate whether each component of force is valid or invalid (that is, “1” when valid, and “0” when invalid).
  • the information related to “hand” in FIG. 5A is a flag indicating whether or not the hand 30 in operation is open / closed, and is described as “0” when the hand 30 is open, and “1” when the hand 30 is closed. It describes.
  • the information related to “time” in the operation information database 17 in FIG. 5A is a time for executing each key operation of the robot arm 5. That is, the robot arm 5 performs the operation stored in the “key operation ID” over the time stored as the information related to the “time”.
  • This “time” represents the relative time from the previous operation, not the absolute time. That is, the “position and orientation” indicated by the “key action ID” represents the time until the hand 30 of the robot arm 5 moves or the time until the “force” indicated by the “key action ID”.
  • the first bit “1” is set when the y-coordinate value of the hand position can be corrected, and “0” is set when the y-coordinate value of the hand position cannot be corrected.
  • the second bit “1” is set when the z-coordinate value of the hand position can be corrected, and “0” is set when the z-coordinate value of the hand position cannot be corrected.
  • the third, fourth, and fifth bits indicate the correctability of the posture ⁇ , ⁇ , and ⁇ (that is, “1” when correction is possible, and “0” when correction is impossible).
  • the 6th to 11th bits indicate the correctability of each component of the force (that is, “1” when correction is possible and “0” when correction is impossible).
  • the 12th to 31st bits are not used, so “0” is inserted. It is good also as a variable which can memorize only a bit.
  • the information in the motion information database 17 is preset and stored in a database. However, the position and orientation of the hand of the robot arm 5 and the input and update of the force may be taught using the robot arm 5 and will be described below. To do.
  • the information on the position and orientation of the hand of the robot arm 5 and time is created as follows. That is, for example, as shown in FIG. 8, the person 4A directly holds the robot arm 5 with the hand 4 and moves the robot arm 5 in an impedance control mode to be described later.
  • the information on the hand position and posture of the robot arm 5 is acquired by the database input / output unit 28 via the control unit 22 and the control parameter management unit 21 at certain time intervals (for example, every 0.2 msec).
  • the acquired information on the hand position and posture of the robot arm 5 is stored in the operation information database 17 by the database input / output unit 28 with time. In this manner, information on the position and orientation of the hand of the robot arm 5 and time can be created in the motion information database 17.
  • the force information of the motion information database 17 is created by using the data input IF 26 and inputting the value of the force to be applied to the motion information database 17 via the database input / output unit 28.
  • information on the position and orientation of the hand of the robot arm 5 and time information are continuously created.
  • information on the position and orientation and time of the robot arm 5 is obtained by the person 4A using an external input device such as a keyboard, mouse, or microphone. You may input separately using 26a.
  • the environment information database 18 includes information on the position and state of objects around the robot arm 5 when the robot arm 5 operates, the positions of objects by the person 4A and the robot arm 5 acting directly on the surrounding environment, and Information on the state (hereinafter, this information is referred to as environmental information) is stored.
  • the environment information is acquired by an environment information acquisition unit 19 described later, and is stored in the environment information database 18 from the environment information acquisition unit 19 via the database input / output unit 28.
  • FIG. 9A shows environmental information that is data of the environmental information database 18.
  • FIG. 9B shows flag information in the environment information database 18.
  • the “environment ID” column of the environment information stored in the environment information database 18 indicates an environment ID number for identifying individual environment information.
  • the “image ID” column of the environment information indicates an image ID number for identifying an image captured by the first and second image capturing devices 15 a and 15 b that function as an example of the environment information acquisition unit 19.
  • the file name is used.
  • the column “image capturing device ID” of the environment information is an ID number that identifies which image capturing device of the two image capturing devices 15a and 15b has captured the image.
  • “1” is indicated when the first image capturing device 15a is used for image capturing
  • “2” is indicated when the second image capturing device 15b is used for image capturing.
  • the “force” column of the environmental information indicates information (force information) related to the force detected by the force detection unit 53.
  • the information on the force indicates information on the force detected by the force detection unit 53 of the robot arm 5, and the components of the force in the x, y, z, ⁇ , ⁇ , and ⁇ directions are expressed as (f x , f y , f z , f ⁇ , f ⁇ , f ⁇ ).
  • the “flag” column of the environmental information indicates information regarding a flag indicating whether any of the power of the environmental information and the image parameter is valid.
  • the information regarding the “flag” in the environment information database 18 in FIG. 9A is a value indicating whether the image of the environment information and the force information indicated by each “environment ID” are valid. Specifically, it is represented by a 32-bit numerical value shown in FIG. 9B.
  • FIG. 9B “1” is set when the image and force values are valid for each bit, and “0” is set when the image and force values are invalid.
  • the 0th to 5th bits indicate force information
  • the 6th bit indicates image information. For example, in the 0th bit, “1” is set when the value of the force x-coordinate is valid, and “0” is set when the value is invalid.
  • the first bit “1” is set when the y-coordinate value of the force is valid, and “0” when the value is invalid.
  • “1” is set when the force z-coordinate value is valid, and “0” is set when it is invalid.
  • the third, fourth, and fifth bits sequentially indicate the effectiveness of the forces ⁇ , ⁇ , and ⁇ . That is, “1” is set when valid, and “0” when invalid.
  • the sixth bit indicates whether the image captured by the first or second image capturing device 15a or 15b is valid or invalid (ie, “1” if valid, “0” if invalid). And).
  • the control rule database 16 stores information related to the control rules of the robot arm 5 when the robot arm 5 operates (hereinafter referred to as control rule information).
  • the control rule information is generated by a control rule generation unit 23 to be described later, and information generated or necessary for generation is generated between the control rule generation unit 23 and the control rule database 16 by the database input / output unit 28. Input / output.
  • the database input / output unit 28 inputs / outputs information necessary for generation between the control rule generation unit 23 and the other databases 18, 17, and 29.
  • control rule database 16 Details of the control rule database 16 will be described with reference to FIGS. 10A and 10B.
  • 10A and 10B show an example of the control rules in the control rule database 16.
  • the column of “work ID” of the control rule stored in the control rule database 16 shows a work ID number for identifying information related to the work.
  • the “environment ID” field of the control rule indicates an environment ID number for identifying individual environment information, and the value of the environment ID in the environment information database 18 can be referred to. When it is not possible to refer to the value of the environment ID in the environment information database 18, it is stored as “ ⁇ 1”.
  • the “operation ID” column of the control rule indicates an operation ID number for identifying the operation of the robot arm 5 in the work, and the operation ID of the operation information database 17 can be referred to.
  • the “progress information” column of the control rule indicates whether or not a predetermined operation of the robot arm 5 is in operation, and is “1” when it is in operation, and “0” when it is not in operation.
  • the data is stored in the control rule database 16 by the database input / output unit 28.
  • FIG. 11A shows detection unit selection rules in the detection unit selection rule database 29.
  • FIG. 11B shows information related to the type of environment information of the detection unit selection rule in the detection unit selection rule database 29.
  • the “environmental information type ID” column of the detection unit selection rule indicates an identification ID for identifying the type of environmental information.
  • the identification ID of the environmental information is an environmental information acquisition unit 19 that is a detection unit, for example, various sensors (for example, force detection unit 53) mounted on the robot arm 5, or various sensors (for example, first or second) of the robot 1. This is an ID for identifying the type of environmental information acquired by the image capturing device 15a or 15b).
  • the “environment information type ID” in FIG. 11A is defined in FIG. 11B. Specifically, as the detection unit selection rule, when the “environment information type ID” is “1” as illustrated in FIG. 11B, the first or second image capturing device 15a or 15b as an example of the detection unit. When the captured image is represented and the “environmental information type ID” is “2”, the force detected by the force detection unit 53 as another example of the detection unit is represented.
  • the database input / output unit 28 includes each database group (the operation information database 17, the environment information database 18, the control rule database 16, and the detection unit selection rule database 29), the operation command unit 27, and the control rule generation unit 23. And input / output of data between the environment information acquisition unit 19 and the operation correction unit 20. Therefore, the database input / output unit 28 can function as an example of an operation information acquisition unit and a correction operation information acquisition unit. That is, the database input / output unit 28 reads the motion information database 17 in which at least one of the position, posture, and speed of the robot arm 5 corresponding to the motion of the robot arm 5 is stored as motion information in time series.
  • the motion information acquisition unit that acquires the motion information or the motion information stored as time-series motion information of the force applied by the robot arm 5 to the work objects 9, 46, 72, 74, corresponding to the motion of the robot arm 5. It can function as an operation information acquisition unit that acquires the operation information from the database 17.
  • the database input / output unit 28 when the person 4A operates the robot arm 5 to correct the motion of the robot arm 5, the at least one of the motion information acquired by the motion information acquisition unit.
  • the motion information acquired by the motion information acquisition unit when correcting the motion of the robot arm 5 when the person 4A operates the robot arm 5 by acquiring the motion correction information corresponding to the motion information.
  • a correction operation information acquisition unit that acquires correction operation information related to the force applied by the robot arm 5.
  • the person 4A causes the robot arm 5 to execute the work related to “work ID” in the work of the control rule database 16 while using the display image on which the work is displayed on the display unit 95 by the data input IF 26.
  • the desired work is selected, and the selected work information is input to the operation command unit 27 and designated.
  • the operation command unit 27 refers to the control rule database 16 via the database input / output unit 28 and executes the operation of “operation ID” corresponding to the designated “work ID”.
  • the operation command unit 27 refers to the operation information database 17 via the database input / output unit 28 and corresponds to the corresponding key operation (specifically, position information, attitude A command is issued to the control parameter management unit 21 so that the robot arm 5 operates by setting the control mode according to a flag (a flag indicating validity or invalidity) based on the information, time information, and force information). means.
  • the operation command unit 27 refers to the control rule database 16 via the database input / output unit 28, the operation command unit 27 determines that there is a plurality of environment information of “environment IDs” in the work related to one “work ID”. When it is determined or when the operation command unit 27 determines that there are a plurality of “operation ID” operations, the respective environment information or operations are sequentially executed from the top to the bottom of the control rule database 16.
  • the motion command unit 27 refers to the “motion ID” of the motion information database 17 via the database input / output unit 28 in order to cause the robot arm 5 to perform a motion regardless of the environment.
  • “1” is stored in the “operation ID” of the control rule database 16, and the operation command unit 27 transmits the “operation ID” of the operation information database 17 of FIG. 5A via the database input / output unit 28.
  • key operations with “key operation IDs” “2” to “8” are also controlled from the operation command unit 27 via the database input / output unit 28 so as to operate in the force hybrid impedance control mode.
  • a command is issued to the parameter management unit 21.
  • the operation command unit 27 refers to the “operation ID” of the operation information database 17 via the database input / output unit 28 in order to execute the operation on the robot arm 5 regardless of the environment.
  • “2” is stored in the “operation ID” of the control rule database 16, and the operation command unit 27 transmits the “operation ID” of the operation information database 17 in FIG. 5A via the database input / output unit 28.
  • "Key operation ID” of the operation of “2” is the key operation (command) of "10", “11”, “12”, “13”, “14”, “15”, "16", “17” ) In order.
  • the operation command unit 27 performs the mixing operation in the position control mode.
  • a command is issued to the control parameter management unit 21 via the database input / output unit 28.
  • the control parameter management unit 21 issues a command to the control unit 22 so that the robot arm 5 operates according to the control mode, and is shown in FIG. 13A under the control of the control unit 22.
  • the robot arm 5 starts the stirring operation.
  • control operation of the robot arm 5 is any one of (i) a position control mode, (iii) a force control mode, and (v) a force hybrid impedance control mode in which these are combined in each direction. Indicates that it operates in the mode.
  • the correcting operation of the robot arm 5 is an operation of correcting the operation of the robot arm 5 by the force applied by the person 4A to the robot arm 5, which will be described later (ii) impedance control mode, (vi) high-rigidity position control mode. Or (v) a force hybrid impedance control mode in which they are combined for each direction, indicating that the operation is performed in any mode.
  • the operation command unit 27 issues a command to the control parameter management unit 21 to perform the mixing operation in the position control mode. Therefore, as shown in FIG. 13A, the robot arm 5 starts a stirring operation.
  • the “environment ID” is a value of “ ⁇ 1” when the “operation ID” is “2” (see FIG. 10A)
  • the operation is performed with the operation stored in the “operation ID” (specifically, the operation with the operation ID “2” is performed).
  • the person 4A confirms the size of the pot 3b, and corrects the stirring operation of the robot arm 5 so that the ladle 9 stirs greatly according to the diameter of the pot 3b as shown in FIG. 13E. For this reason, the person 4A performs the following two input operations.
  • the stirring operation of the robot arm 5 is stopped when the environment change notification operation, which is an operation for correcting the operation so that the stirring operation is greatly stirred as shown in FIG. 13E, is started. Then, the environment change notification operation is finished, and the stirring operation of the robot arm 5 is resumed. The person 4A performs an operation correction operation while the robot arm 5 is stirring.
  • the environment change notification operation which is an operation for correcting the operation so that the stirring operation is greatly stirred as shown in FIG. 13E
  • Person 4A inputs a command to start an environmental change notification operation to operation command unit 27 by data input IF 26.
  • the operation command unit 27 stops the operation of the robot arm 5.
  • the person 4 ⁇ / b> A continues to input an operation correction operation start command to the operation command unit 27 through the data input IF 26.
  • the motion command unit 27 receives a command to start the motion correction operation via the data input IF 26
  • the motion command unit 27 determines that the environment change notification operation has ended, and the robot arm is used to start the motion correction operation.
  • the operation of 5 is resumed.
  • the person 4 ⁇ / b> A performs an operation correction operation on the operation of the robot arm 5.
  • the operation command unit 27 determines that the force applied to the robot arm 5 by the person 4A is smaller than the threshold value (value t 1 in FIG. 30A) after the person 4A performs the environment change notification operation.
  • the operation command unit 27 determines that the environment change notification operation has ended, and the operation command unit 27 restarts the mixing operation in the position control mode. By resuming the stirring operation, the person 4A knows that the robot 1 has determined that the environment change notification operation has ended.
  • the motion command unit 27 determines that a motion correction operation start command has been input
  • the speed of the stirring operation of the robot arm 5 is slowed down by the command of the motion command unit 27 (for example, the normal operation before the motion correction operation is started). It can be seen that the person 1A has determined that the robot 1 has determined that the operation correction operation start command has been input. Furthermore, since the speed of the stirring operation is slow, it becomes easier for the person 4A to correct the operation of the robot arm 5 during the operation. While the movement of the robot arm 5 is being corrected by the person 4A, the correction operation information is acquired by the operation correction unit 20 as will be described later.
  • FIG. 14 shows an image acquired from above the pan 3 by the first image capturing device 15a.
  • the image acquired by the control rule generation unit 23 by the first image capturing device 15 a is stored in the environment information database 18 via the database input / output unit 28.
  • control rule generation unit 23 performs one line for the work with the “work ID” of “2”.
  • the operation is stored in the control rule database 16 so that an operation with “3” as the “operation ID” newly added by the operation correction operation is added.
  • Positional error compensating unit 56 based on the error r e obtained by the positional error calculation unit 80, and outputs a positional error compensating output u re the approximation reverse kinematical calculation unit 57. Specifically, the position error compensation output ure is
  • the hand position and posture target correction output rd ⁇ is calculated by Equation (6) in the case of (ii) impedance control mode and (iii) hybrid impedance control mode, and (v) in the case of force hybrid impedance control mode. Since it is calculated by (10), the mechanical impedance values of the inertia M, the viscosity D, and the stiffness K of the robot arm 5 can be controlled to the set values.
  • the force detection unit 53 calculates the equivalent hand external force F ext at the hand of the robot arm 5 based on the drive current value i of the motor 43, the joint angle vector q, and the joint angle error compensation output u qe. Then, the calculated equivalent hand external force F ext is output to the impedance calculation unit 51, the environment information acquisition unit 19, and the control parameter management unit 21 (step S5).
  • control parameter management unit 21 instructs the operation correction unit 20 to “correct” and corrects the force component of the six axes with the correction parameter
  • the component for which the force component is set is a highly rigid component.
  • the control mode can be switched to the position control mode (step S6). Thereafter, the process proceeds to step S7.
  • the impedance calculation unit 51 sets the hand position and posture target correction output rd ⁇ to the 0 vector (step S7). Then, it progresses to step S10.
  • Position proportional error is a diagonal matrix of constants of the compensation unit 56, the differential by adjusting the three gains of integration, it acts to control the positional error compensating unit 56 as position error r e is converged to zero. By increasing the gain to a certain value, highly rigid position control is realized (step S10). Thereafter, the process proceeds to step S12.
  • the motion command unit 27 refers to the control rule database 16 via the database input / output unit 28, and relates to the selected “work ID”. “Operation ID” is specified. Then, the operation command unit 27 refers to the operation information database 17 via the database input / output unit 28 based on the specified “operation ID” information, and follows the “operation ID” stored in the operation information database 17.
  • the operation procedure of the robot arm 5 is set (step S51).
  • FIG. 17B shows an operation flowchart for creating a control rule in consideration of environmental information in the control device for the robot arm 5 in the first embodiment.
  • the person 4A operates the robot arm 5 and inputs an instruction to start the environment change notification operation to the operation command unit 27 via the data input IF 26 (step S53).
  • the operation command unit 27 stops the operation of the robot arm 5.
  • the environment information acquisition unit 19 acquires information about the environment in which the robot arm 5 acts or information about the surrounding environment in which the robot arm 5 operates (environment information) (step S55).
  • the person 4A outputs the end information of the environment change notification operation to the operation command unit 27 via the data input IF 26 (step S56).
  • the end information of the environment change notification operation is output to the operation command unit 27, the output of the operation information of the environment change notification operation from the operation command unit 27 to the control rule generation unit 23 is stopped.
  • the person 4A selects an operation to be performed by the robot arm 5 from the operations in the control rule database 16 by using the external input device 26a, and the “operation ID” corresponding to the selected operation via the data input IF 26. Is input to the operation command unit 27 (step S100).
  • step S107 If the operation command unit 27 determines that the number of “operation IDs” that match the environmental information is one by comparison in the operation command unit 27, the process proceeds to step S107. If the operation command unit 27 determines that the number of operations that match the environmental information is zero, the process proceeds to step S112. If the operation command unit 27 determines that the number of operations that match the environmental information is two or more, the process proceeds to step S105.
  • step S110 when the operation command unit 27 determines that the environment information matches in step S109, the operation command unit 27 refers to the control rule database 16 and corresponds to the matched “environment ID”.
  • the operation information stored by the “operation ID” is acquired, the acquired operation information is output to the control parameter management unit 21, and this flow is terminated (step S111).
  • step S110 when the operation command unit 27 determines that the environmental information does not match, it is determined that there is no operation to be performed, and this flow is terminated and the robot arm 5 stops the operation (step S112).
  • the person 4A directly holds the robot arm 5 during the operation of the robot arm 5 based on the control rule.
  • the robot arm 5 By applying force to the robot arm 5, it is possible to notify a change in the surrounding environment of the robot arm 5 and further correct the operation information according to the environment.
  • the robot arm 5 is autonomous based on the information in the control rule database 16 (in other words, based on the control rule generated by the control rule generation unit 23 while referring to the environment information acquired by the environment information acquisition unit 19). It becomes possible to operate.
  • a case will be described as an example in which a robot 1 having a robot arm 5 and a robot arm 5 controller is used to wipe and clean a top plate 6a such as an IH cooking heater 6.
  • a sponge 46 as an example of a wiping and cleaning work jig, which is an example of a work object, is attached to the hand 30 of the robot arm 5.
  • FIG. 19A is a view of the top plate 6a of the IH cooking heater 6 as viewed from above
  • the robot arm 5 performs the operation of “1” of “operation ID” in FIG. 10A, for example. While the top plate 6a such as the IH cooking heater 6 is wiped and cleaned with the sponge 46, the person 4A is different from the place where the cleaning operation is performed on the top plate 6a such as the IH cooking heater 6 (dirty portion). ) Assume that 91 is found dirty. At this time, as shown in FIG. 19B (FIG.
  • the moving speed of the sponge 46 (hand 30) in the planar direction of the top plate 6a is accelerated with respect to the dirty portion 91, and at the same time, the dirty surface of the top plate 6a is strongly rubbed with the sponge 46.
  • the person 4A grips the robot arm 5 in operation and the plane direction of the top plate 6a is accelerated and moved, the person 4A further moves from above the IH cooking heater 6 toward the contaminated portion 91. A force is applied to the robot arm 5.
  • the person 4A uses the data input IF 26 to select a work to be executed by the robot arm 5 from the work related to the “work ID” in the work of the control rule database 16 and execute the operation by the operation command unit 27. That is, when the person 4A selects the work whose “work ID” in FIG. 10A is “1” by the data input IF 26, the motion command unit 27 uses the “motion ID” corresponding to the work “1”.
  • the robot arm 5 is operated by referring to the motion information database 17 via the database input / output unit 28 and setting the control mode according to the flag based on the motion information (specifically, position, posture, time, force). Next, a command is issued to the control parameter management unit 21.
  • a command is issued from the operation command unit 27 to the control parameter management unit 21 so as to operate in the force control mode.
  • the robot arm 5 starts the wiping and cleaning work for the top plate 6 a such as the IH cooking heater 6.
  • the robot stops when no force is applied from the person 4A, and can move in the direction when the force is applied from the person 4A.
  • the force applied by the person 4A can be detected by the force detection unit 53 in a mode in which the robot arm 5 does not easily move even when the person 4A applies a force.
  • the hand position and force of the robot arm 5 from the control parameter management unit 21 are obtained as an operation correction unit 20. And the acquired information is output from the operation correction unit 20 to the control rule generation unit 23 described later.
  • the force detection unit 53 detects the force applied to the robot arm 5 with the hand 4 of the person 4A in the impedance control mode while moving the robot arm 5 in the position control mode in the hybrid impedance control mode. Then, the robot arm 5 is moved in the x-axis direction and the y-axis direction in the direction in which a force is applied to the robot arm 5 by the hand 4 of the person 4A. From the position (x 1 , y 1 ) of the robot arm 5 indicated by the operation with the “operation ID” “1” during the operation with the “operation ID” “1” in FIG.
  • the control rule generation unit 23 receives an instruction to start an environment change notification operation from the data input IF 26 via the operation command unit 27 to the work ID being operated, and performs an environment change notification operation from the person 4A.
  • the hand position and time of the robot arm 5 generated in this way are input from the motion correction unit 20.
  • the environment information is input from the environment information acquisition unit 19 to the control rule generation unit 23 at the start timing of the environment change notification operation.
  • the “operation ID” in operation at the start of the environment change notification operation is referred to by the control rule generation unit 23 from the operation information database 18 through the database input / output unit 28, and the “key operation ID” of the “operation ID” is referred to.
  • the control rule generation unit 23 acquires information related to the current control mode of the robot arm 5 from the information related to the flag “”. Specifically, the key operations of the “key operation ID” of “1” to “8” of the operation of “operation ID” of “1” during the operation of “operation ID” of “1” in FIG. 10A are performed.
  • each “key operation ID” flag is “0, 1, 3-5, only the 8th bit in FIG. 5A”. 1 ”and the others are“ 0 ”.
  • the impedance control mode is set so that the x-axis, y-axis, ⁇ -axis, ⁇ -axis, and ⁇ -axis can be corrected by the force applied by the person 4A.
  • the image and force information acquired by the control rule generation unit 23 is stored in the environment information database 18 by the control rule generation unit 23 via the database input / output unit 28.
  • the environment information whose “environment ID” is “11” in FIG. 9A
  • “11” is assigned to the new “environment ID” by the control rule generation unit 23, and “environment ID” “ In “Image ID”
  • the file name of the selected image is stored in the environment information database 18 by the control rule generation unit 23 via the database input / output unit 28 (in this example, the image 4 is a dirty portion 91 in FIG. 20). This is a captured image.)
  • the detected force value is stored in the environment information database 18 by the control rule generation unit 23 via the database input / output unit 28.
  • the flag is stored in the environment information database 18 by the control rule generation unit 23 via the database input / output unit 28 as “1”.
  • the motion information corrected by the motion correction unit 20 is stored in the motion information database 17 via the database input / output unit 28.
  • the position / posture and force value of each key motion of “motion ID” before and after correction are the respective components.
  • the motion correction unit 20 compares each component, and only the components having a difference equal to or greater than a threshold value are set to “1” by the motion correction unit 20 for each component of the flag in FIG. To do.
  • the value of the operation before correction (in this example, “1” to “8”) is stored in the operation information database 17 by the operation correction unit 20.
  • the control rule generation unit 23 when the person 4A performs the environmental change notification operation and the operation correction operation, the control rule generation unit 23 generates a new control rule, so that the person 4A operates and operates according to the environmental change. If corrected, the next time the environment becomes similar, based on the information in the control rule database 16 (in other words, by referring to the environment information acquired by the environment information acquisition unit 19, the control rule generation unit 23 Based on the generated control rules, the robot arm 5 can operate autonomously.
  • the operation with “operation ID” “1” of the operation with “operation ID” “1” in FIG. 10B represents the operation information for performing the operation in FIG. 19A, while the operation ID “1” is “operation ID”.
  • An operation with an operation “operation ID” of “4” represents operation information for performing a wiping and cleaning operation when the dirt is severe as shown in FIG. 19B.
  • the person 4A instructs the operation command unit 27 to start the work whose “work ID” is “1” by the data input IF 26.
  • the work whose “work ID” is “1” includes an operation whose “operation ID” is “1” and an operation whose value is “4”. Since the operation with the “operation ID” of “1” has the value of “ ⁇ 1” for the “environment ID”, the operation is performed regardless of the surrounding environment of the robot arm 5 and is selected by the operation command unit 27 as the operation to be executed. To do.
  • action ID is "1" and "4"
  • the selected actions are stored in the control rule database 16.
  • the operation command unit 27 adds the operations to be executed according to the flags of the respective operation information.
  • an operation with an “operation ID” of “1” and an operation with “4” are selected by the operation command unit 27, and the “operation ID” of the control rule database 16 in FIG.
  • the operation is stored in the order of “4”. Therefore, since the flag of the operation information of the operation whose “operation ID” is “1” is 0, 1, 3 to 5 and the bit is “1” from FIG. 5C, “operation ID” is “1”.
  • the motion command unit 27 acquires the position and orientation information (x, y, ⁇ , ⁇ , ⁇ ) and the motion information of the force z-axis component.
  • the motion command unit 27 calculates the z-axis component of the force by replacing each of the motions with “motion ID” “4”.
  • the position and orientation of the key operation with the “key operation ID” of “1” are (0.1, 0.1, 0, 0, 0, 0) and force (0, 0, 5, 0, 0, 0).
  • the operation flag “1” of the “operation ID” is “1” in the 0th, 1st, 3rd to 5th and 8th bits, and “4” is “1” in the 8th bit. In this flag, 0, 1, 3 to 5, and 8th bit are “1”.
  • the operation parameter flags of the operation “1” of “operation ID” and the operation of “4” are both 0, 1, and the eighth bit is “1”, so the operation parameter flag of the calculated operation is 0, 1 , The eighth bit is “1”.
  • the calculated operation information is executed by the operation command unit 27 by switching the control mode according to the flag by the operation command unit 27 and outputting the operation information from the operation command unit 27 to the control parameter management unit 21. It becomes possible to do.
  • the operation information can be corrected according to the color of the dirt or the coefficient of friction of the dirt surface.
  • the operation of the operation command unit 27 in steps S100 to S112 in FIG. Based on the control rule generated by the control rule generation unit 23 based on the information in the control rule database 16 (in other words, referring to the environment information acquired by the environment information acquisition unit 19 without performing the correction operation). )
  • the robot arm 5 can operate autonomously.
  • the robot arm 5 of the robot 1 is installed on a wall surface 7a of a work table 7 such as a work table in a factory, and the base end of the robot arm 5 is fixed to the wall surface 7a.
  • the robot arm 5 is supported on the rail 8 so as to be movable in the lateral direction along the rail 8, for example, in the horizontal direction by the force of the person 4A.
  • Reference numeral 15a denotes a first image capturing device such as a camera, which is attached so that the workbench 7 can be imaged from the ceiling 7b, for example.
  • the robot 1 uses the robot arm 5 to perform a work performed by the robot arm 5 and the person 4A in cooperation with the person 4A, such as a work for attaching a screw 73 of a television or a DVD recorder, in a factory.
  • the person 4A directly grips the robot arm 5 of the robot 1 with the hand 4 and applies force to the robot arm 5. Then, by moving the robot arm 5 of the robot 1 along the rail 8 by the force applied to the robot arm 5 from the person 4A, the appliance 71 (in this example, the TV or DVD recorder device to which the screw 73 is attached) is moved. The robot arm 5 is guided to the vicinity of (shown).
  • the appliance 71 in this example, the TV or DVD recorder device to which the screw 73 is attached
  • the person 4A for example, a tool for attaching a screw 73 to the hand 30 of the robot arm 5 of the robot 1, that is, the hand 30 at the tip, as another example of the work jig 9 as an example of the work object, for example, electric A driver device 72 is attached.
  • the electric driver instrument 72 can support the screw 73 at its lower end and press the electric driver instrument 72 downward against the device 71 to turn on the switch, and the driver automatically rotates to rotate the screw 73.
  • the rail 8 is arranged on the wall surface 7a of the work table 7, in the case of a work table without a wall surface, it can be installed at a place suitable for work such as a ceiling surface or a side surface of the work table top 6a.
  • the operation panel 13 is fixed to the side surface of the work table 7, a remote control capable of remote operation may be used instead of the operation panel 13.
  • the motion information database 17 stores information (motion information) regarding the motion of the robot arm 5 such as the hand position and posture of the robot arm 5 at a certain time.
  • the operation information is input / output to / from the operation information database 17 by the database input / output unit 28 via the control rule generation unit 23.
  • the person 4A selects a work to be executed by the robot arm 5 from the work related to “work ID” in the work of the control rule database 16 via the database input / output unit 28 by the data input IF 26,
  • the unit 27 instructs the control parameter management unit 21 to execute the operation related to the selected “work ID”.
  • the hand 30 at the hand position of the robot arm 5 has a screw hole 71a as shown in FIG.
  • the operation according to the control rule is performed to tighten the screw 73 supported by the electric driver instrument 72 of the hand 30 at the hand position of the robot arm 5 to the screw hole 71a.
  • a plurality of “operation IDs” (“11”, “12”) are stored in the work whose “work ID” is “3”.
  • the operation with the “operation ID” of “12” represents an operation of tightening the screw 73 when the operation command unit 27 determines that the screw hole 71a is present, as described below.
  • the “environment ID” of the operation whose “operation ID” is “12” is the environmental information of “20” and not the value of “ ⁇ 1”, so the environmental information of “environment ID” of the environmental information database 18 is “20”. Is referred to by the operation command unit 27 via the database input / output unit 28.
  • the flag of the environment information whose “environment ID” is “20” in FIG. 9A is “1” only for the 6th bit, and “0” for the other bits. Therefore, if the image is valid, the operation command unit 27 Judgment can be made.
  • the operation command unit 27 obtains image information stored in the environment information database 18 from the image ID. This image shows information of the image of the screw hole 71a in FIG. Next, the current image information is acquired by the operation command unit 27 from the environment information acquisition unit 19, the two images are compared by the operation command unit 27 by image matching, and whether or not the screw hole 71 a is present is determined by the operation command unit 27. Judge with. When the operation command unit 27 determines that the two images match, the operation command unit 27 determines that the screw hole 71a is present, and the operation to be performed with the operation stored in the “operation ID” of “12” is to be executed. Is selected by the operation command unit 27. When the operation command unit 27 determines that they do not match, the operation command unit 27 does not select the operation with the “operation ID” of “12”, and the operation command unit 27 selects only the operation with “11”.
  • the operation command unit 27 When only one “operation ID” is selected by the operation command unit 27, the operation with the same “operation ID” as the “operation ID” is input / output to / from the operation information database 17 as in the first embodiment. Reference is made by the operation command unit 27 via the unit 28.
  • the motion information having the same ID as the “motion ID” is motion information managed by a plurality of “key motion IDs” (specifically, position information, posture information, time information, and force information).
  • the operation command unit 27 issues a command to the control parameter management unit 21 so as to set the control mode and operate, and the key operation is sequentially executed from the operation command unit 27.
  • the operation information is output to the management unit 21.
  • the operation command unit 27 determines that the environment around the robot arm 5 does not match the environment information with the “environment ID” of “12” of the “operation ID” being “20”, The operation command unit 27 determines that the screw hole 71a could not be detected, and issues a command from the operation command unit 27 to the control parameter management unit 21 so as to execute the operation indicated by the “operation ID” of “11”.
  • the operation command unit 27 determines that the robot arm 5 has reached the upper part of the screw hole 71a while the robot arm 5 is moving between the screw holes 71a with the operation of “action ID” “11”, The operation command unit 27 determines that the image of the environment information with the “environment ID” of “20” of the operation with the “operation ID” of “12” matches the image of the current image information acquired by the environment information acquisition unit 19. For this reason, the operation command unit 27 selects two operations, an operation with an “operation ID” of “11” and an operation of “12”.
  • the motion calculation unit 2 of the motion command unit 27 refers to the motion information database 17 via the database input / output unit 28 by the motion command unit 27 with each “motion ID” flag (“motion ID”), and is stored there. Operation information to be finally executed is calculated based on the flag).
  • an operation having an “operation ID” of “11” and an operation of “12” are selected by the operation command unit 27, and the “operation ID” of the control rule database 16 in FIG.
  • the operation is stored in the order of “12”. Accordingly, the operation information flag of the operation with the “operation ID” of “11” is 0 to 5th bit and the bit is “1” from FIG. 22A, so the operation of the operation with the “operation ID” of “11”.
  • the motion command part 27 acquires motion information of position and orientation information (x, y, z, ⁇ , ⁇ , ⁇ ).
  • the flags of the operation whose “operation ID” is “12” are “1” for 0, 1, 3 to 5, 8, 12, 13, 15 to 17, and “0” for the others.
  • the 12th, 13th, and 15th to 17th bits are “1”.
  • the operation information of the operation with “11” is copied from the hand position information of the robot arm 5 currently being executed and replaced with the operation command unit 27.
  • the motion command unit 27 copies the position and orientation information to the motion with the “motion ID” of “11”.
  • the operation command unit 27 similarly replaces other key operation positions.
  • the operation parameter flag of the operation whose “operation ID” is “11” is “1” in the first, second and third bits, and the operation parameter flag of the operation whose “operation ID” is “12” is the eighth bit. “1”. Accordingly, the motion parameter flag of the motion calculated by the motion calculation unit 2 is “1” in the first, second, third, and eighth bits.
  • the robot arm 5 starts the operation of tightening the screw 73 into the screw hole 71a.
  • the person 4A inputs a command for starting the environmental change notification operation as shown in FIG. 26C to the operation command unit 27 via the data input IF 26.
  • the operation correction unit 20 receives a command of an environmental change notification operation from the data input IF 26 via the operation command unit 27, and sets a control mode according to the flag of the operation information database 17 so as to operate. A command is issued to the unit 21.
  • the operation correction unit 20 determines that it does not match the environment information “”, and therefore, the operation is performed only with the operation “operation ID” “11”.
  • the operation correction unit 20 determines that an operation having an “operation ID” of “11” in operation is referred to by the operation correction unit 20 from the operation information database 18 through the database input / output unit 28, the flag of each “key operation ID” in FIG.
  • the motion correction unit 20 knows that the axis is valid. Accordingly, the x-axis, y-axis, z-axis, ⁇ -axis, ⁇ -axis, and ⁇ -axis can be corrected with respect to the x-axis, y-axis, ⁇ -axis, ⁇ -axis, and ⁇ -axis so that correction can be performed with the force applied by the person 4A.
  • the operation correction unit 20 issues a command to the control parameter management unit 21 so as to operate from the control mode to the impedance control mode (mode in which the force of the person 4A is detected).
  • the motion correction unit 20 acquires the hand position and force of the robot arm 5 from the control parameter management unit 21.
  • the operation correction unit 20 outputs the control rule generation unit 23 to be described later.
  • the position is changed according to the hybrid impedance control mode. While moving the robot arm 5 in the control mode, the robot arm 5 is moved in the x-axis direction, the y-axis direction, and the z-axis direction in the direction in which the force of the person 4A is detected and applied by the impedance control mode. be able to.
  • the hand position and time of the robot arm 5 from the control parameter management unit 21 are acquired by the operation correction unit 20, and the operation is performed to the control rule generation unit 23 described later. Output from the correction unit 20.
  • the information regarding this time is a relative time with 0 when the person 4A selects a work and issues a start command.
  • the control rule generation unit 23 receives an instruction to start an environment change notification operation from the data input IF 26 via the operation command unit 27 and generates an operation change notification operation from the person 4A.
  • the hand position and time of the robot arm 5 are input from the motion correction unit 20.
  • the environment information is input from the environment information acquisition unit 19 from the start timing of the environment change notification operation.
  • the “operation ID” in operation at the start of the environment change notification operation is referred to by the control rule generation unit 23 from the operation information database 18, and the current information is obtained from the information related to the “key operation ID” flag of the “operation ID”.
  • Information regarding the control mode of the robot arm 5 is acquired by the control rule generation unit 23.
  • the type of environment information for generating a control rule from a plurality of environment information is selected.
  • the control rule generator 23 selects the selection. Specifically, at the start timing of the environment change notification operation of the work whose “work ID” is “3” in FIG. 10A, the environment change notification operation is performed in the x-axis direction and the y-axis direction as shown in FIG. 26C. . Since the x axis and the y axis are corrected in the impedance control mode, the type ID of the environment information is “1” from FIG. 11A, and “image” is selected by the control rule generation unit 23 from FIG.
  • the control rule generation unit 23 selects an image in the image capturing device 15a capable of photographing the xy plane. Specifically, as shown in FIG. 27, an image obtained by capturing the protruding member 71b of the specification change portion from the upper side downward is obtained. The selected image is stored in the environment information database 18 by the control rule generation unit 23 via the database input / output unit 28. In this example, as shown in the environment information whose “environment ID” is “21” in FIG. 9A, “21” is assigned as a new “environment ID” by the control rule generation unit 23, and “image” of the “environment ID” is displayed.
  • motion ID is newly assigned to the motion information database 17 of FIG. 22B by the motion correction unit 20 (“13” in this example), and “60” to “67” are further set as “key motion ID”.
  • the motion correction unit 20 stores the motion information corrected by the motion correction unit 20 in each “key motion ID” of the motion information database 17 via the database input / output unit 28.
  • the first key operation in this example, “60” is input.
  • a value obtained by subtracting the above time from each time of all operations is stored in the operation information database 17 by the operation correction unit 20 via the database input / output unit 28.
  • the operation before the correction and the after the correction are performed.
  • the position and orientation component is compared by the motion correction unit 20.
  • the key operation with the “key operation ID” “41” and the key operation with the “key operation ID” “60” among the components of the position and orientation (x, y, z, ⁇ , ⁇ , ⁇ ), ⁇ , ⁇ and ⁇ are the same, and the difference between the x coordinate, the y coordinate, and the z coordinate is (0.2, 0.2, 0.4), respectively. Only the component and the z component are equal to or greater than the threshold value. Therefore, the operation correction unit 20 sets the flag to 0, 1 and 2 with “1” and the others to “0”.
  • the value of the operation before correction (in this example, “41” to “48”) is stored in the operation information database 17 by the operation correction unit 20 via the database input / output unit 28.
  • control rule generation unit 23 generates and stores a new control rule in the control rule database 19 from the acquired environment information and the operation corrected by the operation correction operation of the operation correction unit 20. Specifically, in order to correct the operation while the operation of “control ID” in the control rule database 16 is “3”, the control rule generation unit 23 sets the “operation ID” to “ One line is added to the operation of “3”, and an operation whose “operation ID” is newly added by the operation correction is “13” is added.
  • the environment ID of the environment information selected by the control rule generation unit 23 is stored in the control rule database 16 via the database input / output unit 28 (in this example, the environment ID “21”).
  • the person 4A performs the environmental change notification operation and the operation correction operation, and the control rule generation unit 23 generates a new control rule, so that the operation considering the specification change of the device 71 is not prepared in advance.
  • the control rule database 16 in other words, obtaining the environment information
  • the robot arm 5 can operate autonomously (based on the control rule generated by the control rule generating unit 23 while referring to the environment information acquired by the unit 19).
  • the operation with the “operation ID” of “3” having the “operation ID” of “11” is the operation of FIG. 28A (operation of moving between the screw holes 71a), and the operation of “operation ID” is “12”.
  • 28B represents the operation information for performing the operation of FIG. 28C (the operation of avoiding the protruding member 71b of the specification change portion).
  • the motion calculation unit 2 calculates one motion information from a plurality of motions. Specifically, since the “environment ID” of the operation whose “operation ID” is “11” is a value of “ ⁇ 1”, the robot arm 5 operates regardless of the surrounding environment of the robot arm 5, The operation command unit 27 selects the operation to be performed.
  • the operation with the “operation ID” of “12” represents an operation of tightening the screw 73 into the screw hole 71a when the operation command unit 27 determines that the screw hole 71a is present.
  • the “environment ID” of the operation whose “operation ID” is “12” is the environmental information of “20” and not the value of “ ⁇ 1”, so the environmental information of “environment ID” of the environmental information database 18 is “20”.
  • the operation command unit 27 Is referred to by the operation command unit 27 via the database input / output unit 28.
  • the image information referred to in the operation command unit 27 by the environment information having the “environment ID” [20] and the current image information from the environment information acquisition unit 19 are acquired by the operation command unit 27, and two images are obtained by image matching.
  • the operation command unit 27 compares the images, and the operation command unit 27 checks whether the screw hole 71a is present. If the operation command unit 27 determines that the two images match, the operation command unit 27 determines that the screw hole 71a is present, and executes the operation stored with the operation of “12” as the “operation ID”.
  • the operation command unit 27 selects the operation to be performed.
  • the “environment ID” of the operation whose “operation ID” is “13” is the environment information of “21” and not the value of “ ⁇ 1”
  • the “environment ID” of the environment information database 18 is “21”.
  • the environmental command refers to the operation command unit 27 through the database input / output unit 28.
  • the image information referred to by the operation command unit 27 based on the environment information whose “environment ID” is “21” and the current image information from the environment information acquisition unit 19 are acquired by the operation command unit 27, and two images are obtained by image matching.
  • the operation command unit 27 determines whether or not the projecting member 71b is the specification change portion.
  • the operation command unit 27 determines that the two images match, the operation command unit 27 determines that the projecting member 71b is a specification change portion, and the “operation ID” is stored as the operation “13”.
  • the operation command unit 27 selects the operation to be executed.
  • the operation information referred to in the operation having “11” as the “operation ID” is transmitted from the operation command unit 27 to the control parameter management. It outputs to the part 21, and performs the operation
  • the operation command unit 27 selects the operation of “11” and “12” of the “operation ID”. Then, the operation with the “operation ID” “13” is not selected by the operation command unit 27. Therefore, as described above, one operation is calculated from the operation “11” and the operation “12” by the operation calculation unit 2, and the operation information calculated by the operation calculation unit 2 is transmitted from the operation command unit 27 to the control parameter. It outputs to the management part 21 and performs the operation
  • an operation with an “operation ID” of “11” and an operation of “13” is an operation command.
  • the operation selected by the unit 27 and having the “operation ID” of “12” is not selected by the operation command unit 27. Accordingly, one operation is calculated from the operations “11” and “13” by the operation calculation unit 2, and the operation information calculated by the operation calculation unit 2 is output from the operation command unit 27 to the control parameter management unit 21. Execute the operation.
  • the detouring operation of the projecting member 71b at the specification change location is corrected.
  • the force adjustment at the time of screw tightening can be similarly applied.
  • FIG. 37B (a view of the head 73a with a cross hole of the screw 73 of FIG. 37A as viewed from above) is shown. Damaged portion of the screw 73 as indicated by reference numeral 92 or a dirty portion as indicated by reference numeral 93 in FIG. 37C (view of the head 73a with a cross hole of the screw 73 of FIG. 37A from above), Similarly, it can be applied to a rust portion indicated by reference numeral 94 in 37D (view of the head 73a with a cross hole of the screw 73 in FIG. 37A as viewed from above).
  • the robot arm 5 of the robot 1 is installed on a wall surface 7a of a work table 7 such as a work table in a factory, and a base arm of the robot arm 5 is fixed to the wall surface 7a.
  • the robot arm 5 is supported on the rail 8 so as to be movable in the lateral direction along the rail 8, for example, in the horizontal direction by the force of the person 4A.
  • Reference numeral 15a denotes a first image capturing device such as a camera, which is attached so that the workbench 7 can be imaged from the ceiling 7b, for example.
  • the robot 1 performs, for example, a work performed by the robot arm 5 in cooperation with the robot arm 5 and the person 4A such as a work for attaching the flexible substrate 74 of the television or DVD recorder in the factory.
  • the person 4A directly grips the robot arm 5 of the robot 1 with the hand 4 and applies force to the robot arm 5. Then, by moving the robot arm 5 of the robot 1 along the rail 8 by the force applied to the robot arm 5 from the person 4A, the instrument 71 (in this example, a TV or DVD recorder into which the flexible board 74 is inserted). The robot arm 5 is guided to near the device).
  • the instrument 71 in this example, a TV or DVD recorder into which the flexible board 74 is inserted.
  • the person 4A presses the button 13a of the operation panel 13 of the robot 1 as an example of the data input IF 26 arranged on the front side surface 7e of the cell production work table 7 or the like, and the data input IF 26 is set.
  • the robot arm 5 is actuated to start a preselected operation, that is, an operation of inserting and attaching the flexible board 74 holding the connector portion 74a with the hand 30 to the insertion port 75 of the instrument 71.
  • the person 4A is flexible when the robot arm 5 is performing the work of attaching the flexible substrate 74.
  • the state of attachment of the substrate 74 is confirmed, and the person 4A applies a force to the robot arm 5 to correct the attachment force or to adjust the position of the flexible substrate 74, thereby correcting the robot arm 5 of the robot 1. Correct the movement.
  • the rail 8 is arranged on the wall surface 7a of the work table 7, in the case of a work table without a wall surface, it can be installed at a place suitable for work such as a ceiling surface or a side surface of the work table top 6a.
  • the operation panel 13 is fixed to the side surface of the work table 7, a remote control capable of remote operation may be used instead of the operation panel 13.
  • the motion information database 17 stores information (motion information) regarding the motion of the robot arm 5 such as the hand position and posture of the robot arm 5 at a certain time.
  • the operation information is input / output to / from the operation information database 17 by the database input / output unit 28 via the control rule generation unit 23.
  • 32A and 32B show the operation information database 17 of the fourth embodiment. Since the operation information is the same as that of the first embodiment, the description is omitted.
  • the person 4A selects a work to be executed by the robot arm 5 from the work related to “work ID” in the work of the control rule database 16 via the database input / output unit 28 by the data input IF 26,
  • the unit 27 instructs the control parameter management unit 21 to execute the operation related to the selected “work ID”.
  • the operation command unit 27 refers to the control rule database 16 through the database input / output unit 28, the operation command unit 27 selects the operation of one “work ID” and the operation command unit 27
  • the motion information is calculated by the motion calculation unit 2 and the calculated motion information (specifically, position, posture, time) , Force) according to the flag, a command is issued to the control parameter management unit 21 via the database input / output unit 28 so as to set the control mode and operate.
  • the command unit 27 selects the selection.
  • the operation with the “operation ID” of “22” is performed until the connector portion 74a of the flexible board 74 contacts the entrance of the insertion port 75 when the operation command unit 27 determines that the operation is the insertion port 75 as described below.
  • the operation of moving the flexible substrate 74 is shown. Since the “environment ID” of the operation whose “operation ID” is “22” is the environmental information of “30” and not the value of “ ⁇ 1”, the environmental information of “environment ID” of the environmental information database 18 is “30”. Is referred to by the operation command unit 27 via the database input / output unit 28.
  • the current value of the force detection unit is acquired by the operation command unit 27, and the force stored in the environment information database 18 is compared with the operation command unit 27. If the operation command unit 27 determines that these two forces match, the operation command unit 27 determines that the force received by the flexible board 74 from the insertion port 75 matches the force stored in the environment information database 18. Judgment is made and the operation command unit 27 selects the operation to be executed as the operation stored in the operation of “23” as the “operation ID”. When the operation command unit 27 determines that they do not match, the operation with the “operation ID” of “23” is not selected by the operation command unit 27 and either the operation of “21” or the operation of “22” is selected. The operation command unit 27 selects it.
  • the operation with the same “operation ID” as the “operation ID” is transmitted from the operation information database 17 via the database input / output unit 28 as in the first embodiment.
  • the motion information having the same ID as the “motion ID” is motion information managed by a plurality of “key motion IDs” (specifically, position information, posture information, time information, and force information).
  • the operation command unit 27 issues a command to the control parameter management unit 21 so as to set the control mode and operate, and the key operation is sequentially executed from the operation command unit 27.
  • the operation information is output to the management unit 21.
  • the operation command unit 27 determines that the environment around the robot arm 5 does not match the environment information with the “environment ID” of “22” of the “operation ID” being “30”, The operation command unit 27 determines that the insertion port 75 has not been detected, and issues a command from the operation command unit 27 to the control parameter management unit 21 so as to execute the operation indicated by the operation with the “operation ID” of “21”.
  • the 0th to 5th bits of the “flag” are “1”, so that the x, y, z, ⁇ , ⁇ , and ⁇ of the hand of the robot arm 5 are valid.
  • x, y, z, ⁇ , ⁇ , and ⁇ are operated in the position control mode.
  • the robot arm 5 starts to move on the device 71 as shown in FIG. 33A (viewed from above in FIG. 31).
  • the operation command unit 27 determines that the robot arm 5 has reached the upper part of the insertion port 75 while the robot arm 5 is moving on the device 71 with the operation “operation ID” being “21”, The operation command unit 27 determines that the image of the environment information having the “environment ID” “30” of the operation with the operation ID “22” matches the image of the current image information acquired by the environment information acquisition unit 19. For this reason, the motion command unit 27 selects two motions of “motion ID” “21” and “22”.
  • the motion calculation unit 2 of the motion command unit 27 refers to the motion information database 17 via the database input / output unit 28 by the motion command unit 27 with each “motion ID” flag (“motion ID”), and is stored there. Operation information to be finally executed is calculated based on the flag).
  • an operation with an “operation ID” of “21” and an operation with “22” are selected by the operation command unit 27, and “21” is set in the “operation ID” of the control rule database 16 in FIG. 10A.
  • the operation is stored in the order of “22”. Therefore, since the flag of the operation information of the operation whose “operation ID” is “21” is 0 to 5th bit and the bit is “1” from FIG. 32A, the operation of the operation whose “operation ID” is “21”.
  • the operation information of position and orientation information (x, y, z, ⁇ , ⁇ , ⁇ ) is acquired.
  • the flags of the operation whose “operation ID” is “22” are “1” in the 0th, 1st, 3rd to 5th, 8, 12, 13, 15th to 17th, and “0” for the others.
  • the 12th, 13th, and 15th to 17th bits are “1”.
  • the operation information of the operation with “21” is copied from the hand position information of the robot arm 5 currently being executed and replaced with the operation command unit 27.
  • the motion command unit 27 copies the position and orientation information to the motion having the “motion ID” of “21”.
  • the operation command unit 27 similarly replaces other key operation positions.
  • the motion calculation unit 2 selects one of the bits of “21” for the “motion ID” and “22” for the operation. In the case of “1”, the bit of the flag after calculation is set to “1”, and in the case where both are “0”, it is set to “0”. However, since each component of position and force can only be “1” in either direction (because it operates only in either position control mode or force control mode), it has become “1” in both position and force. In case, give priority to power.
  • the operation command unit 27 determines that the power of the environment information with the “environment ID” “30” of the operation “operation ID” “22” matches the image acquired by the environment information acquisition unit 19, The operation command unit 27 selects three operations, ie, an operation with an “operation ID” of “21”, an operation of “22”, and an operation of “23”.
  • each “motion ID” flag (a flag stored in the motion command database 27 by referring to the motion information database 17 through the database input / output unit 28 by “motion ID”) The operation information to be finally executed is calculated.
  • an operation with an “operation ID” of “21”, an operation of “22”, and an operation of “23” are selected, and the “operation ID” of the control rule database 16 in FIG. 10A is “21”. , “22”, and “23” are stored in this order.
  • the operation command unit 27 selects the “operation ID” having the largest number with priority. Since the flag of the operation information of the operation whose “operation ID” is “22” is 0 in the first, third, fifth, fifth, eighth, twelfth, thirteenth and seventeenth to seventeenth bits from FIG. 32A, Among the motion information of motion with “22”, position / orientation information (x, y, ⁇ , ⁇ , ⁇ ) and motion information of z component force information are acquired.
  • the operation flag whose “operation ID” is “23” the first, third, fifth, fifth, eighth, twelfth, thirteenth and seventeenth to seventeenth are “1”, and the others are “0”.
  • the 12th, 13th, and 15th to 17th bits are “1”.
  • the operation information of the operation with “11” is copied from the hand position information of the robot arm 5 currently being executed and replaced with the operation command unit 27.
  • the operation command unit 27 copies the position and orientation information to the operation with the “operation ID” of “21”.
  • the operation command unit 27 replaces the positions of other key operations.
  • the value of the component (x, y, ⁇ , ⁇ , ⁇ ) is changed to the motion information of the motion whose “motion ID” is “23”.
  • the motion calculation unit 2 calculates the replacement. Thereafter, the operation calculation unit 2 sequentially calculates until the end of the “key operation ID”.
  • a change in the size or thickness of the flexible board 74A, a change in the rigidity of the flexible board itself, and a change in the size of the insertion port 75A occur as the specification of the device 71 such as a TV or DVD recorder changes. Since the work with the “work ID” “4” generated in advance is generated before the specification change, if the operation is performed as it is, for example, the “work ID” is “ Due to the operation of “4”, there is insufficient force at the time of insertion, and it cannot be fully inserted into the insertion port 75A.
  • the person 4A inputs a command to start the environmental change notification operation to the operation command unit 27 via the data input IF 26.
  • the operation correction unit 20 receives a command of an environmental change notification operation from the data input IF 26 via the operation command unit 27, and sets a control mode according to the flag of the operation information database 17 so as to operate. A command is issued to the unit 21.
  • the “operation ID” is operating in the operation “23”.
  • the flag of each “key operation ID” in FIG. The first, third, fifth, eighth, twelfth, thirteenth and seventeenth and seventeenth portions are “1” and the others are “0”.
  • the y-axis, ⁇ -axis, ⁇ -axis, and ⁇ -axis indicate that the z-axis is effective for the force.
  • the person 4A applies a force in the z-axis direction in order to notify the force state change accompanying the specification change location on the device 71.
  • the motion correction unit 20 acquires the force of the robot arm 5 from the control parameter management unit 21, and generates a control rule to be described later Output from the operation correction unit 20 to the unit 23.
  • the motion correction unit 20 receives a command for starting a motion correction operation from the data input IF 26 via the motion command unit 27, and operates by setting a control mode according to the correction parameter flag of the motion information database 17.
  • a command is issued from the operation correction unit 20 to the control parameter management unit 21. More specifically, referring to the operation correction unit 20 from the operation information database 18 with the operation ID “23” being “operation ID” “4” in operation in FIG. In FIG. 22A, the correction parameter flag of “operation ID” is “1” only for the 8th bit and “0” for the other bits, so that only the z-axis component of the operation force of the robot arm 5 can be corrected. This can be understood by the operation correction unit 20.
  • the motion correction unit 20 issues a command to the control parameter management unit 21 so that the z-axis operates in the high-rigidity position control mode.
  • the person 4A directly grips the robot arm 5 and operates the protruding member 71b at the specification change location so as to insert a little more force.
  • the force of the hand of the robot arm 5 from the control parameter management unit 21 is acquired by the operation correction unit 20, and is output from the operation correction unit 20 to the control rule generation unit 23 described later.
  • the environment change notification operation and the motion correction operation are input separately, but if the direction of operation of the environment change notification operation and the motion correction operation is the same, the motion correction operation or the environment change notification is performed. Either one of the operations can be omitted.
  • the operation correction operation can be omitted (fifth embodiment). See).
  • the motion correction unit 20 performs the motion correction after acquiring the environment information when the person 4 performs the motion correction operation.
  • the control rule generation unit 23 uses the information on the position, posture, force, and time of the motion information database 17 referred to by the “motion ID” of the control rule database 16 to determine the impedance described later.
  • the data input IF 26 through the operation command unit 27 is used.
  • the control rule generation unit 23 receives an environment change notification operation and an operation correction start command.
  • the control rule generation unit 23 has a function of generating a control rule based on the operation information corrected by the operation correction unit 20 and the environment information acquired by the environment information acquisition unit 19 and storing it in the control rule database 16. is doing.
  • the control rule generation unit 23 receives an instruction to start an environment change notification operation from the data input IF 26 via the operation command unit 27 and generates an operation change notification operation from the person 4A.
  • the hand position and time of the robot arm 5 are input from the motion correction unit 20.
  • the environment information is input from the environment information acquisition unit 19 from the start timing of the environment change notification operation.
  • the “operation ID” in operation at the start of the environment change notification operation is referred to by the control rule generation unit 23 from the operation information database 18, and the current information is obtained from the information related to the “key operation ID” flag of the “operation ID”.
  • Information regarding the control mode of the robot arm 5 is acquired by the control rule generation unit 23.
  • each “key operation ID” flag is “1” only in the 0th, 1st, 3rd to 5th, 8, 12, 13, 15th to 17th in FIG. 32A. ”And the others are“ 0 ”, and therefore, among the movements of the robot arm 5, the x-axis, y-axis, ⁇ -axis, ⁇ -axis, ⁇ -axis, and z-axis component data are valid for the position and orientation. This is understood by the control rule generation unit 23.
  • the impedance control mode is set so that the x axis, the y axis, the ⁇ axis, and the ⁇ axis can be corrected by the force applied by the person 4A, and the high rigidity position control mode is set for the z axis.
  • the type of environment information for generating a control rule from a plurality of environment information is selected.
  • the control rule generator 23 selects the selection. Specifically, the environment change notification operation is performed in the z-axis direction as shown in FIG. 35C at the start timing of the environment change notification operation of the work whose “work ID” is “4” in FIG. 10A. Since the z-axis is corrected in the high-rigidity position control mode, the type ID of the environmental information is “2” from FIG. 11A, and “force” is selected by the control rule generation unit 23 from FIG. 11B.
  • the force detected by the force detector 53 is selected by the control rule generator 23.
  • the acquired force is stored in the environment information database 18 by the control rule generation unit 23 via the database input / output unit 28.
  • “32” is assigned as a new “environment ID” by the control rule generation unit 23, and the acquired force information is generated as a control rule for the “force” of the “environment ID”.
  • the information is stored in the environment information database 18 by the unit 23 via the database input / output unit 28.
  • the flag since the flag is only force, “1” is stored only in the 0th to 5th bits and “0” is stored in the other bits in the environment information database 18 by the control rule generation unit 23 via the database input / output unit 28. .
  • the motion information corrected by the motion correction unit 20 is stored in the motion information database 17 via the database input / output unit 28.
  • a new “motion ID” is assigned to the motion information database 17 of FIG. 32B by the motion correction unit 20 (in this example, “24”), and “key motion ID” is “90” to “98”.
  • the motion correction unit 20 stores the motion information corrected by the motion correction unit 20 in each “key motion ID” of the motion information database 17 via the database input / output unit 28.
  • the first key operation in this example, “90” is input.
  • a value obtained by subtracting the above time from each time of all operations is stored in the operation information database 17 by the operation correction unit 20 via the database input / output unit 28.
  • the operation correction unit 20 compares the components for each component, and only the components having a difference equal to or larger than a threshold value are set to “1” in the operation correction unit 20 for each component of the flag in FIG. To “0”.
  • the flag of the operation whose “operation ID” is “23” before correction is “1” for the 0th, 1st, 3rd to 5th, 8, 12, 13, 15th to 17th, and “ 0 ”, the position / orientation components x, y, ⁇ , ⁇ , ⁇ and the force z-axis component of the pre-correction and post-correction position / posture and force values are used as the motion correction unit. Compare at 20.
  • the component of the position and orientation (x, y, ⁇ , ⁇ , ⁇ ) is the same in the key operation with the “key operation ID” “77” and the key operation with the “key operation ID” “86”, and the force z If only the axial component is different and the difference threshold is 0.1 (N), only the z component of the force is greater than or equal to the threshold. Therefore, the operation correction unit 20 sets the flag to “1” for the eighth bit and “0” for the others.
  • the value of the operation before correction (in this example, “78” to “86”) is stored in the operation information database 17 by the operation correction unit 20 via the database input / output unit 28.
  • control rule generation unit 23 generates and stores a new control rule in the control rule database 19 from the acquired environment information and the operation corrected by the operation correction operation of the operation correction unit 20. Specifically, in order to correct the operation during the operation with the “work ID” of the control rule database 16 being “4”, the control rule generation unit 23 sets the “work ID” to “ One line is added to the operation of “4”, and an operation whose “operation ID” newly added by the operation correction is “24” is added.
  • the environment ID of the environment information selected by the control rule generation unit 23 is stored in the control rule database 16 via the database input / output unit 28 (in this example, the environment information whose “environment ID” is “32”).
  • the motion command unit (motion calculation unit 2) 27 can automatically operate the robot arm 5 after the specification is changed as shown in FIG. 35E by the above-described correction. Since the operation automatically performed after the specification change is the same as that of the third embodiment or the previous embodiment, the description thereof is omitted.
  • the person 4A performs the environmental change notification operation and the operation correction operation, and the control rule generation unit 23 generates a new control rule, so that the operation considering the specification change of the device 71 is not prepared in advance.
  • the control rule database 16 in other words, obtaining the environment information
  • the robot arm 5 can operate autonomously (based on the control rule generated by the control rule generating unit 23 while referring to the environment information acquired by the unit 19).
  • the basic configuration of the robot arm 5 and its control device is the same as that of the first embodiment or the fourth embodiment, so the description of the common parts is omitted and different parts. Only the above will be described in detail below.
  • the motion correction operation is omitted and one operation (here, the environmental change and the motion is performed). An example in which only the notification operation can be performed is described.
  • a robot 1 having a robot arm 5 and a control device for the robot arm 5 is used.
  • a flexible substrate 74 as an example of a work object is attached to the insertion port 75 of the device 71.
  • the robot arm 5 of the robot 1 is installed on a wall surface 7a of a work table 7 such as a work table in a factory, and a base arm of the robot arm 5 is fixed to the wall surface 7a.
  • the robot arm 5 is supported on the rail 8 so as to be movable in the lateral direction along the rail 8, for example, in the horizontal direction by the force of the person 4A.
  • Reference numeral 15a denotes a first image capturing device such as a camera, which is attached so that the workbench 7 can be imaged from the ceiling 7b, for example.
  • the robot 1 performs, for example, work performed by the robot arm 5 in cooperation with the robot arm 5 and the person 4A such as a work for attaching the flexible substrate 74 of the television or DVD recorder in a factory.
  • the person 4A directly grips the robot arm 5 of the robot 1 with the hand 4 and applies force to the robot arm 5.
  • the instrument 71 in this example, a TV or DVD recorder into which the flexible board 74 is inserted.
  • the robot arm 5 is guided to near the device).
  • the person 4A presses the button 13a of the operation panel 13 of the robot 1 as an example of the data input IF 26 arranged on the front side surface 7e of the cell production work table 7 or the like, and the data input IF 26 is set.
  • the robot arm 5 is actuated to start a preselected operation, that is, an operation of inserting and attaching the flexible board 74 holding the connector portion 74a with the hand 30 to the insertion port 75 of the instrument 71.
  • the specification of the device 71 changes the shape of the device 71 or the specification of the flexible substrate 74
  • the person 4A is flexible when the robot arm 5 is performing the work of attaching the flexible substrate 74.
  • the motion information database 17 stores information (motion information) regarding the motion of the robot arm 5 such as the hand position and posture of the robot arm 5 at a certain time.
  • the operation information is input / output to / from the operation information database 17 by the database input / output unit 28 via the control rule generation unit 23.
  • 32A and 32B show the operation information database 17 of the fifth embodiment, as in the fourth embodiment. Since the operation information is the same as that of the first embodiment, the description is omitted.
  • the person 4A selects a work to be executed by the robot arm 5 from the work related to “work ID” in the work of the control rule database 16 via the database input / output unit 28 by the data input IF 26,
  • the unit 27 instructs the control parameter management unit 21 to execute the operation related to the selected “work ID”.
  • the operation command unit 27 refers to the control rule database 16 through the database input / output unit 28, the operation command unit 27 selects the operation of one “work ID” and the operation command unit 27
  • the motion information is calculated by the motion calculation unit 2 and the calculated motion information (specifically, position, posture, time) , Force) according to the flag, a command is issued to the control parameter management unit 21 via the database input / output unit 28 so as to set the control mode and operate.
  • the robot 1 moves the insertion slot 75 while the robot arm 5 moves.
  • a control rule operation for performing an operation of inserting the connector portion 74a of the flexible board 74 in which the connector portion 74a is held by the hand 30 at the hand position of the robot arm 5 into the insertion port 75 is shown.
  • a plurality of “operation IDs” (operations “21”, “22”, and “23”) are stored in the work whose “work ID” is “4”.
  • the motion calculation unit 2 calculates one motion information from a plurality of motions. Specifically, the motion calculation unit 2 calculates one piece of motion information from among the motion with “motion ID” “21”, the motion “22”, and the motion “23”.
  • the operation with the “operation ID” of “21” means that the hand 30 at the hand position of the robot arm 5 (more precisely, the flexible board 74 gripped by the hand 30) has an insertion port 75 of the device 71 as shown in FIG. 33A.
  • movement which moves the upper part of the vicinity of is represented. Since the “environment ID” of the operation whose “operation ID” is “21” is a value of “ ⁇ 1”, the robot arm 5 operates regardless of the surrounding environment of the robot arm 5, so that the operation should be performed.
  • the command unit 27 selects the selection.
  • the operation with the “operation ID” of “22” is performed until the connector portion 74a of the flexible board 74 contacts the entrance of the insertion port 75 when the operation command unit 27 determines that the operation is the insertion port 75 as described below.
  • the operation of moving the flexible substrate 74 is shown. Since the “environment ID” of the operation whose “operation ID” is “22” is the environmental information of “30” and not the value of “ ⁇ 1”, the environmental information of “environment ID” of the environmental information database 18 is “30”. Is referred to by the operation command unit 27 via the database input / output unit 28.
  • the operation command unit 27 obtains image information stored in the environment information database 18 from the image ID. This image shows information of the image of the insertion slot 75 in FIG. Next, the current image information is acquired by the operation command unit 27 from the environment information acquisition unit 19, and the two images are compared by the operation command unit 27 by image matching. Judge with. When the operation command unit 27 determines that the two images match each other, the operation command unit 27 determines that it is an insertion slot, and the operation stored in the “operation ID” of “22” is to be executed. The operation command unit 27 selects it.
  • the operation command unit 27 determines that they do not match, the operation command unit 27 does not select the operation with the “operation ID” of “22”, and the operation command unit 27 selects only the operation with “21”.
  • the operation whose “operation ID” is “23” represents an operation of moving the flexible board 74 in order to insert the connector portion 74 a of the flexible board 74 into the insertion port 75.
  • the “environment ID” of the operation whose “operation ID” is “23” is the environment information of “31” and not the value of “ ⁇ 1”, so the environment information of “environment ID” of the environment information database 18 is “31”. Is referred to by the operation command unit 27 via the database input / output unit 28.
  • 9A is “1” only in the 0th to 5th bits and “0” in the other bits.
  • the operation command unit 27 issues a command to the control parameter management unit 21 so as to set the control mode and operate, and the key operation is sequentially executed from the operation command unit 27.
  • the operation information is output to the management unit 21.
  • the operation command unit 27 determines that the environment around the robot arm 5 does not match the environment information with the “environment ID” of “22” of the “operation ID” being “30”,
  • the operation command unit 27 determines that the insertion port 75 has not been detected, and issues a command from the operation command unit 27 to the control parameter management unit 21 so as to execute the operation indicated by the operation with the “operation ID” of “21”. That is, from the operation information database 17 of FIG.
  • the 0th to 5th bits of the “flag” are “1”, so that the x, y, z, ⁇ , ⁇ , and ⁇ of the hand of the robot arm 5 are valid.
  • x, y, z, ⁇ , ⁇ , and ⁇ are operated in the position control mode.
  • the robot arm 5 starts to move on the device 71 as shown in FIG. 33A (viewed from above in FIG. 31).
  • the operation command unit 27 determines that the robot arm 5 has reached the upper part of the insertion port 75 while the robot arm 5 is moving on the device 71 with the operation “operation ID” being “21”, The operation command unit 27 determines that the image of the environment information having the “environment ID” “30” of the operation with the operation ID “22” matches the image of the current image information acquired by the environment information acquisition unit 19. For this reason, the motion command unit 27 selects two motions of “motion ID” “21” and “22”.
  • the motion calculation unit 2 of the motion command unit 27 refers to the motion information database 17 via the database input / output unit 28 by the motion command unit 27 with each “motion ID” flag (“motion ID”), and is stored there. Operation information to be finally executed is calculated based on the flag).
  • an operation with an “operation ID” of “21” and an operation with “22” are selected by the operation command unit 27, and “21” is set in the “operation ID” of the control rule database 16 in FIG. 10A.
  • the operation is stored in the order of “22”. Therefore, since the flag of the operation information of the operation whose “operation ID” is “21” is 0 to 5th bit and the bit is “1” from FIG. 32A, the operation of the operation whose “operation ID” is “21”.
  • the operation information of position and orientation information (x, y, z, ⁇ , ⁇ , ⁇ ) is acquired.
  • the operation command unit 27 similarly replaces other key operation positions.
  • the operation calculation unit 2 sequentially calculates until the end of the “key operation ID”. For the motion information flag and the motion information flag calculated by the motion calculation unit 2, the motion calculation unit 2 selects one of the bits of “21” for the “motion ID” and “22” for the operation.
  • the operation command unit 27 issues a command to the control parameter management unit 21 so that the z-axis operates in the force control mode.
  • the robot arm 5 starts to move until the connector portion 24a of the flexible board 74 contacts the insertion port 75.
  • the operation command unit 27 selects the operation to be operated next.
  • the motion command unit 27 selects two motions, the motion having the motion ID “21” and the motion “23”. Furthermore, when the operation command unit 27 determines that the power of the environment information with the “environment ID” “30” of the operation “operation ID” “22” matches the image acquired by the environment information acquisition unit 19, The operation command unit 27 selects three operations, ie, an operation with an “operation ID” of “21”, an operation of “22”, and an operation of “23”.
  • each “motion ID” flag (a flag stored in the motion command database 27 by referring to the motion information database 17 through the database input / output unit 28 by “motion ID”)
  • the operation information to be finally executed is calculated.
  • an operation with an “operation ID” of “21”, an operation of “22”, and an operation of “23” are selected, and the “operation ID” of the control rule database 16 in FIG. 10A is “21”. , “22”, and “23” are stored in this order.
  • the operation command unit 27 selects the “operation ID” having the largest number with priority.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Manipulator (AREA)

Abstract

 動作情報データベース(17)に記憶されたロボットアーム(5)の動作情報を取得し、人(4A)がロボットアームを操作してその動作補正時の補正動作情報を取得し、環境情報を取得部(19)で取得し、ロボットアームが動作中に動作情報を動作補正部(20)で補正し、補正された動作情報と取得した環境情報とにより、ロボットアームが自動で動作するための制御ルールを制御ルール生成部(23)で生成し、生成された制御ルールに基づいてロボットアームの動作を制御する。

Description

ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路
 本発明は、ロボットアームの動作を生成及び教示するためのロボットアームの制御装置及び制御方法、ロボットアームの制御装置を有するロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路に関する。
 近年、介護ロボット又は家事支援ロボットなどの家庭用ロボットが盛んに開発されるようになってきた。家庭ロボットは産業用ロボットと異なり、家庭の素人が操作するため、動作を簡単に教示できる必要がある。さらに、ロボットが作業する際の動作環境も、家庭に応じて様々であるため、多種多様な家庭環境に柔軟に対応する必要がある。
 ロボット装置の教示方法の一例として、ロボットの手首などに力センサを装着し、力センサの先に装着されたハンドルを教示者が直接把持してロボットを教示点に誘導し、ロボットの位置の教示を行っている(特許文献1を参照)。
特開昭59-157715号公報
 しかしながら、特許文献1においては、全ての教示点を教示者が教示する必要があるため、教示に時間がかかり、非常に面倒であった。さらに、産業用分野にて、教示した動きの一部を修正する場合に、ティーチングペンダントと呼ばれる遠隔装置により、プログラミングにより修正するか、若しくは、全ての動作を一から教示しなければならず、効率が悪かった。
 特に、家庭用ロボットでは、できるだけ教示する時間を短くする必要がある。さらに、ティーチングペンダンドなどの遠隔装置を用いたプログラミングの併用は、操作ステップが増大し、プログラミング言語の習得が必要となり、家庭の素人には困難である。
 また、特許文献1で記載しているように、産業ロボットでは、ロボットの動作を教示する教示作業とロボットが実際に作業する本作業とは明確に分けて行っている。しかし、家庭において、教示した作業を実行する場合に、教示を行った環境とは異なる環境に変動することが頻繁に起こるため、教示作業をそのまま実行しても、環境変動によりロボットが停止したり、誤って作業をしてしまうことがある。ここで環境変動とは、ロボットが動作する際の周辺の物の位置又は状態の変動と、人又はロボットが周辺環境に対して直接作用することによる物の位置又は状態の変動を指す。例えば、家庭環境においては、家にある物の配置又は形状が様々であり、例えば、調理作業における調理前と調理後では、物の形又は状態が変わるなどの環境の変動が起こる。さらに、産業用途では、セル生産時のフレキシブル基盤などの柔軟物の形状が変化したり、配線時のコネクタの位置が頻繁に変動する。また、リサイクル工場では、解体する家電製品の形が様々であり、さらに、図37B(図37Aのネジ73の頭部73aを上から見た図)に示すようなネジの破損部分92、又は、図37Cのような汚れ部分93、図37Dのようなさび部分94などの経年変化により形状が様々である。
 これらの環境変動の全てを事前に想定して教示しておくことは、困難である。
 さらに、組み立て作業などの製造現場において、モデルチェンジが頻繁に発生するために、教示作業が頻繁に発生する。
 そこで、環境変動又はモデルチェンジの度に、一から全ての動作を教示するのではなく、動作中のロボットに対して、人が状況の認識を行い、環境変化があれば、人がその都度ロボットに伝達することで、教示を意識させずに操作することが可能となる。また、教示時に予期していない環境の変動が起こった場合にでも、その都度、人が教示することでロボットを動作させることが可能となる。
 しかしながら、この方法では、環境の変動が発生する度に、人が毎回操作をしなければならず、面倒であった。
 本発明の目的は、このような課題に鑑みてなされたものであり、予測できない環境の変動があっても、作業者が簡単で短時間にロボットアームの教示を行うことが可能なロボット制御を実現することができる、ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路である。
 上記の目的を達成するために、本発明は以下のように構成する。
 本発明の第1態様によれば、ロボットアームの動作を制御する、ロボットアームの制御装置であって、
 前記動作に対応する、前記ロボットアームの位置、姿勢、及び、速度の少なくとも1つ以上が時系列に動作情報として記憶された動作情報データベースから前記動作情報を取得する動作情報取得部と、
 人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に前記動作情報取得部で取得した前記動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を取得する補正動作情報取得部と、
 前記ロボットアームが作用する対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて取得する環境情報取得部と、
 前記動作情報取得部で取得した前記動作情報に基づいて前記ロボットアームを移動するよう位置制御モードで前記ロボットアームを制御する位置制御部と、
 前記位置制御部の制御により前記ロボットアームが前記位置制御モードで移動している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を補正する動作補正部と、
 前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを生成する制御ルール生成部とを備えて、
 前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するロボットアームの制御装置を提供する。
 本発明の第2態様によれば、ロボットアームの動作を制御する、ロボットアームの制御装置であって、
 前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから前記動作情報を取得する動作情報取得部と、
 人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に、前記動作情報取得部で取得した前記動作情報に関連しかつ前記ロボットアームが加える力に関する補正動作情報を取得する補正動作情報取得部と、
 前記ロボットアームが作用する前記対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて取得する環境情報取得部と、
 前記動作情報取得部で取得した前記動作情報に設定された力で前記対象物に対して前記ロボットアームが力制御を行なうよう前記ロボットアームを力制御モードで制御する制御部と、
 前記制御部により前記ロボットアームを前記力制御モードで制御している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を補正する動作補正部と、
 前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを生成する制御ルール生成部とを備えて、
 前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するロボットアームの制御装置を提供する。
 本発明の第12態様によれば、ロボットアームの動作を制御する、ロボットアームの制御方法であって、
 前記動作に対応する、前記ロボットアームの位置、姿勢、速度の少なくとも1つ以上が時系列に動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得し、
 人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に前記動作情報取得部で取得した前記動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を補正動作情報取得部で取得し、
 前記ロボットアームが作用する対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて環境情報取得部で取得し、
 前記動作情報取得部で取得した前記動作情報に基づいて前記ロボットアームを移動するよう位置制御モードで前記ロボットアームを位置制御部で制御し、
 前記位置制御部の制御により前記ロボットアームが前記位置制御モードで移動している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正し、
 前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成し、
 前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するロボットアームの制御方法を提供する。
 本発明の第13態様によれば、前記ロボットアームと、
 前記ロボットアームを制御する第1~11のいずれか1つの態様に記載の前記ロボットアームの制御装置とを備えるロボットを提供する。
 本発明の第14態様によれば、ロボットアームの動作を制御する、ロボットアームの制御プログラムであって、
 前記動作に対応する、前記ロボットアームの位置、姿勢、速度の少なくとも1つ以上が時系列に動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得するステップと、
 人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に前記動作情報取得部で取得した前記動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を補正動作情報取得部取得するステップと、
 前記ロボットアームが作用する対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて環境情報取得部で取得するステップと、
 前記動作情報取得部で取得した前記動作情報に基づいて前記ロボットアームを移動するよう位置制御モードで前記ロボットアームを位置制御部で制御するステップと、
 前記位置制御部の制御により前記ロボットアームが前記位置制御モードで移動している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正するステップと、
 前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成するステップと、
 前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するステップとを実行させるためのロボットアームの制御プログラムを提供する。
 本発明の第15態様によれば、ロボットアームの動作を制御する、ロボットアーム制御用集積電子回路であって、
 前記動作に対応する、前記ロボットアームの位置、姿勢、速度の少なくとも1つ以上が時系列に動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得し、
 人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に前記動作情報取得部で取得した前記動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を補正動作情報取得部で取得し、
 前記ロボットアームが作用する対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて環境情報取得部で取得し、
 前記動作情報取得部で取得した前記動作情報に基づいて前記ロボットアームを移動するよう位置制御モードで前記ロボットアームを位置制御部で制御し、
 前記位置制御部の制御により前記ロボットアームが前記位置制御モードで移動している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正し
 前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成し、
 前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するロボットアーム制御用集積電子回路を提供する。
 以上述べたように、本発明は、周辺環境が変化した際に、人がロボットアームを操作して動作を補正することで、次回同じ環境になった場合に、環境情報取得部で取得した環境情報を参照しながら、制御ルール生成部により生成された制御ルールに基づいてロボットアームを自律的に動作させることが可能となる。
 本発明のこれらと他の目的と特徴は、添付された図面についての好ましい実施形態に関連した次の記述から明らかになる。この図面においては、
図1Aは、本発明の第1実施形態における、ロボットアームとその制御装置とを備えるロボットの構成の概要を示す図であり、 図1Bは、本発明の前記第1実施形態における前記ロボット及びその周辺環境の概要を示す図であり、 図1Cは、本発明の前記第1実施形態における前記ロボット及びその周辺環境の概要を示す図であり、 図2は、本発明の前記第1実施形態におけるロボットを構成する前記制御装置と制御対象である前記ロボットアームとの詳細構成を示す図であり、 図3Aは、本発明の前記第1実施形態における座標系に関する図であり、 図3Bは、本発明の前記第1実施形態における座標系に関する図であり、 図3Cは、本発明の前記第1実施形態における座標系に関する図であり、 図4は、本発明の前記第1実施形態における前記制御装置の制御部の構成を示すブロック図であり、 図5Aは、前記制御装置の動作情報データベースのデータである動作情報を説明する図であり、 図5Bは、前記制御装置の前記動作情報データベースのデータである動作情報を説明する図であり、 図5Cは、前記制御装置の前記動作情報データベースのデータである動作情報を説明する図であり、 図6は、前記制御装置の前記動作情報データベースのフラグの情報を説明する図であり、 図7は、前記制御装置の前記動作情報データベースの補正パラメータフラグに関する情報を説明する図であり、 図8は、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図であり、 図9Aは、前記制御装置の環境情報データベースの環境情報の一覧表を説明する図であり、 図9Bは、前記制御装置の前記環境情報データベースのフラグの情報を説明する図であり、 図10Aは、前記制御装置の制御ルールデータベースの制御ルールの一覧表を説明する図であり、 図10Bは、前記制御装置の前記制御ルールデータベースの制御ルールの一覧表を説明する図であり、 図11Aは、前記制御装置の検出部選択ルールデータベースの検出部選択ルールの一覧表を説明する図であり、 図11Bは、前記制御装置の前記検出部選択ルールデータベースの検出部選択ルールの環境情報の種別に関する情報を説明する図であり、 図12は、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図13Aは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図13Bは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図13Cは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図であり、 図13Dは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図であり、 図13Eは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図14は、本発明の前記第1実施形態における環境情報の画像の例を示す図であり、 図15は、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図16は、本発明の前記第1実施形態における前記制御部の動作ステップを表すフローチャートであり、 図17Aは、本発明の前記第1実施形態における動作指令部の動作ステップを表すフローチャートであり、 図17Bは、本発明の前記第1実施形態における動作補正部と動作指令部と制御ルール生成部と環境情報取得部と制御パラメータ管理部との動作ステップを表すフローチャートであり、 図18Aは、本発明の第2実施形態におけるロボットアームの制御装置の動作及び人の操作状態を示す図であり、 図18Bは、本発明の前記第2実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図であり、 図19Aは、本発明の前記第2実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図19Bは、本発明の前記第2実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図であり、 図19Cは、本発明の前記第2実施形態における前記ロボットアームの制御装置の動作状態を示す側面図であり、 図19Dは、本発明の前記第2実施形態における前記ロボットアームの制御装置の動作状態を示す平面図であり、 図19Eは、本発明の前記第2実施形態における前記ロボットアームの制御装置の動作状態を示す平面図であり、 図20は、本発明の前記第2実施形態における環境情報の画像の例を示す図であり、 図21は、本発明の第3実施形態におけるロボットの概要を示す図であり、 図22Aは、前記第3実施形態におけるロボットのロボットアームの制御装置の動作情報データベースの動作情報の一覧表を説明する図であり、 図22Bは、前記第3実施形態におけるロボットのロボットアームの制御装置の前記動作情報データベースの動作情報の一覧表を説明する図であり、 図23は、前記第3実施形態におけるロボットのロボットアームの制御装置の前記動作情報データベースのフラグの情報を説明する図であり、 図24Aは、本発明の前記第3実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図24Bは、本発明の前記第3実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図25は、本発明の前記第3実施形態における環境情報の画像の例を示す図であり、 図26Aは、本発明の前記第3実施形態における前記ロボットアームの制御装置の動作状態を示す図(ただし、図の簡略化のため、電動ドライバ器具を省略して、ハンドにネジを直接把持した状態で図示している。)であり、 図26Bは、本発明の前記第3実施形態における前記ロボットアームの制御装置の動作状態を示す図(ただし、図の簡略化のため、電動ドライバ器具を省略して、ハンドにネジを直接把持した状態で図示している。)であり、 図26Cは、本発明の前記第3実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図(ただし、図の簡略化のため、電動ドライバ器具を省略して、ハンドにネジを直接把持した状態で図示している。)であり、 図26Dは、本発明の前記第3実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図(ただし、図の簡略化のため、電動ドライバ器具を省略して、ハンドにネジを直接把持した状態で図示している。)であり、 図27は、本発明の前記第3実施形態における前記ロボットアームの制御装置の環境情報の画像の例を示す図であり、 図28Aは、本発明の前記第3実施形態におけるロボットアームの制御装置の動作状態を示す図(ただし、図の簡略化のため、電動ドライバ器具を省略して、ハンドにネジを直接把持した状態で図示している。)であり、 図28Bは、本発明の前記第3実施形態におけるロボットアームの制御装置の動作状態を示す図(ただし、図の簡略化のため、電動ドライバ器具を省略して、ハンドにネジを直接把持した状態で図示している。)であり、 図28Cは、本発明の前記第3実施形態におけるロボットアームの制御装置の動作状態を示す図(ただし、図の簡略化のため、電動ドライバ器具を省略して、ハンドにネジを直接把持した状態で図示している。)であり、 図29は、本発明の前記第1実施形態における動作指令部の動作ステップを表すフローチャートであり、 図30Aは、前記第1実施形態における人のかける力とその時刻の関係を示す図であり、 図30Bは、前記第1実施形態における人のかける力とその時刻の関係を示す図であり、 図31は、本発明の第4実施形態におけるロボットアームの制御装置の構成の概要を示す図であり、 図32Aは、前記第4実施形態における動作情報データベースの動作情報の一覧表を説明する図であり、 図32Bは、前記第4実施形態における前記動作情報データベースの動作情報の一覧表を説明する図であり、 図33Aは、本発明の前記第4実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図33Bは、本発明の前記第4実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図33Cは、本発明の前記第4実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図34は、本発明の前記第4実施形態における環境情報の画像の例を示す図であり、 図35Aは、本発明の前記第4実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図35Bは、本発明の前記第4実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図35Cは、本発明の前記第4実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図であり、 図35Dは、本発明の前記第4実施形態における前記ロボットアームの制御装置の動作及び人の操作状態を示す図であり、 図35Eは、本発明の前記第4実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図36Aは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図36Bは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図36Cは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図36Dは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図36Eは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図36Fは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図36Gは、本発明の前記第1実施形態における前記ロボットアームの制御装置の動作状態を示す図であり、 図37Aは、従来のネジの斜視図であり、 図37Bは、従来の破損部分のあるネジの頭部の平面図であり、 図37Cは、従来の汚れ部分のあるネジの頭部の平面図であり、 図37Dは、従来のさび部分のあるネジの頭部の平面図である。
 以下に、本発明にかかる実施の形態を図面に基づいて詳細に説明する。
 以下、図面を参照して本発明における実施形態を詳細に説明する前に、本発明の種々の態様について説明する。
 本発明の第1態様によれば、ロボットアームの動作を制御する、ロボットアームの制御装置であって、
 前記動作に対応する、前記ロボットアームの位置、姿勢、及び、速度の少なくとも1つ以上が時系列に動作情報として記憶された動作情報データベースから前記動作情報を取得する動作情報取得部と、
 人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に前記動作情報取得部で取得した前記動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を取得する補正動作情報取得部と、
 前記ロボットアームが作用する対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて取得する環境情報取得部と、
 前記動作情報取得部で取得した前記動作情報に基づいて前記ロボットアームを移動するよう位置制御モードで前記ロボットアームを制御する位置制御部と、
 前記位置制御部の制御により前記ロボットアームが前記位置制御モードで移動している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を補正する動作補正部と、
 前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを生成する制御ルール生成部とを備えて、
 前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するロボットアームの制御装置を提供する。
 本発明の第2態様によれば、ロボットアームの動作を制御する、ロボットアームの制御装置であって、
 前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから前記動作情報を取得する動作情報取得部と、
 人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に、前記動作情報取得部で取得した前記動作情報に関連しかつ前記ロボットアームが加える力に関する補正動作情報を取得する補正動作情報取得部と、
 前記ロボットアームが作用する前記対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて取得する環境情報取得部と、
 前記動作情報取得部で取得した前記動作情報に設定された力で前記対象物に対して前記ロボットアームが力制御を行なうよう前記ロボットアームを力制御モードで制御する制御部と、
 前記制御部により前記ロボットアームを前記力制御モードで制御している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を補正する動作補正部と、
 前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを生成する制御ルール生成部とを備えて、
 前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するロボットアームの制御装置を提供する。
 本発明の第3態様によれば、前記環境情報取得部は、前記ロボットアームに加えられた前記人の力を検出する力検出部を備えて、
 前記力検出部で検出された前記人の力とその検出時間とに応じて前記人が前記ロボットアームを操作したことを検出して、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する前記補正動作情報を前記補正動作情報取得部で取得する第1又は2の態様に記載のロボットアームの制御装置を提供する。
 本発明の第4態様によれば、前記環境情報取得部は、前記ロボットアーム及び前記ロボットアームの前記動作を行う周辺環境を撮像可能な複数の画像撮像装置を備え、
 前記制御ルール生成部は、前記人の前記ロボットアームの操作時の前記ロボットアームの前記位置制御モードに応じて、前記環境情報取得部の前記複数の画像撮像装置で取得した複数の環境情報の中から、制御ルール生成の際の環境情報の種別を決定する第1の態様に記載のロボットアームの制御装置を提供する。
 本発明の第5態様によれば、前記環境情報取得部は、前記ロボットアームに加えられた前記人の力を検出する力検出部を備えて、
 前記制御ルール生成部は、前記人の前記ロボットアームの操作時の前記ロボットアームの前記力制御モードに応じて、制御ルール生成の際に前記力検出部で取得した環境情報を使用する第2の態様に記載のロボットアームの制御装置を提供する。
 本発明の第6態様によれば、前記制御ルール生成部は、前記ロボットアームの前記人の環境変化通知操作に応じて取得する環境情報を決定する第1~5のいずれか1つの態様に記載のロボットアームの制御装置を提供する。
 本発明の第7態様によれば、前記環境情報は、複数種類の検出方向から検出され取得された環境情報を有し、
 前記制御ルール生成部は、前記ロボットアームの前記人の操作に応じて取得する前記環境情報の検出方向を決定する第6の態様に記載のロボットアームの制御装置を提供する。
 本発明の第8態様によれば、前記制御ルール生成部で生成された制御ルールのうちの複数の動作情報から、前記環境情報取得部で取得した前記環境情報を参照して1つの動作情報を算出する動作算出部をさらに備える第1~7のいずれか1つの態様に記載のロボットアームの制御装置を提供する。
 本発明の第9態様によれば、前記人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正して、前記動作情報取得部で取得した前記動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を前記補正動作情報取得部で取得したのち、
 前記環境情報取得部で取得した前記環境情報が、前記補正の操作時の前記環境情報と同じであるときに、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を、前記補正動作情報取得部で取得した前記補正動作情報に基づき補正するように制御する第1~7のいずれか1つの態様に記載のロボットアームの制御装置を提供する。
 本発明の第10態様によれば、前記環境情報取得部は、前記ロボットアーム及び前記ロボットアームの前記動作を行う周辺環境を撮像可能な複数の画像撮像装置を備え、
 前記ロボットアームの先端には、ネジを回転可能な作業用治具を着脱可能に把持可能なハンドを備え、前記作業用治具は前記対象物であり、
 前記複数の画像撮像装置で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記ハンドに把持した前記作業用治具で前記ネジの締め付け又は取り外し作業において前記ロボットアームの前記動作を制御する、第1の態様に記載のロボットアームの制御装置を提供する。
 本発明の第11態様によれば、前記環境情報取得部は、前記ロボットアーム及び前記ロボットアームの前記動作を行う周辺環境を撮像可能な複数の画像撮像装置を備え、
 前記ロボットアームの先端には、フレキシブル基板を着脱可能に把持可能なハンドを備え、前記フレキシブル基板は前記対象物であり、
 前記複数の画像撮像装置で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記ハンドに把持した前記フレキシブル基板を機器に取り付ける作業において前記ロボットアームの前記動作を制御する、第2の態様に記載のロボットアームの制御装置を提供する。
 本発明の第12態様によれば、ロボットアームの動作を制御する、ロボットアームの制御方法であって、
 前記動作に対応する、前記ロボットアームの位置、姿勢、速度の少なくとも1つ以上が時系列に動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得し、
 人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に前記動作情報取得部で取得した前記動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を補正動作情報取得部で取得し、
 前記ロボットアームが作用する対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて環境情報取得部で取得し、
 前記動作情報取得部で取得した前記動作情報に基づいて前記ロボットアームを移動するよう位置制御モードで前記ロボットアームを位置制御部で制御し、
 前記位置制御部の制御により前記ロボットアームが前記位置制御モードで移動している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正し、
 前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成し、
 前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するロボットアームの制御方法を提供する。
 本発明の第13態様によれば、前記ロボットアームと、
 前記ロボットアームを制御する第1~11のいずれか1つの態様に記載の前記ロボットアームの制御装置とを備えるロボットを提供する。
 本発明の第14態様によれば、ロボットアームの動作を制御する、ロボットアームの制御プログラムであって、
 前記動作に対応する、前記ロボットアームの位置、姿勢、速度の少なくとも1つ以上が時系列に動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得するステップと、
 人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に前記動作情報取得部で取得した前記動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を補正動作情報取得部取得するステップと、
 前記ロボットアームが作用する対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて環境情報取得部で取得するステップと、
 前記動作情報取得部で取得した前記動作情報に基づいて前記ロボットアームを移動するよう位置制御モードで前記ロボットアームを位置制御部で制御するステップと、
 前記位置制御部の制御により前記ロボットアームが前記位置制御モードで移動している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正するステップと、
 前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成するステップと、
 前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するステップとを実行させるためのロボットアームの制御プログラムを提供する。
 本発明の第15態様によれば、ロボットアームの動作を制御する、ロボットアーム制御用集積電子回路であって、
 前記動作に対応する、前記ロボットアームの位置、姿勢、速度の少なくとも1つ以上が時系列に動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得し、
 人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に前記動作情報取得部で取得した前記動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を補正動作情報取得部で取得し、
 前記ロボットアームが作用する対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて環境情報取得部で取得し、
 前記動作情報取得部で取得した前記動作情報に基づいて前記ロボットアームを移動するよう位置制御モードで前記ロボットアームを位置制御部で制御し、
 前記位置制御部の制御により前記ロボットアームが前記位置制御モードで移動している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正し
 前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成し、
 前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するロボットアーム制御用集積電子回路を提供する。
 以下、本発明の各実施形態について図面を用いて詳細に説明する。
 (第1実施形態)
 本発明の第1実施形態における、ロボットアームとその制御装置とを備えるロボット1の構成について説明する。
 図1Aは、本発明の第1実施形態におけるロボットアーム5と、そのロボットアーム5を駆動制御する制御装置70とを備えるロボット1の概要を示す。図1Bは、ロボットアーム5が作業を行う図1Aの作業台7を上方から見た図であり、図1Cは図1Aの作業台7及び鍋3を正面から見た図である。
 (装置構成)
 図1Aに示すように、ロボット1のロボットアーム5は、例えば家庭内のキッチン又はテーブルなどの作業台7の壁面7aに設置される。ロボットアーム5の基端5aが、壁面7aに固定されたレール8に対して移動可能な状態で支持され、ロボットアーム5が、レール8上に沿って横方向(例えば水平方向)に、人4Aの手4の力により、移動可能としている。ロボットアーム5の基端の固定場所は、作業台7の壁面7aに限られるものではなく、天井などでもよい。
 後述する環境情報取得部19の一例としての、カメラなどの第1及び第2画像撮像装置15a及び15bは、ロボットアーム5及びロボットアーム5の動作を行う周辺環境を撮像して環境情報を取得可能としている。本第1実施形態において、第1画像撮像装置15aは、図1Cに示すように、天井7bから作業台7の全体を撮像可能なように天井7bから下向きに取り付けられ、第2画像撮像装置15bは、図1B、図1Cに示すように、作業台7の上面7dと平行に作業台7の側面7cに取り付けられ、作業台7の上面付近を横方向から撮像可能としている。
 ロボット1の操作を指示する操作盤13は、データ入力IF26の一例として機能し、IHクッキングヒーター又はガスコンロなどの調理装置6の前側側面に配置されている。操作盤13は、ユーザによる操作指示を入力するための操作ボタン13a又は音声入力装置などが設けられている。
 ロボットアーム5の先端にはハンド30が設けられ、ハンド30は作業用冶具9(例えばレードルなどの調理用具、又は、拭き掃除用モップなど、又は、電動ドライバ器具72など)を着脱可能に把持する。ハンド30としては、例えば、機械的チャックなど公知の着脱可能な取り付け機構を使用することができる。
 表示手段の一例としての表示部95は、例えば作業台7に設置されたディスプレイ装置であり、後述するロボットの動作などを表示部95に表示する。すなわち、表示部95は、必要に応じて、必要な情報を表示部95に表示して、本発明の様々な動作を円滑に行なえるようにする。
 尚、レール8は、作業台7の壁面7aに配置したが、壁面の無いアイランドキッチンの場合は、天井面又はアイランドキッチンの天板6aの側面など作業をするのに適した場所に設置することができる。
 さらに、データ入力IF26の一例としての操作盤13は、調理装置6の側面に固定したが、操作盤13に代えて、遠隔操作が可能なリモコンでも良い。
 ロボット1は、例えば、家庭内において、ロボットアーム5を使用して、鍋3の中の具材をかき混ぜる作業、又は、キッチンの汚れ91をふき取る作業(図19Bなどに示す、汚れた部分91での拭き掃除作業)などを、ロボットアーム5と人4Aとが協働して行う。
 以下、一例として、まず、ロボットアーム5により、かき混ぜ作業を行う場合の動作について図1Aを用いて簡単に説明する。
 まず、人4Aがロボット1のロボットアーム5を直接把持し、人4Aが手4でロボットアーム5に力を加える。そして、人4Aからロボットアーム5に加えられた力により、ロボットアーム5がレール8に沿って移動し、例えば鍋などの調理器具3の付近までロボットアーム5が誘導される。
 次に、人4Aが、手4でロボットアーム5の先端のハンド30に、作業用冶具9の一例として、かき混ぜ作業のためのレードルなどの調理用具9を取り付ける。
 次に、人4Aが、手4で操作盤13から、ロボットアーム5に動作開始指令を入力すると、ロボットアーム5が作動し、予め選択された作業、すなわち、かき混ぜ作業を開始させる。
 ロボットアーム5がレードル9により鍋3の中でかき混ぜているとき、人4Aがかき混ぜている具材の状態を確認し、人4Aがロボットアーム5を直接把持して、補正したい方向にロボットアーム5に力を加えることで、ロボットアーム5の動作を補正する。
 調理終了後、人4Aは、ロボットアーム5を調理器具の一例としての鍋3内から鍋3の外部に移動させて、次の作業に移行する。
 次に、本第1実施形態のロボット1の詳細を説明する。図2はロボットアーム5と、ロボットアーム5の制御装置70との詳細構成図である。ロボットアーム5の制御装置70は、図2に示すように、制御装置本体部11と、ロボットアーム5の動作を生成する動作生成装置12と、周辺装置14とを備えている。
 《ロボットアーム》
 第1実施形態のロボットアーム5は、一例として、6自由度の多リンクマニピュレータで構成される多関節ロボットアームとする。ロボットアーム5は、ハンド30と、ハンド30が取り付けられている手首部31を先端32aに有する前腕リンク32と、前腕リンク32の基端32bに回転可能に先端33aが連結される上腕リンク33と、上腕リンク33の基端33bが回転可能に連結支持される台部34とを備えている。台部34は、移動可能なレール8に連結されているが、一定位置に固定されていても良い。手首部31は、第4関節部38と、第5関節部39と、第6関節部40との3つの回転軸を有しており、前腕リンク32に対するハンド30の相対的な姿勢(向き)を変化できる。すなわち、図2において、第4関節部38は、手首部31に対するハンド30の横軸(ψ)周りの相対的な姿勢を変化できる。第5関節部39は、手首部31に対するハンド30の、第4関節部38の横軸とは直交する縦軸(Φ)周りの相対的な姿勢を変化させることができる。第6関節部40は、手首部31に対するハンド30の、第4関節部38の横軸(ψ)及び第5関節部39の縦軸(φ)とそれぞれ直交する横軸(θ)周りの相対的な姿勢を変化できる。前腕リンク32の他端は、上腕リンク33の先端に対して第3関節部37周りに、すなわち、第4関節部38の横軸と平行な横軸周りに回転可能とする。上腕リンク33の他端は、台部34に対して第2関節部36周りに、すなわち、第4関節部38の横軸と平行な横軸周りに回転可能とする。さらに、台部34の上側可動部34aは、台部34の下側固定部34bに対して第1関節部35周りに、すなわち、第5関節部39の縦軸と平行な縦軸周りに回転可能としている。
 この結果、ロボットアーム5は、合計6個の軸周りに回転可能として前記6自由度の多リンクマニピュレータを構成している。
 各軸の回転部分を構成する各関節部(具体的には第1関節部35~第6関節部40)には、一例としてモータ43のような回転駆動装置と、モータ43の回転軸の回転位相角(すなわち関節角)を検出するエンコーダ44を備えている。
 この第1実施形態のモータ43は、ロボットアーム5の各関節部の内部に配設されている。モータ43は、各関節部を構成する2つのリンク部材(例えば、回動側部材と、該回動側部材を支持する支持側部材)のうちの一方のリンク部材に備えられるとともに、その一方のリンク部材に備えられかつ後述するモータドライバ25によりモータ43が駆動制御される。各関節部の前記一方のリンク部材の関節部の近傍部分に備えられたモータ43の回転軸が、他方のリンク部材の関節部の近傍部分に連結されて、前記回転軸を正逆回転させることにより、前記他方のリンク部材を前記一方のリンク部材に対して第1関節部35~第6関節部40のそれぞれの各軸周りに回転可能とする。また、エンコーダ44は、モータ43の回転軸の回転位相角(すなわち、関節角)を検出するために、一方のリンク部材に備えられる(実際には、ロボットアーム5の各関節部の一方のリンク部材の内部に配設されている)。
 41は台部34の下側固定部34bに対して相対的な位置関係が固定された絶対座標系であり、42はハンド30に対して相対的な位置関係が固定された手先座標系である。絶対座標系41から見た手先座標系42の原点位置O(x,y,z)をロボットアーム5の手先位置(ハンド30の位置)とし、絶対座標系41から見た手先座標系42の姿勢をロール角とピッチ角とヨー角で表現した(φ,θ,ψ)をロボットアーム5の手先姿勢とし、手先位置及び姿勢ベクトルをベクトルr=[x,y,z,φ,θ,ψ]と定義する。
 図3は、本発明の第1実施形態におけるロボットアーム5の座標系を示す。
 この第1実施形態では、絶対座標系35のZ軸を回転軸として、座標系を角度φだけ回転させた座標系を考える(図3A参照)。このときの座標軸を[X',Y',Z]とする。
 次に、この座標系を、Y'を回転軸として角度θだけ回転させる(図3B参照)。このときの座標軸を[X'',Y',Z'']とする。
 最後に、この座標系を、X''軸を回転軸として角度ψだけX''軸周りに回転させる(図3C参照)。このときの座標軸を[X'',Y'''、Z''']とする。このときの座標系の姿勢をロール角度φ、ピッチ角度θ、ヨー角度ψとし、このときの姿勢ベクトルは(φ,θ,ψ)となる。姿勢(φ,θ,ψ)の座標系が原点位置を手先座標系42の原点位置O(x,y,z)に平行移動した座標系と、手先座標系42が一致する場合、手先座標系42の姿勢ベクトルは(φ,θ,ψ)であるとする。
 ロボットアーム5の手先位置及び姿勢を制御する場合には、手先位置及び姿勢ベクトルrを、後述する目標軌道生成部55で生成された手先位置及び姿勢目標ベクトルrに追従させることになる。
 ロボットアーム5は、後述する動作生成装置12と、制御装置本体部11と、周辺装置14とを備えたロボットアームの制御装置により、次にように動作制御される。
 ロボットアーム5の各関節部の、後述するエンコーダ44より出力される各関節角度情報が、入出力IF(インターフェース)24のカウンタボードを通じて制御装置本体部11に取り込まれる。取り込まれた各関節角度情報に基づき制御装置本体部11によって各関節部の回転動作での制御指令値が算出される。制御装置本体部11によって算出された各制御指令値は、入出力IF24のD/Aボードを通じて、ロボットアーム5の各関節部を駆動制御するためのモータドライバ25に与えられる。モータドライバ25から送られた前記各制御指令値に従って、ロボットアーム5の各関節部のモータ43が独立して正逆回転駆動される。
 また、モータドライバ25により駆動制御されるハンド用駆動装置の一例としてハンド30は、ハンド開閉駆動用のモータ62と、ハンド開閉駆動用のモータ62の回転軸の回転位相角を検出するエンコーダ61とを備える。
 エンコーダ61で検出されたモータ62の回転軸の回転角度情報が、入出力IF24のカウンタボードを通じて制御装置本体部11に取り込まれる。制御装置本体部11に取り込まれた回転角度情報を基に、制御装置本体部11の制御部22のハンド制御部54(図4に図示)によってハンド30の開閉動作での制御指令値が算出される。算出された制御指令値は、入出力IF24のD/Aボードを通じて、ハンド30の開閉駆動も行うモータドライバ25に与えられる。モータドライバ25から送られた前記各制御指令値に従って、モータ62の回転を駆動制御して、ハンド開閉駆動用のモータ62の回転軸が正逆回転して、ハンド30を開閉させる。例えば、モータ62の回転軸を正方向に回転させることによりハンド30を開いて、作業用冶具9(例えばレードル又はモップなど)を人4Aの手4で取り付け可能とする一方、モータ62の回転軸を逆方向に回転させることによりハンド30を閉じて、ハンド30に取り付けられた作業用冶具9(例えばレードル又はモップなど)を固定するように構成することができる。
 制御装置本体部11及び動作生成装置12及び周辺装置14は、一例として、それぞれ一般的なパーソナルコンピュータにより構成される。
 《周辺装置14》
 周辺装置14は、データ入力IF(インターフェース)26と、入出力IF(インターフェース)24と、モータドライバ25とを有する。
 入出力IF24は、パーソナルコンピュータのPCIバスなどの拡張スロットに接続された、例えばD/AボードとA/Dボードとカウンタボードとなどを有する。入出力IF24は、ロボットアーム5の各関節部のエンコーダ44より出力される各関節角度情報と、ハンド30のエンコーダ61より出力される角度情報とを取得し、制御部22に入力する。一方、入出力IF24は、制御部22から制御信号などの制御情報が入力されるとともに、モータドライバ25に制御指令値などの制御情報を出力する。モータドライバ25は、ロボットアーム5の各関節部のモータ43及びハンド30のモータ62に対し制御指令値などの制御情報を出力する。
 データ入力IF(インターフェース)26は、人4Aがキーボード、マウス又はマイクなどの外部入力装置26aを使用して、データ入力IF26とデータベース入出力部28とを介して、作業情報(例えば作業ID)、又は、動作補正操作指令情報、ロボットアーム5の関節角速度情報に基づいた環境変化通知操作の指令、動作補正操作の指令、又は、動作情報を入力したり、変更したりするためのインターフェースである。よって、データ入力IF26は、外部入力装置26aと、データベース入出力部28と、動作指令部27(動作算出部2)と、制御部22の力検出部53と制御パラメータ管理部21と、表示部95とに接続されている。
 また、データ入力IF26は、データ入力IF26の一例としての図1Aに示す操作盤13のボタン13aなどの入力装置を使用して、人4Aから動作指令部27に対して制御動作開始及び終了の指令を受けるようにしてもよい。ボタン13aは、例えばトグルスイッチとして1つのボタンで制御動作開始及び制御動作終了をそれぞれ入力可能としてもよいし、制御動作開始ボタンと制御動作終了ボタンと別々に設けてもよい。ボタンの代わりに、キーボード又はマウス又はマイクなどの入力装置を使用して、制御動作開始及び制御動作終了などの指令をロボット1に入力するインターフェースである。
 《動作生成装置12》
 動作生成装置12は、動作情報データベース17と、環境情報データベース18と、制御ルールデータベース16と、検出部選択ルールデータベース29と、動作指令部27(動作算出部2)と、動作補正部20と、制御ルール生成部23と、環境情報取得部19と、データベース入出力部28とにより構成される。
 動作補正部20と制御パラメータ管理部21との間では、ロボットアーム5の手先位置及び姿勢と、人4Aが加えた力の情報と、動作指令などが入出力される。制御パラメータ管理部21からは、ロボットアーム5の手先位置及び姿勢と、人4Aの加えられた力の情報などが動作補正部20に出力される。なお、動作生成装置12における各制御モード((i)位置制御モード、(ii)インピーダンス制御モード、(iii)ハイブリッドインピーダンス制御モード、(v)力ハイブリッドインピーダンス制御モード)の詳細については、制御装置本体部11の制御パラメータ管理部21にて後述する。
 -動作情報データベース-
 動作情報データベース17は、所定の時間におけるロボットアーム5の手先位置及び姿勢などのロボットアーム5の動作に関する情報(以下、動作情報と称す)を記憶している。動作情報は、予め設定しておいてもよいし、制御ルール生成部23を介してデータベース入出力部28により動作情報データベース17に入力されて記憶してもよい。
 図5A(図5B、図5Cも同様)は、動作情報データベース17のデータである動作情報を示す。
 図6は、動作情報データベース17のフラグの情報を示す
 図7は、動作情報データベース17の補正パラメータフラグに関する情報を示す。 動作情報の具体例として、図5Aを参照して以下に示す。
 (1)動作情報データベース17に記憶されている動作情報の「動作ID」の欄は、作業をロボットアーム5に実行するためのロボットアーム5の個々の動きを識別する動作ID番号を示す。 (2)動作情報の「キー動作ID」の欄は、ロボットアーム5の動作制御する制御プログラムにおける個々の動作(キー動作)(コマンド,command)を識別するキー動作ID番号を示す。
 (3)動作情報の「位置姿勢」の欄は、1つの動作におけるロボットアーム5の手先位置及び姿勢に関する情報を示す。尚、本第1実施形態は、一例として、メートル(m)単位系で手先位置及び姿勢の座標を示す。
 (4)動作情報の「力」の欄は、ロボットアーム5が作業をする際に作業対象となる物体(作業対象物、例えば作業用治具9,46,72又はフレキシブル基板74)に加える力に関する情報を示す。尚、本第1実施形態は、一例として、ニュートン(N)単位系で示す。
 (5)動作情報の「フラグ」の欄は、ロボットアーム5の手先位置、姿勢、及び力のパラメータのうちのいずれの情報が有効か否かを示すフラグに関する情報を示す。
 (6)動作情報の「ハンド」の欄は、ハンド30が開閉しているか否かのハンド開閉状態を表す情報を示す。
 (7)動作情報の「時間」の欄は、ロボットアーム5の各キー動作を実行するための時間に関する情報を示す。尚、本第1実施形態では、一例として、秒(sec)単位で示す。
 (8)動作情報の「補正パラメータフラグ」の欄は、後述する動作補正部20を用いて動作情報データベース17の動作情報を補正する際の、補正すべきパラメータの種別に関する情報を示す。
 ここで、「作業」とは、例えば、かき混ぜ作業又は拭き掃除作業などの一定の手順に従ってロボットアーム5で実行する仕事を意味する。
 また、「動作」とは、例えば、かき混ぜ作業又は拭き掃除作業などの「作業」をロボットアーム5に実行させるためのロボットアーム5の動きを意味する。1つ以上の「動作」を実行することで、前記「作業」をロボットアーム5に実行させることができる。
 また、「キー動作」とは、ロボットアーム5を動作制御する制御プログラム上で、ある時刻でロボットアーム5にある「動作」を行なわせるためのコマンド(指令)を意味し、複数の「キー動作」(コマンド)で前記「動作」を構成し、複数の「キー動作」(コマンド)を時系列に前記制御装置で実行するように制御することでロボットアーム5の前記「動作」を実現することができる。
 図5Aの動作情報データベース17の「位置姿勢」、すなわち、ロボットアーム5の手先位置及び姿勢に関する情報は、前述したロボットアーム5の手先位置及び姿勢を表し、原点位置Oと姿勢から、(x,y,z,φ,θ,ψ)と表す。
 力に関する情報は、ロボットアーム5が作業をする際に作業対象となる物体(作業対象物)に加える力に関する情報を示し、力のx、y、z、φ、θ、ψ方向の成分を(f,f,f,fφ,fθ,fψ)と表す。例えば、f=5[N]である場合は、z軸方向に5[N]の力を加えて、作業することを表す。具体的には、IHクッキングヒーター6などの天板6aを拭き掃除作業する際に、天板6aの表面に力を加えて擦る場合などに使用する。
 図5Aの動作情報データベース17の「フラグ」に関する情報は、各「キー動作ID」が示す動作情報に基づくロボットアーム5の手先位置及び姿勢及び力のうちのいずれの情報が有効か否かを示す値である。具体的には、図6は、図5Aで示した32ビットの数値で表し、各ビット数と位置姿勢と力とのパラメータは対応付けられている。図6において、それぞれのビットで、手先位置及び姿勢及び力のそれぞれの値が有効の場合は「1」とし、手先位置及び姿勢及び力のそれぞれの値が無効の場合は「0」とする。例えば、0ビット目において、ロボットアーム5の手先位置のx座標の値が有効の場合には「1」とし、無効の場合には「0」とする。また、1ビット目において、ロボットアーム5の手先位置のy座標の値が有効の場合には「1」とし、無効の場合には「0」とする。また、2ビット目において、ロボットアーム5の手先位置のz座標の値が有効の場合には「1」とし、無効の場合には「0」とする。以後、順次、3,4,5ビット目は姿勢のφ、θ、ψの有効性を表す(すなわち、有効の場合は「1」とし、無効の場合は「0」とする)。さらに、6ビット目~11ビット目においては、力のそれぞれの成分が有効か無効かを示す(すなわち、有効の場合は「1」とし、無効の場合は「0」とする)。また、フラグに関する情報は、将来の拡張用に多め(32ビット)に用意しているため、この例では12ビット目から31ビット目は使用しないので、「0」を入れておくが、12ビットのみ記憶できる変数としても良い。図6は、図5Aの動作情報データベース17の「キー動作ID」の「1」のキー動作のフラグを示す。0ビット目から1ビット目、及び、3ビット目から5ビット目、及び、8ビット目が「1」となっているので、動作情報の手先位置及び姿勢情報うち、x、y、φ、θ、ψ情報、及び、力情報のうちのf情報のみが有効であることを示している。この結果、動作情報のうち、2ビット目、6~7ビット目、及び9~11ビット目が「0」となっているので、z、f、f、fφ、fθ、fψの値にどういう値が記憶されていても無効であるとする。
 図5Aの「ハンド」に関する情報は、動作中のハンド30の開閉の有無を表すフラグとし、ハンド30が開いている場合は「0」と記載し、ハンド30が閉じている場合は「1」と記載する。
 図5Aの動作情報データベース17の「時間」に関する情報は、ロボットアーム5の各キー動作を実行するための時間である。すなわち、ロボットアーム5は「キー動作ID」に記憶された動作を、対応する「時間」に関する情報として記憶された時間をかけて行うことを表す。この「時間」は、絶対時刻ではなく、前の動作からの相対時間を表す。すなわち、「キー動作ID」が示す「位置姿勢」に、ロボットアーム5のハンド30が移動するまでの時間又は「キー動作ID」が示す「力」になるまでの時間を表す。
 図5Aの動作情報データベース17の「補正パラメータフラグ」に関する情報は、後述する動作補正部20で、どのパラメータを補正するかを表す情報である。具体的には、図7に示した32ビットの数値で表す。図7において、それぞれのビットで、手先位置及び姿勢及び力のそれぞれの値の補正が可能な場合は「1」とし、手先位置及び姿勢及び力のそれぞれの値の補正が不可能な場合は「0」とする。例えば、0ビット目においては、手先位置のx座標の値の補正が可能な場合は「1」とし、手先位置のx座標の値の補正が不可能な場合は「0」とする。また、1ビット目においては、手先位置のy座標の値の補正が可能な場合は「1」とし、手先位置のy座標の値の補正が不可能な場合は「0」とする。また、2ビット目においては、手先位置のz座標の値の補正が可能な場合は「1」とし、手先位置のz座標の値の補正が不可能な場合は「0」とする。以後、順次、3,4,5ビット目は、姿勢のφ、θ、ψの補正可能性を表す(すなわち、補正が可能な場合は「1」とし、補正が不可能な場合は「0」とする)。さらに、6ビット目~11ビット目においては、力のそれぞれの成分の補正可能性を示す(すなわち、補正可能の場合は「1」とし、補正不可能の場合は「0」とする)。また、フラグに関する情報は、将来の拡張用に多め(32ビット)に用意しているため、この例では、12ビット目から31ビット目は使用しないので、「0」を入れておくが、12ビットのみ記憶できる変数としても良い。
 動作情報データベース17の情報は、予め設定してデータベース化しておくが、ロボットアーム5の手先の位置姿勢、力の入力及び更新は、ロボットアーム5を用いた教示を行ってもよく、以下に説明する。
 図8は、本発明の前記第1実施形態におけるロボットアーム5を用いた人4Aによる教示の状態を示す。
 ロボットアーム5の手先の位置姿勢及び時間の情報は、以下のようにして作成する。すなわち、例えば、図8に示すように、ロボットアーム5を人4Aが手4で直接把持して、後述するインピーダンス制御モードにて、ロボットアーム5を移動させる。このとき、ある一定時間毎(例えば0.2msec毎)にロボットアーム5の手先位置及び姿勢の情報を制御部22及び制御パラメータ管理部21を介してデータベース入出力部28で取得する。取得したロボットアーム5の手先位置及び姿勢の情報を、時間と共に、データベース入出力部28により動作情報データベース17に記憶する。このようにしてロボットアーム5の手先の位置姿勢及び時間の情報を動作情報データベース17に作成することができる。
 さらに、動作情報データベース17の力の情報は、データ入力IF26を使用しかつデータベース入出力部28を介して、加えたい力の値を動作情報データベース17に入力することにより作成する。
 なお、この例ではロボットアーム5の手先の位置姿勢及び時間の情報を連続的に作成したが、それぞれの位置姿勢及び時間の情報を、人4Aが、キーボード、マウス、又はマイクなどの外部入力装置26aを使用して個別に入力しても良い。
 -環境情報データベース-
 環境情報データベース18は、ロボットアーム5が動作する際のロボットアーム5の周辺の物体の位置及び状態に関する情報と、人4A及びロボットアーム5が周辺環境に対して直接作用することによる物体の位置及び状態に関する情報(以下、これらの情報を環境情報と称す。)が記憶されている。環境情報は、後述する環境情報取得部19で取得し、環境情報取得部19からデータベース入出力部28を介して環境情報データベース18に記憶される。
 次に、環境情報データベース18の詳細について説明する。
 図9Aは、環境情報データベース18のデータである環境情報を示す。
 図9Bは、環境情報データベース18のフラグの情報を示す。
 (1)環境情報データベース18に記憶された環境情報の「環境ID」の欄は、個々の環境情報を識別する環境ID番号を示す。
 (2)環境情報の「画像ID」の欄は、環境情報取得部19の一例として機能する第1及び第2画像撮像装置15a及び15bで撮像された画像を識別する画像ID番号を示す。ここでは、ファイル名を使用する。
 (3)環境情報の「画像撮像装置ID」の欄は、2つの画像撮像装置15a及び15bのうちのどの画像撮像装置で撮影したかを識別するID番号である。この例では、第1画像撮像装置15aで撮影した場合には「1」、第2画像撮像装置15bで撮像された場合には「2」で示す。
 (4)環境情報の「力」の欄は、力検出部53で検出された力に関する情報(力の情報)を示す。
 力に関する情報は、ロボットアーム5の力検出部53で検出した力に関する情報を示し、力のx、y、z、φ、θ、ψ方向の成分を(f,f,f,fφ,fθ,fψ)と表す。
 (5)環境情報の「フラグ」の欄は、環境情報の力及び画像のパラメータのうちのいずれの情報が有効か否かを示すフラグに関する情報を示す。
 図9Aの環境情報データベース18の「フラグ」に関する情報は、各「環境ID」が示す環境情報の画像及び力の情報が有効か否かを示す値である。具体的には、図9Bで示した32ビットの数値で表す。図9Bにおいて、各ビットで、画像及び力の値がそれぞれ有効の場合は「1」とし、画像及び力の値がそれぞれ無効の場合は「0」とする。本第1実施形態では0ビット目から5ビット目は力の情報、6ビット目は、画像の情報を示す。例えば、0ビット目において、力のx座標の値が有効の場合は「1」とし、無効の場合は「0」とする。また、1ビット目において、力のy座標の値が有効の場合は「1」とし、無効の場合は「0」とする。また、2ビット目において、力のz座標の値が有効の場合は「1」とし、無効の場合は「0」とする。以後、順次、3,4,5ビット目は力のφ、θ、ψの有効性を表す。すなわち、有効の場合は「1」とし、無効の場合は「0」とする。さらに、6ビット目においては、第1又は第2画像撮像装置15a又は15bで撮影された画像が有効か無効かを示す(すなわち、有効の場合は「1」とし、無効の場合は「0」とする)。
 また、フラグに関する情報は、将来の拡張用に多め(32ビット)に用意しているため、この例では7ビット目から31ビット目は使用しないので、「0」を入れておくが、6ビットのみ記憶できる変数としても良い。図9Bでは、0ビット目から5ビット目が「0」、6ビット目が「1」となっているので、環境情報の画像情報のみが有効であることを示す。
 -制御ルールデータベース-
 制御ルールデータベース16は、ロボットアーム5が作動する際のロボットアーム5の制御ルールに関する情報(以下、制御ルール情報と称す)が記憶されている。制御ルール情報は、後述する制御ルール生成部23で生成し、データベース入出力部28により、制御ルール生成部23と制御ルールデータベース16との間で、生成された情報又は生成に必要な情報などが入出力される。また、データベース入出力部28により、制御ルール生成部23と他のデータベース18,17,29との間で、生成に必要な情報などが入出力される。
 次に、制御ルールデータベース16の詳細について図10A及び図10Bを用いて説明する。
 図10Aと図10Bは、制御ルールデータベース16の制御ルールの一例を示す。
 (1)制御ルールデータベース16に記憶された制御ルールの「作業ID」の欄は、作業に関する情報を識別する作業ID番号を示す。
 (2)制御ルールの「環境ID」の欄は、個々の環境情報を識別する環境ID番号を示し、環境情報データベース18の環境IDの値を参照可能とする。環境情報データベース18の環境IDの値を参照可能としない場合は、「-1」として記憶する。
 (3)制御ルールの「動作ID」の欄は、作業の中のロボットアーム5の動作を識別する動作ID番号を示し、動作情報データベース17の動作IDを参照可能とする。
 (4)制御ルールの「進捗情報」の欄は、ロボットアーム5の所定の動作が動作中か否かを示し、動作中である場合は「1」とし、動作中でない場合は「0」として、データベース入出力部28により制御ルールデータベース16に記憶する。具体的には、動作指令部27によって、作業が開始されると、ロボットアーム5により現在動作(実行)中の動作については「1」をデータベース入出力部28により制御ルールデータベース16に記憶し、現在動作(実行)していない動作については「0」をデータベース入出力部28により制御ルールデータベース16に記憶する。
 -検出部選択ルールデータベース-
 検出部選択ルールデータベース29は、ロボットアーム5を操作して環境情報を取得する際に、ロボットアーム5の制御モードにより、複数の環境情報の中から優先的に取得する環境情報の種別を選択するためのルール(検出部選択ルール)が記憶されている。検出部選択ルールデータベース29は、ロボット1に予め用意されており、データベース入出力部28により、検出部選択ルールの情報が入出力される。
 次に、図11A、図11Bを用いて検出部選択ルールデータベース29の詳細を説明する。
 図11Aは、検出部選択ルールデータベース29の検出部選択ルールを示す。
 図11Bは、検出部選択ルールデータベース29の検出部選択ルールの環境情報の種別に関する情報を示す。
 (1)検出部選択ルールデータベース29に記憶された検出部選択ルールの「制御モード」の欄は、ロボットアーム5の制御モードに関する情報を示す。具体的には、制御装置本体部11の制御パラメータ管理部21に関連して後述する。
 (2)検出部選択ルールの「環境情報の種別ID」の欄は、環境情報の種別を識別する識別IDを示す。環境情報の識別IDは、検出部である環境情報取得部19、例えば、ロボットアーム5が搭載する各種センサ(例えば、力検出部53)又は、ロボット1の各種センサ(例えば、第1又は第2画像撮像装置15a又は15b)で取得した環境情報の種別を識別するためのIDである。図11Aの「環境情報種別ID」は、図11Bで定義されている。具体的には、検出部選択ルールとして、図11Bのように、「環境情報の種別ID」が「1」の場合は、検出部の一例としての第1又は第2画像撮像装置15a又は15bで撮像した画像を表し、「環境情報の種別ID」が「2」の場合は、検出部の別の例としての力検出部53で検出された力を表すとする。
 -データベース入出力部-
 データベース入出力部28は、各データベース群(動作情報データベース17と、環境情報データベース18と、制御ルールデータベース16と、検出部選択ルールデータベース29と)と、動作指令部27と、制御ルール生成部23と、環境情報取得部19と、及び動作補正部20との間でのデータの入出力を行う。よって、データベース入出力部28は、動作情報取得部及び補正動作情報取得部の一例として機能することができる。すなわち、データベース入出力部28は、ロボットアーム5の動作に対応する、ロボットアーム5の位置、姿勢、及び、速度の少なくとも1つ以上が時系列に動作情報として記憶された動作情報データベース17から前記動作情報を取得する動作情報取得部、又は、ロボットアーム5の動作に対応する、ロボットアーム5が作業対象物9,46,72,74に加える力の時系列の動作情報として記憶された動作情報データベース17から前記動作情報を取得する動作情報取得部として機能することができる。また、データベース入出力部28は、人4Aがロボットアーム5を操作して、ロボットアーム5の前記動作を補正する際に、動作情報取得部で取得した動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を取得する補正動作情報取得部、又は、人4Aがロボットアーム5を操作して、ロボットアーム5の動作を補正する際に、動作情報取得部で取得した動作情報に関連しかつロボットアーム5が加える力に関する補正動作情報を取得する補正動作情報取得部としても機能することができる。
 もちろん、データベース入出力部28を、動作情報の入出力を行う動作情報取得部と、補正動作情報の入出力を行う補正動作情報取得部と、その他の情報の入出力を行う他情報取得部とに分割してもよい。
 -環境情報取得部-
 環境情報取得部19は、ロボットアーム5が作用する作業対象物9,46,72,74に関する情報である環境情報、すなわち、ロボットアーム5が動作する際のロボットアーム5の周辺の物体の位置及び状態に関する情報と、人4A及びロボットアーム5が周辺環境に対して直接作用することによる物体の位置及び状態に関する情報を取得する。具体的には、第1又は第2画像撮像装置15a又は15bで撮像された画像と力検出部53で検出された力の情報とを取得し、第1又は第2画像撮像装置15a又は15bで取得した画像及び力検出部53で検出された力の情報を、環境情報取得部19から制御ルール生成部23及び動作指令部27へ出力する。よって、第1及び第2画像撮像装置15a及び15b及び力検出部53は、それぞれ、環境情報取得部19の一例として機能する。
 -動作指令部-
 動作指令部27には、人4Aがデータ入力IF26により指定した「作業ID」の作業の動作開始の指令が、データ入力IF26から入力される。動作指令部27は、指定された「作業ID」の作業の動作開始の指令を受けて、制御ルールデータベース16の指定された「作業ID」をデータベース入出力部28を介して参照して、その「作業ID」の作業を開始させるように制御パラメータ管理部21へ指令する。
 以下、動作指令部27の機能について説明する。
 人4Aは、データ入力IF26により、表示部95で作業などが表示された表示画像を使用しつつ、制御ルールデータベース16の作業の中の「作業ID」に関する作業の中からロボットアーム5に実行させたい作業を選択して、選択した作業情報を動作指令部27に入力して指定する。
 動作指令部27は、データベース入出力部28を介して制御ルールデータベース16を参照し、指定された「作業ID」に対応する「動作ID」の動作を実行する。ここで、「動作ID」の動作を実行するとは、動作指令部27が、データベース入出力部28を介して動作情報データベース17を参照し、対応するキー動作(具体的には、位置情報、姿勢情報、時間情報、及び、力情報)を基にフラグ(有効か無効かを示すフラグ)に従って制御モードを設定してロボットアーム5が動作するように、制御パラメータ管理部21へ指令を出すことを意味する。
 動作指令部27がデータベース入出力部28を介して制御ルールデータベース16を参照するとき、1つの「作業ID」に関する作業の中に複数の「環境ID」の環境情報が存在すると動作指令部27で判断した場合又は複数の「動作ID」の動作が存在すると動作指令部27で判断した場合には、それぞれの環境情報又は動作を制御ルールデータベース16の上から下に順番に実行する。
 ここで、「環境ID」が「-1」の値の場合には、環境情報データベース18の「環境ID」の値を参照しないことを意味している。よって、ロボットアーム5が動作している周辺の環境に拘わらず、「動作ID」で記述されているIDと同じ「動作ID」の動作を、動作指令部27がデータベース入出力部28を介して動作情報データベース17から参照する。
 以下、人4Aがデータ入力IF26により、「作業ID」の「1」を選択した場合と、「作業ID」の「2」を選択した場合とについて説明する。
 (「作業ID」の「1」を選択した場合)
 具体的には、図10Aの「作業ID」が「1」の作業が選択された場合は、「作業ID」が「1」の作業の「環境ID」が「-1」の値である場合には、このときの「動作ID」は「1」の動作である。従って、動作指令部27は、環境に拘わらず、ロボットアーム5に動作を実行させるために、データベース入出力部28を介して動作情報データベース17の「動作ID」を参照する。この例では、制御ルールデータベース16の「動作ID」には「1」と記憶されており、動作指令部27は、データベース入出力部28を介して、図5Aの動作情報データベース17の「動作ID」が「1」の動作の「キー動作ID」の「1」、「2」、「3」、「4」、「5」、「6」、「7」、「8」のキー動作(コマンド)を順番に参照する。
 動作情報データベース17の「キー動作ID」が「1」のキー動作(コマンド)の場合には、「フラグ」は、0、1、3、4、5、8ビット目が「1」であるので、ロボットアーム5の手先位置のx、y、φ、θ、ψの値、及び、力のz座標の値が有効ということを示している。よって、x軸、y軸、φ軸、θ軸、ψ軸については位置制御モードで動作させ、z軸については力制御モードで動作するように、動作指令部27からデータベース入出力部28を介して制御パラメータ管理部21へ指令を出す(力ハイブリッドインピーダンス制御の指令と同等)。同様に、「キー動作ID」が「2」~「8」のキー動作(コマンド)についても、力ハイブリッドインピーダンス制御モードで動作するように、動作指令部27からデータベース入出力部28を介して制御パラメータ管理部21へ指令を出す。
 (「作業ID」の「2」を選択した場合)
 同様に、図10Aの「作業ID」が「2」の作業が選択された場合には、「作業ID」が「2」の作業の「環境ID」が「-1」の値であり、このときの「動作ID」は「2」の動作である。従って、動作指令部27は、環境に拘わらず、ロボットアーム5に動作を実行するために、データベース入出力部28を介して動作情報データベース17の「動作ID」を参照する。この例では、制御ルールデータベース16の「動作ID」には「2」と記憶されており、動作指令部27は、データベース入出力部28を介して、図5Aの動作情報データベース17の「動作ID」が「2」の動作の「キー動作ID」が「10」、「11」、「12」、「13」、「14」、「15」、「16」、「17」のキー動作(コマンド)を順番に参照する。
 このとき、「キー動作ID」が「10」のキー動作(コマンド)の場合には、「フラグ」が0~5ビット目が「1」であるので、x軸、y軸、z軸、φ軸、θ軸、ψ軸の全ての軸について、位置制御モードで動作するように、動作指令部27から、データベース入出力部28を介して制御パラメータ管理部21へ指令を出す。
 外部入力装置26aにより入力されて、動作が実行されると、動作指令部27は、データベース入出力部28を介して、制御ルールデータベース16の動作中の「動作ID」の「進捗情報」に「1」を設定し、動作中の「動作ID」の「進捗情報」が「1」であるとの情報を、データベース入出力部28により制御ルールデータベース16に記憶する。その他の「動作ID」の「進捗情報」については「0」を動作指令部27に設定し、その他の「動作ID」の「進捗情報」が「0」であるとの情報を、データベース入出力部28により制御ルールデータベース16に記憶する。
 ここで、具体的な作業例について説明する。
 人4Aによりデータ入力IF26を使用して制御ルールデータベース16の作業の中の「作業ID」が「1」である作業が選択された場合は、動作指令部27は、z軸方向を力制御モードで、その他の軸方向は位置制御モードで作業するように、データベース入出力部28を介して制御パラメータ管理部21へ指令を出す。その結果、制御パラメータ管理部21は、後述するように、前記制御モードに従ってロボットアーム5が動作するように、制御部22へ指令を出して、制御部22による制御の下に、図12に示すように、ロボットアーム5は、IHクッキングヒーターなどの調理装置6の天板6aの拭き掃除作業を開始する。
 人4Aによりデータ入力IF26を使用して制御ルールデータベース16の作業の中の「作業ID」が「2」である作業が選択された場合は、動作指令部27は、位置制御モードでかき混ぜ動作をするように、データベース入出力部28を介して制御パラメータ管理部21へ指令を出す。その結果、制御パラメータ管理部21は、後述するように、前記制御モードに従ってロボットアーム5が動作するように、制御部22へ指令を出して、制御部22による制御の下に、図13Aに示すように、ロボットアーム5はかき混ぜ動作を開始する。
 一方、図10Aの「作業ID」が「1」の作業が選択された場合であって、かつ、「作業ID」が「1」の作業の「環境ID」が「-1」の値でない場合には、「環境ID」で記憶されたIDと同じ「環境ID」の環境情報を、環境情報データベース18から動作指令部27がデータベース入出力部28を介して参照する。「環境ID」と同じ「環境ID」の環境情報(具体的には、画像の情報と力の情報)のうちのフラグにより有効な環境情報が、後述する環境情報取得部19で取得した環境情報と合致したと動作指令部27で判断した場合のみ、「動作ID」の動作を動作指令部27で実行する。詳細については、制御ルール生成部23と関連して後述する。
 また、選択された「作業ID」の中に複数の「環境ID」と「動作ID」とが存在する場合は、それぞれの「環境ID」とそれぞれの「動作ID」とのフラグ(ここでのフラグとは、「動作ID」で動作情報データベース17を動作指令部27がデータベース入出力部28を介して参照し、そこで記憶されているフラグを意味する。)により、最終的に実行すべき動作情報を、動作指令部27の動作算出部2により算出する。動作算出部2の詳細については、制御ルール生成部23に関連して後述する。
 -動作補正部-
 動作補正部20は、制御装置本体部11よりロボットアーム5を力制御モードで制御している最中又は制御部22の位置制御部59の制御によりロボットアーム5が位置制御モードで移動している最中に補正動作情報取得部の一例としてのデータベース入出力部28で取得したそれぞれの時間での補正動作情報に応じて動作情報を補正することができる。すなわち、動作補正部20は、ロボットアーム5の制御動作中に、データ入力IF26から動作指令部27を介して動作補正操作の開始の指令を受ける。動作補正部20は、データベース入出力部28を介して動作情報データベース18の補正パラメータフラグに基づいて、ロボットアーム5の制御パラメータを切り替えることで、補正された動作(補正動作)でロボットアーム5を動作し、人4Aがロボットアーム5に力を加えることで、データベース入出力部28を介して制御ルールデータベース16のロボットアーム5の制御ルールを修正する。
 ここで、前記ロボットアーム5の制御動作は、後述する(i)位置制御モード、(iii)力制御モード、若しくは、(v)それらを方向別に組み合わせた力ハイブリッドインピーダンス制御モード、のうち、いずれかのモードで動作することを示す。
 また、前記ロボットアーム5の補正動作は、ロボットアーム5に人4Aが加えた力によりロボットアーム5の動作を補正する動作で、後述する(ii)インピーダンス制御モード、(vi)高剛性位置制御モード、若しくは、(v)それらを方向別に組み合わせた力ハイブリッドインピーダンス制御モード、のうち、いずれかのモードで動作することを示す。
 以下、動作補正について説明する。
 人4Aは、データ入力IF26により、制御ルールデータベース16の「作業ID」に関する作業の中からロボットアーム5に実行させたい作業を選択して、動作指令部27により動作を実行する。
 このとき、図10Aの「作業ID」が「2」の作業が選択された場合には、動作指令部27は、位置制御モードでかき混ぜ動作をするように制御パラメータ管理部21へ指令を出す。よって、図13Aに示すように、ロボットアーム5はかき混ぜ動作を開始する。ここで、「作業ID」が「2」の作業の場合には「環境ID」が「-1」の値であるため(図10A参照)、ロボットアーム5が動作する環境情報に関わらず、「動作ID」で記憶された動作で動作(具体的には、「動作ID」が「2」の動作で動作)する。
 次に、人4Aがデータ入力IF26から動作指令部27を介して動作補正部20に動作補正操作の開始を指示すると、動作補正部20は、動作補正の処理に移行する。
 図13は、本発明の前記第1実施形態におけるロボットアーム5の補正動作を説明する図である。
 本第1実施形態では、レードル9をハンド30に保持したロボットアーム5が、図13Aに示す鍋3aのかき混ぜを中止し、図13Eに示すように、鍋3aに比べて鍋の直径が大きい鍋3bをかき混ぜる動作を行う場合について説明する。ここで、動作補正を行わない場合、「作業ID」が「2」の作業は「環境ID」が「-1」の値であるため、鍋の大きさに拘わらず、「動作ID」で記述された動作を実行するため、鍋3aを、直径が大きい鍋3bに交換したとしても、図13Bのように直径の小さなかき混ぜを行うことになる。このため、鍋3bの中の具材が、うまく混ざらないという問題が発生する。
 そこで、人4Aは、鍋3bの大きさを確認して、図13Eのように鍋3bの直径に合わせて、レードル9で大きくかき混ぜるために、ロボットアーム5のかき混ぜ動作を補正する。
 このため、人4Aは、以下の2つの入力操作を行う。
 第1の入力操作は、作業環境が変化することを知らせる操作(以下、環境変化通知操作と称す。)である。この操作は、本第1実施形態では、かき混ぜ動作の対象の鍋3aが直径の大きな鍋3bに変わった事をロボットアーム5に知らせる操作である。
 第2の入力操作は、実際のロボットアーム5の動作を補正するための操作(以下、動作補正操作と称す。)である。
 本第1実施形態では、かき混ぜ動作を図13Eのように大きくかき混ぜるように動作を補正するための操作である環境変化通知操作を開始した時点で、ロボットアーム5のかき混ぜ動作は停止し、次に、環境変化通知操作が終了し、ロボットアーム5のかき混ぜ動作を再開する。人4Aはロボットアーム5がかき混ぜ動作している最中に動作補正操作を行う。
 人4Aは、データ入力IF26により、環境変化通知操作の開始の指令を動作指令部27に入力する。動作指令部27に環境変化通知操作の開始の命令が入力されると、動作指令部27により、ロボットアーム5の動作を停止させる。そして、人4Aによる環境変化通知操作が終了した時点で、引き続き、人4Aはデータ入力IF26により、動作補正操作の開始の指令を動作指令部27に入力する。動作指令部27が、動作補正操作の開始の指令をデータ入力IF26を介して受け取ると、動作指令部27は環境変化通知操作が終了したと判断して、動作補正操作の開始のためにロボットアーム5の動作を再開する。このとき、人4Aはロボットアーム5の動作に対して動作補正操作を行う。
 動作指令部27は、データ入力IF26を介して環境変化通知操作の指令又は動作補正操作の指令を受けると、動作補正部20及び後述する制御ルール生成部23にそれぞれの環境変化通知操作の開始の情報又は動作補正操作の開始の情報を出力する。
 前記操作の具体的な指令は、位置制御モードでかき混ぜ動作をロボットアーム5が実行している最中に、人4Aが手4でロボットアーム5を把持してロボットアーム5を補正したい方向に力をかける。このとき、図30Aのように、人4Aがロボットアーム5にかけた力(後述する力検出部53で検出された力)が、ある閾値(図30Aの値t)以上であり、その状態がある一定時間(図30Aの時間time 1)以上続いた場合(後述する、制御パラメータ管理部21のタイマ21aで検出された時間が前記ある一定時間以上続いた場合)に、環境変化通知操作の開始の指令が入力されたと動作指令部27が判断する。逆に言えば、図30Bのように、人4Aがロボットアーム5にかけた力が、前記ある閾値(図30Bの値t)未満の場合、又は、前記ある閾値(図30Bの値t)以上であっても、その状態が前記ある一定時間(図30Aの時間time 1)未満の時間(図30Bの時間time 2)の場合に、環境変化通知操作の開始の指令は入力されていないと、動作指令部27が判断する。人4Aによる環境変化通知操作の開始の指令が入力されたと動作指令部27で判断すると、動作指令部27は、環境変化通知操作の開始の情報を動作補正部20に入力する。
 環境変化通知操作の開始の指令が入力されたと動作指令部27が判断すると、動作指令部27により、かき混ぜ動作が停止される。このかき混ぜ動作の停止動作により、人4Aは、環境変化通知操作が開始したとロボット1が判断したことがわかる。なお、後述するように、力検出部53で検出された力の情報は制御パラメータ管理部21に入力され、前記力の情報とタイマ21aで検出された時間の情報とが、制御パラメータ管理部21から動作指令部27に入力されて、動作指令部27で前記判断が実行できるように構成している。
 次に、人4Aが前記環境変化通知操作を行った後で、人4Aがロボットアーム5にかけた力が前記閾値(図30Aの値t)より小さくなったと動作指令部27により判断した場合には、動作指令部27により環境変化通知操作が終了したと判断し、動作指令部27により位置制御モードでのかき混ぜ動作を再開する。かき混ぜ動作を再開することにより、人4Aは、環境変化通知操作が終了したとロボット1が判断したことがわかる。
 次に、前記したように環境変化通知操作が終了したとロボット1が判断したことを人4Aが分かったのち、人4Aがロボットアーム5を手4で把持して、ロボットアーム5の動作を補正したい方向にロボットアーム5に力をかける。図30Aのように、ロボットアーム5にかけた力が前記ある閾値(図30Aの値t)以上であり、その状態が前記ある一定時間(図30Aの時間time 1)以上続いたと動作指令部27が判断した場合に、人4Aによる動作補正操作の開始の指令が入力されたと動作指令部27で判断する。逆に言えば、図30Bのように、人4Aがロボットアーム5にかけた力が、前記ある閾値(図30Bの値t)未満の場合、又は、前記ある閾値(図30Bの値t)以上であっても、その状態が前記ある一定時間(図30Aの時間time 1)未満の時間(図30Bの時間time 2)の場合に、動作補正操作の開始の指令が入力されていないと、動作指令部27が判断する。人4Aによる動作補正操作の開始の指令が入力されたと動作指令部27で判断すると、動作指令部27は、動作補正操作の開始の情報を動作補正部20に入力する。なお、一定時間経過しても、動作補正操作が開始されなかった場合には、環境変化通知操作を無効とし、かき混ぜ動作を再開する。
 動作補正操作の開始の指令が入力されたと動作指令部27で判断すると、動作指令部27の指令により、ロボットアーム5のかき混ぜ動作の速度が遅くなり(例えば、動作補正操作の開始前の通常のかき混ぜ動作のときの速度の半分の速度)、人4Aは、動作補正操作の開始の指令が入力されたとロボット1が判断したことがわかる。さらに、かき混ぜ動作の速度が遅くなるため、動作中のロボットアーム5の動作を人4Aが補正しやすくなる。ロボットアーム5の動作を人4Aが補正している間、その補正動作の情報は、後述するように、動作補正部20で取得する。ロボットアーム5の動作を人4Aが補正した後、人4Aがかけた力が前記閾値(図30Aの値t)より小さくなったと動作指令部27が判断した場合には、動作指令部27により動作補正操作を終了し、動作指令部27によりロボットアーム5の速度を補正前の速度に戻し、さらに、動作指令部27及び動作補正部20により、補正した動作を実行する。動作補正操作が終了したと動作指令部27で判断すると、動作指令部27の指令により、ロボットアーム5のかき混ぜ動作の速度が速くなり(例えば、動作補正操作時のかき混ぜ動作のときの速度の二倍の速度)、人4Aは、動作補正操作が終了したとロボット1が判断したことがわかる。
 なお、この例では、人4Aが加えた力により、環境変化通知操作及び動作補正操作の開始及び終了を動作指令部27で自動的に判断して自動で切り替えたが、人4Aがボタンを押すなどのデータ入力IF26を使用することにより、環境変化通知操作及び動作補正操作の開始及び終了を手動で切り替えても良い。さらに、それぞれの操作によりロボットアーム5の動作を停止したり、遅くすることで、どのような操作をしているかを人4Aに知らせたが、例えば、作業台7の壁面7aなどに設置された表示部95の一例としてのモニタなどに、環境変化通知操作又は動作補正操作のどちらの操作をしているかを表示しても良い。
 一方、動作補正部20は、動作指令部27から環境変化通知操作の開始の情報を受けたとき、人4Aからロボットアーム5を介して入力される環境変化通知操作の情報を取得するため、補正したい「作業ID」の「動作ID」について、動作情報データベース17の「動作ID」のフラグに従って制御モードを設定して動作するように、制御パラメータ管理部21へ指令を出力する。
 具体的には、図10Aの「作業ID」の「2」の作業の「動作ID」の「2」の動作に対応する、動作情報データベース18の「キー動作ID」が「10」~「17」のキー動作(コマンド)について説明する。図5Aにおいて、各「キー動作ID」のフラグが、0~5ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、x軸、y軸、z軸、φ軸、θ軸、ψ軸のみデータが有効である。従って、ロボットアーム5のx軸、y軸、z軸、φ軸、θ軸、ψ軸を、人4Aが加えた力を用いて、動作補正操作することが可能となる。そして、ロボットアーム5のx軸、y軸、z軸、φ軸、θ軸、ψ軸について、位置制御モードからインピーダンス制御モード(人4Aの力を検知した方向にロボットアーム5を移動させるモード)で動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。位置制御モードからインピーダンス制御モードに切り替わるため、人4Aの力が加わっていない状態ではロボットアーム5は停止し、人4Aが力を加えると、人4Aが加えた力の方向にロボットアーム5を移動させることができる。
 次に、環境変化通知操作の開始後に、図13Cに示すように、鍋3aが直径の大きな鍋3bに変わった事をロボットアーム5に知らせる操作(環境変化通知操作)を人4Aが行う。具体的には、図13Cに示すように人4Aがロボットアーム5のハンド30又はハンド30の近傍の前腕リンク32を手4で直接把持して、鍋3bの鍋底面に平行(x-y平面)に力をかけると、インピーダンス制御モードにより、人4Aの力を力検出部53で検知して、人4Aがロボットアーム5に力をかけた方向(矢印AX方向)にロボットアーム5を移動させる。この例では、この矢印AX方向にロボットアーム5を人4Aにより移動させる操作が環境変化通知操作である。
 次いで、環境変化通知操作後に、人4Aが力を加えて移動させた補正動作の情報を動作補正部20で取得するために、制御パラメータ管理部21からのロボットアーム5の手先位置を動作補正部20で取得し、動作補正部20から後述する制御ルール生成部23へ出力する。
 次に、動作補正部20は、データ入力IF26から動作指令部27を介して動作補正操作の開始の指令を受けて、動作情報データベース17の補正パラメータフラグに従って、制御モードを設定して動作するように、動作補正部20から制御パラメータ管理部21へ指令を出す。具体的には、図10Aの「作業ID」が「2」の作業の「動作ID」が「2」の動作に対応する、動作情報データベース18の「キー動作ID」が「10」~「17」のキー動作(コマンド)について説明する。図5Aにおいて、それぞれの「キー動作ID」の補正パラメータフラグは、0,1,2ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、x軸、y軸、z軸のみ補正が可能である。従って、ロボットアーム5のx軸、y軸、z軸が人4Aの加えた力を用いて補正することが可能となる。そして、ロボットアーム5のx軸、y軸、z軸について、位置制御モードからハイブリッドインピーダンス制御モード(位置制御モードで移動しながら、人4Aの力を検知した方向にインピーダンス制御で移動させるモード)で動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。
 そして、図13Dに示すように、人4Aがロボットアーム5を直接把持して、鍋3bの直径に合わせて大きく混ぜるように鍋3bの底面沿いの方向に力をかけると、ロボットアーム5は、前述したようにハイブリッドインピーダンス制御モードを行う。その結果、ロボットアーム5は、(1)位置制御モードによるロボットアーム5の移動と、(2)インピーダンス制御モードによる、人4Aの力をかけた方向にロボットアーム5をx軸方向、又は、y軸方向、又は、x軸方向及びy軸方向への移動とを実行する。人4Aは、x-y平面において、鍋3b内で、鍋3aの場合よりも円状に大きくかき混ぜるように補正したいことから、人4Aはロボットアーム5を図13Dに示すように、鍋底面に平行にロボットアーム5に力を加えて移動させる。人4Aが力を加えて移動させたロボットアーム5の動作を動作補正部20で取得するために、制御パラメータ管理部21からのロボットアーム5の動作補正操作の情報として手先位置及び時間を所定の一定時間毎(例えば0.2秒毎)に動作補正部20で取得し、取得した手先位置及び時間を、後述する制御ルール生成部23へ動作補正部20から出力する。ロボットアーム5の手先位置は、エンコーダ44を介して制御パラメータ管理部21より取得する。さらに、時間情報は、制御パラメータ管理部21に備えたタイマ21aにより取得する。また、制御パラメータ管理部21には、力検出部53で検出された力の情報も入力されるため、この力検出部53で検出された力の情報と、タイマ21aによる時間情報とが制御パラメータ管理部21から動作指令部37に入力されて、例えば、補正動作の環境変化通知操作及び動作補正操作の開始及び終了の判断を前記したように行うことができる。
 なお、この時間に関する情報は、人4Aが作業を選択して、開始指令をデータ入力IF26を介して動作指令部27に出した時点を0とした相対時間とする。
 -制御ルール生成部-
 制御ルール生成部23は、動作補正部20で補正された動作情報と環境情報取得部19で取得した環境情報とを対応付けることにより、ロボットアーム5が自動で動作するための制御ルールを生成することができる。すなわち、制御ルール生成部23は、後述するロボットアーム5の制御動作中に、データ入力IF26から動作指令部27を介して、動作補正部20と同様に、動作補正操作の開始の指令を受ける。制御ルール生成部23は、動作補正部20で補正した動作情報と環境情報取得部19で取得した環境情報とに基づいて、制御ルールを生成し、制御ルールデータベース16に記憶する。ここで、ロボットアーム5の制御動作は、(ii)インピーダンス制御モード、(i)位置制御モード、(iv)力制御モード、若しくは、(v)それらを方向別に組み合わせた力ハイブリッド制御モードのうち、いずれかのモードである。
 制御ルール生成部23には、環境変化通知操作の開始の指令を受けて、人4Aからの環境変化通知操作にて生成したロボットアーム5の手先位置及び時間が、動作補正部20から入力される。また、制御ルール生成部23には、環境変化通知操作により、環境情報取得部19にて取得した環境情報がデータベース入出力部28を介して入力される。すなわち、環境情報は、ロボットアーム5への人の環境変化通知操作に応じて、環境情報取得部19で取得して、データベース入出力部28を介して制御ルール生成部23に入力される。また、制御ルール生成部23には、環境変化通知操作の開始時の動作中の「動作ID」を動作情報データベース17からデータベース入出力部28を介して参照し、その「動作ID」の「キー動作ID」のフラグに関する情報からロボットアーム5の制御モードに関する情報を取得する。
 具体例として、図10Aの「作業ID」が「2」の作業で動作中の「動作ID」が「2」の動作の「キー動作ID」が「10」~「17」のキー動作を、制御ルール生成部23が、動作情報データベース18をデータベース入出力部28を介して参照する。それぞれの「キー動作ID」のフラグが、図5Aでは、0~5ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、x軸、y軸、z軸、φ軸、θ軸、ψ軸のみデータが有効であると動作指令部27で判断することができる。従って、ロボットアーム5のx軸、y軸、z軸、φ軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、インピーダンス制御モードとなっている。
 制御ルール生成部23は、環境変化通知操作時における(1)ロボットアーム5の移動方向の制御モードと(2)検出部選択ルールデータベース29の情報とに基づいて、複数の環境情報の中から制御ルールを生成するための環境情報の種別を選択する。具体的には、図10Aの「作業ID」が「2」の作業の環境変化通知操作の開始のタイミングでは、図13Cのように、x軸方向及びy軸方向で環境変化通知操作を行っている。x軸及びy軸はインピーダンス制御モードで補正しているので、検出部選択ルールデータベース29の検出部選択ルールの一例を示す図11Aより、「制御モード」が「インピーダンス制御モード」のときの「環境情報の種別ID」は「1」となり、図11Bより、「環境情報の種別ID」が「1」のときは「画像」を制御ルール生成部23で選択する。さらに、図13Cでは、x軸方向及びy軸方向に環境変化通知操作をしているので、x-y平面を撮影可能な第1画像撮像装置15aでの画像を環境変化通知操作の方向により環境情報取得部19で取得し制御ルール生成部23で選択し、第1画像撮像装置15aからの画像を制御ルール生成部23で取得する。なお、x-y平面を撮影可能な第1画像撮像装置15aが複数存在する場合には、それらの複数の第1画像撮像装置15aの中で、環境変化通知操作の前後で画像が最も変化した画像を撮影した第1画像撮像装置15aを制御ルール生成部23で選択する。
 図14は、第1画像撮像装置15aにより、鍋3の上方から取得した画像を示す。
第1画像撮像装置15aにより制御ルール生成部23で取得した画像は、データベース入出力部28を介して環境情報データベース18に記憶する。
 なお、この例では、x-y平面において環境変化通知操作をしたので、第1画像撮像装置15aの画像を制御ルール生成部23で選択したが、y-z平面及びx-z平面において環境変化通知操作をした場合には、第2画像撮像装置15bの画像を制御ルール生成部23で選択する。制御ルール生成部23で選択した画像は、制御ルール生成部23がデータベース入出力部28を介して環境情報データベース18に記憶する。さらに、変形例として、図36Cと図36Dのように、x-y平面の環境変化通知(鍋3の開口寸法の変化通知)の後に、y-z平面及びx-z平面の環境変化(鍋3の深さ寸法の変化通知)を通知した場合には、制御ルール生成部23が第1画像撮像装置15aと第2画像撮像装置15bの両方の画像を選択する。
 前記例で、x-y平面において環境変化通知操作をしたとき、具体的には、図9Aの「環境ID」が「10」として示すように、制御ルール生成部23により、新しい「環境ID」に「10」を付与し、その「環境ID」の「画像ID」に、選択した画像のファイル名(この例では「画像3」)を制御ルール生成部23が環境情報データベース18に記憶する。さらに、フラグは画像のみであるので、制御ルール生成部23により、6ビット目のみ「1」を、その他のビットに「0」を環境情報データベース18に記憶する。
 なお、前記変形例において、図36Cと図36Dのように、x-y平面の環境変化通知の後に、y-z平面及びx-z平面の環境変化を通知した場合には、「環境ID」が「33」の環境情報に示すように、制御ルール生成部23により、複数の画像(この例では「画像8」と「画像9」)を環境情報データベース18に記憶するようにしても良い。
 次に、動作補正操作の開始の指令を受けて、人4Aがロボットアーム5に力を加えてロボットアーム5を移動させて補正したロボットアーム5の動作情報(ロボットアーム5の手先位置と時間)を制御パラメータ管理部21より制御ルール生成部23で取得する。制御ルール生成部23は、取得した動作情報をデータベース入出力部28を介して動作情報データベース17に記憶する。
 具体的には、図5Bに示すように、制御ルール生成部23により、図5Bの動作情報データベース17に新規に動作IDを付与し(この例では「3」)、更に、取得した手先位置の数だけ「キー動作ID」として「20」~「31」を付与し、動作補正部20で補正した動作情報(手先情報、時間)を動作情報データベース17の各「キー動作ID」に記憶する。
 動作情報の時間は、人4Aが作業を選択して開始指令を出した時点を0とした相対時間が、制御ルール生成部23により動作情報データベース17に入力される。このため、動作情報データベース17の時間のデータ欄は、追加した最初のキー動作(この例では「20」)の時間として、全ての動作のそれぞれの時間から減算した値を、制御ルール生成部23により、動作情報データベース17に記憶する。
 フラグのデータ欄は、動作補正操作前のフラグが「1」となる動作情報の成分のうち、補正前と補正後におけるキー動作の位置姿勢と、力の値とを成分毎にそれぞれ制御ルール生成部23により比較し、制御ルール生成部23により、閾値以上の差があると判断された場合の成分のみ、図6に示すフラグの各成分を「1」とし、閾値未満であるとされた場合のフラグの成分は「0」とするように、動作情報データベース17に記憶する。
 なお、ここで比較する動作補正操作前後の「キー動作」は、動作補正操作前と動作補正操作後のそれぞれの「動作ID」の一番先頭のキー動作のみ、制御ルール生成部23により比較する。
 具体的には、補正前の「動作ID」が「2」の動作の「キー動作ID」が「10」のキー動作のフラグは、0~5ビット目が「1」であり、その他は「0」であるので、補正前の動作と補正後の動作の位置姿勢と、力の値とのうち、位置姿勢成分のみを制御ルール生成部23により比較する。
 ここで、制御ルール生成部23により、補正前の「キー動作ID」は「10」のキー動作、補正後の「キー動作ID」は「20」のキー動作とする。
 「キー動作ID」が「10」のキー動作と「キー動作ID」が「20」のキー動作では、位置姿勢(x,y,z,φ,θ,ψ)の成分のうち、z,φ,θ,ψは同じで、x座標、y座標の差がそれぞれ(0.2、0.2)となる。上記差の閾値を0.1とすると、x成分及びy成分のみが閾値以上と、制御ルール生成部23により判断される。従って、フラグは0,1ビット目が「1」で、その他は「0」として、制御ルール生成部23により動作情報データベース17に記憶する。
 補正パラメータフラグは、補正前の動作(この例では「10」~「17」)の値を記憶する。
 なお、図36Eに示すように、鍋の側面から鍋の底面に向かってかき混ぜるような動作として補正した場合には、図36Fに示すように、時刻t、時刻t、時刻tと時間の経過とともに、ロボットアーム5の姿勢成分が変化するように補正しても良い。
 次に、制御ルール生成部23は、取得した環境情報と動作補正部20の動作補正操作により補正した動作とから、制御ルールデータベース16に新しい制御ルールを生成して記憶する。
 具体的には、制御ルールデータベース16の「作業ID」が「2」の作業で動作中に動作を補正するため、制御ルール生成部23により、「作業ID」が「2」の作業に1行追加し、動作補正操作により新しく追加した「動作ID」が「3」の動作を追加するように、制御ルールデータベース16に記憶させる。
 次に、制御ルール生成部23で選択した環境情報の環境IDを、制御ルール生成部23により制御ルールデータベース16に記憶する。
 以上、人4Aが環境変化通知操作及び動作補正操作を行って制御ルール生成部23により新しい制御ルールを生成して制御ルールデータベース16に記憶することで、鍋の大きさを考慮した動作を事前に用意しておかなくても、その場で人4Aがロボットアーム5の操作を行なって環境変化通知を行い、ロボットアーム5の動作を補正するだけで、その操作及び補正動作を制御ルールデータベース16に記憶させることができ、次に同じような環境になった場合に、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)ロボットアーム5は自律的に動作することができるようになる。
 -動作指令部(動作算出部)-
 この例では、図10Bに示すように、「作業ID」が「2」の作業には、複数の「動作ID」(「2」、「3」)を制御ルールデータベース16に記憶しているため、その場合の動作指令部27の機能について説明する。
 図10Bの「作業ID」が「2」の作業の「動作ID」が「2」の動作は図13Aの動作、「動作ID」が「3」の動作は図13Eの動作を行うための動作情報を表す。
 人4Aが図13Eの鍋3bを作業台7に設置し、人4Aがデータ入力IF26を介して「作業ID」が「2」の作業の開始を動作指令部27に指令する。動作指令部27は、指定された「作業ID」の作業の作業開始の指令を受けて、制御ルールデータベース16の指定された「作業ID」をデータベース入出力部28を介して参照して、その「作業ID」の作業を開始させるように制御パラメータ管理部21へ指令する。
 複数の動作が存在する場合には、「環境ID」に応じて、動作する動作情報を動作指令部27により選択する。具体的には、動作指令部27により、制御ルールデータベースに記憶されているそれぞれの「動作ID」の「環境ID」で環境情報データベース18をデータベース入出力部28を介して参照した環境情報が、ロボットアーム5の動作中の「環境ID」と合致したと判断した場合のみ、その「動作ID」の動作を実行するように、動作指令部27から制御パラメータ管理部21へ指令する。
 具体的には、図10Bの「作業ID」が「2」の作業には、「動作ID」が「2」の動作と「3」の動作とがある。「動作ID」が「2」の動作は「環境ID」が「-1」の値であるので、ロボットアーム5の周辺環境に拘わらず、ロボットアーム5は動作するので、実行すべき動作として動作指令部27により選択する。
 次に、「動作ID」が「3」の動作の「環境ID」は「10」の環境情報となり、「-1」の値ではないので、動作指令部27により、環境情報データベース18の「環境ID」が「10」の環境情報をデータベース入出力部28を介して参照する。図9Aの「環境ID」が「10」の環境情報のフラグは、6ビット目のみ「1」であり、それ以外は「0」であるので、画像が有効であると、動作指令部27で判断することができる。そこで、画像IDより、データベース入出力部28を介して環境情報データベース18に記憶されている画像情報を動作指令部27が取得する。
 次に、環境情報取得部19より、現在の画像情報を動作指令部27が取得して、画像マッチングにより、前記取得した2つの画像を動作指令部27で比較する。2つの画像が合致したと動作指令部27で判断した場合には、「動作ID」が「3」の動作で記憶されている動作を実行すべき動作として動作指令部27で選択する。
 動作指令部27で選択された動作が複数存在する場合は(この例では「動作ID」が「2」の動作と「3」の動作)、選択された複数の動作を制御ルールデータベース16に記憶されている順に、それぞれの動作情報のフラグに応じて、最終的に実行すべき動作を、動作指令部27の動作算出部2により算出する。
 この例では、「動作ID」が「2」の動作と「3」の動作とが動作指令部27で選択されており、図10Bの制御ルールデータベース16の「動作ID」には「2」の動作、「3」の動作の順に記憶されている。従って、「動作ID」が「2」の動作の動作情報のフラグが、図5Cより0~5ビット目が「1」であるので、「動作ID」が「2」の動作の動作情報のうち、位置姿勢情報(x,y,z,φ,θ,ψ)を動作指令部27で取得する。次に、「動作ID」が「3」の動作のフラグは、0,1ビット目のみ「1」であるので、「動作ID」が「2」の動作の位置姿勢情報(x,y,z,φ,θ,ψ)のうち、(x、y)成分のみ「動作ID」が「3」の動作の値に置き換えて動作指令部27で算出する。例えば、「キー動作ID」が「10」のキー動作の位置姿勢は、(0.1,0.1,0.4,0,0,0)であり、「動作ID」が「3」の動作の「キー動作ID」が「20」のキー動作の位置姿勢は、(0.3,0.3,0.4,0,0,0)であるので、「キー動作ID」が「10」のキー動作の位置姿勢は、(0.1,0.1,0.4,0,0,0)のx成分及びy成分のみ、「キー動作」が「20」のキー動作の位置姿勢(0.3,0.3,0.4,0,0,0)を動作指令部27で置き換えることで、最終の位置姿勢は、(0.3,0.3,0.4,0,0,0)となる。同様に「キー動作ID」が「11」のキー動作のx成分及びy成分を「キー動作ID」が「21」のキー動作で動作指令部27で置き換え、以降、「キー動作ID」の終わりまで順次動作指令部27で算出する。
 動作指令部27により、フラグについては、「動作ID」が「2」の動作と「3」の動作とのそれぞれのビットにおいて、どちらかのビットに「1」の場合には、算出後のフラグのビットを「1」にするとともに、両方とも「0」の場合には、「0」とする。ただし、位置と力のそれぞれの成分はどちらかにしか「1」とならないため(位置制御モード若しくは力制御モードのどちらかでしか作動しないため)、位置と力の両方に「1」となった場合には、力を優先する。よって、「動作ID」が「2」の動作のフラグは、0~5ビット目が「1」であり、「動作ID」が「3」の動作は0、1ビット目が「1」であるので、0~5ビット目が「1」となる。「動作ID」が「2」の動作と「3」の動作との動作パラメータフラグは、両方とも0,1,2ビット目が「1」であるので、算出後の動作パラメータフラグも0,1,2ビット目が「1」となり、その他は「0」となる。
 算出後の動作情報をフラグに応じて制御モードを動作指令部27で切り替えて、動作情報を動作指令部27から制御パラメータ管理部21へ出力することで、算出した動作を制御部22で実行することが可能となる。
 (制御装置本体部11)
 制御装置本体部11は、制御パラメータ管理部21と、制御部22とを有する。制御部22と制御パラメータ管理部21との間では、ロボットアーム5の手先位置又は力の情報などが入出力される。この制御装置本体部11は、動作情報取得部の一例であるデータベース入出力部28で取得した動作情報に設定された力で作業対象物に対してロボットアーム5が力制御を行なうようロボットアーム5を力制御モードで制御する力制御部として機能することができる。
 -制御パラメータ管理部-
 制御パラメータ管理部21は、動作補正部20又は動作指令部27の指示に基づいて、設定された制御モードに従ってロボットアーム5が動作するように、制御部22へ指令を出して、制御部22による制御の下にロボットアーム5を動作させる。さらに、制御パラメータ管理部21は、制御部22からロボットアーム5の手先位置又は力の情報などを取得して動作補正部20へ出力する。
 制御パラメータ管理部21の詳細を説明する。
 制御パラメータ管理部21は、動作補正部20又は動作指令部27の指示に基づいて、ロボットアーム5の制御モードを切り替える設定信号を出力する。
 それぞれの制御モードは、動作補正部20又は動作指令部27にて、動作情報データベースのフラグにより決定し、制御モードを切り替える設定信号を制御パラメータ管理部21へ出力する。
 制御モードは、(i)位置制御モードと、(ii)インピーダンス制御モードと、(iii)ハイブリッドインピーダンス制御モードと、(iv)力制御モードと、(v)力ハイブリッドインピーダンス制御モードと、(vi)高剛性位置制御モードとのうち、いずれかの制御方法のモードである。
 また、制御パラメータ管理部21は、(iii)インピーダンス制御モード、(iv)ハイブリッドインピーダンス制御モード、及び、(v)力ハイブリッドインピーダンス制御モードにおける機械インピーダンス設定値の設定を行う。また、制御パラメータ管理部21は、後述するインピーダンス計算部51で出力する手先位置、姿勢目標補正出力rd△の設定、及び、目標軌道生成部55への動作情報の設定を行う。
 -制御モードの切替動作-
 各制御モードについて説明する。
 (i)位置制御モード
 位置制御モードは、後述する目標軌道生成部55の手先位置と姿勢と時間とに関する情報に基づいて、ロボットアーム5が作動するモードである。
 この位置制御モードは、人4Aがロボットアーム5に力を加えてもロボットアーム5は移動しないように、ロボットアーム5の動作を制御するモードである。例えば、かき混ぜ作業又は拭き掃除作業などの作業を行うためにロボットアーム5が動作する場合に用いるモードである。ただし、柔構造のロボットアーム5の場合は、機械的に柔らかい機構であるため、位置制御モードに設定していても、人4Aがロボットアーム5に加えた力でロボットアーム5が若干移動する場合がある。これに対して、後述する高剛性位置制御モードは、人4Aがロボットアーム5に加えた力では、ロボットアーム5が絶対に動かないように制御するモードである。
 (ii)インピーダンス制御モード
 インピーダンス制御モードは、人4Aなどからロボットアーム5に加わる力(具体的には、力検出部53で検出された力)に応じて、ロボットアーム5が作動するようにロボットアーム5の動作を制御するモードである。例えば、図8に示すように、人4Aが手4でロボットアーム5を直接持ち、ロボットアーム5の手先の位置姿勢を教示する場合に用いるモードである。
 (iii)ハイブリッドインピーダンス制御モード
 ハイブリッドインピーダンス制御モードは、ロボットアーム5が位置制御モードで動作しているときに、力検出部53で検出された力に応じて、ロボットアーム5が作動するようにロボットアーム5の動作を制御するモードである。例えば、図13Aに示すように、ロボットアーム5が位置制御モードによるかき混ぜ業を行っているときに、人4Aが鍋3aの中の底側の部分をかき混ぜるようにロボットアーム5の動作を補正したい場合に用いるモードである。ハイブリッドインピーダンス制御モードを行うことにより、図13Dに示すように、人4Aがロボットアーム5を把持して、鍋3bの底面沿い方向に力をかけることで、水平方向に大きくかき混ぜる動作に補正することができる。
 (iv)力制御モード
 力制御モードは、動作補正部20から制御パラメータ管理部21へ設定された力で、ロボットアーム5を用いて作業対象物(作業用治具、例えば、レードル9又は拭き掃除用モップ若しくはスポンジ46、又は、電動ドライバ器具72、又はフレキシブル基板74)を作業対象面(例えば、鍋底、又は、掃除対象面、又は、器具71のネジ穴71aにネジ73を取り付けるときの作業対象面)に押し付けながらかき混ぜ動作又は拭き掃除動作又はネジ回し動作などするようにロボットアーム5の動作を制御するモードである。図12は、本第1実施形態におけるキッチンの拭き掃除動作を行うロボットを示す。例えば、図12に示すようにIHクッキングヒーター6などの天板6aの表面に力を加えて拭き掃除を行う場合、又は図15に示すように、鍋3の底の部分で、レードル9により力を加えて、かき混ぜ作業を行う場合など、力を加えながら、制御する方向に使用する制御モードである。
 (v)力ハイブリッドインピーダンス制御モード
 力ハイブリッドインピーダンス制御モードは、ロボットアーム5の6軸の方向(x軸,y軸,z軸,φ軸,θ軸,ψ軸の方向)別に、(iii)ハイブリッドインピーダンス制御モード、(ii)インピーダンス制御モード、(i)位置制御モード、を切り替えるとともに、指定した力を作用させて動作する(iii)力制御モードで制御するモードである。なお、力制御モードとインピーダンス制御モードとは排他的な関係であるため、力制御モードが設定された方向にインピーダンス制御モードを設定することはできない。
 この力ハイブリッドインピーダンス制御モードは、例えば、図12に示すようにIHクッキングヒーター6などの天板6aの掃除面に対して、ロボットアーム5の先端のハンド30で支持した作業用冶具9、例えば拭き掃除用モップが平行に円状に移動しながら、当該掃除面に垂直下向きに指定した力をかけて、拭き掃除をする場合に用いるモードである。具体的には、(x,y,z,φ,θ,ψ)の6軸それぞれに、以下の制御モードを設定する。すなわち、(x,y)成分がハイブリッドインピーダンス制御モードで、(φ,θ,ψ)成分がインピーダンス制御モードで、z軸成分が力制御モードでそれぞれ動作する力ハイブリッドインピーダンス制御モードである。このように掃除面と水平な方向はハイブリッドインピーダンス制御モードとすることで、位置制御モードで動作している最中に、人4Aなどからロボットアーム5に加わる力に応じて、ロボットアーム5を移動させることができる。さらに、(φ,θ,ψ)成分をインピーダンス制御モードとすることで、ロボットアーム5が動作を停止している状態で人4Aなどからロボットアーム5に加わる力に応じて、ロボットアーム5の姿勢を変更することができるようになる。また、z軸成分を力制御モードに設定することで、指定された力で拭き掃除用モップを掃除面に押し付けながらロボットアーム5を動作させることができるようになる。又は、力ハイブリッドインピーダンス制御モードは、(x,y,z,φ,θ,ψ)の6軸のうち、z軸成分が力制御モードで、その他の軸は位置制御モードで動作させる制御モードであっても良い。その場合は、衝突など不用意な力がロボットアーム5に加わっても、位置制御成分を誤って移動させることはない。
 (vi)高剛性位置制御モード
 高剛性位置制御モードは、ロボットアーム5の動作中の位置制御モードをさらに高剛性にした制御モードである。具体的には、後述する位置誤差補償部56でのゲインを大きくすることで実現する。人4Aがロボットアーム5に力をかけても、高剛性位置制御モードは、ロボットアーム5を容易に移動させることができず、接触面からの抗力の影響をロボットアーム5が受けないため、人4Aがロボットアーム5にかけた力を正しく検出できる。
 これらの制御モード(i)~(vi)は、ロボットアーム5の動作の際に、ロボットアーム5の方向及び姿勢別にそれぞれ適切な制御モードを設定して動作させる。
 さらに、(iii)ハイブリッドインピーダンス制御モード又は(v)力ハイブリッドインピーダンスモードでロボットアーム5が動作中に、補正するパラメータに応じて、機械インピーダンス設定値又はインピーダンス計算部51で出力する手先位置及び姿勢目標補正出力rd△の設定を制御パラメータ管理部21により変更する。
 機械インピーダンス設定値の設定パラメータとしては、慣性Mと粘性Dと剛性Kとがある。機械インピーダンス設定値の各パラメータの設定は、補正値を使って、以下の評価式に基づいて行う。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
Figure JPOXMLDOC01-appb-M000003
 前記式(3)~(5)中のKM、KD、KKはそれぞれゲインであり、それぞれある定数値である。
 制御パラメータ管理部21は、前記式(3)~(5)に基づき計算した機械インピーダンス設定値の慣性Mと粘性Dと剛性Kとを制御部22へ出力する。
 前記式(3)~(5)により、ロボットアーム5のx軸及びy軸以外の位置成分及び姿勢成分が簡単に動かせると、ロボットアーム5の動作の補正作業が行ないにくくなる。そこで、制御パラメータ管理部21は、ロボットアーム5のx軸及びy軸以外の位置成分及び姿勢成分についてのみ、上記補正値を高く(例えば、上記補正値の約10倍)設定し、ロボットアーム5の粘性D及び剛性Kが大きくなるように設定する。この結果、ロボットアーム5の動きに抵抗感又は硬さが生じ、ロボットアーム5がそのx軸及びy軸以外の位置成分及び姿勢成分について動きにくくなる。例えば図13Dに示すように、人4Aがロボットアーム5のハンド30で把持されたレードル9を使用して、鍋3bのサイズに合わせて大きくかき混ぜるよう動作を補正させたい場合に、このような設定を適用することができる。
 又は、別の方法として、インピーダンス計算部51から出力される手先位置及び姿勢目標補正出力rd△の各成分のうち、x軸及びy軸以外の値を、制御パラメータ管理部21により、全て0にする方法がある。これによって、x軸及びy軸以外は、人4Aの力でロボットアーム5が移動できなくなるため、誤操作を防ぐことができる。
 制御パラメータ管理部21は、動作補正部20に、ロボットアーム5の手先位置及び姿勢と、ロボットアーム5に対して人4Aの加えた力の情報(ロボットアーム5に作用する人4Aの力に関する情報)とを出力する必要がある。そのため、制御部22から制御パラメータ管理部21にロボットアーム5の手先位置及び力の情報を受けると、制御パラメータ管理部21は、動作補正部20へ出力する。また、動作補正部20及び動作指令部27から制御パラメータ管理部21に入力された、位置及び姿勢と時間などの動作情報を制御パラメータ管理部21から制御部22へ出力する。
 -制御部-
 次に、制御部22の詳細について、図4を用いて説明する。図4は、本第1実施形態のロボットアームの制御装置70の制御部22の詳細を示す。制御部22は、目標軌道生成部55と、ハンド制御部54と、力検出手段の一例としての力検出部53と、インピーダンス計算部51と、位置制御部59と、位置誤差計算部80とを有する。位置制御部59は、位置誤差補償部56と、近似逆運動学計算部57と、順運動学計算部58とを有して、動作情報取得部の一例としてのデータベース入出力部28で取得した動作情報に基づいてロボットアーム5を移動するよう位置制御モードでロボットアーム5を制御することができる。力検出部53は、図4では制御部22の一部として図示しているが、制御部22とは別の構成としてもよい。
 制御部22は、制御パラメータ管理部21で設定された制御モードで動作し、さらに制御モードに応じて、慣性Mと粘性Dと剛性Kとの設定値に基づき設定されたロボットアーム5の機械インピーダンス設定値に、ロボットアーム5の機械インピーダンスの値を制御する。
 制御部22は、入出力IF24を介してロボットアーム5との制御信号などの信号のやり取りを行うが、図4では、制御部22とロボットアーム5とのデータ信号のやり取りとして簡略化した図とする。
 ロボットアーム5のそれぞれの関節部に設けた各関節軸のエンコーダ44により計測された関節角の現在値(関節角度ベクトル)ベクトルq=[q,q,q,q,q,qが出力され、入出力IF24により制御部22に取り込まれる。ここで、q,q,q,q,q,qは、それぞれ、第1関節部35、第2関節部36、第3関節部37、第4関節部38、第5関節部39、第6関節部40の関節角度である。
 目標軌道生成部55は、制御パラメータ管理部21から入力された動作情報(具体的には、ロボットアーム5の手先位置、姿勢、時間)に基づいて、ロボットアーム5の目標とする手先位置及び姿勢目標ベクトルrを生成する。目標軌道生成部55は、生成した手先位置及び姿勢目標ベクトルrを位置誤差計算部80に出力する。
 具体的には、目標軌道生成部55は、制御パラメータ管理部21からの制御モード設定信号及び動作情報に基づき、各制御モードでロボットアーム5を動作するように、動作目標とする手先の位置及び姿勢目標ベクトルrと力目標ベクトルfとを生成する。
 具体的には、目標とするロボットアーム5の動作は、目的とする作業に応じて動作指令部27からそれぞれの時間(t=0、t=t、t=t、・・・)でのポイント毎の位置及び姿勢(rd0、rd1、rd2、・・・)の情報と、力(fd0、fd1、fd2、・・・)の情報とが与えられている。
 目標軌道生成部55は、多項式補間を使用し、前記各ポイント間の軌道を補間し、手先位置及び姿勢目標ベクトルrと力目標ベクトルfとを生成する。
 目標軌道生成部55は、(i)位置制御モード、(iii)インピーダンス制御、(iv)ハイブリッドインピーダンス制御モード、(v)力ハイブリッドインピーダンス制御モード、又は(vi)高剛性位置制御モードで、ロボットアーム5を動作するように動作目標とする手先の位置及び姿勢目標ベクトルrを生成する。
 目標軌道生成部55は、生成した目標とするロボットアーム5の動作を実現するための手先位置及び姿勢目標ベクトルrと力目標ベクトルfとそれぞれの方向別にどのパラメータが有効かを示すフラグとが、目標軌道生成部55から位置誤差計算部80に出力される。
 目標軌道生成部55は、動作情報に含まれる「ハンド」の開閉フラグに基づいて、後述するハンド制御部54に、ハンド30の開閉指令を出す。
 ハンド制御部54は、目標軌道生成部55から入力された開閉フラグに基づいて、ハンド開閉駆動用のモータ62を駆動してハンド30を開閉するように、入出力IF24を介してロボットアーム5のハンド開閉駆動用のモータ62に指令を出す。
 力検出部53は、力検出手段の一例として機能し、人4A等とロボットアーム5との接触によってロボットアーム5に加わる外力Fextを検出して、検出した力の情報をインピーダンス計算部51と環境情報取得部19と制御パラメータ管理部21(制御パラメータ管理部21を介して動作司令部27)とに出力する。ただし、ロボットアーム5の手先(ハンド30)に質量mの物体(たとえば、作業用冶具9)を把持して又は取り付けて作業している場合は、力検出部53で検出したFextからmgを力検出部53で予め減じておく。ここで、gは重力加速度である。把持物体(たとえば、作業用冶具9)の質量mの値は、物体を把持する(たとえば、作業用冶具9を取り付ける)前に、人4Aが、外部入力装置26aからデータ入力IF26を介して力検出部53に入力できる(図4参照)。また、把持物体(たとえば、作業用冶具9,46,72又はフレキシブル基板74など)である作業対象物の識別番号、質量、形状、寸法、及び、色などの物品情報を物品データベース(図示せず)に記憶しておき、物品認識装置(図示せず)が、作業対象物に備えられたタグなどの識別情報を読み取り、読み取られた識別情報を基に物品データベースに記憶された情報を参照して、対応する作業対象物の質量を取得することも可能である。
 力検出部53は、モータドライバ25の電流センサで計測された、ロボットアーム5の各関節部を駆動するモータ43を流れる電流値i=[i,i,i,i,i,iを、入出力IF24を介して取得する。また、力検出部53には、各エンコーダ44で計測された関節角の現在値qが入出力IF24を介して取り込まれるとともに、後述する近似逆運動学計算部57からの関節角度誤差補償出力uqeが取り込まれる。力検出部53は、オブザーバーとして機能し、前記電流値iと、関節角の現在値qと関節角度誤差補償出力uqeとに基づいて、ロボットアーム5に加わる外力により各関節部に発生するトルクτextを算出する。
 そして、力検出部53は、式:Fext=J(q)-Tτext-[0,0,mg]によりロボットアーム5の手先における等価手先外力Fextに換算して、この等価手先外力Fextをインピーダンス計算部51に出力する。ここで、J(q)は、
Figure JPOXMLDOC01-appb-M000004
 を満たすヤコビ行列である。ただし、v=[v,v,v,ω,ω,ωであり、(v,v,v)は手先座標系42でのロボットアーム5の手先の並進速度、(ω,ω,ω)は手先座標系42でのロボットアーム5の手先の角速度である。また、mはハンド30で把持している把持物体(又はハンド30に取り付けられた作業用冶具9)の質量であり、gは重力加速度である。また、ロボットアーム5のハンド30による物体の把持又は取付を実際に行い、そのときの力検出部53の等価手先外力Fextの推定結果に基づいて把持物体(又はハンド30に取り付けられた作業用冶具9)の質量mの値を算出する事も可能である。物体を把持しない場合はm=0として算出する。
 インピーダンス計算部51は、制御パラメータ管理部21から制御モードの設定信号及び機械インピーダンス設定値を受け取り、前記機械インピーダンス設定値にロボットアーム5の機械インピーダンス値を制御する。制御パラメータ管理部21から(i)位置制御モードの設定信号をインピーダンス計算部51が受け取った場合は、機械インピーダンス値として“0”をインピーダンス計算部51から位置誤差計算部80に出力する。制御パラメータ管理部21から(iii)インピーダンス制御モード及び(iv)ハイブリッドインピーダンス制御モードの設定信号をインピーダンス計算部51が受け取った場合は、制御パラメータ管理部21で設定された機械インピーダンス設定値である慣性Mと粘性Dと剛性Kと、エンコーダ44で計測した関節角の現在値qと、力検出部53で検出した外力Fextとに基づいて、インピーダンス計算部51は、ロボットアーム5が機械インピーダンス設定値の制御を実現するための手先位置及び姿勢目標補正出力rdΔを、以下の式(6)により計算する。インピーダンス計算部51は、計算して求められた手先位置及び姿勢目標補正出力rdΔを位置誤差計算部80に出力する。
 制御パラメータ管理部21から(v)力ハイブリッドインピーダンス制御モード又は(ii)力制御モードの設定信号をインピーダンス計算部51が受け取った場合、動作制御の「フラグ」で指定された力成分が存在する場合には、制御パラメータ管理部21で設定された機械インピーダンス設定値である慣性Mと粘性Dと剛性Kと、エンコーダ44で計測した関節角の現在値qと、力検出部53で検出した外力Fextと、目標軌道生成部55から出力される力fとに基づいて、インピーダンス計算部51は、ロボットアーム5が機械インピーダンス設定値の制御を実現するための手先位置及び姿勢目標補正出力rdΔを、以下の式(10)により計算する。インピーダンス計算部51は、計算して求められた手先位置及び姿勢目標補正出力rdΔを位置誤差計算部80に出力する。
 位置誤差計算部80は、インピーダンス計算部51から出力された手先位置及び姿勢目標補正出力rdΔと、目標軌道生成部55から出力された手先の位置姿勢目標ベクトルrとを加算し、手先位置及び姿勢補正目標ベクトルrdmを生成する。ただし、ハイブリッドインピーダンス制御モード時に、補正パラメータに応じて、ロボットアーム5の動作を拘束する場合に、例えばz軸のみロボットアーム5が動くようにするには、手先位置及び姿勢目標補正出力rdΔのz成分以外を0にインピーダンス計算部51で設定して、位置誤差計算部80に出力する。
Figure JPOXMLDOC01-appb-M000005
ただし、
Figure JPOXMLDOC01-appb-M000006
Figure JPOXMLDOC01-appb-M000007
Figure JPOXMLDOC01-appb-M000008
であり、sはラプラス演算子である。
Figure JPOXMLDOC01-appb-M000009
ただし、
Figure JPOXMLDOC01-appb-M000010
は式(7)、式(8)、式(9)により算出する。
 位置誤差計算部80は、さらに、手先位置及び姿勢補正目標ベクトルrdmと、後述する順運動学計算部58により計算される手先位置及び姿勢ベクトルrとの誤差rを求め、求められた誤差rを位置誤差補償部56に出力する。
 順運動学計算部58には、ロボットアーム5の各関節部の各関節軸のエンコーダ44からエンコーダ44で計測された関節角の現在値qである関節角度ベクトルqが、入出力IF24を介して入力される。順運動学計算部58は、ロボットアーム5の関節角度ベクトルqから、手先位置及び姿勢ベクトルrへの変換の幾何学的計算を行う。順運動学計算部58で計算された手先位置及び姿勢ベクトルrは、位置誤差計算部80及びインピーダンス計算部51及び目標軌道生成部55に出力される。
 位置誤差補償部56は、位置誤差計算部80で求められた誤差rに基づいて、位置誤差補償出力ureを近似逆運動学計算部57に出力する。
 具体的には、位置誤差補償出力ureは、
Figure JPOXMLDOC01-appb-M000011
により計算される。ここで、Kは比例ゲイン行列、Kは積分ゲイン行列、Kは微分ゲイン行列であり、その対角成分が手先位置ベクトルr = [x、y、z、φ、θ、ψ]Tの各成分に対するゲインで構成される対角行列である。
 さらに、位置誤差補償部56では、高剛性位置制御モードが設定された際に、比例ゲイン行列K、積分ゲイン行列K、微分ゲイン行列Kをあらかじめ設定された値に大きく設定する。ここで、高剛性とは、通常の位置制御と比較して剛性が高くなることを意味し、具体的には、通常の位置制御モードと比較して大きな値を設定する。例えば、通常の位置制御モード時の2倍程度の値に設定すると、剛性を約2倍まで高くすることができる。
 このようにすることで、高剛性の位置制御を実現することができる。なお、前記ゲインを各成分毎に値を変えることで、例えば、z軸方向のみ高剛性で、その他の方向は通常の位置制御で動作するよう制御することができる。
 近似逆運動学計算部57は、位置誤差補償部56から入力される位置誤差補償出力ureとロボットアーム5において計測される関節角度ベクトルqとに基づいて、近似式uout=J(q)-1inにより、逆運動学の近似計算を行う。ただし、J(q)は、
Figure JPOXMLDOC01-appb-M000012
の関係を満たすヤコビ行列であり、uinは近似逆運動学計算部57への入力であり、uoutは近似逆運動学計算部57からの出力であり、入力uinを関節角度誤差qとすれば、q=J(q)-1のように手先の位置姿勢誤差rから関節角度誤差qへの変換式となる。
 従って、位置誤差補償部56から位置誤差補償出力ureが近似逆運動学計算部57に入力されると、近似逆運動学計算部57からの出力として、関節角度誤差qを補償するための関節角度誤差補償出力uqeが近似逆運動学計算部57から入出力IF24を介してロボットアーム5のモータドライバ25に出力される。
 関節角度誤差補償出力uqeは、入出力IF24のD/Aボードを介してロボットアーム5のモータドライバ25に電圧指令値として与えられ、各モータ43により各関節軸が正逆回転駆動されロボットアーム5が動作する。
 (ロボットアーム5のインピーダンス制御動作の原理)
 以上のように構成される制御部22に関して、ロボットアーム5のインピーダンス制御動作の原理について説明する。
 インピーダンス制御動作(ハイブリッドインピーダンス制御も同様)の基本は、位置誤差補償部56による手先の位置姿勢誤差rのフィードバック制御(位置制御)であり、図4の点線で囲まれた部分が位置制御部59になっている。位置誤差補償部56として、例えば、PID補償器を使用すれば、手先位置及び姿勢誤差rが0に収束するように位置制御部59による制御が働き、目標とするロボットアーム5のインピーダンス制御動作を実現できる。
 (iii)インピーダンス制御モードと、(iv)ハイブリッドインピーダンス制御モードと、(v)力ハイブリッドインピーダンス制御モードとの場合、位置誤差計算部80は、インピーダンス計算部51からの手先位置及び姿勢目標補正出力rdΔを加算し、位置制御部59に対して手先位置及び姿勢の目標値の補正を行う。このため位置制御部59は、手先位置及び姿勢の目標値が本来の値より微妙にずれることになり、結果的に、ロボットアーム5の機械インピーダンスの値を前記適切に設定された設定値に制御でき、位置制御部59の位置制御動作を補正できる。
 手先位置及び姿勢目標補正出力rdΔは、(ii)インピーダンス制御モードと、(iii)ハイブリッドインピーダンス制御モードとの場合は式(6)により算出され、(v)力ハイブリッドインピーダンス制御モードの場合は式(10)による算出されるため、ロボットアーム5の慣性Mと粘性Dと剛性Kとの機械インピーダンスの値を設定された設定値に制御できる。
 (制御部22の動作ステップ)
 本第1実施形態の制御部22の動作ステップについ説明する。図16は、本第1実施形態の制御部22の動作フローチャートである。
 ロボットアーム5の各関節部のエンコーダ44により計測された関節角度ベクトルqが、入出力IF24を介して、制御装置本体部11の制御部22に取り込まれる(ステップS1)。
 次に、制御部22に取り込まれた関節角度ベクトルqに基づいて、近似運動学計算部57は、ロボットアーム5の運動学計算に必要なヤコビ行列J等の計算を行う (ステップS2)。ここでは、制御動作始動時のため、位置誤差補償部56から入力される位置誤差補償出力ureは、“0”値として近似運動学計算部57で計算する。
 次に、順運動学計算部58は、ロボットアーム5の各エンコーダ44から計測された関節角度ベクトルqから、ロボットアーム5の現在の手先位置及び姿勢ベクトルrを計算して、計算した現在の手先位置及び姿勢ベクトルrを、順運動学計算部58から位置誤差計算部80と目標軌道生成部55とインピーダンス計算部51とに出力する(ステップS3)。
 次に、動作指令部27及び動作補正部20から制御パラメータ管理部21を介して入力された動作情報に基づき、目標軌道計算部55は、ロボットアーム5の手先位置及び姿勢目標ベクトルr及び力目標ベクトルfを計算し、インピーダンス制御モード時は、ロボットアーム5の手先位置を、目標とする手先位置及び姿勢目標ベクトルr及び力目標ベクトルfとして位置誤差計算部80に出力する(ステップS4)。
 次に、力検出部53は、モータ43の駆動電流値iと、関節角度ベクトルqと、関節角度誤差補償出力uqeとに基づいて、ロボットアーム5の手先における等価手先外力Fextを計算して、計算された等価手先外力Fextをインピーダンス計算部51と環境情報取得部19と制御パラメータ管理部21とに出力する(ステップS5)。
 次に、制御パラメータ管理部21は、各成分毎に制御モードの切り替えを実行する(ステップS6)。
 このステップS6において、制御モードのそれぞれの成分において、(vi)高剛性位置制御モードの場合はステップS7に進み、(i)位置制御モードの場合はステップS8に進み、(iv)力制御モードの場合は、ステップS9に進む。
 また、ステップS6において、(v)力ハイブリッドインピーダンス制御モード又はハイブリッドインピーダンス制御モードの場合は、ロボットアーム5の回転軸のうち、変更したい位置成分を(ii)インピーダンス制御モードに変更するために、ステップS9に進む。
 具体的には、制御パラメータ管理部21において、動作補正部20により「補正有り」と指示され且つ補正パラメータで6軸のうち力成分を補正する場合は、力成分が設定された成分は高剛性位置制御モードに制御モードを切り替えられる(ステップS6)。その後、ステップS7へ進む。
 また、ステップS6では、制御パラメータ管理部21において、力ハイブリッドインピーダンス制御モード又はハイブリッドインピーダンス制御モードが設定されている場合には、6軸のうち位置成分を補正する場合は、変更したい位置成分をインピーダンス制御モードに変更する。その後、ステップS9へ進む。
 また、ステップS6では、制御パラメータ管理部21において、位置制御モードが設定されている場合には、ステップS8へ進む。ステップS8で、位置制御モードを設定する。若しくは、ステップS6で制御パラメータ管理部21において、力制御モードが設定されている場合には、ステップS9へ進み、ステップS9で力制御モードを設定する。
 制御パラメータ管理部21により高剛性位置制御モードに設定された場合、インピーダンス計算部51は、手先位置及び姿勢目標補正出力rdΔを0ベクトルとする(ステップS7)。その後、ステップS10に進む。
 位置誤差補償部56の定数の対角行列である比例、微分、積分の3つのゲインを調整することにより、位置誤差rが0に収束するように位置誤差補償部56の制御が働く。そのゲインを、ある値まで大きくすることで、高剛性の位置制御を実現する(ステップS10)。その後、ステップS12に進む。
 制御パラメータ管理部21により位置制御モードが設定された場合、インピーダンス計算部51は、手先位置及び姿勢目標補正出力rdΔを0ベクトルとする(ステップS8)。その後、ステップS11に進む。
 制御パラメータ管理部21により、インピーダンス制御モード若しくは力制御モードが設定された場合、インピーダンス計算部51は、制御パラメータ管理部21において設定された機械インピーダンス設定値の慣性Mと粘性Dと剛性Kと、関節角度ベクトルqと、力検出部53により計算されたロボットアーム5に加わる等価手先外力Fextとから、手先位置及び姿勢目標補正出力rdΔが、インピーダンス計算部80により計算される。さらに、補正パラメータに基づいて、手先位置及び姿勢目標補正出力rdΔのいずれか成分の値を0に設定する(ステップS9)。その後、ステップS11に進む。
 位置誤差補償部56は、手先位置及び姿勢目標ベクトルrと手先位置及び姿勢目標補正出力rdΔとの和である手先位置及び姿勢補正目標ベクトルrdmと、現在の手先位置及び姿勢ベクトルrとの差である手先位置及び姿勢の誤差rを計算する(ステップS11)。位置誤差補償部56の具体例としては、PID補償器が考えられる。定数の対角行列である比例、微分、積分の3つのゲインを調整することにより、位置誤差rが0に収束するように位置誤差補償部56の制御が働く。その後、ステップS12に進む。
 近似逆運動学計算部57は、ステップS2で計算したヤコビ行列Jの逆行列を位置誤差補償出力ureに乗算することにより、位置誤差補償出力ureを、手先位置及び姿勢の誤差に関する値から関節角度の誤差に関する値である関節角度誤差補償出力uqeが得られるように計算する(ステップS12)。
 次に、関節角度誤差補償出力uqeが、近似逆運動学計算部57から入出力IF24を通じ、モータドライバ25に与えられる。モータドライバ25は、関節角度誤差補償出力uqeに基づき、ロボットアーム5の関節部のそれぞれのモータ43を流れる電流量を変化させる。この電流量の変化により、ロボットアーム5のそれぞれの関節部のモータ駆動制御を行い(ステップS13)、ロボットアーム5の動作を行う。
 以上のステップS1からステップS13が制御の計算ループとして繰り返し実行されることにより、ロボットアーム5の動作の制御、すなわち、ロボットアーム5の機械インピーダンスの値を所定の設定値に制御する動作を実現することができる。
 (環境情報を考慮した制御ルール作成のための動作と環境情報を考慮した実際の動作フロー)
 ロボットアーム5の制御装置における、環境情報を考慮した制御ルール作成のための動作と環境情報を考慮した実際の動作フローとについて説明する。
 図17Aは、本第1実施形態におけるロボットアーム5の制御装置における、ロボットアーム5の動作フローチャートを示す。
 人4Aは、外部入力装置26aにより、制御ルールデータベース16の作業の中からロボットアーム5に実行させたい作業を選択し、データ入力IF26を介して、前記選択された作業に対応する「作業ID」の選択指令を動作指令部27に入力する(ステップS50)。
 次に、動作指令部27に入力された前記選択指令に基づいて、動作指令部27は、データベース入出力部28を介して制御ルールデータベース16を参照して、前記選択した「作業ID」に関する「動作ID」を特定する。そして、動作指令部27は、前記特定した「動作ID」の情報に基づいて、データベース入出力部28を介して動作情報データベース17を参照し、動作情報データベース17に記憶された「動作ID」に従ってロボットアーム5の動作手順を設定する(ステップS51)。
 次に、人4Aが、データ入力IF26を使用して、前記選択した作業についての動作開始の指令を動作指令部27に入力すると、その動作開始指令を動作指令部27が受けて、データベース入出力部28を介して、制御パラメータ管理部21へ、設定した制御モードで動作するよう指令を出す。制御パラメータ管理部21は、設定した制御モードでロボットアーム5が動作するように、制御部22へ指令を出して、制御部22の制御の下にロボットアーム5を動作させる(ステップS52)。
 以上が、通常のロボットアーム5の制御動作フローである。
 (環境情報の変化を考慮した場合の、ロボットアーム5の制御動作フロー)
 次に、環境情報の変化を考慮した場合の、ロボットアーム5の制御動作フローを説明する。
 図17Bは、本第1実施形態におけるロボットアーム5の制御装置における、環境情報を考慮した制御ルール作成のための動作フローチャートを示す。
 上記ロボットアーム5の動作中に、人4Aがロボットアーム5を操作して、環境変化通知操作の開始の指令の入力を、データ入力IF26を介して、動作指令部27に行う(ステップS53)。動作指令部27に環境変化通知操作の開始の命令が入力されると、動作指令部27により、ロボットアーム5の動作を停止させる。
 次に、人4Aがロボットアーム5を把持して、前記制御装置に環境変化を通知するために、人4Aが力をロボットアーム5にかけることで、データ入力IF26から動作指令部27を介して、動作補正部20が環境変化通知操作の動作情報を取得する。具体的には、人4Aが補正を開始した時点から終了する時点までのロボットアーム5の手先位置及び姿勢の情報を、データ入力IF26から動作指令部27を介して、動作補正部20で取得し、制御ルール生成部23へ環境変化通知操作の動作情報として出力する(ステップS54)。
 次に、環境情報取得部19により、ロボットアーム5が作用する環境に関する情報又はロボットアーム5が作動する周辺の環境に関する情報(環境情報)を取得する(ステップS55)。
 次に、人4Aの環境変化通知操作が終了すると、人4Aが、データ入力IF26を介して、環境変化通知操作の終了情報を動作指令部27へ出力する(ステップS56)。環境変化通知操作の終了情報が動作指令部27へ出力されると、動作指令部27から制御ルール生成部23への環境変化通知操作の動作情報の出力が停止される。
 次に、ロボットアーム5の動作中に、人4Aがロボットアーム5を操作して、動作補正操作の開始の指令の入力を、データ入力IF26を介して、動作指令部27に行う(ステップS57)。一例として、ステップS56とステップS57とにおいて、環境変化通知操作の終了情報を受け取っていなくても、動作指令部27が、人4Aから動作補正操作の開始の指令をデータ入力IF26を介して受け取ると、動作指令部27は環境変化通知操作が終了したと判断して、動作補正操作の開始のためにロボットアーム5の動作を再開して、動作補正操作を開始するようにしてもよい。
 次に、ロボットアーム5の動作中に人4Aがロボットアーム5を把持して、人4Aが補正したい方向に力をロボットアーム5にかけることで、データ入力IF26から動作指令部27を介して、動作補正部20が補正情報を取得し、動作補正部20が動作情報を補正する。具体的には、人4Aが補正を開始した時点から終了する時点までのロボットアーム5の手先位置及び姿勢の情報をある一定時間毎(例えば0.2秒毎)に、データ入力IF26から動作指令部27を介して、動作補正部20で補正情報として取得し、動作補正部20から制御ルール生成部23へ補正情報を出力して動作情報を補正する(ステップS58)。
 次に、人4Aの動作補正操作が終了すると、データ入力IF26を介して、動作補正操作の終了情報を動作指令部27で判断して、動作指令部27から、動作補正部20を介して制御ルール生成部23への補正情報の出力を停止する(ステップS59)
 次に、制御ルール生成部23は、動作補正部20で補正した動作情報と環境情報取得部19で取得した環境情報に基づいて、制御ルールを生成し、データベース入出力部28を介して制御ルールデータベース16に記憶する(ステップS60)。
 (ロボットアーム5の制御装置の環境情報を考慮した実際の動作フロー)
 図29は、本第1実施形態におけるロボットアーム5の制御装置の環境情報を考慮した実際の動作フローチャートを示す。
 人4Aは、外部入力装置26aにより、制御ルールデータベース16の作業の中からロボットアーム5に実行させたい作業を選択し、データ入力IF26を介して、前記選択された作業に対応する「作業ID」の選択指令を動作指令部27に入力する(ステップS100)。
 次に、動作指令部27に入力された前記選択指令に基づいて、動作指令部27は、データベース入出力部28を介して制御ルールデータベース16を参照して、制御ルールデータベース16において、前記選択された「作業ID」に対応して複数の「動作ID」が存在するか否かを動作指令部27で判断する(ステップS101)。前記選択された「作業ID」に対応して複数の「動作ID」が存在すると動作指令部27で判断された場合には、ステップS102に進む。前記選択された「作業ID」に対応する「動作ID」が1つであると動作指令部27で判断された場合には、ステップS107に進む。
 ステップS102では、環境情報取得部19により、現在動作中のロボットアーム5の周辺の環境情報を取得する。その後、ステップS103に進む。
 次に、ステップS102で取得した環境情報と、前記各「動作ID」に対応する「環境ID」で参照された環境情報の比較を動作指令部27で行う(ステップS103)。
 動作指令部27での比較により、環境情報が合致した「動作ID」の個数が1個であると動作指令部27で判断された場合には、ステップS107に進む。環境情報が合致した動作の個数が0個であると動作指令部27で判断された場合には、ステップS112に進む。環境情報が合致した動作の個数が2個以上であると動作指令部27で判断された場合には、ステップS105に進む。
 ステップS105では、動作指令部27の動作算出部2により、合致した2個以上の動作から1つの動作情報を算出する。その後、ステップS106に進む。
 ステップS106では、動作算出部2により算出した動作情報は、制御パラメータ管理部21へ出力して、このフローを終了する。
 一方、ステップS104で合致した動作が0個であると動作指令部27で判断された場合は、動作すべき動作が無しとなり、このフローを終了するとともに、ロボットアーム5は動作を停止する(ステップS112)。
 また、ステップS104で合致した動作が1個であると動作指令部27で判断された場合とステップS101で「動作ID」が1個であると動作指令部27で判断された場合には、その「動作ID」の「環境ID」が「-1」の値であるかを動作指令部27で判断する(ステップS7)。「動作ID」の「環境ID」が「-1」の値であると動作指令部27で判断された場合には、ステップS111に進む。「動作ID」の「環境ID」が「-1」の値でないと動作指令部27で判断された場合には、ステップS108に進む。
 ステップS108では、環境情報取得部19により、現在動作中のロボットアーム5の周辺の環境情報を取得する。その後、ステップS109に進む。
 ステップS109では、ステップS108で取得した環境情報と、前記1個の「動作ID」に対応する「環境ID」で参照された環境情報との比較を動作指令部27で行う。
 次いで、ステップS110において、ステップS109で環境情報が合致したと動作指令部27で判断した場合には、動作指令部27が制御ルールデータベース16を参照して、前記合致した「環境ID」に対応する「動作ID」で記憶されている動作情報を取得し、取得した動作情報を制御パラメータ管理部21へ出力して、このフローを終了する(ステップS111)。
 ステップS110において、環境情報が合致しなかったと動作指令部27で判断した場合には、動作すべき動作が無しとして、このフローを終了するとともに、ロボットアーム5は動作を停止する(ステップS112)。
 以上、図16の動作ステップS1~ステップS13及び図17A~図17BのステップS50~ステップS60により、制御ルールに基づいてロボットアーム5の動作中に、人4Aがロボットアーム5を直接把持して、力をロボットアーム5にかけることで、ロボットアーム5の周辺環境の変化を通知し、さらにその環境に応じて、動作情報を補正することができる。
 さらに、制御ルールを新たに生成することで、図29のステップS100~S112の動作指令部27の動作により、次回同じ環境となった際に、再度、人4Aが動作補正の操作をすることなく、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)ロボットアーム5が自律的に動作することが可能となる。
 (第2実施形態)
 本発明の第2実施形態における、ロボットアーム5とその制御装置の基本的な構成は、第1実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ以下、詳細に説明する。
 図19Aに示すように、ロボットアーム5とロボットアーム5制御装置を備えるロボット1を使って、IHクッキングヒーター6などの天板6aを拭き掃除作業する場合を例に説明する。ロボットアーム5のハンド30には、作業対象物の一例である拭き掃除作業用治具の一例としてのスポンジ46が取付けられている。
 まず、比較例として、本発明とは異なり、汚れが発生した場合(汚れた部分を見つけた場合)に、その都度、人4Aが補正操作をしなければならない場合について説明する。
 人4Aは、ロボットアーム5が、例えば図10Aの「作業ID」の「1」の作業で、図19A(図18AはIHクッキングヒーター6の天板6aを上方から見た図)に示すように、IHクッキングヒーター6などの天板6aをスポンジ46で拭き掃除動作をしている最中に、人4Aが、IHクッキングヒーター6などの天板6a上の拭き掃除動作中の場所とは別の場所(汚れた部分)91が汚れていることを見つけたとする。このとき、図19B(図18BはIHクッキングヒーター6の上方から見た図)に示すように、汚れ付近をスポンジ46で掃除するために、人4Aが手4でロボットアーム5を把持して、ロボットアーム5の手先位置にあるスポンジ46を、汚れた部分91に移動させる。
 次に、汚れた部分91に対して、天板6aの平面方向のスポンジ46(ハンド30)の移動速度を加速させると同時に天板6aの汚れ面に対してはスポンジ46で強めに擦るために、人4Aが動作中のロボットアーム5を把持して、天板6aの平面方向は加速させて移動させながら、さらに、人4Aが、IHクッキングヒーター6の上方から下向きに汚れた部分91に向かって力をロボットアーム5に加える。
 この結果、ロボットアーム5のIHクッキングヒーター6の平面方向は加速して移動しながら、ロボットアーム5は、さらに、IHクッキングヒーター6の擦る力を強めて、拭き掃除作業を行う。
 以上のような補正は、次回同じような汚れが発生した場合(汚れた部分を見つけた場合)に、再度、人4Aが補正操作をしなければならず、面倒であった。
 そこで、この第2実施形態では、人4Aからの操作とその際の環境情報から、制御ルール生成部23により制御ルールを生成することにより、次回同じような汚れが発生した場合には、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)ロボットアーム5が自律的に拭き掃除作業をすることができるようになる。
 以下、その機能について説明する。
 -動作指令部-
 以下、動作指令部27の機能について説明する。
 人4Aは、データ入力IF26により、制御ルールデータベース16の作業の中の「作業ID」に関する作業の中からロボットアーム5に実行させたい作業を選択して、動作指令部27により動作を実行する。すなわち、人4Aがデータ入力IF26により図10Aの「作業ID」が「1」の作業が選択された場合には、動作指令部27は、その「1」の作業に対応する「動作ID」で動作情報データベース17をデータベース入出力部28を介して参照し、動作情報(具体的には、位置、姿勢、時間、力)を基にフラグに従って制御モードを設定してロボットアーム5が動作するように、制御パラメータ管理部21へ指令を出す。
 具体的には、図10Aの「作業ID」が「1」の作業が選択された場合は、「環境ID」が「-1」の値であるので、ロボットアーム5が動作する環境情報に関わらず、「動作ID」で記憶された動作で動作するように動作指令部27から制御パラメータ管理部21へ指令を出す。「作業ID」が「1」の作業の「動作ID」が「1」の動作の場合には、図5Aの動作情報データベース17より、「フラグ」が0、1、3、4、5ビット目が「1」であるので、ロボットアーム5の手先のx、y、φ、θ、ψが有効ということを示しているので、x、y、φ、θ、ψについては位置制御モードで動作させ、z軸についてはフラグの「8」ビット目が「1」であるので、力制御モードで動作するように動作指令部27から制御パラメータ管理部21へ指令を出す。以上により、図19Aに示すように、ロボットアーム5は、IHクッキングヒーター6などの天板6aの拭き掃除作業を開始する。
 -動作補正部-
 以下、動作補正部20の機能について説明する。
 IHクッキングヒーター6などの天板6aを拭き掃除動作をしている最中に、人4AがIHクッキングヒーター6などの天板6a上の拭き掃除動作中の場所とは別の場所が汚れていることを確認し、データ入力IF26により、汚れの状態をロボットアーム5に知らせる操作(環境変化通知操作)の開始の指令を動作指令部27に出す。
 まず、動作補正部20は、データ入力IF26から動作指令部27を介して環境変化通知操作の指令を受けて、データベース入出力部28を介して動作情報データベース17のフラグに従って、制御モードを設定して動作するように、制御パラメータ管理部21へ指令を出す。具体的には、図10Aの「作業ID」が「1」の作業で動作中の「動作ID」が「1」の動作をデータベース入出力部28を介して動作情報データベース17から参照すると、それぞれの「キー動作ID」のフラグが、図5Aでは、0、1、3~5ビット目、8ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、位置姿勢に関しては、x軸、y軸、φ軸、θ軸、ψ軸、力に関してはz軸のみデータが有効ということが動作補正部20でわかる。
 従って、x軸、y軸、φ軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、x軸、y軸、φ軸、θ軸、ψ軸について、位置制御モードからインピーダンス制御モード(人4Aの力を検知した方向に移動させるモード)で動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。z軸については、IHクッキングヒーター6などの天板6aの位置で高剛性位置制御モードにより動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。インピーダンス制御モードでは、人4Aから力が加わっていない場合は停止し、人4Aから力が加わっている場合はその方向に移動することができる。高剛性位置制御モードでは、人4Aが力を加えても容易にロボットアーム5が移動しないモードで、人4Aが加えた力を力検出部53により検出することができる。
 次に、図19B(図18B)のように、IHクッキングヒーター6などの天板6aの汚れ箇所をロボットアーム5に知らせる操作(環境変化通知操作)を人4Aが行う。具体的には、人4Aが手4でロボットアーム5を直接把持して、汚れた部分91に向かって力をロボットアーム5に加えてx-y平面を移動させる。次いで、汚れた部分91の上でx軸方向及びy軸方向にスポンジ46を移動させながら、人4Aがz軸方向下向きに力をロボットアーム5に加える。
 人4Aが環境変化通知操作によりロボットアーム5に力を加えてロボットアーム5を移動させた動作を取得するために、制御パラメータ管理部21からのロボットアーム5の手先位置及び力を動作補正部20で取得し、取得した情報を動作補正部20から、後述する制御ルール生成部23へ出力する。
 次に、動作補正部20は、データ入力IF26から動作指令部27を介して動作補正操作の開始の指令を受けて、動作情報データベース17の補正パラメータフラグに従って、制御モードを設定して動作するように、制御パラメータ管理部21へ指令を出す。具体的には、図10Aの「作業ID」が「1」の作業で動作中の「動作ID」が「1」の動作をデータベース入出力部28を介して動作情報データベース18から動作補正部20が参照すると、それぞれの「キー動作ID」の補正パラメータフラグが、図5Aでは、0、1、8ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、x軸及びy軸の位置成分及びz軸の力成分のみ補正が可能ということが動作補正部20でわかる。x軸及びy軸の位置成分とz軸の力成分を補正する場合には、x軸及びy軸の位置成分とz軸の力成分を人4Aの加えた力で補正ができるように、x軸及びy軸はハイブリッドインピーダンス制御モードに、z軸は高剛性位置制御モードで動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。
 人4Aは、図19Cに示すように、汚れた部分91及びその付近を強めに力をかけて速く移動してスポンジ46で掃除するために、図19D(図19Cを上から見た図)に示すように、人4Aでロボットアーム5を直接把持して、加速したい場合は、拭き掃除の進行方向と同じ向きに人4Aでロボットアーム5に力をかけ、減速したい場合は掃除の進行方向に逆らう向きに人4Aの手4でロボットアーム5に力をかける。さらに、汚れた部分91に向かう方向については、人4Aがロボットアーム5を把持して汚れのある部分に向かってロボットアーム5に力を加える。
 x軸及びy軸は、ハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム5を移動させながら、インピーダンス制御モードにより、人4Aの手4でロボットアーム5にかけた力を力検出部53で検出して人4Aの手4でロボットアーム5に力をかけた方向にロボットアーム5をx軸方向及びy軸方向に移動させる。図10Aの「作業ID」が「1」の作業で動作中の「動作ID」が「1」の動作で示されたロボットアーム5の位置(x、y)から、次の「動作ID」のロボットアーム5の位置(x、y)まで移動するのにかかる時間をtとすると、ロボットアーム5の速度を人4Aの力で変更した場合(図19D参照)には、すなわち、位置(x、y)から位置(x、y)までに移動するのにかかる時間がtからtに変更された場合には、時間tの値が、動作補正部20から、制御パラメータ管理部21へ出力する。これにより、図19Eのような動作に補正される。
 さらに、z軸方向に加えた力は力検出部53で検出し、制御パラメータ管理部21からのロボットアーム5の力及び時間を動作補正部20で取得し、取得した情報を動作補正部20から、後述する制御ルール生成部23へ出力する。なお、この時間に関する情報は、人4Aが作業を選択して開始指令を出した時点を0とした相対時間とする。
 -制御ルール生成部-
 制御ルール生成部23は、第1実施形態の場合と同様に、データベース入出力部28を介して、制御ルールデータベース16の「動作ID」が参照する動作情報データベース17の位置及び姿勢及び力及び時間との情報にて、後述するインピーダンス制御モード、若しくは位置制御モード、若しくは力制御モード、若しくはそれらを方向別に組み合わせた制御モード、のうち、いずれかのモードでのロボットアーム5の動作中に、データ入力IF26から動作指令部27を介して、制御ルール生成部23で動作補正操作の開始の指令を受ける。すると、制御ルール生成部23では、動作補正部20で補正した動作情報と環境情報取得部19で取得した環境情報とに基づいて、制御ルールを生成し、データベース入出力部28を介して、制御ルールデータベース16に記憶する機能を有している。
 以下、制御ルール生成部23の機能について説明する。
 制御ルール生成部23には、データ入力IF26から動作指令部27を介して、動作中の作業IDに対して、環境変化通知操作の開始の指令を受けて、人4Aからの環境変化通知操作にて生成したロボットアーム5の手先位置及び時間を動作補正部20より入力される。加えて、環境変化通知操作の開始のタイミングより、環境情報取得部19より環境情報が制御ルール生成部23に入力される。さらに、環境変化通知操作の開始時の動作中の「動作ID」を動作情報データベース18からデータベース入出力部28を介して制御ルール生成部23で参照し、その「動作ID」の「キー動作ID」のフラグに関する情報から、現在のロボットアーム5の制御モードに関する情報を制御ルール生成部23で取得する。具体的には、図10Aの「作業ID」が「1」の作業で動作中の「動作ID」が「1」の動作の「キー動作ID」が「1」~「8」のキー動作をデータベース入出力部28を介して動作情報データベース18から制御ルール生成部23で参照すると、それぞれの「キー動作ID」のフラグが、図5Aでは、0、1、3~5、8ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、位置姿勢に関しては、x軸、y軸、φ軸、θ軸、ψ軸、力に関してはz軸のみデータが有効ということが制御ルール生成部23でわかる。従って、x軸、y軸、φ軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、インピーダンス制御モードとなっている。
 現在動作中の環境変化通知操作の際のロボットアーム5の移動方向の制御モードと検出部選択ルールデータベース29に基づいて、複数の環境情報の中から制御ルールを生成するための環境情報の種別を制御ルール生成部23で選択する。具体的には、図10Aの「作業ID」が「1」の作業の環境変化通知操作の開始のタイミングでは、図18Bのようにx軸方向及びy軸方向で環境変化通知操作を行っている。x軸及びy軸はインピーダンス制御モードで補正しているので、図11Aより、環境情報の種別IDは「1」となり、図11Bより、「画像」となる。さらに、図18Bでは、x軸方向及びy軸方向に環境変化通知操作をしているので、x-y平面を撮影可能な第1画像撮像装置15aでの画像を制御ルール生成部23で選択する(例えば図20の汚れが撮像された画像)。さらに、図18Bの操作では、高剛性位置制御モードにてz軸方向に力を加える操作をしている。図11Aより、環境情報の種別IDは、高剛性位置制御モードの場合は「2」となり、図11Bより、「力」となり、力検出部53で検出した力を制御ルール生成部23で選択する。
 制御ルール生成部23で取得した画像と力の情報を、制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。具体的には、図9Aの「環境ID」が「11」の環境情報に示すように、新しい「環境ID」に「11」を制御ルール生成部23で付与し、その「環境ID」の「画像ID」に、選択した画像のファイル名を制御ルール生成部23でデータベース入出力部28を介して環境情報データベース18に記憶する(この例では画像4であり、図20の汚れた部分91が撮像された画像である。)。さらに、検出した力の値を制御ルール生成部23でデータベース入出力部28を介して環境情報データベース18に記憶する。なお、力に関しては全ての軸を制御ルール生成部23でデータベース入出力部28を介して環境情報データベース18に記憶する。力に関しては、汚れによって摩擦係数(摩擦係数は、拭き掃除動作時の力検出部53の出力のうち、掃除面上の進行方向の力を、掃除面の垂直抗力で割ることで算出される)が異なる。例えば、粘性のある物質がこびりついている場合には、摩擦係数が大きくなる。従って、力に関する情報を制御ルール生成部23でデータベース入出力部28を介して環境情報データベース18に記憶することで、摩擦係数に応じて拭き掃除の力加減を変えることができるようになる。
 フラグは、画像及び力の全ての値が有効であるので、0~6ビット目を「1」として、制御ルール生成部23でデータベース入出力部28を介して環境情報データベース18に記憶する。
 動作補正操作の開始の指令を受けて、動作補正部20で補正した動作情報をデータベース入出力部28を介して動作情報データベース17に記憶する。
 具体的には、図5Cに示すように、動作情報データベース17に新規に「動作ID」を動作補正部20で付与し(この例では「4」)、さらに「キー動作ID」として(「32」~「38」)を動作補正部20で付与し、動作補正部20で補正した動作情報をそれぞれの「キー動作ID」に記憶する。時間については、動作補正部20からは、人4Aが作業を選択して開始指令を出した時点を0とした相対時間が入力されるため、一番最初のキー動作(この例では「20」)の時間を全ての動作のそれぞれの時間から減算した値を動作情報データベース17に記憶する。フラグについては、補正前のフラグで「1」となっている動作情報の成分のうち、補正前と補正後の「動作ID」のそれぞれのキー動作の位置姿勢と力の値とをそれぞれの成分毎に動作補正部20で比較し、その差がある閾値以上の成分のみ、動作補正部20により、図6のフラグのそれぞれの成分を「1」とし、閾値未満の場合には「0」とする。
 具体的には、補正前の「動作ID」が「1」の動作のフラグは、0、1、3~5、8ビット目が「1」であり、その他は「0」であるので、補正前の動作と補正後の動作の位置姿勢、力の値のうち、位置姿勢(x,y,φ,θ,ψ)、力z成分のみを動作補正部20で比較する。「キー動作ID」が「1」のキー動作と「4」のキー動作とでは、位置姿勢(x,y,φ,θ,ψ)の成分のうち、x成分の差は0.1(m)、y成分の差は0.2(m)、その他の成分は同じで、力のz成分の差が3(N)となる。位置の差の閾値を0.05(m)、力の差の閾値を0.5(N)とすると、位置x成分及びy成分、力のz軸成分が閾値以上となる。従って、「動作ID」が「4」の動作のそれぞれの「キー動作ID」のフラグは、0、1、8ビット目が「1」で、その他は「0」となる。
 補正パラメータフラグについては、補正前の動作(この例では「1」~「8」)の値を動作補正部20により動作情報データベース17に記憶する。
 以上により、人4Aが環境変化通知操作及び動作補正操作をすることにより、制御ルール生成部23により、新しい制御ルールを生成することで、環境変化に伴って、人4Aが操作をして動作を補正すれば、次に同じような環境になった場合に、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)ロボットアーム5は自律的に動作することができるようになる。
 以上のように、制御ルールを新しく生成することで、次に同じ環境になった場合に(この例では、汚れがひどい場合は強めに速く拭き掃除を行う場合に)、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)追加した制御ルールで作業を行うことが可能になる。
 この例では、図10Bに示すように、「作業ID」が「1」の作業には、複数の「動作ID」(「1」、「4」)を動作情報データベース17に記憶しているため、その場合の動作指令部27の機能(動作算出部2)について説明する。
 図10Bの「作業ID」が「1」の作業の「動作ID」が「1」の動作は、図19Aの動作を行うための動作情報を表し、一方、「作業ID」が「1」の作業の「動作ID」が「4」の動作は図19Bのように汚れがひどい場合の拭き掃除動作を行うための動作情報を表す。
 人4Aが、データ入力IF26により、「作業ID」が「1」の作業の開始を動作指令部27に指令する。
 動作指令部27は、指定された「作業ID」の作業の作業開始指令を受けて、データベース入出力部28を介して制御ルールデータベース16の指定された「作業ID」の作業を開始させる。このとき、「作業ID」の中に複数の「動作ID」が存在すると動作指令部27で判断した場合は、それぞれの「環境ID」とそれぞれの「動作ID」のフラグ(「動作ID」で動作情報データベース17をデータベース入出力部28を介して動作指令部27が参照し、そこで記憶されているフラグ)により、最終的に実行すべき動作情報を動作指令部27の動作算出部2により算出する。
 具体的には、図10Bにおいて、「作業ID」が「1」の作業には、「動作ID」が「1」の動作と「4」の動作とがある。「動作ID」が「1」の動作は「環境ID」が「-1」の値であるので、ロボットアーム5の周辺環境に拘わらず動作するので、実行すべき動作として動作指令部27により選択する。
 次に、「動作ID」が「4」の動作の「環境ID」は「11」の環境情報となり、「-1」の値ではないので、動作指令部27により、環境情報データベース18の「環境ID」が「11」の環境情報をデータベース入出力部28を介して参照する。図9Aの「環境ID」が「11」の環境情報のフラグは、1~6ビット目が「1」であるので、画像及び力が有効であると、動作指令部27で判断できる。そこで、画像ID(具体的には画像ファイル名)及び力を、データベース入出力部28を介して環境情報データベース18により動作指令部27が取得する。
 次に、環境情報取得部19より、現在の画像情報及び力情報を動作指令部27が取得して、画像マッチングにより、前記取得した画像IDの画像情報と現在の画像情報とに基づく2つの画像を動作指令部27で比較する。2つの画像が合致したと動作指令部27で判断した場合には、「動作ID」が「3」で記憶されている動作を実行すべき動作として動作指令部27で選択する。
 選択された動作が複数存在する場合は(この例では、「動作ID」が「1」の動作と「4」の動作)、選択された複数の動作を、制御ルールデータベース16に記憶されている順に、それぞれの動作情報のフラグに応じて、実行すべき動作を動作指令部27で足し合わせる。
 この例では、「動作ID」が「1」の動作と「4」の動作とが動作指令部27で選択されており、図10Bの制御ルールデータベース16の「動作ID」には「1」の動作、「4」の動作の順に記憶されている。従って、「動作ID」が「1」の動作の動作情報のフラグが、図5Cより0、1、3~5ビット目及びビット目が「1」であるので、「動作ID」が「1」の動作の動作情報のうち、位置姿勢情報(x,y,φ,θ,ψ)と力z軸成分の動作情報を動作指令部27で取得する。
 次に、「動作ID」が「4」の動作のフラグは、0、1、8ビット目のみ「1」であるので、「動作ID」が「1」の動作の位置のx成分及びy成分と力のz軸成分を「動作ID」が「4」の動作のそれぞれに置き換えて動作指令部27で算出する。例えば、「キー動作ID」が「1」のキー動作の位置姿勢は、(0.1,0.1,0,0,0,0)、力(0,0,5,0,0,0)であり、「動作ID」が「4」の動作の「キー動作」が「32」の動作の位置姿勢は、(0.2,0.3,0,0,0,0)、力(0,0,8,0,0,0)であるので、「キー動作」が「1」のキー動作の位置姿勢、力情報のうち、「キー動作ID」が「32」のキー動作の位置のx成分及びy成分(0.2、0.3)と力z軸成分8(N)のみを動作指令部27で置き換えることで、最終の位置姿勢は、(0.2,0.3,0,0,0,0)、力情報(0,0,8,0,0,0)となる。同様に「キー動作ID」が「2」のキー動作の位置のx成分及びy成分と力のz成分を、「キー動作ID」が「33」のキー動作のx成分及びy成分と力のz成分で動作指令部27で置き換え、以降、「キー動作ID」の終わりまで動作指令部27で順次算出する。
 動作情報のフラグ及び動作情報フラグについて、「動作ID」が「1」の動作と「4」の動作とのそれぞれのビットにおいて、どちらかのビットが「1」の場合には、算出後のフラグのビットを「1」にするとともに、両方とも「0」の場合には、「0」とする。ただし、位置と力のそれぞれの成分はどちらかにしか「1」とならないため(位置制御モード若しくは力制御モードのどちらかでしか作動しないため)、位置と力の両方に「1」となった場合には、力を優先する。
 「動作ID」の「1」の動作のフラグは、0、1、3~5、8ビット目が「1」であり、「4」は8ビット目が「1」であるので、算出した動作のフラグは、0、1、3~5、8ビット目が「1」となる。
 「動作ID」の「1」の動作と「4」の動作との動作パラメータフラグは、共に0、1、8ビット目が「1」であるので、算出した動作の動作パラメータフラグは0、1、8ビット目が「1」となる。
 算出後の動作情報をフラグに応じて制御モードを動作指令部27で切り替えて、動作情報を動作指令部27から制御パラメータ管理部21へ出力することで、算出した動作を動作指令部27で実行することが可能となる。
 以上により、拭き掃除中に人4Aが汚れている箇所をロボットアーム5を直接把持して、力をロボットアーム5にかけることで、ロボットアーム5の周辺環境の変化(汚れのある箇所)を通知し、汚れの色又は汚れ面の摩擦係数に応じて、動作情報を補正することができる。さらに、第1実施形態と同様に、制御ルールを新たに生成することで、図29のステップS100~S112の動作指令部27の動作により、次回同じ環境となった際に、再度人4Aが動作補正の操作をすることなく、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)ロボットアーム5が自律的に動作することができるようになる。
 (第3実施形態)
 本発明の第3実施形態における、ロボットアーム5とその制御装置の基本的な構成は、第1実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ以下、詳細に説明する。
 第3実施形態においては、ロボットアーム5とロボットアーム5の制御装置を備えるロボット1を使って、図21に示すように、セル生産の工場でテレビ又はDVDレコーダなどの機器71にネジ73を取り付ける場合を例にとって説明する。ロボットアーム5のハンド30には、作業用治具の一例としてネジ73を取り付けるための工具が取付け可能としている。
 図21に示したように、ロボット1のロボットアーム5は、例えば工場内の作業台テーブルなどの作業台7の壁面7aに設置され、ロボットアーム5の基端が、壁面7aに固定されたレール8に、移動可能に支持され、レール8上をロボットアーム5がレール8沿いの横方向例えば水平方向に、人4Aの力により、移動可能とする。15aはカメラなどの第1画像撮像装置であり、例えば天井7bから作業台7を撮像できるように取り付けられている。
 ロボット1は、例えば、工場内で、テレビ又はDVDレコーダのネジ73の取り付け作業などのロボットアーム5と人4Aとが協働して行う作業をロボットアーム5を使用して行う。
 第1実施形態と同様に、まず、人4Aが手4でロボット1のロボットアーム5を直接把持してロボットアーム5に力を加える。そして、人4Aからロボットアーム5に加えられた力により、ロボット1のロボットアーム5をレール8に沿って移動させることで、器具71(この例では、ネジ73を取り付けるテレビ又はDVDレコーダの機器を示す。)の付近までロボットアーム5を誘導する。
 次に、人4Aが、ロボット1のロボットアーム5の手先すなわち先端のハンド30に、作業対象物の一例である作業用冶具9の別の例として、ネジ73を取り付けるための工具、例えば、電動ドライバ器具72を取り付ける。電動ドライバ器具72は、例えば、ネジ73をその下端に支持可能でかつ電動ドライバ器具72を下方に向けて機器71に押し付けることにより、スイッチがオンになり、ドライバが自動的に回転してネジ73をネジ穴71aに対してネジ回転動作可能(締め付け動作可能又は取り外し動作可能)に構成している。押し付けを解除すれば、推知がオフとなり、電動ドライバ器具72のドライバの回転が停止される。
 次に、セル生産の作業台7などの前側側面7eなどに配置されている、データ入力IF26の一例としてのロボット1の操作盤13のボタン13aを、人4Aが押すなどしてデータ入力IF26を使用することにより、ロボットアーム5が作動し、予め選択された作業、すなわち、器具71のネジ穴71aに、ハンド30で把持した電動ドライバ器具72の先端に支持されたネジ73を取り付ける(締め付ける)作業を開始させる。
 次に、機器71の仕様変更により、機器71の形状又はネジ73若しくはネジ穴71aの仕様が変更になった場合に、ロボットアーム5が、ハンド30で把持した電動ドライバ72によりネジ73の取り付け作業を行っているときに、人4Aがネジ73の取り付け状態を確認し、人4Aがロボットアーム5に力を加えて、ネジ73の締め付け方、又は、ネジ73の位置の調整などの動作補正を行うことにより、ロボット1のロボットアーム5の動作を補正する。
 レール8は、作業台7の壁面7aに配置したが、壁面の無い作業台の場合は、天井面又は作業台の天板6aの側面など作業をするのに適した場所に設置することができる。
 さらに、操作盤13は、作業台7の側面に固定したが、操作盤13に代えて、遠隔操作が可能なリモコンでも良い。
 -動作情報データベース-
 動作情報データベース17は、第1実施形態と同様に、ロボットアーム5の、ある時間におけるロボットアーム5の手先位置及び姿勢などのロボットアーム5の動作に関する情報(動作情報)を記憶している。動作情報は、制御ルール生成部23を介してデータベース入出力部28により動作情報データベース17に入出力される。
 図22A、図22Bは、本第3実施形態の動作情報データベース17を示す。フラグ以外の動作情報は第1実施形態と同様であるので、説明を省略する。フラグは、ロボットアーム5の手先位置及び姿勢及び力のパラメータのうちのいずれの情報が有効かを示すフラグに関する情報である(図22Aの「フラグ」の欄参照)。具体的には図23に示した32ビットの数値で表す。0~11ビット目は第1実施形態と同様である。12~17ビット目は、手先位置及び姿勢のそれぞれの値が有効である場合に(0~5ビット目のいずれかが「1」の場合)、その手先位置及び姿勢の動作情報として、その動作情報を実行する際の直前の手先位置及び姿勢の値をコピーして使う場合に「1」とし、使わない場合は「0」とする。例えば、図22Aの「キー動作ID」が「50」のキー動作の「フラグ」は、0、1、3~5、8、12、13、15~17目が「1」で、その他は「0」である。これは、0,1、3~5、8ビット目が「1」であることから、手先位置及び姿勢のうち、(x,y,φ,θ,ψ)と力のz成分が有効であることを示す。さらに、12,13,15~17目が「1」であるので、手先位置及び姿勢のうち、(x,y,φ,θ,ψ)成分を直前で動作している手先位置及び姿勢の(x,y,φ,θ,ψ)成分をコピーする。例えば「キー動作ID」が「50」のキー動作の開始直前に「キー動作ID」が「48」のキー動作が動作していた場合には、「キー動作ID」が「48」のキー動作の位置姿勢のうち、(x,y,φ,θ,ψ)の値(この例では、(0.2,0.1,0,0,0))を「キー動作ID」が「50」のキー動作の位置姿勢(x,y,φ,θ,ψ)にコピーする。直前の手先位置及び姿勢をコピーするため、直前の手先位置及び姿勢が次の手先位置及び姿勢の値と同じであることから、ロボットアーム5はその手先位置及び姿勢で停止することになる。
 -動作指令部(動作算出部)-
 以下、動作指令部27の機能について説明する。
 人4Aは、データ入力IF26により、制御ルールデータベース16の作業の中の「作業ID」に関する作業の中からロボットアーム5に実行させたい作業をデータベース入出力部28を介して選択して、動作指令部27により、その選択した「作業ID」にかかる動作を実行するように制御パラメータ管理部21へ指令する。
 動作指令部27がデータベース入出力部28を介して制御ルールデータベース16を参照するとき、1つの「作業ID」の作業が選択された場合で、かつ、動作指令部27は、前記1つの「作業ID」の作業の中に複数の「動作ID」が記憶されていると判断した場合は、動作算出部2により動作情報を算出し、算出した動作情報(具体的には、位置、姿勢、時間、力)をフラグに従って、制御モードを設定して動作するように、データベース入出力部28を介して制御パラメータ管理部21へ指令を出す。
 具体的には、図10Aの「作業ID」が「3」の作業は、図24A(図21を上方から見た図)に示すように、ロボットアーム5の手先位置のハンド30がネジ穴71a間を移動しながら、ネジ穴71aをロボット1で検出すると、ロボットアーム5の手先位置のハンド30の電動ドライバ器具72に支持されたネジ73をネジ穴71aに締め付ける動作を行う制御ルールでの作業を示す。「作業ID」が「3」の作業には複数の「動作ID」(「11」、「12」)が記憶されている。
 動作算出部2では、複数の動作から1つの動作情報を算出する。具体的には、「動作ID」が「11」の動作と「12」の動作との中から1つの動作情報を動作算出部2で算出する。「動作ID」が「11」の動作は、ロボットアーム5の手先位置のハンド30(正確には、ハンド30で把持した電動ドライバ器具72)が、図24Aに示すように、ネジ穴71a間を移動する動作を表す。「動作ID」が「11」の動作の「環境ID」は「-1」の値であるので、ロボットアーム5の周辺環境に拘わらず、ロボットアーム5が動作するので、実行すべき動作として動作指令部27で選択する。「動作ID」が「12」の動作は、下記するように、ネジ穴71aであると動作指令部27で判断した場合に、ネジ73を締め付ける動作を表す。「動作ID」が「12」の動作の「環境ID」は「20」の環境情報で、「-1」の値ではないので、環境情報データベース18の「環境ID」が「20」の環境情報をデータベース入出力部28を介して動作指令部27で参照する。図9Aの「環境ID」が「20」の環境情報のフラグは、6ビット目のみ「1」であり、それ以外は「0」であるので、画像が有効であると、動作指令部27で判断することができる。そこで、画像IDより、環境情報データベース18に記憶されている画像の情報を動作指令部27で取得する。この画像は図25のネジ穴71aの画像の情報を示す。次に、環境情報取得部19より、現在の画像情報を動作指令部27で取得して、画像マッチングにより、2つの画像を動作指令部27で比較し、ネジ穴71aかどうかを動作指令部27で判断する。2つの画像が合致したと動作指令部27で判断した場合には、ネジ穴71aだと動作指令部27で判断し、「動作ID」が「12」で記憶されている動作を実行すべき動作として動作指令部27で選択する。合致しなかったと動作指令部27で判断した場合には、「動作ID」が「12」の動作は動作指令部27で選択せず、「11」の動作のみを動作指令部27で選択する。
 動作指令部27で選択された「動作ID」が1つのみの場合には、第1実施形態と同様に、「動作ID」と同じ「動作ID」の動作を動作情報データベース17からデータベース入出力部28を介して動作指令部27で参照する。「動作ID」と同じIDの動作情報は複数の「キー動作ID」で管理する動作情報(具体的には、位置の情報と、姿勢の情報と、時間の情報と、力の情報)を動作情報のフラグに従って、制御モードを設定して動作するように、動作指令部27から制御パラメータ管理部21へ指令を出して、それぞれのキー動作を順次実行するように、動作指令部27から制御パラメータ管理部21へ動作情報を出力する。この例では、ロボットアーム5の周辺の環境が、「動作ID」が「12」の動作の「環境ID」が「20」の環境情報に合致しないと動作指令部27で判断した場合には、ネジ穴71aが検出できなかったと動作指令部27で判断し、「動作ID」が「11」で示した動作を実行するように動作指令部27から制御パラメータ管理部21へ指令を出す。
 すなわち、図22Aの動作情報データベース17より、「フラグ」が0~5ビット目が「1」であるので、ロボットアーム5の手先のx、y、z、φ、θ、ψが有効ということを示しているので、x、y、z、φ、θ、ψについては位置制御モードで動作させる。
 以上により、図24A(図21を上方から見た図)に示すように、ロボットアーム5はネジ穴71a間を移動する動作を開始する。
 「動作ID」が「11」の動作でロボットアーム5がネジ穴71a間を移動中に、ネジ穴71aの上方の部分にロボットアーム5が到達したと動作指令部27で判断した場合には、「動作ID」が「12」の動作の「環境ID」が「20」の環境情報の画像と環境情報取得部19で取得した現在の画像情報の画像とが合致すると動作指令部27で判断されるため、「動作ID」が「11」の動作と「12」の動作との2つの動作が動作指令部27で選択される。動作指令部27の動作算出部2では、それぞれの「動作ID」のフラグ(「動作ID」で動作情報データベース17をデータベース入出力部28を介して動作指令部27で参照し、そこで記憶されているフラグ)により、最終的に実行すべき動作情報を算出する。
 この例では、「動作ID」が「11」の動作と「12」の動作とが動作指令部27で選択されており、図10Aの制御ルールデータベース16の「動作ID」には「11」の動作、「12」の動作の順に記憶されている。従って、「動作ID」が「11」の動作の動作情報のフラグが、図22Aより0~5ビット目及びビット目が「1」であるので、「動作ID」が「11」の動作の動作情報のうち、位置姿勢情報(x,y,z,φ,θ,ψ)の動作情報を動作指令部27で取得する。
 次に、「動作ID」が「12」の動作のフラグは、0、1、3~5、8、12、13、15~17目が「1」で、その他は「0」である。フラグのうち、12,13,15~17ビット目が「1」であるので、その際に、「動作ID」が「12」の動作のそれぞれのキー動作のフラグのうち、12,13,15~17ビット目が「1」であるので、「動作ID」が「11」の動作の動作情報を現在実行中のロボットアーム5の手先位置情報をコピーして動作指令部27で置き換える。この例では、ネジ穴71aの上方にロボットアーム5が配置されているので、その位置及び姿勢情報を「動作ID」が「11」の動作に動作指令部27でコピーする。他のキー動作の位置についても同様に動作指令部27で置き換える。
 次に、「動作ID」が「11」の動作の動作情報のうち、(x,y,φ,θ,ψ)と力z成分の値を「動作ID」が「12」の動作のそれぞれの動作情報に動作指令部27で置き換えて動作算出部2で算出する。
 以降、「キー動作ID」の終わりまで順次動作算出部2で算出する。
 動作算出部2で算出した動作情報のフラグ及び動作情報フラグについて、動作算出部2により、「動作ID」が「11」の動作と「12」の動作とのそれぞれのビットにおいて、どちらかのビットに「1」の場合には、算出後のフラグのビットを「1」に、両方とも「0」の場合には、「0」とする。ただし、位置と力のそれぞれの成分はどちらかにしか「1」とならないため(位置制御モード若しくは力制御モードのどちらかでしか作動しないため)、位置と力の両方に「1」となった場合には、力を優先する。
 「動作ID」が「11」の動作のフラグは、0~5ビット目が「1」であり、「12」は0、1、3~5、8、12、13、15~17ビット目が「1」であるので、0~5、8、12、13、15~17ビット目が「1」となる。位置z成分と力z分の両方が「1」となっているので、力を優先するため、最終的には、0、1、3~5、8、12、13、15~17ビット目が「1」となる。
 「動作ID」が「11」の動作の動作パラメータフラグは、1,2,3ビット目が「1」であり、「動作ID」が「12」の動作の動作パラメータフラグは、8ビット目が「1」である。従って、動作算出部2で算出した動作の動作パラメータフラグは、1,2,3,8ビット目が「1」となる。
 動作算出部2で算出した動作の「フラグ」が0、1、3~5ビット目が「1」であるので、ロボットアーム5の手先のx、y、φ、θ、ψが有効ということを示しているので、x、y、φ、θ、ψについては位置制御モードで動作させる。さらに、8ビット目が「1」であるので、z軸は力制御モードで動作するように、動作指令部27から制御パラメータ管理部21へ指令を出す。
 以上により、図24B(図21を上方から見た図)に示すように、ロボットアーム5はネジ73をネジ穴71aの中に締め付ける動作を開始する。
 -動作補正部-
 以下、動作補正部20の機能について説明する。
人4Aがデータ入力IF26により、「作業ID」が「3」の作業を指定して動作指令部27に作業開始を指示すると、図26Aに示すように、ロボットアーム5にネジ73をネジ穴71aから取り外す作業を開始する。
 次に、TV又はDVDレコーダなどの機器71の仕様変更に伴い、図26Bに示すように、仕様変更箇所に立設された突出部材(例えば、新たに装着された部品又はネジなど)71bを追加するよう仕様変更した機器を設置する。あらかじめ生成されている「作業ID」が「3」の作業は突出部材71bの仕様変更前に生成されているため、そのまま動作させると、突出部材71bにぶつかって、ロボットアーム5の動作が止まってしまう。
 そこで、人4Aは、図26Cに示すような環境変化通知操作の開始の指令をデータ入力IF26を介して動作指令部27に入力する。動作補正部20は、データ入力IF26から動作指令部27を介しての環境変化通知操作の指令を受けて、動作情報データベース17のフラグに従って、制御モードを設定して動作するように、制御パラメータ管理部21へ指令を出す。
 具体的には、図26Bに示すように、仕様変更箇所の突出部材71bに衝突した箇所では、ネジ穴71aがないので、「動作ID」が「12」の動作の「環境ID」が「20」の環境情報に合致しないと動作補正部20で判断するため、「動作ID」が「11」の動作のみで動作している。動作中の「動作ID」が「11」の動作を動作情報データベース18からデータベース入出力部28を介して動作補正部20で参照すると、それぞれの「キー動作ID」のフラグが、図22Aでは、0~5ビット目が「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、位置姿勢に関しては、x軸、y軸、z軸、φ軸、θ軸、ψ軸が有効ということが動作補正部20でわかる。従って、x軸、y軸、z軸、φ軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、x軸、y軸、φ軸、θ軸、ψ軸について、位置制御モードからインピーダンス制御モード(人4Aの力を検知した方向に移動させるモード)で動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。
 次に、図26Cのように、機器71上の仕様変更箇所の突出部材71bを知らせるために、仕様変更箇所の突出部材71bの上方箇所を71と平行にx-y平面を移動させる。人4Aが環境変化通知操作により力を加えて移動させた動作を動作補正部20で取得するために、制御パラメータ管理部21からのロボットアーム5の手先位置及び力を動作補正部20で取得し、後述する制御ルール生成部23へ動作補正部20から出力する。
 次に、動作補正部20は、データ入力IF26から動作指令部27を介しての動作補正操作の開始の指令を受けて、動作情報データベース17の補正パラメータフラグに従って、制御モードを設定して動作するように、制御パラメータ管理部21へ動作補正部20から指令を出す。具体的には、図10Aの「作業ID」が「3」の作業で動作中の「動作ID」が「11」の動作を動作情報データベース18から動作補正部20で参照すると、それぞれの「キー動作ID」の補正パラメータフラグが、図22Aでは、0~2ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作の位置姿勢のうち、x軸成分、y軸成分、及び、z軸成分のみ補正が可能ということが動作補正部20でわかる。x軸、y軸、及び、z軸について、位置制御モードからハイブリッドインピーダンス制御モード(位置制御モードで移動しながら、人4Aの力を検知した方向にインピーダンス制御で移動させるモード)で動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。
 次に、図26Dに示すように、人4Aがロボットアーム5を直接把持して、仕様変更箇所の突出部材71bに衝突しない高さになるように力をかけると、ハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム5を移動させながら、インピーダンス制御モードにより、人4Aの力を検知して力をかけた方向にロボットアーム5をx軸方向、y軸方向、及び、z軸方向に移動させることができる。人4Aが力を加えて移動させた動作を取得するために、制御パラメータ管理部21からのロボットアーム5の手先位置及び時間を動作補正部20で取得し、後述する制御ルール生成部23へ動作補正部20から出力する。なお、この時間に関する情報は、人4Aが作業を選択して開始指令を出した時点を0とした相対時間とする。
 -制御ルール生成部-
 制御ルール生成部23は、第1実施形態の場合と同様に、制御ルールデータベース16の動作IDが参照する動作情報データベース17の位置及び姿勢及び力及び時間との情報にて、後述するインピーダンス制御モード、若しくは位置制御モード、若しくは力制御モード、若しくはそれらを方向別に組み合わせた制御モード、のうち、いずれかのモードでのロボットアーム5の動作中に、データ入力IF26から動作指令部27を介して、制御ルール生成部23で環境変化通知操作及び動作補正開始の指令を受ける。すると、制御ルール生成部23では、動作補正部20で補正した動作情報と環境情報取得部19で取得した環境情報とに基づいて、制御ルールを生成し、制御ルールデータベース16に記憶する機能を有している。
 以下、制御ルール生成部23の機能について説明する。
 図26Bに示すように、仕様変更箇所の突出部材71bに衝突した箇所では、ネジ穴71aがないので、「動作ID」が「12」の動作の「環境ID」が「20」の環境情報に合致しないため、「動作ID」が「11」の動作のみで動作している。
 制御ルール生成部23は、データ入力IF26から動作指令部27を介して動作中の作業IDに対して、環境変化通知操作の開始の指令を受けて、人4Aからの環境変化通知操作にて生成したロボットアーム5の手先位置及び時間を動作補正部20より入力する。加えて、環境変化通知操作の開始のタイミングより、環境情報取得部19より環境情報を入力する。さらに、環境変化通知操作の開始時の動作中の「動作ID」を動作情報データベース18から制御ルール生成部23で参照し、その「動作ID」の「キー動作ID」のフラグに関する情報から現在のロボットアーム5の制御モードに関する情報を制御ルール生成部23で取得する。具体的には、図10Aの「作業ID」が「3」の作業で動作中の「動作ID」が「11」の動作の「キー動作ID」が「41」~「48」のキー動作を動作情報データベース18から参照すると、それぞれの「キー動作ID」のフラグが、図22Aでは、0~5ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、x軸、y軸、z軸、φ軸、θ軸、ψ軸のみデータが有効ということが制御ルール生成部23でわかる。従って、x軸、y軸、z軸、φ軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、インピーダンス制御モードとなっている。
 現在動作中の環境変化通知操作の際のロボットアーム5の移動方向の制御モードと検出部選択ルールデータベース29に基づいて、複数の環境情報の中から制御ルールを生成するための環境情報の種別を制御ルール生成部23で選択する。具体的には、図10Aの「作業ID」が「3」の作業の環境変化通知操作の開始のタイミングでは、図26Cのようにx軸方向及びy軸方向で環境変化通知操作を行っている。x軸及びy軸はインピーダンス制御モードで補正しているので、図11Aより、環境情報の種別IDは「1」となり、図11Bより、「画像」を制御ルール生成部23で選択する。さらに、図26Cでは、x軸方向及びy軸方向に環境変化通知操作をしているので、x-y平面を撮影可能な画像撮像装置15aでの画像を制御ルール生成部23で選択する。具体的には、図27に示すように、仕様変更箇所の突出部材71bを上方から下向きに撮像した画像となる。選択した画像は、制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。この例では、図9Aの「環境ID」が「21」の環境情報に示すように、新しい「環境ID」として「21」を制御ルール生成部23で付与し、その「環境ID」の「画像ID」に、選択した画像のファイル名を制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。さらに、フラグは画像のみであるので、6ビット目のみ「1」を、その他のビットに「0」を制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。
 次に、動作補正操作の開始の指令を受けて、動作補正部20で補正した動作情報を、データベース入出力部28を介して動作情報データベース17に記憶する。
 具体的には、図22Bの動作情報データベース17に新規に「動作ID」を動作補正部20で付与し(この例では「13」)、さらに「キー動作ID」として「60」~「67」を動作補正部20で付与し、動作補正部20で補正した動作情報を、動作補正部20によりデータベース入出力部28を介して動作情報データベース17のそれぞれの「キー動作ID」に記憶する。時間について、動作補正部20からは、人4Aが作業を選択して開始指令を出した時点を0とした相対時間が入力されるため、一番最初のキー動作(この例では「60」)の時間を全ての動作のそれぞれの時間から減算した値を、動作補正部20によりデータベース入出力部28を介して動作情報データベース17に記憶する。フラグについては、補正前のフラグで「1」となっている動作情報の成分のうち、補正前と補正後の「動作ID」のそれぞれのキー動作の位置姿勢と、力の値とをそれぞれの成分毎に動作補正部20で比較し、その差がある閾値以上の成分のみ、図6のフラグのそれぞれの成分を動作補正部20で「1」とし、閾値未満の場合には動作補正部20で「0」とする。
 具体的には、補正前の「動作ID」が「11」の動作のフラグは、0~5ビット目が「1」であり、その他は「0」であるので、補正前の動作と補正後の動作の位置姿勢と、力の値とのうち、位置姿勢成分のみを動作補正部20で比較する。「キー動作ID」が「41」のキー動作と「キー動作ID」が「60」のキー動作とでは、位置姿勢(x,y,z,φ,θ,ψ)の成分のうち、φ,θ,ψは同じで、x座標、y座標、及び、z座標の差がそれぞれ(0.2、0.2、0.4)となり、差の閾値を0.1とすると、x成分、y成分、及びz成分のみが閾値以上となる。従って、動作補正部20により、フラグは0,1、2ビット目が「1」で、その他は「0」とする。
 補正パラメータフラグについては、補正前の動作(この例では「41」~「48」)の値を動作補正部20によりデータベース入出力部28を介して動作情報データベース17に記憶する。
 次に、取得した環境情報と動作補正部20の動作補正操作で補正した動作から制御ルールデータベース19に新しい制御ルールを制御ルール生成部23で生成して記憶する。
 具体的には、制御ルールデータベース16の「作業ID」が「3」の作業で動作中に動作を補正するため、制御ルール生成部23により、図10Bに示すように、「作業ID」が「3」の作業に1行追加し、動作補正により新しく追加した「動作ID」が「13」の動作を追加する。
 次に、制御ルール生成部23で選択した環境情報の環境IDをデータベース入出力部28を介して制御ルールデータベース16に記憶する(この例では環境ID「21」)。
 以上により、人4Aが環境変化通知操作及び動作補正操作を行い、制御ルール生成部23により新しい制御ルールを生成することで、機器71の仕様変更を考慮した動作を事前に用意しておかなくても、その場で人4Aが操作をして環境通知及び動作を補正するだけで、次に同じような環境になった場合に、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)ロボットアーム5は自律的に動作することができるようになる。
 -動作指令部(動作算出部)-
 この例では、図10Bに示すように、「作業ID」が「3」の作業には、複数の「動作ID」(「11」「12」、「13」)を記憶しているため、その場合の動作指令部27の機能について説明する。
 図10Bの「作業ID」が「3」の作業の「動作ID」が「11」の動作は図28Aの動作(ネジ穴71a間を移動する動作)、「動作ID」が「12」の動作は図28Bの動作(ネジ73を締め付ける動作)、「動作ID」が「13」の動作は図28Cの動作(仕様変更箇所の突出部材71bを避ける動作)を行うための動作情報を表す。
 動作算出部2により、複数の動作から1つの動作情報を算出する。具体的には、「動作ID」が「11」の動作の「環境ID」は「-1」の値であるので、ロボットアーム5の周辺環境に拘わらず、ロボットアーム5は動作するので、実行すべき動作として動作指令部27で選択する。「動作ID」が「12」の動作は、ネジ穴71aであると動作指令部27で判断した場合に、ネジ73をネジ穴71aに締め付ける動作を表す。「動作ID」が「12」の動作の「環境ID」は「20」の環境情報で、「-1」の値ではないので、環境情報データベース18の「環境ID」が「20」の環境情報をデータベース入出力部28を介して動作指令部27で参照する。「環境ID」が[20]の環境情報により動作指令部27で参照された画像情報と環境情報取得部19より現在の画像情報とを動作指令部27で取得して、画像マッチングにより、2つの画像を動作指令部27で比較し、ネジ穴71aかどうかを動作指令部27で調べる。2つの画像が合致したと動作指令部27で判断した場合には、ネジ穴71aであると動作指令部27で判断し、「動作ID」が「12」の動作で記憶されている動作を実行すべき動作として動作指令部27で選択する。
 さらに、「動作ID」が「13」の動作の「環境ID」は「21」の環境情報で、「-1」の値ではないので、環境情報データベース18の「環境ID」が「21」の環境情報をデータベース入出力部28を介して動作指令部27で参照する。「環境ID」が「21」の環境情報により動作指令部27で参照された画像情報と環境情報取得部19より現在の画像情報とを動作指令部27で取得して、画像マッチングにより2つの画像を動作指令部27で比較し、仕様変更箇所の突出部材71bかどうかを動作指令部27で判断する。2つの画像が合致したと動作指令部27で判断した場合には、仕様変更箇所の突出部材71bだと動作指令部27で判断し、「動作ID」が「13」の動作で記憶されている動作を実行すべき動作として動作指令部27で選択する。
 動作指令部27で選択された「動作ID」が「11」の動作のみの場合には、「動作ID」が「11」の動作で参照される動作情報を、動作指令部27から制御パラメータ管理部21へ出力して、図28Aの動作を実行する。
 図28Bのように、ネジ穴71aの上方近傍の部分でハンド30が動作している場合には、「動作ID」が「11」の動作と「12」の動作とが動作指令部27で選択され、「動作ID」が「13」の動作は動作指令部27で選択されない。従って、上述したように、動作算出部2により「11」の動作と「12」の動作とから1つの動作を算出し、動作算出部2で算出した動作情報を、動作指令部27から制御パラメータ管理部21へ出力して、図28Bの動作を実行する。
 図28Cのように、仕様変更箇所の突出部材71bの上方近傍の部分でハンド30が動作している場合には、「動作ID」が「11」の動作と「13」の動作とが動作指令部27で選択され、「動作ID」が「12」の動作は動作指令部27で選択されない。従って、動作算出部2により「11」「13」の動作から1つの動作を算出し、動作算出部2で算出した動作情報を動作指令部27から制御パラメータ管理部21へ出力して、図28Cの動作を実行する。
 なお、第3実施形態では、仕様変更箇所の突出部材71bの迂回動作を補正したが、例えば、ネジ締め付けの際の力加減についても、同様に、適応可能である。
 さらに、リサイクル工場でテレビ又はエアーコンディショナーなどのリサイクル対象物に取れ付けられたネジ73を取り外す場合に、図37B(図37Aのネジ73の十字穴付きの頭部73aを上から見た図)に参照符号92で示すようなネジ73の破損部分、又は、図37C(図37Aのネジ73の十字穴付きの頭部73aを上から見た図)に参照符号93で示すような汚れ部分、図37D(図37Aのネジ73の十字穴付きの頭部73aを上から見た図)に参照符号94で示すようなさび部分に対しても、同様に、適応可能である。なお、ネジに限らず、リサイクル対象物から取り外すべき取外物体(例えば、部品、基板、かしめ部材など)に対しても、取外物体取り外し用治具をハンド30に把持させた場合にも、本発明を適用することができる。
 (第4実施形態)
 本発明の第4実施形態における、ロボットアーム5とその制御装置の基本的な構成は、第1実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ以下、詳細に説明する。
 第4実施形態においては、図31に示すように、ロボットアーム5とロボットアーム5の制御装置を備えるロボット1を使って、セル生産の工場でテレビ又はDVDレコーダなどの機器71の挿入口75に作業対象物の一例であるフレキシブル基板74を取り付ける場合を例にとって説明する。
 図31に示したように、ロボット1のロボットアーム5は、例えば工場内の作業台テーブルなどの作業台7の壁面7aに設置され、ロボットアーム5の基端が、壁面7aに固定されたレール8に、移動可能に支持され、レール8上をロボットアーム5がレール8沿いの横方向例えば水平方向に、人4Aの力により、移動可能とする。15aはカメラなどの第1画像撮像装置であり、例えば天井7bから作業台7を撮像できるように取り付けられている。
 ロボット1は、例えば、工場内で、テレビ又はDVDレコーダのフレキシブル基板74の取り付け作業などのロボットアーム5と人4Aとが協働して行う作業をロボットアーム5により行う。
 第1実施形態と同様に、まず、人4Aが手4でロボット1のロボットアーム5を直接把持してロボットアーム5に力を加える。そして、人4Aからロボットアーム5に加えられた力により、ロボット1のロボットアーム5をレール8に沿って移動させることで、器具71(この例では、フレキシブル基板74を挿入するテレビ又はDVDレコーダの機器を示す)の付近までロボットアーム5を誘導する。
 次に、セル生産の作業台7などの前側側面7eなどに配置されている、データ入力IF26の一例としてのロボット1の操作盤13のボタン13aを、人4Aが押すなどしてデータ入力IF26を使用することにより、ロボットアーム5が作動し、予め選択された作業、すなわち、器具71の挿入口75に、ハンド30でコネクタ部分74aを把持したフレキシブル基板74を挿入して取り付ける作業を開始させる。
 次に、機器71の仕様変更により、機器71の形状又はフレキシブル基板74の仕様が変更になった場合に、ロボットアーム5が、フレキシブル基板74の取り付け作業を行っているときに、人4Aがフレキシブル基板74の取り付け状態を確認し、人4Aがロボットアーム5に力を加えて、取り付ける力具合、又は、フレキシブル基板74の位置の調整などの動作補正を行うことにより、ロボット1のロボットアーム5の動作を補正する。
 レール8は、作業台7の壁面7aに配置したが、壁面の無い作業台の場合は、天井面又は作業台の天板6aの側面など作業をするのに適した場所に設置することができる。
 さらに、操作盤13は、作業台7の側面に固定したが、操作盤13に代えて、遠隔操作が可能なリモコンでも良い。
 -動作情報データベース-
 動作情報データベース17は、第3実施形態と同様に、ロボットアーム5の、ある時間におけるロボットアーム5の手先位置及び姿勢などのロボットアーム5の動作に関する情報(動作情報)を記憶している。動作情報は、制御ルール生成部23を介してデータベース入出力部28により動作情報データベース17に入出力される。
 図32A、図32Bは、本第4実施形態の動作情報データベース17を示す。動作情報は第1実施形態と同様であるので、説明を省略する。
 -動作指令部(動作算出部)-
 以下、動作指令部27の機能について説明する。
 人4Aは、データ入力IF26により、制御ルールデータベース16の作業の中の「作業ID」に関する作業の中からロボットアーム5に実行させたい作業をデータベース入出力部28を介して選択して、動作指令部27により、その選択した「作業ID」にかかる動作を実行するように制御パラメータ管理部21へ指令する。
 動作指令部27がデータベース入出力部28を介して制御ルールデータベース16を参照するとき、1つの「作業ID」の作業が選択された場合で、かつ、動作指令部27は、前記1つの「作業ID」の作業の中に複数の「動作ID」が記憶されていると判断した場合は、動作算出部2により動作情報を算出し、算出した動作情報(具体的には、位置、姿勢、時間、力)をフラグに従って、制御モードを設定して動作するように、データベース入出力部28を介して制御パラメータ管理部21へ指令を出す。
 具体的には、図10Aの「作業ID」が「4」の作業は、図33A(図31を上方から見た図)に示すように、ロボットアーム5が移動しながら挿入口75をロボット1で検出すると、ロボットアーム5の手先位置のハンド30でコネクタ部分74aが把持されたフレキシブル基板74のコネクタ部分74aを挿入口75に挿入する動作を行う制御ルールでの作業を示す。「作業ID」が「4」の作業には複数の「動作ID」(「21」、「22」、「23」の動作)が記憶されている。
 動作算出部2では、複数の動作から1つの動作情報を算出する。具体的には、「動作ID」が「21」の動作と「22」の動作と「23」の動作との中から1つの動作情報を動作算出部2で算出する。「動作ID」が「21」の動作は、ロボットアーム5の手先位置のハンド30(正確には、ハンド30で把持したフレキシブル基板74)が、図33Aに示すように、機器71の挿入口75の近傍の上方部分を移動する動作を表す。「動作ID」が「21」の動作の「環境ID」は「-1」の値であるので、ロボットアーム5の周辺環境に拘わらず、ロボットアーム5が動作するので、実行すべき動作として動作指令部27で選択する。「動作ID」が「22」の動作は、下記するように、挿入口75であると動作指令部27で判断した場合に、挿入口75の入り口にフレキシブル基板74のコネクタ部74aが接触するまで、フレキシブル基板74を移動させる動作を表す。「動作ID」が「22」の動作の「環境ID」は「30」の環境情報で、「-1」の値ではないので、環境情報データベース18の「環境ID」が「30」の環境情報をデータベース入出力部28を介して動作指令部27で参照する。図9Aの「環境ID」が「30」の環境情報のフラグは、6ビット目のみ「1」であり、それ以外は「0」であるので、画像が有効であると、動作指令部27で判断することができる。そこで、画像IDより、環境情報データベース18に記憶されている画像の情報を動作指令部27で取得する。この画像は、図34の挿入口75の画像の情報を示す。次に、環境情報取得部19より、現在の画像情報を動作指令部27で取得して、画像マッチングにより、2つの画像を動作指令部27で比較し、挿入口75かどうかを動作指令部27で判断する。2つの画像が合致したと動作指令部27で判断した場合には、挿入口だと動作指令部27で判断し、「動作ID」が「22」で記憶されている動作を実行すべき動作として動作指令部27で選択する。合致しなかったと動作指令部27で判断した場合には、「動作ID」が「22」の動作は動作指令部27で選択せず、「21」の動作のみを動作指令部27で選択する。
 「動作ID」が「23」の動作は、フレキシブル基板74のコネクタ部74aを挿入口75に挿入するために、フレキシブル基板74を移動させる動作を表す。「動作ID」が「23」の動作の「環境ID」は「31」の環境情報で、「-1」の値ではないので、環境情報データベース18の「環境ID」が「31」の環境情報をデータベース入出力部28を介して動作指令部27で参照する。図9Aの「環境ID」が「31」の環境情報のフラグは、0~5ビット目のみ「1」であり、それ以外は「0」であるので、力が有効であると、動作指令部27で判断することができる。環境情報取得部19より、現在の力検出部の値を動作指令部27で取得して、環境情報データベース18で記憶されている力と動作指令部27で比較する。この2つの力が合致したと動作指令部27で判断した場合には、フレキシブル基板74が挿入口75から受ける力が、環境情報データベース18で記憶されている力が合致したと動作指令部27で判断し、「動作ID」が「23」の動作で記憶されている動作を実行すべき動作として動作指令部27で選択する。合致しなかったと動作指令部27で判断した場合には、「動作ID」が「23」の動作は動作指令部27で選択せず、「21」の動作又は「22」の動作のどちらかを動作指令部27で選択する。
 選択された「動作ID」が1つのみの場合には、第1実施形態と同様に、「動作ID」と同じ「動作ID」の動作をデータベース入出力部28を介して動作情報データベース17から動作指令部27で参照する。「動作ID」と同じIDの動作情報は複数の「キー動作ID」で管理する動作情報(具体的には、位置の情報と、姿勢の情報と、時間の情報と、力の情報)を動作情報のフラグに従って、制御モードを設定して動作するように、動作指令部27から制御パラメータ管理部21へ指令を出して、それぞれのキー動作を順次実行するように、動作指令部27から制御パラメータ管理部21へ動作情報を出力する。この例では、ロボットアーム5の周辺の環境が、「動作ID」が「22」の動作の「環境ID」が「30」の環境情報に合致しないと動作指令部27で判断した場合には、挿入口75が検出できなかったと動作指令部27で判断し、「動作ID」が「21」の動作で示した動作を実行するように動作指令部27から制御パラメータ管理部21へ指令を出す。
 すなわち、図32Aの動作情報データベース17より、「フラグ」が0~5ビット目が「1」であるので、ロボットアーム5の手先のx、y、z、φ、θ、ψが有効ということを示しているので、x、y、z、φ、θ、ψについては位置制御モードで動作させる。
 以上により、図33A(図31を上方から見た図)に示すように、ロボットアーム5は機器71上を移動する動作を開始する。
 「動作ID」が「21」の動作でロボットアーム5が機器71上を移動中に、挿入口75の上方の部分にロボットアーム5が到達したと動作指令部27で判断した場合には、「動作ID」が「22」の動作の「環境ID」が「30」の環境情報の画像と環境情報取得部19で取得した現在の画像情報の画像とが合致すると動作指令部27で判断されるため、「動作ID」が「21」の動作と「22」の動作との2つの動作が動作指令部27で選択される。動作指令部27の動作算出部2では、それぞれの「動作ID」のフラグ(「動作ID」で動作情報データベース17をデータベース入出力部28を介して動作指令部27で参照し、そこで記憶されているフラグ)により、最終的に実行すべき動作情報を算出する。
 この例では、「動作ID」が「21」の動作と「22」の動作とが動作指令部27で選択されており、図10Aの制御ルールデータベース16の「動作ID」には「21」の動作、「22」の動作の順に記憶されている。従って、「動作ID」が「21」の動作の動作情報のフラグが、図32Aより0~5ビット目及びビット目が「1」であるので、「動作ID」が「21」の動作の動作情報のうち、位置姿勢情報(x,y,z,φ,θ,ψ)の動作情報を取得する。
 次に、「動作ID」が「22」の動作のフラグは、0、1、3~5、8、12、13、15~17目が「1」で、その他は「0」である。フラグのうち、12,13,15~17ビット目が「1」であるので、その際に、「動作ID」が「22」の動作のそれぞれのキー動作のフラグのうち、12,13,15~17ビット目が「1」であるので、「動作ID」が「21」の動作の動作情報を現在実行中のロボットアーム5の手先位置情報をコピーして動作指令部27で置き換える。この例では、挿入口75の上方にロボットアーム5が配置されているので、その位置及び姿勢情報を「動作ID」が「21」の動作に動作指令部27でコピーする。他のキー動作の位置についても同様に動作指令部27で置き換える。
 次に、「動作ID」が「21」の動作の動作情報のうち、(x,y,φ,θ,ψ)の値を「動作ID」が「22」の動作のそれぞれの動作情報に動作指令部27で置き換えて動作算出部2で算出する。
 以降、「キー動作ID」の終わりまで順次動作算出部2で算出する。
 動作算出部2で算出した動作情報のフラグ及び動作情報フラグについて、動作算出部2により、「動作ID」が「21」の動作と「22」の動作とのそれぞれのビットにおいて、どちらかのビットに「1」の場合には、算出後のフラグのビットを「1」に、両方とも「0」の場合には、「0」とする。ただし、位置と力のそれぞれの成分はどちらかにしか「1」とならないため(位置制御モード若しくは力制御モードのどちらかでしか作動しないため)、位置と力の両方に「1」となった場合には、力を優先する。
 「動作ID」が「21」の動作のフラグは、0~5ビット目が「1」であり、「22」は0、1、3~5、8、12、13、15~17ビット目が「1」であるので、0~5、8、12、13、15~17ビット目が「1」となる。位置z成分と力z分の両方が「1」となっているので、力を優先するため、最終的には、0、1、3~5、8、12、13、15~17ビット目が「1」となる。
 「動作ID」が「21」の動作の動作パラメータフラグは、1,2,3ビット目が「1」であり、「動作ID」が「22」の動作の動作パラメータフラグは、8ビット目が「1」である。従って、動作算出部2で算出した動作の動作パラメータフラグは、1,2,3,8ビット目が「1」となる。
 動作算出部2で算出した動作の「フラグ」が0、1、3~5ビット目が「1」であるので、ロボットアーム5の手先のx、y、φ、θ、ψが有効ということを示しているので、x、y、φ、θ、ψについては位置制御モードで動作させる。さらに、8ビット目が「1」であるので、z軸は力制御モードで動作するように、動作指令部27から制御パラメータ管理部21へ指令を出す。
 以上により、図33Bに示すように、ロボットアーム5は挿入口75にフレキシブル基板74のコネクタ部24aを接触するまで移動させる動作を開始する。
 「動作ID」が「22」の動作にてフレキシブル基板74のコネクタ部24aを挿入口75に接触するまで移動させる動作が完了した時点で、次に動作させる動作を動作指令部27で選択する。「動作ID」が「23」の動作の「環境ID」が「31」の環境情報の力と環境情報取得部19で取得した力が合致したと動作指令部27で判断した場合には、「動作ID」が「21」の動作と「23」の動作との2つの動作が動作指令部27で選択される。さらに、「動作ID」が「22」の動作の「環境ID」が「30」の環境情報の力と環境情報取得部19で取得した画像が合致すると動作指令部27で判断した場合には、「動作ID」が「21」の動作と「22」の動作と「23」の動作との3つの動作が動作指令部27で選択される。
 動作算出部2では、それぞれの「動作ID」のフラグ(「動作ID」で動作情報データベース17をデータベース入出力部28を介して動作指令部27で参照し、そこで記憶されているフラグ)により、最終的に実行すべき動作情報を算出する。
 この例では、「動作ID」が「21」の動作と「22」の動作と「23」の動作とが選択されており、図10Aの制御ルールデータベース16の「動作ID」には「21」の動作、「22」の動作、「23」の動作の順に記憶されている。この場合は、最も番号の大きい「動作ID」を優先して動作指令部27で選択する。「動作ID」が「22」の動作の動作情報のフラグが、図32Aより0、1、3~5、8、12、13、15~17ビット目が「1」であるので、「動作ID」が「22」の動作の動作情報のうち、位置姿勢情報(x,y,φ,θ,ψ)とz成分の力情報の動作情報を取得する。次に、「動作ID」が「23」の動作のフラグは、0、1、3~5、8、12、13、15~17目が「1」で、その他は「0」である。フラグのうち、12,13,15~17ビット目が「1」であるので、その際に、「動作ID」が「22」の動作のそれぞれのキー動作のフラグのうち、12,13,15~17ビット目が「1」であるので、「動作ID」が「11」の動作の動作情報を現在実行中のロボットアーム5の手先位置情報をコピーして動作指令部27で置き換える。この例では、挿入口の上方にロボットアーム5が配置されているので、その位置及び姿勢情報を「動作ID」が「21」の動作に動作指令部27でコピーする。他のキー動作の位置についても、同様に動作指令部27で置き換える。次に、「動作ID」が「22」の動作の動作情報のうち、(x,y,φ,θ,ψ)成分の値を「動作ID」が「23」の動作のそれぞれの動作情報に置き換えて動作算出部2で算出する。
 以降、「キー動作ID」の終わりまで順次動作算出部2で算出する。
 -動作補正部-
 以下、動作補正部20の機能について説明する。
 人4Aがデータ入力IF26により、「作業ID」が「4」の作業を指定して動作指令部27に作業開始を指示すると、図35Aに示すように、ロボットアーム5はフレキシブル基板74のコネクタ部74aを挿入口74に挿入する作業を開始する。
 次に、TV又はDVDレコーダなどの機器71の仕様変更に伴い、図35Bに示すように、フレキシブル基板74Aのサイズ又は厚み、フレキシブル基板自体の剛性の変更、挿入口75Aのサイズ変更が発生する。あらかじめ生成されている「作業ID」が「4」の作業は仕様変更前に生成されているため、そのまま動作させると、フレキシブル基板74A又は挿入口75Aの変更により、例えば、「作業ID」が「4」の作業の動作から挿入時の力加減が足りず、挿入口75Aに十分に差し込むことができないということが起こる。
 そこで、人4Aは、環境変化通知操作の開始の指令をデータ入力IF26を介して動作指令部27に入力する。動作補正部20は、データ入力IF26から動作指令部27を介しての環境変化通知操作の指令を受けて、動作情報データベース17のフラグに従って、制御モードを設定して動作するように、制御パラメータ管理部21へ指令を出す。
 具体的には、図35Bに示すように、フレキシブル基板74Aの挿入時は「動作ID」が「23」の動作で動作している。動作中の「動作ID」が「23」の動作を動作情報データベース18からデータベース入出力部28を介して動作補正部20で参照すると、それぞれの「キー動作ID」のフラグが、図32Aでは、0、1、3~5、8、12、13、15~17目が「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、位置姿勢に関しては、x軸、y軸、φ軸、θ軸、ψ軸が、力に関してはz軸が有効ということを表す。従って、x軸、y軸、φ軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、x軸、y軸、φ軸、θ軸、ψ軸について、位置制御モードからインピーダンス制御モード(人4Aの力を検知した方向に移動させるモード)で動作し、z軸については、高剛性位置制御モードにより動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。
 次に、図35Cのように、機器71上の仕様変更箇所に伴う力の状態変更を知らせるために、人4Aがz軸方向に力を加える。人4Aが環境変化通知操作により力を加えた動作を動作補正部20で取得するために、制御パラメータ管理部21からのロボットアーム5の力を動作補正部20で取得し、後述する制御ルール生成部23へ動作補正部20から出力する。
 次に、動作補正部20は、データ入力IF26から動作指令部27を介しての動作補正操作の開始の指令を受けて、動作情報データベース17の補正パラメータフラグに従って、制御モードを設定して動作するように、制御パラメータ管理部21へ動作補正部20から指令を出す。具体的には、図10Aの「作業ID」が「4」の作業で動作中の「動作ID」が「23」の動作を動作情報データベース18から動作補正部20で参照すると、それぞれの「キー動作ID」の補正パラメータフラグが、図22Aでは、8ビット目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作の力のうち、z軸成分のみ補正が可能ということが動作補正部20でわかる。z軸について、高剛性位置制御モードで動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。
 次に、図35Dに示すように、人4Aがロボットアーム5を直接把持して、仕様変更箇所の突出部材71bについて、もう少し力を強めに挿入するように動作させる。人4Aが加えた力を取得するために、制御パラメータ管理部21からのロボットアーム5の手先の力を動作補正部20で取得し、後述する制御ルール生成部23へ動作補正部20から出力する。
 なお、ここで、環境変化通知操作と動作補正操作とを分けて別々に入力したが、環境変化通知操作と動作補正操作との操作の方向が同じである場合は、動作補正操作又は環境変化通知操作のいずれか一方の操作を省略することができる。具体的には、データ入力IF26から動作補正操作の開始の指令を省略して、環境変化通知操作の開始の指令を出した場合には、動作補正操作を省略することができる(第5実施形態を参照)。その場合の動作補正部20は、人4が動作補正操作をした際に、環境情報を取得した後、動作補正を行う。
 -制御ルール生成部-
 制御ルール生成部23は、第3実施形態の場合と同様に、制御ルールデータベース16の「動作ID」が参照する動作情報データベース17の位置及び姿勢及び力及び時間との情報にて、後述するインピーダンス制御モード、若しくは位置制御モード、若しくは力制御モード、若しくはそれらを方向別に組み合わせた制御モード、のうち、いずれかのモードでのロボットアーム5の動作中に、データ入力IF26から動作指令部27を介して、制御ルール生成部23で環境変化通知操作及び動作補正開始の指令を受ける。すると、制御ルール生成部23では、動作補正部20で補正した動作情報と環境情報取得部19で取得した環境情報とに基づいて、制御ルールを生成し、制御ルールデータベース16に記憶する機能を有している。
 以下、制御ルール生成部23の機能について説明する。
 図35Bに示すように、フレキシブル基板挿入時は「動作ID」が「23」の動作で動作している。
 制御ルール生成部23は、データ入力IF26から動作指令部27を介して動作中の作業IDに対して、環境変化通知操作の開始の指令を受けて、人4Aからの環境変化通知操作にて生成したロボットアーム5の手先位置及び時間を動作補正部20より入力する。加えて、環境変化通知操作の開始のタイミングより、環境情報取得部19より環境情報を入力する。さらに、環境変化通知操作の開始時の動作中の「動作ID」を動作情報データベース18から制御ルール生成部23で参照し、その「動作ID」の「キー動作ID」のフラグに関する情報から現在のロボットアーム5の制御モードに関する情報を制御ルール生成部23で取得する。具体的には、図10Aの「作業ID」が「4」の作業で動作中の「動作ID」が「23」の動作の「キー動作ID」が「78」~「86」のキー動作を動作情報データベース18から制御ルール生成部23で参照すると、それぞれの「キー動作ID」のフラグが、図32Aでは、0、1、3~5、8、12、13、15~17目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、位置姿勢に関してはx軸、y軸、φ軸、θ軸、ψ軸、力に関してはz軸成分のデータが有効ということが制御ルール生成部23でわかる。従って、x軸、y軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、インピーダンス制御モードとなり、z軸については高剛性位置制御モードとなる。
 現在動作中の環境変化通知操作の際のロボットアーム5の移動方向の制御モードと検出部選択ルールデータベース29に基づいて、複数の環境情報の中から制御ルールを生成するための環境情報の種別を制御ルール生成部23で選択する。具体的には、図10Aの「作業ID」が「4」の作業の環境変化通知操作の開始のタイミングでは、図35Cのようにz軸方向で環境変化通知操作を行っている。z軸は高剛性位置制御モードで補正しているので、図11Aより、環境情報の種別IDは「2」となり、図11Bより、「力」を制御ルール生成部23で選択する。したがって、力検出部53で検出した力を制御ルール生成部23で選択する。取得した力は、制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。この例では、図9Aに示すように、新しい「環境ID」として「32」を制御ルール生成部23で付与し、その「環境ID」の「力」に、取得した力の情報を制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。さらに、フラグは力のみであるので、0~5ビット目のみ「1」を、その他のビットに「0」を制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。
 次に、動作補正操作の開始の指令を受けて、動作補正部20で補正した動作情報を、データベース入出力部28を介して動作情報データベース17に記憶する。
 具体的には、図32Bの動作情報データベース17に新規に「動作ID」を動作補正部20で付与し(この例では「24」)、さらに「キー動作ID」として「90」~「98」を動作補正部20で付与し、動作補正部20で補正した動作情報を、動作補正部20によりデータベース入出力部28を介して動作情報データベース17のそれぞれの「キー動作ID」に記憶する。時間について、動作補正部20からは、人4Aが作業を選択して開始指令を出した時点を0とした相対時間が入力されるため、一番最初のキー動作(この例では「90」)の時間を全ての動作のそれぞれの時間から減算した値を、動作補正部20によりデータベース入出力部28を介して動作情報データベース17に記憶する。フラグについては、補正前のフラグで「1」となっている動作情報の成分のうち、補正前と補正後の「動作ID」のそれぞれのキー動作の位置姿勢と、力の値とをそれぞれの成分毎に動作補正部20で比較し、その差がある閾値以上の成分のみ、図6のフラグのそれぞれの成分を動作補正部20で「1」とし、閾値未満の場合には動作補正部20で「0」とする。
 具体的には、補正前の「動作ID」が「23」の動作のフラグは、0、1、3~5、8、12、13、15~17目が「1」であり、その他は「0」であるので、補正前の動作と補正後の動作の位置姿勢と、力の値とのうち、位置姿勢の成分x,y,φ,θ,ψと力のz軸成分を動作補正部20で比較する。「キー動作ID」が「77」のキー動作と「キー動作ID」が「86」のキー動作とでは、位置姿勢(x,y,φ,θ,ψ)の成分は同じで、力のz軸成分のみ異なり、差の閾値を0.1(N)とすると、力のz成分のみが閾値以上となる。従って、動作補正部20により、フラグは8ビット目が「1」で、その他は「0」とする。
 補正パラメータフラグについては、補正前の動作(この例では「78」~「86」)の値を動作補正部20によりデータベース入出力部28を介して動作情報データベース17に記憶する。
 次に、取得した環境情報と動作補正部20の動作補正操作で補正した動作から制御ルールデータベース19に新しい制御ルールを制御ルール生成部23で生成して記憶する。
 具体的には、制御ルールデータベース16の「作業ID」が「4」の作業で動作中に動作を補正するため、制御ルール生成部23により、図10Bに示すように、「作業ID」が「4」の作業に1行追加し、動作補正により新しく追加した「動作ID」が「24」の動作を追加する。
 次に、制御ルール生成部23で選択した環境情報の環境IDをデータベース入出力部28を介して制御ルールデータベース16に記憶する(この例では「環境ID」が「32」の環境情報)。
 動作指令部(動作算出部2)27により、具体的には上記した補正により、図35Eのように仕様変更後に自動でロボットアーム5の動作を行うことができる。その仕様変更後の自動的に行う動作については、第3実施形態又は先の実施形態と同様であるので、説明を省略する。
 以上により、人4Aが環境変化通知操作及び動作補正操作を行い、制御ルール生成部23により新しい制御ルールを生成することで、機器71の仕様変更を考慮した動作を事前に用意しておかなくても、その場で人4Aが操作をして環境通知及び動作を補正するだけで、次に同じような環境になった場合に、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)ロボットアーム5は自律的に動作することができるようになる。
 (第5実施形態)
 本発明の第5実施形態における、ロボットアーム5とその制御装置の基本的な構成は、第1実施形態又は第4実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ以下、詳細に説明する。なお、この第5実施形態は、環境変化通知操作と動作補正操作が同じ場合には、2つの操作を行う代わりに、動作補正操作を省略して、1つの操作(ここでは、環境変化及び動作通知操作と呼ぶ。)のみ行うことができる例について説明している。
 第5実施形態においては、第4実施形態と同様、図31に示すように、ロボットアーム5とロボットアーム5の制御装置を備えるロボット1を使って、セル生産の工場でテレビ又はDVDレコーダなどの機器71の挿入口75に作業対象物の一例であるフレキシブル基板74を取り付ける場合を例にとって説明する。
 図31に示したように、ロボット1のロボットアーム5は、例えば工場内の作業台テーブルなどの作業台7の壁面7aに設置され、ロボットアーム5の基端が、壁面7aに固定されたレール8に、移動可能に支持され、レール8上をロボットアーム5がレール8沿いの横方向例えば水平方向に、人4Aの力により、移動可能とする。15aはカメラなどの第1画像撮像装置であり、例えば天井7bから作業台7を撮像できるように取り付けられている。
 ロボット1は、例えば、工場内で、テレビ又はDVDレコーダのフレキシブル基板74の取り付け作業などのロボットアーム5と人4Aとが協働して行う作業をロボットアーム5により行う。
 第4実施形態と同様に、まず、人4Aが手4でロボット1のロボットアーム5を直接把持してロボットアーム5に力を加える。そして、人4Aからロボットアーム5に加えられた力により、ロボット1のロボットアーム5をレール8に沿って移動させることで、器具71(この例では、フレキシブル基板74を挿入するテレビ又はDVDレコーダの機器を示す)の付近までロボットアーム5を誘導する。
 次に、セル生産の作業台7などの前側側面7eなどに配置されている、データ入力IF26の一例としてのロボット1の操作盤13のボタン13aを、人4Aが押すなどしてデータ入力IF26を使用することにより、ロボットアーム5が作動し、予め選択された作業、すなわち、器具71の挿入口75に、ハンド30でコネクタ部分74aを把持したフレキシブル基板74を挿入して取り付ける作業を開始させる。
 次に、機器71の仕様変更により、機器71の形状又はフレキシブル基板74の仕様が変更になった場合に、ロボットアーム5が、フレキシブル基板74の取り付け作業を行っているときに、人4Aがフレキシブル基板74の取り付け状態を確認し、人4Aがロボットアーム5に力を加えて、取り付ける力具合、又は、フレキシブル基板74の位置の調整などの動作補正を行うことにより、ロボット1のロボットアーム5の動作を補正する。
 レール8は、作業台7の壁面7aに配置したが、壁面の無い作業台の場合は、天井面又は作業台の天板6aの側面など作業をするのに適した場所に設置することができる。
 さらに、操作盤13は、作業台7の側面に固定したが、操作盤13に代えて、遠隔操作が可能なリモコンでも良い。
 -動作情報データベース-
 動作情報データベース17は、第4実施形態と同様に、ロボットアーム5の、ある時間におけるロボットアーム5の手先位置及び姿勢などのロボットアーム5の動作に関する情報(動作情報)を記憶している。動作情報は、制御ルール生成部23を介してデータベース入出力部28により動作情報データベース17に入出力される。
 図32A、図32Bは、第4実施形態と同様に、本第5実施形態の動作情報データベース17を示す。動作情報は第1実施形態と同様であるので、説明を省略する。
 -動作指令部(動作算出部)-
 以下、動作指令部27の機能について説明する。
 人4Aは、データ入力IF26により、制御ルールデータベース16の作業の中の「作業ID」に関する作業の中からロボットアーム5に実行させたい作業をデータベース入出力部28を介して選択して、動作指令部27により、その選択した「作業ID」にかかる動作を実行するように制御パラメータ管理部21へ指令する。
 動作指令部27がデータベース入出力部28を介して制御ルールデータベース16を参照するとき、1つの「作業ID」の作業が選択された場合で、かつ、動作指令部27は、前記1つの「作業ID」の作業の中に複数の「動作ID」が記憶されていると判断した場合は、動作算出部2により動作情報を算出し、算出した動作情報(具体的には、位置、姿勢、時間、力)をフラグに従って、制御モードを設定して動作するように、データベース入出力部28を介して制御パラメータ管理部21へ指令を出す。
 具体的には、図10Aの「作業ID」が「4」の作業は、図33A(図31を上方から見た図)に示すように、ロボットアーム5が移動しながら挿入口75をロボット1で検出すると、ロボットアーム5の手先位置のハンド30でコネクタ部分74aが把持されたフレキシブル基板74のコネクタ部分74aを挿入口75に挿入する動作を行う制御ルールでの作業を示す。「作業ID」が「4」の作業には複数の「動作ID」(「21」、「22」、「23」の動作)が記憶されている。
 動作算出部2では、複数の動作から1つの動作情報を算出する。具体的には、「動作ID」が「21」の動作と「22」の動作と「23」の動作との中から1つの動作情報を動作算出部2で算出する。「動作ID」が「21」の動作は、ロボットアーム5の手先位置のハンド30(正確には、ハンド30で把持したフレキシブル基板74)が、図33Aに示すように、機器71の挿入口75の近傍の上方部分を移動する動作を表す。「動作ID」が「21」の動作の「環境ID」は「-1」の値であるので、ロボットアーム5の周辺環境に拘わらず、ロボットアーム5が動作するので、実行すべき動作として動作指令部27で選択する。「動作ID」が「22」の動作は、下記するように、挿入口75であると動作指令部27で判断した場合に、挿入口75の入り口にフレキシブル基板74のコネクタ部74aが接触するまで、フレキシブル基板74を移動させる動作を表す。「動作ID」が「22」の動作の「環境ID」は「30」の環境情報で、「-1」の値ではないので、環境情報データベース18の「環境ID」が「30」の環境情報をデータベース入出力部28を介して動作指令部27で参照する。図9Aの「環境ID」が「30」の環境情報のフラグは、6ビット目のみ「1」であり、それ以外は「0」であるので、画像が有効であると、動作指令部27で判断することができる。そこで、画像IDより、環境情報データベース18に記憶されている画像の情報を動作指令部27で取得する。この画像は、図34の挿入口75の画像の情報を示す。次に、環境情報取得部19より、現在の画像情報を動作指令部27で取得して、画像マッチングにより、2つの画像を動作指令部27で比較し、挿入口75かどうかを動作指令部27で判断する。2つの画像が合致したと動作指令部27で判断した場合には、挿入口だと動作指令部27で判断し、「動作ID」が「22」で記憶されている動作を実行すべき動作として動作指令部27で選択する。合致しなかったと動作指令部27で判断した場合には、「動作ID」が「22」の動作は動作指令部27で選択せず、「21」の動作のみを動作指令部27で選択する。
 「動作ID」が「23」の動作は、フレキシブル基板74のコネクタ部74aを挿入口75に挿入するために、フレキシブル基板74を移動させる動作を表す。「動作ID」が「23」の動作の「環境ID」は「31」の環境情報で、「-1」の値ではないので、環境情報データベース18の「環境ID」が「31」の環境情報をデータベース入出力部28を介して動作指令部27で参照する。図9Aの「環境ID」が「31」の環境情報のフラグは、0~5ビット目のみ「1」であり、それ以外は「0」であるので、力が有効であると、動作指令部27で判断することができる。環境情報取得部19より、現在の力検出部の値を動作指令部27で取得して、環境情報データベース18で記憶されている力と動作指令部27で比較する。この2つの力が合致したと動作指令部27で判断した場合には、フレキシブル基板74が挿入口75から受ける力が、環境情報データベース18で記憶されている力が合致したと動作指令部27で判断し、「動作ID」が「23」の動作で記憶されている動作を実行すべき動作として動作指令部27で選択する。合致しなかったと動作指令部27で判断した場合には、「動作ID」が「23」の動作は動作指令部27で選択せず、「21」の動作又は「22」の動作のどちらかを動作指令部27で選択する。
 選択された「動作ID」が1つのみの場合には、第1実施形態と同様に、「動作ID」と同じ「動作ID」の動作をデータベース入出力部28を介して動作情報データベース17から動作指令部27で参照する。「動作ID」と同じIDの動作情報は複数の「キー動作ID」で管理する動作情報(具体的には、位置の情報と、姿勢の情報と、時間の情報と、力の情報)を動作情報のフラグに従って、制御モードを設定して動作するように、動作指令部27から制御パラメータ管理部21へ指令を出して、それぞれのキー動作を順次実行するように、動作指令部27から制御パラメータ管理部21へ動作情報を出力する。この例では、ロボットアーム5の周辺の環境が、「動作ID」が「22」の動作の「環境ID」が「30」の環境情報に合致しないと動作指令部27で判断した場合には、挿入口75が検出できなかったと動作指令部27で判断し、「動作ID」が「21」の動作で示した動作を実行するように動作指令部27から制御パラメータ管理部21へ指令を出す。
 すなわち、図32Aの動作情報データベース17より、「フラグ」が0~5ビット目が「1」であるので、ロボットアーム5の手先のx、y、z、φ、θ、ψが有効ということを示しているので、x、y、z、φ、θ、ψについては位置制御モードで動作させる。
 以上により、図33A(図31を上方から見た図)に示すように、ロボットアーム5は機器71上を移動する動作を開始する。
 「動作ID」が「21」の動作でロボットアーム5が機器71上を移動中に、挿入口75の上方の部分にロボットアーム5が到達したと動作指令部27で判断した場合には、「動作ID」が「22」の動作の「環境ID」が「30」の環境情報の画像と環境情報取得部19で取得した現在の画像情報の画像とが合致すると動作指令部27で判断されるため、「動作ID」が「21」の動作と「22」の動作との2つの動作が動作指令部27で選択される。動作指令部27の動作算出部2では、それぞれの「動作ID」のフラグ(「動作ID」で動作情報データベース17をデータベース入出力部28を介して動作指令部27で参照し、そこで記憶されているフラグ)により、最終的に実行すべき動作情報を算出する。
 この例では、「動作ID」が「21」の動作と「22」の動作とが動作指令部27で選択されており、図10Aの制御ルールデータベース16の「動作ID」には「21」の動作、「22」の動作の順に記憶されている。従って、「動作ID」が「21」の動作の動作情報のフラグが、図32Aより0~5ビット目及びビット目が「1」であるので、「動作ID」が「21」の動作の動作情報のうち、位置姿勢情報(x,y,z,φ,θ,ψ)の動作情報を取得する。
 次に、「動作ID」が「22」の動作のフラグは、0、1、3~5、8、12、13、15~17目が「1」で、その他は「0」である。フラグのうち、12,13,15~17ビット目が「1」であるので、その際に、「動作ID」が「22」の動作のそれぞれのキー動作のフラグのうち、12,13,15~17ビット目が「1」であるので、「動作ID」が「21」の動作の動作情報を現在実行中のロボットアーム5の手先位置情報をコピーして動作指令部27で置き換える。この例では、挿入口75の上方にロボットアーム5が配置されているので、その位置及び姿勢情報を「動作ID」が「21」の動作に動作指令部27でコピーする。他のキー動作の位置についても同様に動作指令部27で置き換える。
 次に、「動作ID」が「21」の動作の動作情報のうち、(x,y,φ,θ,ψ)の値を「動作ID」が「22」の動作のそれぞれの動作情報に動作指令部27で置き換えて動作算出部2で算出する。
 以降、「キー動作ID」の終わりまで順次動作算出部2で算出する。
 動作算出部2で算出した動作情報のフラグ及び動作情報フラグについて、動作算出部2により、「動作ID」が「21」の動作と「22」の動作とのそれぞれのビットにおいて、どちらかのビットに「1」の場合には、算出後のフラグのビットを「1」に、両方とも「0」の場合には、「0」とする。ただし、位置と力のそれぞれの成分はどちらかにしか「1」とならないため(位置制御モード若しくは力制御モードのどちらかでしか作動しないため)、位置と力の両方に「1」となった場合には、力を優先する。
 「動作ID」が「21」の動作のフラグは、0~5ビット目が「1」であり、「22」は0、1、3~5、8、12、13、15~17ビット目が「1」であるので、0~5、8、12、13、15~17ビット目が「1」となる。位置z成分と力z分の両方が「1」となっているので、力を優先するため、最終的には、0、1、3~5、8、12、13、15~17ビット目が「1」となる。
 「動作ID」が「21」の動作の動作パラメータフラグは、1,2,3ビット目が「1」であり、「動作ID」が「22」の動作の動作パラメータフラグは、8ビット目が「1」である。従って、動作算出部2で算出した動作の動作パラメータフラグは、1,2,3,8ビット目が「1」となる。
 動作算出部2で算出した動作の「フラグ」が0、1、3~5ビット目が「1」であるので、ロボットアーム5の手先のx、y、φ、θ、ψが有効ということを示しているので、x、y、φ、θ、ψについては位置制御モードで動作させる。さらに、8ビット目が「1」であるので、z軸は力制御モードで動作するように、動作指令部27から制御パラメータ管理部21へ指令を出す。
 以上により、図33Bに示すように、ロボットアーム5は挿入口75にフレキシブル基板74のコネクタ部24aを接触するまで移動させる動作を開始する。
 「動作ID」が「22」の動作にてフレキシブル基板74のコネクタ部24aを挿入口75に接触するまで移動させる動作が完了した時点で、次に動作させる動作を動作指令部27で選択する。「動作ID」が「23」の動作の「環境ID」が「31」の環境情報の力と環境情報取得部19で取得した力が合致したと動作指令部27で判断した場合には、「動作ID」が「21」の動作と「23」の動作との2つの動作が動作指令部27で選択される。さらに、「動作ID」が「22」の動作の「環境ID」が「30」の環境情報の力と環境情報取得部19で取得した画像が合致すると動作指令部27で判断した場合には、「動作ID」が「21」の動作と「22」の動作と「23」の動作との3つの動作が動作指令部27で選択される。
 動作算出部2では、それぞれの「動作ID」のフラグ(「動作ID」で動作情報データベース17をデータベース入出力部28を介して動作指令部27で参照し、そこで記憶されているフラグ)により、最終的に実行すべき動作情報を算出する。
 この例では、「動作ID」が「21」の動作と「22」の動作と「23」の動作とが選択されており、図10Aの制御ルールデータベース16の「動作ID」には「21」の動作、「22」の動作、「23」の動作の順に記憶されている。この場合は、最も番号の大きい「動作ID」を優先して動作指令部27で選択する。「動作ID」が「22」の動作の動作情報のフラグが、図32Aより0、1、3~5、8、12、13、15~17ビット目が「1」であるので、「動作ID」が「22」の動作の動作情報のうち、位置姿勢情報(x,y,φ,θ,ψ)とz成分の力情報の動作情報を取得する。次に、「動作ID」が「23」の動作のフラグは、0、1、3~5、8、12、13、15~17目が「1」で、その他は「0」である。フラグのうち、12,13,15~17ビット目が「1」であるので、その際に、「動作ID」が「22」の動作のそれぞれのキー動作のフラグのうち、12,13,15~17ビット目が「1」であるので、「動作ID」が「11」の動作の動作情報を現在実行中のロボットアーム5の手先位置情報をコピーして動作指令部27で置き換える。この例では、挿入口の上方にロボットアーム5が配置されているので、その位置及び姿勢情報を「動作ID」が「21」の動作に動作指令部27でコピーする。他のキー動作の位置についても、同様に動作指令部27で置き換える。次に、「動作ID」が「22」の動作の動作情報のうち、(x,y,φ,θ,ψ)成分の値を「動作ID」が「23」の動作のそれぞれの動作情報に置き換えて動作算出部2で算出する。
 以降、「キー動作ID」の終わりまで順次動作算出部2で算出する。
 -動作補正部-
 以下、動作補正部20の機能について説明する。
 人4Aがデータ入力IF26により、「作業ID」が「4」の作業を指定して動作指令部27に作業開始を指示すると、図35Aに示すように、ロボットアーム5はフレキシブル基板74のコネクタ部74aを挿入口74に挿入する作業を開始する。
 次に、TV又はDVDレコーダなどの機器71の仕様変更に伴い、図35Bに示すように、フレキシブル基板74Aのサイズ又は厚み、フレキシブル基板自体の剛性の変更、挿入口75Aのサイズ変更が発生する。あらかじめ生成されている「作業ID」が「4」の作業は仕様変更前に生成されているため、そのまま動作させると、フレキシブル基板74A又は挿入口75Aの変更により、例えば、「作業ID」が「4」の作業の動作から挿入時の力加減が足りず、挿入口75Aに十分に差し込むことができないということが起こる。
 第4実施形態と同様の補正を行う場合に、図35Cに示す環境変化通知操作と図35Dに示す動作補正操作とが同じ場合の実施形態について説明する。
 人4Aは、環境変化通知操作と動作補正操作とを1つの操作で操作するために、1つの環境変化及び動作通知操作の開始の指令をデータ入力IF26を介して動作指令部27に入力する。環境変化及び動作通知操作は、第4実施形態の環境変化通知操作と動作補正操作とを1つの操作で入力可能にした操作である(例えば、操作方向が同じ場合には、環境変化通知操作での操作方向と動作補正操作での操作方向との2つの操作方向を入力する代わりに、環境変化及び動作通知操作として、同じ1つの操作方向を入力することを意味する。)。動作補正部20は、データ入力IF26から動作指令部27を介しての環境変化及び動作通知操作の指令を受けて、動作情報データベース17のフラグに従って、制御モードを設定して動作するように、制御パラメータ管理部21へ指令を出す。
 具体的には、図35Bに示すように、フレキシブル基板74Aの挿入時は「動作ID」が「23」の動作で動作している。動作中の「動作ID」が「23」の動作を動作情報データベース18からデータベース入出力部28を介して動作補正部20で参照すると、それぞれの「キー動作ID」のフラグが、図32Aでは、0、1、3~5、8、12、13、15~17目が「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、位置姿勢に関しては、x軸、y軸、φ軸、θ軸、ψ軸が、力に関してはz軸が有効ということを表す。従って、x軸、y軸、φ軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、x軸、y軸、φ軸、θ軸、ψ軸について、位置制御モードからインピーダンス制御モード(人4Aの力を検知した方向に移動させるモード)で動作し、z軸については、高剛性位置制御モードにより動作するように、動作補正部20は制御パラメータ管理部21へ指令を出す。
 次に、図35Cのように、機器71上の仕様変更箇所に伴う力の状態変更及び補正すべき動作の両方を知らせるために、人4Aがz軸方向に力を加える。人4Aが環境変化及び動作通知操作により力を加えた動作を動作補正部20で取得するために、制御パラメータ管理部21からのロボットアーム5の力を動作補正部20で取得し、後述する制御ルール生成部23へ動作補正部20から出力する。
 次に、動作補正部20は、環境変化及び動作通知操作により、もう少し力を強めに挿入するように動作させる。人4Aが加えた力を取得するために、制御パラメータ管理部21からのロボットアーム5の手先の力を動作補正部20で取得し、後述する制御ルール生成部23へ動作補正部20から出力する。
 -制御ルール生成部-
 制御ルール生成部23は、制御ルールデータベース16の「動作ID」が参照する動作情報データベース17の位置及び姿勢及び力及び時間との情報にて、後述するインピーダンス制御モード、若しくは位置制御モード、若しくは力制御モード、若しくはそれらを方向別に組み合わせた制御モード、のうち、いずれかのモードでのロボットアーム5の動作中に、データ入力IF26から動作指令部27を介して、制御ルール生成部23で環境変化及び動作補正開始の指令を受ける。すると、制御ルール生成部23では、動作補正部20で補正した動作情報と環境情報取得部19で取得した環境情報とに基づいて、制御ルールを生成し、制御ルールデータベース16に記憶する機能を有している。
 以下、制御ルール生成部23の機能について説明する。
 図35Bに示すように、フレキシブル基板挿入時は「動作ID」が「23」の動作で動作している。
 制御ルール生成部23は、データ入力IF26から動作指令部27を介して動作中の作業IDに対して、環境変化及び動作通知操作の開始の指令を受けて、人4Aからの環境変化及び動作通知操作にて生成したロボットアーム5の手先位置及び時間を動作補正部20より入力する。加えて、環境変化及び動作通知操作の開始のタイミングより、環境情報取得部19より環境情報を入力する。さらに、環境変化及び動作通知操作の開始時の動作中の「動作ID」を動作情報データベース18から制御ルール生成部23で参照し、その「動作ID」の「キー動作ID」のフラグに関する情報から現在のロボットアーム5の制御モードに関する情報を制御ルール生成部23で取得する。具体的には、図10Aの「作業ID」が「4」の作業で動作中の「動作ID」が「23」の動作の「キー動作ID」が「78」~「86」のキー動作を動作情報データベース18から制御ルール生成部23で参照すると、それぞれの「キー動作ID」のフラグが、図32Aでは、0、1、3~5、8、12、13、15~17目のみ「1」であり、その他は「0」であるので、ロボットアーム5の動作のうち、位置姿勢に関してはx軸、y軸、φ軸、θ軸、ψ軸、力に関してはz軸成分のデータが有効ということが制御ルール生成部23でわかる。従って、x軸、y軸、θ軸、ψ軸が人4Aの加えた力で補正ができるように、インピーダンス制御モードとなり、z軸については高剛性位置制御モードとなる。
 現在動作中の環境変化及び動作通知操作の際のロボットアーム5の移動方向の制御モードと検出部選択ルールデータベース29に基づいて、複数の環境情報の中から制御ルールを生成するための環境情報の種別を制御ルール生成部23で選択して決定する。具体的には、図10Aの「作業ID」が「4」の作業の環境変化及び動作通知操作の開始のタイミングでは、図35Cのようにz軸方向で環境変化及び動作通知操作を行っている。z軸は高剛性位置制御モードで補正しているので、図11Aより、環境情報の種別IDは「2」となり、図11Bより、「力」を制御ルール生成部23で選択する。したがって、力検出部53で検出した力を制御ルール生成部23で選択する。取得した力は、制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18及び動作情報データベース17に記憶する。この例では、図9Aに示すように、新しい「環境ID」として「32」を制御ルール生成部23で付与し、その「環境ID」の「力」に、取得した力の情報を制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。さらに、フラグは力のみであるので、0~5ビット目のみ「1」を、その他のビットに「0」を制御ルール生成部23によりデータベース入出力部28を介して環境情報データベース18に記憶する。
 また、図32Bの動作情報データベース17に新規に「動作ID」を動作補正部20で付与し(この例では「24」)、さらに「キー動作ID」として「90」~「98」を動作補正部20で付与し、動作補正部20で補正した動作情報を、動作補正部20によりデータベース入出力部28を介して動作情報データベース17のそれぞれの「キー動作ID」に記憶する。時間について、動作補正部20からは、人4Aが作業を選択して開始指令を出した時点を0とした相対時間が入力されるため、一番最初のキー動作(この例では「90」)の時間を全ての動作のそれぞれの時間から減算した値を、動作補正部20によりデータベース入出力部28を介して動作情報データベース17に記憶する。フラグについては、補正前のフラグで「1」となっている動作情報の成分のうち、補正前と補正後の「動作ID」のそれぞれのキー動作の位置姿勢と、力の値とをそれぞれの成分毎に動作補正部20で比較し、その差がある閾値以上の成分のみ、図6のフラグのそれぞれの成分を動作補正部20で「1」とし、閾値未満の場合には動作補正部20で「0」とする。
 具体的には、補正前の「動作ID」が「23」の動作のフラグは、0、1、3~5、8、12、13、15~17目が「1」であり、その他は「0」であるので、補正前の動作と補正後の動作の位置姿勢と、力の値とのうち、位置姿勢の成分x,y,φ,θ,ψと力のz軸成分を動作補正部20で比較する。「キー動作ID」が「77」のキー動作と「キー動作ID」が「86」のキー動作とでは、位置姿勢(x,y,φ,θ,ψ)の成分は同じで、力のz軸成分のみ異なり、差の閾値を0.1(N)とすると、力のz成分のみが閾値以上となる。従って、動作補正部20により、フラグは8ビット目が「1」で、その他は「0」とする。
 補正パラメータフラグについては、補正前の動作(この例では「78」~「86」)の値を動作補正部20によりデータベース入出力部28を介して動作情報データベース17に記憶する。
 次に、取得した環境情報と動作補正部20の動作補正操作で補正した動作から制御ルールデータベース19に新しい制御ルールを制御ルール生成部23で生成して記憶する。
 具体的には、制御ルールデータベース16の「作業ID」が「4」の作業で動作中に動作を補正するため、制御ルール生成部23により、図10Bに示すように、「作業ID」が「4」の作業に1行追加し、動作補正により新しく追加した「動作ID」が「24」の動作を追加する。
 次に、制御ルール生成部23で選択した環境情報の環境IDをデータベース入出力部28を介して制御ルールデータベース16に記憶する(この例では「環境ID」が「32」の環境情報)。
 動作指令部(動作算出部2)27により、具体的には上記した補正により、図35Eのように仕様変更後に自動でロボットアーム5の動作を行うことができる。その仕様変更後の自動的に行う動作については、第3実施形態又は先の実施形態と同様であるので、説明を省略する。
 以上により、人4Aが環境変化通知操作と動作補正操作が同じ場合は、1つの環境変化及び動作補正のみの操作により、操作の負荷を削減でき、さらに、制御ルール生成部23により新しい制御ルールを生成することで、機器71の仕様変更を考慮した動作を事前に用意しておかなくても、その場で人4Aが操作をして環境通知及び動作を補正するだけで、次に同じような環境になった場合に、制御ルールデータベース16の情報を基に(言い換えれば、環境情報取得部19で取得した環境情報を参照しながら、制御ルール生成部23により生成された制御ルールに基づいて)ロボットアーム5は自律的に動作することができるようになる。
 (変形例)
 なお、上記第1~第5実施形態では、作業を行うロボットアーム5を直接把持して操作をしたが、マスタースレーブ方式のように、実際に作業を行うロボットアーム5ではなく、容易に動かすことが可能な別の操作機器(マスター)を人4Aが操作することで、それに接続された実際のロボットアーム(スレーブ)を動かし、動作を補正する方法についても適応可能である。
 さらに、上記第1~第5実施形態では、ロボットアーム5を例に説明したが、本発明は、アームに限らず、車輪により動く移動ロボット、又は、2足歩行ロボット、又は、多足歩行ロボットなどにも適用することができ、移動ロボットなどと人間との接触に関して同様の効果を発揮する。
 上記様々な実施形態のうちの任意の実施形態を適宜組み合わせることにより、それぞれの有する効果を奏するようにすることができる。
 本発明は、家庭用ロボットなど、人とロボットが協調して作業を行う際のロボットアームの動作の制御を行うロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路として有用である。また、家庭用ロボットに限らず、産業用ロボット、又は、生産設備等における可動機構のロボットアームの制御装置及び制御方法、ロボットアームの制御装置を有するロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路としても適用が可能である。
 本発明は、添付図面を参照しながら好ましい実施形態に関連して充分に記載されているが、この技術の熟練した人々にとっては種々の変形又は修正は明白である。そのような変形又は修正は、添付した請求の範囲による本発明の範囲から外れない限りにおいて、その中に含まれると理解されるべきである。

Claims (15)

  1.  ロボットアームの動作を制御する、ロボットアームの制御装置であって、
     前記動作に対応する、前記ロボットアームの位置、姿勢、及び、速度の少なくとも1つ以上が時系列に動作情報として記憶された動作情報データベースから前記動作情報を取得する動作情報取得部と、
     人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に前記動作情報取得部で取得した前記動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を取得する補正動作情報取得部と、
     前記ロボットアームが作用する対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて取得する環境情報取得部と、
     前記動作情報取得部で取得した前記動作情報に基づいて前記ロボットアームを移動するよう位置制御モードで前記ロボットアームを制御する位置制御部と、
     前記位置制御部の制御により前記ロボットアームが前記位置制御モードで移動している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を補正する動作補正部と、
     前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを生成する制御ルール生成部とを備えて、
     前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するロボットアームの制御装置。
  2.  ロボットアームの動作を制御する、ロボットアームの制御装置であって、
     前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから前記動作情報を取得する動作情報取得部と、
     人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に、前記動作情報取得部で取得した前記動作情報に関連しかつ前記ロボットアームが加える力に関する補正動作情報を取得する補正動作情報取得部と、
     前記ロボットアームが作用する前記対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて取得する環境情報取得部と、
     前記動作情報取得部で取得した前記動作情報に設定された力で前記対象物に対して前記ロボットアームが力制御を行なうよう前記ロボットアームを力制御モードで制御する制御部と、
     前記制御部により前記ロボットアームを前記力制御モードで制御している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を補正する動作補正部と、
     前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを生成する制御ルール生成部とを備えて、
     前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するロボットアームの制御装置。
  3.  前記環境情報取得部は、前記ロボットアームに加えられた前記人の力を検出する力検出部を備えて、
     前記力検出部で検出された前記人の力とその検出時間とに応じて前記人が前記ロボットアームを操作したことを検出して、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する前記補正動作情報を前記補正動作情報取得部で取得する請求項1又は2に記載のロボットアームの制御装置。
  4.  前記環境情報取得部は、前記ロボットアーム及び前記ロボットアームの前記動作を行う周辺環境を撮像可能な複数の画像撮像装置を備え、
     前記制御ルール生成部は、前記人の前記ロボットアームの操作時の前記ロボットアームの前記位置制御モードに応じて、前記環境情報取得部の前記複数の画像撮像装置で取得した複数の環境情報の中から、制御ルール生成の際の環境情報の種別を決定する請求項1に記載のロボットアームの制御装置。
  5.  前記環境情報取得部は、前記ロボットアームに加えられた前記人の力を検出する力検出部を備えて、
     前記制御ルール生成部は、前記人の前記ロボットアームの操作時の前記ロボットアームの前記力制御モードに応じて、制御ルール生成の際に前記力検出部で取得した環境情報を使用する請求項2に記載のロボットアームの制御装置。
  6.  前記環境変化通知操作と、前記人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する動作補正操作とが同じ操作である場合は、前記動作補正操作の代わりに前記環境変化通知操作を使用する請求項1又は2に記載のロボットアームの制御装置。
  7.  前記環境情報は、複数種類の検出方向から検出され取得された環境情報を有し、
     前記制御ルール生成部は、前記ロボットアームの前記人の操作に応じて取得する前記環境情報の検出方向を決定する請求項6に記載のロボットアームの制御装置。
  8.  前記制御ルール生成部で生成された制御ルールのうちの複数の動作情報から、前記環境情報取得部で取得した前記環境情報を参照して1つの動作情報を算出する動作算出部をさらに備える請求項1又は2に記載のロボットアームの制御装置。
  9.  前記人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正して、前記動作情報取得部で取得した前記動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を前記補正動作情報取得部で取得したのち、
     前記環境情報取得部で取得した前記環境情報が、前記補正の操作時の前記環境情報と同じであるときに、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を、前記補正動作情報取得部で取得した前記補正動作情報に基づき補正するように制御する請求項1又は2に記載のロボットアームの制御装置。
  10.  前記環境情報取得部は、前記ロボットアーム及び前記ロボットアームの前記動作を行う周辺環境を撮像可能な複数の画像撮像装置を備え、
     前記ロボットアームの先端には、ネジを回転可能な作業用治具を着脱可能に把持可能なハンドを備え、前記作業用治具は前記対象物であり、
     前記複数の画像撮像装置で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記ハンドに把持した前記作業用治具で前記ネジの締め付け又は取り外し作業において前記ロボットアームの前記動作を制御する、請求項1に記載のロボットアームの制御装置。
  11.  前記環境情報取得部は、前記ロボットアーム及び前記ロボットアームの前記動作を行う周辺環境を撮像可能な複数の画像撮像装置を備え、
     前記ロボットアームの先端には、フレキシブル基板を着脱可能に把持可能なハンドを備え、前記フレキシブル基板は前記対象物であり、
     前記複数の画像撮像装置で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記ハンドに把持した前記フレキシブル基板を機器に取り付ける作業において前記ロボットアームの前記動作を制御する、請求項2に記載のロボットアームの制御装置。
  12.  ロボットアームの動作を制御する、ロボットアームの制御方法であって、
     前記動作に対応する、前記ロボットアームの位置、姿勢、速度の少なくとも1つ以上が時系列に動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得し、
     人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に前記動作情報取得部で取得した前記動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を補正動作情報取得部で取得し、
     前記ロボットアームが作用する対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて環境情報取得部で取得し、
     前記動作情報取得部で取得した前記動作情報に基づいて前記ロボットアームを移動するよう位置制御モードで前記ロボットアームを位置制御部で制御し、
     前記位置制御部の制御により前記ロボットアームが前記位置制御モードで移動している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正し、
     前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成し、
     前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するロボットアームの制御方法。
  13.  前記ロボットアームと、
     前記ロボットアームを制御する請求項1又は2に記載の前記ロボットアームの制御装置とを備えるロボット。
  14.  ロボットアームの動作を制御する、ロボットアームの制御プログラムであって、
     前記動作に対応する、前記ロボットアームの位置、姿勢、速度の少なくとも1つ以上が時系列に動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得するステップと、
     人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に前記動作情報取得部で取得した前記動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を補正動作情報取得部取得するステップと、
     前記ロボットアームが作用する対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて環境情報取得部で取得するステップと、
     前記動作情報取得部で取得した前記動作情報に基づいて前記ロボットアームを移動するよう位置制御モードで前記ロボットアームを位置制御部で制御するステップと、
     前記位置制御部の制御により前記ロボットアームが前記位置制御モードで移動している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正するステップと、
     前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成するステップと、
     前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するステップとを実行させるためのロボットアームの制御プログラム。
  15.  ロボットアームの動作を制御する、ロボットアーム制御用集積電子回路であって、前記動作に対応する、前記ロボットアームの位置、姿勢、速度の少なくとも1つ以上が時系列に動作情報として記憶された動作情報データベースから前記動作情報を動作情報取得部で取得し、
     人が前記ロボットアームを操作して、前記ロボットアームの前記動作を補正する際に前記動作情報取得部で取得した前記動作情報のうちの少なくとも1つ以上の前記動作情報に対応する補正動作情報を補正動作情報取得部で取得し、
     前記ロボットアームが作用する対象物に関する情報である環境情報を前記ロボットアームへの前記人の環境変化通知操作に応じて環境情報取得部で取得し、
     前記動作情報取得部で取得した前記動作情報に基づいて前記ロボットアームを移動するよう位置制御モードで前記ロボットアームを位置制御部で制御し、
     前記位置制御部の制御により前記ロボットアームが前記位置制御モードで移動している最中に前記補正動作情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて前記動作情報を動作補正部で補正し
     前記ロボットアームの前記人の前記環境変化通知操作に応じて、前記環境情報取得部で取得する前記環境情報を決定するとともに、前記動作補正部で補正された前記動作情報と前記環境情報取得部で取得した前記環境情報とを対応付けることにより、前記ロボットアームが自動で動作するための制御ルールを制御ルール生成部で生成し、
     前記環境情報取得部で取得した前記環境情報を参照しながら、前記制御ルール生成部により生成された前記制御ルールに基づいて、前記ロボットアームの前記動作を制御するロボットアーム制御用集積電子回路。
PCT/JP2010/005705 2009-09-28 2010-09-21 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路 WO2011036865A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201080005921.7A CN102300679B (zh) 2009-09-28 2010-09-21 机器人手臂的控制装置及控制方法、机器人及机器人手臂控制用集成电路
JP2010547779A JP4699572B2 (ja) 2009-09-28 2010-09-21 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路
US13/096,376 US8175750B2 (en) 2009-09-28 2011-04-28 Control apparatus and control method for robot arm, robot, control program for robot arm, and robot arm control-purpose integrated electronic circuit
US13/416,660 US8290621B2 (en) 2009-09-28 2012-03-09 Control apparatus and control method for robot arm, robot, control program for robot arm, and robot arm control-purpose integrated electronic circuit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009222378 2009-09-28
JP2009-222378 2009-09-28

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/096,376 Continuation US8175750B2 (en) 2009-09-28 2011-04-28 Control apparatus and control method for robot arm, robot, control program for robot arm, and robot arm control-purpose integrated electronic circuit

Publications (1)

Publication Number Publication Date
WO2011036865A1 true WO2011036865A1 (ja) 2011-03-31

Family

ID=43795633

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/005705 WO2011036865A1 (ja) 2009-09-28 2010-09-21 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路

Country Status (5)

Country Link
US (2) US8175750B2 (ja)
EP (1) EP2481531A2 (ja)
JP (2) JP4699572B2 (ja)
CN (1) CN102300679B (ja)
WO (1) WO2011036865A1 (ja)

Families Citing this family (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4962551B2 (ja) * 2009-10-20 2012-06-27 株式会社安川電機 ロボットシステムおよびロボットシステムの制御方法
DE102010010718A1 (de) * 2010-03-09 2011-09-15 Kuka Laboratories Gmbh Verfahren zur Montage von Bauteilen mittels eines Industrieroboters
US8896162B1 (en) * 2010-05-21 2014-11-25 Finley Lee Ledbetter Device for installing and/or removing components from electrical equipment
US9906838B2 (en) 2010-07-12 2018-02-27 Time Warner Cable Enterprises Llc Apparatus and methods for content delivery and message exchange across multiple content delivery networks
US9015093B1 (en) 2010-10-26 2015-04-21 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
US8775341B1 (en) 2010-10-26 2014-07-08 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
US9119655B2 (en) 2012-08-03 2015-09-01 Stryker Corporation Surgical manipulator capable of controlling a surgical instrument in multiple modes
US9921712B2 (en) 2010-12-29 2018-03-20 Mako Surgical Corp. System and method for providing substantially stable control of a surgical tool
US9566710B2 (en) 2011-06-02 2017-02-14 Brain Corporation Apparatus and methods for operating robotic devices using selective state space training
US20130171304A1 (en) * 2011-07-14 2013-07-04 Robert E. Huntley System and method for culinary interaction
JP5583282B2 (ja) 2011-08-24 2014-09-03 パナソニック株式会社 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路
JP5966372B2 (ja) * 2012-01-17 2016-08-10 セイコーエプソン株式会社 ロボット制御装置、ロボットシステム、ロボット制御方法及びロボット
US9120220B2 (en) * 2012-02-29 2015-09-01 GM Global Technology Operations LLC Control of a glove-based grasp assist device
JP5977544B2 (ja) * 2012-03-09 2016-08-24 キヤノン株式会社 情報処理装置、情報処理方法
US8843236B2 (en) * 2012-03-15 2014-09-23 GM Global Technology Operations LLC Method and system for training a robot using human-assisted task demonstration
US10383765B2 (en) 2012-04-24 2019-08-20 Auris Health, Inc. Apparatus and method for a global coordinate system for use in robotic surgery
KR102530836B1 (ko) 2012-08-03 2023-05-10 스트리커 코포레이션 로봇 수술을 위한 시스템 및 방법
US9226796B2 (en) 2012-08-03 2016-01-05 Stryker Corporation Method for detecting a disturbance as an energy applicator of a surgical instrument traverses a cutting path
US9186793B1 (en) 2012-08-31 2015-11-17 Brain Corporation Apparatus and methods for controlling attention of a robot
EP2749974A2 (en) * 2012-12-28 2014-07-02 Kabushiki Kaisha Yaskawa Denki Robot teaching system, robot teaching assistant device, and robot teaching method
US9031691B2 (en) * 2013-03-04 2015-05-12 Disney Enterprises, Inc. Systemic derivation of simplified dynamics for humanoid robots
US9199376B2 (en) * 2013-03-14 2015-12-01 GM Global Technology Operations LLC Intuitive grasp control of a multi-axis robotic gripper
US8996177B2 (en) * 2013-03-15 2015-03-31 Brain Corporation Robotic training apparatus and methods
US9764468B2 (en) 2013-03-15 2017-09-19 Brain Corporation Adaptive predictor apparatus and methods
US9242372B2 (en) 2013-05-31 2016-01-26 Brain Corporation Adaptive robotic interface apparatus and methods
US9314924B1 (en) 2013-06-14 2016-04-19 Brain Corporation Predictive robotic controller apparatus and methods
US9384443B2 (en) 2013-06-14 2016-07-05 Brain Corporation Robotic training apparatus and methods
US9792546B2 (en) 2013-06-14 2017-10-17 Brain Corporation Hierarchical robotic controller apparatus and methods
US9436909B2 (en) 2013-06-19 2016-09-06 Brain Corporation Increased dynamic range artificial neuron network apparatus and methods
US9694495B1 (en) * 2013-06-24 2017-07-04 Redwood Robotics Inc. Virtual tools for programming a robot arm
JP5850003B2 (ja) * 2013-07-26 2016-02-03 株式会社安川電機 ロボットシステム、ロボットシステムのロボット管理コンピュータ及びロボットシステムの管理方法
JP6410023B2 (ja) * 2013-09-06 2018-10-24 パナソニックIpマネジメント株式会社 マスタスレーブロボットの制御装置及び制御方法、ロボット、マスタスレーブロボットの制御プログラム、並びに、マスタスレーブロボットの制御用集積電子回路
US9296101B2 (en) 2013-09-27 2016-03-29 Brain Corporation Robotic control arbitration apparatus and methods
US9579789B2 (en) 2013-09-27 2017-02-28 Brain Corporation Apparatus and methods for training of robotic control arbitration
US9597797B2 (en) 2013-11-01 2017-03-21 Brain Corporation Apparatus and methods for haptic training of robots
US9463571B2 (en) 2013-11-01 2016-10-11 Brian Corporation Apparatus and methods for online training of robots
US9248569B2 (en) 2013-11-22 2016-02-02 Brain Corporation Discrepancy detection apparatus and methods for machine learning
JP6486005B2 (ja) * 2014-01-17 2019-03-20 蛇の目ミシン工業株式会社 ロボット、ロボットの制御方法、及びロボットの制御プログラム
US9358685B2 (en) 2014-02-03 2016-06-07 Brain Corporation Apparatus and methods for control of robot actions based on corrective user inputs
KR20160124770A (ko) * 2014-02-20 2016-10-28 엠비엘 리미티드 로봇식 요리용 키친에서의 음식 준비를 위한 방법 및 시스템
US9987743B2 (en) 2014-03-13 2018-06-05 Brain Corporation Trainable modular robotic apparatus and methods
US9533413B2 (en) 2014-03-13 2017-01-03 Brain Corporation Trainable modular robotic apparatus and methods
US9364950B2 (en) 2014-03-13 2016-06-14 Brain Corporation Trainable modular robotic methods
JP6364836B2 (ja) * 2014-03-14 2018-08-01 セイコーエプソン株式会社 ロボット、ロボットシステム、及び制御装置
CN106132346B (zh) * 2014-03-28 2019-11-26 索尼公司 机器人手臂设备、机器人手臂设备的控制方法和程序
JP6106122B2 (ja) * 2014-04-02 2017-03-29 ファナック株式会社 溶接検査ロボットシステム
US9630317B2 (en) 2014-04-03 2017-04-25 Brain Corporation Learning apparatus and methods for control of robotic devices via spoofing
US9613308B2 (en) * 2014-04-03 2017-04-04 Brain Corporation Spoofing remote control apparatus and methods
JP5893664B2 (ja) * 2014-04-14 2016-03-23 ファナック株式会社 作用された力に応じて移動されるロボットを制御するロボット制御装置
US9346167B2 (en) 2014-04-29 2016-05-24 Brain Corporation Trainable convolutional network apparatus and methods for operating a robotic vehicle
US9403273B2 (en) * 2014-05-23 2016-08-02 GM Global Technology Operations LLC Rapid robotic imitation learning of force-torque tasks
CN105313127A (zh) * 2014-06-02 2016-02-10 精工爱普生株式会社 机器人、机器人的控制方法以及机器人的控制装置
DE102015204641B4 (de) 2014-06-03 2021-03-25 ArtiMinds Robotics GmbH Verfahren und System zur Programmierung eines Roboters
JP6660102B2 (ja) * 2014-08-27 2020-03-04 キヤノン株式会社 ロボット教示装置およびその制御方法、ロボットシステム、プログラム
US9821470B2 (en) 2014-09-17 2017-11-21 Brain Corporation Apparatus and methods for context determination using real time sensor data
US9860077B2 (en) 2014-09-17 2018-01-02 Brain Corporation Home animation apparatus and methods
US9849588B2 (en) 2014-09-17 2017-12-26 Brain Corporation Apparatus and methods for remotely controlling robotic devices
US9579790B2 (en) 2014-09-17 2017-02-28 Brain Corporation Apparatus and methods for removal of learned behaviors in robots
US9815206B2 (en) * 2014-09-25 2017-11-14 The Johns Hopkins University Surgical system user interface using cooperatively-controlled robot
US9630318B2 (en) 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
US10499999B2 (en) 2014-10-09 2019-12-10 Auris Health, Inc. Systems and methods for aligning an elongate member with an access site
CN105700465A (zh) * 2014-11-26 2016-06-22 中国科学院沈阳自动化研究所 基于EtherCAT总线的机器人柔顺控制系统和方法
US9592603B2 (en) * 2014-12-01 2017-03-14 Spin Master Ltd. Reconfigurable robotic system
US9426946B2 (en) 2014-12-02 2016-08-30 Brain Corporation Computerized learning landscaping apparatus and methods
US9804593B1 (en) * 2014-12-12 2017-10-31 X Development Llc Methods and systems for teaching positions to components of devices
US9592608B1 (en) * 2014-12-15 2017-03-14 X Development Llc Methods and systems for providing feedback during teach mode
US9717387B1 (en) 2015-02-26 2017-08-01 Brain Corporation Apparatus and methods for programming and training of robotic household appliances
DE102015205176B3 (de) * 2015-03-23 2016-05-12 Kuka Roboter Gmbh Robustes intuitives Bedienverfahren durch Berührung eines Manipulators
CN107438502B (zh) * 2015-03-31 2019-05-31 Abb瑞士股份有限公司 通过触摸来控制工业机器人的方法
US9840003B2 (en) 2015-06-24 2017-12-12 Brain Corporation Apparatus and methods for safe navigation of robotic devices
JP6754364B2 (ja) * 2015-08-25 2020-09-09 川崎重工業株式会社 ロボットシステム
US9418421B1 (en) * 2015-09-26 2016-08-16 Nastaran Neishaboori Automation of biopsy specimen handling
JP6489991B2 (ja) * 2015-10-02 2019-03-27 ファナック株式会社 ロボットを操作するハンドルを備えたロボット用操作装置
US10751874B2 (en) 2015-10-14 2020-08-25 Kawasaki Jukogyo Kabushiki Kaisha Method of teaching robot and robotic arm control device
JP6577326B2 (ja) * 2015-10-16 2019-09-18 ファナック株式会社 人と協働して物体を運搬するロボットを制御するロボット制御装置、ロボットシステム、およびその方法
US10926415B2 (en) * 2015-11-16 2021-02-23 Kawasaki Jukogyo Kabushiki Kaisha Robot system and control method of robot system
US9919422B1 (en) 2016-01-06 2018-03-20 X Development Llc Methods and systems to provide mechanical feedback during movement of a robotic system
DE112016006116T5 (de) * 2016-01-29 2018-09-13 Mitsubishi Electric Corporation Roboterlehrvorrichtung und Verfahren zum Erzeugen eines Robotersteuerprogramms
CN105739497A (zh) * 2016-02-19 2016-07-06 上海钧工智能技术有限公司 一种智能机器人空气净化系统
GB2549072B (en) 2016-03-24 2020-07-29 Cmr Surgical Ltd Robot control
CN109219856A (zh) * 2016-03-24 2019-01-15 宝利根 T·R 有限公司 用于人类及机器人协作的系统及方法
US10295972B2 (en) 2016-04-29 2019-05-21 Brain Corporation Systems and methods to operate controllable devices with gestures and/or noises
WO2017203937A1 (ja) * 2016-05-26 2017-11-30 三菱電機株式会社 ロボット制御装置
US10427305B2 (en) * 2016-07-21 2019-10-01 Autodesk, Inc. Robotic camera control via motion capture
GB2557179B (en) * 2016-11-29 2020-01-01 Rolls Royce Plc Methods, apparatus, computer programs and non-transitory computer readable storage mediums for controlling a hyper redundant manipulator
JP6469069B2 (ja) 2016-12-13 2019-02-13 ファナック株式会社 学習を容易化する機能を備えたロボット制御装置、及びロボット制御方法
EP3554414A1 (en) 2016-12-16 2019-10-23 MAKO Surgical Corp. Techniques for modifying tool operation in a surgical robotic system based on comparing actual and commanded states of the tool relative to a surgical site
CN106393145B (zh) * 2016-12-20 2018-10-02 自兴人工智能(深圳)有限公司 一种基于机械臂控制的虚拟现实体验方法及装置
WO2019005699A1 (en) 2017-06-28 2019-01-03 Auris Health, Inc. ELECTROMAGNETIC FIELD GENERATOR ALIGNMENT
KR102578978B1 (ko) 2017-06-28 2023-09-19 아우리스 헬스, 인코포레이티드 전자파 왜곡 검출
US10464209B2 (en) 2017-10-05 2019-11-05 Auris Health, Inc. Robotic system with indication of boundary for robotic arm
US10016900B1 (en) 2017-10-10 2018-07-10 Auris Health, Inc. Surgical robotic arm admittance control
US20190201139A1 (en) * 2017-12-28 2019-07-04 Ethicon Llc Communication arrangements for robot-assisted surgical platforms
JP6965785B2 (ja) * 2018-02-15 2021-11-10 オムロン株式会社 制御システム、スレーブ装置制御部、制御方法およびプログラム
JP7135408B2 (ja) * 2018-04-26 2022-09-13 セイコーエプソン株式会社 ロボット制御装置およびロボットシステム
WO2019213164A1 (en) 2018-04-30 2019-11-07 Vanderbilt University A control method for a robotic system
WO2020097224A1 (en) 2018-11-06 2020-05-14 Bono Peter L Robotic surgical system and method
JP7172485B2 (ja) * 2018-11-15 2022-11-16 株式会社Ihi ロボット制御装置
WO2020121790A1 (ja) * 2018-12-14 2020-06-18 株式会社フジキン 作業管理装置、作業管理方法及び作業管理システム
CN109945411B (zh) * 2019-03-25 2020-05-26 珠海格力电器股份有限公司 一种控制器的控制方法、装置、存储介质及控制器
KR20220056220A (ko) 2019-09-03 2022-05-04 아우리스 헬스, 인코포레이티드 전자기 왜곡 검출 및 보상
US12109591B2 (en) 2019-09-09 2024-10-08 GE Precision Healthcare LLC Ultrasound transducer array architecture and method of manufacture
WO2021056591A1 (zh) * 2019-09-29 2021-04-01 西门子股份公司 用于控制多轴运动机器的方法、装置和存储介质
JP7362107B2 (ja) * 2019-09-30 2023-10-17 Johnan株式会社 制御装置、制御方法およびプログラム
CN114787754A (zh) * 2019-12-17 2022-07-22 索尼集团公司 信息处理装置和方法
JP6981709B1 (ja) * 2020-02-17 2021-12-17 コネクテッドロボティクス株式会社 制御プログラム及び調理システム
JP6954683B2 (ja) * 2020-02-17 2021-10-27 コネクテッドロボティクス株式会社 食器洗浄システム、食器洗浄システム用制御装置及びプログラム
JP2022060712A (ja) * 2020-10-05 2022-04-15 キオクシア株式会社 半導体製造装置
US20220108250A1 (en) * 2020-10-05 2022-04-07 Hyphen Technologies, Inc. Modular system for food assembly
WO2022074448A1 (en) * 2020-10-06 2022-04-14 Mark Oleynik Robotic kitchen hub systems and methods for minimanipulation library adjustments and calibrations of multi-functional robotic platforms for commercial and residential environments with artificial intelligence and machine learning
US20220134557A1 (en) * 2020-10-30 2022-05-05 Sintokogio, Ltd. Control device, robot control system, program, and control method
EP4008493A1 (en) * 2020-12-07 2022-06-08 Electrolux Appliances Aktiebolag Kitchen assistance robot, robotic system, robot-assisted kitchen environment and method for operating the kitchen assistance robot
US11945117B2 (en) 2021-03-10 2024-04-02 Samsung Electronics Co., Ltd. Anticipating user and object poses through task-based extrapolation for robot-human collision avoidance
US12103185B2 (en) * 2021-03-10 2024-10-01 Samsung Electronics Co., Ltd. Parameterized waypoint generation on dynamically parented non-static objects for robotic autonomous tasks
US11833691B2 (en) 2021-03-30 2023-12-05 Samsung Electronics Co., Ltd. Hybrid robotic motion planning system using machine learning and parametric trajectories
WO2022232186A1 (en) * 2021-04-27 2022-11-03 Nvidia Corporation Policy layers for machine control
CN114170561B (zh) * 2022-02-14 2022-05-06 盈嘉互联(北京)科技有限公司 一种应用于智能建筑的机器视觉行为意图预测方法
WO2024062632A1 (ja) * 2022-09-22 2024-03-28 日本電気株式会社 制御装置、制約条件選択装置、データ生成装置、制御方法、制約条件選択方法、データ生成方法及び記憶媒体

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59157715A (ja) 1983-02-25 1984-09-07 Hitachi Ltd ロボツトの直接教示方法
JPH01146645A (ja) * 1987-12-03 1989-06-08 Fujitsu Ltd ならい制御方式
JPH02250782A (ja) * 1989-03-20 1990-10-08 Fanuc Ltd 産業用ロボットの手動介入方式
JPH06190753A (ja) * 1992-12-25 1994-07-12 Fujitsu Ltd ロボット制御装置
JPH09325806A (ja) * 1996-06-06 1997-12-16 Nippon Telegr & Teleph Corp <Ntt> ロボット教示再生方法及び装置
JPH10254527A (ja) * 1997-03-10 1998-09-25 Kawasaki Heavy Ind Ltd ロボットの教示装置
JP2002120174A (ja) * 2000-10-11 2002-04-23 Sony Corp オーサリング・システム及びオーサリング方法、並びに記憶媒体
JP2004049731A (ja) * 2002-07-23 2004-02-19 Yaskawa Electric Corp 肢体駆動装置の教示方法
JP2004148466A (ja) * 2002-10-31 2004-05-27 Yaskawa Electric Corp ロボット制御装置
JP2005148789A (ja) * 2003-11-11 2005-06-09 Fanuc Ltd 音声入力によるロボット教示プログラム編集装置
WO2009107358A1 (ja) * 2008-02-28 2009-09-03 パナソニック株式会社 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及びロボットアーム制御用集積電子回路

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3240251A1 (de) * 1982-10-30 1984-05-03 Deutsche Forschungs- und Versuchsanstalt für Luft- und Raumfahrt e.V., 5000 Köln Verfahren zum programmieren von bewegungen und erforderlichenfalls von bearbeitungskraeften bzw. -momenten eines roboters oder manipulators und einrichtung zu dessen durchfuehrung
US5495410A (en) * 1994-08-12 1996-02-27 Minnesota Mining And Manufacturing Company Lead-through robot programming system
JP3602687B2 (ja) 1997-05-09 2004-12-15 三菱電機株式会社 自動機の作業支援装置
JP3820422B2 (ja) 1998-12-08 2006-09-13 株式会社東芝 マニピュレータの教示・再生装置及びその教示・再生方法
US6285920B1 (en) * 2000-02-18 2001-09-04 Fanuc Robotics North America Method of robot teaching with motion constraints
US6385508B1 (en) * 2000-10-31 2002-05-07 Fanuc Robotics North America, Inc. Lead-through teach handle assembly and method of teaching a robot assembly
JP2003305678A (ja) 2002-04-11 2003-10-28 Ricoh Co Ltd ロボット及びロボットの制御方法
JP2006082185A (ja) 2004-09-16 2006-03-30 Yaskawa Electric Corp ロボット誘導方法
JP4210270B2 (ja) * 2005-06-07 2009-01-14 ファナック株式会社 ロボット制御装置及びロボット制御方法
JP2006344136A (ja) * 2005-06-10 2006-12-21 Fanuc Ltd ロボット制御装置
JP2007190662A (ja) 2006-01-23 2007-08-02 Yaskawa Electric Corp 産業用ロボットおよびたわみ補正方法
JP2009181526A (ja) 2008-02-01 2009-08-13 Panasonic Corp ロボットシステム

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59157715A (ja) 1983-02-25 1984-09-07 Hitachi Ltd ロボツトの直接教示方法
JPH01146645A (ja) * 1987-12-03 1989-06-08 Fujitsu Ltd ならい制御方式
JPH02250782A (ja) * 1989-03-20 1990-10-08 Fanuc Ltd 産業用ロボットの手動介入方式
JPH06190753A (ja) * 1992-12-25 1994-07-12 Fujitsu Ltd ロボット制御装置
JPH09325806A (ja) * 1996-06-06 1997-12-16 Nippon Telegr & Teleph Corp <Ntt> ロボット教示再生方法及び装置
JPH10254527A (ja) * 1997-03-10 1998-09-25 Kawasaki Heavy Ind Ltd ロボットの教示装置
JP2002120174A (ja) * 2000-10-11 2002-04-23 Sony Corp オーサリング・システム及びオーサリング方法、並びに記憶媒体
JP2004049731A (ja) * 2002-07-23 2004-02-19 Yaskawa Electric Corp 肢体駆動装置の教示方法
JP2004148466A (ja) * 2002-10-31 2004-05-27 Yaskawa Electric Corp ロボット制御装置
JP2005148789A (ja) * 2003-11-11 2005-06-09 Fanuc Ltd 音声入力によるロボット教示プログラム編集装置
WO2009107358A1 (ja) * 2008-02-28 2009-09-03 パナソニック株式会社 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及びロボットアーム制御用集積電子回路

Also Published As

Publication number Publication date
JPWO2011036865A1 (ja) 2013-02-14
US20110208355A1 (en) 2011-08-25
US8175750B2 (en) 2012-05-08
JP4699572B2 (ja) 2011-06-15
US8290621B2 (en) 2012-10-16
CN102300679B (zh) 2014-12-10
EP2481531A2 (en) 2012-08-01
JP2011088273A (ja) 2011-05-06
CN102300679A (zh) 2011-12-28
US20120173021A1 (en) 2012-07-05
JP5740554B2 (ja) 2015-06-24

Similar Documents

Publication Publication Date Title
JP4699572B2 (ja) ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路
JP4531126B2 (ja) ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及びロボットアーム制御用集積電子回路
JP4759660B2 (ja) ロボットアーム制御用の装置、方法、プログラム及び集積電子回路、並びに、組立ロボット
JP4584354B2 (ja) ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路
JP4568795B2 (ja) ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路
WO2010016210A1 (ja) 掃除機の制御装置及び制御方法、掃除機、掃除機の制御プログラム、及び、集積電子回路
JP5165160B2 (ja) ロボットアームの制御装置及び制御方法、ロボット、ロボットアーム制御プログラム、並びに、集積電子回路
JP2016221653A (ja) ロボット制御装置およびロボットシステム
WO2011021376A1 (ja) ロボットアームの制御装置及び制御方法、家事ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080005921.7

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2010547779

Country of ref document: JP

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10818544

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010818544

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10818544

Country of ref document: EP

Kind code of ref document: A1