WO2013080500A1 - ロボットの教示装置、ロボット装置、ロボットの教示装置の制御方法、ロボットの教示装置の制御プログラム - Google Patents

ロボットの教示装置、ロボット装置、ロボットの教示装置の制御方法、ロボットの教示装置の制御プログラム Download PDF

Info

Publication number
WO2013080500A1
WO2013080500A1 PCT/JP2012/007504 JP2012007504W WO2013080500A1 WO 2013080500 A1 WO2013080500 A1 WO 2013080500A1 JP 2012007504 W JP2012007504 W JP 2012007504W WO 2013080500 A1 WO2013080500 A1 WO 2013080500A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
flexible object
teaching
evaluation
robot
Prior art date
Application number
PCT/JP2012/007504
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 CN201280021289.4A priority Critical patent/CN103501969B/zh
Priority to JP2013546982A priority patent/JP5636119B2/ja
Publication of WO2013080500A1 publication Critical patent/WO2013080500A1/ja
Priority to US14/144,969 priority patent/US9211640B2/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/0081Programme-controlled manipulators with master teach-in means
    • 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
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1687Assembly, peg and hole, palletising, straight line, weaving pattern movement
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • G05B19/423Teaching successive positions by walk-through, i.e. the tool head or end effector being grasped and guided directly, with or without servo-assistance, to follow a path
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39469Grip flexible, deformable plate, object and manipulate it
    • 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/40028Insert flexible rod, beam into hole
    • 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/40052Deform, bend flexible material
    • 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/40082Docking, align object on end effector with target
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/02Arm motion controller
    • Y10S901/03Teaching system

Definitions

  • the present invention relates to a robot teaching apparatus, a robot apparatus, a robot teaching apparatus control method, and a robot teaching apparatus control program for performing an operation of inserting one end of a flexible object into an object.
  • the movement trajectory information of the robot arm is created in advance (this is called teaching), and the robot arm reproduces the movement on the trajectory. Repeat the work. In the case of assembling work with a rigid body as an object, the assembling work is unlikely to fail in repetitive work.
  • a flexible object has a large variation in shape or posture as compared with a rigid body because individual differences occur in the manufacturing process, or it collides with an object after manufacturing, or is deformed by its own weight.
  • Patent Document 1 a force sensor is attached to the wrist of an assembly robot arm, the force value at each time during teaching is acquired, and the robot arm is moved so as to reproduce the acquired force value during reproduction. It shows how to do it.
  • the present invention has been made in view of such problems of the prior art, and can accurately perform operations such as insertion of a flexible object, which has been difficult in the past, and a robot teaching apparatus and robot It is an object of the present invention to provide an apparatus, a robot teaching device control method, and a robot teaching device control program.
  • the present invention is configured as follows.
  • a flexible object holding part capable of holding a flexible object, and a drive for performing a fitting operation between the flexible object and the object by moving the flexible object holding part in a predetermined direction.
  • a robot teaching device that teaches the work and generates teaching data.
  • An arrival determination unit for determining the arrival of the tip of the flexible object to the object;
  • a bending acquisition unit for acquiring information on evaluation of the bending state of the flexible object when the arrival determination unit determines the arrival of the tip of the flexible object to the object;
  • a robot teaching device comprising: a notification unit that performs notification regarding teaching based on the evaluation information acquired by the bend acquisition unit.
  • the notification unit can perform a predetermined notification regarding teaching.
  • the selection unit can select the teaching with the high evaluation from a plurality of teaching data based on the evaluation information acquired by the bending acquisition unit.
  • FIG. 1 is a diagram showing a robot apparatus in a direct teaching configuration for explaining the problem of the present invention.
  • FIG. 2 is a diagram showing trajectory data held by the trajectory information holding unit
  • FIG. 3A is a diagram showing how a flexible object bends during teaching in a direct teaching configuration in order to explain the problem of the present invention
  • FIG. 3B is a diagram showing how the flexible object bends during teaching in the direct teaching configuration after FIG. 3A
  • FIG. 3C is a diagram showing how the flexible object bends during teaching in the direct teaching configuration after FIG. 3B;
  • FIG. 1 is a diagram showing a robot apparatus in a direct teaching configuration for explaining the problem of the present invention.
  • FIG. 2 is a diagram showing trajectory data held by the trajectory information holding unit
  • FIG. 3A is a diagram showing how a flexible object bends during teaching in a direct teaching configuration in order to explain the problem of the present invention
  • FIG. 3B is a diagram showing how the flexible object bends during teaching in the direct teaching configuration after FIG. 3A
  • FIG. 3D is a diagram illustrating how the flexible object bends during teaching in the direct teaching configuration, following FIG. 3C.
  • FIG. 4A is a diagram showing how a flexible object bends during reproduction in a direct teaching configuration in order to explain the problem of the present invention
  • FIG. 4B is a diagram showing how the flexible object bends during reproduction in the direct teaching configuration in order to explain the problem of the present invention after FIG. 4A
  • FIG. 4C is a diagram showing how the flexible object bends during reproduction in the direct teaching configuration in order to explain the problem of the present invention, following FIG. 4B.
  • FIG. 4D is a diagram showing how the flexible object bends during reproduction in the direct teaching configuration in order to explain the problem of the present invention, following FIG. 4C.
  • FIG. 4A is a diagram showing how a flexible object bends during reproduction in a direct teaching configuration in order to explain the problem of the present invention
  • FIG. 4B is a diagram showing how the flexible object bends during reproduction in the direct teaching configuration in order to explain the problem of
  • FIG. 4E is a diagram illustrating a state where the operator bends the flexible object beyond the maximum bending degree
  • FIG. 5A is a diagram illustrating the orientation of the first end of the flexible object and the bending state of the flexible object in order to explain the problem of the present invention
  • FIG. 5B is a diagram illustrating the orientation of the first end of the flexible object and the bending state of the flexible object in order to explain the problem of the present invention
  • FIG. 6 is a tabular diagram showing the evaluation of the degree of bending of the flexible object during teaching and the success probability of insertion when reproduction is performed 20 times using each teaching data.
  • FIG. 7 is a diagram showing the robot apparatus according to the first embodiment of the present invention.
  • FIG. 7 is a diagram showing the robot apparatus according to the first embodiment of the present invention.
  • FIG. 8 is a diagram illustrating an example of information on the orientation of the hole of the insertion port held by the bending reference holding unit of the robot apparatus according to the first embodiment of the present invention.
  • FIG. 9 is a diagram showing the direction of the hand and the direction of the first end in the robot apparatus according to the first embodiment of the present invention;
  • FIG. 10 is a diagram illustrating an example of evaluation information held by the evaluation holding unit in the robot apparatus according to the first embodiment of the present invention.
  • FIG. 11 is a diagram showing notification contents displayed on the notification unit in the robot apparatus according to the first embodiment of the present invention.
  • FIG. 12 is a diagram illustrating a flow of processing performed by the notification generation unit in the robot apparatus according to the first embodiment of the present invention.
  • FIG. 13 is a diagram showing a flow of processing of the robot arm in the robot apparatus according to the first embodiment.
  • FIG. 14A is a diagram showing a change in how the flexible object bends during teaching and playback of the robot apparatus according to the first embodiment of the present invention
  • FIG. 14B is a diagram illustrating a change in the bending method of the flexible object during teaching and playback of the robot apparatus according to the first embodiment of the present invention, following FIG. 14A.
  • FIG. 14C is a diagram illustrating a change in the bending method of the flexible object during teaching and reproduction of the robot device according to the first embodiment of the present invention, following FIG. 14B.
  • FIG. 14A is a diagram showing a change in how the flexible object bends during teaching and playback of the robot apparatus according to the first embodiment of the present invention
  • FIG. 14B is a diagram illustrating a change in the bending method of the flexible object during teaching and reproduction of the robot device according to the first embodiment of the present invention, following FIG. 14B.
  • FIG. 14D is a diagram illustrating a change in the bending method of the flexible object during teaching and reproduction of the robot device according to the first embodiment of the present invention, following FIG. 14C;
  • FIG. 15 is a diagram illustrating a state in which the second end of the flexible object is inserted into the insertion port and the flexible object is not bent in the robot apparatus according to the first embodiment of the present invention;
  • FIG. 16 is a diagram showing a case where the flexible object is a cylindrical tube in the robot apparatus according to the first embodiment of the present invention;
  • FIG. 17 is a diagram showing a tip of a robot arm and a flexible object in a first modification of the first embodiment of the present invention.
  • FIG. 18 is a diagram showing a configuration of the robot apparatus in the configuration of the first modified example of the first embodiment of the present invention.
  • FIG. 19 is a diagram showing a configuration of the teaching device in the second modification of the first embodiment of the present invention
  • FIG. 20 is a diagram showing a flow of processing of the robot arm by the management unit of the teaching device in the second modification of the first embodiment of the present invention.
  • FIG. 21 is a diagram illustrating a bending state of a rugby ball-shaped flexible object (a shape in which a middle portion is swollen) in a sixth modification of the first embodiment of the present invention
  • FIG. 22 is a diagram showing the flexible objects in various states fixed to the first end in the tenth modification of the first embodiment of the present invention;
  • FIG. 23A is a cross-sectional view of the stage of FIG. 3A for explaining the problem of the present invention as seen from another direction (direction seen from above the Y axis in FIG. 1);
  • FIG. 23B is a cross-sectional view of the stage of FIG. 3B for explaining the problem of the present invention as seen from another direction (direction seen from above the Y axis in FIG. 1);
  • FIG. 23C is a cross-sectional view of the stage of FIG. 3C for explaining the problem of the present invention as seen from another direction (direction seen from the top to the bottom of the Y axis in FIG. 1).
  • FIG. 23D is a cross-sectional view of the stage of FIG.
  • FIG. 24 is a diagram showing a flow of processing performed by the management unit in the fourth modification example of the first embodiment of the present invention.
  • FIG. 25 is a diagram showing a configuration of the robot apparatus in the fourth modification example of the first embodiment of the present invention.
  • FIG. 26 is a diagram illustrating a robot apparatus including an omnidirectional robot according to an eleventh modification of the first embodiment of the present invention.
  • the flexible object holding unit capable of holding the flexible object, and the drive for performing the fitting operation between the flexible object and the object by moving the flexible object holding part in a predetermined direction.
  • a robot teaching device that teaches the work and generates teaching data.
  • An arrival determination unit for determining the arrival of the tip of the flexible object to the object;
  • a bending acquisition unit for acquiring information on evaluation of the bending state of the flexible object when the arrival determination unit determines the arrival of the tip of the flexible object to the object;
  • a robot teaching device comprising: a notification unit that performs notification regarding teaching based on the evaluation information acquired by the bend acquisition unit.
  • the robot teaching device according to the first aspect, wherein the notification unit notifies the flexible object to bend further.
  • a flexible object holding part capable of holding a flexible object, and a drive for performing a fitting operation between the flexible object and the object by moving the flexible object holding part in a predetermined direction.
  • a robot teaching device that teaches the work and generates teaching data.
  • An arrival determination unit for determining the arrival of the tip of the flexible object to the object;
  • a bending acquisition unit for acquiring information on evaluation of the bending state of the flexible object when the arrival determination unit determines the arrival of the tip of the flexible object to the object;
  • a selection unit that selects the highly evaluated teaching from a plurality of teaching data based on the evaluation information acquired by the bending acquisition unit;
  • a robot teaching apparatus comprising:
  • the evaluation of the bending condition of the flexible object selects an evaluation that is better than the other evaluations.
  • a robot teaching device according to claim 1 is provided.
  • the bending acquisition unit acquires information on the evaluation of the bending state based on an angle formed by the direction of the flexible object at two points of the flexible object.
  • a robot teaching apparatus according to any one of the first to fourth aspects is provided.
  • a bending reference holding unit that stores information on the orientation of the hole of the insertion port of the object
  • a position and orientation acquisition unit that acquires information on the orientation of one point of the flexible object
  • the bending acquisition unit is configured to perform the evaluation based on information on a direction of the hole of the insertion port stored in the bending reference holding unit and information on a direction of one point of the flexible object acquired by the position and orientation acquisition unit. Get information, A robot teaching apparatus according to any one of the first to fifth aspects is provided.
  • the seventh aspect of the present invention has a force sensor for acquiring a force applied to the flexible object,
  • the arrival determination unit performs the determination based on the force acquired by the force sensor.
  • a robot teaching apparatus according to any one of the first to sixth aspects is provided.
  • an imaging device for imaging the flexible object A position acquisition unit that performs image processing on an image captured by the imaging device and acquires the positions of the two points on the flexible object;
  • the bend acquisition unit is based on the positions of the plurality of points acquired by the position acquisition unit. Obtaining the direction of the flexible object at at least one point of the flexible object, and obtaining information on the evaluation of the bending state of the flexible object based on the acquired direction of the flexible object;
  • a robot teaching apparatus according to a fifth aspect is provided.
  • an imaging device for imaging the flexible object
  • a feature point extraction unit that performs image processing on an image captured by the imaging device and extracts the tip of the flexible object based on a feature point of the tip of the flexible object
  • the arrival determination unit determines the arrival based on whether the feature point extraction unit has extracted the tip of the flexible object or not.
  • the work is taught a plurality of times, and the evaluation information acquired by the bend acquisition unit when the arrival determination unit determines arrival at each teaching is retained.
  • the notification unit includes a first predetermined number of evaluation values or a first predetermined number of evaluation values from a higher evaluation value among a plurality of evaluation information held by the evaluation holding unit. Notify the distribution, A robot teaching apparatus according to the first or second aspect is provided.
  • the evaluation information acquired by the bending acquisition unit when the operation is taught a plurality of times and the arrival determination unit determines arrival at the time of each teaching.
  • a robot teaching apparatus according to any one of the first to tenth aspects is further provided.
  • the robot is a robot arm
  • the drive unit is a joint drive unit that drives a joint part of the robot arm.
  • a robot teaching device Provided is a robot teaching device.
  • the robot teaching apparatus according to any one of the first to eleventh aspects;
  • a reproduction control unit that reproduces the trajectory taught by the teaching device with the robot;
  • a robot apparatus is provided.
  • teaching of the work is performed a plurality of times, and the evaluation information acquired by the bending acquiring unit when the arrival determining unit determines arrival at each teaching is retained.
  • a robot teaching apparatus according to the first or second aspect, further comprising an evaluation holding unit that A playback control unit that plays back the trajectory taught by the teaching device with the robot; The reproduction control unit reproduces teaching data generated when a teaching with a high evaluation value is performed among a plurality of pieces of evaluation information held by the evaluation holding unit.
  • a robot apparatus is provided.
  • the work is taught a plurality of times, and the evaluation information acquired by the bending acquisition unit when the arrival determination unit determines arrival at each teaching is retained.
  • a robot teaching apparatus according to the first or second aspect, further comprising an evaluation holding unit that A playback control unit that plays back the trajectory taught by the teaching device with the robot;
  • the reproduction control unit reproduces teaching data generated by averaging a predetermined number of teaching data from the one having a higher evaluation value among the plurality of evaluation information held by the evaluation holding unit,
  • a robot apparatus is provided.
  • a flexible object holding part capable of holding a flexible object, and a drive for performing a fitting operation between the flexible object and the object by moving the flexible object holding part in a predetermined direction.
  • a robot teaching device control method for teaching the work and generating teaching data.
  • the arrival determination unit determines the arrival of the tip of the flexible object at the object
  • the bending acquisition unit obtains information on the evaluation of the bending state of the flexible object when the arrival determination unit determines the arrival of the tip of the flexible object at the object, Based on the information of the evaluation acquired by the bend acquisition unit, the notification unit performs a predetermined notification related to teaching.
  • a method for controlling a robot teaching apparatus is provided.
  • a flexible object holding part capable of holding a flexible object, and a drive for performing a fitting operation between the flexible object and the object by moving the flexible object holding part in a predetermined direction.
  • a robot teaching device control method for teaching the work and generating teaching data.
  • the arrival determination unit determines the arrival of the tip of the flexible object at the object
  • the bending acquisition unit obtains information on the evaluation of the bending state of the flexible object when the arrival determination unit determines the arrival of the tip of the flexible object at the object, Based on the evaluation information acquired by the bend acquisition unit, the selection unit selects the high evaluation teaching from a plurality of teaching data.
  • a method for controlling a robot teaching apparatus is provided.
  • a flexible object holding part capable of holding a flexible object, and a drive for performing a fitting operation between the flexible object and the object by moving the flexible object holding part in a predetermined direction.
  • a robot teaching device control program that teaches the work and generates teaching data.
  • Computer An arrival determination unit for determining the arrival of the tip of the flexible object to the object;
  • a bending acquisition unit for acquiring information on evaluation of the bending state of the flexible object when the arrival determination unit determines the arrival of the tip of the flexible object to the object;
  • a notification unit for performing notification regarding teaching based on the information of the evaluation acquired by the bending acquisition unit;
  • a control program for a robot teaching apparatus is provided.
  • a flexible object holding part capable of holding a flexible object, and a drive for performing a fitting operation between the flexible object and the object by moving the flexible object holding part in a predetermined direction.
  • a robot teaching device control program that teaches the work and generates teaching data.
  • Computer An arrival determination unit for determining the arrival of the tip of the flexible object to the object;
  • a bending acquisition unit for acquiring information on evaluation of the bending state of the flexible object when the arrival determination unit determines the arrival of the tip of the flexible object to the object;
  • a selection unit for selecting the highly evaluated teaching from a plurality of teaching data based on the evaluation information acquired by the bending acquiring unit;
  • a control program for a robot teaching apparatus is provided.
  • a flexible object holding part capable of holding a flexible object, and a drive for performing a fitting operation between the flexible object and the object by moving the flexible object holding part in a predetermined direction.
  • a robot teaching device that teaches the work and generates teaching data.
  • An arrival determination unit for determining the arrival of the tip of the flexible object to the object;
  • a posture acquisition unit for acquiring the posture of the flexible object holding unit;
  • a bend acquisition unit that acquires an angle between the direction of the posture acquired by the posture acquisition unit and a predetermined direction determined in advance;
  • a notifying unit for notifying about teaching based on the angle formed by the bend acquiring unit;
  • a robot teaching device is provided.
  • a flexible object holding part capable of holding a flexible object, and a drive for performing a fitting operation between the flexible object and the object by moving the flexible object holding part in a predetermined direction.
  • a robot teaching device that teaches the work and generates teaching data.
  • a posture acquisition unit for acquiring the posture of the flexible object holding unit;
  • a bend acquisition unit that acquires an angle between the direction of the posture acquired by the posture acquisition unit and a predetermined direction determined in advance;
  • a selection unit that selects the highly evaluated teaching from among a plurality of teachings based on the angle formed by the bend acquisition unit;
  • a robot teaching apparatus comprising:
  • direct teaching means that the operator moves the robot arm directly by touching it, acquires the movement trajectory of the robot arm at that time, and reproduces the work based on the acquired movement trajectory.
  • This is a teaching method for moving the robot arm. Acquiring the locus is called teaching, and moving the robot arm based on the taught locus is called reproduction.
  • FIG. 1 is a diagram showing a configuration of a robot apparatus 1000 that performs direct teaching.
  • the robot apparatus 1000 uses a robot arm 1010 to form a cylindrical insertion portion (surrounding portion) fixed to an object 1050 held by an object mounting table 1050H fixed to an installation floor 1010H on which the robot arm 1010 is installed.
  • a case is shown in which the operation of inserting the second end 1042 of the flexible object 1040 held by the robot arm 1010 into the insertion port 1051a 1051a is taught and reproduced.
  • the robot arm 1010 moves in the 6-axis direction in the XYZ coordinate space.
  • a hand (fixing unit) 1030 that functions as an example of a flexible object holding unit that holds a flexible object 1040 that is an example of a work object is provided at the end of the hand 1011 of the robot arm 1010 and holds and fixes the object 1040. .
  • the first force sensor 1020 is fixed to the hand 1011 of the robot arm 1010, and acquires the force applied by the operator to the operation unit 1090 described below.
  • the operation unit 1090 is fixed to the first force sensor 1020, and is a part that the operator holds with his hand when teaching using the robot apparatus 1000.
  • the operator holds the operation unit 1090 with his / her hand and applies a force in the direction in which the hand 1011 of the robot arm 1010 is desired to move.
  • the position / orientation acquisition unit 1013 functions as an example of an attitude acquisition unit, and acquires the position and orientation (direction) of the hand 1011 of the robot arm 1010 (the position and orientation of the hand (flexible object holding unit) 1030). For this reason, each joint part acquired by the encoder 912E is transferred from the encoder 912E attached to each joint part of the robot arm 1010 or the encoder 912E attached to the motor 912M as an example of the drive part.
  • the angle information is input.
  • the position and posture of the hand 1011 are determined by the information on the angle of each joint acquired by the position / orientation acquisition unit 1013 by the encoder 912E and the length of each link measured and stored in the built-in storage unit of the encoder 912E.
  • the position and orientation acquisition unit 1013 calculates the position.
  • the information on the force acquired by the first force sensor 1020 is input to the movement position determination unit 1092. That is, the force applied to the operation unit 1090 by the operator is acquired by the first force sensor 1020, and the position to move the hand 1011 is determined based on the force information acquired by the first force sensor 1020. To decide.
  • the direction in which the hand 1011 is moved is determined based on the direction of the force applied by the operator to the operation unit 1090 (the force acquired by the first force sensor 1020). For example, when the operator applies a force to the operation unit 1090 in the + X direction in FIG. 1 (right direction in FIG. 1), the movement position determination unit 1092 determines the movement direction of the hand 1011 in the + X direction.
  • the distance or speed at which the hand 1011 is moved is determined by the movement position determination unit 1092 based on the magnitude of the force applied by the operator. For example, when the magnitude of the force applied to the operation unit 1090 by the operator is X Newton, the movement distance determination unit 1092 determines the movement distance of the hand 1011 to be Xcm, or the movement speed of the hand 1011 is Xcm. / Sec and the movement position determination unit 1092 determine.
  • the direction in which the posture of the hand 1011 is rotated is determined by the movement position determination unit 1092 based on the direction of the moment applied by the operator to the operation unit 1090 (the direction of the force acquired by the first force sensor 1020). For example, when the operator applies a force to rotate the operation unit 1090 with respect to the X-axis direction, the moving position determination unit 1092 determines that the direction is to rotate the hand 1011 with respect to the X direction.
  • the magnitude of the angle or rotational speed for rotating the posture of the hand 1011 is determined based on the magnitude of the moment (the magnitude of the force acquired by the first force sensor 1020) applied by the operator to the operation unit 1090.
  • the part 1092 is determined. For example, when the rotational force applied by the operator to the operation unit 1090 with respect to the X-axis direction is X Newton centimeters, the movement position determination unit 1092 determines the rotation angle at which the hand 1011 moves to X radians. Alternatively, the rotational position velocity at which the hand 1011 moves is determined by the movement position determination unit 1092 to be X radians / sec.
  • the movement position determination unit 1092 stores the position in a trajectory information holding unit 1095 described later.
  • the teaching control unit 1093 receives information from the movement position determination unit 1092 and performs drive control of the motor 912M so as to move the hand 1011 to the position determined by the movement position determination unit 1092.
  • the control of the hand position is performed by driving the rotation shaft of the motor 912M of the joint portion to rotate forward and backward. More specifically, when the teaching control unit 1093 starts teaching, the teaching control unit 1093 controls the driving of each motor 912M, moves the hand 1011 to a predetermined initial position, and then determines the position determined by the moving position determination unit 1092.
  • the drive control of the motor 912M is performed so as to move the hand 1011.
  • Each motor 912M independently rotates each joint part of the robot arm 1010 independently.
  • a motor 912 ⁇ / b> M is attached to each joint portion of the robot arm 1010.
  • the encoder 912E is connected to the motor 912M of each joint part of the robot arm 1010A, and acquires the angle of each joint part.
  • the robot arm 1010A is a multi-joint robot arm having a plurality of multi-joint mechanisms, and two links 702 and 703 are driven to rotate around a plurality of joint axes.
  • the robot arm 1010A is a multi-link manipulator with 6 degrees of freedom.
  • the robot arm 1010A is connected and supported by a forearm link 702 having a wrist 701 at the hand 1011, an upper arm link 703 whose distal end is rotatably connected to the proximal end of the forearm link 702, and a proximal end of the upper arm link 703 that is rotatable.
  • the base 704 is fixed at a fixed position, but may be movably connected to a rail (not shown).
  • the wrist portion 701 has three mutually orthogonal rotation axes of the fourth joint portion, the fifth joint portion, and the sixth joint portion, and the relative posture of the hand 1011 with respect to the forearm link 702 (Orientation) can be changed. That is, the fourth joint portion can change the relative posture around the horizontal axis of the hand 1011 with respect to the wrist 701.
  • the fifth joint portion can change the relative posture of the hand 1011 with respect to the wrist portion 701 around the vertical axis perpendicular to the horizontal axis of the fourth joint portion.
  • the sixth joint part can change the relative posture of the hand 1011 with respect to the wrist part 701 around the horizontal axis orthogonal to the horizontal axis of the fourth joint part and the vertical axis of the fifth joint part.
  • the other end of the forearm link 702 is rotatable around the third joint with respect to the tip of the upper arm link 703, that is, around a horizontal axis parallel to the horizontal axis of the fourth joint.
  • the other end of the upper arm link 703 is rotatable around the second joint with respect to the base 704, that is, around a horizontal axis parallel to the horizontal axis of the fourth joint.
  • the upper movable part of the base part 704 is rotatable around the first joint part with respect to the lower fixed part of the base part 704, that is, around a vertical axis parallel to the vertical axis of the fifth joint part.
  • the robot arm 1010A constitutes a multi-link manipulator having 6 degrees of freedom so that it can rotate around a total of six axes.
  • a rotation drive device such as a motor 912M for driving the joint portion and a rotation phase angle (that is, a joint angle) of the rotation shaft of the motor 912M are detected.
  • Encoder 912E (actually disposed inside each joint portion of the robot arm 1010A).
  • the motor 912M (actually disposed inside each joint portion of the robot arm 1010A) supports a pair of members (for example, a rotation side member and the rotation side member) constituting each joint portion.
  • Drive control of the teaching control unit 1093 or the reproduction control unit 1094 each of which includes a function of a motor driver, which is provided in one of the support side members).
  • the rotation shaft of the motor 912M provided in one member of each joint portion is connected to the other member of each joint portion and rotates the rotation shaft forward and backward, whereby the other member is moved with respect to the one member. Can be rotated around each axis.
  • the position information acquisition unit 1013 acquires the position and orientation of the hand 1011 of the robot arm 1010A. Specifically, the position information acquisition unit 1013 is based on the joint angle of each joint acquired by the encoder 912E and the length of each joint (information stored in the internal storage unit of the position information acquisition unit 1013 in advance) 1011 Get the position and posture.
  • the mode input unit 1091 receives an input of a processing mode performed by the operator using the robot arm 1010. There are three mode options that can be selected by the mode input unit 1091: “play”, “teach”, and “do not execute”.
  • the mode input unit 1091 can be configured with, for example, a switch, a button, a keyboard or a mouse of a personal computer, or the like.
  • the operator uses the mode input unit 1091 to select one of the modes (options).
  • the mode input unit 1091 outputs the selected mode (option) information to the management unit 1012 and the mode holding unit 1096.
  • the mode input unit 1091 outputs “1” when the mode “instruct” is input by the mode input unit 1091, and the mode “playback” is input.
  • the mode input unit 1091 outputs “2”, and when the mode “not executed” is input, the mode input unit 1091 outputs “0”.
  • a mode “not executed” is input to the mode input unit 1091 to stop the teaching.
  • the mode holding unit 1096 holds (stores or stores) the mode information input to the mode input unit 1091 and is a storage device such as a ROM, RAM, HDD, register, or cache of a personal computer, for example.
  • the part or apparatus except a flexible-material holding
  • the mode input unit 1091 is a mechanical button switch
  • the mode input unit 1091 also serves as the mode holding unit 1096. For example, by holding mechanically two mode information, a state in which a mechanical button switch is mechanically pushed by an operator's pushing operation and a state in which the mechanical button switch is pushed again and returned to its original position, respectively.
  • the function of the holding part can be exhibited.
  • the mode holding unit 1096 holds “1”, and when the mode “play” is input, The mode holding unit 1096 holds “2”, and when the mode “not executed” is input, the mode holding unit 1096 holds “0”.
  • the mode holding unit 1096 holds “0” in the initial state.
  • the trajectory information holding unit 1095 is a storage device that holds the trajectory data acquired from the movement position determining unit 1092.
  • the trajectory data is the position and posture of the hand 1011 at a plurality of times, and is a set of information on the position and posture of the hand 1011.
  • One position and orientation is 6-dimensional data of X coordinate, Y coordinate, Z coordinate, roll, pitch, and yaw.
  • the trajectory information holding unit 1095 holds a plurality of trajectory data corresponding to each pinching.
  • FIG. 2 shows trajectory data held by the trajectory information holding unit 1095.
  • the n-th stage is teaching data in the n-th teaching (where n is an integer greater than 1).
  • (xn_0, yn_0, zn_0, rxn_0, ryn_0, rzn_0) in the nth teaching data is the position of the hand 1011 at the initial position of teaching start, and (xn_t, yn_t, zn_t, rxn_t, ryn_t, rzn_t) are teaching The position of the hand 1011 at the t-th time from the start is shown.
  • xn_t, yn_t, zn_t, rxn_t, ryn_t, and rzn_t respectively indicate an x coordinate, ay coordinate, a z coordinate, a low angle, a pitch angle, and a yaw angle.
  • xn_t, yn_t, zn_t, rxn_t, ryn_t, and rzn_t respectively indicate an x coordinate, ay coordinate, a z coordinate, a low angle, a pitch angle, and a yaw angle.
  • the reproduction control unit 1094 performs drive control of the motor 912M so as to reproduce the taught work based on information from the management unit 1012 described later.
  • the reproduction control unit 1094 performs drive control of the motor 912M so as to move the hand 1011 to the position and posture held by the trajectory information holding unit 1095.
  • the control of the hand position is performed by rotating the rotating shaft of the motor 912M of each joint part forward and backward.
  • the robot arm 1010 is controlled to stop moving.
  • the trajectory information holding unit 1095 has a plurality of trajectory information, the last trajectory information is executed.
  • the management unit 1012 manages the execution of the operation of the robot arm 1010 based on the information of the mode input unit 1091, and controls the teaching control unit 1093 or the reproduction control unit 1094 based on the mode switching output by the mode input unit 1091. Execute by switching.
  • the management unit 1012 starts control of the teaching control unit 1093.
  • the management unit 1012 starts control of the playback control unit 1094.
  • the management unit 1012 performs control to stop the movement of the robot arm 1010.
  • the management unit 1012 When the management unit 1012 is notified of “1” indicating the mode of “perform teaching”, the management unit 1012 moves the hand 1011 to the initial position of the teaching held therein as an initial operation, and then performs the operation of the teaching control unit 1093. Take control.
  • 3A to 3D show an example of a cross section when the second end 1042 of the flexible object 1040 approaches the insertion port 1051 during teaching.
  • the flexible object 1040 and the peripheral portion 1051a of the insertion port 1051 are not in contact with each other.
  • the first end 1041 on the left side of the flexible object 1040 is fixed to the fixing portion 1030.
  • the first end 1041 of the flexible object 1040 is fixed by the fixing portion 1030, and the second end 1042 of the flexible object 1040 is not fixed.
  • This stage is referred to as a non-contact stage.
  • the operator operates the robot arm 1010 to move the flexible object 1040, and a part (second end 1042) of the flexible object 1040 comes into contact with the peripheral part 1051a of the insertion port 1051 as shown in FIG. 3B.
  • a part of the second end 1042 of the flexible object 1040 is in contact with the peripheral portion 1051a of the insertion port 1051, and the orientation of the flexible object 1040 with respect to the insertion port 1051 cannot be adjusted.
  • This stage is referred to as the contact stage.
  • the second end 1042 of the flexible object 1040 moved by the operator is in firm contact with the peripheral portion 1051a of the insertion port 1051, as shown in FIG. 3C, and the second end 1042 can be inserted into the insertion port 1051. become.
  • both ends 1041 and 1042 of the flexible object 1040 are constrained, and in many cases, the flexible object 1040 is deformed and bent.
  • the flexible object 1040 shows a state of bending downward.
  • this stage is referred to as a reaching stage.
  • this stage is called a completion stage.
  • FIG. 23A to FIG. 23D show cross sections of each stage of FIG. 3A to FIG. 3D as seen from another direction (direction seen from the top to the bottom of the Y axis in FIG. 1).
  • FIG. 23B in the non-contact stage (A) and the contact stage (B), the direction of the flexible object 1040 (rotation in the XZ plane) and the direction of the insertion port 1051 (rotation in the XZ plane) do not match. .
  • FIGS. 23C to 23D in the arrival stage (C) and the completion stage (D), the direction of the flexible object 1040 (rotation in the XZ plane) coincides with the direction of the insertion port 1051 (rotation in the XZ plane).
  • the contact state in FIG. 3B is a stage where a part of the second end 1042 of the flexible object 1040 is in contact with the insertion port 1051
  • the reached state in FIG. 3C is the second end of the flexible object 1040. This is a stage in which the entire 1042 is in contact with the insertion port 1051.
  • the flexible object 1051 was bent every time at the completion stage.
  • the flexible object 1040 has shown the state bent downward convexly.
  • the flexible material 1040 is bent further than the stage of FIG. 3C.
  • the flexible object 1040 is not inserted into the insertion port 1051 in most cases. That is, the reproduction of the insertion work fails.
  • 4A to 4D show an example of the positional relationship between the flexible object 1040 and the insertion port 1051 when the reproduction of the insertion fails.
  • the flexible object 1040 moves as in the case of FIGS. 3A to 3B.
  • the flexible object 1040 does not enter the gap of the insertion port 1051 well and bends at the entrance of the insertion port 1051.
  • the flexible object 1040 bends in the opposite direction to that in FIG. 3C or 3D, and becomes convex upward.
  • the second end 1042 of the flexible object 1040 is inserted into the insertion port 1051 every time reproduction is performed.
  • the contact position is slightly shifted, and the bending of the flexible object 1040 is also slightly shifted each time reproduction is performed. Therefore, it is difficult to reproduce the insertion work.
  • the reason why the bending of the flexible object is different is that the flexible object 1040 is attached to the fixing portion 1030 in a different bending manner in the state of FIG. 3A or 4A, or the flexible object 1040 in the state of FIG. 4B or 4B. This is because the second end 1042 is bent and contacts the insertion port 1051 with a different bending method each time.
  • the cause of the insertion failure at the time of reproduction is considered to be based on the distribution of how the flexible object 1040 is bent. Also, during teaching, the operator inserts with a delicate operation so that it is suitable for the way of bending at the time of teaching, but at the time of playback, the bending is different from that at the time of teaching, and according to the way of bending at the time of playback This means that playback is not performed with subtle operations.
  • FIG. 5A to 5B are diagrams showing the relationship between the orientation of the first end 1041 of the flexible object 1040 and the bending degree of the flexible object 1040.
  • FIG. The soft object 1040 in FIG. 5B is in a state bent more than the soft object 1040 in FIG. 5A.
  • the success rate of insertion was higher when the teaching as shown in FIG.
  • FIG. 6 is a table showing the evaluation of the degree of bending of the flexible object during teaching and the success probability of insertion when reproduction is performed 20 times using each teaching data.
  • the evaluation method of the bending state will be described later.
  • the degree of bending when succeeding and the degree of bending when failing the degree of bending is up to 11.5. This is because the operator could not bend and insert the flexible object 1040 any more.
  • FIG. 4E is a diagram showing a state of the flexible object 1040 that is assumed when the operator bends the flexible object 1040 beyond the maximum bending degree.
  • the flexible object 1040 moves to the dotted line position 1040d. That is, the tip of the flexible object 1040 is ejected from the insertion port 1051, and the flexible object 1040 cannot be inserted into the insertion port 1051.
  • the operator controls the flexible object 1040 well, such a teaching failure does not occur. That is, there has been no teaching that the flexible object 1040 is bent beyond the maximum bending degree. Moreover, such a failure did not occur during reproduction.
  • the teaching taking the posture of FIG. 5B is more effective than the teaching taking the posture of FIG. 5A.
  • most teachings take the posture shown in FIG. 5A, and few teachings take the posture shown in FIG. 5B.
  • the reason is that in FIG. 5A, the operator only has to press the flexible object 1040 in the traveling direction, while in FIG. 5B, the operator applies a rotational force for bending the flexible object 1040 to the flexible object 1040.
  • the operator must press the flexible object 1040 in the right direction in FIG. 5B. This is because the direction in which the operator applies force is different from the direction in which the operator moves the flexible object 1040, and the work is difficult to perform.
  • the teaching device of the robot apparatus includes an evaluation device that evaluates whether a trajectory obtained by teaching is a trajectory in which an insertion operation is easy to succeed or a trajectory that is difficult to succeed. That is, the teaching apparatus gives a higher evaluation to the teaching taking the posture of FIG. 5B than the teaching taking the posture of FIG. 5A.
  • FIG. 7 shows a robot apparatus 1000A according to the first embodiment of the present invention. Similar to the robot apparatus 1000 in the direct teaching configuration, the robot apparatus 1000A uses a robot arm 1010A as an example of a robot including a joint driving unit or a driving unit.
  • a flexible object 1040 which is an example of a work object, is held on the hand (fixed part) 1030 of the robot arm 1010A, and the fixed part 1030 is moved in a predetermined direction, whereby the flexible object 1040 is installed on the robot arm 1010. Tightening operation is taught or taught and reproduced by inserting into the insertion port 1051 fixed to the object 1050 held on the object mounting base 1050H fixed to the installed floor 1010H.
  • FIG. 7 the same elements as those shown in FIG.
  • the second force sensor 1021 the arrival determination unit 2010, the notification unit 2060, the notification generation unit 2065, the evaluation holding unit 2050, the selection unit 2070, the bending reference holding unit 2020, and the bending acquisition unit. 2030.
  • the slightly different elements are the management unit 1012A and the reproduction control unit 1094A.
  • the robot apparatus 1000A is roughly composed of a robot arm 1010A, a first force sensor 1020, a second force sensor 1021, a teaching apparatus 1000AT, and a reproduction control unit 1094A.
  • the teaching apparatus 1000AT includes a position / orientation acquisition unit 1013, a moving position determination unit 1092, a teaching control unit 1093, a mode input unit 1091, a mode holding unit 1096, a trajectory information holding unit 1095, and a management unit 1012.
  • the determination unit 2010, the notification unit 2060, the notification generation unit 2065, the evaluation holding unit 2050, the selection unit 2070, the bending reference holding unit 2020, and the bending acquisition unit 2030 are configured.
  • FIG. 7 the elements of FIG. 7 different from FIG. 1 will be mainly described.
  • the second force sensor 1021 is a force sensor installed between the hand 1011 and the fixing unit 1030, and acquires the force applied to the fixing unit 1030.
  • the second force sensor 1021 acquires the force when the second end 1042 of the flexible object 1040 contacts the peripheral portion 1051a of the insertion port 1051.
  • the acquired information is output from the second force sensor 1021 to the arrival determination unit 2010.
  • the arrival determination unit 2010 determines whether the second end 1042 of the flexible object 1040 has reached the entrance of the insertion port 1051 based on information from the second force sensor 1021. Specifically, the arrival determination unit 2010 determines whether the state of FIG. 3B or 3C has been reached based on information from the second force sensor 1021. In the first embodiment, when the force acquired by the second force sensor 1021 is greater than a predetermined force, the arrival determination unit 2010 determines that the second end 1042 of the flexible object 1040 has reached the insertion port 1051. To do. Conversely, when the force acquired by the second force sensor 1021 is equal to or less than a predetermined force, the arrival determination unit 2010 determines that the second end 1042 of the flexible object 1040 has not reached the insertion port 1051. Information on the determination result determined by the arrival determination unit 2010 is output to the management unit 1012A.
  • the bending reference holding unit 2020 stores (holds) information serving as a reference when determining the bending state of the flexible object 1040, for example, information such as the hole direction 2170 of the insertion port 1051 in advance.
  • the bend acquisition unit 2030 acquires a bend state indicating how much the flexible object 1040 is bent.
  • the bending state of the flexible object 1040 is determined by the bending acquisition unit 2030 based on the reference information held by the bending reference holding unit 2020.
  • the arrival determination unit 2010 determines arrival
  • the bending state acquired by the bending acquisition unit 2030 is set as an evaluation of the bending state when the teaching is performed (for details, the management unit 1012). To explain.)
  • the management unit 1012 the management unit 10112.
  • the angle formed between the tip direction 2150 of the flexible object 1040 on the first end 1041 side and the tip direction 2160 of the flexible object 1040 on the second end 1042 side is 180 degrees or ⁇ 180 degrees ( ⁇ radians or ⁇ In the case of ⁇ radians), the flexible object 1040 is in a straight state, and the bending acquisition unit 2030 determines that the flexible object 1040 is in a bent state as the angle is closer to 0 degrees (0 radians).
  • the bending acquisition unit 2030 evaluates the bending state of the flexible object 1020 based on the angle between the direction of the tip direction 2150 on the first end 1041 side and the direction of the tip direction 2160 on the second end 1042 side. Can do.
  • the direction of the tip direction 2160 on the second end 1042 side can be acquired by a device such as a laser range finder or an image processing unit that performs image processing on an image captured by a camera, as an example of the bending acquisition unit 2030.
  • the bend acquisition unit 2030 that does not use these devices will be described.
  • An approximation is made using the hole orientation 2170 of 1051.
  • the second end 1042 of the flexible object 1040 reaches the insertion port 1051, the direction 2160 of the tip on the second end 1042 side and the direction 2170 of the hole of the insertion port 1051 are equal. The approximation is considered reasonable.
  • the bending reference holding unit 2020 in the first embodiment holds in advance information on the hole direction 2170 of the insertion port 1051 (information as an example of a predetermined direction).
  • the hole direction 2170 of the insertion port 1051 is the ⁇ X direction in FIG. 7
  • the hole direction 2170 of the insertion port 1051 is ( ⁇ 1, 0, 0).
  • FIG. 8 is an example of information on the hole direction 2170 of the insertion port 1051 held by the bending reference holding unit 2020, and shows a state in which the above ( ⁇ 1, 0, 0) is held.
  • the object 1050 is held and fixed in the work space by, for example, the object mounting table 1050H, and the hole direction 2170 of the insertion port 1051 does not change during the work. .
  • the hole orientation 2170 of the insertion port 1051 may be calculated by the bending acquisition unit 2030 and held in the bending reference holding unit 2020. For example, when the object 1050 is rotated 180 degrees in the Z-axis direction from the state of FIG. 7, the hole direction 2170 ( ⁇ 1, 0, 0) of the insertion port 1051 in FIG. 7 is rotated 180 degrees in the Z-axis direction. The obtained (1, 0, 0) is defined as the direction of the hole after the object 1050 moves.
  • the hole orientation 2170 of the insertion port 1051 is determined by the shape of the insertion port 1051 and the orientation of the insertion port 1051.
  • the shape and orientation of the insertion port 1051 do not change. That is, it is assumed that the hole direction 2170 of the insertion port 1051 itself does not change, and the operator inputs in advance to the bending reference holding unit 2020 using the input device 900 such as a keyboard, a mouse, or a touch panel.
  • the direction 2170 of the hole of the insertion port 1051 is acquired by the bend acquisition unit 2030 by taking an image with a camera as an example of an image taking apparatus and performing image processing of the taken image data, and the bend reference holding unit 2020. You may make it hold
  • the bending acquisition unit 2030 acquires the degree of bending indicating how much the flexible object 1040 is bent. That is, the bending state of the flexible object 1040 in the first embodiment is, as already described, the bending acquisition unit 2030 according to the angle formed by the tip direction 2150 on the first end 1041 side and the hole direction 2170 of the insertion port 1051. Evaluate with. The direction of the hole of the insertion port 1051 is acquired by the bending acquisition unit 2030 from the bending reference holding unit 2020 described above.
  • the bending acquisition unit 2030 can detect the orientation of the first end 1041 by detecting the orientation of the hand 1011.
  • the flexible object 1040 is attached to the hand 1011 such that the direction of the hand 1011 and the direction of the first end 1041 are the same.
  • the direction of the fixed portion 1030 in FIG. 9 is a vector ( ⁇ 1, 1, 0)
  • the direction of the first end 1041 is also ( ⁇ 1, 1, 0).
  • the direction of the first end 1041 matches the direction of the hand 1011.
  • the orientation of the hand 1011 is calculated by the position / orientation acquisition unit 1013 and input to the bending acquisition unit 2030.
  • the tip direction 2150 on the first end 1041 side in FIG. 9 is ( ⁇ x , ⁇ Y , ⁇ Z ), the hole direction 2170 of the insertion port 1051 in FIG. 9 is (T X , T Y , T Z ),
  • the angle formed between the direction 2150 of the tip on the first end 1041 side and the direction 2170 of the hole of the insertion port 1051 is ⁇ , from the inner product formula,
  • the angle ⁇ formed by the tip direction 2150 on the first end 1041 side and the hole direction 2170 of the insertion port 1051 is
  • arccos represents an inverse function of the cosine function.
  • the flexible object 1040 is a straight state, and the closer to 0 degrees (0 radians), the soft object 1040 is determined by the bent acquisition unit 2030 as a bent state.
  • the definition range of the angle ⁇ is “ ⁇ ⁇ ⁇ ⁇ ⁇ ”, and the value range of the bending evaluation F ( ⁇ ) is “0 ⁇ F ( ⁇ ) ⁇ 180”.
  • the closer the flexible object 1040 is to a straight line the closer the angle ⁇ is to ⁇ radians (or ⁇ radians), and the evaluation F ( ⁇ ) of the degree of bending is close to 0.
  • the angle ⁇ becomes closer to 0 radians
  • the bending evaluation F ( ⁇ ) becomes closer to 180.
  • the evaluation F ( ⁇ ) of the bending state is a vector in the direction opposite to the tip direction 2150 on the first end 1041 side of the flexible object 1040 (a vector obtained by multiplying the tip direction 2150 on the first end 1041 side by ⁇ 1). , The absolute value of the angle formed by the tip direction 2160 of the flexible object 1040 on the second end 1042 side.
  • the bending acquisition unit 2030 may set the evaluation of the bending state to a low value.
  • the information on the evaluation of the degree of bending acquired by the bending acquisition unit 2030 is output to the management unit 1012A.
  • the evaluation holding unit 2050 acquires and holds the evaluation of the degree of bending acquired by the bending acquisition unit 2030 when the arrival determination unit 2010 determines arrival, from the management unit 1012A described later. When teaching is performed a plurality of times, the evaluation holding unit 2050 holds the evaluation of the bending state for each time.
  • FIG. 10 shows a data structure held by the evaluation holding unit 2050. The nth stage shows the evaluation in the nth teaching. The evaluation holding unit 2050 adds the bending evaluation value acquired from the management unit 1012A to the end of the data structure.
  • the notification unit 2060 notifies the operator of the evaluation information held by the evaluation holding unit 2050 via the notification generation unit 2065.
  • the notification unit 2060 is a display that displays the evaluation information held by the evaluation holding unit 2050 via the notification generation unit 2065.
  • the notification generation unit 2065 generates the notification content that the notification unit 2060 notifies the operator based on the evaluation information held by the evaluation holding unit 2050.
  • an image to be displayed on a display as an example of the notification unit 2060 is generated.
  • FIG. 11 shows an image generated by the notification generation unit 2065. As shown in FIG. 11, the upper three evaluation values among the evaluation values held by the evaluation holding unit 2050 are shown in the upper part of the display screen 2060s. The most recently acquired evaluation value is displayed at the bottom of the screen 2060s.
  • step S8010 the notification generation unit 2065 starts processing.
  • the notification generation unit 2065 includes information D1 indicating how many times the teaching with the highest evaluation is performed among the evaluation information held by the evaluation holding unit 2050, and the evaluation (first place). Evaluation) value information V1 is acquired.
  • step S8030 the notification generation unit 2065 obtains the information D2 indicating the second highest evaluation among the evaluation information held by the evaluation holding unit 2050, and the value V2 of the evaluation (second place evaluation). get.
  • step S8040 the notification generation unit 2065 obtains the information D3 indicating the number of times of the third highest evaluation among the evaluation information held by the evaluation holding unit 2050, and the value V3 of the evaluation (third evaluation). get.
  • step S8050 the notification generation unit 2065 displays the acquired information from D1 to D3 and the information from V1 to V3, and displays D1 to D3 in the second row of the table and V1 to V3 as shown in FIG.
  • the top table is generated by applying to the third row. It should be noted that the first stage of the table, “Evaluation Best 3 of Bending” outside the frame is always a fixed character string.
  • step S8060 the notification generation unit 2065 acquires information on the last evaluation (final evaluation) V_LAST held by the evaluation holding unit 2050.
  • step S8070 the notification generation unit 2065 generates a table with V_LAST as a character string to be displayed at the bottom of the table as illustrated in FIG.
  • V_LAST a character string to be displayed at the bottom of the table as illustrated in FIG.
  • the first row at the bottom of the table “current” outside the frame, is always a fixed character string.
  • V_LAST and the value of V3 are compared, and when V_LAST is smaller, a character string “Please bend more.” May be displayed. That is, when the current evaluation is worse than the evaluation of the top three, the operator may be notified that the flexible object is bent.
  • V_LAST comparison between V_LAST and V3 is merely an example, and a configuration in which V_LAST is compared with an evaluation (V1,%) Other than V3 or a specific evaluation value is also possible. Further, the average value of V1 to V3 may be compared with V_LAST. Further, the configuration may be such that V_LAST of V_LAST is compared to notify the order of V_LAST.
  • step S8080 the notification generation unit 2065 ends the process.
  • the notification generation unit 2065 performs evaluation processing, and generates the notification unit display evaluation value shown in FIG.
  • the selection unit 2070 selects and decides which of the teachings is to be reproduced when teaching is performed a plurality of times.
  • the determination of the trajectory to be reproduced is performed by the selection unit 2070 based on the evaluation information acquired by the bending acquisition unit 2030 and held by the evaluation holding unit 2050 via the management unit 1012A.
  • the trajectory data having a large bend when the second end 1042 of the flexible object 1040 reaches the entrance of the insertion port 1051 is selected by the selection unit 2070. That is, of the plurality of pieces of evaluation information held by the evaluation holding unit 2050, the selection unit 2070 selects what number teaching is the highest evaluation.
  • the information selected by the selection unit 2070 is output to the management unit 1012A and used during reproduction.
  • the reproduction control unit 1094A performs control when reproducing the taught work.
  • the reproduction control unit 1094A controls the movement of the hand 1011 by driving the motor 912M of the joint unit to the position and posture held by the trajectory information holding unit 1095, respectively.
  • the reproduction control unit 1094A performs control to stop driving the robot arm 1010A.
  • the reproduction control unit 1094A executes the trajectory selected by the selection unit 2070.
  • the management unit 1012A manages the overall operation of the robot arm 1010A.
  • the management unit 1012A controls the operation of the robot arm 1010A by switching between the control of the teaching control unit 1093 and the control of the reproduction control unit 1094A.
  • the management unit 1012A holds the evaluation of the bending state acquired by the bending acquisition unit 2030 at the time when the arrival determination unit 2010 determines arrival, in the evaluation holding unit 2050 as the evaluation of the bending state with respect to the entire teaching, and manages the evaluation.
  • 1012A gives the notification generation unit 2065 an instruction to execute notification generation.
  • step S9010 the management unit 1012A starts processing.
  • step S9020 the management unit 1012A acquires a notification from the mode input unit 1091. That is, of the three processing modes performed by the operator with the robot arm 1010A, the management unit 1012A determines which of “replay”, “teach”, and “not execute” is input. Obtained from 1091.
  • step S9030 the management unit 1012A branches based on the acquired notification. That is, if the acquired notification is “0” indicating “do not execute”, the process branches to step S9020; otherwise, the process branches to step S9040.
  • step S9040 the management unit 1012A branches based on the acquired notification. If the input acquired by the mode input unit 1091 is “1” indicating “perform teaching”, the process branches to step S9045. If the input is “2” indicating “perform”, the process branches to step S9130.
  • step S9045 the teaching control unit 1093 performs drive control of each motor 912M and moves the hand 1011 to a predetermined initial position.
  • step S9047 the movement position determination unit 1092 determines a position to move the hand 1011 based on the force acquired by the first force sensor 1020, that is, the force applied by the operator to the operation unit 1090.
  • step S9050 based on switching to teaching control by the management unit 1012A, the teaching control unit 1093 performs drive control of each motor 912M, and moves from the initial position to the moving position determined by the moving position determining unit 1092. Control to move the hand 1011 is performed (see FIG. 14A).
  • step S9060 the arrival determination unit 2010 determines whether the second end 1042 of the flexible object 1040 has reached the insertion port 1051. If arrival is determined by the arrival determination unit 2010 (see FIG. 14B), the process branches to step S9070. If arrival is not determined by the arrival determination unit 2010, the process branches to step S9120. Even when the arrival determination has already been performed after the teaching is started, the process branches to step S9120.
  • step S9070 after the arrival determination unit 2010 determines arrival, the bending acquisition unit 2030 acquires the evaluation of the bending state of the flexible object 1040.
  • the bending acquisition unit 2030 acquires information on the evaluation of the bending state of the flexible object 1040 based on the information of the position and orientation acquisition unit 1013 and the bending reference holding unit 2020, and the bending state of the acquired flexible object 1040.
  • the evaluation information is output to the management unit 1012A.
  • step S9080 the management unit 1012A stores the evaluation of the degree of bending acquired by the bending acquisition unit 2030 in step S9070 in the evaluation holding unit 2050.
  • step S9090 the notification generation unit 2065 generates a display screen for notifying the operator of the evaluation information and the like by the notification unit 2060. That is, the process of FIG. 12 is performed.
  • step S9100 the notification unit 2060 displays the display screen generated by the notification generation unit 2065 on the display.
  • step S9120 branching is performed based on whether or not a new notification is received from the mode input unit 1091 to the management unit 1012A. That is, when there is no new output from the mode input unit 1091 to the management unit 1012A (when no new input is made to the mode input unit 1091), the process branches to step S9047 and the teaching is continued. If there is a new output from the mode input unit 1091 to the management unit 1012A, the process branches to step S9020, and processing according to the input is performed.
  • step S9130 the selection unit 2070 selects trajectory data having a high evaluation from the teaching data based on the evaluation information held by the evaluation holding unit 2050, and the selected information is sent to the management unit 1012A. Is output.
  • step S9140 based on the switching to the reproduction control by the management unit 1012A, the reproduction control unit 1094A reproduces the trajectory data selected in step S9130. After the reproduction ends, the process returns to step S9020.
  • the specific reproduction at this time is performed as follows by controlling the motor 912M of each joint under the control of the reproduction control unit 1094A.
  • FIG. 14A the first end 1041 on the left side of the flexible object 1040 is fixed to the fixing portion 1030 of the robot arm 1010A.
  • the second end 1042 of the flexible object 1040 is not fixed.
  • the second end 1042 of the flexible object 1040 approaches the insertion port 1051 by the rightward movement of the fixed portion 1030 of the robot arm 1010A.
  • the flexible object 1040 and the peripheral portion 1051a of the insertion port 1051 are , Not in contact. This stage is a non-contact stage.
  • the fixing portion 1030 of the robot arm 1010A further moves to the right, and the second end 1042 of the flexible object 1040 further approaches the insertion port 1051, and a part of the flexible object 1040 (first The two ends 1042) are in contact with the peripheral portion 1051a of the insertion port 1051.
  • a part of the second end 1042 of the flexible object 1040 is in contact with the peripheral portion 1051a of the insertion port 1051, and the orientation of the flexible object 1040 with respect to the insertion port 1051 cannot be adjusted.
  • This stage is a contact stage.
  • the fixed portion 1030 of the robot arm 1010A moves clockwise around the center of the flexible object 1040 while moving slightly to the right.
  • the second end 1042 of the flexible object 1040 comes into firm contact with the peripheral portion 1051a of the insertion port 1051, and the second end 1042 can be inserted into the insertion port 1051.
  • both ends 1041 and 1042 of the flexible object 1040 are constrained, and the flexible object 1040 is deformed and bent so as to be bent downward. This stage is the reaching stage.
  • the fixed portion 1030 of the robot arm 1010A moves slightly to the right while maintaining the rotation angle (inclination angle with respect to the insertion port 1051) at the arrival stage, and the second end of the flexible object 1040 1042 is inserted into the insertion port 1051 all the way.
  • This stage is a completion stage.
  • the flexible object 1040 is further bent at the stage of FIG. 14D than at the stage of FIG. 14C.
  • the reproduction control unit 1094A reproduces the teaching data generated by the teaching apparatus 1000AT based on the evaluation information acquired by the bending acquisition unit 2030, the insertion operation of the flexible object 1040, which has been conventionally difficult, is performed. Work can be performed with high accuracy.
  • the bending acquisition unit 2030 inserts the second end 1042 of the flexible object 1040 into the insertion port 1051 according to the teaching in the robot apparatus 1000A.
  • the bending degree of the flexible object 1040 at the time is evaluated. This evaluation can be used as a measure of the success rate when the taught instruction is reproduced.
  • the operator can know the evaluation of the teaching performed by the notification unit 2060. Based on the teaching evaluation obtained by the notification unit 2060, the operator can determine whether to continue teaching or end teaching. For example, if the evaluation does not improve after the operator performs teaching (for example, about 5 times), the operator determines that there is no effect even if the teaching is repeated further, and the operator teaches Can be stopped.
  • reference information from the notification unit 2060 can be used as a reference to determine whether or not to change the teaching method.
  • reference information from the notification unit 2060 the following information can be exemplified. For example, it is assumed that the evaluation of how many times the operator performs teaching cannot be improved, the teaching is stopped, and playback is performed, but the insertion fails due to insufficient bending. In such a case, by notifying the operator of information such as “Let's change the grip of the operation unit” from the notification unit 2060, the operator changes the grip of the operation unit 1090 and teaches again. And try to get a better rating.
  • the operator can see the higher evaluation among the evaluation information held by the bend acquisition unit 2030 by the notification unit 2060.
  • the operator can be used as a reference for the operator to know whether or not the evaluation has converged. For example, if the evaluation has not converged, the operator knows that a better evaluation may be obtained if the teaching is repeated. On the other hand, when the evaluation has converged, the operator knows that the possibility of high evaluation teaching is low even if the same teaching is repeated.
  • the selection unit 2070 determines whether or not the trajectory data having a high evaluation among the plurality of trajectory data held by the trajectory information holding unit 1095 is used for reproduction. Therefore, as shown in FIG. 1 and the like, it is possible to perform a reproduction operation with a higher probability of success in inserting the flexible object 1040 than in the case of the “direct teaching configuration”.
  • the clear definition of the orientation of the flexible object 1040 at a certain point of the flexible object 1040 has not been described.
  • the direction is the normal direction of the line
  • the rectangle is rectangular. Is the direction of the tangent at the center line along the longitudinal direction of the rectangle.
  • the normal direction of the surface may be used as the direction of the flexible object 1040 without using the tangential direction of the flexible object 1040.
  • the bending reference holding unit 2020 holds information on the direction of the normal direction with respect to the hole instead of holding the information on the direction of the hole. Also, instead of equation (3)
  • FIG. 15 shows a state where the second end 1042 of the flexible object 1040 is inserted into the insertion port 1051 and the flexible object 1040 is not bent. The operator may make the flexible object 1040 not bent in this way, and register the posture of the first end 1041 of the flexible object 1040 at this time in the bent reference holding unit 2020. At this time, instead of equation (3)
  • the angle ⁇ is an angle formed by “the direction of the first end when the flexible object is not bent” and “the direction of the first end at that time acquired from the position and orientation acquisition unit 1013”.
  • of the angle ⁇ the closer the direction of the first end 1041 at that time is to “the direction of the first end when the flexible object is not bent”. Therefore, the flexible object 1040 is not bent.
  • of the angle ⁇ the more the direction of the first end 1041 at that time is away from the “direction of the first end when the flexible object is not bent”. Therefore, the flexible object 1040 is bent.
  • the bending reference holding portion 2020 has a first end 1041 of the flexible object 1040 in a state where the second end 1042 of the flexible object 1040 is inserted into the insertion port 1051 and the flexible object 1040 is not bent. It may be configured to hold the position (X_P, Y_P, Z_P). That is, the bending reference holding unit 2020 holds information on the position of the first end 1041 of the flexible object 1040 in FIG. Then, the distance between “the position of the first end acquired by the bending acquisition unit 2030 from the position and orientation acquisition unit” and “the position held by the bending reference holding unit 2020” may be used as the evaluation of the bending state.
  • the management unit 1012A in the first embodiment is configured to notify the evaluation of the degree of bending acquired by the bending acquisition unit 2030 after it is determined that the arrival determination unit 2010 has reached.
  • the evaluation since the evaluation has already been determined at the time when the notification is given, the operator cannot take an action for improving the evaluation during the operation.
  • the configuration may be such that evaluation and notification are performed before arrival is determined by the arrival determination unit 2010.
  • the evaluation value obtained at that time is a lower (bad) value than the predetermined rank in the evaluation held by the evaluation holding unit 2050, “please bend the flexible material more”, etc.
  • the notification unit 2060 may perform notification such as screen notification or voice notification.
  • the flexible object 1040 is described as a plate-shaped flexible object that is inserted into the insertion port 1051 while being curved around one part of the insertion port of the rigid object and curved at one place.
  • a specific example of such a flexible object 1040 may be a plate-like flexible substrate, a cylindrical tube, or a cable.
  • FIG. 16 is a diagram illustrating a case where the flexible object 1040 is a cylindrical tube 1040h.
  • the flexible object 1040h which is a cylindrical tube tube is the same as that of the first embodiment except that the opening 1040i of the second end 1042 is placed outside the peripheral portion 1051a of the insertion port 1051.
  • examples of the object 1050 include a connector such as a circuit board that is electrically connected to a flexible board, a connection pipe that is connected by inserting a tube or a cable, and the like.
  • the flexible object 1040 when the flexible object 1040 reaches the insertion port 1051 of the object 1050, the flexible object 1040 is instructed to perform the insertion control after performing the operation of bending the flexible object 1040.
  • Information on evaluation of the degree of bending of 1040 is acquired by the bending acquisition unit 2030.
  • the teaching data obtained by teaching is inserted after performing an operation of bending the flexible object 1040 when the flexible object 1040 reaches the insertion port 1050.
  • the notification unit 2060 Based on the evaluation information acquired by the bend acquisition unit 2030, the notification unit 2060 can make a predetermined notification related to the teaching.
  • the selection unit 2070 can select a teaching with a high evaluation from a plurality of teaching data based on the evaluation information acquired by the bending acquisition unit 2030. As a result, it is possible to use a teaching with higher evaluation, and it is possible to acquire teaching data that can accurately perform the work of handling the flexible object 1040, and the insertion work of the flexible object 1040, which has been difficult in the past. Etc. can be performed with high accuracy.
  • the arrival determination unit 2010 regards the time when the force acquired by the second force sensor 1021 is greater than a predetermined force as the time when the reaching stage is reached, and at that time (after that) the bending acquisition unit A configuration for obtaining a bending evaluation from 2030 is shown.
  • the force acquired by the second force sensor 1021 is greater than the predetermined force for a predetermined time ( For example, when 100 milliseconds has elapsed, it is considered that the reaching stage has been reached. That is, after a predetermined time has elapsed from when the force acquired by the second force sensor 1021 is greater than the predetermined force, the bending evaluation unit 2030 acquires the bending evaluation.
  • a time acquisition unit 2040 and a timer unit 2050 are used in addition to the units of the first embodiment (see FIG. 7).
  • the time acquisition unit 2040 acquires time.
  • time acquisition is realized using a counter circuit.
  • the timer unit 2050 is a device that performs notification when the specified time has elapsed after the start of time measurement is specified. Specifically, for example, the timer 2050 receives the notification of the start of measurement from the outside, acquires the time from the time acquisition unit 2040, and then continues to acquire the time (or counter value) from the time acquisition unit 2040. Then, it is determined whether or not the specified time has elapsed, and when it is determined that the specified time has elapsed, a notification of the elapsed time is sent to the outside.
  • the timer unit 2050 is instructed to start measurement, receives a notification that a predetermined time has elapsed from the timer unit 2050, and acquires a bending evaluation from the bending acquisition unit 2030.
  • the evaluation of the bending condition by the bending acquisition unit 2030 shown in the first embodiment is an example of a method for acquiring the evaluation of the bending condition, and may be another method.
  • the bend acquisition unit 2030 is a multi-view camera 1520 as an example of an image capturing apparatus, and a feature point extraction unit (image processing unit) that performs image processing on an image captured by the multi-view camera 1520. 1525 and a bending acquisition unit 2030C, and the evaluation of the bending state is acquired by image processing.
  • FIG. 17 is a diagram showing the tip of the robot arm 1010A and the flexible object 1040 in the first modification.
  • Feature points 1401 and 1402 are feature points provided for acquiring the degree of bending of the flexible object 1040 by image processing.
  • a feature point 1402 is a feature point provided at the second end 1042 of the flexible object 1040, and the feature point 1401 is at a middle position of the flexible object 1040 (a position between the first end 1041 and the second end 1042). It is a feature point provided.
  • These characteristic points 1401 and 1402 are provided by applying oil-based markers of different colors to a normal flexible object 1040 in a circular shape.
  • the feature point 1401 is red and the feature point 1402 is green. Further, it is assumed that there are no red or green objects other than the feature points 1401 and 1402 in the work space.
  • FIG. 18 is a diagram showing a configuration of the robot apparatus 1000C in this configuration. Similar to the robot apparatus 1000A in the first embodiment, the robot apparatus 1000C uses the robot arm 1010C having the same structure as the robot arm 1010A to insert the second end 1042 of the flexible object 1040 into the insertion port 1051 fixed to the object 1050. Teaching, or teaching and replaying the work to be inserted.
  • FIG. 18 the same elements as those shown in FIG. 7 are the same as those described in the structure of the first embodiment. Hereinafter, the elements of FIG. 18 different from FIG. 7 will be described.
  • the multi-view camera 1520 is a color camera that captures the feature points 1401 and 1402. Here, a stereo camera fixed to the work space is assumed.
  • the feature point extraction unit 1525 extracts the feature points 1401 and 1402 from the images captured by the multi-lens camera 1520, and extracts the tip of the flexible object 1040 based on the feature points 1401 and 1402 at the tip of the extracted flexible object 1040. To do. Many methods are known for extracting the feature points 1401 and 1402 by the feature point extraction unit 1525. Here, a simple example is shown. When acquiring the feature point 1401, first, the captured image of the multi-view camera 1520 is binarized, and a red region is extracted by the feature point extraction unit 1525.
  • the feature point extraction unit 1525 determines whether each pixel of the captured image is a red component, and the feature point extraction unit 1525 assigns 1 to a pixel determined to be red, and 0 if it is determined that the pixel is not red. assign. At this time, the feature point extraction unit 1525 determines a pixel whose lightness of the red component is equal to or greater than the threshold and whose lightness of the blue component and the green component is equal to or less than the threshold.
  • the feature point extraction unit 1525 In the image, there are several red areas (areas to which 1 is assigned), and the area of the maximum area is regarded as the area of the feature point 1401 by the feature point extraction unit 1525 and the feature point extraction unit 1525
  • the center of gravity of the region is the position of the feature point 1401 on the image.
  • the feature point 1402 is extracted by the feature point extraction unit 1525 and the position is calculated by the feature point extraction unit 1525.
  • the feature point extraction unit 1525 outputs the positions of the feature points 1401 and 1402 in each stereo image to the position acquisition unit 1530 described later.
  • the feature point extraction unit 1525 determines that the feature point 1402 could not be extracted when the area of the region of the feature point 1402 is smaller than a predetermined threshold. The determination result is output to the bending acquisition unit 2030C via the position acquisition unit 1530.
  • the feature point 1402 enters the insertion port 1051, so that the feature point 1402 is not photographed and cannot be extracted. Further, even when the second end 1042 of the flexible object 1040 contacts the peripheral portion 1051a of the insertion port 1051, the feature point 1402 is hidden by the insertion port 1051, and is not photographed and cannot be extracted by the multi-view camera 1520.
  • the position acquisition unit 1530 calculates the position (X1, Y1, Z1) of the feature point 1401 and the position (X2, Y2, Z2) of the feature point 1402 from the stereo image acquired by the multiview camera 1520.
  • the position acquisition unit 1530 performs position acquisition by a position extraction method using a normal stereo image, and outputs the acquired position information from the position acquisition unit 1530 to the bend acquisition unit 2030C.
  • the bending acquisition unit 2030C evaluates the bending state based on the position of the feature point 1402 calculated by the position acquisition unit 1530 and the position of the hand 1011.
  • the tip direction 2160 on the second end 1042 side in FIG. 5A is approximated by using the hole direction 2170 of the insertion port 1051, but in this configuration, the direction 2160 of the second end 1042 in FIG. , Approximate by a vector 1420.
  • This vector 1420 is a vector having a feature point 1401 as a start point and a feature point 1402 as an end point. That is, the vector 1420 starting from the middle of the flexible object 1040 and ending at the second end 1042 of the flexible object 1040 is regarded as the tip direction 2160 on the second end 1042 side, so that the bend is the same as in the first embodiment.
  • the evaluation of the condition is calculated by the bending acquisition unit 2030C.
  • the vector 1420 is (X2-X1).
  • Y2-Y1, Z2-Z1) are calculated by the bending acquisition unit 2030C.
  • the angle ⁇ between the tip direction 2150 on the first end 1041 side and the vector 1420 is obtained by converting (T X , T Y , T Z ) of the equation (2) to (X2-X1, Y2-Y1, Z2).
  • -Z1) can be calculated by the bending acquisition unit 2030C,
  • the arrival determination unit 2010C determines whether the second end 1042 of the flexible object 1040 has reached the entrance of the insertion port 1051. Specifically, the feature point extraction unit 1525 determines that the second end 1042 of the flexible object 1040 has reached the insertion port 1051 when the feature point 1402 cannot be extracted.
  • the vector 2150 that is the direction of the tip on the first end 1041 side is similarly described.
  • the position may be acquired by the position acquisition unit 1530 (and the feature point extraction unit 1525).
  • the same effect as described in the effect of the first embodiment can be obtained.
  • the arrival detection is performed without using the second force sensor 1021, the force when the flexible object 1040 contacts the peripheral portion 1051a of the insertion port 1051 is weak, and the second force sensor 1021 Even when it cannot be detected, the same effect as the first embodiment can be obtained.
  • the notification unit 2060 has been described as a display.
  • the notification unit 2060 may be a speaker that outputs the content displayed on the display by voice.
  • the notification generation unit 2065 synthesizes the corresponding audio output.
  • Using such a configuration can provide an environment in which the operator can work more easily.
  • FIG. 19 is a diagram illustrating a configuration of a teaching apparatus 1000D according to the second modification of the first embodiment. Parts having the same reference numerals as those of the first modification are the same as the functions of the first modification, and thus description thereof is omitted. Hereinafter, a different part from a 1st modification is demonstrated.
  • This teaching apparatus 1000D is not provided with a robot arm.
  • the hand 1011D is not the hand of the robot arm but the part that the operator grips when teaching.
  • the operation unit 1090 is coupled to the tip of the hand 1011.
  • the operator 1011D is directly moved by the operator so that the operation unit is provided. Absent.
  • Feature point 1710 is a feature point provided in fixed portion 1030. Specifically, the feature point is a point painted in blue with an oily marker or the like. It should be noted that a blue object other than the feature point 1710 is not placed in the work environment.
  • Feature point extraction unit 1525D extracts the position of feature point 1710 on the image in addition to feature points 1401 and 1402. The rest is the same as the feature point extraction unit 1525.
  • the position acquisition unit 1530D extracts the position of the feature point 1710 in addition to the feature points 1401 and 1402. The rest is the same as the position acquisition unit 1530.
  • the position of the feature point 1710 is regarded as the position of the hand 1011D, and position acquisition is performed in the same manner as the position and orientation acquisition unit 1013 has acquired the position of the hand 1011 of the robot arm 1010 in the first embodiment.
  • the unit 1530D acquires the position of the hand 1011D.
  • the mode input unit 1091D inputs a processing mode performed by the robot arm 1010. Since teaching apparatus 1000D is not used for reproduction, there is no selection of “perform reproduction”, and it is used in one of two options of “execute teaching” and “do not execute”.
  • the management unit 1012D manages the overall operation of the teaching apparatus 1000D.
  • step S1810 the management unit 1012D starts processing.
  • step S1820 the management unit 1012D acquires a notification from the mode input unit 1091D. That is, the management unit 1012D acquires from the mode input unit 1091D which one of “execute teaching” and “do not execute” is input from the two processing modes performed by the operator with the robot arm 1010A.
  • step S1830 the management unit 1012D branches based on the acquired notification. That is, if the acquired notification is “0” indicating “not execute”, the process branches to step S1820, and if “notice” is executed, the process branches to step S1847.
  • step S1847 the management unit 1012D acquires the position of the hand 1011D (the position of the feature point 1710) from the position acquisition unit 1530D and stores it in the trajectory information holding unit 1095.
  • step S1860 arrival determination unit 2010C determines whether second end 1042 of flexible object 1040 has reached insertion port 1051. If arrival is determined by the arrival determination unit 2010C, the process branches to step S1870. If arrival is not determined by the arrival determination unit 2010C, the process branches to step S1892. Even if the arrival determination has already been performed after the teaching is started, the process branches to step S1892.
  • step S1870 after the arrival determination unit 2010C determines arrival, the bending acquisition unit 2030C acquires the evaluation of the bending state of the flexible object 1040.
  • an arrival determination signal is input from the arrival determination unit 2010C to the management unit 1012D, and the bending state of the flexible object 1040 is acquired from the management unit 1012D to the bending acquisition unit 2030C.
  • the command is input as follows.
  • the bending acquisition unit 2030C acquires information on the evaluation of the bending state of the flexible object 1040 based on the information of the position acquisition unit 1530D, and outputs the acquired information on the bending state of the flexible object 1040 to the management unit 1012D.
  • step S1880 the management unit 1012D stores the evaluation of the bending condition acquired by the bending acquisition unit 2030C in step S1870 in the evaluation holding unit 2050.
  • step S1890 the notification generation unit 2065 generates a display screen for notifying the operator of the evaluation information and the like by the notification unit 2060. For example, a process corresponding to the process of FIG. 12 is performed.
  • step S1891 the notification unit 2060 displays the display screen generated by the notification generation unit 2065 on the display.
  • step S1892 the process branches depending on whether a new notification is received from the mode input unit 1091D to the management unit 1012D. That is, when there is no new notification from the mode input unit 1091D to the management unit 1012D (when no new input is made to the mode input unit 1091D), the process branches to step S1847 to continue teaching. If there is a new notification from the mode input unit 1091D to the management unit 1012D, the process branches to step S1820, and processing corresponding to the input is performed.
  • the teaching apparatus has a simple configuration. Therefore, for example, even when there are few operators who have teaching techniques and it is necessary to bring the teaching device to the operator's place, the carrying-in work can be easily performed.
  • the teaching apparatus since the teaching apparatus has a simple configuration, a large number of operators can perform operations, and the most highly evaluated teaching obtained can be selected as the teaching to be finally used. .
  • the reproduction control unit 1094A describes the configuration using the teaching data having the highest evaluation value.
  • the top N pieces (however, N Is an integer greater than or equal to 2.)
  • the locus obtained by averaging the teaching data of the management unit 1012A may be reproduced.
  • the management unit 1012A may take an average for each stage in FIGS. 3A to 3D. For example, the management unit 1012A takes an average of a plurality of teachings until the flexible object 1040 contacts the peripheral portion 1051a of the insertion port 1051.
  • a target evaluation value holding unit that holds a target evaluation value in advance may be provided, and the management unit 1012A may repeat teaching until an evaluation equal to or higher than the target evaluation value is obtained.
  • the notification unit 2060 may be configured to perform notification that recommends continuation of teaching until an evaluation equal to or higher than the target evaluation value is obtained.
  • FIG. 25 is a diagram showing a configuration of a robot apparatus 1000E including the teaching apparatus 1000ET in the fourth modification. Portions having the same reference numerals as those in the first embodiment are the same elements as those in the first embodiment, and thus description thereof is omitted. Hereinafter, different parts will be described.
  • the target evaluation value holding unit 2120 holds a target evaluation value in advance.
  • the teaching determination unit 2110 compares the evaluation value acquired by the management unit 1012E with the target evaluation value acquired from the target holding unit 2120. If the latter is larger, the teaching determination unit 2110 determines to continue teaching. Otherwise, it is determined to end teaching, and the determination result is output to the management unit 1012E.
  • the notification generation unit 2065E generates an image or a sound for notifying the operator that the teaching is continued.
  • an image of a character string “Teaching is continued.
  • the robot moves to the initial position” is generated.
  • the management unit 1012E uses the teaching determination unit 2110 to determine whether to continue teaching or end teaching.
  • the notification generation unit 2065 generates a notification for continuing the teaching.
  • step 9010 to step 9080 is the same as each step from step S9010 to step S9080 of FIG. 13 of the first embodiment, and thus description thereof is omitted.
  • different parts will be described.
  • step S9120 the management unit 1012A determines whether or not there is a new output from the mode input unit 1091 to the management unit 1012A. If there is a new output from the mode input unit 1091 to the management unit 1012A, the process branches to step S9210. If there is no new output in the management unit 1012A, the process branches to step S9047. Steps subsequent to step S9047 are the same as those in the first embodiment.
  • step S9210 branching is performed based on the notification content notified from the mode input unit 1091 to the management unit 1012E as a new output. That is, if a notification indicating “not execute” is sent from the mode input unit 1091 to the management unit 1012A, the process branches to step S9220. Otherwise, the process branches to step S9020.
  • step S9220 the management unit 1012E performs teaching determination processing using the teaching determination unit 2110. If the teaching determination unit 2110 outputs a determination to continue teaching to the management unit 1012E, the process branches to step S9230. When the determination not to continue teaching is output from the teaching determination unit 2110 to the management unit 1012E, the process branches to step S9020.
  • step S9230 the management unit 1012E generates a notification by the notification generation unit 2055E.
  • the notification generation unit 2055E generates an image of a character string “Teaching is continued. The robot moves to an initial position”.
  • step S9240 the management unit 1012E notifies the notification content generated by the notification generation unit 2055E by the notification unit 2060.
  • the notification unit 2060 is a display, and an image of a character string “Teaching is continued. The robot moves to the initial position” is displayed on the display.
  • step S9240 ends, the management unit 1012E branches the process to step S9045.
  • a configuration has been shown in which a notification is not generated when the teaching determination unit determines not to continue teaching.
  • the notification evaluation unit 2060 is notified of the target evaluation value via the notification generation unit 2065. You may display that it exceeded.
  • the teaching determination unit 2110 ends the teaching when the upper N-th value of the evaluation held by the evaluation holding unit 2050 (where N is an integer of 2 or more) exceeds the target (continuation). No) determination may be performed, and in other cases, determination may be made to continue teaching.
  • the management unit 1012E uses an average data generation unit (not shown) to store the teaching data obtained by averaging the top N teaching data in the trajectory information holding unit 1095 as teaching data for reproduction. You may be the structure to do.
  • the teaching determination unit 2110 calculates the top N values (where N is an integer equal to or greater than 2) of evaluations held by the evaluation holding unit 2050, and the calculated value is less than or equal to a predetermined value. It may be configured that the determination to end the teaching is performed when it becomes, and the determination to continue the teaching is performed in other cases.
  • the notification unit 2060 may be configured to notify the distribution. In this configuration, the target holding unit 2120 holds the predetermined value.
  • the arrival determination unit 2010 performs arrival determination in real time.
  • the trajectory information holding unit 1095 receives the second force sensor 1021 via the moving position determination unit 1092.
  • a value may be recorded, and after the teaching is completed, the arrival determination unit 2010 may perform the arrival determination based on the information recorded in the trajectory information holding unit 1095.
  • the arrival determination may be performed using the speed or acceleration of the hand 1011 in addition to the value of the second force sensor 1021.
  • the speed or acceleration of the hand 1011 can be obtained by the moving position determination unit 1092 based on the position of the hand 1011 and the time when the information on the position is acquired.
  • the arrival determination is performed based on the value of the second force sensor 1021 attached to the hand 1011, but the second force sensor 1021 is attached in the vicinity of the object 1050 or the insertion port 1051, and the second force sensor 1021 is attached.
  • the arrival determination may be performed based on the information acquired in 1021.
  • the arrival determination may be performed using image processing using a camera that captures the vicinity of the insertion port 1051 and an image processing unit.
  • the bending reference holding unit 2020 holds information on the hole direction 2170 of the insertion port 1051. Then, it is determined that the flexible object 1040 is bent as the orientation of the first end 1041 with respect to the orientation 2170 of the hole of the insertion port 1051 increases.
  • the bending reference holding unit 2030 holds information on the posture of the (ideal) first end 1041 that is a reference when the flexible object 1040 is bent, and the actual first end 1041 It is assumed that the bend acquisition unit 2030 evaluates according to how close the posture is to the ideal posture.
  • the posture information of the (ideal) first end 1041 that serves as a reference when the flexible object 1040 is bent may be registered in advance in the bending reference holding unit 2030.
  • the configuration may be such that the bending acquisition unit 2030 acquires the information.
  • FIG. 21 is a diagram illustrating a bending state of a rugby ball-shaped flexible object 1040U (a shape in which a middle portion is swollen).
  • a flexible object 1040U indicated by a solid line is a bent flexible object 1040U
  • a flexible object 1040V indicated by a dotted line is an unbent flexible object 1040V.
  • Reference numeral 2501U is the normal direction of the first end 1041U of the flexible object 1040U in the bent state
  • reference numeral 2501V is the normal direction of the first end 1041V in the unbent state.
  • the bend acquisition unit 2030 evaluates the degree of bend according to the angle formed by the direction of 2501V held as information by the bend reference holding unit 2030 and the direction of 2501U acquired by the position and orientation acquisition unit 1013, as in the first embodiment. Is acquired by the bending acquisition unit 2030. If such a configuration is used, the bending acquisition unit 2030 can acquire information on the evaluation of the bending state regardless of the shape of the flexible object 1040.
  • An actual contact determination unit that determines that the second end 1042 of the flexible object 1040 has actually contacted the surrounding portion 1051a of the insertion port 1051 is provided, and after the time of contact, until reaching is determined by the arrival determination unit, bending is performed.
  • the value acquired by the acquisition unit 2030 may be notified by the notification unit 2060 via the notification generation unit 2065.
  • the second force sensor 1021 is attached in the vicinity of the object 1050 or the insertion port 1051, and the force information detected by the second force sensor 1021 is equal to or greater than a predetermined threshold value. The contact may be determined.
  • the notifying unit 2060 When the bend acquisition unit 2030 determines that the bend state acquired by the bend acquisition unit 2030 has not reached the predetermined bend state, the notifying unit 2060 notifies the notification unit 2060 of a sound such as “Can you bend more?” For example, a configuration for guiding the operator may be used.
  • a configuration may be used in which the actual contact determination unit determines that the second end 1042 of the flexible object 1040 has contacted the insertion port 1051, and then power assists the movement in the direction in which the hand 1011 is rotated.
  • the present invention can also be applied to work for moving the tip of the flexible object 1040 to a predetermined position of the object 1050 (including work without insertion work). Even when the tip of the flexible object 1040 is moved to a predetermined position of the object 1050, the flexible object 1040 comes into contact with the object 1050, and the flexible object 1040 is bent and then is in a predetermined position. If controlled, the movement of the target is likely to succeed. Therefore, the present invention can be applied to such work.
  • ⁇ 10th modification> In the first modification, the direction in which the bending state of the flexible object 1040 is evaluated based on the angles formed by the directions of the flexible object 1040 at both ends of the flexible object 1040 is described. However, the position for acquiring the direction is not limited to both ends. Two different points on the flexible material 1040 may be used. However, in this case, a special case where the flexible object 1040 bends at two or more places is excluded from this configuration.
  • FIG. 22 is a diagram illustrating the flexible object 1040 in various states fixed to the first end 1014.
  • a flexible object 1040s in FIG. 22 shows a state where the flexible object 1040 is not bent (a straight state).
  • the flexible object 1040r indicates the flexible object 1040 that is slightly bent from the flexible object 1040s.
  • the flexible object 1040q indicates the flexible object 1040 that is bent slightly from the flexible object 1040r.
  • the second ends 1042q to 1042s of the flexible object 1040 indicate the second ends 1042 of the flexible objects 1040q to 1040s, respectively.
  • the direction from the first end 1041 to the second end 1042s is the x-axis direction
  • the direction perpendicular to the x-axis is the y-axis direction
  • the first end 1041 is the origin.
  • Points 2401q to 2401s indicate points of 4 mm from the first end 1041 in the flexible objects 1040p to 1040s, respectively.
  • Points 2402q to 2402s indicate 8 mm points from the first end 1041 in the flexible objects 1040q to 1040s, respectively.
  • q1 to r1 are angles formed by the tangent lines of the flexible objects 1040q to 1040r with respect to the x axis at the points 2401q to 2401r.
  • q2 to r2 are angles formed by the tangent lines of the flexible objects 1040q to 1040r with respect to the x-axis at the points 2402q to 2402r.
  • the flexible object 1040q is a state where the flexible object 1040r is slightly bent. Therefore, when the point 2401q and the point 2401r are compared, the former is more bent than the latter. Therefore, the following formula (7) is established.
  • Equation (9) Equation (9) is established.
  • q2-q1 is an angle formed by the tangent lines of the flexible object 1040 at two points (points 2401q and 2402q) on the flexible object 1040q.
  • r2-r1 Since the flexible object 1040q is bent more than the flexible object 1040r, the expression (10) indicates that “the larger the angle formed by the tangent lines of the flexible object 1040 at two points on the flexible object 1040 (points 2401 and 2402) is, , The flexible object 1040 is in a bent state.
  • FIG. 26 is a diagram illustrating a robot apparatus 1000F including an omnidirectional robot 1010F and a teaching apparatus 1000FT.
  • the omnidirectional mobile robot is described in Non-Patent Document 1 or Non-Patent Document 2 as an example.
  • a disk-shaped base 2610 is provided with a plurality of wheels 2620 that are rotatably positioned on the lower surface side and are driven forward and backward by a motor 912M, and a column 2630 that is fixed on the upper surface side.
  • a load can be mounted on the upper surface of the base 2610 of the robot 1010F.
  • the first force sensor 1020 located at the upper end of the pillar 2630 and a fixing portion 1030 fixed to the outer side surface thereof are attached.
  • An operation unit 1090 is attached to the upper end of the first force sensor 1020.
  • a cylindrical peripheral portion 1051a having an insertion port 1051 is attached to the object 1050.
  • the object 1050 is a building door as a specific example, and the insertion slot 1051 is an insertion slot into which a card key for opening and closing the door is inserted.
  • the fixing portion 1030 is attached at the same height as the insertion port 1051.
  • a flexible object 1040 is attached to the fixed portion 1030. As a specific example, the flexible object 1040 is the card key. Since others are the same as in the case of the first embodiment, description thereof is omitted.
  • robot teaching method control method of the robot teaching device
  • the robot teaching method described here may be applied together with other robot teaching methods.
  • It can be realized by a computer system including a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • the RAM or hard disk unit stores a computer program. That is, each part achieves its function by the microprocessor operating according to the computer program.
  • the computer program is configured by combining a plurality of instruction codes indicating instructions for the computer in order to achieve a predetermined function.
  • a part of the robot arm 1010 and its modifications, and a part or all of the parts other than the operation unit 1090, the fixing unit 1030, and the hand 1011 are obtained from one system LSI (Large Scale Integration). It may be configured.
  • the system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on a single chip.
  • the system LSI is a computer system including a microprocessor, a ROM, a RAM, and the like. is there.
  • a computer program is stored in the RAM. That is, the system LSI achieves its functions by the microprocessor operating according to the computer program.
  • a part of the robot arm 1010 and its modifications, and part or all of the parts other than the operation unit 1090, the fixing unit 1030, and the hand 1011 are configured by an IC card or a single module that can be attached to and detached from each device. It may be.
  • the IC card or module is a computer system including a microprocessor, ROM, RAM, and the like.
  • the IC card or module may include the super multifunctional LSI. That is, the IC card or the module achieves its function by the microprocessor operating according to the computer program. This IC card or this module may have tamper resistance.
  • the robot arm 1010 and elements constituting the modification thereof, and a part or all of each unit other than the operation unit 1090, the fixing unit 1030, and the hand 1011 are also realized as a method for generating robot teaching data.
  • the present invention is also realized as a computer program that causes a computer to generate teaching data by these methods, or as a digital signal composed of a computer program.
  • the robot arm 1010 and elements constituting the modification thereof may be executed by downloading a part or all of each unit other than the operation unit 1090, the fixing unit 1030, and the hand 1011 from a server or the like.
  • a computer-readable recording medium such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray Disc), or semiconductor memory It is also realized as what is recorded in the above. Further, it is also realized as a digital signal recorded on these recording media.
  • the robot arm 1010 and elements constituting the modification thereof, and a part or all of each unit other than the operation unit 1090, the fixing unit 1030, and the hand 1011 are provided with an electric communication line, a wireless communication line, a wired communication line, and the Internet. It is also realized as the above-described computer program or digital signal transmitted via a representative network or data broadcasting.
  • the robot arm 1010 and elements constituting the modification thereof, and a part or all of each unit other than the operation unit 1090, the fixing unit 1030, and the hand 1011 are also realized as a computer system including a microprocessor and a memory.
  • the memory stores the above-described computer program, and the microprocessor operates according to the computer program.
  • the processing of the present invention can be performed by another independent computer system by recording the computer program or digital signal on a recording medium and transferring it, or by transferring the computer program or digital signal via a network or the like.
  • each component can be realized by a program execution unit such as a CPU reading and executing a software program recorded on a recording medium such as a hard disk or a semiconductor memory.
  • achieves a part or all of the element which comprises the control apparatus in the said embodiment or modification is the following programs. That is, the program includes a flexible object holding unit capable of holding a flexible object, and a drive unit that moves the flexible object holding part in a predetermined direction to perform a fitting operation between the flexible object and the object.
  • a control program for a robot teaching device that teaches the work and generates teaching data
  • Computer An arrival determination unit for determining the arrival of the tip of the flexible object to the object;
  • a bending acquisition unit for acquiring information on evaluation of the bending state of the flexible object when the arrival determination unit determines the arrival of the tip of the flexible object to the object;
  • a notification unit for performing notification regarding teaching based on the information of the evaluation acquired by the bending acquisition unit;
  • the program includes a flexible object holding unit that can hold a flexible object, and a drive unit that moves the flexible object holding part in a predetermined direction to perform a fitting operation between the flexible object and the object.
  • a control program for a robot teaching device that teaches the work and generates teaching data
  • Computer An arrival determination unit for determining the arrival of the tip of the flexible object to the object;
  • a bending acquisition unit for acquiring information on evaluation of the bending state of the flexible object when the arrival determination unit determines the arrival of the tip of the flexible object to the object;
  • a selection unit for selecting the highly evaluated teaching from a plurality of teaching data based on the evaluation information acquired by the bending acquiring unit;
  • the computer that executes this program may be singular or plural. That is, centralized processing may be performed, or distributed processing may be performed. In addition, it can be made to show the effect which each has by combining arbitrary embodiment or modification of the said various embodiment or modification suitably.
  • a robot teaching apparatus, a robot apparatus, a robot teaching apparatus control method, and a robot teaching apparatus control program according to the present invention reproduce an insertion operation based on teaching data for inserting a flexible object into an object insertion slot.
  • the present invention is useful as a robot teaching apparatus, a robot apparatus, a robot teaching apparatus control method, and a robot teaching apparatus control program for performing work.
  • the present invention is not limited to insertion of a flexible object, but is a robot teaching apparatus, a robot apparatus, a robot teaching apparatus control method, and a robot teaching apparatus control for performing an operation of moving the tip of a flexible object to a desired position. It may also apply in the program.

Abstract

 柔軟物(1040)を保持する柔軟物保持部(1030)を移動させて柔軟物と物体(1050)との間で嵌め合わせ作業の教示を行って教示データを生成するロボット(1010A)の教示装置であって、柔軟物先端(1042)の物体への到達を到達判定部(2010)で判定し、到達判定部で到達判定したときの柔軟物の曲がり具合の評価の情報を曲がり取得部(2030)で取得し、取得した評価の情報に基づいて教示に関する所定の通知を通知部(2060)で行う。

Description

ロボットの教示装置、ロボット装置、ロボットの教示装置の制御方法、ロボットの教示装置の制御プログラム
 本発明は、柔軟物の一端を物体に対して挿入する作業などを行う、ロボットの教示装置、ロボット装置、ロボットの教示装置の制御方法、ロボットの教示装置の制御プログラムに関する。
 従来、ロボットアームを用いた物体の組立て作業を行う際に、ロボットアームの移動軌跡情報を予め作成しておき(これを、教示と呼ぶ。)、ロボットアームはその軌跡上の移動を再現して作業を繰り返し行う。剛体を対象物とした組立て作業の場合は、繰り返し作業において組立て作業が失敗することは少ない。
 しかし、柔軟物を対象とした組立て作業に、前記の方法を用いた場合、作業が失敗することがある。柔軟物は、製造過程で個体差が生じたり、製造後に物体にぶつかったり、又は、自重によって変形したりするため、剛体に比べて形状又は姿勢のバラツキが大きいためと考えられる。
 特許文献1では、組立て用ロボットアームの手首に力センサーを装着し、教示時の各時刻における力の値を取得しておき、再生時には、取得した力の値を再現するようにロボットアームを移動させる方法が示されている。
特開平8-174458号公報
R. Damoto and S. Hirose, ‘‘Development of Holonomic Omnidirectinal Vehicle‘‘Vuton-II’’ with Omni-Discs’’, Journal of Robotics and Mechatronics, Vol.14,No.2, pp.186-192, 2002 湯軍、渡辺桂吾、栗林勝利、白石大和、直交車輪機構を用いた全方向移動ロボット車の自律制御、日本ロボット学会誌Vol17 No.1 PP.51-60、1991
 しかしながら、前記の方法を用いても、柔軟物の組立て作業などでは成功しない場合がある。
 本発明は、このような従来技術の問題点に鑑みてなされたものであって、従来困難であった柔軟物の挿入作業などの作業を精度良く行わせることができる、ロボットの教示装置、ロボット装置、ロボットの教示装置の制御方法、ロボットの教示装置の制御プログラムを提供することを目的とする。
 前記目的を達成するために、本発明は以下のように構成する。
 本発明の1つの態様によれば、柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置であって、
 前記柔軟物の先端の前記物体への到達を判定する到達判定部と、
 前記柔軟物の先端の前記物体への到達を前記到達判定部で判定したときの前記柔軟物の曲がり具合の評価の情報を取得する曲がり取得部と、
 前記曲がり取得部が取得した前記評価の情報に基づいて教示に関する通知を行う通知部と、を備えるロボットの教示装置を提供する。
 これらの概括的かつ特定の態様は、システム、方法、コンピュータプログラム並びにシステム、方法及びコンピュータプログラムの任意の組み合わせにより実現してもよい。
 本発明の前記態様によれば、例えば柔軟物が挿入口に到達した際に、柔軟物を曲げる操作を行ってから挿入する制御を行うように教示するとき、柔軟物の曲がり具合の評価の情報を曲がり取得部で取得する。曲がり取得部で取得した曲がり具合の評価の情報を基に、教示によって得られた教示データが、柔軟物が挿入口に到達した際に、柔軟物を曲げる操作を行ってから挿入する教示を満たすかを判定して、前記曲がり取得部が取得した前記評価の情報に基づいて、通知部により、教示に関する所定の通知を行うことができる。又は、通知の代わりに、曲がり取得部が取得した前記評価の情報に基づいて複数の教示データの中から前記評価の高い教示を選択部で選択することができる。この結果、より評価の高い教示を使用することが可能となり、柔軟物を取扱う作業を精度良く行うことができる教示データを取得することができて、従来困難であった柔軟物の挿入作業などの作業を精度良く行うことができる。
 本発明のこれらと他の目的と特徴は、添付された図面についての好ましい実施形態に関連した次の記述から明らかになる。この図面においては、
図1は、本発明の課題を説明するため、直接教示の構成におけるロボット装置を示す図であり、 図2は、軌跡情報保持部が保持する軌跡データを示す図であり、 図3Aは、本発明の課題を説明するため、直接教示の構成における教示時の柔軟物の曲がり方を示す図であり、 図3Bは、図3Aに次いで、直接教示の構成における教示時の柔軟物の曲がり方を示す図であり、 図3Cは、図3Bに次いで、直接教示の構成における教示時の柔軟物の曲がり方を示す図であり、 図3Dは、図3Cに次いで、直接教示の構成における教示時の柔軟物の曲がり方を示す図であり、 図4Aは、本発明の課題を説明するため、直接教示の構成における再生時の柔軟物の曲がり方を示す図であり、 図4Bは、図4Aに次いで、本発明の課題を説明するため、直接教示の構成における再生時の柔軟物の曲がり方を示す図であり、 図4Cは、図4Bに次いで、本発明の課題を説明するため、直接教示の構成における再生時の柔軟物の曲がり方を示す図であり、 図4Dは、図4Cに次いで、本発明の課題を説明するため、直接教示の構成における再生時の柔軟物の曲がり方を示す図であり、 図4Eは、操作者が柔軟物を曲がり具合の最大値を越えて曲げた場合の様子を示す図であり、 図5Aは、本発明の課題を説明するため、柔軟物の第一端の向きと柔軟物の曲がり具合を示す図であり、 図5Bは、本発明の課題を説明するため、柔軟物の第一端の向きと柔軟物の曲がり具合を示す図であり、 図6は、教示時の柔軟物の曲がり具合の評価と、各教示データを用いて再生を20回行ったとき時の挿入の成功確率を示す表形式の図であり、 図7は、本発明の第1実施形態におけるロボット装置を示す図であり、 図8は、本発明の第1実施形態におけるロボット装置の曲がり基準保持部が保持する、挿入口の穴の向きの情報の一例を示す図であり、 図9は、本発明の第1実施形態におけるロボット装置において、手先の方向と、第一端の方向を示す図であり、 図10は、本発明の第1実施形態におけるロボット装置において、評価保持部が保持する評価の情報の例を示す図であり、 図11は、本発明の第1実施形態におけるロボット装置において、通知部に表示される通知内容を示す図であり、 図12は、本発明の第1実施形態におけるロボット装置において、通知生成部が行う処理の流れを示す図であり、 図13は、第1実施形態におけるロボット装置において、ロボットアームの処理の流れを示す図であり、 図14Aは、本発明の第1実施形態におけるロボット装置の教示時と再生時の柔軟物の曲がり方の変化を示す図であり、 図14Bは、図14Aに次いで、本発明の第1実施形態におけるロボット装置の教示時と再生時の柔軟物の曲がり方の変化を示す図であり、 図14Cは、図14Bに次いで、本発明の第1実施形態におけるロボット装置の教示時と再生時の柔軟物の曲がり方の変化を示す図であり、 図14Dは、図14Cに次いで、本発明の第1実施形態におけるロボット装置の教示時と再生時の柔軟物の曲がり方の変化を示す図であり、 図15は、本発明の第1実施形態におけるロボット装置において、柔軟物の第二端が挿入口に挿入された状態で、かつ、柔軟物が曲がっていない状態を示す図であり、 図16は、本発明の第1実施形態におけるロボット装置において、柔軟物が円筒状のチューブである場合を示す図であり、 図17は、本発明の第1実施形態の第1変形例におけるロボットアームの先端と柔軟物とを示す図であり、 図18は、本発明の第1実施形態の第1変形例の構成におけるロボット装置の構成を示す図であり、 図19は、本発明の第1実施形態の第2変形例における教示装置の構成を示す図であり、 図20は、本発明の第1実施形態の第2変形例における教示装置の管理部によるロボットアームの処理の流れを示す図であり、 図21は、本発明の第1実施形態の第6変形例において、ラグビーボール形状の柔軟物(真ん中部分が膨らんだ形状)の曲がり具合を示す図であり、 図22は、本発明の第1実施形態の第10変形例において、第一端に固定された種々の状態の柔軟物を示す図であり、 図23Aは、本発明の課題を説明するための図3Aの段階を、別の方向(図1のY軸上から下へ見た方向)から見た断面図であり、 図23Bは、本発明の課題を説明するための図3Bの段階を、別の方向(図1のY軸上から下へ見た方向)から見た断面図であり、 図23Cは、本発明の課題を説明するための図3Cの段階を、別の方向(図1のY軸上から下へ見た方向)から見た断面図であり、 図23Dは、本発明の課題を説明するための図3Dの段階を、別の方向(図1のY軸上から下へ見た方向)から見た断面図であり、 図24は、本発明の第1実施形態の第4変形例において管理部が行う処理の流れを示す図であり、 図25は、本発明の第1実施形態の第4変形例におけるロボット装置の構成を示す図であり、 図26は、本発明の第1実施形態の第11変形例における全方向移動型のロボットを含むロボット装置を説明する図である。
 以下に、本発明にかかる実施の形態を図面に基づいて詳細に説明する。
 以下、図面を参照して本発明における実施形態を詳細に説明する前に、本発明の種々の態様について説明する。
 本発明の第1態様によれば、柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置であって、
 前記柔軟物の先端の前記物体への到達を判定する到達判定部と、
 前記柔軟物の先端の前記物体への到達を前記到達判定部で判定したときの前記柔軟物の曲がり具合の評価の情報を取得する曲がり取得部と、
 前記曲がり取得部が取得した前記評価の情報に基づいて教示に関する通知を行う通知部と、を備えるロボットの教示装置を提供する。
 本発明の第2態様によれば、前記通知部は、前記柔軟物をさらに曲げるように通知する、第1の態様に記載のロボットの教示装置を提供する。
 本発明の第3態様によれば、柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置であって、
 前記柔軟物の先端の前記物体への到達を判定する到達判定部と、
 前記柔軟物の先端の前記物体への到達を前記到達判定部で判定したときの前記柔軟物の曲がり具合の評価の情報を取得する曲がり取得部と、
 前記曲がり取得部が取得した前記評価の情報に基づいて複数の教示データの中から前記評価の高い教示を選択する選択部と、
を備えるロボットの教示装置を提供する。
 本発明の第4態様によれば、前記選択部は、前記評価の高い教示を選択するとき、前記柔軟物の曲げ具合の評価が、他の評価よりも良い評価を選択する、第3の態様に記載のロボットの教示装置を提供する。
 本発明の第5態様によれば、前記曲がり取得部は、前記柔軟物の2点における前記柔軟物の方向のなす角度に基づいて前記曲がり具合の評価の情報を取得する、
第1~4のいずれか1つの態様に記載のロボットの教示装置を提供する。
 本発明の第6態様によれば、前記柔軟物と前記物体との間での嵌め合わせにおいて、前記物体の挿入口の穴の向きの情報を格納する曲がり基準保持部と、
 前記柔軟物の1点の向きの情報を取得する位置姿勢取得部と、
を有し、
 前記曲がり取得部は、前記曲がり基準保持部が格納する前記挿入口の穴の向きの情報と、前記位置姿勢取得部が取得する前記柔軟物の1点の向きの情報とに基づいて前記評価の情報を取得する、
第1~5のいずれか1つの態様に記載のロボットの教示装置を提供する。
 本発明の第7態様によれば、前記柔軟物に加わった力を取得する力センサーを有し、
 前記到達判定部は、前記力センサーが取得した前記力に基づいて前記判定を行う、
第1~6のいずれか1つの態様に記載のロボットの教示装置を提供する。
 本発明の第8態様によれば、前記柔軟物を撮影する撮影装置と、
 前記撮影装置が撮影した画像を画像処理して、前記柔軟物上の前記2点の位置を取得する位置取得部とをさらに備え、
 前記曲がり取得部は、前記位置取得部が取得した前記複数の点の位置に基づいて、
前記柔軟物の少なくとも1点における前記柔軟物の方向を取得して、取得した前記柔軟物の方向を基に前記柔軟物の曲がり具合の評価の情報を取得する、
第5の態様に記載のロボットの教示装置を提供する。
 本発明の第9態様によれば、前記柔軟物を撮影する撮影装置と、
 前記撮影装置が撮影した画像を画像処理して、前記柔軟物の先端の特徴点に基づいて前記柔軟物の前記先端を抽出する特徴点抽出部と、をさらに備え、
 前記到達判定部は、前記特徴点抽出部が前記柔軟物の前記先端を抽出したか、しなかったかに基づいて前記到達の判定を行う、
第1~6のいずれか1つの態様に記載のロボットの教示装置を提供する。
 本発明の第10態様によれば、前記作業の教示を複数回行い、かつ、前記それぞれの教示時に前記到達判定部が到達を判定したときに前記曲がり取得部が取得した前記評価の情報を保持する評価保持部をさらに備え、
 前記通知部は、前記評価保持部が保持する複数の評価の情報のうち、評価の値が高い方から第一の所定数個の評価の値又は前記第一の所定数個の評価の値の分散を通知する、
第1又は2の態様に記載のロボットの教示装置を提供する。
 本発明の第11態様によれば、前記作業の教示を複数回行い、かつ、前記それぞれの教示時に前記到達判定部が到達を判定したときに前記曲がり取得部が取得した前記評価の情報をそれぞれ保持する評価保持部と、
 前記評価保持部が保持する複数の評価の情報のうち、評価の値が高い方から所定数個の評価の値に基づいて教示を継続するか否かの判定を行う教示判定部と、
をさらに備える第1~10のいずれか1つの態様に記載のロボットの教示装置を提供する。
 本発明の第12態様によれば、前記ロボットはロボットアームであり、前記駆動部は前記ロボットアームの関節部を駆動する関節駆動部である、第1~10のいずれか1つの態様に記載のロボットの教示装置を提供する。
 本発明の第13態様によれば、第1~11のいずれか1つの態様に記載のロボットの教示装置と、
 前記教示装置によって教示した軌跡を前記ロボットで再生する再生制御部と、
を備えるロボット装置を提供する。
 本発明の第14態様によれば、前記作業の教示を複数回行い、かつ、前記それぞれの教示時に前記到達判定部が到達を判定したときに前記曲がり取得部が取得した前記評価の情報を保持する評価保持部をさらに備える第1又は2の態様に記載のロボットの教示装置と、
 前記教示装置によって教示した軌跡を前記ロボットで再生する再生制御部とを備え、
 前記再生制御部は、前記評価保持部が保持する複数の評価の情報のうち、評価の値が高い教示が行われたときに生成された教示データを再生する、
ロボット装置を提供する。
 本発明の第15態様によれば、前記作業の教示を複数回行い、かつ、前記それぞれの教示時に前記到達判定部が到達を判定したときに前記曲がり取得部が取得した前記評価の情報を保持する評価保持部をさらに備える第1又は2の態様に記載のロボットの教示装置と、
 前記教示装置によって教示した軌跡を前記ロボットで再生する再生制御部とを備え、
 前記再生制御部は、前記評価保持部が保持する複数の評価の情報のうち、評価の値が高い方から所定数個の教示データを平均して生成された教示データを再生する、
ロボット装置を提供する。
 本発明の第16態様によれば、柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置の制御方法であって、
 前記柔軟物の先端の前記物体への到達を到達判定部で判定し、
 前記柔軟物の先端の前記物体への到達を前記到達判定部で判定したときの前記柔軟物の曲がり具合の評価の情報を曲がり取得部で取得し、
 前記曲がり取得部が取得した前記評価の情報に基づいて教示に関する所定の通知を通知部で行う、
ロボットの教示装置の制御方法を提供する。
 本発明の第17態様によれば、柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置の制御方法であって、
 前記柔軟物の先端の前記物体への到達を到達判定部で判定し、
 前記柔軟物の先端の前記物体への到達を前記到達判定部で判定したときの前記柔軟物の曲がり具合の評価の情報を曲がり取得部で取得し、
 前記曲がり取得部が取得した前記評価の情報に基づいて複数の教示データの中から前記評価の高い教示を選択部で選択する、
ロボットの教示装置の制御方法を提供する。
 本発明の第18態様によれば、柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置の制御プログラムであって、
 コンピュータを、
 前記柔軟物の先端の前記物体への到達を判定する到達判定部と、
 前記柔軟物の先端の前記物体への到達を前記到達判定部で判定したときの前記柔軟物の曲がり具合の評価の情報を取得する曲がり取得部と、
 前記曲がり取得部が取得した前記評価の情報に基づいて教示に関する通知を行う通知部、
として機能させるためのロボットの教示装置の制御プログラムを提供する。
 本発明の第19態様によれば、柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置の制御プログラムであって、
 コンピュータを、
 前記柔軟物の先端の前記物体への到達を判定する到達判定部と、
 前記柔軟物の先端の前記物体への到達を前記到達判定部で判定したときの前記柔軟物の曲がり具合の評価の情報を取得する曲がり取得部と、
 前記曲がり取得部が取得した前記評価の情報に基づいて複数の教示データの中から前記評価の高い教示を選択する選択部、
として機能させるためのロボットの教示装置の制御プログラムを提供する。
 本発明の第20態様によれば、柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置であって、
 前記柔軟物の先端の前記物体への到達を判定する到達判定部と、
 前記柔軟物保持部の姿勢を取得する姿勢取得部と、
 前記姿勢取得部が取得した前記姿勢の方向と、予め決められた所定の方向とのなす角度を取得する曲がり取得部と、
 前記曲がり取得部が取得した前記なす角度に基づいて教示に関する通知を行う通知部と、
を備える、ロボットの教示装置を提供する。
 本発明の第21態様によれば、柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置であって、
 前記柔軟物保持部の姿勢を取得する姿勢取得部と、
 前記姿勢取得部が取得した前記姿勢の方向と、予め決められた所定の方向とのなす角度を取得する曲がり取得部と、
 前記曲がり取得部が取得した前記なす角度に基づいて複数の教示のなかから前記評価の高い教示を選択する選択部と、
を備えるロボットの教示装置を提供する。
 <課題の明確化>
 本発明の各実施形態を説明するのに先立って、柔軟物を物体に挿入する嵌め合わせ作業を教示して再生する場合の課題を更に詳しく説明する。ここでは、教示方法の一つである直接教示を例にとって教示を行う構成を説明し、次に、この構成において柔軟物を物体に挿入する場合の課題を説明する。
 <直接教示の構成>
 まず、直接教示とは、操作者がロボットアームを触って直接移動させて、その際のロボットアームの移動の軌跡を取得しておき、作業を再現させる際には、取得した移動の軌跡に基づいてロボットアームを移動させる教示方法のことである。軌跡を取得することを教示と呼び、教示した軌跡に基づいてロボットアームを移動させることを再生と呼ぶ。
 図1は、直接教示を行うロボット装置1000の構成を示す図である。ロボット装置1000は、ロボットアーム1010を用いて、ロボットアーム1010が設置されている設置床1010Hに固定された物体載置台1050Hに保持された物体1050に固定された筒状の挿入部(周囲部分)1051aの挿入口1051に、ロボットアーム1010に把持した柔軟物1040の第二端1042を挿入する作業を教示及び再生する場合を示している。
 ロボットアーム1010は、X-Y-Z座標空間を6軸方向に移動する。
 作業対象物の一例である柔軟物1040を保持する柔軟物保持部の一例として機能するハンド(固定部)1030は、ロボットアーム1010の手先1011の端部に設けられ、対象物1040を保持固定する。
 第一力センサー1020は、ロボットアーム1010の手先1011に固定されており、操作者が下記の操作部1090に加えた力を取得する。
 操作部1090は、第一力センサー1020に固定されており、ロボット装置1000を用いて教示を行うときに、操作者が手で握る部分である。操作者は、操作部1090を手で握って、ロボットアーム1010の手先1011を移動したい方向に力を加える。
 位置姿勢取得部1013は、姿勢取得部の一例として機能し、ロボットアーム1010の手先1011の位置および姿勢(向き)(ハンド(柔軟物保持部)1030の位置及び姿勢)を取得する。このため、ロボットアーム1010の各関節部に取り付けられた関節駆動部又は駆動部の一例としてのモータ912Mに取り付けられたエンコーダ912Eから、位置姿勢取得部1013には、エンコーダ912Eで取得した各関節部の角度の情報が入力される。エンコーダ912Eによって位置姿勢取得部1013で取得した各関節部の角度、および、エンコーダ912Eの内蔵記憶部に予め測定されて記憶されている各リンクの長さの情報によって、手先1011の位置および姿勢を位置姿勢取得部1013で算出する。
 移動位置決定部1092には、第一力センサー1020で取得された力の情報が入力される。すなわち、操作者が操作部1090に加えた力を第一力センサー1020で取得し、第一力センサー1020で取得された力の情報に基づいて、手先1011を移動する位置を移動位置決定部1092で決定する。
 具体的には、移動位置決定部1092において、手先1011を移動する方向は、操作者が操作部1090に加えた力(第一力センサー1020で取得された力)の方向に基づいて決定する。例えば、図1の+X方向(図1の右方向)に操作者が操作部1090に力を加えた場合、手先1011の移動方向を+X方向に移動位置決定部1092で決定する。
 手先1011を移動する距離または速度は、操作者が加えた力の大きさに基づいて移動位置決定部1092で決定する。例えば、操作者が操作部1090に力を加えた大きさがXニュートンだった場合に、手先1011の移動距離をXcmに移動位置決定部1092で決定するか、あるいは、手先1011の移動速度をXcm/secと移動位置決定部1092で決定する。
 手先1011の姿勢を回転する向きは、操作者が操作部1090に加えたモーメントの向き(第一力センサー1020で取得された力の向き)に基づいて移動位置決定部1092で決定する。例えば、操作者が操作部1090をX軸方向に対して回転する力を加えた場合、手先1011をX方向に対して回転させる方向であると移動位置決定部1092で決定する。
 手先1011の姿勢を回転する角度の大きさまたは回転速度は、操作者が操作部1090に加えたモーメントの大きさ(第一力センサー1020で取得された力の大きさ)に基づいて移動位置決定部1092で決定する。例えば、操作者が操作部1090をX軸方向に対して加えた回転の力がXニュートンセンチメートルだった場合に、手先1011の移動する回転角度をXラジアンに移動位置決定部1092で決定する。あるいは、手先1011の移動する回転角速度をXラジアン/secに移動位置決定部1092で決定する。
 移動位置決定部1092は、手先1011の位置を決定する度に、その位置を後述の軌跡情報保持部1095に記憶する。
 教示制御部1093は、移動位置決定部1092からの情報が入力され、移動位置決定部1092が決定した位置に手先1011を移動するようにモータ912Mの駆動制御を行う。手先位置の制御は、関節部のモータ912Mの回転軸を正逆回転駆動することで行う。より具体的には、教示制御部1093は、教示を開始するとき、それぞれのモータ912Mの駆動制御を行い、手先1011を予め定めた初期位置に移動したのち、移動位置決定部1092が決定した位置に手先1011を移動するようにモータ912Mの駆動制御を行う。
 各モータ912Mは、ロボットアーム1010の各関節部を独立してそれぞれ正逆回転させる。図1では、概念化して一つの箱で示しているが、実際には、ロボットアーム1010の各関節部にモータ912Mがそれぞれ取り付けられている。また、エンコーダ912Eは、ロボットアーム1010Aの各関節部のモータ912Mにそれぞれ連結されて、各関節部の角度を取得する。
 一例として、ロボットアーム1010Aは、複数の多関節機構を有する多関節ロボットアームであって、複数の関節軸を中心に2つのリンク702,703が回転駆動する。
 具体的には、ロボットアーム1010Aは、6自由度の多リンクのマニピュレータである。ロボットアーム1010Aは、手先1011に手首部701を有する前腕リンク702と、前腕リンク702の基端に回転可能に先端が連結される上腕リンク703と、上腕リンク703の基端が回転可能に連結支持される台部704とを備えている。台部704は、一定位置に固定されているが、図示しないレールに移動可能に連結されていても良い。手首部701は、一例として、第4関節部と、第5関節部と、第6関節部との3つの互いに直交する回転軸を有しており、前腕リンク702に対する手先1011の相対的な姿勢(向き)を変化させることができる。すなわち、第4関節部は、手首部701に対する手先1011の横軸周りの相対的な姿勢を変化させることができる。第5関節部は、手首部701に対する手先1011の、第4関節部の横軸とは直交する縦軸周りの相対的な姿勢を変化させることができる。第6関節部は、手首部701に対する手先1011の、第4関節部の横軸及び第5関節部の縦軸とそれぞれ直交する横軸周りの相対的な姿勢を変化させることができる。前腕リンク702の他端は、上腕リンク703の先端に対して第3関節部周りに、すなわち、第4関節部の横軸と平行な横軸周りに回転可能とする。上腕リンク703の他端は、台部704に対して第2関節部周りに、すなわち、第4関節部の横軸と平行な横軸周りに回転可能とする。さらに、台部704の上側可動部は、台部704の下側固定部に対して第1関節部周りに、すなわち、第5関節部の縦軸と平行な縦軸周りに回転可能としている。
 この結果、ロボットアーム1010Aは、合計6個の軸周りに回転可能として6自由度の多リンクマニピュレータを構成している。
 ロボットアーム1010Aの各軸の回転部分を構成する各関節部には、関節部駆動用のモータ912Mのような回転駆動装置と、モータ912Mの回転軸の回転位相角(すなわち関節角)を検出して位置情報を出力するエンコーダ912E(実際には、ロボットアーム1010Aの各関節部の内部に配設されている)とを備えている。モータ912M(実際には、ロボットアーム1010Aの各関節部の内部に配設されている)は、各関節部を構成する一対の部材(例えば、回動側部材と、該回動側部材を支持する支持側部材)のうちの一方の部材に備えられる、モータドライバの機能をそれぞれ内蔵する教示制御部1093又は再生制御部1094により駆動制御される。各関節部の一方の部材に備えられたモータ912Mの回転軸が、各関節部の他方の部材に連結されて、前記回転軸を正逆回転させることにより、他方の部材を一方の部材に対して各軸周りに回転可能とする。
 位置情報取得部1013は、ロボットアーム1010Aの手先1011の位置および姿勢を取得する。具体的には、位置情報取得部1013は、エンコーダ912Eによって取得した各関節の関節角と、各関節の長さ(位置情報取得部1013の内部記憶部に予め記憶された情報)とにより手先1011の位置および姿勢を取得する。
 モード入力部1091では、操作者がロボットアーム1010で行う処理モードの入力を受け付ける。モード入力部1091で選択できるモードの選択肢としては、「再生を行う」、「教示を行う」、「実行しない」の3つがある。モード入力部1091は、例えば、スイッチ、又は、ボタン、パーソナルコンピュータのキーボード若しくはマウス等で構成することができる。操作者は、モード入力部1091を用いて、いずれかのモード(選択肢)を選択する。モード入力部1091は、選択されたモード(選択肢)情報を、管理部1012とモード保持部1096とに出力する。第1実施形態では、モード入力部1091で「教示を行う」というモードが入力された場合にはモード入力部1091は「1」を出力し、「再生を行う」というモードが入力された場合にはモード入力部1091は「2」を出力し、「実行しない」というモードが入力された場合はモード入力部1091は「0」を出力する。なお、実行中の教示を中止する際にはモード入力部1091に「実行しない」というモードを入力して、教示を中止する。
 モード保持部1096は、モード入力部1091に入力されたモード情報を保持(格納又は記憶)し、例えば、パーソナルコンピュータのROM、RAM、HDD、レジスタ、又は、キャッシュなどの記憶装置である。以降、構成要素の名称に「保持部」を含む部又は装置(柔軟物保持部を除く。)は、同様の記憶装置である。モード入力部1091が機械式のボタンスイッチであるような場合は、モード入力部1091がモード保持部1096を兼ねる。例えば、機械式のボタンスイッチが操作者の押す操作により機械的に押し込まれた状態と、再度、押されて元の位置まで復帰した状態との2つのモード情報をそれぞれ機械的に保持することにより、保持部の機能を発揮することができる。ここでは、モード入力部1091で「教示を行う」というモードが入力された場合には、モード保持部1096は「1」を保持し、「再生を行う」というモードが入力された場合には、モード保持部1096は「2」を保持し、「実行しない」というモードが入力された場合には、モード保持部1096は「0」を保持する。モード保持部1096は、初期状態では「0」を保持する。
 軌跡情報保持部1095は、移動位置決定部1092より取得した軌跡データを保持する記憶装置である。軌跡データは、複数の時刻における手先1011の位置及び姿勢であり、手先1011の位置及び姿勢の情報の集合である。一つの位置及び姿勢は、X座標、Y座標、Z座標、ロール、ピッチ、ヨーの6次元のデータである。また、教示制御部1093による教示が複数回行われた場合は、軌跡情報保持部1095は、それぞれの挟持に対応した複数の軌跡データを保持する。図2は、軌跡情報保持部1095が保持する軌跡データを示す。n段目は、n回目の教示における教示データである(ただし、nは1より大きな整数である。)。n回目の教示データにおける(xn_0、yn_0、zn_0、rxn_0、ryn_0、rzn_0)は、教示開始の初期位置における手先1011の位置であり、(xn_t、yn_t、zn_t、rxn_t、ryn_t、rzn_t)は、教示開始からt番目の時刻における手先1011の位置を示す。xn_t、yn_t、zn_t、rxn_t、ryn_t、rzn_tはそれぞれ、x座標、y座標、z座標、ロー角、ピッチー角、ヨー角を示す。xn_t、yn_t、zn_t、rxn_t、ryn_t、rzn_tはそれぞれ、x座標、y座標、z座標、ロー角、ピッチー角、ヨー角を示す。
 再生制御部1094は、後述する管理部1012からの情報に基づき、教示した作業を再現するようにモータ912Mの駆動制御を行う。再生制御部1094は、軌跡情報保持部1095が保持する位置および姿勢に、手先1011を移動するように、モータ912Mの駆動制御を行う。手先位置の制御は、それぞれの関節部のモータ912Mの回転軸を正逆回転することで行う。軌跡情報保持部1095が保持する軌跡の移動が終了した場合、ロボットアーム1010を移動停止する制御を行う。なお、軌跡情報保持部1095が複数の軌跡情報を有する場合には、最後の軌跡情報を実行する。
 管理部1012は、モード入力部1091の情報を基に、ロボットアーム1010の動作の実行を管理し、モード入力部1091によるモードの切換出力に基づいて、教示制御部1093又は再生制御部1094の制御を切換えて実行する。モード入力部1091より「教示を行う」というモードを示す「1」が管理部1012に通知された場合、管理部1012は、教示制御部1093の制御を開始する。モード入力部1091より「再生を行う」というモードを示す「2」が管理部1012に通知された場合、管理部1012は、再生制御部1094の制御を開始する。モード入力部1091より「実行しない」というモードを示す「0」が管理部1012に通知された場合は、管理部1012は、ロボットアーム1010を移動停止する制御を行う。
 なお、管理部1012は、「教示を行う」というモードを示す「1」を通知された場合、初期動作として、内部で保持する教示の初期位置に手先1011を移動した後に、教示制御部1093の制御を行う。
 <直接教示の課題1>
 ロボット装置1000を用いて、柔軟物1040の組立て作業の軌跡を教示して、その軌跡の再生を行った際に、組立てが失敗する場合がある。教示時と、再生時の柔軟物1040の曲がり方の違いを図3A~図4D、図23A~図23Dを用いて説明する。
 図3A~図3Dは、教示時に、柔軟物1040の第二端1042が挿入口1051に近づく際の断面の一例を示す。
 図3Aに示すように、柔軟物1040と挿入口1051の周囲部分1051aとは、接触していない状態にある。図3A中、柔軟物1040の左側の第一端1041は、固定部1030に固定されている。柔軟物1040の第一端1041は、固定部1030により固定され、柔軟物1040の第二端1042は、固定されていない。この段階は、非接触段階と称す。
 次に、操作者がロボットアーム1010を操作して、柔軟物1040を移動させ、柔軟物1040の一部(第二端1042)が、図3Bに示すように挿入口1051の周囲部分1051aと接触する。この段階では、柔軟物1040の第二端1042の一部が挿入口1051の周囲部分1051aに接触しているだけで、挿入口1051に対する柔軟物1040の向きの調整ができていない。この段階は、接触段階と称す。
 更に、操作者によって移動された柔軟物1040の第二端1042は、図3Cに示すように挿入口1051の周囲部分1051aにしっかりと接触し、第二端1042が挿入口1051に挿入可能な状態になる。この際、柔軟物1040の両端1041,1042が拘束されている状態になり、多くの場合、柔軟物1040は変形して曲がる。ここでは、柔軟物1040は、下に凸に曲がった状態を示す。以降、この段階を到達段階と呼ぶ。
 最後に、操作者によって移動された柔軟物1040は、図3Dに示すように挿入口1051に奥まで挿入される。以降、この段階を完了段階と呼ぶ。
 図23A~図23Dは、図3A~図3Dの各段階を別の方向(図1のY軸上から下へ見た方向)から見た断面を示す。図23Bに示すように、非接触段階(A),接触段階(B)では、柔軟物1040の(XZ平面における回転)方向と、挿入口1051の(XZ平面における回転)方向は一致していない。一方、図23C~図23Dに示すように、到達段階(C)、完了段階(D)では柔軟物1040の(XZ平面における回転)方向と、挿入口1051の(XZ平面における回転)方向は一致する。すなわち図3Bの接触状態は、柔軟物1040の第二端1042の一部が挿入口1051に接触している段階であるのに対して、図3Cの到達状態は、柔軟物1040の第二端1042の全体が挿入口1051に接触した段階である。
 本発明者が行った実験では、完了段階で、柔軟物1051は毎回、曲がっていた。図3Dでは、柔軟物1040は下向きに凸状に曲がった状態を示している。図3Dの段階では、柔軟物1040は図3Cの段階より更に曲がった状態になる。また、柔軟物1051を曲げないでまっすぐな状態で、挿入口1051に挿入することは困難であった。
 このような教示を行った後、教示した軌跡上に手先1011を移動する再生を行ったとき、ほとんどの場合で、柔軟物1040は挿入口1051に挿入されない。すなわち、挿入作業の再現は失敗する。
 図4A~図4Dは、挿入の再現が失敗した場合の、柔軟物1040と挿入口1051との位置関係の一例を示す。図4Aから図4Bは、図3Aから図3Bの場合と同様に柔軟物1040が移動する。
 次に、図4Cで、柔軟物1040は挿入口1051の隙間にうまく入らず、挿入口1051の入口で曲がってしまう。図4Cは、柔軟物1040が、図3C又は図3Dのときとは逆向きに曲がり、上向きに凸状となる。
 更に、柔軟物1040は挿入口1051の方に押されることで、柔軟物1040は図4Dに示すように更に上向きに凸状に曲がる。
 以上のように、ロボットアーム1010を用いて柔軟物1040の第二端1042を挿入口1051に挿入する作業を再生する場合、柔軟物1040の第二端1042は、毎回の再生ごとに挿入口1051の接触位置が微妙にずれ、柔軟物1040の曲がり方も、再生の度に微妙にずれる。そのため、挿入作業の再現は困難である。
 柔軟物の曲がり方が異なる理由は、図3A又は図4Aの状態で、固定部1030に柔軟物1040が異なる曲がり方で取り付けられるためであるか、図4B又は図4Bの状態で、柔軟物1040の第二端1042が挿入口1051に毎回異なる曲がり方で曲がって接触するためであると考えられる。
 以上のように、再生時の挿入失敗の原因は、柔軟物1040の曲がり方の分布に基づくと考えられる。また、教示時には、教示時の曲がり方に適するように、操作者が微妙な操作で挿入を行うのだが、再生時には、教示時と異なる曲がり方をしていて、再生時の曲がり方に応じた微妙な操作で再生が行われないということである。
 よって、特許文献1のような力制御を行った場合には、再生時に、教示時と同じ力変化が再現される制御が行われるが、再生時には、教示時とは異なる曲がり方をしている。かつ、再生時の曲がり方に対応する教示は実際には行われていないため、力制御では、挿入が失敗する場合が発生する。
 次に、前記ロボット装置1000Aにおいて、前記の教示を行ったときの再生時の挿入の成功率を調べる実験を繰り返し行った。その結果、教示時の図3Cの段階における、柔軟物1040の第一端1041の向きによって、再生が成功する確率が変わることを本発明者は確認した。 以下、詳細を説明する。図5A~図5Bは、柔軟物1040の第一端1041の向きと柔軟物1040の曲がり具合との関係を示す図である。図5Bにおける柔軟物1040は、図5Aにおける柔軟物1040よりも曲がった状態である。前記ロボット装置1000Aにおいて、前記行った実験では、教示時に図5Bのような教示を行った場合の方が、図5Aのような教示を行った場合よりも、挿入の成功率が高かった。図6は、教示時の柔軟物の曲がり具合の評価と、各教示データを用いて再生を20回行ったときの挿入の成功確率を示す表である。ここで、曲がり具合の評価方法については、後述する。図6の表では、教示時の柔軟物がより曲がっているほど、再生を行った時に挿入の成功確率が高くなっている。また、成功するときの曲がり具合と、失敗するときの曲がり具合とは、微妙な差があるが、その微妙な差が、成功率に大きく影響していることが分かる。図6では、曲がり具合は11.5までとなっている。これは、操作者がこれ以上柔軟物1040を曲げて挿入することは出来なかったためである。
 図4Eは、操作者が、柔軟物1040を曲がり具合の最大値を越えて曲げた場合に想定される柔軟物1040の様子を示す図である。実線の位置1040gにある柔軟物1040を、操作者が更に曲げようとした場合、柔軟物1040は点線の位置1040dに移動する。すなわち、挿入口1051から柔軟物1040の先端が弾き出されてしまうことになり、柔軟物1040を挿入口1051に挿入することは出来ない」。しかしながら、実際には、操作者は、柔軟物1040を上手く制御するため、このような教示の失敗は生じなかった。すなわち、柔軟物1040を曲がり具合の最大値を越えて曲げるような教示が行われることはなかった。また、再生時にも、このような失敗は生じなかった。
 さて、以上により、挿入口1051の入口に到達した柔軟物1040が曲がった状態から挿入口1051への柔軟物1040の挿入が行われると、再生時の挿入成功率が向上することが分かる。図5Aのように、挿入口1051の入口に柔軟物1040が到達した際に、柔軟物1040が曲がっていない状態であると、あるいは、柔軟物1040の曲がり方が不十分な状態であると、(図3Cの段階から図3Dの段階に移行する作業を)再生するときに、柔軟物1040が上に凸に曲がる場合もあれば、下に凸に曲がる場合もある。しかし、図5Bのように、柔軟物1040が下に凸に曲がった状態から柔軟物1040の挿入を開始すると、(図3Cの段階から図3Dの段階に移行する作業を)再生するときに、柔軟物1040は、下に凸を維持したまま移動することになり、柔軟物1040の挿入が成功する。
 以上より、図5Bの姿勢を取る教示が、図5Aの姿勢を取る教示よりも有効な教示であると判定できる。ところが、操作者が複数回教示を行うと、圧倒的に図5Aの姿勢を取る教示が多く、図5Bの姿勢を取る教示は少ない。この理由は、図5Aでは、操作者が進行方向に柔軟物1040を押せば良いのに対して、図5Bでは、操作者が柔軟物1040を曲げるための回転力を柔軟物1040に加えながら、操作者が図5B中の右方向に柔軟物1040を押さなければない。これは、操作者が力を加える方向と、操作者が柔軟物1040を移動する方向が異なる方向となり、作業が行いづらい。
 本発明の第1実施形態では、教示によって得られた軌跡が、挿入作業を成功しやすい軌跡か、成功しにくい軌跡かの評価を行う評価装置を、ロボット装置の教示装置に備えるものである。すなわち、図5Bの姿勢を取る教示に、図5Aの姿勢を取る教示よりも高い評価を与える教示装置である。
 (第1実施形態)
 図7は、本発明の第1実施形態のロボット装置1000Aを示す。直接教示の構成におけるロボット装置1000と同様に、ロボット装置1000Aは、関節駆動部又は駆動部を備えるロボットの一例としてのロボットアーム1010Aを用いる。ロボットアーム1010Aのハンド(固定部)1030に作業対象物の一例である柔軟物1040を保持し、固定部1030を所定の方向に移動させることによって、柔軟物1040を、ロボットアーム1010が設置されている設置床1010Hに固定された物体載置台1050Hに保持された物体1050に固定された挿入口1051に挿入する、嵌め合わせ作業を教示するか、又は、教示及び再生する。図7において、図1に示した構成要素と同様の要素は、直接教示の構成における説明と同様の要素であり、同じ符号を付す。大きく異なる要素は、第二力センサー1021と、到達判定部2010と、通知部2060と、通知生成部2065と、評価保持部2050と、選択部2070と、曲がり基準保持部2020と、曲がり取得部2030とである。少し異なる要素は、管理部1012Aと、再生制御部1094Aとである。
 ここで、ロボット装置1000Aは、大別して、ロボットアーム1010Aと、第一力センサー1020と、第二力センサー1021と、教示装置1000ATと、再生制御部1094Aとで構成されている。
 教示装置1000ATは、位置姿勢取得部1013と、移動位置決定部1092と、教示制御部1093と、モード入力部1091と、モード保持部1096と、軌跡情報保持部1095と、管理部1012と、到達判定部2010と、通知部2060と、通知生成部2065と、評価保持部2050と、選択部2070と、曲がり基準保持部2020と、曲がり取得部2030とで構成されている。
 以下、図1と異なる図7の要素を主として説明する。
 第二力センサー1021は、手先1011と固定部1030との間に設置された力センサーであり、固定部1030に加わった力を取得する。例えば、柔軟物1040の第二端1042が挿入口1051の周囲部分1051aに接触したときの力を第二力センサー1021で取得する。取得した情報は、第二力センサー1021から到達判定部2010に出力する。
 到達判定部2010は、第二力センサー1021からの情報を基に、柔軟物1040の第二端1042が挿入口1051の入口に到達したかを判定する。具体的には、第二力センサー1021からの情報を基に、図3B又は図3Cの状態に達したかを到達判定部2010で判定する。第1実施形態では、第二力センサー1021が取得した力が、所定の力より大きくなった場合には、柔軟物1040の第二端1042が挿入口1051に到達したと到達判定部2010で判定する。逆に、第二力センサー1021が取得した力が、所定の力以下の場合には、柔軟物1040の第二端1042が挿入口1051に到達していないと到達判定部2010で判定する。到達判定部2010で判定した判定結果の情報は、管理部1012Aに出力される。
 曲がり基準保持部2020は、柔軟物1040の曲がり具合を判定する際に基準となる情報、例えば、挿入口1051の穴の向き2170などの情報を予め格納(保持)する。
 曲がり取得部2030は、柔軟物1040が、どの程度曲がっているかを示す曲がり具合を取得する。第一実施形態では、柔軟物1040の曲がり具合の判定は、曲がり基準保持部2020で保持された基準となる情報を基に、曲がり取得部2030にて行う。
 まず、第1実施形態における、曲がり取得部2030での曲がり具合の評価の仕方を、図5Aを用いて説明する。第一実施形態では、到達判定部2010で到達が判定された時に、曲がり取得部2030が取得した曲がり具合を、その教示が行われた時の曲がり具合の評価とする(詳細は、管理部1012にて説明する。)。図5Aにおいて、柔軟物1040の第一端1041側の先端の向き2150と柔軟物1040の第二端1042側の先端の向き2160とのなす角度が、180度または-180度(Πラジアンまたは-Πラジアン)の場合、柔軟物1040は真っ直ぐな状態であり、その角度が0度(0ラジアン)に近い程、柔軟物1040は曲がった状態であると曲がり取得部2030で判定する。
 よって、第一端1041側の先端の向き2150の方向と、第二端1042側の先端の向き2160の方向のなす角度に基づいて、柔軟物1020の曲がり具合を曲がり取得部2030で評価することができる。第二端1042側の先端の向き2160の方向は、曲がり取得部2030一例としての、レーザーレンジファインダ、又は、カメラで撮影した画像を画像処理する画像処理部等の装置で取得することができる。
 ここでは、別の例として、それらの装置を使わない曲がり取得部2030の場合を説明する。第二端1042側の先端の向き2160の方向の替わりに、曲がり取得部2030において、ロボットアーム1010が設置されている設置床1010Hに固定された物体載置台1050Hに保持された物体1050の挿入口1051の穴の向き2170を用いて近似することにする。柔軟物1040の第二端1042が、挿入口1051に到達した場合には、第二端1042側の先端の向き2160の方向と挿入口1051の穴の向き2170の方向とは等しくなるので、この近似は妥当と考えられる。このとき、第1実施形態における曲がり基準保持部2020は、挿入口1051の穴の向き2170の情報(予め決められた方向の一例としての情報)を予め保持する。例えば、挿入口1051の穴の向き2170が図7における-X方向であるとき、挿入口1051の穴の向き2170は(-1、0、0)となる。図8は、曲がり基準保持部2020が保持する挿入口1051の穴の向き2170の情報の一例であって、前記の(-1、0,0)を保持している状態を示す。なお、ここでは、物体1050は、例えば物体載置台1050Hなどにより作業空間に保持されて固定されているものとし、挿入口1051の穴の向き2170は、作業中に変化することはないものとする。
 なお、もし、作業中に、物体1050の向きが変化する場合には、カメラで撮影した画像を画像処理部で画像処理等により処理して、物体1050の向きの変化を曲がり取得部2030で取得し、曲がり取得部2030で取得した向きの変換に基づいて、挿入口1051の穴の向き2170を曲がり取得部2030で算出して、曲がり基準保持部2020に保持する構成としても構わない。例えば、図7の状態から、物体1050がZ軸方向に180度回転した場合、図7における挿入口1051の穴の向き2170(-1、0、0)をZ軸方向に180度回転して得られる(1、0、0)を物体1050が移動した後の穴の方向とする。
 挿入口1051の穴の向き2170は、挿入口1051の形状と挿入口1051がどのような向きに配置されているかによって決定される。ここでは、挿入口1051の形状及び向きは変化しないものとする。すなわち、挿入口1051の穴の向き2170自体は変化しないものとし、予め操作者がキーボード、マウス、又は、タッチパネル等の入力装置900を使用して、曲がり基準保持部2020に予め入力する。なお、撮影装置の一例としてのカメラで撮影して、撮影した画像データの画像処理等を行うことで、挿入口1051の穴の向き2170を曲がり取得部2030で取得して、曲がり基準保持部2020に保持するようにしても構わない。
 このようにして、曲がり取得部2030は、柔軟物1040が、どの程度曲がっているかを示す曲がり具合を取得する。すなわち、本第1実施形態における柔軟物1040の曲がり具合は、既に説明したとおり、第一端1041側の先端の向き2150と、挿入口1051の穴の向き2170とがなす角度によって曲がり取得部2030で評価する。挿入口1051の穴の向きは、前述の曲がり基準保持部2020より、曲がり取得部2030で取得する。
 第一端1041は、手先1011と一緒に移動するので、第一端1041の向きは、常に、手先1011の向きに対して一定となる。よって、曲がり取得部2030は、手先1011の向きを検出することで、第一端1041の向きを検出することができる。
 ここでは、説明を簡単にするために、手先1011の方向と、第一端1041の方向とが同じ方向になるように、柔軟物1040は手先1011に取り付けられているものとする。例えば、図9における固定部1030の向きをベクトルで(―1,1,0)とするならば、第一端1041の向きも同じく(-1、1,0)となる。
 以降、手先1011をどのような向きに動かしても、第一端1041の向きは手先1011の向きと一致する。なお、手先1011の向きは、位置姿勢取得部1013より算出して、曲がり取得部2030に入力される。
 図9の第一端1041側の先端の向き2150を(α、α、α)とし、図9の挿入口1051の穴の向き2170を(T,T,T)とし、第一端1041側の先端の向き2150と挿入口1051の穴の向き2170とのなす角度をθとしたとき、は内積の公式より、
Figure JPOXMLDOC01-appb-M000001
.....(1)

となり、第一端1041側の先端の向き2150と挿入口1051の穴の向き2170とのなす角度θは
Figure JPOXMLDOC01-appb-M000002
.....(2)
となる。ここで、arccosはコサイン関数の逆関数を示す。
 先に記載した通り、第一端1041側の先端の向き2150と挿入口1051の穴の向き2170とのなす角度θが180度または-180度(Πラジアンまたは-Πラジアン)の場合、柔軟物1040は真っ直ぐな状態であり、0度(0ラジアン)に近い程、柔軟物1040は、曲がった状態と曲がり取得部2030で判定する。
 ここでは、曲がり具合の評価F(θ)を、
Figure JPOXMLDOC01-appb-M000003
.....(3)
と定義する。上式において、|θ|は、角度θの絶対値を示す。
 このように定義した場合、角度θの定義域は「-Π≦θ≦Π」となることより、曲がり具合の評価F(θ)の値域は「0≦F(θ)≦180」となる。また、柔軟物1040が真っ直ぐに近い程、角度θはΠラジアン(または-Πラジアン)に近い値になり、曲がり具合の評価F(θ)は0に近い値となる。柔軟物1040が折れ曲がっていて角度θが0ラジアンに近い程、角度θは0に近い値となり、曲がり具合の評価F(θ)は180に近い値となる。また、曲がり具合の評価F(θ)は、柔軟物1040の第一端1041側の先端の向き2150の逆向きのベクトル(第一端1041側の先端の向き2150を-1倍したベクトル)と、柔軟物1040の第二端1042側の先端の向き2160とのなす角度の絶対値である。
 なお、ここでは、柔軟物1040が2箇所以上で曲がる等の特別な場合を除外して考えている。柔軟物1040が2箇所以上で曲がった場合は、柔軟物1040が曲がっていない場合以上に、教示の再現が困難であるので、画像処理等で柔軟物1040が2箇所以上で曲がっていることが確認し、柔軟物1040が曲がっていることが確認された場合には、曲がり取得部2030において、曲がり具合の評価を低い値にする構成としても構わない。
 曲がり取得部2030で取得した曲がり具合の評価の情報は、管理部1012Aに出力される。
 評価保持部2050は、到達判定部2010が到達を判定したときの曲がり取得部2030が取得した曲がり具合の評価を、後述の管理部1012Aより取得して保持する。複数回の教示を行った場合には、各回ごとに前記の曲がり具合の評価を評価保持部2050で保持する。図10は、評価保持部2050が保持するデータ構造を示す。n段目はn回目の教示における評価を示す。評価保持部2050は、管理部1012Aより取得した曲がり具合の評価値をデータ構造の最後に追加する。
 通知部2060は、評価保持部2050が保持する評価の情報を通知生成部2065を介して操作者に通知する。ここでは、通知部2060は、一例として、評価保持部2050が保持する評価の情報を通知生成部2065を介して表示するディスプレイである。
 通知生成部2065は、評価保持部2050が保持する評価の情報を基に、通知部2060が操作者に通知する通知内容を生成する。ここでは、通知部2060の一例としてのディスプレイに表示する画像を生成する。図11は、通知生成部2065によって生成する画像を示す。図11に示すように、ディスプレイの画面2060sの上部には、評価保持部2050が保持する評価値のうち、上位3つの評価値を示す。画面2060sの下部には、直近に取得した評価値を表示する。
 以下、通知生成部2065が行う通知部表示用評価値の生成処理の流れを、図12を用いて説明する。
 まず、ステップS8010で、通知生成部2065は処理を開始する。
 次いで、ステップS8020で、通知生成部2065は、評価保持部2050が保持する評価の情報のうち、最も評価が高い教示が行われたのが何回目かを示す情報D1と、その評価(一位評価)の値の情報V1とを取得する。図10は、評価保持部2050が保持する評価の情報の例を示す。図10の場合、D1及びV1はそれぞれD1=3、V1=18.4となる。
 次いで、ステップS8030で、通知生成部2065は、評価保持部2050が保持する評価の情報のうち、2番目に評価が高い回数を示す情報D2と、その評価(二位評価)の値V2とを取得する。図10の場合、D2及びV2はそれぞれD2=2、V1=18.0となる。
 次いで、ステップS8040で、通知生成部2065は、評価保持部2050が保持する評価の情報のうち、3番目に評価が高い回数を示す情報D3と、その評価(三位評価)の値V3とを取得する。図10の場合、D3及びV3はそれぞれD3=5、V1=17.8となる。
 次いで、ステップS8050で、通知生成部2065は、取得したD1からD3の情報と、V1からV3の情報とを、図11のようにD1からD3を表の2段目に、V1からV3を表の3段目にあてはめて上部の表を生成する。なお、表の1段目、枠外の「曲がり具合の評価ベスト3」は常に固定の文字列とする。
 次いで、ステップS8060で、通知生成部2065は、評価保持部2050が保持する最後の評価(最終評価)V_LASTの情報を取得する。評価保持部2050が保持する評価の情報は、図10の場合、V_LAST=16.5となる。
 次いで、ステップS8070で、通知生成部2065は、V_LASTを図11のように、表の下部に表示する文字列として、表を生成する。なお、表の下部の1段目、枠外の「今回」は常に固定の文字列とする。
 なお、ここで、V_LASTの値と、V3の値を比較し、V_LASTの方が小さい場合には、「もっと曲げるようにして下さい。」との文字列を表示する構成であっても構わない。すなわち、今回の評価が、上位3位までの評価よりも悪い場合に、操作者に対して、より柔軟物を曲げるよう通知を行う構成としてもよい。ここで、V_LASTとV3を比較するのは、一例であって、V3以外の他の順位の評価(V1、、、)や特定の評価値とV_LAST比較する構成であっても構わない。また、V1からV3の平均の値とV_LASTを比較する構成であっても構わない。また、V_LASTのV_1、、、を比較して、V_LASTの順位を通知する構成であっても構わない。
 次いで、ステップS8080で、通知生成部2065は処理を終了する。
 このようにして、通知生成部2065で評価の処理を行い、図11に示す通知部表示用評価値を生成する。
 選択部2070は、教示が複数回行われた場合に、いずれの教示で生成した軌跡を再生するかを選択して決定する。再生する軌跡の決定は、曲がり取得部2030で取得して管理部1012Aを介して評価保持部2050で保持された評価の情報に基づいて、選択部2070で行う。ここでは、柔軟物1040の第二端1042が挿入口1051の入口に到達したときの曲がりが大きかった軌跡データを選択部2070で選択する。すなわち、評価保持部2050が保持する複数の評価の情報のうち、最も高い評価を行ったのが、何番目の教示によるものであるかを選択部2070で選択する。選択部2070で選択した情報は、管理部1012Aに出力されて、再生時に使用される。
 再生制御部1094Aは、教示した作業を再現する際の制御を行う。再生制御部1094Aは、軌跡情報保持部1095が保持する位置および姿勢に、関節部のモータ912Mをそれぞれ駆動して、手先1011を移動する制御を行う。軌跡情報保持部1095が保持する軌跡の移動が終了した場合、再生制御部1094Aはロボットアーム1010Aを駆動停止する制御を行う。なお、軌跡情報保持部1095が複数の軌跡データを有する場合には、選択部2070が選択した軌跡を再生制御部1094Aで実行する。
 管理部1012Aは、ロボットアーム1010Aの動作全般を管理する。管理部1012Aは、教示制御部1093の制御と、再生制御部1094Aの制御とを切換えて、ロボットアーム1010Aの動作を制御する。また、管理部1012Aは、到達判定部2010が到達を判定した時刻に曲がり取得部2030が取得した曲がり具合の評価を、その教示全体に対する曲がり具合の評価として、評価保持部2050に保持し、管理1012Aは通知生成部2065に、通知生成を実行するための指示を与える。
 <ロボットアーム1010Aの処理の流れ>
 管理部1012Aによるロボットアーム1010Aの処理の流れを、図13を用いて説明する。
 まず、ステップS9010で、管理部1012Aは処理を開始する。
 次いで、ステップS9020で、管理部1012Aは、モード入力部1091より通知を取得する。すなわち、操作者がロボットアーム1010Aで行う3つの処理モードのうち、「再生を行う」、「教示を行う」、「実行しない」のいずれが入力されているかを、管理部1012Aは、モード入力部1091より取得する。
 次いで、ステップS9030で、管理部1012Aは、取得した通知によって分岐を行う。すなわち、取得した通知が「実行しない」を示す「0」であった場合、ステップS9020に分岐し、それ以外の場合はステップS9040に分岐する。
 ステップS9040で、管理部1012Aは、取得した通知によって分岐を行う。モード入力部1091が取得した入力が「教示を行う」を示す「1」であった場合、ステップS9045に分岐し、「再生を行う」を示す「2」であった場合ステップS9130に分岐する。
 ステップS9045で、教示制御部1093は、それぞれのモータ912Mの駆動制御を行い、手先1011を予め定めた初期位置に移動する。
 次いで、ステップS9047で、移動位置決定部1092は、第一力センサー1020で取得された力、すなわち、操作者が操作部1090に加えた力に基づいて、手先1011を移動する位置を決定する。
 次いで、ステップS9050で、管理部1012Aによる教示制御への切換えを基に、教示制御部1093は、それぞれのモータ912Mの駆動制御を行い、初期位置から、移動位置決定部1092で決定した移動位置に手先1011を移動する制御を行う(図14A参照)。
 次いで、ステップS9060で、到達判定部2010は、柔軟物1040の第二端1042が挿入口1051に到達したかを判定する。到達判定部2010で到達が判定された場合(図14B参照)、ステップS9070に分岐し、到達判定部2010で到達が判定されなかった場合、ステップS9120に分岐する。なお、教示が開始されてから、既に到達判定を行っている場合にもステップS9120に分岐する。
 ステップS9070で、到達判定部2010で到達が判定された後、曲がり取得部2030は、柔軟物1040の曲がり具合の評価を取得する。
 一例として、曲がり取得部2030は、位置姿勢取得部1013と曲がり基準保持部2020との情報を基に、柔軟物1040の曲がり具合の評価の情報を取得して、取得した柔軟物1040の曲がり具合の評価の情報を管理部1012Aに出力する。
 次いで、ステップS9080で、管理部1012Aは、ステップS9070で曲がり取得部2030により取得した曲がり具合の評価を、評価保持部2050に格納する。
 次いで、ステップS9090で、通知生成部2065は、評価情報等の、操作者に通知部2060で通知するための表示画面を生成する。すなわち、図12の処理を行う。
 次いで、ステップS9100で、通知部2060は、通知生成部2065が生成した表示画面をディスプレイに表示する。
 次いで、ステップS9120では、モード入力部1091から管理部1012Aに新しい通知があったか否かによる分岐を行う。すなわち、モード入力部1091から管理部1012Aに新しい出力がなかった場合(モード入力部1091に新しい入力がなされなかった場合)、ステップS9047に分岐し、教示を継続する。モード入力部1091から管理部1012Aに新しい出力があった場合にはステップS9020に分岐し、入力に応じた処理を行う。
 一方、ステップS9130では、選択部2070は、評価保持部2050で保持された評価の情報に基づいて、教示データの中で評価が高い軌跡データを選択して、選択した情報は、管理部1012Aに出力される。
 次いで、ステップS9140で、管理部1012Aによる再生制御への切換えを基に、再生制御部1094Aは、ステップS9130で選択した軌跡データを再生する。再生終了後に、ステップS9020に戻る。
 このときの具体的な再生は、再生制御部1094Aの制御の下に各関節部のモータ912Mがそれぞれ制御されて、以下のような動作を行う。
 すなわち、まず、図14Aでは、柔軟物1040の左側の第一端1041は、ロボットアーム1010Aの固定部1030に固定されている。柔軟物1040の第二端1042は、固定されていない。図14A中、ロボットアーム1010Aの固定部1030の右方向への移動により、柔軟物1040の第二端1042が挿入口1051に近づく段階であり、柔軟物1040と挿入口1051の周囲部分1051aとは、接触していない状態にある。この段階は非接触段階である。
 次に、図14Bに示すように、ロボットアーム1010Aの固定部1030がさらに右方向に移動して、柔軟物1040の第二端1042が挿入口1051にさらに近づき、柔軟物1040の一部(第二端1042)が、挿入口1051の周囲部分1051aと接触する。この段階では、柔軟物1040の第二端1042の一部が挿入口1051の周囲部分1051aに接触しているだけで、挿入口1051に対する柔軟物1040の向きの調整ができていない。この段階は接触段階である。
 更に、図14Cに示すように、ロボットアーム1010Aの固定部1030が右方向に少し移動しつつ柔軟物1040中心付近周りに時計方向に回転移動する。この動作により、柔軟物1040の第二端1042は、挿入口1051の周囲部分1051aにしっかりと接触し、第二端1042が挿入口1051に挿入可能な状態になる。この際、柔軟物1040の両端1041,1042が拘束されている状態になり、かつ、柔軟物1040が下向き凸に曲がった状態となるように変形して曲がる。この段階は到達段階である。
 最後に、図14Dに示すように、ロボットアーム1010Aの固定部1030が到達段階の回転角度(挿入口1051に対する傾斜角度)を維持しながら右方向に少し移動して、柔軟物1040の第二端1042が挿入口1051に奥まで挿入される。この段階は完了段階である。柔軟物1040は、図14Dの段階では、図14Cの段階より更に曲がった状態になっている。
 このようにして、曲がり取得部2030が取得した評価の情報に基づいて教示装置1000ATで生成された教示データを再生制御部1094Aで再生すれば、従来困難であった柔軟物1040の挿入作業などの作業を精度良く行うことができる。
 第1実施形態において、前記した管理部1012Aによるロボットアーム1010Aの処理によれば、ロボット装置1000Aにおける教示では、曲がり取得部2030は、柔軟物1040の第二端1042が挿入口1051に挿入される際の柔軟物1040の曲がり具合の評価を行う。この評価は、行った教示を再生した際の成功率の目安とすることができる。
 操作者は、通知部2060によって、行った教示の評価を知ることができる。操作者は、通知部2060で得られた教示の評価に基づいて、更に教示を続けるか、教示を終了するかを決定することができる。例えば、操作者が、教示を何度(例えば、五回程度)行っても評価が上がらなくなった場合、それ以上、教示を繰り返しても効果が無いと操作者で判定して、操作者が教示を止めることができる。
 また、通知部2060から参考情報を通知するようにすれば、評価が上がらない場合、通知部2060からの参考情報を参考にして、教示の仕方を変えるか否かを決める参考とすることができる。通知部2060から参考情報としては、以下のような情報が例示できる。例えば、操作者が、教示を何度行っていく評価が上がらなくなって、教示を止めて、再生したところ、曲がり具合が足りず挿入が失敗したとする。そのような場合、通知部2060から「操作部の握り方を変えましょう」といった情報を操作者に通知することにより、操作者は、操作部1090の握り方を変えて、再度、教示を行って、より良い評価が得られるかを試みることができる。また、例えば、通知部2060から「操作者を交代しましょう」といった情報を操作者に通知することにより、他の操作者に替わって、より良い評価が得られるかを試みることができる。また、例えば、通知部2060から「柔軟物を変えましょう」といった情報を操作者に通知することにより、対象となる柔軟物1040が複数の会社で作られている場合などで、代用できる柔軟物がある場合に、柔軟物を代用物に替えて、より良い評価が得られるかを試みることができる。
 また、前記処理によれば、操作者は、通知部2060により、曲がり取得部2030が保持する評価の情報のうち評価が高い上位の評価を見ることができる。操作者が複数回の教示を行ったときに、評価が収束してきたか否かを操作者が知る参考にすることができる。例えば、評価が収束していない場合には、教示を繰り返せば、更に、良い評価が得られる可能性があることが操作者にわかる。一方、評価が収束してきた場合には、今と同じ教示を繰り返していても、高い評価の教示ができる可能性は低いことが操作者にわかる。
 選択部2070は、軌跡情報保持部1095が保持する複数の軌跡データのうち、評価が高かった軌跡データを再生に用いるか否かを決定する。よって、図1などのように前記「直接教示の構成」の場合に比べて、柔軟物1040の挿入作業の成功確率が高い再生作業を行うことができる。
 また、第1実施形態では、柔軟物1040のある点における柔軟物1040の向きの明確な定義を述べてこなかったが、柔軟物1040が線の場合は、線の法線の方向であり、長方形の場合は、長方形の長手方向沿いの中心線における接線の方向である。柔軟物1040の方向として、柔軟物1040の接線方向を用いずに、柔軟物1040の方向として表面の法線方向を用いても構わない。その際、曲がり基準保持部2020は、穴の向きの情報を保持する替わりに、穴に対する法線方向の向きの情報を保持する。また、式(3)の替わりに
Figure JPOXMLDOC01-appb-M000004
.....(4)
を用いる。
 また、曲がり基準保持部2020は、第二端1042の柔軟物1040の向きの情報を保持する場合を説明したが、柔軟物1040の第二端1042が挿入口1051に挿入された状態で、かつ柔軟物1040が曲がっていない状態にしたときの柔軟物1040の第一端1041の向きの情報を保持する構成であっても構わない。図15は、柔軟物1040の第二端1042が挿入口1051に挿入された状態で、かつ、柔軟物1040が曲がっていない状態を示す。操作者は、柔軟物1040を、このように曲がっていない状態にして、このときの柔軟物1040の第一端1041の姿勢を曲がり基準保持部2020に登録しても構わない。このとき、式(3)の替わりに
Figure JPOXMLDOC01-appb-M000005
.....(5)
を用いる。このとき、角度θは、「柔軟物が曲がっていないときの第一端の向き」と「位置姿勢取得部1013より取得したその時点での第一端の向き」とのなす角度である。角度θの絶対値|θ|が小さいほど、その時点の第一端1041の向きは「柔軟物が曲がっていないときの第一端の向き」に近い。よって、柔軟物1040は曲がっていない。角度θの絶対値|θ|が大きい程、その時点での第一端1041の向きは「柔軟物が曲がっていないときの第一端の向き」から離れた向きである。よって、柔軟物1040は曲がっている。
 また、曲がり基準保持部2020は、柔軟物1040の第二端1042が挿入口1051に挿入された状態で、かつ柔軟物1040が曲がっていない状態にしたときの柔軟物1040の第一端1041の位置(X_P,Y_P,Z_P)を保持する構成であっても構わない。すなわち、曲がり基準保持部2020は、図15における柔軟物1040の第一端1041の位置の情報を保持する。そして、「曲がり取得部2030は位置姿勢取得部より取得した第一端の位置」と「曲がり基準保持部2020が保持する位置」との距離を、曲がり具合の評価としても良い。
 前記の距離が小さいほど、その時点の第一端の位置「柔軟物が曲がっていないときの第一端の位置」に近い。よって柔軟物1040は曲がっていない。前記の距離が大きい程、その時点での柔軟物1040の第一端1041の位置は「柔軟物が曲がっていないときの第一端の位置」から離れた位置である。よって、柔軟物1040は曲がっていることになる。
 第1実施形態における管理部1012Aは、到達判定部2010が到達したと判定してから後に、曲がり取得部2030が取得した曲がり具合の評価を通知する構成を示している。しかしながら、このような構成では、通知が行われた時点では既に評価が決定しているため、その回の操作中に、操作者は評価を良くするための行動を取ることは出来ない。
 そこで、到達判定部2010で到達が判定される以前から、評価および、通知を行う構成としても構わない。また、その際に得られた評価の値が、評価保持部2050が保持する評価の中で所定の順位よりも低い(悪い)値であったときに、「柔軟物をもっと曲げて下さい」などの画面通知又は音声通知などの通知を通知部2060で行う構成であっても構わない。
 なお、柔軟物1040は、板状の柔軟物が剛体の物体の挿入口の周囲に当接して柔軟物の一箇所が湾曲しつつ挿入口1051に挿入されるものとして説明している。このような柔軟物1040の具体的な例としては、板状のフレキシブル基板又は、円筒状のチューブ若しくはケーブルなどであっても構わない。図16は、柔軟物1040が円筒状のチューブ1040hである場合を示す図である。円筒状のチューブチューブである柔軟物1040hは、その第二端1042の開口1040iを挿入口1051の周囲部分1051aの外側に被せられる以外は、第1実施形態と同様である。一方、物体1050としては、フレキシブル基板と電気的に接続される回路基板などのコネクタ、チューブ又はケーブルを差し込んで接続する接続管などが例示できる。
 このように第1実施形態によれば、柔軟物1040が物体1050の挿入口1051に到達した際に、柔軟物1040を曲げる操作を行ってから挿入する制御を行うように教示するとき、柔軟物1040の曲がり具合の評価の情報を曲がり取得部2030で取得する。曲がり取得部2030で取得した曲がり具合の評価の情報を基に、教示によって得られた教示データが、柔軟物1040が挿入口1050に到達した際に、柔軟物1040を曲げる操作を行ってから挿入する教示を満たすかを判定して、前記曲がり取得部2030が取得した前記評価の情報に基づいて、通知部2060により、教示に関する所定の通知を行うことができる。又は、通知の代わりに、曲がり取得部2030が取得した前記評価の情報に基づいて複数の教示データの中から前記評価の高い教示を選択部2070で選択することができる。この結果、より評価の高い教示を使用することが可能となり、柔軟物1040を取扱う作業を精度良く行うことができる教示データを取得することができて、従来困難であった柔軟物1040の挿入作業などの作業を精度良く行うことができる。
 <到達判定部の別構成>
 第1実施形態では、到達判定部2010において、第二力センサー1021が取得した力が所定の力より大きくなった時刻を到達段階に達した時とみなし、そのとき時に(その後に)曲がり取得部2030より曲がり評価を取得する構成を示している。これに対して、本別構成では、前記構成の替わりに、第1実施形態では、到達判定部2010において、第二力センサー1021が取得した力が所定の力より大きくなった時から所定時間(例えば、100ミリセック)経過した時を到達段階に達した時とみなす。すなわち、第二力センサー1021が取得した力が所定の力より大きくなった時から所定時間経過したのち、曲がり取得部2030より曲がり評価を取得する。
 本構成では、第1実施形態の各部に加えて、時刻取得部2040と、タイマ部2050とを用いる(図7参照)。
 時刻取得部2040は、時刻を取得する。例えば、カウンタ回路を用いて時刻取得を実現する。
 タイマ部2050は、時間の計測開始が指定された後、指定された時間が経過した時に、通知を行う装置である。具体的には、例えば、タイマ2050は、外部より計測の開始の通知を受けて、時刻取得部2040より時刻を取得し、以降、時刻取得部2040より時刻(またはカウンタの値)を取得し続けて、指定された時間が経過した否かを判定し、指定された時間が経過したと判定した場合に、外部に時間経過の通知を行う。
 更に具体的には、例えば、柔軟物1040の第二端1042が挿入口1051の周囲部分1051aに接触した時刻(第二力センサー1021が取得した力が所定の力より大きくなった時刻)に、タイマ部2050に計測の開始を指示し、タイマ部2050より所定時間経過の通知を受けて、曲がり取得部2030より曲がり評価を取得する。
 <第1変形例>
 第1実施形態に示した曲がり取得部2030による曲がり具合の評価は、曲がり具合の評価の取得方法の一例を示すものであって、他の方法であっても構わない。第1実施形態の第1変形例では、曲がり取得部2030を、撮影装置の一例としての多眼カメラ1520と、多眼カメラ1520で撮影した画像を画像処理する特徴点抽出部(画像処理部)1525とを備える曲がり取得部2030Cとして構成し、画像処理によって曲がり具合の評価を取得する。図17は、本第1変形例におけるロボットアーム1010Aの先端と柔軟物1040とを示す図である。
 特徴点1401、1402は、画像処理で柔軟物1040の曲がり具合を取得するために設けられた特徴点である。特徴点1402は、柔軟物1040の第二端1042に設けられた特徴点であり、特徴点1401は、柔軟物1040の真ん中の位置(第一端1041と第二端1042の中間の位置)に設けられた特徴点である。これらの特徴点1401,1402は、通常の柔軟物1040に互いに異なる色の油性マーカーを円形に塗るなどして設けられる。ここでは、特徴点1401は赤色であり、特徴点1402は緑色であるとする。また、作業空間には、特徴点1401,1402以外に赤色又は緑色の物体はないものとする。
 図18は本構成におけるロボット装置1000Cの構成を示す図である。第1実施形態におけるロボット装置1000Aと同様に、ロボット装置1000Cは、ロボットアーム1010Aと同じ構造のロボットアーム1010Cを用いて、柔軟物1040の第二端1042を、物体1050に固定された挿入口1051に挿入する作業を教示、又は、教示及び再生する。図18において、図7に示した構成要素と同様の要素は、第1実施形態の構成における説明と同様の要素である。以下、図7と異なる図18の要素を説明する。
 多眼カメラ1520は、特徴点1401、1402を撮影するカラーカメラである。ここでは、作業空間に対して固定したステレオカメラとする。
 特徴点抽出部1525は、多眼カメラ1520が撮影したそれぞれの画像から特徴点1401、1402を抽出し、抽出した柔軟物1040の先端の特徴点1401、1402に基づいて柔軟物1040の先端を抽出する。特徴点抽出部1525による特徴点1401、1402の抽出方法は多数の方法が知られている。ここでは、簡単な一例を示す。特徴点1401を取得する場合、まず、多眼カメラ1520の撮影画像を2値化して赤色の領域を特徴点抽出部1525で抽出する。撮影画像の各画素が赤色成分か否かを特徴点抽出部1525で判定し、特徴点抽出部1525において、赤色と判定した画素に対して1を割り当て、赤色でないと判定した場合には0を割り当てる。この際、赤色成分の明度が閾値以上であり、かつ、青色成分、緑色成分の明度が閾値以下である画素を赤色の画素と特徴点抽出部1525で判定する。
 画像中には、いくつかの赤色の領域(1が割り当てられた領域)ができるが、そのうち最大面積の領域を、特徴点抽出部1525で、特徴点1401の領域とみなし、特徴点抽出部1525において、領域の重心を特徴点1401の画像上での位置とする。特徴点1402についても同様に、緑色領域を特徴点抽出部1525で抽出して、位置を特徴点抽出部1525で算出する。特徴点抽出部1525は、ステレオ画像それぞれにおける特徴点1401、1402の位置を、後述の位置取得部1530へ出力する。
 また、特徴点抽出部1525は、特徴点1402の領域の面積が予め定めた閾値よりも小さい場合は、特徴点1402を抽出できなかったと判定する。判定結果を、位置取得部1530を介して、曲がり取得部2030Cへ出力する。柔軟物1040の第二端1042が挿入口1051に挿入された場合、特徴点1402は挿入口1051の中に入るので多眼カメラ1520で撮影されず、抽出できない。また、柔軟物1040の第二端1042が挿入口1051の周囲部分1051aに接触した場合にも、特徴点1402は挿入口1051によって隠れるので多眼カメラ1520で撮影されず、抽出できない。
 位置取得部1530は、多眼カメラ1520で取得したステレオ画像より、特徴点1401の位置(X1,Y1,Z1)及び特徴点1402の位置(X2,Y2,Z2)を算出する。通常のステレオ画像を用いた位置抽出方法により、位置取得を位置取得部1530で行って、取得した位置の情報を位置取得部1530から曲がり取得部2030Cに出力する。
 曲がり取得部2030Cは、位置取得部1530で算出した特徴点1402の位置と、手先1011の位置とに基づいて、曲がり具合の評価を行う。
 第1実施形態では、図5Aにおける第二端1042側の先端の向き2160を挿入口1051の穴の向き2170を用いて近似したが、本構成では、図17における第二端1042の向き2160を、ベクトル1420で近似する。このベクトル1420は、特徴点1401を始点とし、特徴点1402を終点とするベクトルである。すなわち、柔軟物1040の真ん中を始点とし、柔軟物1040の第二端1042を終点とするベクトル1420を、第二端1042側の先端の向き2160とみなすことで、第1実施形態と同様に曲がり具合の評価を曲がり取得部2030Cで算出する。
 位置取得部1530が取得した特徴点1401の位置と、特徴点1402の位置とが、それぞれ、(X1,Y1,Z1)、(X2,Y2,Z2)のとき、ベクトル1420は、(X2-X1,Y2-Y1、Z2-Z1)として曲がり取得部2030Cで算出される。
 このとき、第一端1041側の先端の向き2150と、ベクトル1420とのなす角度θは、式(2)の(T,T,T)を(X2-X1、Y2-Y1、Z2-Z1)に置き換えることで曲がり取得部2030Cで算出でき、
Figure JPOXMLDOC01-appb-M000006
.....(6)
となる。
 また、ここでも曲がり具合の評価F(θ)は、第1実施形態と同じく式(3)となる。
 到達判定部2010Cは、柔軟物1040の第二端1042が挿入口1051の入口に到達したかを判定する。具体的には、特徴点抽出部1525が、特徴点1402を抽出できなくなった場合に、柔軟物1040の第二端1042が挿入口1051に到達したと判定する。
 なお、ここでは、図17におけるベクトル1420を、位置取得部1530(および特徴点抽出部1525)により取得する構成を説明したが、同様にして、第一端1041側の先端の向きであるベクトル2150も、位置取得部1530(および特徴点抽出部1525)により取得する構成であっても構わない。
 前記した第1変形例によれば、第1実施形態の効果に記載と同様の効果を得られる。特に、第1変形例では、第二力センサー1021を用いずに到達検出を行うため、柔軟物1040と挿入口1051の周囲部分1051aとが接触する際の力が弱く、第二力センサー1021で検出できないような場合にも、第1実施形態と同等の効果が得られる。
 <通知部の別構成>
 なお、通知部2060は、第1実施形態では、ディスプレイである構成として説明しているが、ディスプレイに表示される内容を音声で出力するスピーカーであっても構わない。その場合、通知生成部2065は、対応する音声出力を合成する。また、ディスプレイによる通知と、音声による通知との両方を行う構成としても構わない。
 このような構成を用いると、操作者がより作業をしやすい環境を提供することができる。
 <第2変形例>
 第1実施形態の第1変形例では、教示および再生を同一の装置(ロボット装置1000A)を用いて行う場合を説明したが、それぞれを別々の装置を行う構成であっても構わない。図19は、第1実施形態の第2変形例における教示装置1000Dの構成を示す図である。第1変形例と同じ符号の部は、第1変形例の機能と同様であるため、説明を省略する。以下、第1変形例と異なる部について説明する。この教示装置1000Dにはロボットアームは備えていない。
 手先1011Dは、ロボットアームの手先ではなく、教示時に操作者が握る部分である。第1実施形態及び第1変形例では、手先1011の先に操作部1090が結合されていたが、第2変形例では、手先1011Dを操作者が直接握って移動するため、操作部は備えていない。
 特徴点1710は、固定部1030に設けられた特徴点である。特徴点は、具体的には、油性マーカー等で青色に塗られた点である。なお、作業環境には、特徴点1710以外に青色の物体は置かないこととする。
 特徴点抽出部1525Dは、特徴点1401、1402に加えて、特徴点1710の画像上での位置を抽出する。それ以外は、特徴点抽出部1525と同様である。
 位置取得部1530Dは、特徴点1401、1402に加えて、特徴点1710の位置を抽出する。それ以外は、位置取得部1530と同様である。なお、第2変形例では、特徴点1710の位置を手先1011Dの位置とみなし、第1実施形態で位置姿勢取得部1013がロボットアーム1010の手先1011の位置を取得したのと同様に、位置取得部1530Dが手先1011Dの位置を取得する。
 モード入力部1091Dは、ロボットアーム1010で行う処理モードを入力する。教示装置1000Dは、再生には用いられないので「再生を行う」の選択はなく、「教示を実行する」、「実行しない」の2つの選択肢のいずれかのときに使用される。
 管理部1012Dは、教示装置1000Dの全体の動作を管理する。
 <ロボットアーム1010Aの処理の流れ>
 管理部1012Dによるロボットアーム1010Aの処理の流れを、図20を用いて説明する。
 まず、ステップS1810で、管理部1012Dは処理を開始する。
 次いで、ステップS1820で、管理部1012Dは、モード入力部1091Dより通知を取得する。すなわち、操作者がロボットアーム1010Aで行う2つの処理モードのうち、「教示を実行する」、「実行しない」のいずれが入力されているかを、管理部1012Dは、モード入力部1091Dより取得する。
 ステップS1830で、管理部1012Dは、取得した通知によって分岐を行う。すなわち、取得した通知が「実行しない」を示す「0」であった場合、ステップS1820に分岐し、「教示を実行する」の場合はステップS1847に分岐する。
 ステップS1847で、管理部1012Dは、位置取得部1530Dより手先1011Dの位置(特徴点1710の位置)を取得し、軌跡情報保持部1095に格納する。
 次いで、ステップS1860で、到達判定部2010Cは、柔軟物1040の第二端1042が挿入口1051に到達したかを判定する。到達判定部2010Cで到達が判定された場合、ステップS1870に分岐し、到達判定部2010Cで到達が判定されなかった場合、ステップS1892に分岐する。なお、教示が開始されてから、既に到達判定を行っている場合にもステップS1892に分岐する。
 ステップS1870で、到達判定部2010Cで到達が判定された後、曲がり取得部2030Cは、柔軟物1040の曲がり具合の評価を取得する。
 一例として、到達判定部2010Cで到達が判定されたとき、到達判定部2010Cから管理部1012Dに到達判定信号が入力され、管理部1012Dから曲がり取得部2030Cに、柔軟物1040の曲がり具合を取得するように指令が入力される。曲がり取得部2030Cは、位置取得部1530Dの情報を基に、柔軟物1040の曲がり具合の評価の情報を取得して、取得した柔軟物1040の曲がり具合の情報を管理部1012Dに出力する。
 次いで、ステップS1880で、管理部1012Dは、ステップS1870で曲がり取得部2030Cにより取得した曲がり具合の評価を、評価保持部2050に格納する。
 次いで、ステップS1890で、通知生成部2065は、評価情報等の、操作者に通知部2060で通知するための表示画面を生成する。例えば、図12の処理に相当する処理を行う。
 次いで、ステップS1891で、通知部2060は、通知生成部2065が生成した表示画面をディスプレイに表示する。
 次いで、ステップS1892では、モード入力部1091Dから管理部1012Dに新しい通知があったか否かによる分岐を行う。すなわち、モード入力部1091Dから管理部1012Dに新しい通知がなかった場合(モード入力部1091Dに新しい入力がなされなかった場合)、ステップS1847に分岐し、教示を継続する。モード入力部1091Dから管理部1012Dに新しい通知があった場合にはステップS1820に分岐し、入力に応じた処理を行う。
 前記した第2変形例によれば、第1実施形態の効果に記載と同様の効果を得られる。特に第2変形例を用いれば、教示を行う装置は簡単な構成である。よって、例えば、教示を行う技術を有する操作者が希少であって、操作者の所へ教示装置を持ち込む必要がある場合にも、容易に持ち込み作業を行うことが出来る。また、教示を行う装置が簡単な構成であるため、多数の操作者が操作を行って、その中で得られた一番評価の高い教示を、最終的に使用する教示として選択することが出来る。
 <第3変形例>
  第1実施形態において再生制御部1094Aは、評価値が最も高い教示データを用いる構成を説明しているが、第1実施形態の第3変形例として、評価が高い上位のN個(ただし、Nは2以上の整数である。)の教示データを管理部1012Aで平均化した軌跡を再生する構成としても構わない。その際、図3A~図3Dにおける段階毎に管理部1012Aで平均を取る構成としても構わない。例えば、柔軟物1040が挿入口1051の周囲部分1051aに接触するまでの段階を複数の教示で管理部1012Aで平均を取る。
 このような構成を用いた場合、個々の教示におけるふらつき(変動)を吸収することができ、挿入の成功率を向上させることができる。
 <第4変形例>
 第1実施形態の第4変形例として、教示をいつまで繰り返すかを自動で決定する構成としても構わない。例えば、目標となる評価値を予め保持する目標評価値保持部を設けておき、その目標となる評価値以上の評価が得られるまで管理部1012Aで教示を繰り返す構成としても構わない。また、その目標となる評価値以上の評価が得られるまで、通知部2060が、教示の続行を推奨する通知を行う構成であっても構わない。
 図25は、第4変形例における、教示装置1000ETを含むロボット装置1000Eの構成を示す図である。第1実施形態と同じ符号の部分は、第1実施形態と同じ要素であるので説明を省略する。以下、異なる部分を説明する。
 目標評価値保持部2120は、目標となる評価値を予め保持する。
 教示判定部2110は、管理部1012Eが取得した評価値と、目標保持部2120より取得した目標評価値とを比較して、後者の方が大きい場合には、教示を継続する判定を行い、それ以外の場合には、教示を終了する判定を行って、判定結果を管理部1012Eに出力する。
 通知生成部2065Eは、教示を継続することを操作者に通知するための画像又は音声等を生成する。ここでは、一例として、「教示を継続します。ロボットは初期位置に移動します。」という文字列の画像を生成する。
 管理部1012Eは、第1実施形態における管理部1012が行う処理に加えて、教示判定部2110を用いて教示を継続するか、教示を終了するかの判定を行わせる。教示を継続する場合には、通知生成部2065で教示を継続する通知を生成する。
 以下、管理部1012Eが行う処理の流れを、図24を用いて説明する。ステップ9010からステップ9080までの各ステップは、第1実施形態の図13のステップS9010~ステップS9080までの各ステップと同様であるので説明を省略する。以下、異なる部分について説明する。
 ステップS9080の後のステップS9120で、モード入力部1091から管理部1012Aに新しい出力があったか否かを管理部1012Aで判定する。モード入力部1091から管理部1012Aに新しい出力があった場合にはステップS9210に分岐する。管理部1012Aに新しい出力がなかった場合にはステップS9047に分岐する。ステップS9047以降のステップは第1実施形態の場合と同様である。
 次に、ステップS9210では、モード入力部1091から管理部1012Eに新しい出力として通知された通知内容に基づく分岐を行う。すなわち、モード入力部1091から管理部1012Aに「実行しない」を示す通知が行われた場合、ステップS9220に分岐する。それ以外の場合には、ステップS9020に分岐する。
 ステップS9220で、管理部1012Eは、教示判定部2110を用いて教示判定の処理を行う。教示判定部2110から教示を継続する判定が管理部1012Eに出力された場合、ステップS9230へ分岐する。教示判定部2110から教示を継続しない判定が管理部1012Eに出力された場合、ステップS9020に分岐する。
 ステップS9230で、管理部1012Eは,通知生成部2055Eによって通知を生成する。一例として、通知生成部2055Eによって、「教示を継続します。ロボットは初期位置に移動します。」という文字列の画像を生成する。
 次いで、ステップS9240で、管理部1012Eは、通知部2060によって、通知生成部2055Eが生成した通知内容を通知する。ここでは、通知部2060はディスプレイであって、ディスプレイに「教示を継続します。ロボットは初期位置に移動します。」という文字列の画像を表示する。ステップS9240の終了後、管理部1012Eは、ステップS9045に処理を分岐する。
 また、ここでは、教示判定部が教示を継続しない判定を行ったときには、通知を生成しない構成を示したが、その場合に、通知生成部2065を介して通知部2060に、目標となる評価値を上回ったことを示す表示を行ってもよい。
 また、教示判定部2110は、評価保持部2050が保持する評価の上位N番目の値(ただし、Nは2以上の整数である。)が、目標を上回った場合に、教示を終了する(継続しない)判定を行い、それ以外の場合に教示を継続する判定を行ってもよい。そして、教示を終了する際に、管理部1012Eは図示しない平均データ生成部を用いて、上位N個の教示データを平均化した教示データを再生用の教示データとして、軌跡情報保持部1095に格納する構成であっても構わない。
 また、教示判定部2110は、評価保持部2050が保持する評価の上位N個(ただし、Nは2以上の整数である。)の分散の値を算出し、算出した値が所定の値以下になったときに、教示を終了する判定を行い、それ以外の場合に、教示を継続する判定を行う構成としても構わない。また、通知部2060は、前記分散を通知する構成であっても構わない。なお、この構成では、目標保持部2120は、前記所定の値を保持する。
 このような構成を用いると、教示回数を決める手間が省けると共に、効果の少ない教示作業を減らすことができる。
 <第5変形例>
 第1実施形態では到達判定部2010での到達判定をリアルタイムに行っているが、軌跡情報保持部1095に、位置と姿勢とに加えて、移動位置決定部1092を介して第二力センサー1021の値とを記録しておき、教示が終了した後に、軌跡情報保持部1095に記録された情報を基に、到達の判定を到達判定部2010で行う構成としても構わない。この場合、図7のブロック図において、到達判定部2010と軌跡情報保持部1095とを接続線で接続しておき、情報が入出力できるようにする必要がある。
 また、第二力センサー1021の値に加えて、手先1011の速度又は加速度を用いて到達判定を行っても構わない。手先1011の速度又は加速度は、手先1011の位置及びその位置の情報を取得した時間を基に移動位置決定部1092で求めることができる。
 また、ここでは、手先1011に取り付けた第二力センサー1021の値に基づいて到達判定を行っているが、第二力センサー1021を物体1050または挿入口1051の付近に取り付けて、第二力センサー1021で取得した情報を基に到達判定を行っても構わない。また、挿入口1051の付近を撮影するカメラと画像処理部とを使用して、画像処理を用いて到達判定を行っても構わない。
 このような構成を用いると、到達判定を、より正確に行うことができる。
 <第6変形例>
 第1実施形態では、曲がり基準保持部2020は、挿入口1051の穴の向き2170の情報を保持する。そして、挿入口1051の穴の向き2170に対する第一端1041の向きが離れるほど、柔軟物1040が曲がっていると判定している。
 ここでは、逆に、曲がり基準保持部2030は、柔軟物1040が曲がるときの、基準となる、(理想の)第一端1041の姿勢の情報を保持しておき、実際の第一端1041の姿勢が、理想の姿勢にどれだけ近いかによって曲がり取得部2030で評価を行う構成とする。柔軟物1040が曲がるときの、基準となる、(理想の)第一端1041の姿勢の情報は、曲がり基準保持部2030に予め登録しておく構成としても良いし、挿入完了段階の姿勢より、曲がり取得部2030で取得する構成としても構わない。図21は、ラグビーボール形状の柔軟物1040U(真ん中部分が膨らんだ形状)の曲がり具合を示す図である。実線で示す柔軟物1040Uは曲がった状態の柔軟物1040Uであり、点線で示す柔軟物1040Vは、曲がっていない状態の柔軟物1040Vである。参照符号2501Uは、曲がった状態における柔軟物1040Uの第一端1041Uの法線方向であり、参照符号2501Vは曲がっていない状態における第一端1041Vの法線方向である。曲がり基準保持部2030には、第一端1041Vの法線方向2501Vの方向を基準として登録しておく。曲がり取得部2030は、曲がり基準保持部2030が情報として保持する2501Vの方向と、位置姿勢取得部1013より取得した2501Uの方向とのなす角度によって、第1実施形態と同様に、曲がり具合の評価の情報を曲がり取得部2030で取得する。このような構成を用いれば、柔軟物1040の形状にとらわれず、曲がり具合の評価の情報を曲がり取得部2030で取得することが出来る。
 <第7変形例>
 柔軟物1040の第二端1042が挿入口1051の周囲部分1051aに実際に接触したことを判定する実接触判定部を設けて、接触した時刻以降、到達が到達判定部で判定されるまで、曲がり取得部2030が取得した値を、通知生成部2065を介して、通知部2060で通知する構成としても構わない。実接触判定部の一例としては、第二力センサー1021を物体1050又は挿入口1051の付近に取り付けて、第二力センサー1021で検出された力の情報が所定の閾値以上となることにより、実際の接触を判定するように構成してもよい。曲がり取得部2030が取得した曲がり具合が、予め定めた曲がり具合に到達していないと曲がり取得部2030で判定した場合、「もっと曲げられませんか?」などの音声を通知部2060で通知するなどして、操作者を誘導する構成を用いても構わない。
 また、柔軟物1040の第二端1042が挿入口1051に接触したと実接触判定部で判定した後に、手先1011を回転する方向の移動をパワーアシストする構成を用いても構わない。
 このような構成を用いれば、再生が成功しやすい教示データが取得しやすくなる。
 <第8変形例>
 第1実施形態では、固定部1030に柔軟物1040の第一端1041を固定し、物体1050の挿入口1051に柔軟物1040の第二端1042を挿入する作業を説明しているが、固定部1030に挿入口1051の周囲部分1051a(あるいは物体1050)を固定して、ロボットアーム1010A以外の場所(例えば物体載置台1050Hに)に柔軟物1040の第一端1041を固定して、挿入作業を行う構成としても構わない。
 <第9変形例>
 第1実施形態では、柔軟物1040の第二端1042を挿入口1051の周囲部分1051aに挿入する作業を行う際、柔軟物1040の第二端1042が挿入口1051の周囲部分1051aに接触し、かつ、曲がった状態になってから、挿入を行う構成を説明している。また、第1実施形態では、柔軟物1040の第二端1042が挿入口1051の周囲部分1051aに接触し、かつ、柔軟物1040が曲がった状態になってから、挿入を行う操作を良い評価とする評価を行う評価装置又は教示装置を説明している。
 しかし、前記は本発明を適用できる柔軟物1040を扱う作業の一例である。例えば、柔軟物1040の先端を物体1050の所定の位置に移動する作業(挿入作業が無い作業も含む。)にも本発明を適用することができる。柔軟物1040の先端を物体1050の所定の位置に移動する際においても、柔軟物1040が物体1050に接触し、かつ、柔軟物1040が曲がった状態になってから、所定の位置になるように制御を行えば、目標の移動は成功しやすい。よって、このような作業においても本発明を適用することができる。
 <第10変形例>
 第1変形例では、柔軟物1040の両端における柔軟物1040の方向がなす角度に基づいて柔軟物1040の曲がり具合を評価する方向を説明しているが、方向を取得する位置は両端に限らず、柔軟物1040上の異なる2点であれば良い。ただし、ここでは、柔軟物1040が2箇所以上で曲がる等の特別な場合は、この構成の対象外とする。
 以下、図22を用いて前記両端以外の柔軟物1040上の異なる2点で柔軟物1040の方向を取得する方法について説明する。図22は、第一端1014に固定された種々の状態の柔軟物1040を示す図である。図22における柔軟物1040sは、柔軟物1040が曲がっていない状態(まっすぐな状態)を示す。柔軟物1040rは、柔軟物1040sから少しだけ曲がった状態の柔軟物1040を示す。また、柔軟物1040qは、柔軟物1040rから更に少しだけ曲がった状態の柔軟物1040を示す。
 柔軟物1040の第二端1042q~1042sはそれぞれ、柔軟物1040q~1040sにおける第二端1042を示す。
 図22において、第一端1041から第二端1042sの向きをx軸方向とし、x軸に垂直な方向にy軸方向とし、第一端1041を原点とする。
 点2401q~2401sは、それぞれ、柔軟物1040p~1040sにおいて第一端1041から、4mmの点を示す。点2402q~2402sはそれぞれ、柔軟物1040q~1040sにおいて第一端1041から、8mmの点を示す。q1~r1は、点2401q~2401rにおいて、柔軟物1040q~1040rの接線が、x軸に対してなす角度である。q2~r2は、点2402q~点2402rにおいて、柔軟物1040q~1040rの接線が、x軸に対してなす角度である。
 さて、柔軟物1040qは、柔軟物1040rを少し曲げた状態である。よって、点2401qと、点2401rを比較すると、前者が後者よりも、より曲がった状態になる。よって、以下の式(7)が成り立つ。
  q1>r1 .....(7)
 点2402qと、点2402rについても同様であり、
  q2>r2 .....(8)
が成り立つ。また、第一端1041から遠い位置ほど、柔軟物1040qは柔軟物1040rと離れていくことになり、式(9)が成り立つ。
  q2-r2>q1-r2 .....(9)
 式(9)の両辺に(r2-q1)を加えると式(10)が成り立つ。
  q2-q1>r2-r1 .....(10)
 式(10)において、q2-q1は、柔軟物1040q上の2点(点2401qと点2402q)における柔軟物1040の接線がなす角度である。r2-r1も同様である。柔軟物1040qは柔軟物1040rよりも曲がった状態であることより、式(10)は、「柔軟物1040上の2点(点2401と点2402)における柔軟物1040の接線がなす角度が大きい程、柔軟物1040は曲がった状態である」ことを示す。
 また、法線と接線は直交関係にあることより、同様に、「柔軟物1040上の2点(点2401と点2402)における柔軟物1040の法線がなす角度が大きい程、柔軟物1040は曲がった状態である」が成り立つ。
 <第11変形例>
 第1実施形態では、ロボット装置1000Aには、ロボットアーム1010Aが含まれる構成を説明しているが、他のロボットであっても構わない。図26は、全方向移動型のロボット1010F及び教示装置1000FTを含むロボット装置1000Fを説明する図である。全方向移動型ロボットについては、一例として、非特許文献1、又は、非特許文献2に記載されている。
 ロボット1010Fは、円盤状の台2610には、下面側に回転自在に位置しかつモータ912Mにより正逆駆動される複数の車輪2620と、上面側に固定された柱2630とが取り付けられている。また、ロボット1010Fの台2610の上面には、荷物を搭載することができる。
 柱2630には、その上端に位置する第一力センサー1020と、その外側側面に固定された固定部1030とが取り付けられている。また、第一力センサー1020のさらに上端には操作部1090が取り付けられている。
 物体1050には、挿入口1051を有する筒状の周囲部分1051aが取り付けられている。物体1050は、具体的な例としては、建築物のドアであって、挿入口1051は、ドアの開閉のカードキーを挿入する挿入口である。固定部1030は、挿入口1051と同じ高さに取り付けられている。また、固定部1030には柔軟物1040が取り付けられている。柔軟物1040は、具体的な例としては、前記のカードキーである。他は第一実施形態の場合と同様なので説明を省略する。
 なお、本発明を第1実施形態及び変形例に基づいて説明してきたが、本発明は、前記の第1実施形態及び変形例に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
 第1実施形態およびその変形例の説明では、処理の流れの一例を示したが、互いに依存関係のない処理については順序を入替えたり、並列化して実行しても構わない。
 また、ここで述べたロボットの教示方法(ロボットの教示装置の制御方法)を、他のロボット教示手法と一緒に適用しても良い。
 ロボットアーム1010およびその変形例を構成する要素で、操作部1090、固定部1030、手先1011、モータ912M、第一力センサー1020、などの物理的なユニット以外の一部または全部は、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、およびマウスなどから構成されるコンピュータシステムで実現することができる。そのRAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。つまり、マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、各部は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
 ロボットアーム1010およびその変形例を構成する要素で、操作部1090、固定部1030、手先1011、以外の各部の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、およびRAMなどを含んで構成されるコンピュータシステムである。そのRAMには、コンピュータプログラムが記憶されている。つまり、マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
 ロボットアーム1010およびその変形例を構成する要素で、操作部1090、固定部1030、手先1011、以外の各部の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。そのICカードまたはモジュールは、マイクロプロセッサ、ROM、およびRAMなどから構成されるコンピュータシステムである。そのICカードまたはモジュールは、前記の超多機能LSIを含むとしてもよい。つまり、マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、そのICカードまたはモジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
 ロボットアーム1010およびその変形例を構成する要素で、操作部1090、固定部1030、手先1011、以外の各部の一部または全部は、ロボットの教示データを生成する方法としても実現される。また、本発明は、これらの方法によりコンピュータに教示データを生成させるコンピュータプログラム、又は、コンピュータプログラムからなるディジタル信号としても実現される。
 また、ロボットアーム1010およびその変形例を構成する要素で、操作部1090、固定部1030、手先1011、以外の各部の一部または全部は、サーバなどからダウンロードされることによって実行されてもよく、上述のコンピュータプログラムまたはディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc)、又は、半導体メモリなどに記録したものとしても実現される。また、これらの記録媒体に記録されているディジタル信号としても実現される。 
 また、ロボットアーム1010およびその変形例を構成する要素で、操作部1090、固定部1030、手先1011、以外の各部の一部または全部は、電気通信回線、無線通信回線、有線通信回線、インターネットを代表とするネットワーク、またはデータ放送等を経由して伝送される、上述のコンピュータプログラムまたはディジタル信号としても実現される。
 また、ロボットアーム1010およびその変形例を構成する要素で、操作部1090、固定部1030、手先1011、以外の各部の一部または全部は、マイクロプロセッサとメモリを備えたコンピュータシステムとしても実現される。この場合、そのメモリは、上述のコンピュータプログラムを記憶しており、マイクロプロセッサは、そのコンピュータプログラムにしたがって動作する。
 また、そのコンピュータプログラムまたはディジタル信号を記録媒体に記録して移送することにより、またはコンピュータプログラムまたはディジタル信号をネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより本発明の処理を実施してもよい。
 前記コンピュータプログラムの一例として、ハードディスク又は半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、前記実施形態又は変形例における制御装置を構成する要素の一部又は全部を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置の制御プログラムであって、
 コンピュータを、
 前記柔軟物の先端の前記物体への到達を判定する到達判定部と、
 前記柔軟物の先端の前記物体への到達を前記到達判定部で判定したときの前記柔軟物の曲がり具合の評価の情報を取得する曲がり取得部と、
 前記曲がり取得部が取得した前記評価の情報に基づいて教示に関する通知を行う通知部、
として機能させるためのロボットの教示装置の制御プログラムである。
 又は、前記プログラムは、柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置の制御プログラムであって、
 コンピュータを、
 前記柔軟物の先端の前記物体への到達を判定する到達判定部と、
 前記柔軟物の先端の前記物体への到達を前記到達判定部で判定したときの前記柔軟物の曲がり具合の評価の情報を取得する曲がり取得部と、
 前記曲がり取得部が取得した前記評価の情報に基づいて複数の教示データの中から前記評価の高い教示を選択する選択部、
として機能させるためのロボットの教示装置の制御プログラムである。
 また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
 なお、前記様々な実施形態又は変形例のうちの任意の実施形態又は変形例を適宜組み合わせることにより、それぞれの有する効果を奏するようにすることができる。
 本発明にかかるロボットの教示装置、ロボット装置、ロボットの教示装置の制御方法、ロボットの教示装置の制御プログラムは、柔軟物を物体の挿入口に挿入する教示データに基づいて、挿入作業を再生する作業を行う、ロボットの教示装置、ロボット装置、ロボットの教示装置の制御方法、ロボットの教示装置の制御プログラムとして有用である。また、本発明は、柔軟物の挿入に限らず、柔軟物の先端を所望の位置に移動する作業を行うロボットの教示装置、ロボット装置、ロボットの教示装置の制御方法、ロボットの教示装置の制御プログラムにおいても適用される可能性がある。
 本発明は、添付図面を参照しながら好ましい実施形態に関連して充分に記載されているが、この技術の熟練した人々にとっては種々の変形又は修正は明白である。そのような変形又は修正は、添付した請求の範囲による本発明の範囲から外れない限りにおいて、その中に含まれると理解されるべきである。

Claims (21)

  1.  柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置であって、
     前記柔軟物の先端の前記物体への到達を判定する到達判定部と、
     前記柔軟物の先端の前記物体への到達を前記到達判定部で判定したときの前記柔軟物の曲がり具合の評価の情報を取得する曲がり取得部と、
     前記曲がり取得部が取得した前記評価の情報に基づいて教示に関する通知を行う通知部と、を備えるロボットの教示装置。
  2.  前記通知部は、前記柔軟物をさらに曲げるように通知する、請求項1に記載のロボットの教示装置。
  3.  柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置であって、
     前記柔軟物の先端の前記物体への到達を判定する到達判定部と、
     前記柔軟物の先端の前記物体への到達を前記到達判定部で判定したときの前記柔軟物の曲がり具合の評価の情報を取得する曲がり取得部と、
     前記曲がり取得部が取得した前記評価の情報に基づいて複数の教示データの中から前記評価の高い教示を選択する選択部と、
    を備えるロボットの教示装置。
  4.  前記選択部は、前記評価の高い教示を選択するとき、前記柔軟物の曲げ具合の評価が、他の評価よりも良い評価を選択する、請求項3に記載のロボットの教示装置。
  5.  前記曲がり取得部は、前記柔軟物の2点における前記柔軟物の方向のなす角度に基づいて前記曲がり具合の評価の情報を取得する、
    請求項1~4のいずれか1つに記載のロボットの教示装置。
  6.  前記柔軟物と前記物体との間での嵌め合わせにおいて、前記物体の挿入口の穴の向きの情報を格納する曲がり基準保持部と、
     前記柔軟物の1点の向きの情報を取得する位置姿勢取得部と、
    を有し、
     前記曲がり取得部は、前記曲がり基準保持部が格納する前記挿入口の穴の向きの情報と、前記位置姿勢取得部が取得する前記柔軟物の1点の向きの情報とに基づいて前記評価の情報を取得する、
    請求項1~4のいずれか1つに記載のロボットの教示装置。
  7.  前記柔軟物に加わった力を取得する力センサーを有し、
     前記到達判定部は、前記力センサーが取得した前記力に基づいて前記判定を行う、
    請求項1~4のいずれか1つに記載のロボットの教示装置。
  8.  前記柔軟物を撮影する撮影装置と、
     前記撮影装置が撮影した画像を画像処理して、前記柔軟物上の前記2点の位置を取得する位置取得部とをさらに備え、
     前記曲がり取得部は、前記位置取得部が取得した前記複数の点の位置に基づいて、
    前記柔軟物の少なくとも1点における前記柔軟物の方向を取得して、取得した前記柔軟物の方向を基に前記柔軟物の曲がり具合の評価の情報を取得する、
    請求項5に記載のロボットの教示装置。
  9.  前記柔軟物を撮影する撮影装置と、
     前記撮影装置が撮影した画像を画像処理して、前記柔軟物の先端の特徴点に基づいて前記柔軟物の前記先端を抽出する特徴点抽出部と、をさらに備え、
     前記到達判定部は、前記特徴点抽出部が前記柔軟物の前記先端を抽出したか、しなかったかに基づいて前記到達の判定を行う、
    請求項1~4のいずれか1つに記載のロボットの教示装置。
  10.  前記作業の教示を複数回行い、かつ、前記それぞれの教示時に前記到達判定部が到達を判定したときに前記曲がり取得部が取得した前記評価の情報を保持する評価保持部をさらに備え、
     前記通知部は、前記評価保持部が保持する複数の評価の情報のうち、評価の値が高い方から第一の所定数個の評価の値又は前記第一の所定数個の評価の値の分散を通知する、
    請求項1又は2に記載のロボットの教示装置。
  11.  前記作業の教示を複数回行い、かつ、前記それぞれの教示時に前記到達判定部が到達を判定したときに前記曲がり取得部が取得した前記評価の情報をそれぞれ保持する評価保持部と、
     前記評価保持部が保持する複数の評価の情報のうち、評価の値が高い方から所定数個の評価の値に基づいて教示を継続するか否かの判定を行う教示判定部と、
    をさらに備える請求項1~4のいずれか1つに記載のロボットの教示装置。
  12.  前記ロボットはロボットアームであり、前記駆動部は前記ロボットアームの関節部を駆動する関節駆動部である、請求項1~4のいずれか1つに記載のロボットの教示装置。
  13.  請求項1~4のいずれか1つに記載のロボットの教示装置と、
     前記教示装置によって教示した軌跡を前記ロボットで再生する再生制御部と、
    を備えるロボット装置。
  14.  前記作業の教示を複数回行い、かつ、前記それぞれの教示時に前記到達判定部が到達を判定したときに前記曲がり取得部が取得した前記評価の情報を保持する評価保持部をさらに備える請求項1又は2に記載のロボットの教示装置と、
     前記教示装置によって教示した軌跡を前記ロボットで再生する再生制御部とを備え、
     前記再生制御部は、前記評価保持部が保持する複数の評価の情報のうち、評価の値が高い教示が行われたときに生成された教示データを再生する、
    ロボット装置。
  15.  前記作業の教示を複数回行い、かつ、前記それぞれの教示時に前記到達判定部が到達を判定したときに前記曲がり取得部が取得した前記評価の情報を保持する評価保持部をさらに備える請求項1又は2に記載のロボットの教示装置と、
     前記教示装置によって教示した軌跡を前記ロボットで再生する再生制御部とを備え、
     前記再生制御部は、前記評価保持部が保持する複数の評価の情報のうち、評価の値が高い方から所定数個の教示データを平均して生成された教示データを再生する、
    ロボット装置。
  16.  柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置の制御方法であって、
     前記柔軟物の先端の前記物体への到達を到達判定部で判定し、
     前記柔軟物の先端の前記物体への到達を前記到達判定部で判定したときの前記柔軟物の曲がり具合の評価の情報を曲がり取得部で取得し、
     前記曲がり取得部が取得した前記評価の情報に基づいて教示に関する所定の通知を通知部で行う、
    ロボットの教示装置の制御方法。
  17.  柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置の制御方法であって、
     前記柔軟物の先端の前記物体への到達を到達判定部で判定し、
     前記柔軟物の先端の前記物体への到達を前記到達判定部で判定したときの前記柔軟物の曲がり具合の評価の情報を曲がり取得部で取得し、
     前記曲がり取得部が取得した前記評価の情報に基づいて複数の教示データの中から前記評価の高い教示を選択部で選択する、
    ロボットの教示装置の制御方法。
  18.  柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置の制御プログラムであって、
     コンピュータを、
     前記柔軟物の先端の前記物体への到達を判定する到達判定部と、
     前記柔軟物の先端の前記物体への到達を前記到達判定部で判定したときの前記柔軟物の曲がり具合の評価の情報を取得する曲がり取得部と、
     前記曲がり取得部が取得した前記評価の情報に基づいて教示に関する通知を行う通知部、
    として機能させるためのロボットの教示装置の制御プログラム。
  19.  柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置の制御プログラムであって、
     コンピュータを、
     前記柔軟物の先端の前記物体への到達を判定する到達判定部と、
     前記柔軟物の先端の前記物体への到達を前記到達判定部で判定したときの前記柔軟物の曲がり具合の評価の情報を取得する曲がり取得部と、
     前記曲がり取得部が取得した前記評価の情報に基づいて複数の教示データの中から前記評価の高い教示を選択する選択部、
    として機能させるためのロボットの教示装置の制御プログラム。
  20.  柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置であって、
     前記柔軟物の先端の前記物体への到達を判定する到達判定部と、
     前記柔軟物保持部の姿勢を取得する姿勢取得部と、
     前記姿勢取得部が取得した前記姿勢の方向と、予め決められた所定の方向とのなす角度を取得する曲がり取得部と、
     前記曲がり取得部が取得した前記なす角度に基づいて教示に関する通知を行う通知部と、
    を備える、ロボットの教示装置。
  21.  柔軟物を保持可能な柔軟物保持部と、前記柔軟物保持部を所定の方向に移動させて前記柔軟物と物体との間で嵌め合わせ作業を行う駆動部とを備えて、前記作業の教示を行って教示データを生成するロボットの教示装置であって、
     前記柔軟物保持部の姿勢を取得する姿勢取得部と、
     前記姿勢取得部が取得した前記姿勢の方向と、予め決められた所定の方向とのなす角度を取得する曲がり取得部と、
     前記曲がり取得部が取得した前記なす角度に基づいて複数の教示のなかから前記評価の高い教示を選択する選択部と、
    を備えるロボットの教示装置。
PCT/JP2012/007504 2011-11-30 2012-11-21 ロボットの教示装置、ロボット装置、ロボットの教示装置の制御方法、ロボットの教示装置の制御プログラム WO2013080500A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201280021289.4A CN103501969B (zh) 2011-11-30 2012-11-21 机器人的示教装置、机器人装置以及机器人的示教装置的控制方法
JP2013546982A JP5636119B2 (ja) 2011-11-30 2012-11-21 ロボットの教示装置、ロボット装置、ロボットの教示装置の制御方法、ロボットの教示装置の制御プログラム
US14/144,969 US9211640B2 (en) 2011-11-30 2013-12-31 Teaching device for robot, robot apparatus, method of controlling teaching device for robot, and control program of teaching device for robot

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-262048 2011-11-30
JP2011262048 2011-11-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/144,969 Continuation US9211640B2 (en) 2011-11-30 2013-12-31 Teaching device for robot, robot apparatus, method of controlling teaching device for robot, and control program of teaching device for robot

Publications (1)

Publication Number Publication Date
WO2013080500A1 true WO2013080500A1 (ja) 2013-06-06

Family

ID=48534996

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/007504 WO2013080500A1 (ja) 2011-11-30 2012-11-21 ロボットの教示装置、ロボット装置、ロボットの教示装置の制御方法、ロボットの教示装置の制御プログラム

Country Status (4)

Country Link
US (1) US9211640B2 (ja)
JP (1) JP5636119B2 (ja)
CN (1) CN103501969B (ja)
WO (1) WO2013080500A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015174172A (ja) * 2014-03-14 2015-10-05 セイコーエプソン株式会社 ロボット、ロボットシステム、及び制御装置
CN105619409A (zh) * 2016-02-24 2016-06-01 佛山市科莱机器人有限公司 手动示教机器人动作优化处理方法
CN106413981A (zh) * 2014-05-27 2017-02-15 川崎重工业株式会社 自动组装装置及其控制方法
WO2018043212A1 (ja) * 2016-08-29 2018-03-08 株式会社ソニー・インタラクティブエンタテインメント 組立装置、及び電子機器の製造方法
JP2019061715A (ja) * 2018-12-17 2019-04-18 ファナック株式会社 可動部を直接手動で操作可能な数値制御工作機械
JP2019155496A (ja) * 2018-03-08 2019-09-19 オムロン株式会社 部品挿入装置、部品挿入方法、およびプログラム
JP2020517474A (ja) * 2017-04-23 2020-06-18 フランカ エミカ ゲーエムベーハーFRANKA EMIKA GmbH 拡張ボードをプラグインカップリングに差し込む為の装置および方法
JP2021062436A (ja) * 2019-10-11 2021-04-22 セイコーエプソン株式会社 教示方法
JP2022520052A (ja) * 2019-02-08 2022-03-28 ヤスカワ アメリカ インコーポレイティッド スルービーム自動ティーチング

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
CN105313127A (zh) * 2014-06-02 2016-02-10 精工爱普生株式会社 机器人、机器人的控制方法以及机器人的控制装置
JP6460690B2 (ja) * 2014-09-16 2019-01-30 キヤノン株式会社 ロボット装置、ロボット制御方法、プログラム及び記録媒体
US9579790B2 (en) 2014-09-17 2017-02-28 Brain Corporation Apparatus and methods for removal of learned behaviors in robots
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
US9821470B2 (en) 2014-09-17 2017-11-21 Brain Corporation Apparatus and methods for context determination using real time sensor data
US10201901B2 (en) * 2015-01-29 2019-02-12 Canon Kabushiki Kaisha Robot apparatus, method for controlling robot, program, and recording medium
JP6169291B2 (ja) * 2015-02-26 2017-07-26 オリンパス株式会社 操作入力装置および医療用マニピュレータシステム
CN104742120A (zh) * 2015-03-31 2015-07-01 佛山市新鹏机器人技术有限公司 一种具备动力的拖动示教机械手
US9889566B2 (en) * 2015-05-01 2018-02-13 General Electric Company Systems and methods for control of robotic manipulation
DE202015105595U1 (de) * 2015-10-21 2016-01-14 Fft Produktionssysteme Gmbh & Co. Kg Absolutes robotergestütztes Positionsverfahren
CN106625650B (zh) * 2015-11-03 2019-04-19 广明光电股份有限公司 机器手臂的教导装置及方法
CN107290985B (zh) * 2016-04-05 2019-10-18 珠海格力电器股份有限公司 用于示教器的数据处理方法和装置
US10295972B2 (en) 2016-04-29 2019-05-21 Brain Corporation Systems and methods to operate controllable devices with gestures and/or noises
TWI622865B (zh) 2016-04-29 2018-05-01 財團法人工業技術研究院 用於機器人的直覺式力量導引方法及其裝置
JP6490032B2 (ja) * 2016-08-10 2019-03-27 ファナック株式会社 組立ロボットのロボット制御装置
US10300609B2 (en) 2016-12-15 2019-05-28 Boston Dynamics, Inc. Motor and controller integration for a legged robot
CN106826769B (zh) * 2017-03-15 2019-06-07 福州大学 一种工业机器人快速示教装置及其实现方法
JP6506348B2 (ja) * 2017-06-14 2019-04-24 ファナック株式会社 ロボットの軌道を修正するロボットの教示装置
CN109382826B (zh) * 2017-08-10 2023-05-16 精工爱普生株式会社 控制装置、机器人及机器人系统
CN107351087A (zh) * 2017-08-29 2017-11-17 成都乐创自动化技术股份有限公司 一种点动响应控制方法及系统
TWI660254B (zh) * 2017-12-20 2019-05-21 湧德電子股份有限公司 軌跡優化系統
JP2019160973A (ja) * 2018-03-12 2019-09-19 オムロン株式会社 部品挿入装置、部品挿入方法、およびプログラム
JP7048176B2 (ja) * 2018-05-23 2022-04-05 アズビル株式会社 ロボットの直接教示装置及び直接教示方法
US11161244B2 (en) * 2019-01-22 2021-11-02 Mitsubishi Electric Research Laboratories, Inc. System and method for automatic error recovery in robotic assembly
CN111702759A (zh) * 2020-06-09 2020-09-25 珠海格力智能装备有限公司 示教系统及机器人的示教方法
WO2022073572A1 (en) * 2020-10-09 2022-04-14 Universal Robots A/S Multifunctional input device for a robot arm
JP2022122366A (ja) * 2021-02-10 2022-08-23 セイコーエプソン株式会社 ロボットシステム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06262563A (ja) * 1993-03-17 1994-09-20 Fanuc Ltd 産業用ロボットの位置教示支援用力表示装置
JPH079368A (ja) * 1993-06-24 1995-01-13 Matsushita Electric Works Ltd 電線接続用マニプレータ
JPH0895620A (ja) * 1994-09-27 1996-04-12 Kawasaki Heavy Ind Ltd ワークの位置決め方法および装置
JPH08174457A (ja) * 1994-12-27 1996-07-09 Nissan Motor Co Ltd 組立用ロボットの制御方法およびその装置
JP2006331188A (ja) * 2005-05-27 2006-12-07 Fanuc Ltd 教示点を修正するための装置、プログラム、記録媒体及び方法
JP2009050921A (ja) * 2007-08-23 2009-03-12 Fanuc Ltd ハンドリング装置
JP2010058242A (ja) * 2008-09-05 2010-03-18 Honda Motor Co Ltd ワークの挿入装置
WO2011021375A1 (ja) * 2009-08-21 2011-02-24 パナソニック株式会社 ロボットアームの制御装置及び制御方法、組立ロボット、ロボットアームの制御プログラム、及び、ロボットアームの制御用集積電子回路
JP2011131300A (ja) * 2009-12-22 2011-07-07 Canon Inc ロボットシステム、その制御装置及び方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3287151B2 (ja) * 1994-12-27 2002-05-27 日産自動車株式会社 組立用ロボットの力制御装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06262563A (ja) * 1993-03-17 1994-09-20 Fanuc Ltd 産業用ロボットの位置教示支援用力表示装置
JPH079368A (ja) * 1993-06-24 1995-01-13 Matsushita Electric Works Ltd 電線接続用マニプレータ
JPH0895620A (ja) * 1994-09-27 1996-04-12 Kawasaki Heavy Ind Ltd ワークの位置決め方法および装置
JPH08174457A (ja) * 1994-12-27 1996-07-09 Nissan Motor Co Ltd 組立用ロボットの制御方法およびその装置
JP2006331188A (ja) * 2005-05-27 2006-12-07 Fanuc Ltd 教示点を修正するための装置、プログラム、記録媒体及び方法
JP2009050921A (ja) * 2007-08-23 2009-03-12 Fanuc Ltd ハンドリング装置
JP2010058242A (ja) * 2008-09-05 2010-03-18 Honda Motor Co Ltd ワークの挿入装置
WO2011021375A1 (ja) * 2009-08-21 2011-02-24 パナソニック株式会社 ロボットアームの制御装置及び制御方法、組立ロボット、ロボットアームの制御プログラム、及び、ロボットアームの制御用集積電子回路
JP2011131300A (ja) * 2009-12-22 2011-07-07 Canon Inc ロボットシステム、その制御装置及び方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015174172A (ja) * 2014-03-14 2015-10-05 セイコーエプソン株式会社 ロボット、ロボットシステム、及び制御装置
CN106413981A (zh) * 2014-05-27 2017-02-15 川崎重工业株式会社 自动组装装置及其控制方法
CN105619409A (zh) * 2016-02-24 2016-06-01 佛山市科莱机器人有限公司 手动示教机器人动作优化处理方法
WO2018043212A1 (ja) * 2016-08-29 2018-03-08 株式会社ソニー・インタラクティブエンタテインメント 組立装置、及び電子機器の製造方法
JPWO2018043212A1 (ja) * 2016-08-29 2019-06-24 株式会社ソニー・インタラクティブエンタテインメント 組立装置、及び電子機器の製造方法
JP2020517474A (ja) * 2017-04-23 2020-06-18 フランカ エミカ ゲーエムベーハーFRANKA EMIKA GmbH 拡張ボードをプラグインカップリングに差し込む為の装置および方法
US11247339B2 (en) 2017-04-23 2022-02-15 Franka Emika Gmbh Device and method for plugging an expansion board into a plug-in coupling
JP7020705B2 (ja) 2017-04-23 2022-02-16 フランカ エーミカ ゲーエムベーハー 拡張ボードをプラグインカップリングに差し込む為の装置および方法
JP2019155496A (ja) * 2018-03-08 2019-09-19 オムロン株式会社 部品挿入装置、部品挿入方法、およびプログラム
JP2019061715A (ja) * 2018-12-17 2019-04-18 ファナック株式会社 可動部を直接手動で操作可能な数値制御工作機械
JP2022520052A (ja) * 2019-02-08 2022-03-28 ヤスカワ アメリカ インコーポレイティッド スルービーム自動ティーチング
JP2021062436A (ja) * 2019-10-11 2021-04-22 セイコーエプソン株式会社 教示方法

Also Published As

Publication number Publication date
JPWO2013080500A1 (ja) 2015-04-27
CN103501969B (zh) 2016-08-24
CN103501969A (zh) 2014-01-08
US20140114477A1 (en) 2014-04-24
US9211640B2 (en) 2015-12-15
JP5636119B2 (ja) 2014-12-03

Similar Documents

Publication Publication Date Title
JP5636119B2 (ja) ロボットの教示装置、ロボット装置、ロボットの教示装置の制御方法、ロボットの教示装置の制御プログラム
JP5512048B2 (ja) ロボットアームの制御装置及び制御方法、ロボット、制御プログラム、並びに、集積電子回路
CN107015530B (zh) 模拟装置以及模拟方法
CN107414842B (zh) 控制装置、机器人以及机器人系统
US8489236B2 (en) Control apparatus and control method for robot arm, robot, control program for robot arm, and integrated electronic circuit
JP5545534B2 (ja) ロボットの教示再生装置、教示再生方法、及び教示データ作成方法
US20080249659A1 (en) Method and system for establishing no-entry zone for robot
US20190376860A1 (en) Visuo-haptic sensor
JP2018167334A (ja) 教示装置および教示方法
JP2006277076A (ja) 画像インターフェイス装置
JP2015112654A (ja) 制御装置、ロボット、教示データ生成方法及びロボットシステム
JP7233858B2 (ja) ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
JP5428639B2 (ja) ロボットの制御装置及びロボットのティーチング方法
JP2008168372A (ja) ロボット装置及び形状認識方法
JP6322949B2 (ja) ロボット制御装置、ロボットシステム、ロボット、ロボット制御方法及びロボット制御プログラム
Cui et al. Caveats on the first-generation da Vinci research kit: Latent technical constraints and essential calibrations
WO2020105295A1 (ja) 画像情報処理装置、把持システム、および画像情報処理方法
JP6499272B2 (ja) ティーチング装置及び制御情報の生成方法
JP7401184B2 (ja) ロボットシステム
JP5857803B2 (ja) 産業用機械の干渉判定装置、干渉判定方法、コンピュータプログラムおよび記録媒体
CN112828895B (zh) 机器人仿真系统
WO2021010181A1 (ja) 検査装置、検査方法、位置決め方法、およびプログラム
JP7249221B2 (ja) センサ位置姿勢キャリブレーション装置及びセンサ位置姿勢キャリブレーション方法
Kaul et al. The sense of surface orientation—A new sensor modality for humanoid robots
US20230154162A1 (en) Method For Generating Training Data Used To Learn Machine Learning Model, System, And Non-Transitory Computer-Readable Storage Medium Storing Computer Program

Legal Events

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

Ref document number: 12853134

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013546982

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12853134

Country of ref document: EP

Kind code of ref document: A1