[go: up one dir, main page]

WO2014002678A1 - ロボット制御装置およびロボット制御方法 - Google Patents

ロボット制御装置およびロボット制御方法 Download PDF

Info

Publication number
WO2014002678A1
WO2014002678A1 PCT/JP2013/065060 JP2013065060W WO2014002678A1 WO 2014002678 A1 WO2014002678 A1 WO 2014002678A1 JP 2013065060 W JP2013065060 W JP 2013065060W WO 2014002678 A1 WO2014002678 A1 WO 2014002678A1
Authority
WO
WIPO (PCT)
Prior art keywords
command value
robot
positional relationship
learning
command
Prior art date
Application number
PCT/JP2013/065060
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 US14/401,593 priority Critical patent/US9517556B2/en
Priority to CN201380033535.2A priority patent/CN104379308B/zh
Priority to JP2014522493A priority patent/JP5774223B2/ja
Priority to DE112013003209.0T priority patent/DE112013003209B4/de
Publication of WO2014002678A1 publication Critical patent/WO2014002678A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0084Programme-controlled manipulators comprising a plurality of manipulators
    • 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/1682Dual arm manipulator; Coordination of several manipulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/39122Follower, slave mirrors leader, master
    • 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/39124Grasp common rigid object, no movement end effectors relative to object
    • 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 control apparatus and a robot control method for driving a plurality of robots while synchronizing the robots.
  • an abnormality can be detected by looking at the current value of the motor, for example. By detecting an abnormality, the robot can be stopped safely.
  • many techniques for improving the synchronization accuracy of the basic periodic signal of each operation have been proposed for the purpose of reducing the mutual position error of the robot in operation.
  • a technique that corrects the position and orientation by force control when the position and orientation relationship between the gripping positions (end positions) of the hands (end effectors) of multiple robots occurs.
  • the gripping position is corrected in accordance with the force generated at the hand, and is controlled so as to move to a position where the force applied to the hand is within an allowable force range.
  • Such position and orientation correction techniques can be broadly classified into a master-slave system and an impedance control system.
  • the master-slave system one robot is the master robot (master robot) and the other robots are slave robots (slave robots).
  • the master robot performs position control on the ideal trajectory, and the other slave robots are powerful. It is a method of following the main robot by control.
  • the master-slave method includes a method called a synchronous control method that does not include force control as a configuration. This is used as an inexpensive configuration that does not include a force sensor in industrial applications.
  • the positional relationship between the master robot and the slave robot is defined in advance, and the positional relationship defined according to the master command value is used.
  • a slave position command value is calculated (see, for example, Patent Document 1).
  • the impedance control method calculates the trajectory of each robot in reverse from the trajectory of the desired object to be handled, and when the trajectory is used as a command value, gives an appropriate impedance characteristic to the force applied to the hand. In this method, a desired motion is performed on each robot by controlling the position (see, for example, Patent Document 2).
  • the present invention has been made in view of the above, and can reduce as much as possible the load applied to the gripping workpiece at any position on the actual trajectory of a plurality of robots during cooperative operation (synchronous drive).
  • An object is to obtain a control device and a robot control method.
  • the present invention provides a robot control apparatus for synchronously driving a first robot and a second robot different from the first robot, the first robot and the first robot
  • the first learning command applied to the first robot based on N first learning command values per robot, which is a position-corrected command value for positioning the two robots on their respective paths during synchronous driving.
  • Position relationship matrix generation for generating a positional relationship matrix that defines a positional relationship during synchronous driving between a value and a first learning command value applied to the second robot for each of the N first learning command values
  • a first command value output unit that outputs a first drive command value for every M (M> N) calculation cycles, which is a command value that defines a trajectory of the first robot, and the N positions
  • the first drive by interpolating the relation matrix
  • a positional relationship matrix interpolation unit that generates a positional relationship matrix for each command value, and a corresponding positional relationship matrix after the interpolation is applied to each of the M first driving command values to determine the locus of the second robot.
  • a second command value generation unit that generates M second drive command values that are command values to be defined, and drives the first robot based on the first drive command values, and the second The second robot is driven based on a drive command value.
  • generating a command value for the second robot by approximating a transformation matrix in consideration of an error can generate the robot's motion characteristics and Since it can be realized without the need for complicated calculations for identifying geometric errors of robots, it is possible to reduce the load on the gripping workpiece as much as possible at any position on the actual trajectory of multiple robots during synchronous driving. There is an effect that can be done.
  • FIG. 1 is a diagram for explaining a production system using the robot control system according to the first embodiment of the present invention.
  • FIG. 2 is a diagram illustrating a configuration of a robot control system according to a comparative example.
  • FIG. 3 is a diagram illustrating an ideal positional relationship between the end effectors.
  • FIG. 4 is a diagram illustrating the configuration of the robot control system according to the first embodiment.
  • FIG. 5 is a flowchart illustrating the preparation process according to the first embodiment.
  • FIG. 6 is a flowchart illustrating an operation during automatic operation of the master control device according to the first embodiment.
  • FIG. 7 is a flowchart for explaining the operation during automatic operation of the slave control device of the first embodiment.
  • FIG. 8 is a diagram illustrating the configuration of the robot control system according to the second embodiment.
  • FIG. 9 is a diagram for explaining the memory configuration of the transformation matrix function storage means of the second embodiment.
  • FIG. 10 is a flowchart illustrating an operation in which the positional relationship calculation apparatus according to the second embodiment generates the second transformation matrix function.
  • FIG. 11 is a flowchart for explaining the operation during automatic operation of the slave control device of the second embodiment.
  • FIG. 12 is a diagram illustrating the configuration of the robot control system according to the third embodiment.
  • FIG. 13 is a diagram for explaining the memory configuration of the transformation matrix function storage means of the third embodiment.
  • FIG. 14 is a diagram illustrating the configuration of the robot control system according to the seventh embodiment.
  • FIG. 15 is a diagram illustrating another configuration of the robot control system according to the seventh embodiment.
  • FIG. 16 is a diagram illustrating the configuration of the robot control system according to the eighth embodiment.
  • FIG. 17 is a diagram illustrating the relationship between the acting force applied to the end effector and the position of the end effector in the robot control system according to the comparative example.
  • FIG. 18 is a diagram illustrating the relationship between the acting force applied to the end effector and the position of the end effector when impedance control is applied to the robot control system according to the comparative example.
  • FIG. 19 is a diagram illustrating the relationship between the acting force applied to the end effector and the position of the end effector in the robot control system according to the eighth embodiment.
  • FIG. 1 is a diagram illustrating a production system using the robot control system (robot control device) according to the first embodiment of the present invention.
  • a master robot (first robot) 10a a slave robot (second robot) 10b, a master controller 20a that controls the master robot 10a, a slave controller 20b that controls the slave robot 10b, and a position A relational arithmetic unit 30.
  • the master robot 10a is configured such that an arm having an end effector 11a at the tip is attached to a mounting base 12a.
  • the slave robot 10b is configured by attaching an arm having an end effector 11b at the tip to a mounting base 12b.
  • the robots 10a and 10b are described as being 6-DOF vertical articulated robots as an example.
  • the master control device 20a, the slave control device 20b, and the positional relationship calculation device 30 are connected to each other via a communication line, and constitute a robot control system (robot control device) that drives the master robot 10a and the slave robot 10b while synchronizing them.
  • the master control device 20a generates a position command value for positioning the end effector 11a, and drives the end effector 11a based on the generated position command value. Further, the master control device 20a transmits a position command value for the end effector 11a to the slave control device 20b.
  • the positional relationship calculation device 30 supports the end effectors 11a and 11b during the cooperative operation so that the end effector 11a and the end effector 11b can hold the same work and can transport the work (gripping work) in cooperation.
  • the positional relationship information that defines the positional relationship between them is calculated. Then, the positional relationship calculation device 30 transmits the obtained positional relationship information to the slave control device 20b.
  • the slave control device 20b calculates the position command value for positioning the end effector 11b by applying the positional relationship information between the end effectors 11a and 11b to the position command value for positioning the end effector 11a. Then, the slave control device 20b drives the end effector 11b based on the calculated position command value.
  • FIG. 2 is a diagram illustrating a configuration of a robot control system according to a comparative example.
  • reference numeral 50 is assigned to the positional relationship calculation apparatus to which the comparative example is applied
  • reference numeral 40a is assigned to the master control apparatus
  • reference numeral 40b is assigned to the slave control apparatus.
  • it is provided in the master control device 40a and the slave control device 40b, and only differs depending on whether the operation target is a master system (master robot 10a, master control device 40a) or a slave system (slave robot 10b, slave control device 40b).
  • the master control device 40a includes a command value storage means 100 for preliminarily storing M position command values that define the command trajectory of the end effector 11a for each calculation cycle, and among the M position command values (hereinafter simply referred to as command values).
  • Correction amount generation means 102a for calculating a correction amount (Tm-th correction amount) for a Tm (Tm is an integer satisfying 1 ⁇ Tm ⁇ M) -th command value (Tm-th command value), Tm-th command value and Tm-th Correction command value generation means 101a for generating a Tm-th correction command value obtained by correcting the Tm-th command value based on the correction amount, and driving the master robot 10a so that the end effector 11a follows the Tm-th correction command value.
  • the Tmth current position By detecting the current position (Tmth current position) of the drive control means 103a including the servo amplifier and the servomotor and the end effector 11a in operation based on the Tmth correction command value, the Tmth Feeding back the standing position to the drive control unit 103a, and a current position detection unit 104a constituted by such as an encoder.
  • the correction amount generation unit 102a includes an acting force calculation unit 105a, a correction amount calculation unit 106a, and a correction amount storage unit 107a.
  • the acting force calculation means 105a calculates the acting force generated in the end effector 11a.
  • the correction amount storage means 107a accumulates and stores the calculated correction amounts (that is, the T1th correction amount to the Tm-1th correction amount).
  • the correction amount calculating means 106a uses the T1th correction amount to the Tm-1th correction amount to calculate the Tmth correction amount so that the acting force generated in the end effector 11a is reduced.
  • the calculated Tmth correction amount is sent to the correction command value generation unit 101a and is stored in the correction amount storage unit 107a.
  • the positional relationship calculation device 50 calculates a matrix (conversion matrix) that defines the positional relationship between the command value for positioning the end effector 11a and the command value for positioning the end effector 11b as positional relationship information. By applying the conversion matrix to a command value for positioning the end effector 11a, a command value for positioning the end effector 11b can be obtained.
  • conversion matrix conversion matrix
  • the slave control device 40b operates the transformation matrix storage means 109 for storing the transformation matrix calculated by the positional relationship calculation device 50, and the transformation matrix stored in the transformation matrix storage means 109 on the Tm-th command value for positioning the end effector 11a.
  • Command value generation means 108 for generating a Tm-th command value for positioning the end effector 11b
  • correction amount generation means 102b for calculating a Tm-th correction value for correcting the Tm-th command value for the end effector 11b
  • Tm for the end effector 11b
  • a correction command value generation means 101b for generating a Tmth correction command value based on the Tth command value and the Tmth correction amount, a servo amplifier for driving the slave robot 10b based on the Tmth correction command value applied to the end effector 11b
  • Drive control means 103b composed of a servo motor, and end Current position detection means 104b configured by an encoder or the like is provided that detects the Tmth current position of the effector 11b
  • This transformation matrix is generally called a homogeneous transformation matrix that represents the rotation amount and position.
  • the rotation matrix is 1 R 2 (3 ⁇ 3 element square matrix)
  • FIG. 3 is a diagram for explaining an ideal positional relationship between the end effectors 11a and 11b.
  • ⁇ rob1 is a coordinate system (master robot coordinate system) based on the mounting table 12a
  • ⁇ rob2 is a coordinate system (slave robot coordinate system) based on the mounting table 12b
  • ⁇ wld is It is an absolute coordinate system (world coordinate system)
  • ⁇ E1 is a coordinate system based on the end effector 11a
  • ⁇ E2 is a coordinate system based on the end effector 11b.
  • the ideal environment is an environment where the commanded angle and the commanded position match, in other words, an environment where there is no absolute position error. In such an environment, the following equation (3) can be used as a conversion matrix between master and slave.
  • a ⁇ 1 represents an inverse matrix related to the matrix A.
  • E1 T E2 ( wld T rob1 rob1 T E1 ) -1 wld T rob2 rob2 T E2
  • “′” is attached to a transformation matrix that takes into account the alignment by teaching.
  • Positional relationship calculation unit 50 the command value ROB1 T after Awasekomi 'E1, rob2 T' E2 a and respectively substituted to rob1 T E1, rob2 T E2 of the formula (3), the E1 T E2 obtained E1 T ' E2 .
  • E1 T ′ E2 is calculated before the normal operation (synchronously driving the robots 10a and 10b, hereinafter also referred to as automatic operation) is started.
  • the calculated E1 T ′ E2 is used as a conversion matrix for position conversion during automatic driving. That is, at the time of automatic operation, the slave control device 40b uses the command value on the master control device 40a side and the conversion matrix for command value generation means for the purpose of performing an operation following the correction command value of the master control device 40a.
  • a command value for the end effector 11b is generated.
  • the command value generation means 108 converts the transformation matrix wld T rob1 into the master robot coordinate system with respect to the world coordinate system, the transformation matrix wld T rob2 into the slave robot coordinate system with respect to the world coordinate system, and the transformation matrix E1 T ′ E2 described above. Is used to calculate the command value rob2 T E2 of the slave controller 40b based on the following equation (4).
  • rob2 T E2 ( wld T rob2 ) -1 * rob1 T E1 * E1 T ' E2 (4)
  • the conversion matrix used for conversion of the command value between the master and slave is fixed to E1 T ′ E2 calculated at a teaching point acquired at a certain robot posture, so the command value is Even if the correction is made based on the acting force, it is difficult to keep the positional relationship between the robots or between the robot and the work in a constant state at all positions on the locus during the cooperative operation. Therefore, in the first embodiment, the transformation matrix E1 is used for each of the M command values so that the positional relationship between the robots or the robot and the workpiece can be kept constant at all positions on the locus during synchronous driving. T ' E2 was calculated.
  • FIG. 4 is a diagram for explaining a robot control system using the positional relationship calculation apparatus according to the first embodiment of the present invention.
  • components having the same functions as those of the comparative example are denoted by the same reference numerals, and redundant description is omitted.
  • the master controller 20a includes a command value storage unit 100, a correction amount generation unit 102a, a correction command value generation unit 101a, a drive control unit 103a, and a current position detection unit 104a.
  • the correction amount generation unit 102a includes an acting force calculation unit 105a, a correction amount calculation unit 106a, and a correction amount storage unit 107a.
  • the positional relationship computing device 30 converts the transformation matrix (learning transformation matrix) for each of the teaching points based on command values for positioning to N teaching points (N is a natural number of 2 or more smaller than M) including the operation start position.
  • Transformation matrix generation means 200 for calculating N transformation matrix storage means 201 for storing N learning transformation matrices, transformation matrix function generation means 202 for computing transformation matrix functions based on N learning transformation matrices, It is equipped with. Details of the transformation matrix function will be described later.
  • the calculated transformation matrix function is transmitted to the slave control device 20b as the positional relationship information of the first embodiment.
  • the slave control device 20b is based on the transformation matrix function storage unit 210 that stores the transformation matrix function calculated by the positional relationship calculation device 30, the Tm-th command value (first driving command value) for the end effector 11a, and the transformation matrix function.
  • Command value generating means 211 for generating a Tm-th command value (second drive command value) for positioning the end effector 11b, correction amount generating means 102b, correction command value generating means 101b, drive control means 103b, and current position detection Means 104b are provided.
  • the correction amount generation unit 102b has the same configuration as the correction amount generation unit 102a.
  • the correction command value generation units 101a and 101b and the correction amount generation units 102a and 102b cooperate on the trajectory in each of the N command values at the time of synchronous driving. It functions as a position corrected command value generation unit that generates a position corrected command value (learning command value, first learning command value described later) for each robot to be positioned.
  • the command value storage means 100 functions as a first command value output unit that outputs a command value (first drive command value) for every M (M> N) calculation cycles that define the trajectory of the end effector 11a. To do.
  • the command value storage means 100 has been described as storing the command value in advance and outputting the stored command value, but the functional unit that sequentially generates the command value based on a predetermined calculation May be adopted as the first command value output unit.
  • the transformation matrix function generation unit 202 and the command value generation unit 211 function as a positional relationship matrix interpolation unit that interpolates N conversion matrices to generate a conversion matrix for each command value for the end effector 11a.
  • the command value generation means 211 generates M command values (second drive command values) that define the trajectory of the end effector 11b by applying the interpolation matrix after interpolation to each of the command values for each calculation cycle. Functions as a second command value generation unit.
  • FIG. 5 is a flowchart illustrating a preparation process executed offline in the robot control method according to the first embodiment.
  • the user moves the end effectors 11a and 11b to the teaching point on the locus during the cooperative operation using a teaching operation panel or the like (step S1).
  • the user can adjust the hand positions of the end effectors 11a and 11b by actually holding the workpieces on the end effectors 11a and 11b, and can cause the control devices 20a and 20b to acquire the positions at this time. Note that the position adjustment is performed at each of the N teaching points.
  • the correction command value generation unit 101a determines the position of the end effector 11a obtained at the Tk (Tk is an integer satisfying 1 ⁇ Tk ⁇ N) -th teaching point, the Tk-th command value (learning command) applied to the master robot 10a. (Value) is stored in the command value storage means 100 and the learning command value is output to the positional relationship calculation device 30 (step S2). Further, the correction command value generation means 101b outputs the position of the end effector 11b when step S2 is executed to the positional relationship calculation device 30 as the Tk-th learning command value for the slave robot 10b (step S3). .
  • the correction amount generating unit 102a is configured so that the acting force calculated by the acting force calculating unit 105a is not more than a predetermined value.
  • the correction command value generation unit 101a updates the correction amount to be added to the predetermined command value supplied from the command value storage unit 100 with the correction amount sequentially calculated, until the correction amount is corrected.
  • the correction command value can be used as a learning command value.
  • the measurement of the acting force, the calculation of the correction amount based on the measured acting force, and the correction of the command value based on the calculated correction amount are similarly executed in the slave control device 20b, and the obtained correction command value is set in step S3. Is output as a learning command value.
  • the command value that is provisionally supplied to the correction command value generation means 101a and 101b during the position adjustment may be a predetermined fixed value.
  • any method of measuring the acting force by the acting force calculating means 105a may be used.
  • a force sensor force sensor
  • the detection value of the force sensor is used as a measured value of the acting force, or the hand acting force f (3 axial force + 3 moment) from the torque ⁇
  • J T J T * f
  • J T is a transposed matrix of the matrix J
  • the torque of each axis is calculated from the motor current of each axis of the robots 10a and 10b, and the hand acting force is estimated from the output of the calculated torque, or a torque sensor is attached to each axis instead of the motor current.
  • a method of estimating the acting force from the output torque obtained from the sensor can be employed.
  • the correction command value generation unit 101a can detect the current position detection unit 104a and use the position detection value used as a feedback signal as a learning command value.
  • the slave control device 20b can detect the position detection values detected by the current position detection means 104a and 104b.
  • the user may finely adjust the position of the end effector 11b manually every time the work area or the posture changes.
  • the slave control device 20b can drive the end effector 11b by applying a fixed transformation matrix 1E T ′ E2 provisionally determined in advance to the teaching points for the master robot 10a.
  • the user observes the state of the work at each point where the posture or the position changes by visually or by adding a sensor capable of detecting force or deformation to the work, and uses the operation panel based on the observation result. Fine adjustment is possible.
  • step S4 determines whether or not the position adjustment has been performed for all (N in this case) teaching points. If the position adjustment has not been performed for all the teaching points (No in step S4). In step S1, position adjustment for the next teaching point is performed.
  • the end effector 11a is moved to the teaching point, and the end effector 11b is moved to the position corresponding to the end effector 11a on the teaching point, so that N commands on the trajectories of the end effectors 11a and 11b are obtained. It is possible to obtain command values (position corrected command values) incorporating absolute position errors in each of the values.
  • the transformation matrix generation unit 200 determines the Tk-th learning command value and the Tk-th learning command value.
  • the correction command value generated by the correction command value generation unit 101b at the time point is input, and a Tk-th conversion matrix (learning conversion matrix) is generated (step S5).
  • the transformation matrix generation unit 200 stores the generated learning transformation matrix in the transformation matrix storage unit 201. The generation of the learning conversion matrix is executed for each of the N teaching points.
  • the transformation matrix function generation unit 202 generates a transformation matrix function based on the N learning transformation matrices stored in the transformation matrix storage unit 201 (step S6).
  • a transformation matrix at the current position represented by rate (k, k + 1, Tnow) can be obtained by a transformation matrix function E1 T ′ E2 (rate (k, k + 1, Tnow)).
  • a transformation matrix function E1 T ′ E2 rate (k, k + 1, Tnow)
  • a rotation matrix is a rotation axis vector k and a rotation amount ⁇ using a uniaxial rotation method.
  • a method of changing ⁇ according to rate (k, k + 1, Tonow) is adopted.
  • ⁇ Rk is expressed equivalently using the rotation axis vector k and the rotation amount ⁇ .
  • the rotation matrix and [k, ⁇ ] have the following relational expression.
  • the transformation matrix function obtained by the transformation matrix function generation unit 202 based on the above calculation method is sent to the slave control device 20b and stored in the transformation matrix function storage unit 210.
  • the preparation processing for the cooperative operation is completed by the processing from step S1 to step S6. Thereafter, the user can start automatic operation of the robot control system.
  • FIG. 6 is a flowchart for explaining the operation of the master control device 20a during automatic operation in the robot control method of the first embodiment
  • FIG. 7 is a slave in the robot control method of the first embodiment. It is a flowchart explaining the operation
  • the correction command value generation means 101a initializes Tm with 1 (step S11), and the Tm-th command value stored in the command value storage means 100 is obtained. Is taken out (step S12).
  • the correction amount generating means 102a is based on the correction amount applied to the command values up to Tm-1th stored in the correction amount storage means 107a and the acting force measured by the acting force calculating means 105a. A correction amount is calculated (step S13).
  • the correction command value generation unit 101a adds the extracted Tm-th command value and the Tm-th correction amount to generate a Tm-th correction command value (step S14).
  • the drive control means 103a can position the end effector 11a based on the generated Tm-th correction command value.
  • the correction command value generation unit 101a increments Tm by 1 (step S15), and executes the process of step S11.
  • Tm 1 may be set.
  • the command value generating means 211 initializes Tm with 1 (step S21), and uses the Tm-th command value stored in the command value storage means 100. Take out (step S22). Further, the command value generation unit 211 calculates a section (a section expressed by Pk, Pk + 1) and rate (k, k + 1, Tonow) including the extracted Tm-th command value (step S23). . Then, the command value generation means 211 calculates the transformation matrix E1 T ′ E2 (rate (k, k + 1, Tonow)) based on the equations 13 to 16 (step S24) and obtains the acquired Tm-th command value.
  • the transformation matrix E1 T ′ E2 rate (k, k + 1, Tonow)
  • the Tm-th command value for the end effector 11b is generated by applying the calculated transformation matrix E1 T ′ E2 (rate (k, k + 1, Tnow)) to (step S25).
  • the correction amount generation means 102b is based on the correction amount for the command values up to Tm ⁇ 1 accumulated in the correction amount storage means 107b and the acting force measured by the acting force calculation means 105b.
  • a correction amount is calculated (step S26).
  • the correction command value generation unit 101b adds the generated Tmth command value and the Tmth correction amount to generate a Tmth correction command value (step S27).
  • the drive control means 103b can position the end effector 11b based on the generated Tm-th correction command value.
  • step S27 the command value generation unit 211 increments Tm by 1 (step S28) and executes the process of step S22.
  • Tm 1 may be set.
  • Tm in the master control device 20a is synchronized with the value of Tm in the slave control device 20b.
  • Part or all of the command value storage unit 100, the correction command value generation unit 101a, the acting force calculation unit 105a, the correction amount calculation unit 106a, and the correction amount storage unit 107a is either hardware or software. Or a combination of both. Realization by software means that in a computer having an arithmetic device and a storage device, a program module corresponding to a component is stored in the storage device, and the arithmetic device executes the program module stored in the storage device. It is to realize the function of the corresponding component.
  • the functions as the command value storage unit 100 and the correction amount storage unit 107a are realized by securing corresponding areas in the storage devices.
  • some or all of the components of the positional relationship computing device 30 can be realized as either hardware or software, or a combination of both. Also, some or all of the command value generation means 211, the transformation matrix function storage means 210, the correction command value generation means 101b, the action force calculation means 105b, the correction amount calculation means 106b, and the correction amount storage means 107b Hardware, software, or a combination of both.
  • the master control device 20a, the slave control device 20b, and the positional relationship calculation device 30 have been described as different devices, but any two or all of these devices should be realized as one device. Is possible. Each of these devices can also be realized by being divided into a plurality of devices.
  • the correction based on the acting force is described in both the master control device 20a and the slave control device 20b. However, the correction based on the acting force is performed only in either one of the control devices. May be.
  • the example applied to a production system having two robots has been described.
  • three or more robots cooperate. It can also be applied to an operating production system.
  • the first embodiment can be applied by using one of the robots that cooperates as a master robot and all other robots as slave robots.
  • the robot control device can determine whether the robot is based on the position-corrected command value for each robot that is positioned in each of the N command values during synchronous driving.
  • a conversion matrix generation unit 200 as a positional relationship matrix generation unit that generates a learning conversion matrix as a positional relationship matrix that defines the positional relationship of the positionally corrected command values for each of the N command values
  • a master A command value storage unit 100 as a first command value output unit that outputs a command value for the master robot 10a for each M (M> N) calculation cycles defining the trajectory of the robot 10a
  • N learning conversion matrices Conversion matrix function generation unit 202 and command value generation unit 211 functioning as a positional relationship matrix interpolation unit that generates a conversion matrix for each command value for each calculation cycle, -Command value generation having a function as a second command value generation unit that generates a command value for each calculation cycle for the slave robot 10b by applying the interpolated learning conversion matrix to each command value
  • Means 211 so that a conversion matrix can be obtained approximately every calculation cycle and a command value for the slave robot 10b can be generated.
  • the load on the gripping workpiece can be reduced as much as possible at any position, and high-speed cooperative operation by the robot can be realized.
  • teaching points are given by the user, and the master robot 10a and the slave robot 10b are moved by the user to each of the N teaching points, and are stopped.
  • a correction command value generation unit 101a that operates as a position corrected command value generation unit that generates a command value for each robot and uses it as a learning command value.
  • 101b, and correction amount generation means 102a, 102b so that after the start-up, the user adjusts the setting of the force control system so that correction corresponding to the absolute position error can be made in all sections. There is no need, and the start-up time can be shortened.
  • FIG. 8 is a diagram for explaining a robot control system using the positional relationship calculation apparatus according to the second embodiment of the present invention.
  • the same components as those in the first embodiment are denoted by the same reference numerals as those in the first embodiment, and redundant description is omitted.
  • the master controller 21a includes a command value storage unit 100, a correction amount generation unit 102a, a correction command value generation unit 101a, a drive control unit 103a, and a current position detection unit 104a.
  • the correction amount generation unit 102a includes an acting force calculation unit 105a, a correction amount calculation unit 106a, and a correction amount storage unit 107a.
  • the master control device 21 a outputs the current position detected by the current position detection unit 104 a to the positional relationship calculation device 31 during normal operation.
  • the positional relationship calculation device 31 includes a transformation matrix generation unit 300, a transformation matrix storage unit 301 that stores N learning transformation matrices, and a transformation matrix function generation unit 302.
  • the transformation matrix generation unit 300, the transformation matrix storage unit 301, and the transformation matrix function generation unit 302 perform the same processing as the corresponding components in the first embodiment in the preparation process, and perform the transformation matrix function in the first embodiment.
  • First transformation matrix function is generated.
  • second transformation matrix function is dynamically generated based on the respective current positions detected by the current position detection means 104a and 104b.
  • the slave control device 21b includes a transformation matrix function storage unit 310, a command value generation unit 311, a correction amount generation unit 102b, a correction command value generation unit 101b, a drive control unit 103b, and a current position detection unit 104b.
  • the correction amount generation unit 102b has the same configuration as the correction amount generation unit 102a.
  • FIG. 9 is a diagram for explaining the memory configuration of the transformation matrix function storage unit 310.
  • the transformation matrix function storage unit 310 stores a first transformation matrix function 303 and a second transformation matrix function 304 calculated by the positional relationship calculation device 31.
  • the second transformation matrix function 304 stored in the transformation matrix function storage unit 310 is dynamically updated by the positional relationship calculation device 31.
  • the command value generation means 311 can generate the Tm-th command value using the first conversion matrix function 303 or the second conversion matrix function 304.
  • the normal operation of the master control device 21a is the same as that of the first embodiment except that the current position detected by the current position detection unit 104a is output to the positional relationship calculation device 31, and thus the description thereof is omitted.
  • the slave control device 21b also outputs the current position detected by the current position detection unit 104b to the positional relationship calculation device 31 in the same manner as the master control device 21a.
  • each of N command values closest to the learning command value is transferred from the command value storage unit 100 to the correction command value generation unit 101a and the command value generation unit 311.
  • the master control device 21 a and the slave control device 21 b output the current position to the positional relationship calculation device 31.
  • the current position detection means 104a and 104b each output a position detection value as a new learning command value each time the master robot 10a reaches the teaching point or the closest point to the teaching point.
  • FIG. 10 is a diagram for explaining an operation in which the positional relationship calculation device 31 generates the second transformation matrix function 304.
  • the transformation matrix generation means 300 uses the N pairs of current positions input from the master control device 21a and the slave control device 21b for each cycle of operation completion time as learning command values in the first embodiment. N learning conversion matrices are generated (step S31).
  • the transformation matrix generation unit 300 stores the generated learning transformation matrix in the transformation matrix storage unit 301.
  • the transformation matrix function generating unit 302 generates the second transformation matrix function 304 based on the N learning transformation matrices stored in the transformation matrix storage unit 301 by the process of step S31 (step S32).
  • the generated second transformation matrix function 304 is sent to the slave control device 21b, and the second transformation matrix function 304 stored in the transformation matrix function storage means 310 is the second transformation matrix function 304 that has been sent. Overwritten. Thereafter, the process of step S31 is executed.
  • FIG. 11 is a flowchart for explaining the normal operation of the slave control device 21b.
  • the command value generating means 311 initializes Tm with 1 (step S41), and takes out the Tm-th command value stored in the command value storage means 100 (step S42).
  • the command value generation unit 311 selects a conversion matrix function to be used (step S43).
  • the command value generation unit 311 may execute the selection process in step S43 based on any criterion.
  • the second transformation matrix function 304 tends to converge as the elapsed time during normal operation increases, but the command value generation unit 311 selects the first transformation matrix function 303 when the convergence is not sufficient. You may do it. Further, since the second transformation matrix function 304 is not generated immediately after the normal operation is started, the command value generation means 311 may select the first transformation matrix function 303 at that time. .
  • the command value generating means 311 calculates a section (section expressed by Pk, Pk + 1) and rate (k, k + 1, Tnow) including the extracted Tm-th command value (step S44). ). Then, the command value generation means 311 calculates a transformation matrix E1 T ′ E2 (rate (k, k + 1, Tnow)) based on the selected transformation matrix function and Equations 13 to 16 (Step S45), The calculated transformation matrix E1 T ′ E2 (rate (k, k + 1, Tnow)) is applied to the acquired Tm-th command value to generate a Tm-th command value for the end effector 11b (step S46). .
  • the correction amount generation means 102b is based on the correction amount for the command values up to Tm ⁇ 1 accumulated in the correction amount storage means 107b and the acting force measured by the acting force calculation means 105b.
  • a correction amount is calculated (step S47).
  • the correction command value generation unit 101b adds the generated Tm-th command value and the Tm-th correction amount to generate a Tm-th correction command value (step S48).
  • the command value generation unit 311 increments Tm by 1 (step S49), and executes the process of step S42.
  • the command correction for performing the correction to reduce the acting force applied to the hand with respect to the command value for each calculation cycle of at least one of the master robot 10a or the slave robot 10b.
  • Function correction amount generation means 102a and 102b, correction command value generation means 101a and 101b
  • N command values are configured.
  • a mode for continuing the update of the second transformation matrix function and a mode for stopping the update are provided, for example, an attempt including an unnecessary disturbance (for example, an increase in load on the robot due to a cable in the system being entangled) Can be excluded from learning, and learning can not be performed during actual production.
  • an unnecessary disturbance for example, an increase in load on the robot due to a cable in the system being entangled
  • learning can not be performed during actual production.
  • the trajectory is approximated so that the trajectory between the operation start position and the operation end position of the command values passes through the vicinity of the command value located between them.
  • a robot control method see, for example, Patent Document 3
  • the trajectory calculated by the robot control device based on the command value given by the user does not always pass on the command value.
  • the robots 10a and 10b are coordinated with a trajectory in which the acting force on the hand becomes small even when such a technique is applied. It can be operated.
  • the command value after interpolation processing when the interpolation method is applied is input to the command value generation means 311 as the command value.
  • the transformation matrix generation unit 300 uses the command value of the slave robot acquired by the command value generation unit 311 calculated using the data acquired during the teaching work, as described in the first embodiment.
  • the robot outputs the command value after performing the interpolation processing to the correction command value generation means 101b.
  • the master control device 21a may perform a filter process when outputting the command value for each calculation cycle to the drive control means 103a.
  • the filter processing is applied to the command value for each calculation cycle, there is a difference between the position on the trajectory that actually passes and the interpolation command value.
  • the master control device 21a uses the current position as the learning command value, but the slave control device 21b outputs the corrected command value to the drive control means 103b without performing filter processing.
  • the slave control device 21b may approximately calculate a command value such that the command value after the filter processing becomes the current position.
  • the speed setting value at the time of synchronous driving (here, override is referred to but may be a speed command value at the representative position) and the second transformation matrix function are recorded in association with each other. .
  • the second conversion matrix function corresponding to the changed speed command value is calculated based on the second conversion matrix function recorded in advance.
  • the calculated new second conversion matrix function is used for synchronous driving using the updated speed command value.
  • the user changes the speed setting value in advance and executes a plurality of times of automatic driving on a trial basis, and records the second transformation matrix function for each speed setting value in the robot controller, so that the subsequent automatic driving is performed. Since the second transformation matrix function used for the synchronous drive can be calculated based on the recorded second transformation matrix function, the positional relationship between the robots converges as in the second embodiment. It becomes possible to stabilize the control in a time shorter than the time required for the operation.
  • Equation 7 the error between the transformation matrices when shifting from the transformation matrix at Pk to the transformation matrix at Pk + 1 will be considered.
  • the conversion error ⁇ T (k, k + 1, ovrd a) when the speed set value is a can be described as the following equation.
  • the conversion matrix function learned with one of the speed setting values. Can be used as they are. However, if the hand position changes due to a speed change, including the case where the response of each axis is affected or the influence of a filter, there is a difference between the results of Equation 17 and Equation 18. Think about this difference.
  • the rotation amount is ⁇ _a
  • the rotation axis of the uniaxial rotation method corresponding to Equation 18 is k_b
  • the rotation amount is ⁇ _b.
  • the second transformation matrix function when the speed setting value is a is obtained using the values obtained from the above equations 19 and 20.
  • the slave control device can obtain the second transformation matrix function that eliminates the error that occurs according to the speed even when the normal operation is performed at any speed setting value (override). .
  • FIG. 12 is a diagram illustrating the configuration of the robot control system according to the third embodiment of the present invention.
  • the same components as those in the first embodiment are denoted by the same reference numerals as those in the first embodiment, and redundant description is omitted.
  • the master controller 22a includes a command value storage unit 100, a correction amount generation unit 102a, a correction command value generation unit 101a, a drive control unit 103a, and a current position detection unit 104a.
  • the correction amount generation unit 102a includes an acting force calculation unit 105a, a correction amount calculation unit 106a, and a correction amount storage unit 107a.
  • the master control device 22a outputs the current position detected by the current position detection means 104a to the positional relationship calculation device 32 during the test operation.
  • the positional relationship calculation device 32 includes a transformation matrix generation unit 400, a transformation matrix storage unit 401 that stores N learning transformation matrices, a transformation matrix function generation unit 402, and a test operation speed setting unit 403. Yes.
  • the transformation matrix generation unit 400, the transformation matrix storage unit 401, and the transformation matrix function generation unit 402 perform processing similar to that of the corresponding components in the first embodiment in the preparation process, and perform the transformation matrix function in the first embodiment. (First transformation matrix function 303) is generated.
  • the test operation speed setting means 403 receives an input of a speed set value. Then, based on the respective current positions detected by the current position detection means 104a and 104b, the conversion matrix generation means 400, the conversion matrix storage means 401, and the conversion matrix function generation means 402 dynamically change the conversion matrix function (second And the generated second conversion matrix function is associated with the speed setting value input to the test operation speed setting means 403 and is output to the slave controller 22b.
  • the second transformation matrix function for each speed setting value is denoted by reference numeral 404 to distinguish it from the second transformation matrix function 304 of the second embodiment.
  • the slave controller 22b includes a transformation matrix function storage unit 410, a command value generation unit 411, a normal operation speed setting unit 412, a correction amount generation unit 102b, a correction command value generation unit 101b, a drive control unit 103b, and a current position detection unit 104b. It has.
  • the correction amount generation unit 102b has the same configuration as the correction amount generation unit 102a.
  • FIG. 13 is a diagram for explaining the memory configuration of the transformation matrix function storage unit 410.
  • the transformation matrix function storage unit 410 stores the first transformation matrix function 303 calculated by the positional relationship calculation device 32 and the second transformation matrix function 404 for each speed setting value.
  • the normal operation speed setting means 412 receives an input of a speed set value during normal operation.
  • the speed set value input during normal operation may be different from the speed set value input during test operation.
  • the command value generation means 411 includes the speed setting value acquired by the normal operation speed setting means 412 and the second conversion matrix function 404 (and the first conversion) for each speed setting value stored in the conversion matrix function storage means 410.
  • the transformation matrix is calculated using the equations 19 and 20 while correcting the position of the error according to the speed.
  • the Tm-th command value for the end effector 11b is calculated by applying the calculated conversion matrix to the Tm-th command value for the end effector 11a acquired from the command value storage means 100.
  • the robot control device includes the normal operation speed setting means 412 as the speed setting value input unit that receives the input of the speed setting value during the synchronous driving, and the speed setting value in advance.
  • Conversion matrix function storage means 410 serving as a positional relationship matrix function storage unit for storing the second conversion matrix function 404 of the second conversion matrix function 404, and the command value generation means 411 is stored in the conversion matrix function storage means 410.
  • the conversion matrix function is read out, corrected based on the input speed setting value, and the command value for each calculation cycle applied to the slave robot 10b is calculated using the corrected second conversion matrix function.
  • the optimum positional relationship between the robots 10a and 10b is determined using information recorded in advance. It is possible to constant, it is possible to allowed to shorten the rise than the second embodiment time.
  • Embodiment 4 the correction amount calculation units 102a and 102b perform impedance control in consideration of impedance characteristics.
  • Impedance control is a method of controlling the hand position by introducing a model in which a spring damper is connected between the hand and the environment and defining a desired impedance.
  • the correction amount generation method by the correction amount generation units 102a and 102b described in the first embodiment is changed, but the same effect as that obtained by the first embodiment can be obtained.
  • the robots 10a and 10b and the workpiece are adjusted so that an overload state is unlikely to occur. You can learn the trajectory in the state.
  • the correction amount generation means 102a and 102b may calculate the correction amount using the distance measured by the distance sensor instead of the acting force applied to the hand. .
  • a distance sensor is attached to the robots 10a and 10b or a jig of the production system, the distance between the robot and the workpiece is measured, and the relative distance between the hand positions of the robots 10a and 10b is calculated. When the distance deviates from the desired distance, a correction amount is generated to match the two.
  • the method for calculating the relative distance between the robots 10a and 10b is arbitrary.
  • the relative distance between the robot 10a and the workpiece and the relative distance between the robot 10b and the workpiece may be measured by a distance sensor, and the distance between the robot 10a and the robot 10b may be obtained. Further, the distance between the robot 10a and the robot 10b may be directly measured by a distance sensor.
  • This configuration is ideal for a work target when a robot or peripheral drive device performs non-contact, but coordinated operations that require work while maintaining a certain distance.
  • the locus of the slave robot 10b that maintains the positional relationship can be learned.
  • Embodiment 6 FIG.
  • the correction amount generation means 102a and 102b advance the learning using the correction amount that varies for each trial even at the same teaching point. May not be guaranteed.
  • the transformation matrix generated by the transformation matrix generating means 200 the transformation matrix obtained at the (k + 1) th time is uk + 1, the transformation matrix obtained at the kth time is u, the kth time and the k + th time.
  • a learning command value is generated by adding an average value of correction amounts for a plurality of cycles to each of N command values before position correction.
  • the learning command value is referred to as a first learning command value.
  • the command value before position correction in which the first learning command value is generated by adding the average values of the correction amounts for a plurality of cycles is referred to as a second learning command value.
  • a teaching value or a command value in the vicinity of the teaching point among the M position command values that define the command trajectory of the end effector 11a for each calculation cycle is used for the second learning. It shall be used as a command value.
  • FIG. 14 is a diagram for explaining a robot control system using the positional relationship calculation apparatus according to the seventh embodiment of the present invention.
  • the same components as those in the first to third embodiments are denoted by the same reference numerals as those in the first to third embodiments, and redundant description is omitted.
  • the master controller 23a includes a command value storage unit 100, a correction amount generation unit 110a, a correction command value generation unit 101a, a drive control unit 103a, and a current position detection unit 104a.
  • the correction amount generation unit 110a includes an acting force calculation unit 105a, a correction amount calculation unit 106a, and a correction amount storage unit 111a.
  • the correction amount storage unit 111a accumulates and stores the R correction amounts calculated most recently for each of the N command values.
  • the correction amount storage means 111a stores the R correction amounts calculated most recently for each of the M second learning command values.
  • R is, for example, a preset integer of 2 or more.
  • the R correction amounts for each of the M second learning command values are read out by the positional relationship calculation device 33.
  • the second learning command value stored in the command value storage unit 100 is read by the positional relationship calculation device 33. Further, the correction command value for each calculation cycle generated by the correction command value generating unit 101a is transmitted to the slave control device 23b. The second learning command value is corrected by the correction command value generating means 101a and then transmitted to the slave control device 23b.
  • the second learning command value stored in the command value storage means 100 is called a second learning command value for the end effector 11a to distinguish it from a second learning command value for the end effector 11b described later. .
  • the positional relationship calculation device 33 includes a transformation matrix generation unit 500, a transformation matrix storage unit 301, and a transformation matrix function generation unit 302.
  • the transformation matrix generation means 500 includes N second instruction values for learning for the end effector 11a, N second instruction values for learning for the end effector 11b, and N second instruction values for learning for the end effector 11a. And the average value of the newest R set correction amounts calculated for N and the newest R set correction amount calculated for the N second learning command values for the end effector 11b. Based on this, N transformation matrices are generated.
  • the transformation matrix storage unit 301 stores N learning transformation matrices generated by the transformation matrix generation unit 500.
  • the conversion matrix function generation unit 302 dynamically generates a conversion matrix function (second conversion matrix function) based on the respective current positions detected by the current position detection units 104a and 104b during automatic operation.
  • the transformation matrix function generation unit 302 performs the same processing as the corresponding component in the first embodiment in the preparation process, and generates the transformation matrix function (first transformation matrix function) in the first embodiment. To do.
  • the description of the configuration for generating N transformation matrices in the preparation process and the illustration of the data input / output relationship are omitted.
  • the slave control device 23b includes a transformation matrix function storage unit 310, a command value generation unit 511, a correction amount generation unit 110b, a correction command value generation unit 101b, a drive control unit 103b, and a current position detection unit 104b.
  • the command value generation means 511 is based on the correction command value for each calculation cycle sent from the correction command value generation means 101a and the second conversion matrix function 304 stored in the conversion matrix function storage means 310. M command values that define the trajectory are generated. Specifically, the command value generation unit 511 generates a conversion matrix for each correction command value for the end effector 11a based on the second conversion matrix function 304. Then, the command value generation unit 511 generates a command value for the end effector 11b for each calculation cycle by applying the generated conversion matrix to the correction command value for each calculation cycle sent from the correction command value generation unit 101a. To do.
  • the command value generating unit 511 generates a second learning command value for the end effector 11b based on the second learning command value corrected by the correction command value generating unit 101a and the second transformation matrix function 304.
  • the command value generation unit 511 transmits the generated second learning command value for the end effector 11 b to the positional relationship calculation device 33.
  • the correction amount generation unit 110b includes an acting force calculation unit 105b, a correction amount calculation unit 106b, and a correction amount storage unit 111b.
  • the correction amount storage unit 111b accumulates and stores a predetermined number (R) of correction amounts calculated most recently for each of the M command values generated by the command value generation unit 511.
  • R a predetermined number
  • the command value for the end effector 11b corresponding to the second learning command value for the end effector 11a is transmitted to the positional relationship calculation device 33.
  • the command value for the end effector 11b corresponding to the second learning command value for the end effector 11a is referred to as the second learning command value for the end effector 11b.
  • the correction amount component of rob1 T ′ E1 is defined as ⁇ T k1
  • the correction amount component of rob2 T ′ E2 is defined as ⁇ T k2 . That, [Delta] T k1 is 'a difference between E1 and ROB1 T E1, [Delta] T k2 are, rob2 T' rob1 T is the difference between E2 and rob2 T E2. Therefore, ⁇ T k1 and ⁇ T k2 can be expressed as follows.
  • ⁇ T k1 [ rob1 R ' E1 ( rob1 R E1 ) -1 , rob1 P' E1 - rob1 P E1 ; zero (1,3), 1] (21)
  • ⁇ T k2 [ rob2 R ' E1 ( rob2 R E2 ) -1 , rob2 P' E2 - rob2 P E2 ; zero (1,3), 1] (22)
  • rob1 T E1 , rob2 T E2 , rob1 T ′ E1 , and rob2 T ′ E2 are expressed as follows.
  • the transformation matrix generation means 500 calculates the average of the R correction amounts for each of the second learning command values for the end effector 11a, thereby calculating the average of the correction amounts for each of the second learning command values for the end effector 11a.
  • the value ⁇ T k1_m is calculated.
  • the transformation matrix generation means 500 calculates the correction amount for each of the second learning command values for the end effector 11b by calculating the average of the R correction amounts for each of the second learning command values for the end effector 11b.
  • the average value ⁇ T k2 — m of is calculated.
  • ⁇ T ki_m [ ⁇ R ki_m , ⁇ P ki_m ; zero (1,3), 1] (25)
  • E1 T '' E2 ( wld T rob1 rob1 T '' E1 ) -1 wld T rob2 rob2 T '' E2 (27)
  • the first learning command value is calculated by adding the average value of the newest R correction amounts to the second learning command value.
  • the correction amount may be a value that represents R correction amounts, and is not limited to the average value.
  • an intermediate value, a mode value, a weighted average value, and the like of R correction amounts can be adopted as the correction amount added to the second learning command value.
  • the correction amount calculation means 106a and 106b have, for example, an impedance control system or a force control system control system. As shown in Patent Document 4, the impedance control system or the force control system has an integrator. Accordingly, the impedance control system or the force control system calculates the Tm-th correction amount using the T1th correction amount to the Tm-1th correction amount. According to the seventh embodiment, error adjustment is performed using R Tm-th correction amounts, so that the accuracy of error adjustment is improved. As a result, it is possible to further reduce the load applied to the gripping workpiece at any position on the actual locus of the plurality of robots that are being driven synchronously.
  • the acting force during automatic operation changes due to various conditions such as speed and temperature.
  • the first learning command value is generated using the correction amount obtained by averaging the R correction amounts calculated most recently, the change occurs due to various conditions.
  • the acting force can be reduced asymptotically.
  • the correction command value generation units 101a and 101b, the correction amount generation units 110a and 110b, and the transformation matrix generation unit 500 cooperate to calculate each calculation cycle.
  • the second learning command value and the representative value of the correction amount for the newest predetermined cycle with respect to the second learning command value are calculated.
  • the conversion matrix generation means 500 generates a learning conversion matrix for each first learning command value.
  • the first learning command value is generated by combining errors in a method with higher accuracy than the method in which the Tmth correction amount is calculated using the T1th correction amount to the Tm-1st correction amount.
  • the first learning command value is generated in consideration of error fluctuations based on fluctuations in various conditions during automatic driving. Therefore, the acting force generated in the end effectors 11a and 11b can be made as small as possible.
  • the second transformation matrix function 304 is generated using the latest R cycle correction values calculated during automatic operation. Preparation processing for R cycles is executed, and the first transformation matrix function 303 is generated in the same procedure as the second transformation matrix function 304 using the correction values obtained by the preparation processing for R cycles. You may do it.
  • the command value generation means 511 reads the command value for each calculation cycle for the end effector 11a from the command value storage means 100, and R for the command value for each calculation cycle from the correction amount storage means 111a.
  • the set correction amount may be read, and the read command value and the read average value of the R set correction amount may be added together to generate a command value for each calculation cycle for the end effector 11b.
  • Embodiment 8 FIG. In the eighth embodiment, a command value that satisfies a predetermined condition regarding the acting force is selected as the second learning command value among the command values for each calculation cycle.
  • FIG. 16 is a diagram for explaining a robot control system using the positional relationship calculation apparatus according to the eighth embodiment of the present invention.
  • the same components as those in the seventh embodiment are denoted by the same reference numerals as those in the seventh embodiment, and redundant description is omitted.
  • the master control device 24a of the eighth embodiment has a configuration in which a learning command value selection means 600 is added to the master control device 23a of the seventh embodiment described with reference to FIG. .
  • Each of the positional relationship calculation device 33 and the slave control device 23b of the eighth embodiment has the same configuration as the corresponding device described with reference to FIG.
  • the learning command value selection unit 600 selects N second learning command values that satisfy a predetermined condition regarding the acting force from among the M command values stored in the command value storage unit 100 for each calculation cycle. .
  • the correction amount increases or decreases according to the increase or decrease of the acting force.
  • the learning command value selection unit 600 selects N second learning command values using the correction amount calculated by the correction amount calculation unit 106a as a feature amount.
  • the learning command value selection unit 600 may select the second learning command value by using the correction amount in any way.
  • the learning command value selection unit 600 may select a correction value or / and a command value at which the change rate of the correction amount exceeds a predetermined threshold value as the second learning command value.
  • the command value at which the acting force or the rate of change of the acting force is particularly large is set as the second learning command value.
  • the learning command value selection means 600 may select the second learning command value by using an amount other than the correction amount as a feature amount.
  • the selection methods in the case where an amount other than the correction amount is used as the feature amount are listed below.
  • the learning command value selection means 600 may use the action force calculated by the action force calculation means 105a as the feature amount.
  • the learning command value selection means 600 selects a command value at which the acting force or / and the rate of change of the acting force exceed a predetermined threshold as the second learning command value.
  • the learning command value selection means 600 may use a command value for each calculation cycle as a feature amount. For example, the learning command value selection unit 600 selects a command value that satisfies a predetermined position condition as the second learning command value. There is a case where the position where the acting force or the rate of change of the acting force becomes large on the trajectory is previously known based on the mechanism of the robot. In that case, the action force on the orbit or the position where the change rate of the action force increases is preset in the learning command value selection means 600 as a position condition. The learning command value selection means 600 selects a command value for positioning at the position set as the position condition as the second learning command value. Note that a range on the trajectory may be set as the position condition.
  • the learning command value selection means 600 may calculate the motor speed from the command value for each calculation cycle or the current position for each calculation cycle, and may use the motor speed as a feature amount.
  • the learning command value selection unit 600 detects a position where the motor speed or the rate of change of the motor speed is large, and selects a command value for positioning at the detected position as a second learning command value. Thereby, the command value corresponding to the position where the acting force is increased by the centrifugal force or the Coriolis force on the trajectory is selected as the second learning command value.
  • the learning command value selection means 600 may use the change amount per unit time of the command value or the posture position as the feature amount.
  • the learning command value selection means 600 may use the time when the command value is used as the feature amount.
  • the command value for each calculation cycle is sequentially read from the command value storage unit 100, and the correction command value based on the read command value is sequentially supplied to the drive control unit 103a.
  • the learning command value selection unit 600 selects the second learning command value based on the acting force or the time at which the fluctuation of the acting force becomes large. May be.
  • the learning command value selection unit 600 sets the command value for the second learning when the time when the command value for each calculation cycle is read from the command value storage unit 100 satisfies a preset time condition. Select as command value.
  • the learning command value selection unit 600 determines the magnitude of the correction amount, the change rate of the correction amount, or before and after the correction.
  • the second learning command value may be selected based on a comparison between a difference in distance and a predetermined threshold value.
  • the learning command value selection means 600 may select the second learning command value by combining the selection methods listed above.
  • FIG. 17 is a diagram illustrating a relationship between the acting force applied to the end effector and the position of the end effector when cooperative work is performed by the robot control system according to the comparative example.
  • t [s] indicates time
  • x [mm] indicates the position of the end effector
  • Fx [N] indicates the acting force applied to the end effector
  • Fxlim [N] indicates the allowable value of the acting force.
  • the error changes according to the change in the position of the end effector
  • the acting force Fx increases according to the error.
  • the acting force Fx further increases.
  • FIG. 18 is a diagram illustrating the relationship between the acting force applied to the end effector and the position of the end effector when impedance control is applied to the robot control system according to the comparative example.
  • FIG. 19 is a diagram showing the relationship between the acting force applied to the end effector and the position of the end effector when cooperative work is performed by the robot control system of the eighth embodiment.
  • the command value for positioning at a position where the acting force or the rate of change of the acting force is large is selected as the second learning command value, and R corrections are made for each second learning command value.
  • the average value of the quantities is added to generate a first learning command value.
  • the acting force Fx can be reduced over the entire region on the track, and as a result, the acting force Fx can be made smaller than Fxlim at any position on the track.
  • the learning command value selection means 600 is selected from among the M command values for the end effector 11a stored in the command value storage means 100. N command values for second learning satisfying a predetermined condition regarding the acting force are selected.
  • the command value generating means 511 generates a second learning command value for the end effector 11b based on the second learning command value for the selected end effector 11a.
  • the learning conversion matrix is generated so that the acting force is reduced at a position where the acting force generated at the end effectors 11a and 11b or the rate of change of the acting force is particularly large. Therefore, the learning conversion matrix is generated at the end effectors 11a and 11b. The acting force can be further reduced.
  • the types of the robots 10a and 10b are described as being 6-degree-of-freedom vertical articulated robots, but the types of the robots 10a and 10b are not limited thereto.
  • the types of the robots 10a and 10b may be, for example, horizontal articulated robots or linear motion robots.
  • the robot control device and the robot control method according to the present invention are suitable for application to a robot control device and a robot control method for driving a plurality of robots while synchronizing the robots.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

 同期駆動中の複数ロボットの実軌跡上のどの位置においても把持ワークに掛かる負荷を可及的に低減する。ロボット制御装置は、マスターロボットおよびスレーブロボットを同期駆動時の夫々の軌跡上に位置決めする位置補正済みの指令値であるロボット当たりにN個の学習用指令値に基づいて、学習用指令値間の変換行列をN個の学習用指令値の夫々について生成する変換行列生成手段(200)と、マスターロボットの軌跡を定義するM(M>N)個の演算周期毎の第1駆動用指令値を出力する指令値記憶手段(100)と、前記N個の変換行列を補間して前記第1駆動用指令値毎の変換行列を生成する、変換行列関数生成手段(202)および指令値生成手段(211)と、前記M個の第1駆動用指令値の夫々に補間後の変換行列を作用させてスレーブロボットのM個の第2駆動用指令値を生成する指令値生成手段(211)と、を備える。

Description

ロボット制御装置およびロボット制御方法
 本発明は、複数のロボットをロボット間で同期させながら駆動するロボット制御装置およびロボット制御方法に関する。
 ロボットを活用した効率的な生産を実施する目的で、従来、生産システム内に産業用ロボットを複数台据え付けて同時に複数作業を実施することが行われていた。特に、同時に複数作業を実施する複数ロボット間において、同一のワークを把持、支持、組み付けするような協調作業で課題となっていたのは、作業中にワークやロボット同士に過大な負荷をかけることであった。この過大な負荷は、現在の各ロボットの把持位置のずれに起因するもので、具体的には、負荷のかからない理想的な把持位置からの位置誤差に応じて発生する。このような負荷を発生せしめる位置誤差は、各ロボットの据付位置誤差やキャリブレーション誤差による静的な位置誤差や、各ロボットの応答遅れによって生じる動的な位置誤差を含む。複数ロボットの夫々の把持位置同士の位置姿勢関係により発生するワークやロボット間に作用する力が許容値を超えている場合には、例えばモータの電流値を見ることで異常検出が可能であり、異常検出を行うことでロボットを安全に停止せしめることができるようになる。また、従来、動作中のロボットの相互の位置誤差を低減する目的で、各動作の基本周期信号の同期精度を向上させる技術が多く提案されている。
 一方で、複数ロボット同士の手先(エンドエフェクタ)の把持位置(手先位置)の位置姿勢関係のずれが発生した場合に力制御による位置姿勢を補正する技術が開発されている。この技術によれば、把持位置が、手先に発生した力に応じて補正され、手先にかかる力が許容される力の範囲におさめる位置に移動するように制御される。このような位置姿勢の補正技術には、大きく、マスタースレーブ方式とインピーダンス制御方式とに分類することが出来る。マスタースレーブ方式は、あるロボットを主ロボット(マスターロボット)とし、そのほかのロボットを従ロボット(スレーブロボット)とし、主ロボットが理想的な軌跡に対して位置制御を実施し、そのほかの従ロボットが力制御によって主ロボットに追従動作するという方式である。また、マスタースレーブ方式には力制御を構成として含まない、同期制御方式という方式もある。これは、産業用用途では力センサーを含まない安価な構成として用いられており、あらかじめ主ロボットと従ロボットの位置関係を定義しておき、マスターの指令値に対応して定義された位置関係からスレーブの位置指令値を演算するものである(例えば特許文献1参照)。また、インピーダンス制御方式は、所望のハンドリング対象物体の軌跡から逆に、各ロボットの軌跡を算出し、その軌跡を指令値とした場合に、手先にかかる力に対して適当なインピーダンス特性を持たせた位置に制御することで、所望の運動をそれぞれのロボットに対して行う方式である(例えば特許文献2参照)。
特開平7-20915号公報 特開平7-256580号公報 特開2001-216012号公報 特開2011-104740号公報
有本卓著 「ロボットの力学と制御」朝倉書店出版 1990年
 しかしながら、上記特許文献1、2の技術によれば、各ロボットの動作中に生じる実軌跡の位置誤差(絶対位置誤差)について、ロボットの位置姿勢や動作速度ごとに変動することを加味した協調動作用の軌跡生成がなされていないという問題があった。これにより、たとえば、協調制御によって実施する作業が複雑化した場合、各ロボット間の各位置姿勢における静的な手先位置誤差に変動が出るため、手先の姿勢変更によっては急激に力が発生してしまう場合がある。その結果、作業対象物やハンドについて許容される力の制限がある場合には、協調しながら高速な動作を実現することが困難であった。
 本発明は、上記に鑑みてなされたものであって、協調動作(同期駆動)中の複数ロボットの実軌跡上のどの位置においても把持ワークに掛かる負荷を可及的に低減することができるロボット制御装置およびロボット制御方法を得ることを目的とする。
 上述した課題を解決し、目的を達成するために、本発明は、第1ロボットと前記第1ロボットと異なる第2ロボットとを同期駆動するロボット制御装置であって、前記第1ロボットと前記第2ロボットとを同期駆動時の夫々の軌跡上に位置決めする位置補正済みの指令値であるロボット当たりにN個の第1学習用指令値に基づいて、前記第1ロボットにかかる第1学習用指令値と前記第2ロボットにかかる第1学習用指令値との間の同期駆動時の位置関係を定義する位置関係行列を前記N個の第1学習用指令値の夫々について生成する位置関係行列生成部と、前記第1ロボットの軌跡を定義する指令値であるM(M>N)個の演算周期毎の第1駆動用指令値を出力する第1指令値出力部と、前記N個の位置関係行列を補間して前記第1駆動用指令値毎の位置関係行列を生成する位置関係行列補間部と、前記M個の第1駆動用指令値の夫々に前記補間後の対応する位置関係行列を作用させて前記第2ロボットの軌跡を定義する指令値であるM個の第2駆動用指令値を生成する第2指令値生成部と、を備え、前記第1駆動用指令値に基づいて前記第1ロボットを駆動し、前記第2駆動用指令値に基づいて前記第2ロボットを駆動する、ことを特徴とする。
 本発明によれば、第2ロボットの演算周期毎の指令値生成について、誤差を考慮した形で近似的に変換行列を求めて第2ロボット用の指令値を生成することがロボットの運動特性およびロボットの幾何誤差の同定のための複雑な計算を必要とせずに実現できるので、同期駆動中の複数ロボットの実軌跡上のどの位置においても把持ワークに掛かる負荷を可及的に低減することができるという効果を奏する。
図1は、本発明の実施の形態1のロボット制御システムを用いた生産システムを説明する図である。 図2は、比較例にかかるロボット制御システムの構成を説明する図である。 図3は、エンドエフェクタ間の理想的な位置関係を説明する図である。 図4は、実施の形態1のロボット制御システムの構成を説明する図である。 図5は、実施の形態1の準備処理を説明するフローチャートである。 図6は、実施の形態1のマスター制御装置の自動運転時の動作を説明するフローチャートである。 図7は、実施の形態1のスレーブ制御装置の自動運転時の動作を説明するフローチャートである。 図8は、実施の形態2のロボット制御システムの構成を説明する図である。 図9は、実施の形態2の変換行列関数記憶手段のメモリ構成を説明する図である。 図10は、実施の形態2の位置関係演算装置が第2の変換行列関数を生成する動作を説明するフローチャートである。 図11は、実施の形態2のスレーブ制御装置の自動運転時の動作を説明するフローチャートである。 図12は、実施の形態3のロボット制御システムの構成を説明する図である。 図13は、実施の形態3の変換行列関数記憶手段のメモリ構成を説明する図である。 図14は、実施の形態7のロボット制御システムの構成を説明する図である。 図15は、実施の形態7のロボット制御システムの別の構成を説明する図である。 図16は、実施の形態8のロボット制御システムの構成を説明する図である。 図17は、比較例にかかるロボット制御系において、エンドエフェクタにかかる作用力と当該エンドエフェクタの位置との関係を示す図である。 図18は、比較例にかかるロボット制御系にインピーダンス制御が適用された場合の、エンドエフェクタにかかる作用力と当該エンドエフェクタの位置との関係を示す図である。 図19は、実施の形態8のロボット制御系において、エンドエフェクタにかかる作用力と当該エンドエフェクタの位置との関係を示す図である。
 以下に、本発明にかかるロボット制御装置およびロボット制御方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
 図1は、本発明の実施の形態1のロボット制御システム(ロボット制御装置)を用いた生産システムを説明する図である。図示するように、マスターロボット(第1ロボット)10aと、スレーブロボット(第2ロボット)10bと、マスターロボット10aを制御するマスター制御装置20aと、スレーブロボット10bを制御するスレーブ制御装置20bと、位置関係演算装置30と、を備えている。マスターロボット10aは、先端にエンドエフェクタ11aを有するアームが据付け台12aに取り付けられて構成されている。同様に、スレーブロボット10bは、先端にエンドエフェクタ11bを有するアームが据付け台12bに取り付けられて構成されている。なお、ロボット10a、10bは、ここでは、一例として、6自由度垂直多関節型ロボットであるものとして説明している。
 マスター制御装置20a、スレーブ制御装置20b、および位置関係演算装置30は、通信線で互いに接続され、マスターロボット10aおよびスレーブロボット10bを同期させながら駆動するロボット制御システム(ロボット制御装置)を構成する。マスター制御装置20aは、エンドエフェクタ11aを位置決めする位置指令値を生成して、当該生成した位置指令値に基づいてエンドエフェクタ11aを駆動する。また、マスター制御装置20aは、エンドエフェクタ11aにかかる位置指令値をスレーブ制御装置20bに送信する。位置関係演算装置30は、エンドエフェクタ11aとエンドエフェクタ11bとが同一のワークを保持して協調して当該ワーク(把持ワーク)を搬送することができるように、協調動作時におけるエンドエフェクタ11a、11b間の位置関係を規定する位置関係情報を演算する。そして位置関係演算装置30は、得られた位置関係情報をスレーブ制御装置20bに送信する。スレーブ制御装置20bは、エンドエフェクタ11aを位置決めする位置指令値にエンドエフェクタ11a、11b間の位置関係情報を作用させることで、エンドエフェクタ11bを位置決めするための位置指令値を算出する。そして、スレーブ制御装置20bは、算出した位置指令値に基づいてエンドエフェクタ11bを駆動する。
 ここで、本発明の実施の形態1と比較される技術(以下、比較例という)について説明する。図2は、比較例にかかるロボット制御系の構成を説明する図である。なお、ここでは、実施の形態1と区別するために、比較例を適用した位置関係演算装置に符号50を、マスター制御装置に符号40aを、スレーブ制御装置に符号40bを、夫々付している。また、マスター制御装置40aおよびスレーブ制御装置40bに具備され、作用対象がマスター系(マスターロボット10a、マスター制御装置40a)であるかスレーブ系(スレーブロボット10b、スレーブ制御装置40b)であるかのみ異なるだけで機能が同一の構成要素については、マスター系に具備される場合には符号にアルファベット「a」を付し、スレーブ系に具備される場合には符号にアルファベット「b」を付して互いに区別することとする。また、具備される系が異なるだけで機能が同一の構成要素の2つの構成要素については、一方のみを説明し、他方の説明を省略することがある。
 マスター制御装置40aは、エンドエフェクタ11aの指令軌跡を演算周期毎に定義するM個の位置指令値を予め記憶する指令値記憶手段100、M個の位置指令値(以下、単に指令値)のうちのTm(Tmは、1≦Tm≦Mを満たす整数)番目の指令値(Tm番目指令値)に対する補正量(Tm番目補正量)を算出する補正量生成手段102a、Tm番目指令値とTm番目補正量とに基づいてTm番目の指令値を補正したTm番目補正指令値を生成する補正指令値生成手段101a、Tm番目補正指令値にエンドエフェクタ11aが追随するようにマスターロボット10aを駆動する、サーボアンプおよびサーボモータで構成される駆動制御手段103a、ならびに、Tm番目補正指令値に基づく動作中のエンドエフェクタ11aの現在位置(Tm番目現在位置)の検出を行って、Tm番目現在位置を駆動制御手段103aにフィードバックする、エンコーダなどで構成される現在位置検出手段104aを備えている。
 補正量生成手段102aは、作用力演算手段105a、補正量演算手段106a、および補正量記憶手段107aを備えている。作用力演算手段105aは、エンドエフェクタ11aに発生する作用力を演算する。補正量記憶手段107aは、算出した補正量(即ちT1番目補正量~Tm-1番目補正量)を蓄積記憶する。補正量演算手段106aは、T1番目補正量~Tm-1番目補正量を用い、エンドエフェクタ11aに発生する作用力が小さくなるように、Tm番目補正量を算出する。算出されたTm番目補正量は、補正指令値生成手段101aに送られるとともに、補正量記憶手段107aに格納される。
 位置関係演算装置50は、位置関係情報として、エンドエフェクタ11aを位置決めする指令値とエンドエフェクタ11bを位置決めする指令値との間の位置関係を定義する行列(変換行列)を演算する。当該変換行列をエンドエフェクタ11aを位置決めする指令値に作用させることで、エンドエフェクタ11bを位置決めする指令値を得ることができる。
 スレーブ制御装置40bは、位置関係演算装置50が算出した変換行列を記憶する変換行列記憶手段109、エンドエフェクタ11aを位置決めするTm番目指令値に変換行列記憶手段109が記憶する変換行列を作用させてエンドエフェクタ11bを位置決めするTm番目指令値を生成する指令値生成手段108、エンドエフェクタ11bにかかるTm番目指令値を補正するTm番目補正量を算出する補正量生成手段102b、エンドエフェクタ11bにかかるTm番目指令値とTm番目補正量とに基づいてTm番目補正指令値を生成する補正指令値生成手段101b、エンドエフェクタ11bにかかるTm番目補正指令値に基づいてスレーブロボット10bを駆動する、サーボアンプおよびサーボモータで構成される駆動制御手段103b、ならびに、エンドエフェクタ11bのTm番目現在位置の検出を行って、当該検出したTm番目現在位置を駆動制御手段103bにフィードバックする、エンコーダなどで構成される現在位置検出手段104bを備えている。補正量生成手段102bは、補正量生成手段102aと同等の構成を備えているので、説明を省略する。
 ここで、位置関係演算装置50が算出する変換行列について説明する。この変換行列は、回転量と位置とを表す、一般に同次変換行列と呼ばれているものである。直交座標系をΣiと表現し、2つの直交座標系Σ1とΣ2との間の変換行列をTとおく場合、回転行列をR(3×3要素の正方行列)、直交座標系Σ1からみた直交座標系Σ2の位置をP(3×1要素のベクトル)、1×3のゼロベクトルをzero(1,3)と表現すると、同次変換行列は次式(1)のように表現される。
 T=[R,P;
   zero(1,3),1]  (1)
 なお、1つの座標系Σi基準として点aの位置姿勢の表現をTとする場合に、別の座標系Σi+1を基準とした点aの位置姿勢i+1Tは、ΣiからΣi+1への変換行列i+1Tを用いて次式(2)のように表現される。
 i+1Ti+1T*T  (2)
 図3は、エンドエフェクタ11a、11b間の理想的な位置関係を説明する図である。ここで、Σrob1は、据付け台12aを基準とした座標系(マスターロボット座標系)であり、Σrob2は、据付け台12bを基準とした座標系(スレーブロボット座標系)であり、Σwldは絶対座標系(ワールド座標系)であり、ΣE1はエンドエフェクタ11aを基準とした座標系であり、ΣE2はエンドエフェクタ11bを基準とした座標系である。理想的な環境とは、指令された角度と指令された位置が一致する環境、言い換えると絶対位置誤差がない環境をいう。このような環境においては、マスタースレーブ間の変換行列として、次式(3)を用いることができる。ただし、「A-1」は行列Aに関する逆行列を表す。
 E1TE2=(wldTrob1 rob1TE1)-1 wldTrob2 rob2TE2  (3)
 しかしながら、現実の環境においては、据付誤差、バックラッシ、アームのたわみ、エンドエフェクタ11a、11bの誤差、減速機の剛性の影響などに起因して、エンドエフェクタ11a、11bの手先位置に絶対位置誤差が生じるため、一般に、手先位置とワークとの間の位置関係は望ましい位置関係にならない。そこで、ユーザは、生産システムを立ち上げる場合には、例えば図示しない教示用操作盤などを操作することによって、実物のロボット10a、10bをワークとの位置関係を目視などで確認しながら移動せしめることで、エンドエフェクタ11a、11b間が所望の相対位置関係を保ちつつ所望の動作が実行されるように、各誤差を指令値にあわせこむ。各誤差が小さく抑えられる場所にエンドエフェクタ11a、11bをユーザが移動させたときの制御装置20a、20b内の指令値robiT'Ei(i=1、2)が、当該教示点に位置決めする指令値として設定される。但し、「'」は、教示による位置合わせこみを考慮した変換行列に付されるものとする。
 誤差があわせこまれた指令値robiT'Ei(i=1、2)は、夫々、位置関係演算装置50に入力される。位置関係演算装置50は、あわせこみ後の指令値rob1T'E1rob2T'E2を式(3)のrob1TE1rob2TE2に夫々代入して、得られたE1TE2E1T’E2とする。
 このように、E1T’E2は、通常動作(ロボット10a、10bを同期駆動すること、以下、自動運転ともいう)が開始される前に算出される。そして、算出されたE1T’E2は、自動運転時の位置変換のための変換行列として使用される。即ち、自動運転時には、スレーブ制御装置40bにおいては、マスター制御装置40aの補正指令値に追従する動作を行う目的で、マスター制御装置40a側の指令値と、変換行列とを用いて指令値生成手段108においてエンドエフェクタ11bに対する指令値が生成される。このとき、指令値生成手段108は、ワールド座標系に対するマスターロボット座標系への変換行列wldTrob1とワールド座標系に対するスレーブロボット座標系への変換行列wldTrob2と前述の変換行列E1T’E2とを用いて、次式(4)に基づいてスレーブ制御装置40bの指令値rob2TE2を算出する。
 rob2TE2=(wldTrob2)-1*rob1TE1*E1T’E2  (4)
 しかしながら、上記比較例においては、マスタースレーブ間の指令値の変換に用いられる変換行列がある特定のロボット姿勢で取得した教示点において算出されたE1T’E2に固定されるので、例え指令値が作用力に基づいて補正されるとしても、ロボット同士あるいはロボットとワークの位置関係を協調動作中の軌跡上の全ての位置において一定状態に保つということが難しい。そこで、実施の形態1では、同期駆動中の軌跡上の全ての位置においてロボット同士あるいはロボットとワークとの位置関係を一定に保つことができるように、M個の指令値の夫々について変換行列E1T’E2を算出するようにした。
 図4は、本発明の実施の形態1の位置関係演算装置を用いたロボット制御系を説明する図である。ここでは、比較例と同一の機能を有する構成要素には、同一の符号を付して、重複する説明を省略する。
 図示するように、マスター制御装置20aは、指令値記憶手段100、補正量生成手段102a、補正指令値生成手段101a、駆動制御手段103a、および、現在位置検出手段104aを備えている。補正量生成手段102aは、作用力演算手段105a、補正量演算手段106a、および補正量記憶手段107aを備えている。
 位置関係演算装置30は、動作開始位置を含めたN(NはMより小さい2以上の自然数)個の教示点に位置決めする指令値に基づいて教示点の夫々について変換行列(学習用変換行列)を算出する変換行列生成手段200と、N個の学習用変換行列を記憶する変換行列記憶手段201と、N個の学習用変換行列に基づいて変換行列関数を算出する変換行列関数生成手段202と、を備えている。変換行列関数の詳細については後述する。算出された変換行列関数は、実施の形態1の位置関係情報としてスレーブ制御装置20bに送信される。
 スレーブ制御装置20bは、位置関係演算装置30が算出した変換行列関数を記憶する変換行列関数記憶手段210、エンドエフェクタ11aに対するTm番目指令値(第1駆動用指令値)と変換行列関数とに基づいてエンドエフェクタ11bを位置決めするTm番目指令値(第2駆動用指令値)を生成する指令値生成手段211、補正量生成手段102b、補正指令値生成手段101b、駆動制御手段103b、および現在位置検出手段104bを備えている。補正量生成手段102bは、補正量生成手段102aと同等の構成を備えている。
 ここで、実施の形態1によれば、補正指令値生成手段101a、101b、および補正量生成手段102a、102bは、協働して、同期駆動時のN個の指令値の夫々において軌跡上に位置決めするロボット毎の位置補正済みの指令値(後述する学習用指令値、第1学習用指令値)を生成する位置補正済み指令値生成部として機能する。また、指令値記憶手段100は、エンドエフェクタ11aの軌跡を定義するM(M>N)個の演算周期毎の指令値(第1駆動用指令値)を出力する第1指令値出力部として機能する。なお、ここでは、指令値記憶手段100は、予め指令値を記憶し、記憶している指令値を出力するものとして説明しているが、指令値を所定の演算に基づいて逐次生成する機能部を第1指令値出力部として採用するようにしてもよい。また、変換行列関数生成手段202および指令値生成手段211は、協働して、N個の変換行列を補間してエンドエフェクタ11aに対する指令値毎の変換行列を生成する位置関係行列補間部として機能する。また、指令値生成手段211は、演算周期毎の指令値の夫々に補間後の変換行列を作用させてエンドエフェクタ11bの軌跡を定義するM個の指令値(第2駆動用指令値)を生成する第2指令値生成部として機能する。
 次に、図4に示したロボット制御系を用いて実行される本発明の実施の形態1のロボット制御方法を説明する。図5は、実施の形態1のロボット制御方法のうちの、オフラインで実行される準備処理を説明するフローチャートである。
 ユーザは、まず、エンドエフェクタ11a、11bを、協調動作時の軌跡上の教示点まで教示用操作盤などを利用して移動させる(ステップS1)。このとき、ユーザは、実際にエンドエフェクタ11a、11bにワークを把持せしめるなどしてエンドエフェクタ11a、11bの手先位置を調整し、制御装置20a、20bにこのときの位置を取得せしめることができる。なお、位置調整は、N個の教示点において夫々実行される。
 補正指令値生成手段101aは、Tk(Tkは、1≦Tk≦Nを満たす整数)番目の教示点において得られるエンドエフェクタ11aの位置を、マスターロボット10aにかかるTk番目の指令値(学習用指令値)として指令値記憶手段100に格納するとともに、当該学習用指令値を位置関係演算装置30に出力する(ステップS2)。また、補正指令値生成手段101bは、ステップS2が実行されたときのエンドエフェクタ11bの位置を、スレーブロボット10bにかかるTk番目の学習用指令値として位置関係演算装置30に出力する(ステップS3)。
 なお、実際にエンドエフェクタ11a、11bにワークを把持せしめて位置調整が行われる場合には、補正量生成手段102aは、作用力演算手段105aが算出した作用力が所定の値以下となるように補正されるまで補正量の算出を継続し、補正指令値生成手段101aは、逐次算出される補正量で指令値記憶手段100から供給される所定の指令値に加算する補正量を更新し、作用力が所定の値以下となる補正指令値が得られたとき、当該補正指令値を学習用指令値とすることができる。なお、作用力の計測、計測した作用力に基づく補正量の算出、および算出した補正量による指令値の補正は、スレーブ制御装置20bにおいても同様に実行され、得られた補正指令値がステップS3の処理により学習用指令値として出力される。なお、位置の調整中に暫定的に補正指令値生成手段101a、101bに供給される指令値は、所定の固定値であってよい。
 また、作用力演算手段105aによる作用力の計測方法はどのようなものであってもよい。例えばロボットの手首部分に力覚センサー(力センサー)を取り付けて、当該力覚センサーによる検出値を作用力の計測値とする手法、または、トルクτから手先作用力f(3軸力+3モーメント)をヤコビアンJ(ロボットの自由度)を用いて静力学により推定する手法(τ=JT*f、ただしJTは行列Jの転置行列)を採用することが可能である。また、ロボット10a、10bの各軸のモータ電流から各軸のトルクを算出し、算出したトルクの出力から手先作用力を推定する方法、あるいはモータ電流の代わりに各軸にトルクセンサーを取り付け、トルクセンサーから得られる出力トルクから作用力を推定する方法を採用することができる。
 なお、ここでは、実際にエンドエフェクタ11a、11bにワークを把持せしめて位置調整が行われ、補正指令値が学習用指令値として記録されるものとして説明するが、エンドエフェクタ11a、11bにワークを把持せしめないで位置調整が行われる場合には、補正指令値生成手段101aは、現在位置検出手段104aが検出し、フィードバック信号として用いられる位置検出値を、学習用指令値とすることができる。スレーブ制御装置20bにおいても同様である。また、実際にエンドエフェクタ11a、11bにワークを把持せしめて位置調整が行われる場合であっても、現在位置検出手段104a、104bが検出した位置検出値を学習用指令値とするようにしてもよい。
 また、制御装置20a、20bが作用力を計測する手段を有さない場合には、ユーザは、作業領域または姿勢が変わるごとにエンドエフェクタ11bの位置をマニュアルで微調整するようにしてもよい。この際、スレーブ制御装置20bは、マスターロボット10aに対する教示点に予め暫定的に定められた固定の変換行列1ET’E2を作用させることでエンドエフェクタ11bを駆動することができる。そして、ユーザは、目視によって、または、力もしくは変形を検出できるセンサーをワークに付加することによって、姿勢または位置が変わるポイントごとにワークの状態を観察し、観察の結果に基づいて操作盤を用いて微調整を行うことが可能である。なお、作業力が計測できない場合とは、単純にエンドエフェクタ11a、11bに作用力を計測するセンサーがなく、モータ出力からの手先作用力計算を行う機能が無い場合か、協調動作中において、マスター側のロボットがワークに接触しているが、スレーブ側のロボットはワークに接触はしていない場合が想定される。
 ユーザは、全て(ここではN個)の教示点について位置調整を行ったか否かを判定し(ステップS4)、全ての教示点についての位置調整を行っていない場合には(ステップS4、No)、ステップS1にて、次の教示点にかかる位置調整を行う。
 このように、エンドエフェクタ11aを教示点に移動せしめられ、エンドエフェクタ11bを教示点上のエンドエフェクタ11aに対応する位置に移動せしめられることで、エンドエフェクタ11a、11bの軌跡上のN個の指令値の夫々における、絶対位置誤差をあわせこんだ指令値(位置補正済みの指令値)を得ることができる。
 全ての教示点における位置調整が完了すると(ステップS4、Yes)、位置関係演算装置30においては、変換行列生成手段200は、Tk番目の学習用指令値と、Tk番目の学習用指令値が決定された時点における補正指令値生成手段101bが生成した補正指令値と、を入力とし、Tk番目の変換行列(学習用変換行列)を生成する(ステップS5)。なお、変換行列生成手段200は、生成した学習用変換行列を変換行列記憶手段201に格納する。学習用変換行列の生成は、N個の教示点の夫々について実行される。
 続いて、変換行列関数生成手段202は、変換行列記憶手段201に格納されたN個の学習用変換行列に基づいて、変換行列関数を生成する(ステップS6)。
 ここで、変換行列関数とは、N個の変換行列E1T’E2(k),k=1,2,...,Nについて変換行列を補間する変換行列群を規定する関数であって、N個の学習用指令値に基づいて全軌跡をN-1個の区間に分け、各区間における移動割合rateを変数とした関数となる。変換行列関数生成手段202による変換行列関数の算出方法を以下に説明する。
 k番目の学習用指令値Pkとk+1番目の学習用指令値Pk+1との間の距離をLall(k,k+1)、現在時刻Tnowにおける残移動距離をLr(k,k+1,Tnow)とする場合における移動割合rate(k,k+1,Tnow)は、次式(5)のように定義される。
 rate(k,k+1,Tnow)=(Lall(k,k+1)-Lr(k,k+1,Tnow))/(Lall(k,k+1))  (5)
 rate(k,k+1,Tnow)で表される現在位置における変換行列は、変換行列関数E1T’E2(rate(k,k+1,Tnow))により求めることができる。次に、変換行列関数E1T’E2(rate(k,k+1,Tnow))の回転成分と並進移動成分の求め方を説明する。
 まず、並進位置E1P’E2(rate(k,k+1,Tnow))が次のように求められる。PkとPk+1とにおけるエンドエフェクタ11a、11bの手先位置の相対的な並進移動の変動分を回転行列ΔPkとすると、ΔPkは、次式(6)により表現される。
 ΔPk=E1P’E2(Pk+1)-E1P’E2(Pk)  (6)
 したがって、エンドエフェクタ11aの現在位置がrate(k,k+1,Tnow)に存在する場合、並進位置E1P’E2(rate(k,k+1,Tnow))は、ΔPkを用いて、次式(7)のように表現される。
 E1P’E2(rate(k,k+1,Tnow))=E1P’E2(Pk)+ΔPk*rate(k,k+1,Tnow)  (7)
 次に、変換行列関数E1T’E2(rate(k,k+1,Tnow))の回転成分である回転行列E1R’E2(rate(k,k+1,Tnow))の求め方を説明する。PkとPk+1とにおけるエンドエフェクタ11a、11bの手先位置の相対的な回転行列の変動分を回転行列ΔRkで表すと、ΔRkは、次式(8)により表現される。
 ΔRk=(E1R’E2(Pk))(E1R’E2(Pk+1))-1   (8)
 ここで、PkとPk+1との間における移動割合rate(k,k+1,Tnow)を表現するため方法として、例えば回転行列を1軸回転法を用いた回転軸ベクトルkと回転量αとを用いて表現する方法が知られている。このとき、αをrate(k,k+1,Tnow)に応じて変化させていく方法が採用される。具体的には、1軸回転法を利用すると、ΔRkは回転軸ベクトルkと回転量αとを用いて等価に表現される。回転行列と[k,α]は次のような関係式がある。
 ΔRk=[kx*Vα+Cα,kx*ky*Vα+Cα,kx*kz*Vα+Cα;
ky*kx*Vα+Cα,kx*Vα+Cα,ky*kz*Vα+Cα;
kz*kx*Vα+Cα,kz*ky*Vα+Cα,kx*Vα+Cα]  (9)
 k=[kx,ky,kz]  (10)
 Vα=1-Cα  (11)
 Cα=cosα  (12)
 このとき、αは、移動割合rateに応じて変化するαnowとして以下のように定義する。
 αnow=α*rate(k,k+1,Tnow)  (13)
 現在回転量αnowを用いることで、回転行列の現在の変動分であるΔR(rate(k,k+1,Tnow))は、以下のように定義される。
 ΔR(rate(k,k+1,Tnow))
=[kx*Vαnow+Cαnow,kx*ky*Vαnow+Cαnow,kx*kz*Vαnow+Cαnow;
ky*kx*Vαnow+Cαnow,kx*Vαnow+Cαnow,ky*kz*Vαnow+Cαnow;
kz*kx*Vαnow+Cαnow,kz*ky*Vαnow+Cαnow,kx*Vαnow+Cαnow]  (14)
 E1R’E2(rate(k,k+1,Tnow))=(E1R’E2(Pk))*ΔR(rate(k,k+1,Tnow))  (15)
 ΔR(rate_k,k+1)が移動位置に合わせて変更される場合、他にも、回転行列をクォータニオン表現を用いて演算し、クォータニオンで算出された結果を回転行列に変換する方法を採用することが可能である。
 以上の演算によって得られた並進位置E1P’E2(rate(k,k+1,Tnow))と回転行列E1R’E2(rate(k,k+1,Tnow))とを用いて、変換行列E1T’E2(rate(k,k+1,Tnow))は、次のように表現される。
 E1T’E2(rate(k,k+1,Tnow))
=[E1R’E2(rate(k,k+1,Tnow)),E1P’E2(rate(k,k+1,Tnow));
zero(1,3),1]  (16)
 変換行列関数生成手段202が以上の算出方法に基づいて求めた変換行列関数は、スレーブ制御装置20bに送られ、変換行列関数記憶手段210に格納される。
 ステップS1~ステップS6の処理により、協調動作のための準備処理が完了する。その後、ユーザは、ロボット制御系の自動運転を開始せしめることができる。
 図6は、実施の形態1のロボット制御方法のうちの、マスター制御装置20aの自動運転時の動作を説明するフローチャートであり、図7は、実施の形態1のロボット制御方法のうちの、スレーブ制御装置20bの自動運転時の動作を説明するフローチャートである。
 マスター制御装置20aにおいては、図6に示すように、まず、補正指令値生成手段101aは、Tmを1で初期化し(ステップS11)、指令値記憶手段100に格納されているTm番目の指令値を取り出す(ステップS12)。一方、補正量生成手段102aは、補正量記憶手段107aに蓄積されているTm-1番目までの指令値にかかる補正量と、作用力演算手段105aが計測した作用力とに基づいて、Tm番目補正量を算出する(ステップS13)。補正指令値生成手段101aは、取り出したTm番目の指令値とTm番目補正量とを加算して、Tm番目補正指令値を生成する(ステップS14)。なお、駆動制御手段103aは、生成されたTm番目補正指令値に基づいてエンドエフェクタ11aの位置決めを行うことができる。ステップS14の後、補正指令値生成手段101aは、Tmを1だけインクリメントし(ステップS15)、ステップS11の処理を実行する。なお、ステップS15において、インクリメント前のTmの値が指令値の総数であるMに等しい場合には、Tm=1とするようにしてよい。
 スレーブ制御装置20bにおいては、図7に示すように、まず、指令値生成手段211は、Tmを1で初期化し(ステップS21)、指令値記憶手段100に格納されているTm番目の指令値を取り出す(ステップS22)。また、指令値生成手段211は、取り出したTm番目の指令値が含まれる区間(Pk,Pk+1で表現される区間)およびrate(k,k+1,Tnow)を算出する(ステップS23)。そして、指令値生成手段211は、式13~式16に基づいて変換行列E1T’E2(rate(k,k+1,Tnow))を算出し(ステップS24)、取得したTm番目の指令値に前記算出した変換行列E1T’E2(rate(k,k+1,Tnow))を作用させて、エンドエフェクタ11bに対するTm番目の指令値を生成する(ステップS25)。一方、補正量生成手段102bは、補正量記憶手段107bに蓄積されているTm-1番目までの指令値にかかる補正量と、作用力演算手段105bが計測した作用力とに基づいて、Tm番目補正量を算出する(ステップS26)。補正指令値生成手段101bは、生成されたTm番目の指令値とTm番目補正量とを加算して、Tm番目補正指令値を生成する(ステップS27)。なお、駆動制御手段103bは、生成されたTm番目補正指令値に基づいてエンドエフェクタ11bの位置決めを行うことができる。ステップS27の後、指令値生成手段211は、Tmを1だけインクリメントし(ステップS28)、ステップS22の処理を実行する。なお、ステップS27において、インクリメント前のTmの値が指令値の総数であるMに等しい場合には、Tm=1とするようにしてよい。
 なお、マスター制御装置20aにおけるTmの値とスレーブ制御装置20bにおけるTmの値とは同期しているものとする。
 なお、指令値記憶手段100、補正指令値生成手段101a、作用力演算手段105a、補正量演算手段106a、および補正量記憶手段107aのうちの一部もしくは全部は、ハードウェア、及びソフトウェアのいずれか、又は両者の組み合わせとして実現することが可能である。ソフトウェアで実現するとは、演算装置および記憶装置を備えるコンピュータにおいて、構成要素に対応するプログラムモジュールを記憶装置に格納しておき、当該記憶装置に格納されているプログラムモジュールを演算装置が実行することによって対応する構成要素の機能を実現することである。なお、指令値記憶手段100および補正量記憶手段107aとしての機能は、夫々記憶装置内に対応する領域が確保されることにより実現される。
 同様に、位置関係演算装置30の構成要素のうちの一部もしくは全部は、ハードウェア、及びソフトウェアのいずれか、又は両者の組み合わせとして実現することが可能である。また、指令値生成手段211、変換行列関数記憶手段210、補正指令値生成手段101b、作用力演算手段105b、補正量演算手段106b、および補正量記憶手段107bのうちの一部もしくは全部は、ハードウェア、及びソフトウェアのいずれか、又は両者の組み合わせとして実現することが可能である。
 また、マスター制御装置20a、スレーブ制御装置20b、および位置関係演算装置30を夫々異なる装置であるものとして説明したが、これらの装置のうちの何れか2つまたは全部を1つの装置として実現することが可能である。また、これらの装置の夫々は、複数の装置に分割して実現することも可能である。
 また、以上の説明においては、マスター制御装置20aおよびスレーブ制御装置20bの両方において作用力に基づく補正を行うものとして説明したが、どちらか一方の制御装置においてのみ作用力に基づく補正を行うようにしてもよい。
 また、以上の説明においては、2つのロボット(マスターロボット10aおよびスレーブロボット10b)を有する生産システムに適用される例について説明したが、本発明の実施の形態1は、3つ以上のロボットが協調動作する生産システムにも適用することができる。その際には、協調動作するロボットのうちの1つをマスターロボットとし、他の全てのロボットをスレーブロボットとして実施の形態1を適用することができる。
 以上述べたように、本発明の実施の形態1によれば、ロボット制御装置は、同期駆動時のN個の指令値の夫々において位置決めするロボット毎の位置補正済みの指令値に基づいて、ロボット間の位置補正済みの指令値の位置関係を定義する位置関係行列としての学習用変換行列をN個の指令値の夫々について生成する、位置関係行列生成部としての変換行列生成手段200と、マスターロボット10aの軌跡を定義するM(M>N)個の演算周期毎のマスターロボット10aに対する指令値を出力する第1指令値出力部としての指令値記憶手段100と、N個の学習用変換行列を補間して演算周期毎の指令値毎の変換行列を生成する位置関係行列補間部としての機能する、変換行列関数生成手段202および指令値生成手段211と、マスターロボット10aに対する演算周期毎の指令値の夫々に補間後の学習用変換行列を作用させてスレーブロボット10bに対する演算周期毎の指令値を生成する第2指令値生成部としての機能を有する指令値生成手段211と、を備えるように構成したので、演算周期毎に近似的に変換行列を求めてスレーブロボット10b用の指令値を生成することができるので、協調動作中の複数ロボットの実軌跡上のどの位置においても把持ワークに掛かる負荷を可及的に低減することができ、ロボットによる高速な協調動作が実現できる。
 また、実施の形態1のロボット制御装置は、ユーザにより教示点が与えられ、マスターロボット10aおよびスレーブロボット10bは、ユーザによりN個の教示点の夫々に移動せしめられて静止せしめられ、N個の教示点の夫々にマスターロボット10aおよびスレーブロボット10bが静止せしめられる毎にロボット毎の指令値を生成して学習用指令値とする位置補正済み指令値生成部として動作する、補正指令値生成手段101a、101b、および補正量生成手段102a、102bを備える、ように構成したので、立ち上げ後にユーザが絶対位置誤差に相当する分の補正が全区間で可能なように力制御系の設定を調整する必要が無く、立ち上げ時間を短縮することができるようになる。
実施の形態2.
 実施の形態2によれば、ロボット本体の温度や環境温度の変動による手先位置のずれ、2台以上のロボット動作中の同期タイミングのずれに起因する手先位置のずれ、など動的に生じる誤差分も学習して変換行列を更新することができる。図8は、本発明の実施の形態2の位置関係演算装置を用いたロボット制御系を説明する図である。なお、ここでは、実施の形態1と同じ構成要素には実施の形態1と同一の符号を付して、重複する説明を省略する。
 図8に示すように、マスター制御装置21aは、指令値記憶手段100、補正量生成手段102a、補正指令値生成手段101a、駆動制御手段103a、および、現在位置検出手段104aを備えている。補正量生成手段102aは、作用力演算手段105a、補正量演算手段106a、および補正量記憶手段107aを備えている。ここで、マスター制御装置21aは、通常動作を行っている際、現在位置検出手段104aが検出した現在位置を位置関係演算装置31に出力する。
 位置関係演算装置31は、変換行列生成手段300と、N個の学習用変換行列を記憶する変換行列記憶手段301と、変換行列関数生成手段302と、を備えている。変換行列生成手段300、変換行列記憶手段301、および変換行列関数生成手段302は、準備処理において実施の形態1における対応する構成要素と同様の処理を実行して、実施の形態1における変換行列関数(第1の変換行列関数)を生成する。また、通常動作中においては、現在位置検出手段104a、104bが検出した夫々の現在位置に基づいて、動的に変換行列関数(第2の変換行列関数)を生成する。
 スレーブ制御装置21bは、変換行列関数記憶手段310、指令値生成手段311、補正量生成手段102b、補正指令値生成手段101b、駆動制御手段103b、および現在位置検出手段104bを備えている。補正量生成手段102bは、補正量生成手段102aと同等の構成を備えている。
 図9は、変換行列関数記憶手段310のメモリ構成を説明する図である。図示するように、変換行列関数記憶手段310は、位置関係演算装置31が算出した第1の変換行列関数303および第2の変換行列関数304を記憶する。なお、変換行列関数記憶手段310が記憶する第2の変換行列関数304は、位置関係演算装置31によって動的に更新される。
 指令値生成手段311は、第1の変換行列関数303または第2の変換行列関数304を用いてTm番目指令値を生成することができる。
 次に、図8に示したロボット制御系を用いて実行される本発明の実施の形態2のロボット制御方法を説明する。なお、オフラインで実行される準備処理は、実施の形態1と同様であるので、ここでは説明を省略する。準備処理により生成された変換行列関数は、第1の変換行列関数303として変換行列関数記憶手段310に格納される。
 また、マスター制御装置21aの通常動作は、現在位置検出手段104aが検出した現在位置を位置関係演算装置31に出力する点を除いて実施の形態1と同様であるので、説明を省略する。なお、スレーブ制御装置21bも、マスター制御装置21aと同様に、現在位置検出手段104bが検出した現在位置を位置関係演算装置31に出力する。ここでは簡単のために、M個の指令値のうち、学習用指令値に最も近傍のN個の指令値の夫々が指令値記憶手段100から補正指令値生成手段101a、指令値生成手段311に取得される毎に、マスター制御装置21a、スレーブ制御装置21bは現在位置を位置関係演算装置31に出力するものとする。即ち、現在位置検出手段104a、104bは、マスターロボット10aが教示点または教示点のもっとも近傍に至る毎に、夫々、位置検出値を新たな学習用指令値として出力する。
 図10は、位置関係演算装置31が第2の変換行列関数304を生成する動作を説明する図である。まず、変換行列生成手段300は、マスター制御装置21aおよびスレーブ制御装置21bから1サイクルの動作完了時点毎に入力されたN対の現在位置を実施の形態1でいう学習用指令値として用いて、N個の学習用変換行列を生成する(ステップS31)。なお、変換行列生成手段300は、生成した学習用変換行列を変換行列記憶手段301に格納する。その後、変換行列関数生成手段302は、ステップS31の処理により変換行列記憶手段301に格納されたN個の学習用変換行列に基づいて、第2の変換行列関数304を生成する(ステップS32)。生成された第2の変換行列関数304はスレーブ制御装置21bに送られて、変換行列関数記憶手段310が記憶する第2の変換行列関数304が当該送られてきた第2の変換行列関数304で上書きされる。その後、ステップS31の処理が実行される。
 図11は、スレーブ制御装置21bの通常動作を説明するフローチャートである。スレーブ制御装置21bにおいては、まず、指令値生成手段311は、Tmを1で初期化し(ステップS41)、指令値記憶手段100に格納されているTm番目の指令値を取り出す(ステップS42)。
 続いて、指令値生成手段311は、使用する変換行列関数を選択する(ステップS43)。ここで、指令値生成手段311は、どのような基準に基づいてステップS43の選択処理を実行するようにしてもよい。第2の変換行列関数304は、通常動作の際の経過時間が長くなるほど収束してくる傾向があるが、収束が十分でない場合に指令値生成手段311は第1の変換行列関数303を選択するようにしてよい。また、通常動作が開始された直後には第2の変換行列関数304が生成されていないので、その際には指令値生成手段311は第1の変換行列関数303を選択するようにしてもよい。
 次に、指令値生成手段311は、取り出したTm番目の指令値が含まれる区間(Pk,Pk+1で表現される区間)およびrate(k,k+1,Tnow)を算出する(ステップS44)。そして、指令値生成手段311は、選択した変換行列関数と式13~式16とに基づいて変換行列E1T’E2(rate(k,k+1,Tnow))を算出し(ステップS45)、取得したTm番目の指令値に前記算出した変換行列E1T’E2(rate(k,k+1,Tnow))を作用させて、エンドエフェクタ11bに対するTm番目の指令値を生成する(ステップS46)。一方、補正量生成手段102bは、補正量記憶手段107bに蓄積されているTm-1番目までの指令値にかかる補正量と、作用力演算手段105bが計測した作用力とに基づいて、Tm番目補正量を算出する(ステップS47)。補正指令値生成手段101bは、生成されたTm番目の指令値とTm番目補正量とを加算して、Tm番目補正指令値を生成する(ステップS48)。ステップS48の後、指令値生成手段311は、Tmを1だけインクリメントし(ステップS49)、ステップS42の処理を実行する。
 このように、本発明の実施の形態2によれば、マスターロボット10aまたはスレーブロボット10bのうちの少なくとも一方の演算周期毎の指令値に対し、手先にかかる作用力を低減する補正を行う指令補正部(補正量生成手段102a、102b、補正指令値生成手段101a、101b)と、ロボット10a、10bの位置検出を行う位置検出部としての機能、および、N個の指令値の夫々において検出された前記第1ロボットの位置と前記第2ロボットの位置とを学習用指令値として出力する位置補正済み指令値生成部としての機能を有する、現在位置検出手段104a、104bと、を備えるように構成したので、同期駆動時に、手先にかかる作用力が小さくなるように動的に補正された位置を学習用指令値として用いながら学習用変換行列を算出し、算出した学習用変換行列を用いて第2の変換行列関数を逐次更新するので、複数のロボット10a、10bが協調動作を実施する上で作用力が小さくなる方向に収束するまで夫々の手先位置を補正でき、最終的に作用力が最も小さくなる軌跡でロボット10a、10bを協調動作せしめることができるようになる。
 また、第2の変換行列関数の更新を続けるモードと更新を停止するモードを設けると、例えば不要な外乱(たとえば、システム内のケーブルが絡んだことによるロボットへの負荷増加)を含むような試行は学習から排除する事や、実生産中には学習を実施しないことが出来るようになる。この構成を設けることで、ロボットを動作させるときの姿勢ごとのモータの応答の違いや通信遅れなどによる同期に起因する誤差を加味したスレーブ軌跡を学習する事が出来るため、より精度の高いスレーブロボットの軌跡を学習する事が出来る。
 なお、ユーザによって3以上の指令値が与えられると、指令値のうちの動作開始位置と動作終了位置との間の軌道がこれらの中間に位置する指令値の近傍を通るように近似的に軌道を決定する補間方法がロボット制御方法として一般に知られている(例えば、特許文献3参照)。この技術によれば、ユーザによって与えられた指令値に基づいてロボット制御装置が算出する軌道は、指令値上を通るとは限らない。実施の形態2によれば、動的に変換行列を生成することができるので、このような技術が適用される場合であっても手先にかかる作用力が小さくなる軌跡でロボット10a、10bを協調動作せしめることができる。ただし、この場合、マスターロボットの指令値記憶手段から出力される指令値については、前記補間方法を適用した場合の、補間処理後の指令値を指令値として指令値生成手段311に入力する。また、その場合、変換行列生成手段300では、実施の形態1で記載の通り、教示作業時に取得したデータを用いて演算される指令値生成手段311取得したスレーブロボットの指令値を用いて、スレーブロボットも同様に補間処理を実施した後の指令値を補正指令値生成手段101bに出力する。結果として、当該補間方法を実施する場合には、動作前に得られている変換行列が当該補間方法を実施しない場合とは異なる。
 また、マスター制御装置21aは、演算周期毎の指令値を駆動制御手段103aに出力する際に、フィルタ処理を施すようにしてもよい。演算周期毎の指令値にフィルタ処理が施される場合には、実際に通過する軌道上の位置と補間指令値にずれが生じる。この場合、マスター制御装置21aは、現在位置を学習用指令値とするが、スレーブ制御装置21bは、補正後の指令値を、フィルタ処理を施さずに駆動制御手段103bに出力する。あるいはスレーブ制御装置21bは、フィルタ処理後の指令値が現在位置となるような指令値を、近似的に算出するようにしてもよい。
実施の形態3.
 実施の形態3によれば、同期駆動時の速度設定値(ここではオーバーライドをいうが、代表位置における速度指令値であってもよい)と第2の変換行列関数とを対応付けて記録される。速度指令値が、記録されている速度指令値から変更されると、予め記録された第2の変換行列関数に基づいて、変更後の速度指令値に対応する第2の変換行列関数が算出され、算出された新たな第2の変換行列関数が更新後の速度指令値を用いた同期駆動に供される。これにより、ユーザは、予め速度設定値を変えて複数回の自動運転を試験的に実行し、速度設定値毎の第2の変換行列関数をロボット制御装置に記録せしめることで、以降の自動運転においては、記録された第2の変換行列関数に基づいて同期駆動に用いる第2の変換行列関数を算出せしめることができるようになるので、実施の形態2のようにロボット間の位置関係が収束されるまでにかかる時間よりも短い時間で制御を安定せしめることができるようになる。
 以下、速度設定値がゼロ値であるときの第2の変換行列関数をE1T’E2((k,k+1)ovrd=0)、速度設定値がaであるときの第2の変換行列関数をE1T’E2((k,k+1)ovrd=a)、速度設定値がb(b>a)であるときの第2の変換行列関数をE1T’E2((k,k+1)ovrd=b)のように夫々表記して、これらの3つの第2の変換行列関数からスレーブ制御装置において通常運転時に適用される第2の変換行列関数を求める手法を説明する。なお、第1の変換行列関数は、速度設定値がゼロ値である場合の第2の変換行列関数E1T’E2((k,k+1)ovrd=0)と等しい。
 式7および式14を用いて、Pkにおける変換行列からPk+1における変換行列に移行する際の変換行列同士の誤差分を考える。速度設定値がaのときの変換の誤差分ΔT(k,k+1,ovrd=a)は次式のように記述できる。
 ΔT(k,k+1,ovrd=a)=[ΔR(1)_a,ΔPk_a;
     zero(1,3),1]  (17)
 また、速度設定値がbのときの変換の誤差分ΔT(k,k+1,ovrd=a)は次式のように記述できる。
 ΔT(k,k+1,ovrd=a)=[ΔR(1)_b,ΔPk_b;
     zero(1,3),1]  (18)
 速度変化によって学習用変換行列が不変であれば、速度設定値を変更しても誤差の出方が変わらないことになるため、スレーブ制御装置においてはいずれかの速度設定値で学習した変換行列関数をそのまま使用することが可能である。しかしながら、各軸の応答の影響またはフィルタの影響などがある場合を含めて、速度変化によって手先位置が変化する場合には、上記式17と式18の結果に違いが出てくる。この差について考える。
 まず回転量の差については、式17に対応する1軸回転法の回転軸をk_a,回転量をα_aとし、式18に対応する1軸回転法の回転軸をk_b,回転量をα_bとすると、回転量の変化率Δαは次のように表せる。なお、軸方向は大きく変わらないものと仮定して、近似的にk_aにおける回転軸を採用するものとする。
 Δα(x)=(αb-αa)/(b-a)*(x-a)  (19)
 ΔP((k,k+1),x)=(ΔPk_b-ΔPk_a)/(b-a)*(x-a)  (20)
 速度が大きくなるにつれて発生する誤差が一定の割合で大きくなるという仮定をすると、上記式19、式20から求められる値を使って、速度設定値がaであるときの第2の変換行列関数を基準とすることで、スレーブ制御装置は、どのような速度設定値(オーバーライド)で通常運転する際であっても速度に応じて発生する誤差を解消する第2の変換行列関数を求めることができる。
 図12は、本発明の実施の形態3のロボット制御系の構成を説明する図である。なお、ここでは、実施の形態1と同じ構成要素には実施の形態1と同一の符号を付して、重複する説明を省略する。
 図12に示すように、マスター制御装置22aは、指令値記憶手段100、補正量生成手段102a、補正指令値生成手段101a、駆動制御手段103a、および、現在位置検出手段104aを備えている。補正量生成手段102aは、作用力演算手段105a、補正量演算手段106a、および補正量記憶手段107aを備えている。ここで、マスター制御装置22aは、試験運転を行っている際、現在位置検出手段104aが検出した現在位置を位置関係演算装置32に出力する。
 位置関係演算装置32は、変換行列生成手段400と、N個の学習用変換行列を記憶する変換行列記憶手段401と、変換行列関数生成手段402と、試験運転速度設定手段403と、を備えている。変換行列生成手段400、変換行列記憶手段401、および変換行列関数生成手段402は、準備処理において実施の形態1における対応する構成要素と同様の処理を実行して、実施の形態1における変換行列関数(第1の変換行列関数303)を生成する。
 また、試験運転中においては、試験運転速度設定手段403は、速度設定値の入力を受け付ける。そして、現在位置検出手段104a、104bが検出した夫々の現在位置に基づいて、変換行列生成手段400、変換行列記憶手段401、および変換行列関数生成手段402は、動的に変換行列関数(第2の変換行列関数)を生成し、生成した第2の変換行列関数を試験運転速度設定手段403に入力された速度設定値と対応づけてスレーブ制御装置22bに出力する。なお、ここでは、速度設定値毎の第2の変換行列関数に符号404を付して実施の形態2の第2の変換行列関数304と区別する。
 スレーブ制御装置22bは、変換行列関数記憶手段410、指令値生成手段411、通常運転速度設定手段412、補正量生成手段102b、補正指令値生成手段101b、駆動制御手段103b、および現在位置検出手段104bを備えている。補正量生成手段102bは、補正量生成手段102aと同等の構成を備えている。
 図13は、変換行列関数記憶手段410のメモリ構成を説明する図である。図示するように、変換行列関数記憶手段410は、位置関係演算装置32が算出した第1の変換行列関数303および速度設定値毎の第2の変換行列関数404を記憶する。
 ここで、通常運転速度設定手段412は、通常運転時において、速度設定値の入力を受け付ける。通常運転時に入力される速度設定値は、試験運転時に入力された速度設定値と異なるものであってもよい。指令値生成手段411は、通常運転速度設定手段412が取得した速度設定値と、変換行列関数記憶手段410に格納されている速度設定値毎の第2の変換行列関数404(および第1の変換行列関数303)とに基づいて、式19および式20を用いて速度に応じた誤差を位置補正しながら変換行列を算出する。そして、指令値記憶手段100から取得したエンドエフェクタ11aに対するTm番目指令値に前記算出した変換行列を作用させて、エンドエフェクタ11bに対するTm番目指令値を算出する。
 このように、本発明の実施の形態3によれば、ロボット制御装置は、同期駆動時に速度設定値の入力を受け付ける速度設定値入力部としての通常運転速度設定手段412と、予め速度設定値毎の第2の変換行列関数404を記憶する位置関係行列関数記憶部としての変換行列関数記憶手段410と、を備え、指令値生成手段411は、変換行列関数記憶手段410に格納されている第2の変換行列関数を読み出して、入力された速度設定値に基づいて補正し、補正後の第2の変換行列関数を用いてスレーブロボット10bにかかる演算周期毎の指令値を算出する、ように構成したので、生産システムの立ち上げ時に、全体の速度設定値を徐々に増加させていく際に、予め記録した情報を用いてロボット10a、10b間の最適な位置関係を推定することができるので、第2の実施の形態よりも立ち上げ時間を短縮せしめることができるようになる。
実施の形態4.
 実施の形態4によれば、補正量演算手段102a、102bは、インピーダンス特性を考慮したインピーダンス制御を実施する。インピーダンス制御とはハンドと環境の間にバネ・ダンパが接続しているモデルを導入し、所望のインピーダンスを定義して手先位置を制御する方法である。実施の形態4によれば、実施の形態1で説明した補正量生成手段102a、102bによる補正量の生成手法が変更されるが、実施の形態1によって得られる効果と同じ効果が得られる。
 さらに、実施の形態4によれば、インピーダンス制御を用いることで、作業対象との力学的な関係を規定できるため、ロボット10a、10b同士やワークへの過負荷状態が発生しにくいように調整した状態で、軌跡の学習を実施する事が出来る。
実施の形態5.
 実施の形態1~3に記載のロボット制御装置において、補正量生成手段102a、102bは、手先にかかる作用力の変わりに、距離センサーによる測定距離を用いて補正量を演算するようにしてもよい。具体的には、ロボット10a、10bあるいは生産システムのジグに距離センサーを取り付けてロボットやワークとの間の距離を計測してロボット10a、10bの手先位置間の相対距離を算出し、相対距離が所望の距離から乖離する場合には、両者を一致せしめるべく補正量を生成する。なお、ロボット10a、10b間の相対距離の算出方法は任意である。例えば、ロボット10aとワークとの間の相対距離と、ロボット10bとワークとの間の相対距離とを距離センサーにより測定し、ロボット10aとロボット10bとの間の距離を求めるようにしてよい。また、ロボット10aとロボット10bとの間の距離を距離センサーにより直接的に測定できるようにしてもよい。
 非接触であるが、一定距離を保ったまま作業をする必要があるような協調動作をロボットあるいは周辺駆動装置が実施する場合に、この構成を適用することで、作業対象に対して理想的な位置関係を保つようなスレーブロボット10bの軌跡を学習することができる。
実施の形態6.
 実施の形態2、3、5に記載のロボット制御装置によれば、補正量生成手段102a、102bは、同じ教示点においても試行ごとに変動する補正量を利用して学習を進めるため、収束性が保証されない場合がある。これに対して、変換行列生成手段200にて生成される変換行列に対して、k+1回目に取得した変換行列をuk+1、k回目に取得した変換行列をu、k回目とk+1回目に取得した変換行列の変化分を変化量q、k回目とk+1回目の変化量を制御周期で割った変化率q(・)を算出し、それらを忘却因子つき学習制御法(非特許文献1参照)を使い、算出される補正量に変動がある場合にも、安定に収束するように構成することができる。
実施の形態7.
 実施の形態7においては、N個の位置補正前の指令値の夫々に、複数サイクル分の補正量の平均値が加算されることによって学習用指令値が生成される。ここでは、学習用指令値を第1学習用指令値と呼称する。また、複数サイクル分の補正量の平均値が加算されることによって第1学習用指令値が生成される、位置補正前の指令値を、第2学習用指令値と呼称する。なお、実施の形態7では、一例として、エンドエフェクタ11aの指令軌跡を演算周期毎に定義するM個の位置指令値のうちの、教示点または教示点の近傍の指令値が、第2学習用指令値として用いられるものとする。
 図14は、本発明の実施の形態7の位置関係演算装置を用いたロボット制御系を説明する図である。ここでは、実施の形態1~3と同じ構成要素には実施の形態1~3と同一の符号を付して、重複する説明を省略する。
 図14に示すように、マスター制御装置23aは、指令値記憶手段100、補正量生成手段110a、補正指令値生成手段101a、駆動制御手段103a、および、現在位置検出手段104aを備えている。補正量生成手段110aは、作用力演算手段105a、補正量演算手段106a、および補正量記憶手段111aを備えている。ここで、自動運転中に、補正量記憶手段111aは、N個の指令値の夫々について、最も新しく演算されたR個の補正量を蓄積記憶する。補正量記憶手段111aは、M個の第2学習用指令値の夫々についても、最も新しく演算されたR個の補正量を記憶する。なお、Rは例えば予め設定される2以上の整数である。M個の第2学習用指令値の夫々にかかるR個の補正量は、位置関係演算装置33によって読み出される。また、指令値記憶手段100に記憶されている第2学習用指令値は、位置関係演算装置33によって読み出される。また、補正指令値生成手段101aによって生成された演算周期毎の補正指令値は、スレーブ制御装置23bに送信される。第2学習用指令値は、補正指令値生成手段101aによって補正された後にスレーブ制御装置23bに送信される。
 なお、指令値記憶手段100に記憶されている第2学習用指令値を、エンドエフェクタ11aに対する第2学習用指令値と呼称することによって後述のエンドエフェクタ11bに対する第2学習用指令値と区別する。
 位置関係演算装置33は、変換行列生成手段500、変換行列記憶手段301、および変換行列関数生成手段302、を備えている。変換行列生成手段500は、エンドエフェクタ11aに対するN個の第2学習用指令値と、エンドエフェクタ11bに対するN個の第2学習用指令値と、エンドエフェクタ11aに対するN個の第2学習用指令値に対して演算された最も新しいRセットの補正量の平均値と、エンドエフェクタ11bに対するN個の第2学習用指令値に対して演算された最も新しいRセットの補正量の平均値と、に基づいてN個の変換行列を生成する。変換行列記憶手段301は、変換行列生成手段500が生成したN個の学習用変換行列を記憶する。変換行列関数生成手段302は、自動運転時において、現在位置検出手段104a、104bが検出した夫々の現在位置に基づいて、動的に変換行列関数(第2の変換行列関数)を生成する。
 なお、変換行列関数生成手段302は、準備処理において、実施の形態1における対応する構成要素と同様の処理を実行して、実施の形態1における変換行列関数(第1の変換行列関数)を生成する。ここでは、説明を簡単にするために、準備処理においてN個の変換行列が生成されるための構成の説明およびデータの入出力関係の図示を省略する。
 スレーブ制御装置23bは、変換行列関数記憶手段310、指令値生成手段511、補正量生成手段110b、補正指令値生成手段101b、駆動制御手段103b、および現在位置検出手段104bを備えている。
 指令値生成手段511は、補正指令値生成手段101aから送られてきた演算周期毎の補正指令値と変換行列関数記憶手段310が記憶する第2の変換行列関数304とに基づいてエンドエフェクタ11bの軌跡を定義するM個の指令値を生成する。具体的には、指令値生成手段511は、第2の変換行列関数304に基づいて、変換行列をエンドエフェクタ11aに対する補正指令値毎に生成する。そして、指令値生成手段511は、生成した変換行列を補正指令値生成手段101aから送られてきた演算周期毎の補正指令値に作用させて、演算周期毎の、エンドエフェクタ11bに対する指令値を生成する。指令値生成手段511は、補正指令値生成手段101aによって補正された第2学習用指令値と第2の変換行列関数304とに基づいてエンドエフェクタ11bに対する第2学習用指令値を生成する。指令値生成手段511は、生成したエンドエフェクタ11bに対する第2学習用指令値を位置関係演算装置33に送信する。
 補正量生成手段110bは、作用力演算手段105b、補正量演算手段106b、および補正量記憶手段111bを備えている。補正量記憶手段111bは、指令値生成手段511が生成したM個の指令値の夫々について、最も新しく算出された所定の数(R個)の補正量を蓄積記憶する。指令値生成手段511が生成したM個の指令値のうちの、エンドエフェクタ11aに対する第2学習用指令値に対応するエンドエフェクタ11bに対する指令値は、位置関係演算装置33に送信される。なお、エンドエフェクタ11aに対する第2学習用指令値に対応するエンドエフェクタ11bに対する指令値を、エンドエフェクタ11bに対する第2学習用指令値ということとする。
 次に、変換行列生成手段500が学習用変換行列を生成する手法を説明する。rob1T'E1とのうちの補正量の成分をΔTk1rob2T'E2のうちの補正量の成分をΔTk2と定義する。即ち、ΔTk1は、rob1T'E1rob1TE1との差分であり、ΔTk2は、rob2T'E2rob2TE2との差分である。従って、ΔTk1、ΔTk2は夫々次のように表現できる。
 ΔTk1=[rob1R'E1(rob1RE1)-1,rob1P'E1rob1PE1;
     zero(1,3),1]       (21)
 ΔTk2=[rob2R'E1(rob2RE2)-1,rob2P'E2rob2PE2;
     zero(1,3),1]       (22)
ただし、式(1)と同様に、rob1TE1rob2TE2rob1T'E1、およびrob2T'E2は次のように表現される。
 robiT'Ei(i=1、2)=[rob1R'Ei,rob1P'Ei;
         zero(1,3),1]       (23)
 robiTEi(i=1、2)=[rob1REi,rob1PEi;
         zero(1,3),1]       (24)
 変換行列生成手段500は、エンドエフェクタ11aに対する第2学習用指令値の夫々についてR個の補正量の平均を演算することによって、エンドエフェクタ11aに対する第2学習用指令値の夫々に対する補正量の平均値ΔTk1_mを算出する。また、変換行列生成手段500は、エンドエフェクタ11bに対する第2学習用指令値の夫々についてR個の補正量の平均を演算することによって、エンドエフェクタ11bに対する第2学習用指令値の夫々に対する補正量の平均値ΔTk2_mを算出する。そして、変換行列生成手段500は、算出した平均値ΔTk2_i(i=1,2)を対応する第2学習用指令値に加算することによって、第1学習用指令値を算出する。
 具体的には、変換行列生成手段500は、ΔTki_m(i=1,2)と次の式(25)とを用いることによって、回転成分ΔRki_mと並進成分ΔPki_mとを算出する。
 ΔTki_m=[ΔRki_m,ΔPki_m;
      zero(1,3),1]       (25)
 そして、変換行列生成手段500は、式(26)に回転成分ΔRki_mと並進成分ΔPki_mとを代入することによって第1学習用指令値robiT''Ei,i=1,2を算出する。
 robiT''Ei,i=1,2=[robiREi,i=1,2ΔRki_m, robiPEi,i=1,2+ΔPki_m;
       zero(1,3),1]       (26)
 そして、変換行列生成手段500は、第1学習用指令値robiT''Ei,i=1,2と次の式(27)とを用いて実施の形態7の学習用変換行列E1T''E2(k),k=1,2,...,Nを演算する。
 E1T''E2=(wldTrob1 rob1T''E1)-1 wldTrob2 rob2T''E2   (27)
 なお、最も新しいR個の補正量の平均値が第2学習用指令値に加算されることによって第1学習用指令値が算出されるとして説明したが、第2学習用指令値に加算される補正量は、R個の補正量を代表する値であればよく、平均値だけに限定されない。例えば、R個の補正量の中間値、最頻値、重み付け平均値などが、第2学習用指令値に加算される補正量として採用可能である。
 補正量演算手段106a、106bは、例えば、インピーダンス制御系または力制御系の制御系を有する。インピーダンス制御系または力制御系は、特許文献4に示されるように、積分器を有する。したがって、インピーダンス制御系または力制御系は、T1番目補正量~Tm-1番目補正量を用いて、Tm番目補正量を算出する。実施の形態7によれば、R個のTm番目補正量を用いて誤差のあわせこみが実行されるので、誤差のあわせこみの精度が向上する。その結果、同期駆動中の複数ロボットの実軌跡上のどの位置においても、把持ワークに掛かる負荷をより低減することが可能となる。
 また、自動運転中の作用力は、速度、温度などの諸条件に起因して変化する。実施の形態7によれば、最も新しく演算されたR個の補正量が平均処理されて得られた補正量を用いて第1学習用指令値が生成されるので、諸条件に起因して変化する作用力を漸近的に低減することができる。
 以上述べたように、本発明の実施の形態7によれば、補正指令値生成手段101a、101b、補正量生成手段110a、110b、および変換行列生成手段500は、協働して、演算周期毎の指令値に含まれる第2学習用指令値の夫々について、当該第2学習用指令値と、当該第2学習用指令値に対する最も新しい所定サイクル分の補正量の代表値と、に基づいて第1学習用指令値を算出する。そして、変換行列生成手段500は、第1学習用指令値毎に学習用変換行列を生成する。これにより、第1学習用指令値は、T1番目補正量~Tm-1番目補正量を用いてTm番目補正量が算出される方式に比べて精度が高い方法で誤差があわせこまれて生成される。また、第1学習用指令値は、自動運転中の諸条件の変動に基づく誤差の変動を考慮して生成される。したがって、エンドエフェクタ11a、11bに発生する作用力を可及的に小さくすることができる。
 なお、以上の説明においては、自動運転時に演算された最も新しいRサイクル分の補正値を用いて第2の変換行列関数304が生成される、として説明した。Rサイクル分の準備処理が実行され、第1の変換行列関数303は、Rサイクル分の準備処理により得られた補正値を用いて、第2の変換行列関数304と同様の手順で生成されるようにしてもよい。
 また、図15に示すように、指令値生成手段511は、指令値記憶手段100からエンドエフェクタ11aに対する演算周期毎の指令値を読み出して、補正量記憶手段111aから演算周期毎の指令値に対するRセット分の補正量を読み出して、読み出した指令値と読み出したRセット分の補正量の平均値とを合算することによってエンドエフェクタ11bに対する演算周期毎の指令値を生成するようにしてもよい。このようにすることによって、エンドエフェクタ11aの補正指令値が大きく変動したとしても、エンドエフェクタ11bの演算周期毎の指令値に対するエンドエフェクタ11aの補正指令値の変動の影響を小さくすることができる。
実施の形態8.
 実施の形態8においては、演算周期毎の指令値のうちの、作用力に関する所定の条件を満たす指令値が、第2学習用指令値として選択される。
 図16は、本発明の実施の形態8の位置関係演算装置を用いたロボット制御系を説明する図である。ここでは、実施の形態7と同じ構成要素には実施の形態7と同一の符号を付して、重複する説明を省略する。
 図示するように、実施の形態8のマスター制御装置24aは、図14を用いて説明した実施の形態7のマスター制御装置23aに学習用指令値選択手段600が追加された構成を有している。実施の形態8の位置関係演算装置33およびスレーブ制御装置23bは、夫々、図14を用いて説明した対応する装置と同様の構成を有している。
 学習用指令値選択手段600は、指令値記憶手段100が記憶するM個の演算周期毎の指令値のうちから、作用力に関する所定の条件を満たすN個の第2学習用指令値を選択する。補正量は、作用力の増減に応じて増減する。ここでは、学習用指令値選択手段600は、補正量演算手段106aが算出した補正量を特徴量として用いて、N個の第2学習用指令値を選択する。
 なお、学習用指令値選択手段600は、補正量をどのように用いて第2学習用指令値を選択してもよい。例えば、学習用指令値選択手段600は、補正量または/および補正量の変化率が所定のしきい値を越える指令値を第2学習用指令値として選択してもよい。これにより、作用力または作用力の変化率が特に大きくなる指令値が第2学習用指令値に設定される。
 また、学習用指令値選択手段600は、補正量以外の量を特徴量として第2学習用指令値を選択するようにしてもよい。以下に、補正量以外の量を特徴量とする場合の選択手法を列挙する。
 例えば、学習用指令値選択手段600は、作用力演算手段105aが演算した作用力を特徴量として用いてもよい。学習用指令値選択手段600は、作用力または/および作用力の変化率が所定のしきい値を超える指令値を第2学習用指令値として選択する。
 また、学習用指令値選択手段600は、演算周期毎の指令値を特徴量として用いてもよい。例えば、学習用指令値選択手段600は、所定の位置条件を満たす指令値を第2学習用指令値として選択する。軌道上において作用力または作用力の変化率が大きくなる位置がロボットの機構に基づいて予め判明している場合がある。その場合には、軌道上における作用力または作用力の変化率が大きくなる位置が位置条件として学習用指令値選択手段600に予め設定される。学習用指令値選択手段600は、位置条件として設定された位置に位置決めするための指令値を第2学習用指令値として選択する。なお、軌道上の範囲が位置条件として設定されてもよい。
 また、学習用指令値選択手段600は、演算周期毎の指令値または演算周期毎の現在位置からモータ速度を算出し、モータ速度を特徴量として用いてもよい。学習用指令値選択手段600は、モータ速度またはモータ速度の変化率が大きい位置を検出し、その検出した位置に位置決めするための指令値を第2学習用指令値として選択する。これにより、軌道上における遠心力またはコリオリ力によって作用力が大きくなるような位置に対応する指令値が第2学習用指令値として選択される。
 また、学習用指令値選択手段600は、指令値または姿勢位置の、単位時間当たりの変化量を特徴量として用いてもよい。
 また、学習用指令値選択手段600は、指令値が使用される時刻を特徴量として用いてもよい。指令値記憶手段100から演算周期毎の指令値が逐次読み出され、読み出された指令値に基づく補正指令値が駆動制御手段103aに逐次供給される。作用力が時間的な条件に基づいて変動する場合には、学習用指令値選択手段600は、作用力または作用力の変動が大きくなる時刻に基づいて第2学習用指令値を選択するようにしてもよい。例えば、学習用指令値選択手段600は、指令値記憶手段100から演算周期毎の指令値が読み出された時刻が、予め設定された時刻条件を満たす場合に、その指令値を第2学習用指令値として選択する。
 なお、実施の形態5において説明したように距離に基づいて補正量が算出される場合には、学習用指令値選択手段600は、補正量の大きさ、補正量の変化率、または、補正前後における距離の差分と、所定のしきい値と、の比較に基づいて第2学習用指令値を選択するようにしてもよい。
 また、学習用指令値選択手段600は、以上に列挙した選択手法を組み合わせて第2学習用指令値を選択するようにしてもよい。
 図17は、比較例にかかるロボット制御系によって協調作業が行われた場合の、エンドエフェクタにかかる作用力と当該エンドエフェクタの位置との関係を示す図である。ここで、t[s]は時間を、x[mm]はエンドエフェクタの位置を、Fx[N]はエンドエフェクタにかかる作用力を、Fxlim[N]は作用力の許容値を、夫々示している。本図に示されるように、比較例によれば、エンドエフェクタの位置の変化に応じて誤差が変化し、誤差に応じて作用力Fxが大きくなってしまう。また、速度が速くなる場合など、動的な影響で誤差量が変わる場合、作用力Fxがさらに大きくなってしまう。
 図18は、比較例にかかるロボット制御系にインピーダンス制御が適用された場合の、エンドエフェクタにかかる作用力と当該エンドエフェクタの位置との関係を示す図である。インピーダンス制御が適用されることによって、図17に示した場合に比べて各位置における作用力Fxが低減される。しかしながら、軌道上の部位毎に制御パラメータを調整することは難しいため、姿勢が変化する場合や速度が変動するような場合などにおいては、軌道上の全ての位置において作用力FxをFxlimよりも小さくすることが困難である。
 図19は、実施の形態8のロボット制御系によって協調作業が行われた場合の、エンドエフェクタにかかる作用力と当該エンドエフェクタの位置との関係を示す図である。実施の形態8によれば、作用力または作用力の変化率が大きい位置に位置決めする指令値が第2学習用指令値として選択され、夫々の第2学習用指令値に対してR個の補正量の平均値が加算されて第1学習用指令値が生成される。これにより、軌道上の全域にわたって作用力Fxを小さくすることができ、結果として、軌道上のどの位置においても作用力FxをFxlimよりも小さくすることが可能となる。
 以上述べたように、本発明の実施の形態8によれば、学習用指令値選択手段600は、指令値記憶手段100が記憶するエンドエフェクタ11aに対するM個の演算周期毎の指令値のうちから、作用力に関する所定の条件を満たすN個の第2学習用指令値を選択する。指令値生成手段511は、選択されたエンドエフェクタ11aに対する第2学習用指令値に基づいてエンドエフェクタ11bに対する第2学習用指令値を生成する。これにより、エンドエフェクタ11a、11bに発生する作用力または作用力の変化率が特に大きくなる位置において作用力が小さくなるように学習用変換行列が生成されるので、エンドエフェクタ11a、11bに発生する作用力をさらに小さくすることが可能となる。
 なお、実施の形態1~7の説明においては、ロボット10a、10bのタイプは6自由度垂直多関節型ロボットであるものとして説明しているが、ロボット10a、10bのタイプはこれに限定されない。ロボット10a、10bのタイプは例えば水平多関節型ロボットまたは直動ロボットであってもよい。
 以上のように、本発明にかかるロボット制御装置およびロボット制御方法は、複数のロボットをロボット間で同期させながら駆動するロボット制御装置およびロボット制御方法に適用して好適である。
 10a マスターロボット、10b スレーブロボット、11a,b エンドエフェクタ、12a,b 据付け台、20a,21a,22a,23a,24a,40a マスター制御装置、20b,21b,22b,23b,40b スレーブ制御装置、30,31,32,33,50 位置関係演算装置、100 指令値記憶手段、101a,b 補正指令値生成手段、102a,b 補正量生成手段、103a,b 駆動制御手段、104a,b 現在位置検出手段、105a,b 作用力演算手段、106a,b 補正量演算手段、107a,b 補正量記憶手段、108,311,511 指令値生成手段、109 変換行列記憶手段、110a,b 補正量生成手段、111a,b 補正量記憶手段、200,300,400,500 変換行列生成手段、201,301,401 変換行列記憶手段、202,302,402 変換行列関数生成手段、210,310 変換行列関数記憶手段、211 指令値生成手段、303 第1の変換行列関数、304,404 第2の変換行列関数、403 試験運転速度設定手段、410 変換行列関数記憶手段、411 指令値生成手段、412 通常運転速度設定手段、600 学習用指令値選択手段。

Claims (11)

  1.  第1ロボットと前記第1ロボットと異なる第2ロボットとを同期駆動するロボット制御装置であって、
     前記第1ロボットと前記第2ロボットとを同期駆動時の夫々の軌跡上に位置決めする位置補正済みの指令値であるロボット当たりにN個の第1学習用指令値に基づいて、前記第1ロボットにかかる第1学習用指令値と前記第2ロボットにかかる第1学習用指令値との間の同期駆動時の位置関係を定義する位置関係行列を前記N個の第1学習用指令値の夫々について生成する位置関係行列生成部と、
     前記第1ロボットの軌跡を定義する指令値であるM(M>N)個の演算周期毎の第1駆動用指令値を出力する第1指令値出力部と、
     前記N個の位置関係行列を補間して前記第1駆動用指令値毎の位置関係行列を生成する位置関係行列補間部と、
     前記M個の第1駆動用指令値の夫々に前記補間後の対応する位置関係行列を作用させて前記第2ロボットの軌跡を定義する指令値であるM個の第2駆動用指令値を生成する第2指令値生成部と、
     を備え、前記第1駆動用指令値に基づいて前記第1ロボットを駆動し、前記第2駆動用指令値に基づいて前記第2ロボットを駆動する、
     ことを特徴とするロボット制御装置。
  2.  前記第1ロボットおよび前記第2ロボットは、ユーザによりNセットの教示点の夫々に移動せしめられて静止せしめられ、
     前記Nセットの教示点の夫々に前記第1ロボットおよび前記第2ロボットが静止せしめられる毎に手先にかかる作用力に基づいて夫々の手先位置の補正を行い、補正後の手先位置または補正後の手先位置に対応する指令値を取得して前記第1学習用指令値に設定する位置補正済み指令値生成部をさらに備える、
     ことを特徴とする請求項1に記載のロボット制御装置。
  3.  前記N個の位置関係行列を補間する位置関係行列関数を生成する位置関係行列関数生成部をさらに備え、
     前記位置関係行列補間部は、前記位置関係行列関数に基づいて前記第1駆動用指令値毎の位置関係行列を生成する、
     ことを特徴とする請求項2に記載のロボット制御装置。
  4.  前記第1ロボットと前記第2ロボットとは、同一のワークを同時に把持して搬送するロボットであって、
     前記第1ロボットまたは前記第2ロボットの手先にかかる作用力を演算する作用力演算部と、
     同期駆動時に、前記第1駆動用指令値または前記第2駆動用指令値に対し、前記作用力演算部による演算値に基づいて前記第1ロボットまたは前記第2ロボットの手先にかかる作用力を低減する補正を行う指令補正部と、
     同期駆動時に前記第1ロボットおよび前記第2ロボットの位置検出を行う位置検出部と、
     同期駆動時に前記N個の第1学習用指令値をロボット毎に算出する位置補正済み指令値生成部と、
     をさらに備えることを特徴とする請求項1に記載のロボット制御装置。
  5.  前記第1ロボットの手先位置および前記第2ロボットの手先位置を演算周期毎に検出する位置検出部をさらに備え、
     前記位置補正済み指令値生成部は、前記第1ロボットの手先位置の検出値のうちのN個の検出値、および、前記第2ロボットの手先位置の検出値のうちのN個の検出値、を前記第1学習用指令値に設定する、
     ことを特徴とする請求項4に記載のロボット制御装置。
  6.  前記指令補正部は、同期駆動時に、前記第1駆動用指令値および前記第2駆動用指令値を補正し、
     前記M個の第1駆動用指令値および前記M個の第2駆動用指令値は、夫々N個の第2学習用指令値を含み、
     前記位置補正済み指令値生成部は、
     前記第2学習用指令値の夫々について、当該第2学習用指令値と、当該第2学習用指令値に対する前記指令補正部による最も新しい所定サイクル分の補正量の代表値と、を加算することによって前記第1学習用指令値を算出する、
     ことを特徴とする請求項4に記載のロボット制御装置。
  7.  前記M個の第1駆動用指令値のうちの前記作用力に関する設定条件を満たす駆動用指令値を選択し、前記選択した駆動用指令値を前記第1ロボットの第2学習用指令値に設定する、学習用指令値選択部をさらに備える、
     ことを特徴とする請求項6に記載のロボット制御装置。
  8.  前記代表値は、平均値、重み付け平均値、中間値、または、最頻値である、
     ことを特徴とする請求項6に記載のロボット制御装置。
  9.  前記N個の位置関係行列を補間する位置関係行列関数を生成する位置関係行列関数生成部をさらに備え、
     前記位置関係行列補間部は、前記位置関係行列関数に基づいて前記第1駆動用指令値毎の位置関係行列を生成する、
     ことを特徴とする請求項1乃至請求項8の何れか一項に記載のロボット制御装置。
  10.  同期駆動時に第1の速度設定値の入力を受け付ける速度設定値入力部と、
     前記第1の速度設定値と異なる第2の速度設定値毎に前記N個の位置関係行列を補間する位置関係行列関数を予め記憶する位置関係行列関数記憶部と、
     を備え、
     前記位置関係行列補間部は、同期駆動時に、前記位置関係行列関数記憶部が記憶する前記第2の速度設定値毎の位置関係行列関数を読み出して、前記速度設定値入力部に入力された第1の速度設定値に基づいて前記読み出した第2の速度設定値毎の位置関係行列関数を補正し、前記補正後の位置関係行列関数に基づいて前記第1の速度指令値毎の位置関係行列を生成する、
     ことを特徴とする請求項1に記載のロボット制御装置。
  11.  第1ロボットと前記第1ロボットと異なる第2ロボットとを同期駆動するロボット制御方法であって、
     前記第1ロボットと前記第2ロボットとを同期駆動時の夫々の軌跡上に位置決めする位置補正済みの指令値であるロボット当たりにN個の第1学習用指令値に基づいて、前記第1ロボットにかかる第1学習用指令値と前記第2ロボットにかかる第1学習用指令値との間の同期駆動時の位置関係を定義する位置関係行列を前記N個の第1学習用指令値の夫々について生成する位置関係行列生成ステップと、
     前記第1ロボットの軌跡を定義する指令値であるM(M>N)個の演算周期毎の第1駆動用指令値を出力する第1指令値出力ステップと、
     前記N個の位置関係行列を補間して前記第1駆動用指令値毎の位置関係行列を生成する位置関係行列補間ステップと、
     前記M個の第1駆動用指令値の夫々に前記補間後の対応する位置関係行列を作用させて前記第2ロボットの軌跡を定義する指令値であるM個の第2駆動用指令値を生成する第2指令値生成ステップと、
     前記第1駆動用指令値に基づいて前記第1ロボットを駆動し、前記第2駆動用指令値に基づいて前記第2ロボットを駆動する、同期駆動ステップと、
     を備える、
     ことを特徴とするロボット制御方法。
PCT/JP2013/065060 2012-06-29 2013-05-30 ロボット制御装置およびロボット制御方法 WO2014002678A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US14/401,593 US9517556B2 (en) 2012-06-29 2013-05-30 Robot control apparatus and robot control method
CN201380033535.2A CN104379308B (zh) 2012-06-29 2013-05-30 机器人控制装置以及机器人控制方法
JP2014522493A JP5774223B2 (ja) 2012-06-29 2013-05-30 ロボット制御装置およびロボット制御方法
DE112013003209.0T DE112013003209B4 (de) 2012-06-29 2013-05-30 Robotersteuerungsvorrichtung und Robotersteuerungsverfahren

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012146947 2012-06-29
JP2012-146947 2012-06-29

Publications (1)

Publication Number Publication Date
WO2014002678A1 true WO2014002678A1 (ja) 2014-01-03

Family

ID=49782845

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/065060 WO2014002678A1 (ja) 2012-06-29 2013-05-30 ロボット制御装置およびロボット制御方法

Country Status (5)

Country Link
US (1) US9517556B2 (ja)
JP (1) JP5774223B2 (ja)
CN (1) CN104379308B (ja)
DE (1) DE112013003209B4 (ja)
WO (1) WO2014002678A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468685A (zh) * 2014-09-09 2015-03-25 嘉兴市德宝威微电子有限公司 机器人数据共享方法和系统
JP2016112638A (ja) * 2014-12-15 2016-06-23 Ntn株式会社 リンク作動装置
JP2018018131A (ja) * 2016-07-25 2018-02-01 三菱電機株式会社 モーション制御システム
JPWO2022054292A1 (ja) * 2020-09-14 2022-03-17
JPWO2022113462A1 (ja) * 2020-11-27 2022-06-02

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9649765B2 (en) 2013-03-11 2017-05-16 Siemens Aktiengesellschaft Reducing energy consumption of industrial robots by using new methods for motion path programming
JP6010776B2 (ja) * 2013-03-19 2016-10-19 パナソニックIpマネジメント株式会社 ロボットシステムの制御方法およびロボットシステム
FR3018358B1 (fr) * 2014-03-10 2018-05-25 Noviloire Methode d'initialisation et de controle d'une installation robotisee
US9922144B2 (en) 2014-03-26 2018-03-20 Siemens Industry Software Ltd. Energy and cycle time efficiency based method for robot positioning
US9701011B2 (en) 2014-05-08 2017-07-11 Siemens Industry Software Ltd. Method for robotic energy saving tool search
JP5829313B1 (ja) 2014-06-25 2015-12-09 ファナック株式会社 シミュレーションを用いたオフライン教示装置
US9815201B2 (en) 2014-07-31 2017-11-14 Siemens Industry Software Limited Method and apparatus for industrial robotic energy saving optimization using fly-by
US9469029B2 (en) 2014-07-31 2016-10-18 Siemens Industry Software Ltd. Method and apparatus for saving energy and reducing cycle time by optimal ordering of the industrial robotic path
US9457469B2 (en) * 2014-08-14 2016-10-04 Siemens Industry Software Ltd. Method and apparatus for automatic and efficient location generation for cooperative motion
US10434644B2 (en) * 2014-11-03 2019-10-08 The Board Of Trustees Of The Leland Stanford Junior University Position/force control of a flexible manipulator under model-less control
JP6126152B2 (ja) * 2015-03-16 2017-05-10 ファナック株式会社 曲線部を有する軌道を生成するロボットの軌道生成装置
JP6591818B2 (ja) * 2015-07-30 2019-10-16 ファナック株式会社 産業用ロボットシステムおよびその制御方法
EP3342555A4 (en) * 2015-08-25 2019-10-02 Kawasaki Jukogyo Kabushiki Kaisha REMOTE CONTROL MANIPULATOR SYSTEM AND OPERATING METHOD THEREFOR
JP6616170B2 (ja) * 2015-12-07 2019-12-04 ファナック株式会社 コアシートの積層動作を学習する機械学習器、積層コア製造装置、積層コア製造システムおよび機械学習方法
DE102016000850B4 (de) * 2016-01-27 2025-07-10 Kuka Roboter Gmbh Steuern eines Roboterverbands
DE102016206480B4 (de) * 2016-04-18 2019-07-25 Kuka Systems Gmbh Prüfen einer Sicherheitseigenschaft eines Manipulators
CN105773620B (zh) * 2016-04-26 2017-09-12 南京工程学院 基于倍四元数的工业机器人自由曲线的轨迹规划控制方法
WO2017193204A1 (en) 2016-05-12 2017-11-16 Dreco Energy Services Ulc System and method for offline standbuilding
JP6517762B2 (ja) 2016-08-23 2019-05-22 ファナック株式会社 人とロボットが協働して作業を行うロボットの動作を学習するロボットシステム
JP6438450B2 (ja) 2016-11-29 2018-12-12 ファナック株式会社 レーザ加工ロボットの加工順序を学習する機械学習装置、ロボットシステムおよび機械学習方法
JP6484213B2 (ja) * 2016-12-09 2019-03-13 ファナック株式会社 複数のロボットを含むロボットシステム、ロボット制御装置、及びロボット制御方法
CN106584462B (zh) * 2016-12-22 2019-01-15 南京埃斯顿自动化股份有限公司 一种机器人运行速度实时调节方法
JP2018126798A (ja) * 2017-02-06 2018-08-16 セイコーエプソン株式会社 制御装置、ロボットおよびロボットシステム
JP6852450B2 (ja) * 2017-02-17 2021-03-31 セイコーエプソン株式会社 表示方法およびロボットシステム
JP6472472B2 (ja) * 2017-03-08 2019-02-20 本田技研工業株式会社 位置姿勢調整方法
JP6724831B2 (ja) * 2017-03-16 2020-07-15 株式会社安川電機 コントロールシステム、コントローラ及び制御方法
EP3626401B1 (en) * 2017-05-17 2024-09-18 Telexistence Inc. Control device, robot control method, and robot control system
JP6959762B2 (ja) * 2017-05-19 2021-11-05 川崎重工業株式会社 遠隔操作ロボットシステム
JP6816704B2 (ja) * 2017-11-09 2021-01-20 オムロン株式会社 指令値補間装置及びサーボドライバ
WO2019098044A1 (ja) * 2017-11-14 2019-05-23 三菱電機株式会社 ロボットの動作調整装置、動作制御システム及びロボットシステム
CN108555903B (zh) * 2017-12-30 2021-12-10 芜湖哈特机器人产业技术研究院有限公司 一种清洗液压机械臂的力控制方法
JP6661676B2 (ja) * 2018-01-18 2020-03-11 ファナック株式会社 ロボット制御装置
US20200352037A1 (en) * 2018-01-19 2020-11-05 Sony Corporation Robot apparatus and method of manufacturingg electronic apparatus
JP6962229B2 (ja) 2018-02-15 2021-11-05 オムロン株式会社 中央制御装置、制御方法およびプログラム
KR102031348B1 (ko) * 2018-04-13 2019-11-08 주식회사 랜도르아키텍쳐 자율 작업 시스템, 방법 및 컴퓨터 판독 가능한 기록매체
US11035183B2 (en) 2018-08-03 2021-06-15 National Oilwell Varco, L.P. Devices, systems, and methods for top drive clearing
WO2020151386A1 (en) 2019-01-25 2020-07-30 National Oilwell Varco, L.P. Pipe handling arm
US11988059B2 (en) 2019-02-22 2024-05-21 National Oilwell Varco, L.P. Dual activity top drive
JP7405537B2 (ja) * 2019-09-05 2023-12-26 ファナック株式会社 機械学習装置、サーボ制御装置、サーボ制御システム及び機械学習方法
JP7437910B2 (ja) * 2019-10-29 2024-02-26 株式会社東芝 制御システム、制御方法、ロボットシステム、プログラム、及び記憶媒体
CN111319042B (zh) * 2020-02-06 2023-03-07 北京凡川智能机器人科技有限公司 一种基于遗忘因子动态参数的机器人柔顺装配控制方法
US11834914B2 (en) 2020-02-10 2023-12-05 National Oilwell Varco, L.P. Quick coupling drill pipe connector
US11274508B2 (en) 2020-03-31 2022-03-15 National Oilwell Varco, L.P. Robotic pipe handling from outside a setback area
CA3180958A1 (en) 2020-05-03 2021-11-11 National Oilwell Varco, L.P. Passive rotation disconnect
US11365592B1 (en) * 2021-02-02 2022-06-21 National Oilwell Varco, L.P. Robot end-effector orientation constraint for pipe tailing path
JP2022164073A (ja) * 2021-04-15 2022-10-27 川崎重工業株式会社 ロボットシステム、その制御方法及び制御プログラム
US11814911B2 (en) 2021-07-02 2023-11-14 National Oilwell Varco, L.P. Passive tubular connection guide
US11982139B2 (en) 2021-11-03 2024-05-14 National Oilwell Varco, L.P. Passive spacer system
JP2023105694A (ja) * 2022-01-19 2023-07-31 株式会社デンソーウェーブ 主従ロボットシステム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63113605A (ja) * 1986-10-30 1988-05-18 Toyota Motor Corp 同期型ロボツト装置の動作制御方法
JPH0671580A (ja) * 1992-08-25 1994-03-15 Fanuc Ltd 双腕ロボットの同期制御方法
JP2006099474A (ja) * 2004-09-29 2006-04-13 Fanuc Ltd ロボットの軌跡制御方法

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0331265B1 (en) * 1988-03-01 1995-08-23 Hitachi Construction Machinery Co., Ltd. Position/force controlling apparatus for working machine with multiple of degrees of freedom
EP0353585A3 (de) * 1988-08-04 1992-04-22 Siemens Aktiengesellschaft Verfahren zur Bahn- und Positionskorrektur eines Werkzeugs eines Roboters
JP2514490B2 (ja) * 1991-07-05 1996-07-10 株式会社ダイヘン 産業用ロボットの連動手動操作による教示制御方法
EP0523889B1 (en) * 1991-07-06 1996-12-27 Daihen Corporation Apparatus for controlling industrial robot to perform coordinated operation using teaching playback method and method thereof
US5258402A (en) 1992-06-11 1993-11-02 Mcneil-Ppc, Inc. Imidate derivatives of pharmaceutically useful anticonvulsant sulfamates
JP3306781B2 (ja) * 1992-12-31 2002-07-24 株式会社ダイヘン 産業用ロボットの手動操作による教示制御装置および教示方法
JPH0720915A (ja) 1993-07-06 1995-01-24 Fanuc Ltd ロボットの同期制御方法
JPH07205072A (ja) 1994-01-26 1995-08-08 Mazda Motor Corp 複数ロボットの協調制御装置
JPH07256580A (ja) 1994-03-18 1995-10-09 Fujitsu Ltd 複腕協調制御装置
JP2732034B2 (ja) 1994-08-23 1998-03-25 株式会社不二越 ロボット制御装置
DE69636230T2 (de) * 1995-09-11 2007-04-12 Kabushiki Kaisha Yaskawa Denki, Kitakyushu Robotersteuerung
JP3632278B2 (ja) 1996-01-31 2005-03-23 松下電器産業株式会社 ロボット間座標変換行列設定方法および補正方法
JPH1083208A (ja) 1996-09-05 1998-03-31 Matsushita Electric Ind Co Ltd ロボット間相対位置演算機構
JPH11119820A (ja) 1997-10-17 1999-04-30 Meidensha Corp ティーチングプレイバック式ロボット
JP2000190266A (ja) 1998-12-25 2000-07-11 Toyota Motor Corp 複数マニピュレ―タによる協調動作制御方法
JP2000301479A (ja) * 1999-04-19 2000-10-31 Denso Corp ロボット制御装置
EP1090722B1 (en) * 1999-09-16 2007-07-25 Fanuc Ltd Control system for synchronously cooperative operation of a plurality of robots
JP2001212781A (ja) * 2000-02-02 2001-08-07 Aida Eng Ltd ロボットの同期制御装置
JP3666341B2 (ja) 2000-02-04 2005-06-29 三菱電機株式会社 ロボット制御方法
JP2001252884A (ja) * 2000-03-06 2001-09-18 Matsushita Electric Ind Co Ltd ロボット、ロボットシステムおよびロボットの制御方法
JP3765713B2 (ja) 2000-07-10 2006-04-12 独立行政法人科学技術振興機構 ロボットの協調制御方法及び協調制御装置
JP3504222B2 (ja) * 2000-09-04 2004-03-08 ファナック株式会社 ロボット制御装置
JP3588063B2 (ja) 2001-07-13 2004-11-10 ファナック株式会社 ロボット制御装置
JP3577028B2 (ja) * 2001-11-07 2004-10-13 川崎重工業株式会社 ロボットの協調制御システム
US6807461B2 (en) * 2002-05-22 2004-10-19 Kuka Roboter Gmbh Coordinated robot control from multiple remote instruction sources
DE10236392A1 (de) * 2002-08-08 2004-02-19 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Steuern von Handhabungsgeräten
US6804580B1 (en) * 2003-04-03 2004-10-12 Kuka Roboter Gmbh Method and control system for controlling a plurality of robots
SE0400091D0 (sv) * 2004-01-16 2004-01-16 Abb Ab Control system, method and computer program
JP2005262369A (ja) 2004-03-18 2005-09-29 Yaskawa Electric Corp ロボットシステム
JP4189445B2 (ja) * 2004-12-22 2008-12-03 川崎重工業株式会社 ロボットの制御方法および制御装置
JP2006187826A (ja) * 2005-01-05 2006-07-20 Kawasaki Heavy Ind Ltd ロボットコントローラ
JP4382003B2 (ja) * 2005-03-23 2009-12-09 川崎重工業株式会社 ロボット制御装置およびロボット制御方法
US7860609B2 (en) * 2005-05-06 2010-12-28 Fanuc Robotics America, Inc. Robot multi-arm control system
JP4159577B2 (ja) * 2005-12-13 2008-10-01 ファナック株式会社 複数のロボット間のインターロック自動設定装置及び自動設定方法
US20070142966A1 (en) * 2005-12-20 2007-06-21 Khalid Mirza Process for moving a robot
JP2008073830A (ja) * 2006-09-25 2008-04-03 Fanuc Ltd ロボット制御装置
JP2008254097A (ja) 2007-04-03 2008-10-23 Denso Wave Inc 複数ロボット間の相対位置計算方法
JP2009018380A (ja) 2007-07-12 2009-01-29 Toyota Motor Corp ロボット、ロボットの制御方法、及びロボットの制御システム
CN102152313B (zh) * 2008-02-28 2012-12-12 松下电器产业株式会社 机器人手臂的控制装置及控制方法、机器人、机器人手臂的控制程序、及机器人手臂控制用集成电子电路
US8301302B2 (en) * 2008-05-08 2012-10-30 The Boeing Company Synchronous robotic operation on a structure having a confined space
KR101479233B1 (ko) 2008-05-13 2015-01-05 삼성전자 주식회사 로봇 및 그 협조작업 제어방법
CN102026783B (zh) * 2008-06-06 2013-03-27 松下电器产业株式会社 机器人、机器人的控制装置、控制方法及控制程序
JP2010023128A (ja) 2008-07-15 2010-02-04 Yaskawa Electric Corp ロボットシステム
JP5436160B2 (ja) 2009-11-19 2014-03-05 三菱電機株式会社 力制御装置
JP2010082802A (ja) 2009-11-26 2010-04-15 Yaskawa Electric Corp 自動機械システム
WO2011106239A1 (en) * 2010-02-25 2011-09-01 Honda Motor Co., Ltd. Constrained resolved acceleration control
CN102510793B (zh) * 2010-06-04 2015-01-28 中国科学院自动化研究所 加速度连续的机器人轨迹生成系统和方法
CN101913149B (zh) * 2010-07-23 2012-04-04 山东电力研究院 嵌入式轻型机械臂控制器及其控制方法
US8731714B2 (en) * 2010-09-22 2014-05-20 GM Global Technology Operations LLC Concurrent path planning with one or more humanoid robots
EP2780764B1 (en) * 2011-11-16 2022-08-03 X Development LLC System and method for 3d projection mapping with robotically controlled objects
US20130245823A1 (en) * 2012-03-19 2013-09-19 Kabushiki Kaisha Yaskawa Denki Robot system, robot hand, and robot system operating method
CN102721746A (zh) * 2012-07-04 2012-10-10 北京理工大学 一种双机械手超声透射检测装置
JP5981811B2 (ja) * 2012-09-06 2016-08-31 川崎重工業株式会社 搬送システム及び搬送システムの搬送方法
JP5678979B2 (ja) * 2013-03-15 2015-03-04 株式会社安川電機 ロボットシステム、校正方法及び被加工物の製造方法
JP5768829B2 (ja) * 2013-03-15 2015-08-26 株式会社安川電機 ロボットシステム、ロボット制御方法及び被加工物の製造方法
JP6010776B2 (ja) * 2013-03-19 2016-10-19 パナソニックIpマネジメント株式会社 ロボットシステムの制御方法およびロボットシステム
JP5970415B2 (ja) * 2013-05-16 2016-08-17 株式会社神戸製鋼所 産業用ロボットおよび周辺装置の動作を制御する制御システムおよび制御方法
JP5893665B2 (ja) * 2014-04-14 2016-03-23 ファナック株式会社 作用された力に応じて移動されるロボットを制御するロボット制御装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63113605A (ja) * 1986-10-30 1988-05-18 Toyota Motor Corp 同期型ロボツト装置の動作制御方法
JPH0671580A (ja) * 1992-08-25 1994-03-15 Fanuc Ltd 双腕ロボットの同期制御方法
JP2006099474A (ja) * 2004-09-29 2006-04-13 Fanuc Ltd ロボットの軌跡制御方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468685A (zh) * 2014-09-09 2015-03-25 嘉兴市德宝威微电子有限公司 机器人数据共享方法和系统
JP2016112638A (ja) * 2014-12-15 2016-06-23 Ntn株式会社 リンク作動装置
JP2018018131A (ja) * 2016-07-25 2018-02-01 三菱電機株式会社 モーション制御システム
JPWO2022054292A1 (ja) * 2020-09-14 2022-03-17
WO2022054292A1 (ja) * 2020-09-14 2022-03-17 三菱電機株式会社 ロボット制御装置
JP7301238B2 (ja) 2020-09-14 2023-06-30 三菱電機株式会社 ロボット制御装置
JPWO2022113462A1 (ja) * 2020-11-27 2022-06-02
JP7695565B2 (ja) 2020-11-27 2025-06-19 株式会社不二越 力検出装置及びロボットシステム

Also Published As

Publication number Publication date
JPWO2014002678A1 (ja) 2016-05-30
US9517556B2 (en) 2016-12-13
DE112013003209T5 (de) 2015-04-02
CN104379308B (zh) 2016-05-18
JP5774223B2 (ja) 2015-09-09
CN104379308A (zh) 2015-02-25
US20150148952A1 (en) 2015-05-28
DE112013003209B4 (de) 2019-02-07

Similar Documents

Publication Publication Date Title
JP5774223B2 (ja) ロボット制御装置およびロボット制御方法
JP4202365B2 (ja) 力制御装置
JP6700669B2 (ja) 制御方法、ロボット装置、プログラム、記録媒体、及び物品の製造方法
JP5897644B2 (ja) ロボットの制御装置
CN109683471B (zh) 自抗扰控制方法、装置和系统
US10646995B2 (en) Robot that carries out learning control in applications requiring constant speeds, and control method thereof
JP2011235374A (ja) ロボットの負荷推定装置及び負荷推定方法
JP5383756B2 (ja) 学習制御機能を備えたロボット
JP5916583B2 (ja) 多関節ロボットのウィービング制御装置
JP2019123051A (ja) ロボット装置、ロボットの制御方法、ロボットの制御装置
JP2001157975A (ja) ロボットの制御装置
WO2018212265A1 (ja) ロボットシステム及びロボットシステムの制御方法
JP2005301508A (ja) 制御装置
JP2016105686A (ja) モータ駆動装置の制御装置、複軸モータ駆動装置の制御装置、及びモータ駆動装置の制御方法
JP2017209762A (ja) ロボット装置、ロボット制御方法、プログラム、記録媒体及び物品の製造方法
WO2018212307A1 (ja) 減速機角度伝達誤差同定システム及び減速機角度伝達誤差同定方法
Luo et al. Predictive seam tracking with iteratively learned feedforward compensation for high-precision robotic laser welding
GB2146801A (en) Control of robots
JP5371882B2 (ja) 力制御装置
WO2013122018A1 (en) Control apparatus of robot, robot, and program thereof
JP2017113867A (ja) ロボット制御装置
JP6896824B2 (ja) ロボット装置、ロボットシステム、ロボット装置の制御方法、ロボット装置を用いた物品の製造方法、情報処理装置、情報処理方法、制御プログラム及び記録媒体
US8670869B2 (en) Robot controller
JPS60263206A (ja) マニピユレ−タの制御装置
JP2024017883A (ja) 動力学トルク補償に基づく制御方法及び制御装置

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: 13809351

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014522493

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14401593

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 1120130032090

Country of ref document: DE

Ref document number: 112013003209

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13809351

Country of ref document: EP

Kind code of ref document: A1