WO2023223763A1 - ロボット装置及びその制御方法 - Google Patents

ロボット装置及びその制御方法 Download PDF

Info

Publication number
WO2023223763A1
WO2023223763A1 PCT/JP2023/015738 JP2023015738W WO2023223763A1 WO 2023223763 A1 WO2023223763 A1 WO 2023223763A1 JP 2023015738 W JP2023015738 W JP 2023015738W WO 2023223763 A1 WO2023223763 A1 WO 2023223763A1
Authority
WO
WIPO (PCT)
Prior art keywords
coordinate system
robot
transformation
robot arm
dimensional
Prior art date
Application number
PCT/JP2023/015738
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 株式会社ニコン
Publication of WO2023223763A1 publication Critical patent/WO2023223763A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices

Definitions

  • the present invention relates to, for example, a robot device and a method of controlling the robot device.
  • the current image is compared with a previously captured image of the robot hand and the target object, and the robot is moved using the comparison result.
  • a robot device that corrects the position of a hand is used (for example, see Patent Document 1).
  • a first camera installed separately from the robot device and a second camera installed on the robot hand capture images of a plurality of reference marks formed in a two-dimensional grid arrangement on a flat plate member.
  • a robot device is also used that calibrates the linear error in the position of the robot hand based on the results (for example, see Patent Document 2).
  • the position of the robot hand or robot arm can be calibrated with high precision and easily.
  • a robot device that includes a robot arm that has a specific part and moves the specific part to a plurality of positions on a three-dimensional first coordinate system; a measuring device that measures the position of the specific part on the three-dimensional second coordinate system, and the position of the specific part on the first coordinate system and the second coordinate system; a transformation unit that calculates a transformation relationship including a nonlinear component; and a transformation unit that converts a specified position on the second coordinate system to a position on the first coordinate system using the transformation relationship, and converts the position specified on the second coordinate system to a position on the first coordinate system, and A control unit that controls the robot arm based on the invention is provided.
  • a robot device including a robot arm, a plurality of detection units that detect displacement information of a plurality of parts of the robot arm, and a robot using detection results of the plurality of detection units.
  • a calculation unit that determines the position of the arm on the three-dimensional first coordinate system and a plurality of reference marks provided on the reference member and each having a defined position on the three-dimensional second coordinate system can be sequentially detected. and the mark detection unit supported by the robot arm, the position of the robot arm on the first coordinate system, and the position of the reference mark when the mark detection unit detects the plurality of reference marks.
  • a transformation unit that calculates a transformation relationship including a non-linear component between the position on the second coordinate system and the position specified on the second coordinate system on the first coordinate system using the transformation relationship.
  • a robot device includes a control unit that converts the position of the robot arm and controls the robot arm based on the converted position.
  • a method for controlling a robot device including a robot arm, in which the robot arm is used to move a specific portion of the robot arm to a plurality of positions on a three-dimensional first coordinate system. and measuring, using a measuring device, the positions of the specific part at a plurality of positions on the three-dimensional second coordinate system, and the position of the specific part on the first coordinate system. and the position on the second coordinate system, and convert the position specified on the second coordinate system to the position specified on the first coordinate system using the transformation relationship. , and controlling the robot arm based on the transformed position.
  • a method for controlling a robot device including a robot arm, in which the position of the robot arm on a three-dimensional first coordinate system is determined using displacement information of a plurality of parts of the robot arm. and detecting each of a plurality of reference marks provided on the reference member, each having a defined position on the three-dimensional second coordinate system, using a mark detection unit supported by the robot arm. , including a nonlinear component between the position of the robot arm on the first coordinate system when detecting the fiducial mark and the position of the detected fiducial mark on the second coordinate system. determining a transformation relationship, transforming the position specified on the second coordinate system to the position of the robot arm on the first coordinate system using the transformation relationship, and based on the transformed position.
  • a method of controlling a robotic device is provided, including: controlling the robotic arm.
  • FIG. 1 is a perspective view showing a robot device according to a first embodiment.
  • (A) is a perspective view showing a plurality of positions where the tool ball is moved by the robot hand
  • (B) is a diagram showing an example of a figure on the robot coordinate system and a plurality of figures deformed by drift.
  • (A) is a diagram showing an example of a control device of a robot device
  • (B) is a diagram showing parts added to the control device in a second embodiment.
  • (A) is a diagram showing an example of the relationship between the three axes of the reference coordinate system and the three axes of the robot coordinate system
  • (B) is a diagram showing an example of a three-dimensional figure and a figure deformed by drift.
  • FIG. 7(A) is an enlarged plan view showing the reference mark member of FIG. 7(A).
  • (A) is an enlarged view showing an example of the field of view of the imaging device
  • (B) is a diagram showing an example of the arrangement of a plurality of detected reference marks and an example of the arrangement in the robot coordinate system.
  • (A) is a flowchart showing an example of a method for manufacturing a reference mark member
  • (B) is a flowchart showing an example of a method for controlling the robot device of the second embodiment.
  • (A) is a diagram showing an example of rotation around the z-axis of the robot coordinate system
  • (B) is a diagram showing an example of rotation around a plurality of axes.
  • FIG. 3 is a diagram showing a state in which the tip of the robot arm is bent in the z direction according to the distance from the origin of the robot coordinate system.
  • (A) is a perspective view showing a mark forming section of a third embodiment
  • (B) is a perspective view showing a reference mark member
  • (C) is a perspective view showing a mark forming section of a modified example.
  • (A) is a diagram showing a reference mark of a modified example
  • (B) is a diagram showing a reference mark of another modified example.
  • FIG. 1 shows a vertically articulated robot device 4 of this embodiment.
  • the base portion 14 of the robot device 4 is installed on an installation surface 2a such as a factory floor or a surface of a work desk.
  • the origin 14S is taken at the center of the base part 14, the x-axis and y-axis are taken to pass through the origin 14S and are perpendicular to the installation surface 2a, and the Let's explain by taking the z-axis.
  • the installation surface 2a is a substantially horizontal surface, and the upper direction of the installation surface 2a (the opposite direction to the vertical direction) is the + direction of the z-axis.
  • the coordinate system (x, y, z) is referred to as a robot coordinate system.
  • the origin 14S is a calculated point that is not visible from the outside.
  • position calculation on the robot coordinate system (x, y, z) is easy.
  • the position of the origin 14S is not limited to the center of the base portion 14, but can be set to any other position depending on the configuration and application of the robot device.
  • the robot device 4 includes a robot body 6, a robot hand 26 joined to the robot body 6, a control device 10 that controls the operation of the robot body 6, and a control device 12 that controls the operation of the robot hand 26. It is equipped with
  • the robot main body section 6 includes a base section 14, a rotating section 16 connected to the center of the base section 14 so as to be rotatable around the z-axis, and a first robot arm 18A connected to the rotating section 16 so as to be displaceable in this order. , a second robot arm 18B, and a third robot arm 18C.
  • a robot hand 26 is joined to the tip 20A of the third robot arm 18C.
  • the robot hand 26 can also be called an end effector.
  • the robot hand 26 is a two-finger gripper having two movable fingers 28A and 28B.
  • the first robot arm 18A can control the rotation angle ⁇ 1 and the turning angle ⁇ 1
  • the second robot arm 18B can control the rotation angle ⁇ 2 and the turning angle ⁇ 2
  • the third robot arm 18C has a controllable rotation angle ⁇ 1 and a turning angle ⁇ 2.
  • the rotation angle ⁇ 3 and the turning angle ⁇ 3 are controllable.
  • the third robot arm 18C has a rotating section 20B that changes the rotation angle ⁇ 3 of the tip 20A, and a tilt drive section 20C that changes the turning angle ⁇ 3 of the tip 20A.
  • the rotating section 20B and the tilting drive section 20C each have a driving motor and an angle sensor that detects a rotation angle (swivel angle).
  • the other robot arms 18A, 18B have similar drives and sensors.
  • the robot device 4 has at least six angle sensors 48A, 48B, 48C, 48D, 48E, and 48F (see FIG. 3) for detecting three rotation angles and three turning angles.
  • the angle sensors 48A to 48F are also detection units.
  • the present embodiment includes three robot arms 18A to 18C, the robot device 4 may include only one robot arm 18C. In this case, it is sufficient to have only two angle sensors 48E and 48F as the detection section.
  • the coordinate calculation unit 46E calculates the coordinates of the robot hand connected to the robot arm 18C. 26 positions on the robot coordinate system consisting of positions in the x direction, y direction, and z direction, and positions (including angles) in 6 degrees of freedom including rotation angles around the 3 axes can be calculated. Using the calculation results, the position of the robot hand 26 in six degrees of freedom can be controlled.
  • the position of the robot arm 18C is the position of the robot hand 26, and the position of the robot hand 26 is the center of the design of the work (for example, the tool ball 24 described below) held by the fingers 28A and 28B. It may also be located at point 28C.
  • the positional relationship between the point of action 28C and the tip 20A of the robot arm 18C is known, and controlling the position and angle of the robot hand 26 also controls the position and angle of the tip 20A of the robot arm 18C.
  • the position of the tip 20A may be used as the position of the robot arm 18C.
  • the configuration of the robot device 4 is not limited to the configuration shown in FIG. 1 and may be arbitrary.
  • a plurality of other robot hands for example, a robot hand having four movable fingers (not shown), and a welding section for welding are mounted on a tool stand 30 in a storage section near the base section 14.
  • a robot hand 26A that can hold the tweezers 25 and open and close two movable parts of the tweezers 25, a robot hand 26B that can rotationally drive an electric drill, and the like are mounted.
  • a tool ball 24 made of a true metal sphere is placed at a predetermined position 30a of the tool stand 30. The diameter of the tool ball 24 is known, and by processing an image of the tool ball 24, the three-dimensional coordinates of the center position of the tool ball 24 can be determined. Note that as the material of the tool ball 24, ruby, ceramics, plastic, or any other material with high hardness and high reflectance can be used.
  • the tool ball 24 is gripped by the fingers 28A and 28B of the robot hand 26 when calibrating the robot coordinate system (x, y, z) as described later.
  • the tool ball 24 may be held by tweezers 25 held by another robot hand 26A. It is also possible to drive the robot arms 18A to 18C to return the robot hand 26 at the tip of the robot arm 18C to the tool stand 30, and to join other robot hands such as the robot hands 26A and 26B to the tip of the robot arm 18C. In the following description, it is assumed that the robot hand 26 is joined to the distal end portion 20A of the robot arm 18C.
  • the robot hand 26 has a joint 26a that is joined to the tip 20A of the robot arm 18C, and an actuator 26b that includes a drive unit that opens and closes the fingers 28A and 28B (see FIG. 2(A)).
  • the joint portion 26a is joined to the tip portion 20A mechanically (fixed by a screw, fixed by a movable claw mechanism, fixed by a permanent magnet, etc.) or electrically (fixed by an electromagnet, etc.). Further, the joint portion 26a is provided with connection portions such as electrical wiring, compressed air piping, and/or vacuum suction piping, etc., as necessary.
  • the joint portion 26a is provided with positioning portions (not shown) such as a plurality of convex portions or concave portions so that the position and rotation angle relative to the tip portion 20A are set to predetermined values.
  • the robot device 4 also includes an imaging device 22A that is installed, for example, on the ceiling of the room in which the robot device 4 is installed, and can image an area including the robot device 4 (or the entire movable area of the robot hand 26). ing.
  • the imaging device 22A includes, for example, a CMOS type or CCD type image sensor. Further, as an example, the imaging device 22A is a three-dimensional camera or a stereo camera that can detect the three-dimensional shape of the object or the three-dimensional position of the center of the object.
  • the imaging device 22A (such as a stereoscopic camera), a measuring device that combines a normal camera and a distance sensor that detects the distance to the object (or a Z position measurement sensor that detects the position in the Z direction) may be used. May be used. Further, the imaging device 22A may be installed at any position where the area including the robot device 4 can be imaged, for example, at the side of the room described above or at a position on the installation surface 2a. Furthermore, the three-dimensional shape and three-dimensional position of the object may be detected from images taken by a plurality of imaging devices installed at a plurality of different positions.
  • An orthogonal coordinate system (hereinafter referred to as a reference coordinate system) (X, Y, Z) consisting of mutually orthogonal X, Y, and Z axes within the field of view of the imaging device 22A is a three-dimensional grid-like reference object (an irregular Calibration is performed using the following: Also, as an example, the X, Y, and Z axes of the reference coordinate system (X, Y, Z) are arranged so that they are approximately parallel to the x, y, and z axes of the robot coordinate system (x, y, z). is set to .
  • the position of the origin 34S of the reference coordinate system (X, Y, Z) is arbitrary. Further, the reference coordinate system (X, Y, Z) as a whole may be inclined at an arbitrary angle with respect to the robot coordinate system (x, y, z). However, in the robot device 4, the influence of bending and vibration of the robot arms 18A to 18C may increase as the distance from the base part 14 increases, so the origin 34S of the reference coordinate system (X, Y, Z) is set to the base part 14. It is preferable to provide it in a close position. Furthermore, the origin 34S of the reference coordinate system (X, Y, Z) may be substantially aligned with the position of the origin 14S of the designed robot coordinate system (x, y, z).
  • the robot coordinate system (x, y, z) can also be referred to as a first coordinate system
  • the reference coordinate system (X, Y, Z) can also be referred to as a second coordinate system.
  • Data of a reference coordinate system (X, Y, Z) is stored in an image processing unit 46D (see FIG. 3A) that processes the imaging signal of the imaging device 22A.
  • FIG. 3(A) shows the control device 10 of the robot device 4 and the control device 12 of the robot hand 26 in FIG. 1.
  • the control device 10 exchanges control information (such as the type of robot hand to be used, the object (workpiece) to be processed,
  • a control information input/output unit 46B inputs and outputs position information, work start or end information, etc.), and a control information input/output unit 46B that processes the imaging signal of the imaging device 22A to determine the reference coordinate system (X, Y , Z).
  • control device 10 processes the detection results of the at least six-axis angle sensors 48A to 48F that detect the movements of the robot arms 18A to 18C, and processes the detection results of the robot hand 26 (for example, the point of action 28C) at the tip of the third robot arm 18C. ) on the robot coordinate system (x, y, z), and a nonlinear component between the position on the robot coordinate system and the position on the reference coordinate system, which will be described later.
  • It has a coordinate transformation unit 46F that obtains a transformation matrix or the like (transformation relationship), and a coordinate correction unit 46G that uses the transformation relationship to convert a target position on a reference coordinate system (described later) to a movement position on a robot coordinate system.
  • control device 10 for example, the coordinate calculation section 46E, etc.
  • the software may be recorded, for example, in a storage medium in the storage unit 46I, which will be described later.
  • control device 10 includes an arm control section 46H that controls the movements of the robot arms 18A to 18C based on the processing results of the image processing section 46D, the coordinate calculation section 46E, the coordinate correction section 46G, and the like, and a storage section 46I.
  • the arm control unit 46H sends and receives control information such as opening/closing commands for the fingers 28A and 28B and opening/closing completion commands to and from a hand control unit 50A (described later) of the control device 12 of the robot hand 26.
  • the storage unit 46I may include, for example, a storage device such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive), or a nonvolatile memory such as a USB (Universal Serial Bus) memory.
  • the storage unit 46I stores programs for the control device 10, various setting values, and the like.
  • the control device 12 of the robot hand 26 also includes a hand control section 50A that sends and receives control information to and from the arm control section 46H of the control device 10 and controls the overall operation of the robot hand 26, fingers 28A, A motor drive unit 50B that controls the operation of a motor 50D for opening and closing the fingers 28B, a gripping force detection unit 50C that detects the gripping force (reaction force from the workpiece) of the fingers 28A and 28B, programs and various setting values, etc. It has a storage unit (not shown) that stores .
  • the gripping force detection unit 50C detects the gripping force of the fingers 28A, 28B from the current flowing through the motor 50D
  • the hand control unit 50A detects the gripping force of the fingers 28A and 28B from the current flowing through the motor 50D
  • the hand control unit 50A detects the gripping force of the fingers 28A and 28B from the current flowing through the motor 50D.
  • the operations of fingers 28A and 28B are controlled so that This can prevent damage to the fingers 28A, 28B and/or the object.
  • a part of the control device 12 for example, the motor drive section 50B, etc.
  • the software may be recorded, for example, in a storage medium of a storage unit (not shown) in the control device 12.
  • a robot coordinate system (x, y, z) is set in the robot device 4, and the position and angle on the robot coordinate system of the robot hand 26 joined to the robot arm 18C are calculated from the detected values of the angle sensors 48A to 48F. be done.
  • the position and angle of the robot hand 26 are controlled by driving the robot arms 18A to 18C so that the calculated position and angle become the specified position and angle.
  • the position on the robot coordinate system may drift or fluctuate due to slight deformation and bending of the robot arms 18A to 18C due to heat generated during operation of the robot device 4, and deformation of the robot arms 18A to 18C due to changes over time. There is.
  • the position on the robot coordinate system fluctuates because the position along the three axes (x-axis, y-axis, z-axis) of the robot coordinate system changes due to tilting, expansion and contraction, etc. It also includes.
  • variations in the position of the robot hand 26 on the robot coordinate system due to heat generation of the robot device 4, changes over time, etc. will be referred to as variations due to drift.
  • the tool ball 24 is gripped by the robot hand 26 in order to calibrate the positional fluctuation of the robot hand 26 due to such drift.
  • the measurement points 39i may be arranged as a plurality of points that are not on the same plane and are not on the same straight line. Further, the number n of measurement points 39i may be an integer of at least 4 or 5 or more. However, as the number n increases, the accuracy of calibration of the positional fluctuation of the robot hand 26 improves due to the averaging effect. Note that the position of the measurement point 39i may vary three-dimensionally, and the point is that the center of the tool ball 24 (point of action 28C) only needs to remain stationary at a certain position near the measurement point 39i for a certain period of time. .
  • the coordinate calculation unit 46E calculates the robot coordinates of the center of the tool ball 24. Calculate the coordinates (xi, yi, zi) on the system. Further, during the stationary period, the image processing unit 46D processes the imaging signal of the imaging device 22A to calculate the coordinates (Xi, Yi, Zi) of the center of the tool ball 24 on the reference coordinate system. The calculated coordinates (xi, yi, zi) and coordinates (Xi, Yi, Zi) are stored in the storage unit 46I. This operation is repeated n times for all measurement points 39i.
  • the positioning accuracy of the robot hand 26 on the robot coordinate system without drift is, for example, about 1 mm.
  • the measurement accuracy of the center of the tool ball 24 on the reference coordinate system by the imaging device 22A is, for example, about 1 mm.
  • the amount of variation in the position of the robot hand 26 due to drift is, for example, about 1 to several mm. Therefore, by calibrating the robot coordinate system, the positioning accuracy of the robot hand 26 after drifting is returned to, for example, about 1 mm.
  • the three-dimensional figure on the robot coordinate system is the three-dimensional lattice 52C in FIG. 4(B) in the absence of the above-mentioned drift, and if there is a positional change of the robot hand 26 due to the above-mentioned drift, the three-dimensional lattice 52C will be moved to the reference coordinates.
  • the system becomes a deformed three-dimensional lattice (hereinafter referred to as a drift lattice) 54C. Note that for convenience of explanation, the origins of the two coordinate systems are made to coincide in FIG. 4(B).
  • the transformation matrix B is demand.
  • n positions (xi, yi, zi) on the robot coordinate system are converted to n positions (Xi, Yi, Zi) on the reference coordinate system by the transformation matrix B. )
  • the transformation matrix B can be obtained by the method of least squares.
  • the absolute value of the unit vector ⁇ ex> is The value is 1, and the vector representation is (100) t .
  • () t means the transposed matrix.
  • the vectors are ⁇ OX>, ⁇ OY>, and ⁇ OZ>, respectively.
  • the matrix A2 representing the rotation is as follows. At this time, if the rotation angles ⁇ , ⁇ , and ⁇ are minute amounts, matrix A2 can be approximated by matrix A2'.
  • Equation (2) Equation (3)
  • transformation matrix B if the component in row i and column j is Bij, component Bij is not necessarily -Bji.
  • a solid defined by three unit vectors on the robot coordinate system is a three-dimensional lattice 52C, that solid The grating 52C deforms like a drift grating 54C.
  • the transformation represented by transformation matrix B corresponds to a three-dimensional affine transformation. Transformation matrix B (affine transformation) corresponds to linear transformation including transformation from a rectangle to a parallelogram.
  • the positions X, Y, and Z of the reference coordinate system are linear functions (linear equations) of the positions x, y, and z, respectively. Furthermore, there are 12 unknowns including three deviations mx, my, mz, six axis inclinations Txy, Txz, Tyz, Tyx, Tzx, Tzy, and three shifts Sx, Sy, Sz. That is, there are 12 elements (parameters) to be determined in the transformation matrix B representing the three-dimensional affine transformation. Furthermore, when the coordinates of the tool ball 24 are detected at one measurement point 39i, a total of three equations regarding the positions X, Y, and Z are obtained.
  • the coordinate transformation section 46F of the control device 10 determines the transformation matrix B of equation (3B)
  • the coordinate transformation section 46F determines the inverse matrix B of the transformation matrix B - 1 and supplies the calculation result to the coordinate correction section 46G.
  • the coordinate correction unit 46G uses equation (4) to determine the target position (Xm,
  • the movement position (xm, ym, zm) on the robot coordinate system is calculated from the inverse matrix B -1 (Ym, Zm) and the inverse matrix B -1.
  • the arm control unit 46H drives the robot arms 18A to 18C so that the coordinates of the robot hand 26 calculated by the coordinate calculation unit 46E become the movement position (xm, ym, zm), so that the robot hand 26
  • the points of action 28C of the fingers 28A, 28B can be moved to the target position (Xm, Ym, Zm) on the reference coordinate system.
  • this embodiment also uses a transformation matrix H3 in which the (000) portion 3Ba of the lowest row in the transformation matrix B (affine transformation) of equation (3B) has a value other than 0. Therefore, the coordinates (X, Y, Z) of the reference coordinate system are converted into intermediate coordinates (X', Y', Z', W') as shown in the following equation (5A). At this time, the relationship between the intermediate coordinates (X', Y', Z', W') and the position (x, y, z) of the robot coordinate system is as shown in equation (5B).
  • the transformation represented by the transformation matrix H3 is a three-dimensional homography transformation or a projective transformation.
  • affine transformation linear transformation
  • FIG. shows that there are 15 elements (parameters) to be determined in the transformation matrix H3 representing three-dimensional homography transformation.
  • three-dimensional homography transformation is considered to represent a transformation in which the three-dimensional lattice 52E in FIG. 5(A) becomes a drift lattice 54E in FIG. 5(B), as in the case of three-point perspective drawing, as an example. It is also possible. Eight vertices AP1 to AP8 of three-dimensional lattice 52E are converted to eight vertices BP1 to BP8 of drift lattice 54E, respectively.
  • drift grating 54E four sides around an axis parallel to the x-axis converge to a vanishing point 55A on the x-axis, and four sides around an axis parallel to the y-axis converge to a vanishing point 55B on the y-axis.
  • the four sides around the axis parallel to the z-axis converge to a vanishing point 55C on the z-axis.
  • the positions of the vanishing points 55A to 55C can be moved to positions other than the x-axis, y-axis, and z-axis depending on the values of elements h13, h14, and h15 in the fourth row of the transformation matrix H3.
  • equation (5J) is rewritten using matrix E with 3n rows and 15 columns
  • equation (5K) is obtained.
  • the coordinate transformation unit 46F of the control device 10 calculates the inverse matrix E -1 of the matrix E in equation (5K), and multiplies both sides of equation (5K) by the inverse matrix E -1 to obtain the result as shown in equation (6A). Then, the values of the 15 coefficients h1 to h15 of the transformation matrix H3 in equation (5C) can be determined. As a result, the transformation matrix H3 shown in equation (6B) has been obtained.
  • the integer n is 5 (the number of measurement points 39i is 5)
  • the matrix E becomes a square matrix with 15 rows and 15 columns.
  • the inverse matrix of the matrix E can be easily calculated, and the 15 The values of the coefficients can be easily determined.
  • the integer n is 5 or more or at least 5.
  • E t is the transposed matrix of E.
  • E -1 (E t ⁇ E) -1 ⁇ E t ... (6C)
  • the coordinate transformation section 46F calculates an inverse matrix H3 -1 of the transformation matrix H3, and supplies the calculation result to the coordinate correction section 46G. After that, when the target position (Xm, Ym, Zm) of the robot arm 18C (robot hand 26) on the reference coordinate system is set, the coordinate correction unit 46G sets the expanded target position (Xm, Ym, Zm, 1).
  • the coordinate correction unit 46G converts the intermediate coordinates into an actual movement position (xm, ym, zm) on the robot coordinate system using the following equation (6G).
  • the arm control unit 46H drives the robot arms 18A to 18C so that the coordinates of the robot hand 26 calculated by the coordinate calculation unit 46E become the movement position (xm, ym, zm), so that the robot hand 26
  • the points of action 28C of the fingers 28A, 28B can be moved to the target position (Xm, Ym, Zm) on the reference coordinate system.
  • the position of the robot hand 26 can be corrected while correcting all linear errors and weak nonlinear errors such as deformation of a quadrangle into a trapezoid. You can move accurately to the target position.
  • This calibration may be performed, for example, when the robot device 4 starts operating. Further, the calibration may be performed at the time of setup when the robot device 4 is installed in a factory or the like. Further, the calibration may be performed periodically, for example, during maintenance of the robot device 4 or once a week.
  • the coordinate calculation unit 46E calculates the position of the robot hand 26 on the robot coordinate system (x, y, z) using the detected values of the six angle sensors 48A to 48F. This position calculation of the robot hand 26 is continuously repeated at a predetermined sampling rate. Robot arms 18A to 18C are driven based on this calculated position. First, in step 132 of FIG. 6, the robot arms 18A to 18C are driven to move the robot hand 26 to the tool stand 30 (storage section) side, and as shown in FIG. Grip the tool ball 24. By using the detection values of the six angle sensors 48A to 48F, it is possible to calculate not only the three-dimensional position of the robot hand 26 but also the angles in three directions. In this embodiment, when moving the tool ball 24, the angles in three directions of the robot hand 26 (the tip 20A of the robot arm 18C) are approximately constant (for example, the tool ball 24 can be imaged well with the imaging device 22A). (possible angle).
  • step 136 the coordinate calculation unit 46E calculates the position (xi, yi, zi) of the center of the tool ball 24 (point of action 28C) on the robot coordinate system.
  • step 138 the image processing unit 46D processes the imaging signal of the imaging device 22A to detect the position (Xi, Yi, Zi) of the center of the tool ball 24 on the reference coordinate system.
  • step 140 it is determined whether the tool ball 24 is to be moved to another measurement point. If there are remaining measurement points to be moved, the operations of steps 134 to 138 are repeated until the tool ball 24 is moved to n measurement points 39i.
  • the coordinate transformation unit 46F uses the n sets of measured positions to convert the transformation matrix H3 corresponding to the homography transformation of equation (5C) and its Find the inverse matrix. Further, in step 144, the tool ball 24 held by the robot hand 26 is returned to the position 30a (storage section) of the tool stand 30.
  • the operator may previously store a set of action points 28C of the robot hand 26 on the reference coordinate system (X, Y, Z) in the storage unit 46I via the control information input/output unit 46B and the main control unit 46A.
  • the operation moves to step 146, and the coordinate correction section 46G reads out the target position (Xm, Ym, Zm) of the robot hand 26 on the reference coordinate system from the storage section 46I.
  • the coordinate correction unit 46G calculates the intermediate coordinates (x'm, y'm, z 'm, w'm).
  • the moving position (xm, ym, zm) of the robot hand 26 on the robot coordinate system is calculated using the intermediate coordinates and the above-mentioned equation (6G).
  • the movement position is supplied to the arm control section 46H.
  • step 150 the robot arms 18A to 18C are driven so that the position of the robot hand 26 calculated by the coordinate calculation unit 46E becomes the movement position (drive position) (xm, ym, zm).
  • the robot hand 26 reaches its movement position (xm, ym, zm)
  • the arm control section 46H outputs a grasping command to the hand control section 50A of the robot hand 26 under the control of the main control section 46A, for example.
  • the fingers 28A and 28B of the robot hand 26 grip the workpiece.
  • the robot hand 26 moves the work to, for example, a destination and removes the work from the fingers 28A, 28B. Then, in step 152, when there is no next target position, the operation by the robot hand 26 ends.
  • the tool ball 24 held by the robot hand 26 is moved to the vicinity of a plurality of measurement points 39i and the positions on the robot coordinate system and the reference coordinate system are detected, thereby performing homography transformation.
  • a transformation matrix H3 is obtained, and the position of the robot hand 26 (robot arm 18C) on the robot coordinate system is calibrated using this transformation matrix H3. Therefore, even if the position on the robot coordinate system fluctuates due to drift, etc., the fluctuations can be corrected while correcting all linear error components and weak non-linear error components (components including errors in which rectangles become trapezoids). Calibration can be performed easily and efficiently.
  • the origin 14S of the robot coordinate system (x, y, z) is located at a position that cannot be seen from the outside
  • the origin 34S of the reference coordinate system (X, Y, Z) can be set at a position that is visible from the outside. Therefore, it is easy to specify the target position on the reference coordinate system (X, Y, Z), and the work of the robot device 4 can be performed accurately and efficiently.
  • the robot device 4 of the present embodiment has the tool ball 24 (hereinafter also referred to as a specific section), and moves the tool ball 24 to a plurality of positions on the three-dimensional robot coordinate system (first coordinate system).
  • An imaging device 22A and an image processing unit 46D (measurement a coordinate transformation unit 46F that calculates a transformation matrix H3 (transformation relationship) including a nonlinear component between the position of the tool ball 24 on the robot coordinate system and the position on the reference coordinate system;
  • the robot arm controller 46H converts the specified target position into a movement position on the robot coordinate system using a conversion matrix H3, and controls the robot arm 18C based on the converted position.
  • the method for controlling the robot device 4 includes steps 134 and 136 of moving the tool ball 24 (specific portion) possessed by the robot arm 18C to a plurality of positions on the three-dimensional robot coordinate system using the robot arm 18C; Step 138 of measuring the positions of the tool ball 24 at a plurality of positions on the three-dimensional reference coordinate system, and non-linearity between the position of the tool ball 24 on the robot coordinate system and the position on the reference coordinate system. Step 142 of obtaining a transformation matrix H3 including the components, converting the specified position on the reference coordinate system to a position on the robot coordinate system using the transformation matrix H3, and converting the robot arm 18C based on the transformed position. and steps 148 and 150 for controlling.
  • the tool ball 24 held by the robot hand 26 is moved to a plurality of positions, and a transformation matrix is created between the position of the tool ball 24 on the robot coordinate system and the position on the reference coordinate system. I'm looking for H3. Therefore, even if the position on the robot coordinate system fluctuates due to drift, linear error components and weak nonlinear error components can be corrected to quickly calibrate the position of the robot hand 26 on the robot coordinate system. And it can be done easily. Then, by converting the target position specified on the reference coordinate system into a movement position on the robot coordinate system using the transformation matrix, the robot hand 26 (robot arm 18C) is accurately positioned at the target position. and can be moved quickly. Furthermore, since the position of the robot hand 26 is controlled, the point of action of the robot hand 26 can be moved with high precision to the positions of objects (workpieces) of various shapes.
  • the above-described embodiment can be modified as follows.
  • the transformation matrix H3 of equation (5B) that transforms the position of the robot coordinate system (x, y, z) into intermediate coordinates (X', Y', Z', W') is calculated.
  • the position on the reference coordinate system (X, Y, Z) can be changed to the position on the robot coordinate system (x, y, z) via intermediate coordinates (X', Y', Z', W').
  • a transformation matrix HA3 that transforms into .
  • the tool ball 24 gripped by the robot hand 26 is used as the specific part.
  • an identification code including location information such as the April tag shown in FIG. 13(A) or the QR code (registered trademark) (two-dimensional barcode) shown in FIG. 13(B) is used. You may use the member provided with this. Alternatively, the identification code may be formed on a part of the robot hand 26 by printing or the like. It is preferable to add information on the two-dimensional or three-dimensional position of the code or the amount of positional deviation from the designed position to the identification code.
  • the April tag is a visual mark (marker) for an application that detects the position and orientation of a three-dimensional object.
  • the April tag is also an example of an AR (Augmented Reality) marker, that is, an augmented reality marker.
  • FIG. 7(A) shows a robot device 4A of this embodiment.
  • an imaging device 22B and an illumination device are attached to the distal end portion 20A of the robot arm 18C of the robot device 4A.
  • the imaging device 22B has an objective lens 22Ba, and the tips of the fingers 28A, 28B of the robot hand 26 are contained within the field of view of the imaging device 22B.
  • the imaging device 22B may be provided at a position other than the tip portion 20A, for example, on one surface of the robot hand 26.
  • an imaging device or the like capable of observing the entire operation of the robot device 4A, other than the imaging device 22B, is installed at the measurement position on the installation surface 2a, or on the wall or ceiling of the room where the robot device 4A is installed. It's okay.
  • an arbitrary sensor such as a proximity sensor different from the imaging device can be used instead of the imaging device 22B. .
  • a reference mark member 32 (reference member) used when calibrating the position on the robot coordinate system (x, y, z) is installed on the installation surface 2a near the base portion 14 of the robot device 4A.
  • the reference mark member 32 includes a flat plate portion 34 and a plurality of mark forming surfaces 40As, 40Es, and 40Is formed in a matrix on the flat plate portion 34 and having different heights (positions in the z direction) (nine in FIG. 1). ) and a plurality of reference marks M formed on the plurality of mark formation surfaces.
  • the reference mark M is a cross-shaped pattern, but the shape of the pattern is arbitrary.
  • the flat plate part 34 is placed on the installation surface 2a via three height adjustment screws 38A, 38B, and 38C (38B is not shown), and the portions where the screws 38A, 38B, and 38C are provided are respectively It is fixed to the installation surface 2a with pressers 36A, 36B, 36C and bolts B. That is, the flat plate part 34 (reference mark member 32) is removably installed on the installation surface 2a, and the heights of the screws 38A, 38B, and 38C are adjusted so that, for example, the surface of the flat plate part 34 is parallel to the horizontal plane. .
  • the center of the reference mark M formed on the mark forming surface 40As near the base part 14 is set as the origin 34S, and the X-axis and Y-axis (FIG. 7(C) )) and the Z axis passing through the origin 34S and perpendicular to the surface of the flat plate part 34, a reference coordinate system (X, Y, Z) (second coordinate system) defining the position of the reference mark M is constructed.
  • a plurality of mark forming surfaces 40As, 40Is, etc. are arranged at predetermined intervals in the X and Y directions, respectively, and the X and Y axes are in the robot coordinate system (x, y, z) (first coordinate system).
  • the reference mark member 32 is fixed to the installation surface 2a so as to be substantially parallel to the x-axis and y-axis of the reference mark member 32.
  • the position of the origin 34S of the reference coordinate system of the reference mark member 32 is arbitrary.
  • the origin 34S of the reference coordinate system may be made to substantially match the position of the origin 14S of the designed robot coordinate system.
  • FIG. 7(A) shows a state in which the reference mark M on the mark forming surface 40As of the reference mark member 32 is detected by the imaging device 22B provided on the robot arm 18C, and FIG. 7(C) shows the reference mark member 32 in FIG. 7(A).
  • prismatic mark forming parts 40A..., 40E..., 40I with a square cross section are formed on the surface of the flat plate part 34 at predetermined intervals in the X and Y directions, and each of the mark forming parts 40A to 40I is A reference mark M is formed on each of the mark forming surfaces 40As to 40Is on the front surface.
  • the flat plate portion 34 and the mark forming portions 40A to 40I are integrally formed from metal. Note that the material for the flat plate part 34 and the mark forming parts 40A to 40I is arbitrary, and the flat plate part 34 and the mark forming parts 40A to 40I are manufactured separately, and the mark forming parts 40A to 40I are screwed to the flat plate part 34, etc. It may be fixed with Further, the number of mark forming portions 40A to 40I may be any number greater than or equal to four, and the arrangement of mark forming portions 40A to 40I may be arbitrary.
  • the height of the mark forming surfaces of the mark forming parts 40A, 40F, 40H is low
  • the height of the mark forming surfaces of the mark forming parts 40B, 40D, 40I is medium
  • the height of the mark forming surfaces of the mark forming parts 40C, 40E, 40G is The height of the mark forming surface is set high.
  • the flat plate part 34 and mark forming parts 40A to 40I are formed using a cutting tool on a machining center or the like that can three-dimensionally position the workpiece, and then a small drill is used to form the flat plate part 34 and mark forming parts 40A to 40I.
  • the concave portions of the reference marks M may be formed on the mark forming surfaces 40As to 40Is using a method such as the above. Furthermore, instead of forming a recess for the reference mark M, a sticker or the like on which the reference mark M is displayed may be attached to the mark forming surfaces 40As to 40Is.
  • the X-axis of the reference coordinate system is set to pass through the center of the reference mark M of the mark forming parts 40A and 40G in a plan view
  • the X axis of the reference coordinate system is set to pass through the center of the reference mark M of the mark forming part 40A and the mark forming part 40C in a plan view
  • the Y-axis of the reference coordinate system is set to pass approximately through the center of the reference mark M, and the intersection of the X-axis and the Y-axis is the origin 34S.
  • the arrangement and number of reference marks M are arbitrary under the condition that four or five reference marks M that are not on the same plane are included.
  • the height distribution of the mark forming portions 40A to 40I is arbitrary under the condition that at least two mark forming surfaces (for example, mark forming surfaces 40As and 40Es) having different heights are included.
  • a proximity sensor 44 is attached to the +Y direction surface of the robot hand 26.
  • the size of the reference mark M formation surface (for example, mark formation surface 40As) is such that when the field of view of the imaging device 22B is actually on the mark formation surface 40As, the light beam from the proximity sensor 44 is applied to the same mark formation surface 40As. It is also set to be irradiated.
  • the proximity sensor 44 includes an irradiation section that irradiates the mark forming surface 40As with a light beam LB, and a light receiving section that receives reflected light from the mark forming surface 40As and outputs a detection signal S1. and has.
  • the mark forming surface 40As since the detection signal S1 becomes maximum (or an intermediate value between the minimum value and the maximum value, etc.) when the mark forming surface 40As matches the preset focusing plane 44P, the mark forming surface 40As It can be detected that the focal plane 44P coincides with the focal plane 44P within a predetermined error range. Further, the offset ⁇ z1 in the z direction between the focusing plane 44P and the point of action 28C of the fingers 28A, 28B is measured and stored in advance.
  • the robot After detecting that the mark forming surface 40As matches the focusing plane 44P using the detection signal S1 of the proximity sensor 44, the robot The z coordinate (position in the z direction) z1 when the point of action 28C of the hand 26 contacts the mark forming surface 40As can be determined.
  • the field of view 22F of the imaging device 22B includes images of the tips of the fingers 28A and 28B and the reference mark. It contains a statue of M.
  • the amounts of positional deviation ⁇ x1 and ⁇ y1 in the x direction and y direction of the center of the reference mark M with respect to the point of action 28C can be determined.
  • the x The coordinate x1 and the y-coordinate y1 can be determined.
  • the proximity sensor 44 may be provided at a position other than the robot hand 26, for example, at the tip 20A of the robot arm 18C.
  • the distance to the target surface can be measured using any position detection sensor that can detect the surface position of the mark forming surface 40As, such as a TOF (Time of Flight) sensor, a laser sensor, or an optical fiber.
  • a sensor, a capacitive sensor, etc. can be used.
  • a stereo camera is used to measure the amount of positional deviation in three dimensions (x direction, y direction, z direction) with respect to the point of action 28C at the center of the reference mark M. May be detected.
  • the control device of the robot device 4A in the control device 10 of FIG.
  • the control device of the robot device 4A includes a controller that processes the detection signal S1 of the proximity sensor 44 to detect whether the surface to be inspected matches the focal plane 44P.
  • a position detection section 46C is added.
  • the other configurations of the mechanical section and control device of the robot device 4A are the same as those of the robot device 4 of the first embodiment.
  • step 102 of FIG. 9(A) the main body portion of the reference mark member 32 (the flat plate portion 34 and mark forming portions 40A to 40I in FIG. 7(C)) is formed by cutting or the like. Further, in step 104, reference marks M are formed on the surfaces of the mark forming portions 40A to 40I (mark forming surfaces 40As to 40Is) of the main body by drilling or the like. As a result, the reference mark member 32 is completed.
  • the three-dimensional coordinates of the centers of all the reference marks M on the mark forming surfaces 40As to 40Is are measured using, for example, a three-dimensional measuring machine.
  • a so-called touch probe is used as the probe of the three-dimensional measuring machine, and the three-dimensional coordinates are determined when the touch probe is brought into contact with the recess at the center of the reference mark M.
  • the sensor for detecting the reference mark M is not limited to a touch probe, and for example, a sensor such as an imaging device that optically detects the reference mark M can also be used.
  • the heights of the plurality of mark forming portions 40A to 40I can be processed with high precision. Therefore, the height of each reference mark M may be the difference between the height of the mark forming part 40A and the processed height of the other mark forming parts 40B to 40I.
  • the center of the reference mark M of the mark forming part 40A at the end of the reference mark member 32 is set as the origin 34S, and the mark forming parts 40A and 40G at both ends in plan view are
  • the X-axis is set to pass through the center of the reference mark M, and is perpendicular to the X-axis, passing through the center of the reference mark M of the mark forming section 40A and the almost center of the reference mark M of the mark forming section 40C in plan view.
  • the center of each reference mark M on the reference coordinate system (X, Y, Z) is location is required.
  • the determined positions of all the reference marks M are stored in the storage section 46I from the calculation section of the three-dimensional measuring machine via the control information input/output section 46B of the control device 10.
  • step 108 the reference mark member 32 is fixed to the installation surface 2a on which the robot device 4A is installed using the pressers 36A, 36B, 36C and the bolt B, as shown in FIG. 7(A).
  • the X-axis and Y-axis of the reference coordinate system (X, Y, Z) may be set to be approximately parallel to the x-axis and y-axis of the robot coordinate system (x, y, z), respectively. preferable.
  • the approximate offsets in the x, y, and z directions of the origin of the reference coordinate system (X, Y, Z) with respect to the origin of the robot coordinate system (x, y, z) are determined, and these offsets are stored in memory. It is stored in the section 46I.
  • the coordinate calculation unit 46E uses the detected values of the six angle sensors 48A to 48F to calculate the robot hand on the robot coordinate system (x, y, z) at a predetermined sampling rate. Calculate the position of 26.
  • the angles in three directions of the robot hand 26 are set to constant angles.
  • the robot hand 26 is set to be parallel to the z-axis and facing the vertical direction (-z direction), and the rotation angle ⁇ 3 of the tip section 20A is a constant value (for example, 0 degrees). It may be set so that
  • step 114 the robot arms 18A to 18C are moved so that the position of the robot hand 26 calculated by the coordinate calculation unit 46E approaches above the origin 34S (mark forming surface 40As) of the reference coordinate system of the reference mark member 32.
  • step 116 after the image of the reference mark M on the mark forming surface 40As enters the field of view 22F of the imaging device 22B, the detection signal of the proximity sensor 44 is used to make the mark forming surface 40As match the focusing surface 44P. Adjust the position of the robot hand 26 in the z direction so that In this state, the imaging device 22B detects the amount of two-dimensional positional deviation between the point of action 28C of the fingers 28A, 28B and the center of the reference mark M.
  • step 118 by correcting the position of the robot hand 26 calculated by the coordinate calculation unit 46E by the amount of positional deviation and the above-mentioned offset ⁇ z1, the center of the reference mark M is adjusted to the point of action 28C of the fingers 28A, 28B. It is possible to find the position (x1, y1, z1) of the robot coordinate system when it matches . The determined position is supplied to the coordinate conversion section 46F. At this time, the known position (X1, Y1, Z1) (here, (0, 0, 0)) of the reference mark M on the reference coordinate system is also supplied from the storage unit 46I to the coordinate conversion unit 46F.
  • next step 120 it is determined whether another reference mark M is detected.
  • the operations of steps 116 to 118 are repeated until n reference marks M are detected, and the robot hand 26 when detecting the i-th reference mark M
  • the determined position and the known position (Xi, Yi, Zi) of the n-th reference mark M on the reference coordinate system are supplied to the coordinate conversion section 46F.
  • the reference mark member 32 may be removed from the installation surface 2a in FIG. 1.
  • a tool may be installed on the installation surface 2a on which marks are formed so that the origin 34S of the reference coordinate system and the directions of the X-axis and Y-axis before removal can be recognized. From now on, the tool can be used to set the target position on the reference coordinate system, which will be described later. In other words, the robot device 4A does not necessarily need to include the reference mark member 32.
  • the coordinate transformation section 46F obtains an inverse matrix B -1 of the transformation matrix B and supplies it to the coordinate correction section 46G.
  • the coordinate correction unit 46G substitutes the target position into the right side of equation (4) and multiplies it by the inverse matrix, thereby calculating the movement position (xm, ym, zm) of the robot hand 26 on the robot coordinate system. ) is calculated. The position is supplied to the arm control section 46H.
  • step 128 the robot arms 18A to 18C are driven so that the position of the robot hand 26 calculated by the coordinate calculation unit 46E becomes its movement position (drive position) (xm, ym, zm).
  • drive position xm, ym, zm
  • the robot hand 26 reaches its movement position (xm, ym, zm)
  • the fingers 28A and 28B of the robot hand 26 grip the workpiece.
  • the robot hand 26 moves the work to, for example, a destination and removes the work from the fingers 28A, 28B.
  • step 130 the operation by the robot hand 26 ends when there is no next target position.
  • the robot hand 26 (robot arm 18C)
  • the linear error can be calibrated using the transformation matrix B (affine transformation) of the position on the robot coordinate system (x, y, z).
  • the transformation matrix H3 of the homography transformation of equation (5B) is obtained, and the inverse matrix of this transformation matrix H3 and the intermediate coordinates (X', Y' , Z', W'), the movement position (xm, ym, zm) on the robot coordinate system may be determined.
  • this movement position (xm, ym, zm) By driving the robot arms 18A to 18C using this movement position (xm, ym, zm), errors including linear errors and weak nonlinear errors are corrected, and fluctuations in the position of the robot hand 26 due to drift are calibrated. This can be done with high precision.
  • the robot device 4A including the robot arm 18C of the present embodiment uses a plurality of angle sensors 48A to 48F (detection units) that detect the displacement of the robot arm 18C and the detection results of the angle sensors 48A to 48F.
  • a coordinate calculation unit 46E calculation unit that calculates the position of the robot arm 18C (or the robot hand 26 joined to the robot arm 18C) on a three-dimensional robot coordinate system (first coordinate system), and a reference mark member 32 ( an imaging device that is capable of sequentially detecting a plurality of reference marks M provided on a reference member (reference member) and each having a defined position on a three-dimensional reference coordinate system (second coordinate system), and that is supported by a robot arm 18C; 22B (mark detection unit) and the position between the position of the robot arm 18C on the robot coordinate system and the position of the reference mark M on the reference coordinate system when a plurality of reference marks M are detected by the imaging device 22B.
  • a coordinate transformation unit 46F that calculates a transformation matrix H3 (transformation relationship) including a nonlinear component, and converts the target position specified on the reference coordinate system to the position of the robot arm 18C on the robot coordinate system using the transformation relationship.
  • the robot arm 18C includes a coordinate correction section 46G and an arm control section (control section) that control the position of the robot arm 18C.
  • the method for controlling the robot device 4A including the robot arm 18C of this embodiment is to calculate the detection results of the plurality of angle sensors 48A to 48F on the robot coordinate system (x, y, z) of the robot arm 18C.
  • step 116 and a nonlinear component between the position of the robot arm 18C on the robot coordinate system when detecting the reference mark M and the position of the detected reference mark M on the reference coordinate system.
  • Steps 124, 126, and 128 are included.
  • a plurality of reference marks M on the reference mark member 32 are detected, and the position of the robot arm 18C on the robot coordinate system and the position of the detected reference mark M on the reference coordinate system are The transformation matrix H3 (transformation relationship) between is calculated. Therefore, even if the position of the robot hand 26 (robot arm 18C) on the robot coordinate system fluctuates due to drift, errors including linear errors and weak nonlinear errors in the position of the robot hand 26 on the robot coordinate system are eliminated. It is possible to perform correction and calibration easily and with high accuracy. Then, by converting the target position specified on the reference coordinate system to the position of the robot hand 26 on the robot coordinate system using the transformation relationship, the robot hand 26 (robot arm 18C) is moved to the target position. Able to move accurately and quickly. Furthermore, since the position of the robot hand 26 is controlled, the point of action of the robot hand 26 can be moved with high precision to the positions of objects (workpieces) of various shapes.
  • the above-described embodiment can be modified as follows.
  • the position on the reference coordinate system (X, Y, Z) is determined by detecting a plurality of reference marks M.
  • a transformation matrix C for transforming the position on the robot coordinate system (x, y, z) may be obtained.
  • the transformation matrix C can be used as is, so calculation is easy.
  • a plurality of reference marks M including four or five reference marks M that are not on the same plane are detected.
  • a wide mark perpendicular to the z axis is used as the reference mark member 32.
  • a reference mark member may be used that has a mark forming surface and on which a plurality of reference marks including three reference marks that are not on the same straight line are formed.
  • the transformation matrix B of the affine transformation of equation (3B) that transforms the position of the robot coordinate system to the position of the reference coordinate system is determined, and this transformation matrix B is used to calibrate the robot coordinate system.
  • this transformation matrix B is used to calibrate the robot coordinate system.
  • the nonlinear component may be further corrected.
  • a nonlinear error caused by a drift peculiar to three dimensions as shown in Fig. 10(A)
  • the robot coordinate system (x, y, z) there is a two-dimensional error around the z-axis in proportion to the position in the z-direction.
  • equation (8A) is a relational expression when the origin 34S of the reference coordinate system is shifted by (Sx, Sy, Sz) to virtually match the origin 34S with the origin 14S of the robot coordinate system.
  • the inverse matrix D ⁇ 1 of the matrix D in equation (8A) can be easily written as the above-mentioned equation (8B) in a simple case where the matrix of the trigonometric function depends only on the position z. Note that the position Z may be approximately used as the position z in equation (8B). However, in reality, the inverse matrix of matrix D may be complicated. In that case, you may do as follows.
  • the rotation of the robot coordinate system may be around any axis.
  • a drift solid 54D similar to the drift solid 54C in FIG.
  • an axis X' is determined as an axis passing through the center of rotation of the two opposing surfaces 54Da and 54Db.
  • axes Y' and Z' passing through the centers of rotation of the other two sets of two surfaces are also determined.
  • the positions in the directions along the axes X', Y', and Z' are taken as positions X', Y', and Z', and the rotation angles in the directions along the axes X', Y', and Z' are aX', As bY' and cZ', coefficients a, b, and c may be determined by the method of least squares or the like.
  • the error specific to three dimensions is due to the distance from the origin 14S of the robot coordinate system (x, y, z) to the robot hand 26 (the length to the tips of the robot arms 18A to 18C).
  • the robot arms 18A to 18C are designed to be thick so that the tip portions do not bend due to their own weight or the weight of the work to be gripped. Even so, if the distance L from the origin 14S increases due to drift due to heat generation, changes over time, etc., the tips of the robot arms 18A to 18C may be bent.
  • FIG. 8 if the deflection of the robot hand 26 in the ⁇ z direction when the distance L1 from the origin 14S is dz1, then the deflection dz2 of the robot hand 26 when the distance L2 is longer than the distance L1 becomes large.
  • the coefficient si is obtained by applying the difference between the position z of the robot hand 26 when detecting the plurality of reference marks M of the reference mark member 32 and the known position Z of the reference mark M to equation (11). be able to.
  • FIG. 12(A) shows the mark forming part 60 which is a component of the reference mark member 32A of this embodiment
  • FIG. 12(B) shows the reference mark member 32A.
  • the reference mark member 32A has a plurality of (six in FIG. 12(B)) mark forming portions 60 fixed to the surface of a rectangular flat surface plate 62 with good flatness. be. Note that the number and arrangement of the mark forming sections 60 are arbitrary. Hereinafter, description will be given assuming that the short side direction of the surface plate 62 is the X direction, and the long side direction is the Y direction.
  • a large number of screw holes 64 are formed on the surface of the surface plate 62 at predetermined intervals in the X direction and at intervals LY (about 1.5 to 2 times the interval in the X direction) in the Y direction.
  • the intervals between the screw holes 64 in the X direction and the Y direction are machined (set) with high precision.
  • a so-called optical surface plate may be used as the surface plate 62.
  • the reference mark member when installing the reference mark member on a robot device in which the movable range of the robot arm 18C (robot hand 26) is known, such as the robot device 4 in FIG. 1, for example, it covers a predetermined area within the movable range of the robot arm.
  • a plate-like member having a certain size may be prepared.
  • screw holes may be provided at a plurality of positions while maintaining positional accuracy on the surface of the flat member, and the flat member with the screw holes may be installed on the installation surface of the robot device, for example, as a robot stand. .
  • the mark forming part 60 has a step-like shape, and bolts 66 which can be screwed into the screw holes 64 are arranged at both ends 60a and 60d of the same height in the shape of a flat plate with a low length in the longitudinal direction. Circular openings 60c and 60d are formed through which the openings 60c and 60d can be inserted. Further, between both ends 60a and 60d of the mark forming section 60, a mark forming surface 60e with a low step, a mark forming surface 60f with a medium step, and a mark forming surface 60g with a high step are formed.
  • Each of the mark forming surfaces 60e to 60g is a plane parallel to the bottom surface of the mark forming section 60.
  • the sizes of the mark forming surfaces 60e to 60g and the heights of the mark forming portions 60 from the bottom surface are predefined and stored.
  • a reference mark M is formed at the center of each of the three mark forming surfaces 60e to 60g.
  • the surface plate 62 and the mark forming section 60 are made of metal, they may be made of other materials.
  • the mark forming portion 60 and the reference mark M can be processed with high precision using, for example, a milling machine.
  • the reference mark M provided on the mark forming section 60 may also be one with a sticker attached thereto, for example.
  • FIG. 12(B) as an example of the surface of the surface plate 62, six mark forming portions 60 are fixed to two screw holes 64 at six locations via two bolts 66, respectively. Since three reference marks M are formed on one mark forming portion 60, a total of 18 reference marks M are formed on the reference mark member 32A.
  • the accuracy in the X and Y directions when fixing the mark forming part 60 to the surface of the surface plate 62 is, for example, about 0.1 mm or less, and the processing accuracy of the shape of the mark forming part 60 is, for example, about 0.01 mm or less.
  • the six mark forming parts 60 are Fixed. If necessary, the corners of the surface plate 62 may be fixed with pressers 36A to 36C shown in FIG. 7(A).
  • the center of the reference mark M on the mark forming surface 60e of the mark forming part 60 at the end of the reference mark member 32A is set as the origin 34S, and the axes passing through the origin 34S and parallel to the X direction and the Y direction are the X and Y axes.
  • a reference coordinate system (X, Y, Z) is constructed.
  • the positions (X, Y, Z) of all the reference marks M of the reference mark member 32A on the reference coordinate system (X, Y, Z) are known with an accuracy of about 0.1 mm or less.
  • Information on the positions of all the reference marks M on the coordinate system (X, Y, Z) of the reference mark member 32A is stored in the storage section 46I in FIG. 3.
  • the reference marks M detected by the reference mark member 32A may be at least four reference marks M that are not on the same plane.
  • the robot device 4A can calibrate positional fluctuations on the robot coordinate system (x, y, z) due to drift. can be easily done. Further, since the position of the reference mark M of the reference mark member 32A of this embodiment is determined almost solely by the processing accuracy, a measuring device for measuring the position of the reference mark M is not required. Furthermore, in this embodiment, the arrangement and number of mark forming parts 60 on the surface plate 62 can be easily changed as desired. Therefore, it is possible to easily calibrate position fluctuations under various conditions, for example by making it possible to detect with high precision even nonlinear errors in the coordinate system that can be calculated as in equations (9A) to (9C) above. Can be done.
  • screw holes 64 are formed on the surface of the surface plate 62 at predetermined intervals in the orthogonal X and Y directions.
  • screw holes 64 may be formed in a plurality of predetermined positions on the surface of the surface plate 62, and a plurality of mark forming parts 60 may be fixed to the plurality of screw holes 64.
  • a reference mark MY may be formed respectively.
  • the shape of the fiducial mark MY may be the same as that of the fiducial mark M, or may be different from the shape of the fiducial mark M.
  • the robot arm 18C (robot hand 26) of the robot device 4 in FIG. may be set parallel to the Y-axis toward the +Y direction, and the rotation angle of the tip portion 20A may be set to 0 degrees or the like.
  • a cross-shaped reference mark M is used as the reference mark.
  • Any shape of mark can be used as the reference mark.
  • an identification code such as the April Tag shown in Figure 13(A) or the QR code (registered trademark) (two-dimensional barcode) shown in Figure 13(B). You can also do it. It is preferable to add information on the two-dimensional or three-dimensional position of the reference mark or the amount of positional deviation from the designed position to the identification code.
  • the robot devices 4 and 4A of the above-described embodiments are of the vertical multi-joint type.
  • the robot devices include a horizontal multi-joint type (SCARA type) robot device, a parallel link type robot device, an orthogonal type robot device, or various robot devices equipped with any other joint structure (for example, an assembly robot
  • SCARA type horizontal multi-joint type
  • a parallel link type robot device for example, an orthogonal type robot
  • various robot devices equipped with any other joint structure for example, an assembly robot
  • robots e.g., human-cooperative robots, etc.
  • a robot device which includes a robot arm that has a specific part and moves the specific part to a plurality of positions on a three-dimensional first coordinate system;
  • a measuring device that measures each position on the second coordinate system, and a transformation relationship including a nonlinear component between the position of the specific part on the first coordinate system and the position on the second coordinate system.
  • a conversion unit and control for converting a position specified on the second coordinate system to a position on the first coordinate system using the conversion relationship, and controlling the robot arm based on the converted position.
  • a robot device comprising: 2) The robot arm includes a plurality of detection units that detect displacement information of a plurality of parts of the robot arm, and the three-dimensional first coordinate system is a coordinate system determined using the detection results of the plurality of detection units.
  • Robotic device described in. 3 The robot device according to 1 or 2, wherein the transformation relationship including the nonlinear component includes a three-dimensional homography transformation. 4) Assuming that the number of the plurality of positions of the specific unit on the first coordinate system is n (n is an integer of 5 or more), the transformation relationship is 1 to 3, including a matrix of 3n rows and 15 columns. The robot device according to any one of the items.
  • the robot device according to any one of 1 to 4, wherein the transformation relationship including the nonlinear component includes a three-dimensional affine transformation and a predetermined nonlinear transformation. 6) The robot device according to 5, wherein the predetermined nonlinear transformation includes at least a quadratic transformation relationship regarding at least one of position and distance.
  • the measurement device is a stereoscopic camera capable of acquiring three-dimensional position information of the object, and the second coordinate system is a coordinate system of 1 to 6 set within the field of view of the stereoscopic camera.
  • the robot device according to any one of the items.
  • a calculation unit that determines a position on one coordinate system; and a plurality of reference marks provided on a reference member each defining a position on a three-dimensional second coordinate system that can sequentially detect the robot arm; a mark detection unit supported by a mark detection unit, and a position of the robot arm on the first coordinate system and a position of the reference mark on the second coordinate system when the mark detection unit detects the plurality of reference marks.
  • a transformation unit that calculates a transformation relationship including a nonlinear component between the position of the robot arm and the position of the robot arm on the first coordinate system using the transformation relationship; a control unit that converts the position and controls the robot arm based on the converted position.
  • the robot device according to 10 wherein the transformation relationship including the nonlinear component includes a three-dimensional homography transformation. 12) The robot device according to 10 or 11, wherein the number of the reference marks to be detected is n (n is an integer of 5 or more), and the conversion relationship includes a matrix of 3n rows and 15 columns. 13) The robot device according to 10 or 11, wherein the transformation relationship including the nonlinear component includes a three-dimensional affine transformation and a predetermined nonlinear transformation.
  • the robot device 14) The robot device according to 13, wherein the predetermined nonlinear transformation includes at least a quadratic transformation relationship with respect to position or distance.
  • the reference member includes a surface plate having a plurality of screw holes provided at a plurality of predetermined positions on its surface, and a surface plate fixed to the surface of the surface plate using the screw holes, each having a height different from the other. and a plurality of mark forming members having a plurality of different mark forming surfaces, and the reference mark is formed on each of the plurality of mark forming surfaces of the plurality of mark forming members, according to any one of 10 to 14.
  • a method for controlling a robot device including a robot arm comprising: using the robot arm to move a specific portion of the robot arm to a plurality of positions on a three-dimensional first coordinate system; and a measuring device. measuring the position of the specific part at a plurality of positions on a three-dimensional second coordinate system, and measuring the position of the specific part on the first coordinate system and the second coordinate system using determining a transformation relationship including a nonlinear component between the position on the second coordinate system, and converting the position specified on the second coordinate system to a position on the first coordinate system using the transformation relationship; controlling the robot arm based on the transformed position.
  • the measurement device is a three-dimensional camera capable of acquiring three-dimensional position information of the object, and the second coordinate system is a coordinate system set within the field of view of the three-dimensional camera.
  • the control method according to any one of the items.
  • a method for controlling a robot device including a robot arm comprising: determining a position of the robot arm on a three-dimensional first coordinate system using displacement information of a plurality of parts of the robot arm; and a reference member. detecting each of a plurality of reference marks, each of which is provided on the robot arm and whose position on a three-dimensional second coordinate system is defined, using a mark detection unit supported by the robot arm; and detecting the reference mark.
  • a method for controlling a robot device including: 26) The control method according to 25, wherein the transformation relationship including the nonlinear component includes three-dimensional homography transformation. 27) The control method according to 25 or 26, wherein the number of the reference marks to be detected is n (n is an integer of 5 or more), and the conversion relationship includes a matrix of 3n rows and 15 columns.
  • the reference member includes a surface plate having a plurality of screw holes provided at a plurality of predetermined positions on its surface, and a surface plate fixed to the surface of the surface plate using the screw holes, each of which has a different height from the other. and a plurality of mark forming members having a plurality of different mark forming surfaces, and the reference mark is formed on each of the plurality of mark forming surfaces of the plurality of mark forming members, according to any one of 25 to 29. Control method described.

Abstract

ロボット装置であって、特定部を有し、前記特定部を3次元の第1座標系上の複数の位置に移動するロボットアームと、複数の前記位置にある前記特定部の3次元の第2座標系上の位置をそれぞれ計測する計測装置と、前記特定部の前記第1座標系上での位置と前記第2座標系上での位置との間の非線形成分を含む変換関係を求める変換部と、前記第2座標系上で指定された位置を前記変換関係を用いて前記第1座標系上での位置に変換し、該変換された位置に基づいて前記ロボットアームを制御する制御部と、を備えるロボット装置が提供される。ロボットアームの位置のキャリブレーションを高精度に、かつ容易に行うことができる。

Description

ロボット装置及びその制御方法
 本発明は、例えばロボット装置及びロボット装置の制御方法に関する。
 ロボットアームでロボットハンドを対象物の位置まで正確に移動するために、予めロボットハンドと対象物とを撮像しておいた画像と、今回の画像とを比較して、この比較結果を用いてロボットハンドの位置を補正するようにしたロボット装置が使用されている(例えば特許文献1参照)。また、平板状部材に2次元格子状の配列で形成された複数の基準マークを、ロボット装置とは別に設置された第1カメラとロボットハンドに設けられた第2カメラとで撮像し、その撮像結果からロボットハンドの位置の線形誤差のキャリブレーションを行うようにしたロボット装置も使用されている(例えば特許文献2参照)。かかる技術においては、目標位置までロボットハンドを正確に移動するために、ロボットハンド又はロボットアームの位置のキャリブレーションを高精度に、かつ容易に行えることが望まれている。
特開2021-24075号公報 特開2016-52695号公報
 本発明の第1の態様によれば、ロボット装置であって、特定部を有し、その特定部を3次元の第1座標系上の複数の位置に移動するロボットアームと、複数のその位置にあるその特定部の3次元の第2座標系上の位置をそれぞれ計測する計測装置と、その特定部のその第1座標系上での位置とその第2座標系上での位置との間の非線形成分を含む変換関係を求める変換部と、その第2座標系上で指定された位置をその変換関係を用いてその第1座標系上での位置に変換し、該変換された位置に基づいてそのロボットアームを制御する制御部と、を備えるロボット装置が提供される。
 第2の態様によれば、ロボットアームを備えるロボット装置であって、そのロボットアームの複数の部分の変位情報を検出する複数の検出部と、複数のその検出部の検出結果を用いてそのロボットアームの3次元の第1座標系上での位置を求める演算部と、基準部材に設けられてそれぞれ3次元の第2座標系上での位置が規定された複数の基準マークを順次検出可能であるとともに、そのロボットアームに支持されたマーク検出部と、そのマーク検出部で複数のその基準マークを検出したときの、そのロボットアームのその第1座標系上での位置とその基準マークのその第2座標系上での位置との間の非線形成分を含む変換関係を求める変換部と、その第2座標系上で指定された位置をその変換関係を用いてその第1座標系上でのそのロボットアームの位置に変換し、該変換された位置に基づいてそのロボットアームを制御する制御部と、を備えるロボット装置が提供される。
 第3の態様によれば、ロボットアームを備えるロボット装置の制御方法であって、そのロボットアームを用いて、そのロボットアームが有する特定部を3次元の第1座標系上の複数の位置に移動することと、計測装置を用いて、複数のその位置にあるその特定部の3次元の第2座標系上の位置をそれぞれ計測することと、その特定部のその第1座標系上での位置とその第2座標系上での位置との間の非線形成分を含む変換関係を求めることと、その第2座標系上で指定された位置をその変換関係を用いてその第1座標系上での位置に変換し、該変換された位置に基づいてそのロボットアームを制御することと、を含む制御方法が提供される。
 第4の態様によれば、ロボットアームを備えるロボット装置の制御方法であって、そのロボットアームの複数の部分の変位情報を用いてそのロボットアームの3次元の第1座標系上での位置を求めることと、基準部材に設けられてそれぞれ3次元の第2座標系上での位置が規定された複数の基準マークを、そのロボットアームに支持されたマーク検出部を用いてそれぞれ検出することと、その基準マークを検出しているときのそのロボットアームのその第1座標系上での位置と、検出されたその基準マークのその第2座標系上での位置との間の非線形成分を含む変換関係を求めることと、その第2座標系上で指定された位置をその変換関係を用いてその第1座標系上でのそのロボットアームの位置に変換し、該変換された位置に基づいてそのロボットアームを制御することと、を含むロボット装置の制御方法が提供される。
第1の実施形態のロボット装置を示す斜視図である。 (A)はロボットハンドでツールボールを移動する複数の位置を示す斜視図、(B)はロボット座標系上の図形及びドリフトによって変形した複数の図形の例を示す図である。 (A)はロボット装置の制御装置の一例を示す図、(B)は第2の実施形態で制御装置に追加される部分を示す図である。 (A)は基準座標系の3つの軸とロボット座標系の3つの軸との関係の一例を示す図、(B)は立体図形及びドリフトによって変形した図形の一例を示す図である。 (A)は立体図形の一例を示す斜視図、(B)はホモグラフィー変換によって変形した図形の一例を示す斜視図である。 第1の実施形態のロボット装置の制御方法の一例を示すフローチャートである。 (A)は第2の実施形態のロボット装置で基準マークを検出する状態を示す斜視図、(B)は図7(A)のロボットハンドを-Y方向に見た拡大図、(C)は図7(A)の基準マーク部材を示す拡大平面図である。 (A)は撮像装置の視野の一例を示す拡大図、(B)は検出される複数の基準マークの配列の一例及びロボット座標系でのその配列の一例を示す図である。 (A)は基準マーク部材の製造方法の一例を示すフローチャート、(B)は第2の実施形態のロボット装置の制御方法の一例を示すフローチャートである。 (A)はロボット座標系のz軸の周りの回転の一例を示す図、(B)は複数軸の周りの回転の一例を示す図である。 ロボット座標系の原点からの距離に応じてロボットアームの先端部がz方向に撓む状態を示す図である。 (A)は第3の実施形態のマーク形成部を示す斜視図、(B)は基準マーク部材を示す斜視図、(C)は変形例のマーク形成部を示す斜視図である。 (A)は変形例の基準マークを示す図、(B)は別の変形例の基準マークを示す図である。
 [第1の実施形態]
 以下、第1の実施形態につき図1~図6を参照して説明する。図1は本実施形態の垂直多関節型のロボット装置4を示す。図1において、ロボット装置4のベース部14は例えば工場の床面や作業机等の表面等の設置面2aに設置されている。以下では、設計上で、一例としてベース部14の中心に原点14Sを取り、原点14Sを通り設置面2aに平行に直交するx軸及びy軸を取り、原点14Sを通り設置面2aに垂直にz軸を取って説明する。一例として設置面2aはほぼ水平面であり、設置面2aの上方(鉛直方向の逆方向)をz軸の+方向とする。また、座標系(x,y,z)をロボット座標系と称する。この場合、原点14Sは外部からは見えない計算上の点である。原点14Sをベース部14の中心に取るときには、ロボット座標系(x,y,z)上での位置計算が容易である。なお、原点14Sの位置はベース部14の中心に限られず、ロボット装置の構成や用途等に応じて他の任意の位置に設定可能である。
 ロボット装置4は、ロボット本体部6と、ロボット本体部6に接合されたロボットハンド26と、ロボット本体部6の動作を制御する制御装置10と、ロボットハンド26の動作を制御する制御装置12とを備えている。ロボット本体部6は、ベース部14と、ベース部14の中央にz軸の周りに回転可能に連結された回転部16と、回転部16に順に変位可能に連結された第1のロボットアーム18A、第2のロボットアーム18B、及び第3のロボットアーム18Cとを備えている。第3のロボットアーム18Cの先端部20Aにロボットハンド26が接合されている。ロボットハンド26はエンドエフェクタとも呼ぶことができる。一例として、ロボットハンド26は可動の2つのフィンガー28A,28Bを有する2指グリッパである。
 第1のロボットアーム18Aは、回転角θ1及び旋回角φ1が制御可能であり、第2のロボットアーム18Bは、回転角θ2及び旋回角φ2が制御可能であり、第3のロボットアーム18Cは、回転角θ3及び旋回角φ3が制御可能である。また、第3のロボットアーム18Cは、先端部20Aの回転角θ3を変化させる回転部20B、及び先端部20Aの旋回角φ3を変化させる傾斜駆動部20Cを有する。回転部20B及び傾斜駆動部20Cはそれぞれ駆動用モータ及び回転角(旋回角)を検出する角度センサを有する。他のロボットアーム18A,18Bも同様の駆動部およびセンサを有する。
 このため、ロボット装置4は、3つの回転角及び3つの旋回角を検出するための少なくとも6個の角度センサ48A,48B,48C,48D,48E,48F(図3参照)を有する。角度センサ48A~48Fは検出部でもある。本実施形態では3本のロボットアーム18A~18Cを備えているが、ロボット装置4は1個のロボットアーム18Cだけを備えていてもよい。この場合、検出部として2つの角度センサ48E,48Fを有するだけでもよい。
 6個の角度センサ48A~48Fの検出値及びロボットアーム18A~18Cの形状の既知の情報から、制御装置10中の座標算出部46E(図3参照)は、ロボットアーム18Cに接合されたロボットハンド26の、x方向、y方向、z方向の位置よりなるロボット座標系上の位置、及び3軸の周りの回転角を含む6自由度の位置(角度を含む)を算出できる。その算出結果を用いて、ロボットハンド26の6自由度の位置が制御可能である。一例として、ロボットアーム18Cの位置は、ロボットハンド26の位置であり、ロボットハンド26の位置は、フィンガー28A,28Bで把持されるワーク(例えば後述のツールボール24)の設計上の中心である作用点28Cの位置としてもよい。なお、その作用点28Cとロボットアーム18Cの先端部20Aとの位置関係は既知であり、ロボットハンド26の位置及び角度を制御することは、ロボットアーム18Cの先端部20Aの位置及び角度を制御することでもある。言い替えると、ロボットアーム18Cの位置として、先端部20Aの位置を用いてもよい。なお、ロボット装置4の構成は図1の構成に限られることなく任意である。
 図1において、ベース部14の近くの保管部の工具台30に、他の複数のロボットハンド、例えば4本の可動のフィンガー部を有するロボットハンド(不図示)、溶接を行うための溶接部を有するロボットハンド(不図示)、ピンセット25を保持してピンセット25の2つの可動部を開閉可能なロボットハンド26A、及び電動ドリルを回転駆動可能なロボットハンド26B等が載置されている。また、本実施形態では、工具台30の所定の位置30aに金属製の真球よりなるツールボール24が載置されている。ツールボール24の直径は既知であり、ツールボール24の画像を処理することによって、ツールボール24の中心位置の3次元座標を求めることができる。なお、ツールボール24の材質としてはルビー、セラミックス、プラスチック、又は他の硬度が高く反射率の高い任意の材料を使用可能である。
 本実施形態では、ツールボール24は、後述のようにロボット座標系(x,y,z)のキャリブレーションを行う際に、ロボットハンド26のフィンガー28A,28Bで把持される。なお、ツールボール24は、別のロボットハンド26Aで保持されているピンセット25で把持してもよい。ロボットアーム18A~18Cを駆動してロボットアーム18Cの先端のロボットハンド26を工具台30に戻し、ロボットハンド26A,26B等の他のロボットハンドをロボットアーム18Cの先端に接合することもできる。以下では、ロボットアーム18Cの先端部20Aにロボットハンド26が接合されているものとして説明する。
 ロボットハンド26は、ロボットアーム18Cの先端部20Aに接合される接合部(ジョイント)26a、及びフィンガー28A,28Bの開閉を行う駆動部を内蔵する作動部26bを有する(図2(A)参照)。接合部26aは、先端部20Aに対して機械的(ねじによる固定、可動の爪機構による固定、永久磁石による固定等)、又は電気的(電磁石による固定等)に接合される。さらに、接合部26aには、必要に応じて電気配線、圧縮空気の配管、及び/又は真空吸着用の配管等の接続部が設けられている。接合部26aには先端部20Aに対する位置及び回転角が所定値になるように複数の凸部又は凹部等の位置決め部(不図示)が設けられている。
 また、ロボット装置4は、例えばロボット装置4が設置された部屋の天井等に設置されて、ロボット装置4を含む領域(又はロボットハンド26の可動領域の全体)を撮像可能な撮像装置22Aを備えている。撮像装置22Aは例えばCMOS型又はCCD型等の撮像素子を有する。また、一例として撮像装置22Aは、対象物の立体的な形状、又はその対象物の中心等の3次元の位置を検出可能な立体カメラ又はステレオカメラである。なお、撮像装置22A(立体カメラ等)の代わりに、通常のカメラと、対象物までの距離を検出する距離センサ(又はZ方向の位置を検出するZ位置計測センサ)とを組み合わせた計測装置を使用してもよい。また、撮像装置22Aは、ロボット装置4を含む領域を撮像可能な任意の位置、例えば上述の部屋の側面又は設置面2a上の位置等に設置してもよい。さらに、複数の異なる位置に設置された複数の撮像装置の画像から対象物の立体形状及び3次元の位置を検出してもよい。撮像装置22Aの視野内の互いに直交するX軸、Y軸、Z軸よりなる直交座標系(以下、基準座標系という)(X,Y,Z)は予め3次元の格子状の基準物体(不図示)等を用いてキャリブレーションが行われている。また、一例として基準座標系(X,Y,Z)のX軸、Y軸、Z軸は、ロボット座標系(x,y,z)のx軸、y軸、z軸に概ね平行になるように設定されている。
 なお、基準座標系(X,Y,Z)の原点34Sの位置は任意である。また、基準座標系(X,Y,Z)は、全体としてロボット座標系(x,y,z)に対して任意の角度で傾斜していてもよい。ただし、ロボット装置4ではベース部14から離れるほどロボットアーム18A~18Cの撓み及び振動等の影響が大きくなる恐れがあるため、基準座標系(X,Y,Z)の原点34Sはベース部14に近い位置に設けることが好ましい。さらに、基準座標系(X,Y,Z)の原点34Sを設計上のロボット座標系(x,y,z)の原点14Sの位置にほぼ一致させておいてもよい。また、ロボット座標系(x,y,z)を第1座標系、基準座標系(X,Y,Z)を第2座標系と称することもできる。撮像装置22Aの撮像信号を処理する画像処理部46D(図3(A)参照)には基準座標系(X,Y,Z)のデータが記憶されている。
 次に、図3(A)は図1のロボット装置4の制御装置10、及びロボットハンド26の制御装置12を示す。図3(A)において、制御装置10は、装置全体の動作を制御する主制御部46Aと、例えばオペレータとの間で制御情報(使用するロボットハンドの種類、処理対象の対象物(ワーク)の位置情報、及び作業開始又は終了の情報等)の入出力を行う制御情報入出力部46Bと、撮像装置22Aの撮像信号を処理してロボットハンド26の作用点28Cの基準座標系(X,Y,Z)上の位置(座標)を求める画像処理部46Dと、を有する。さらに、制御装置10は、ロボットアーム18A~18Cの動きを検出する少なくとも6軸の角度センサ48A~48Fの検出結果を処理して第3のロボットアーム18Cの先端のロボットハンド26(例えば作用点28C)のロボット座標系(x,y,z)上での位置及び角度を算出する座標算出部46Eと、後述のロボット座標系上の位置と基準座標系上の位置との間の非線形成分を含む変換行列等(変換関係)を求める座標変換部46Fと、その変換関係を用いて後述の基準座標系上の目標位置をロボット座標系上の移動位置に変換する座標補正部46Gと、を有する。なお、制御装置10の一部(例えば座標算出部46E等)を例えば主制御部46Aが有するコンピュータのソフトウエアとしてもよい。そのソフトウエア(プログラム)は例えば後述の記憶部46I中の記憶媒体等に記録されていてもよい。
 さらに、制御装置10は、画像処理部46D、座標算出部46E、及び座標補正部46G等の処理結果に基づいてロボットアーム18A~18Cの動きを制御するアーム制御部46Hと、記憶部46Iとを有する。アーム制御部46Hは、ロボットハンド26の制御装置12の後述のハンド制御部50Aとの間で、フィンガー28A,28Bの開閉コマンド、及び開閉の完了コマンド等の制御情報の送受を行う。記憶部46Iは、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の記憶装置、及びUSB(Universal Serial Bus)メモリ等の不揮発性メモリのいずれかを含んでもよい。記憶部46Iは、制御装置10のプログラム、及び各種設定値等を記憶する。
 また、ロボットハンド26の制御装置12は、制御装置10のアーム制御部46Hとの間での制御情報の送受、及びロボットハンド26の全体の動作の制御を行うハンド制御部50Aと、フィンガー28A,28Bの開閉を行うためのモータ50Dの動作を制御するモータ駆動部50Bと、フィンガー28A,28Bの把持力(ワークからの反力)を検出する把持力検出部50Cと、プログラム及び各種設定値等を記憶する記憶部(不図示)とを有する。一例として、把持力検出部50Cは、モータ50Dに流れる電流からフィンガー28A,28Bの把持力を検出し、ハンド制御部50Aはその検出される把持力が予め設定されているレベル(規格値)以下になるようにフィンガー28A,28Bの動作を制御する。これによって、フィンガー28A,28B、及び/又は対象物の破損等を防止できる。なお、制御装置12の一部(例えばモータ駆動部50B等)を例えばハンド制御部50Aが有するマイクロプロセッサ等のソフトウエアとしてもよい。そのソフトウエア(プログラム)は例えば制御装置12中の記憶部(不図示)の記憶媒体等に記録されていてもよい。
 次に、本実施形態のロボット装置4の制御方法の一例につき説明する。ロボット装置4にはロボット座標系(x,y,z)が設定され、ロボットアーム18Cに接合されたロボットハンド26のロボット座標系上の位置及び角度は、角度センサ48A~48Fの検出値から算出される。その算出された位置及び角度が指定された位置及び角度になるように、ロボットアーム18A~18Cを駆動することで、ロボットハンド26の位置及び角度が制御される。この場合、ロボット装置4の稼働中の発熱によるロボットアーム18A~18Cの僅かな変形及び撓み、並びにロボットアーム18A~18Cの経時変化による変形等によって、ロボット座標系上の位置がドリフト又は変動することがある。なお、ロボット座標系上の位置が変動することは、ロボット座標系の3つの軸(x軸、y軸、z軸)の倒れ又は伸縮等でその3つの軸に沿った方向の位置が変動することも含んでいる。以下では、ロボット装置4の発熱及び経時変化等によるロボット座標系上のロボットハンド26の位置の変動をドリフトによる変動と称する。
 そのようなドリフトによる位置の変動があると、それまでと同じロボット座標系上の位置にロボットハンド26を移動しても、ロボットハンド26で対象物(ワーク)の把持がうまくできなくなる恐れがある。そこで、本実施形態ではそのようなドリフトによるロボットハンド26の位置変動のキャリブレーションを行うために、ロボットハンド26でツールボール24を把持する。そして、図2(A)に示すように、ロボットアーム18A~18Cの駆動によってロボットハンド26で把持されるツールボール24を、例えばz方向にほぼ等間隔で設定される3つの仮想的な平面MP1,MP2,MP3上のn個(nは例えば少なくとも4又は5以上の整数)の計測点39i(i=1~n)の近傍に移動する。一例として、図2(A)の例では、平面MP1上に8個の計測点391~398が設定され、平面MP2上に8個の計測点399~3916が設定され、平面MP3上に8個の計測点3917~3924が設定され、n=24となっている。なお、計測点39iの配置は、同一平面上になく、かつ同一直線上にない複数の点であればよい。また、計測点39iの個数nは、少なくとも4又は5以上の整数であればよい。ただし、個数nが大きくなるほど、平均化効果によってロボットハンド26の位置変動のキャリブレーション精度は向上する。なお、計測点39iの位置は3次元的に変動してもよく、要はツールボール24の中心(作用点28C)がある程度の時間だけ計測点39iの近傍のある位置に静止していればよい。
 また、ロボットハンド26でツールボール24を計測点39i付近に移動してツールボール24の中心(作用点28C)が静止している期間内に、座標算出部46Eでツールボール24の中心のロボット座標系上の座標(xi,yi,zi)を算出する。さらにその静止している期間内に、画像処理部46Dで撮像装置22Aの撮像信号を処理してツールボール24の中心の基準座標系上の座標(Xi,Yi,Zi)を算出する。算出された座標(xi,yi,zi)及び座標(Xi,Yi,Zi)は記憶部46Iに記憶される。この動作が全部の計測点39iに関してn回繰り返される。
 なお、図2(A)においてツールボール24の中心を計測点39iに静止させる際の、ドリフトがない状態でのロボット座標系上でのロボットハンド26の位置決め精度は例えば1mm程度である。また、撮像装置22Aによる基準座標系上でのツールボール24の中心の計測精度は例えば1mm程度である。また、ドリフトによるロボットハンド26の位置の変動量は例えば1~数mm程度である。そこで、ロボット座標系のキャリブレーションによって、そのドリフトした後のロボットハンド26の位置決め精度を例えば1mm程度に戻すこととする。
 この場合、上述のドリフトがない状態でロボット座標系上での立体図形を図4(B)の立体格子52Cとして、上述のドリフトによるロボットハンド26の位置変動があると、立体格子52Cは基準座標系上では変形した立体格子(以下、ドリフト格子と称する)54Cとなる。なお、説明の便宜上、図4(B)では2つの座標系の原点を一致させている。
 ここでは、ロボット座標系上の任意の位置(x,y,z)が例えば変換行列Bで基準座標系上の対応する位置(X,Y,Z)に変換されるとして、その変換行列Bを求める。このとき、上述のツールボール24の中心の検出によって、ロボット座標系上のn個の位置(xi,yi,zi)が変換行列Bによって基準座標系上のn個の位置(Xi,Yi,Zi)に変換されているものとして、最小2乗法によって変換行列Bを求めることができる。
 まず、図4(A)に示すように、ロボット座標系におけるx方向、y方向、z方向の単位ベクトルを<ex>,<ey>,<ez>とすると、例えば単位ベクトル<ex>の絶対値は1、ベクトル表示は(100)t となる。ここで、()t は転置行列を意味する。他の単位ベクトルも同様である。また、単位ベクトル<ex>,<ey>,<ez>を基準座標系で見たときのベクトルをそれぞれ<OX>,<OY>,<OZ>とする。ベクトル<OX>,<OY>,<OZ>の絶対値は、それぞれ単位ベクトル<ex>,<ey>,<ez>の絶対値(=1)のMx倍,My倍,Mz倍となる。Mx,My,Mzはそれぞれほぼ1であるため、微小量の偏差mx,my,mzを用いて次のように近似できる。
 <OX>の絶対値=1+mx …(1A),<OY>の絶対値=1+my …(1B),
 <OZ>の絶対値=1+mz …(1C)
 その伸縮の行列をA1とすると、行列A1は次のようになる。
Figure JPOXMLDOC01-appb-I000001
 また、x軸、y軸、z軸の周りの回転角をα,β,γとすると、その回転を表す行列A2は次のようになる。この際に、回転角α,β,γを微小量とすると、行列A2は行列A2’で近似できる。
Figure JPOXMLDOC01-appb-I000002
 さらに、ロボット座標系に対する基準座標系のx方向、y方向、z方向のシフトをSx,Sy,Szとすると、伸縮、回転、及びシフトを合わせた変換関係は次の式(2)になる。また、位置(x,y,z)に形式的に4番目の要素‘1’を加え、位置(X,Y,Z)にも形式的に4番目の要素‘1’を加え、式(2)の3行×3列の行列及びシフト(Sx,Sy,Sz)を4行×4列の行列A3を用いて表すと、式(2)は式(3A)のようになる。
Figure JPOXMLDOC01-appb-I000003
 ここで、座標軸の回転に軸の倒れを合わせて、図4(A)に示すように、x軸のy方向、z方向の倒れをTxy,Txz、y軸のz方向、x方向の倒れをTyz,Tyx、z軸のx方向、y方向の倒れをTzx,Tzyとする。このとき、式(3A)に対応する式(3B)が得られる。また、上述の変換行列B(変換関係)は式(3B)で表すことができる。変換行列Bにおいて、i行でj列の成分をBijとすると、成分Bijは必ずしも-Bjiではない。図4(B)において、ロボット座標系上で3つの単位ベクトルで規定される立体を立体格子52Cとすると、上述の単位ベクトルの伸縮、及びx軸、y軸、z軸の倒れによって、その立体格子52Cはドリフト格子54Cのように変形する。変換行列Bで表される変換は3次元のアフィン変換に対応する。変換行列B(アフィン変換)は、長方形が平行四辺形になる変換を含む線形変換に対応している。
Figure JPOXMLDOC01-appb-I000004
 式(3B)において、基準座標系の位置X,Y,Zはそれぞれ位置x,y,zの一次関数(線形方程式)である。さらに、未知数は3個の偏差mx,my,mz、6個の軸の倒れTxy,Txz,Tyz,Tyx,Tzx,Tzy、及び3個のシフトSx,Sy,Szを含む12個である。すなわち、3次元のアフィン変換を表す変換行列Bにおいて決定すべき要素(パラメータ)は12個である。また、1つの計測点39iでツールボール24の座標を検出すると、位置X,Y,Zに関して全部で3つの式が得られる。このため、同一平面上にない4個の計測点39iでツールボール24の座標を検出することによって、その12(=3×4)個の未知数を決定できる。また、検出する計測点39iの数を増加して最小2乗法を適用することで、平均化効果によってその12個の未知数をより高精度に決定できる。
 制御装置10の座標変換部46Fで式(3B)の変換行列Bを決定した後、ロボット装置4でロボットアーム18Cを駆動する場合には、座標変換部46Fではその変換行列Bの逆行列B-1を計算し、計算結果を座標補正部46Gに供給する。その後、ロボットアーム18C(ロボットハンド26)の基準座標系上での目標位置(Xm,Ym,Zm)が設定されると、座標補正部46Gでは式(4)を用いてその目標位置(Xm,Ym,Zm)及び逆行列B-1からロボット座標系上の移動位置(xm,ym,zm)を計算する。その後、座標算出部46Eで算出されるロボットハンド26の座標がその移動位置(xm,ym,zm)になるように、アーム制御部46Hがロボットアーム18A~18Cを駆動することで、ロボットハンド26のフィンガー28A,28Bの作用点28Cを基準座標系上の目標位置(Xm,Ym,Zm)に移動できる。これによって、ロボットアーム18A~18Cのドリフトによってロボット座標系上のロボットハンド26の位置が変動しても、全ての線形誤差を補正しつつ、ロボットハンド26の位置を目標とする位置に正確に移動できる。
 さらに、本実施形態では、式(3B)の変換行列B(アフィン変換)中の最も下の行の(000)の部分3Baが0以外の数値になる変換行列H3も使用する。このため、基準座標系の座標(X,Y,Z)を次の式(5A)のように中間座標(X’,Y’,Z’,W’)に変換する。このとき、中間座標(X’,Y’,Z’,W’)とロボット座標系の位置(x,y,z)との関係は式(5B)のようになる。式(5B)の変換行列H3は、式(3B)の変換行列Bの(000)の部分3Baを(h41 h42 h43)で置き換え、変換行列Bの他の要素をhij(i=1~3:j=1~4)で置き換えたものである。また、変換行列H3の要素hijを要素hi(i=1~15)で置き換えたものが式(5C)である。
 変換行列H3で表される変換は3次元のホモグラフィー変換又は射影変換である。ホモグラフィー変換中の2次元の変換では、アフィン変換(線形変換)の他に、図2(A)に示すように、長方形52Dが台形を含む任意の図形54D1,54D2,54D3になる弱い非線形変換が含まれる。また、3次元のホモグラフィー変換を表す変換行列H3において決定すべき要素(パラメータ)は15個である。
Figure JPOXMLDOC01-appb-I000005
 また、3次元のホモグラフィー変換は、一例として図5(A)の立体格子52Eが、3点透視図法と同様に図5(B)のドリフト格子54Eになるような変換を表しているとみなすことも可能である。立体格子52Eの8個の頂点AP1~AP8はそれぞれドリフト格子54Eの8個の頂点BP1~BP8に変換される。ドリフト格子54Eにおいては、x軸に平行な軸の回りの4つの辺がx軸上の消失点55Aに収束し、y軸に平行な軸の回りの4つの辺がy軸上の消失点55Bに収束し、z軸に平行な軸の回りの4つの辺がz軸上の消失点55Cに収束している。なお、消失点55A~55Cの位置は、変換行列H3の4行目の要素h13,h14,h15の値によってx軸、y軸、及びz軸以外の位置に移動可能である。
 次に、変換行列H3の15個の要素h1~h15の値の決定方法の一例を説明する。このとき、式(5B)の座標(x,y,z)に計測値(xi,yi,zi)を代入し、式(5A)の座標(X,Y,Z)に計測値(Xi,Yi,Zi)(i=1~n)を代入する。これによって、次式が得られる。
 Xi=X’/W’=(h1xi+h2yi+h3zi+h4)/(h13xi+h14yi+h15zi+1) …(5D)
 Yi=Y’/W’=(h5xi+h6yi+h7zi+h8)/(h13xi+h14yi+h15zi+1) …(5E)
 Zi=Z’/W’=(h9xi+h10yi+h11zi+h12)/(h13xi+h14yi+h15zi+1) …(5F)
 これらの式(5D)~(5F)を整理すると次式が得られる。
 h1xi+h2yi+h3zi+h4-h13xiXi-h14yiXi-h15ziXi=Xi …(5G)
 h5xi+h6yi+h7zi+h8-h13xiYi-h14yiYi-h15ziYi=Yi …(5H)
 h9xi+h10yi+h11zi+h12-h13xiZi-h14yiZi-h15ziZi=Zi …(5I)
 式(5G)~(5I)をi=1~nについてまとめると次式が得られる。
Figure JPOXMLDOC01-appb-I000006
 3n行15列の行列Eを用いて式(5J)を書き直すと式(5K)が得られる。
Figure JPOXMLDOC01-appb-I000007
 制御装置10の座標変換部46Fでは、式(5K)の行列Eの逆行列E-1を求め、式(5K)の両辺に逆行列E-1を乗ずることで、式(6A)に示すように、式(5C)の変換行列H3の15個の係数h1~h15の値を決定できる。これによって式(6B)に示す変換行列H3が求められたことになる。整数nが5(計測点39iの数が5個)の場合には、行列Eが15行×15列の正方行列になるため、行列Eの逆行列を容易に計算でき、変換行列H3の15個の係数の値を容易に決定できる。言い替えると、3次元の計測点39iの数が5の場合には、15(=3×5)個の関係式が得られるため、変換行列H3の15個の係数の値を正確に決定できる。このため、整数n(計測点の数)は5以上又は少なくとも5であることが好ましい。
 なお、整数nが5より大きい(nが6以上の)ときには、行列Eは正方行列ではないため、その逆行列は次の一般逆行列として算出してもよい。EはEの転置行列である。そのように整数nが6以上のときには、最小2乗法を用いることによって、行列Eの各要素をより高精度に決定でき、ひいては変換行列H3の15個の係数をより高精度に決定できる。
 E-1=(E・E)-1・E  …(6C)
 この場合、所定の行列(又はベクトル)F,Gを用いて次のようにおく。
 E・F=G  …(6D)
 このとき、次式から式(6C)が逆行列であることが確認できる。
 {(E・E)-1・E}・E・F={(E・E)-1・E}・G
 ={E-1 }・G=F  …(6E)
 さらに、座標変換部46Fではその変換行列H3の逆行列H3-1を計算し、計算結果を座標補正部46Gに供給する。その後、ロボットアーム18C(ロボットハンド26)の基準座標系上での目標位置(Xm,Ym,Zm)が設定されると、座標補正部46Gでは拡張した目標位置(Xm,Ym,Zm,1)を次の式(6F)に代入して、移動位置の中間座標(x’m,y’m,z’m,w’m)を算出する。さらに、座標補正部46Gではその中間座標を次の式(6G)を用いてロボット座標系上の実際の移動位置(xm,ym,zm)に変換する。
Figure JPOXMLDOC01-appb-I000008
 さらに、座標算出部46Eで算出されるロボットハンド26の座標がその移動位置(xm,ym,zm)になるように、アーム制御部46Hがロボットアーム18A~18Cを駆動することで、ロボットハンド26のフィンガー28A,28Bの作用点28Cを基準座標系上の目標位置(Xm,Ym,Zm)に移動できる。これによって、ドリフトによってロボット座標系上のロボットハンド26の位置が変動しても、全部の線形誤差、及び例えば四角形が台形に変形するような弱い非線形誤差を補正しつつ、ロボットハンド26の位置を目標とする位置に正確に移動できる。
 次に、本実施形態のロボット装置4のドリフトによるロボットハンド26の位置変動のキャリブレーションを行う方法(制御方法)の一例につき図6のフローチャートを参照して説明する。このキャリブレーションは、例えばロボット装置4の稼働開始時に行うようにしてもよい。また、そのキャリブレーションは、ロボット装置4を工場等に設置する際のセットアップ時に行うようにしてもよい。また、そのキャリブレーションは、例えばロボット装置4のメンテナンス時、又は週に1回等の定期的に行うようにしてもよい。
 ロボット装置4においては、座標算出部46Eで6個の角度センサ48A~48Fの検出値を用いてロボット座標系(x,y,z)上でのロボットハンド26の位置を算出する。このロボットハンド26の位置算出は所定のサンプリングレートで連続的に繰り返される。この算出された位置に基づいてロボットアーム18A~18Cが駆動される。まず、図6のステップ132において、ロボットアーム18A~18Cを駆動してロボットハンド26を工具台30(保管部)側に移動し、図1に示すように、ロボットハンド26のフィンガー28A,28Bでツールボール24を把持する。6個の角度センサ48A~48Fの検出値を用いると、ロボットハンド26の3次元の位置の他に、3方向の角度も計算可能である。本実施形態において、ツールボール24を移動する際には、ロボットハンド26(ロボットアーム18Cの先端部20A)の3方向の角度はほぼ一定の角度(例えば撮像装置22Aでツールボール24を良好に撮像可能な角度)に設定してもよい。
 さらに、ステップ134において、ロボットアーム18A~18Cを駆動して、ロボットハンド26で把持しているツールボール24の中心を図2(A)の計測点39i(i=1~n)の近傍に移動してツールボール24を静止させる。ツールボール24が静止している期間内で、ステップ136において、座標算出部46Eがツールボール24の中心(作用点28C)のロボット座標系上の位置(xi,yi,zi)を算出する。これとほぼ並行してステップ138において、画像処理部46Dが撮像装置22Aの撮像信号を処理して、ツールボール24の中心の基準座標系上の位置(Xi,Yi,Zi)を検出する。
 次のステップ140で別の計測点にツールボール24を移動するかどうかを判定する。移動するべき計測点が残っている場合には、n個の計測点39iにツールボール24が移動されるまで、ステップ134~138の動作が繰り返される。全部の計測点39iにツールボール24を移動したときには、ステップ142において、座標変換部46Fは計測されたn組の位置を用いて、式(5C)のホモグラフィー変換に対応する変換行列H3及びその逆行列を求める。また、ステップ144において、ロボットハンド26で把持しているツールボール24が工具台30の位置30a(保管部)に戻される。
 また、予め例えばオペレータは、制御情報入出力部46B及び主制御部46Aを介して記憶部46Iに、基準座標系(X,Y,Z)上でのロボットハンド26の作用点28Cの1組の目標位置(Xm,Ym,Zm)(m=1~M)(Mは移動回数を示す整数)を記憶させておく。その後、動作はステップ146に移行して、座標補正部46Gでは、記憶部46Iから基準座標系上でのロボットハンド26の目標位置(Xm,Ym,Zm)を読み出す。次のステップ148において、座標補正部46Gは、拡張した目標位置(Xm,Ym,Zm,1 )及び上述の式(6F)を用いて移動位置の中間座標(x’m,y’m,z’m,w’m)を算出する。さらに、その中間座標及び上述の式(6G)を用いてロボット座標系上でのロボットハンド26の移動位置(xm,ym,zm)を算出する。その移動位置はアーム制御部46Hに供給される。
 そして、ステップ150において、座標算出部46Eで算出されるロボットハンド26の位置がその移動位置(駆動位置)(xm,ym,zm)になるようにロボットアーム18A~18Cを駆動する。この際に、ロボットハンド26の位置がその移動位置(xm,ym,zm)になると、ロボットハンド26のフィンガー28A,28Bの間には例えば把持対象のワーク(不図示)がある。この状態で、例えば主制御部46Aの制御によってアーム制御部46Hはロボットハンド26のハンド制御部50Aに把持コマンドを出力する。これに応じてロボットハンド26のフィンガー28A,28Bがそのワークを把持する。そして、ステップ146,148,150を繰り返すことによって、ロボットハンド26がそのワークを例えば移動先に移動してフィンガー28A,28Bからワークを離脱させる。そして、ステップ152で次の目標位置がなくなったときにロボットハンド26による操作が終了する。
 このキャリブレーション方法によれば、ロボットハンド26で把持しているツールボール24を複数の計測点39iの近傍に移動してロボット座標系及び基準座標系上の位置を検出することで、ホモグラフィー変換の変換行列H3を求め、この変換行列H3を用いてロボットハンド26(ロボットアーム18C)のロボット座標系上の位置のキャリブレーションを行っている。このため、ドリフト等によってロボット座標系上の位置が変動しても、全部の線形誤差成分及び弱い非線形誤差成分(長方形が台形になる誤差を含む成分)を含む誤差を補正しつつ、その変動のキャリブレーションを容易にかつ効率的に行うことができる。さらに、ロボット座標系(x,y,z)の原点14Sは外部から見えない位置にあるのに対して、基準座標系(X,Y,Z)の原点34Sは外部から見える位置に設定可能であるため、基準座標系(X,Y,Z)上での目標位置の指定は容易であり、ロボット装置4の作業を正確に、かつ効率的に行うことができる。
 上述のように本実施形態のロボット装置4は、ツールボール24(以下、特定部とも称する)を有し、ツールボール24を3次元のロボット座標系(第1座標系)上の複数の位置に移動するロボットアーム18C(ロボットハンド26)と、複数の位置にあるツールボール24の3次元の基準座標系(第2座標系)上の位置をそれぞれ計測する撮像装置22A及び画像処理部46D(計測装置)と、ツールボール24のロボット座標系上での位置と基準座標系上での位置との間の非線形成分を含む変換行列H3(変換関係)を求める座標変換部46Fと、基準座標系上で指定された目標位置を変換行列H3を用いてロボット座標系上での移動位置に変換し、該変換された位置に基づいてロボットアーム18Cを制御するアーム制御部46Hと、を備えている。
 また、ロボット装置4の制御方法は、ロボットアーム18Cを用いて、ロボットアーム18Cが有するツールボール24(特定部)を3次元のロボット座標系上の複数の位置に移動するステップ134,136と、複数の位置にあるツールボール24の3次元の基準座標系上の位置をそれぞれ計測するステップ138と、ツールボール24のロボット座標系上での位置と基準座標系上での位置との間の非線形成分を含む変換行列H3を求めるステップ142と、基準座標系上で指定された位置を変換行列H3を用いてロボット座標系上での位置に変換し、該変換された位置に基づいてロボットアーム18Cを制御するステップ148,150とを含んでいる。
 本実施形態によれば、ロボットハンド26で把持するツールボール24を複数の位置に移動し、ツールボール24のロボット座標系上での位置と、基準座標系上での位置との間の変換行列H3を求めている。このため、ロボット座標系上の位置がドリフトによって変動している場合でも、線形誤差成分及び弱い非線形誤差成分を補正して、ロボットハンド26のロボット座標系上での位置のキャリブレーションを迅速に、かつ容易に行うことができる。そして、基準座標系上で指定された目標位置をその変換行列を用いてロボット座標系上での移動位置に変換することによって、ロボットハンド26(ロボットアーム18C)を目標とする位置に正確に、かつ迅速に移動できる。また、ロボットハンド26の位置を制御しているため、種々の形状の対象物(ワーク)の位置までロボットハンド26の作用点を高精度に移動できる。
 なお、上述の実施形態では以下のような変形が可能である。
 まず、上述の実施形態では、ロボット座標系(x,y,z)の位置を中間座標(X’,Y’,Z’,W’)に変換する式(5B)の変換行列H3を求めている。このため、基準座標系上の目標位置(Xm,Ym,Zm)からロボット座標系上の移動位置を求める際に、変換行列H3の逆行列を計算する必要がある。これに対して、基準座標系(X,Y,Z)上の位置を中間座標(X’,Y’,Z’,W’)を介してロボット座標系(x,y,z)上の位置に変換する変換行列HA3を求めてもよい。この場合には、基準座標系上の目標位置(Xm,Ym,Zm)からロボット座標系上の移動位置を求める際には、変換行列HA3をそのまま目標位置を含むベクトルに乗算すればよいため、計算が容易である。
 次に、上述の実施形態では特定部としてロボットハンド26で把持するツールボール24が使用されている。特定部としては、図13(A)に示すエイプリルタグ(AprilTag又はApril Tag)、又は図13(B)に示すQRコード(登録商標)(2次元バーコード)のような位置情報を含む識別コードが設けられた部材を使用してもよい。又は、ロボットハンド26の一部にその識別コードを印刷等で形成しておいてもよい。その識別コードには当該コードの2次元又は3次元の位置又は設計上の位置からの位置ずれ量の情報を付加しておくことが好ましい。なお、エイプリルタグは、3次元上の物体の位置及び姿勢を検出するアプリケーション用の視覚的マーク(マーカ)である。また、エイプリルタグは、AR(Augmented Reality)マーカ、即ち拡張現実マーカの一例でもある。
 [第2の実施形態]
 次に、第2の実施形態につき図7~図9を参照して説明する。なお、図7~図9において図1~図6に対応する部分には同一又は類似の符号を付してその詳細な説明を省略する。
 図7(A)は本実施形態のロボット装置4Aを示す。図7(A)において、ロボット装置4Aのロボットアーム18Cの先端部20Aに撮像装置22B及び照明装置(不図示)が装着されている。撮像装置22Bは対物レンズ22Baを有し、撮像装置22Bの視野内にロボットハンド26のフィンガー28A,28Bの先端部が収まっている。なお、撮像装置22Bは先端部20A以外の位置、例えばロボットハンド26の一面等に設けてもよい。なお、撮像装置22Bとは別の例えばロボット装置4Aの全体の動作を観察可能な撮像装置等を設置面2a上の測定位置、又はロボット装置4Aが設置されている部屋の壁や天井等に設けてもよい。また、ロボットハンド26とワーク等の対象物(不図示)との位置関係等を検出するために、撮像装置22Bの代わりに、撮像装置とは異なる近接センサ等の任意のセンサを用いることができる。
 さらに、ロボット装置4Aのベース部14の近くの設置面2a上に、ロボット座標系(x,y,z)上の位置のキャリブレーションを行う際に使用する基準マーク部材32(基準部材)が設置されている。基準マーク部材32は、平板部34と、平板部34上にマトリクス状に形成された互いに高さ(z方向の位置)が異なるマーク形成面40As,40Es,40Isを含む複数(図1では9個)のマーク形成面と、その複数のマーク形成面に形成された複数の基準マークMとを有する。一例として基準マークMは十字型のパターンであるが、そのパターンの形状は任意である。
 平板部34は、3箇所の高さ調節用のねじ38A,38B,38C(38Bは不図示)を介して設置面2aに載置され、ねじ38A,38B,38Cが設けられている部分がそれぞれ押さえ具36A,36B,36C及びボルトBによって設置面2aに固定されている。すなわち、平板部34(基準マーク部材32)は設置面2aに着脱可能に設置され、例えば平板部34の表面が水平面に平行になるようにねじ38A,38B,38Cの高さが調整されている。
 また、ベース部14に近いマーク形成面40Asに形成された基準マークMの中心を原点34Sとして、原点34Sを通り平板部34の表面に平行な互いに直交するX軸及びY軸(図7(C)参照)、及び原点34Sを通り平板部34の表面に垂直なZ軸から、基準マークMの位置を規定する基準座標系(X,Y,Z)(第2座標系)が構成されている。複数のマーク形成面40As,40Is等(ひいては基準マークM)はX方向及びY方向にそれぞれ所定間隔で配置され、X軸及びY軸がロボット座標系(x,y,z)(第1座標系)のx軸及びy軸にほぼ平行になるように、基準マーク部材32が設置面2aに固定されている。なお、基準マーク部材32の基準座標系の原点34Sの位置は任意である。さらに、基準座標系の原点34Sを設計上のロボット座標系の原点14Sの位置にほぼ一致させておいてもよい。
 図7(A)は、ロボットアーム18Cに設けられた撮像装置22Bで基準マーク部材32のマーク形成面40Asの基準マークMを検出している状態を示し、図7(B)は図7(A)中のロボットアーム18Cに接合されているロボットハンド26を-Y方向に見た図であり、図7(C)は図7(A)中の基準マーク部材32を示す。
 図7(C)において、平板部34の表面にX方向及びY方向に所定間隔で断面が正方形の角柱状のマーク形成部40A…,40E…,40Iが形成され、マーク形成部40A~40Iの表面のマーク形成面40As~40Isにそれぞれ基準マークMが形成されている。一例として、平板部34及びマーク形成部40A~40Iは一体的に金属から形成されている。なお、平板部34及びマーク形成部40A~40Iの材料は任意であり、平板部34及びマーク形成部40A~40Iを別体で製造し、平板部34にマーク形成部40A~40Iをねじ止め等で固定してもよい。また、マーク形成部40A~40Iの個数は4個以上の任意の数でよく、マーク形成部40A~40Iの配置も任意である。
 一例として、マーク形成部40A,40F,40Hのマーク形成面の高さが低く、マーク形成部40B,40D,40Iのマーク形成面の高さが中程度であり、マーク形成部40C,40E,40Gのマーク形成面の高さが高く設定されている。基準マーク部材32を製造する際には、一例としてワークの位置を3次元的に位置決め可能なマシニングセンタ等で切削工具を用いて平板部34及びマーク形成部40A~40Iを形成した後、小型のドリル等を用いてマーク形成面40As~40Isに基準マークMの凹部を形成してもよい。また、基準マークMの凹部を形成する代わりに、マーク形成面40As~40Isに基準マークMが表示されたシール等を貼着してもよい。
 一例として、平面視でマーク形成部40A及び40Gの基準マークMの中心を通るように基準座標系のX軸が設定され、平面視でマーク形成部40Aの基準マークMの中心及びマーク形成部40Cの基準マークMのほぼ中心を通るように基準座標系のY軸が設定され、X軸及びY軸の交点が原点34Sである。なお、基準マークMの配列及び個数は、同一平面上にない4個又は5個の基準マークMを含むという条件のもとで任意である。また、マーク形成部40A~40Iの高さの分布は、少なくとも互いに異なる高さの2つのマーク形成面(例えばマーク形成面40As,40Es)を含むという条件のもとで任意である。
 また、図7(A)において、ロボットハンド26の+Y方向の面に近接センサ44が取り付けられている。基準マークMの形成面(例えばマーク形成面40As)の大きさは、実際には撮像装置22Bの視野がマーク形成面40As上にあるときに、同じマーク形成面40Asに近接センサ44からの光ビームも照射されるように設定されている。図7(B)に示すように、近接センサ44は、光ビームLBをマーク形成面40Asに照射する照射部と、マーク形成面40Asからの反射光を受光して検出信号S1を出力する受光部とを有する。
 一例として、マーク形成面40Asが予め設定された合焦面44Pに合致しているときに検出信号S1が最大(又は最小値と最大値との中間値等)になることから、マーク形成面40Asが合焦面44Pに所定の誤差範囲内で合致していることを検出できる。また、合焦面44Pとフィンガー28A,28Bの作用点28Cとのz方向のオフセットδz1は予め計測されて記憶されている。このため、近接センサ44の検出信号S1を用いてマーク形成面40Asが合焦面44Pに合致していることを検出した後、ロボット座標系のz座標z1’からオフセットδz1を差し引くことで、ロボットハンド26の作用点28Cがマーク形成面40Asに接するときのz座標(z方向の位置)z1を求めることができる。
 また、マーク形成面40Asが合焦面44Pに合致しているときに、撮像装置22Bの視野22Fには、図8(A)に示すように、フィンガー28A,28Bの先端部の像及び基準マークMの像が収まっている。この画像信号を処理することによって、作用点28Cに対する基準マークMの中心のx方向及びy方向の位置ずれ量δx1及びδy1を求めることができる。このときのロボット座標系のx座標x1’及びy座標y1’から位置ずれ量δx1及びδy1を補正することによって、作用点28Cが基準マークMの中心に合致しているときのロボット座標系のx座標x1及びy座標y1を求めることができる。
 なお、図7(A)において、近接センサ44は、ロボットハンド26以外の位置、例えばロボットアーム18Cの先端部20A等に設けてもよい。また、近接センサ44の代わりに、マーク形成面40Asの面位置を検出できる任意の位置検出センサ、例えばTOF(Time of Flight)センサ、レーザセンサ、光ファイバを用いて対象面までの距離を計測できるセンサ、又は静電容量センサ等を使用できる。また、撮像装置22B及び近接センサ44の代わりに、ステレオカメラを使用して、ステレオカメラによって基準マークMの中心の作用点28Cに対する3次元(x方向、y方向、z方向)の位置ずれ量を検出してもよい。
 次に、ロボット装置4Aの制御装置は、図3(A)の制御装置10において、画像処理部46Dは撮像装置22Bからの撮像信号を処理して、ロボットハンド26の作用点28Cと対象物又は基準マークMとの2次元の位置ずれ量等を求める点が異なっている。さらに、ロボット装置4Aの制御装置には、図3(B)に示すように、近接センサ44の検出信号S1を処理して被検面が合焦面44Pに合致しているかどうかを検出するz位置検出部46Cが追加されている。この他のロボット装置4Aの機構部及び制御装置の構成は、第1の実施形態のロボット装置4と同様である。
 次に、本実施形態の基準マーク部材32の製造方法の一例につき図9(A)のフローチャートを参照して説明する。まず、図9(A)のステップ102において、基準マーク部材32の本体部(図7(C)の平板部34及びマーク形成部40A~40I)を切削加工等で形成する。さらにステップ104において、その本体部のマーク形成部40A~40Iの表面(マーク形成面40As~40Is)に、ドリル加工等で基準マークMを形成する。これによって基準マーク部材32が完成する。次のステップ106において、例えば3次元測定機を用いてマーク形成面40As~40Isの全部の基準マークMの中心の3次元座標を計測する。この際に、基準マークMが凹部で形成されている場合、3次元測定機のプローブとしていわゆるタッチプローブを使用し、基準マークMの中心の凹部にそのタッチプローブを接触させたときの3次元座標を取り込むことによって、各基準マークMの中心の座標を正確に計測できる。なお、基準マークMを検出するセンサとしては、タッチプローブに限らず、例えば光学的に基準マークMを検出する撮像装置等のセンサ等も使用できる。また、複数のマーク形成部40A~40Iの高さはそれぞれ高精度に加工できる。このため、各基準マークMの高さは、マーク形成部40Aの高さに対する他のマーク形成部40B~40Iの加工された高さの差分としてもよい。
 さらに、その3次元測定機の計算部において、一例として、基準マーク部材32の端部のマーク形成部40Aの基準マークMの中心を原点34Sとして、平面視で両端のマーク形成部40A,40Gの基準マークMの中心を通るようにX軸を設定し、平面視でマーク形成部40Aの基準マークMの中心及びマーク形成部40Cの基準マークMのほぼ中心を通り、X軸に直交するようにY軸を設定し、そのX軸及びY軸に直交するようにZ軸を設定する。そして、各基準マークMの計測された座標をそのX軸、Y軸、Z軸に沿った値に変換することによって、各基準マークMの中心の基準座標系(X,Y,Z)上の位置が求められる。求められた全部の基準マークMの位置は、その3次元測定機の計算部から制御装置10の制御情報入出力部46Bを介して記憶部46Iに記憶される。
 その後、ステップ108において、図7(A)に示すようにロボット装置4Aが設置されている設置面2aに、押さえ具36A,36B,36C及びボルトBによって基準マーク部材32を固定する。この際に、基準座標系(X,Y,Z)のX軸及びY軸はそれぞれロボット座標系(x,y,z)のx軸及びy軸にほぼ平行になるように設定されることが好ましい。さらに、ロボット座標系(x,y,z)の原点に対する基準座標系(X,Y,Z)の原点のx方向、y方向、z方向のおおまかなオフセットが求められており、そのオフセットが記憶部46Iに記憶されている。
 次に、本実施形態のロボット装置4Aのロボットハンド26のドリフトによる位置変動のキャリブレーションを行う方法(制御方法の一部)の一例につき図9(B)のフローチャートを参照して説明する。一例として基準マーク部材32のn個(nは4以上の整数)の基準マークMの中心位置を検出するものとする。
 まず図9(B)のステップ112において、座標算出部46Eで6個の角度センサ48A~48Fの検出値を用いて所定のサンプリングレートでロボット座標系(x,y,z)上でのロボットハンド26の位置を算出する。本実施形態において、複数の基準マークMの位置を検出する際には、ロボットハンド26(ロボットアーム18Cの先端部20A)の3方向の角度は一定の角度に設定される。具体的に、ロボットハンド26(先端部20A)はz軸に平行で、かつ鉛直方向(-z方向)を向くように設定され、先端部20Aの回転角θ3は一定の値(例えば0度)になるように設定されてもよい。
 そして、ステップ114において、座標算出部46Eで算出されたロボットハンド26の位置が、基準マーク部材32の基準座標系の原点34S(マーク形成面40As)の上方に近づくようにロボットアーム18A~18Cが駆動される。そして、ステップ116において、撮像装置22Bの視野22F内にマーク形成面40Asの基準マークMの像が入った後、近接センサ44の検出信号を用いて、マーク形成面40Asが合焦面44Pに合致するようにロボットハンド26のz方向の位置を調整する。この状態で撮像装置22Bでフィンガー28A,28Bの作用点28Cと基準マークMの中心との2次元の位置ずれ量を検出する。さらに、ステップ118において、座標算出部46Eで算出されたロボットハンド26の位置を、その位置ずれ量及び上述のオフセットδz1で補正することによって、基準マークMの中心がフィンガー28A,28Bの作用点28Cに合致しているときのロボット座標系の位置(x1,y1,z1)を求めることができる。求められた位置は座標変換部46Fに供給される。このときの基準座標系上での基準マークMの既知の位置(X1,Y1,Z1)(ここでは(0,0,0))も記憶部46Iから座標変換部46Fに供給される。
 次のステップ120で別の基準マークMを検出するかどうかを判定する。ここでは検出する基準マークMが残っているため、n個の基準マークMが検出されるまで、ステップ116~118の動作が繰り返されて、i番目の基準マークMを検出したときのロボットハンド26のロボット座標系上の位置(xi,yi,zi)(i=2~n)が求められる。求められた位置及びn番目の基準マークMの基準座標系上の既知の位置(Xi,Yi,Zi)は座標変換部46Fに供給される。
 なお、このように必要な基準マークMの検出が終わった後、図1の設置面2aから基準マーク部材32を取り外してもよい。そして、取り外す前の基準座標系の原点34S及びX軸、Y軸の方向が分かるようなマークが形成された工具を設置面2aに設置しておいてもよい。今後はその工具を用いて後述の基準座標系上の目標位置を設定できる。言い替えると、ロボット装置4Aは必ずしも基準マーク部材32を備える必要はない。
 必要な基準マークMの検出が終わった後、動作はステップ122に移行して、座標変換部46Fでは、上述の式(3B)の左辺の(X,Y,Z)に既知の値(Xi,Yi,Zi)を代入し、右辺の(x,y,z)に検出された値(xi,yi,zi)(i=1~n)を代入したときの変換行列Bの複数の係数を最小2乗法で算出する。この際に、座標変換部46Fでは、変換行列Bの逆行列B-1を求めて座標補正部46Gに供給する。また、予め例えばオペレータは、制御情報入出力部46B及び出制御部46Aを介して記憶部46Iに、基準座標系(X,Y,Z)上でのロボットハンド26の1組の目標位置(Xm,Ym,Zm)(m=1~M)(Mは移動回数を示す整数)を記憶させておく。
 次のステップ124で座標補正部46Gは、記憶部46Iから基準座標系(X,Y,Z)上でのロボットハンド26の目標位置(Xm,Ym,Zm)(m=1~M)を読み出す。次のステップ126において座標補正部46Gは、その目標位置を式(4)の右辺に代入して逆行列を掛けることによって、ロボット座標系上でのロボットハンド26の移動位置(xm,ym,zm)を算出する。その位置はアーム制御部46Hに供給される。ステップ128において、座標算出部46Eで算出されるロボットハンド26の位置がその移動位置(駆動位置)(xm,ym,zm)になるようにロボットアーム18A~18Cを駆動する。この際に、ロボットハンド26の位置がその移動位置(xm,ym,zm)になると、ロボットハンド26のフィンガー28A,28Bの間には例えば把持対象のワーク(不図示)がある。この状態で、ロボットハンド26のフィンガー28A,28Bがそのワークを把持する。そして、ステップ124,126,128を繰り返すことによって、ロボットハンド26がそのワークを例えば移動先に移動してフィンガー28A,28Bからワークを離脱させる。そして、ステップ130で次の目標位置がなくなったときにロボットハンド26による操作が終了する。
 このキャリブレーション方法によれば、基準マーク部材32に設定された基準座標系(X,Y,Z)上で位置が規定された複数の基準マークMを検出することによって、ロボットハンド26(ロボットアーム18C)のロボット座標系(x,y,z)上の位置の変換行列B(アフィン変換)を用いる線形誤差のキャリブレーションを行うことができる。さらには、ステップ122において、式(5B)のホモグラフィー変換の変換行列H3を求め、この変換行列H3の逆行列と、目標位置(Xm,Ym,Zm)から求める中間座標(X’,Y’,Z’,W’)とからロボット座標系上の移動位置(xm,ym,zm)を求めてもよい。この移動位置(xm,ym,zm)を用いてロボットアーム18A~18Cを駆動することによって、線形誤差及び弱い非線形誤差を含む誤差を補正してドリフトによるロボットハンド26の位置の変動のキャリブレーションを高精度に行うことができる。
 上述のように本実施形態のロボットアーム18Cを備えるロボット装置4Aは、ロボットアーム18Cの変位を検出する複数の角度センサ48A~48F(検出部)と、角度センサ48A~48Fの検出結果を用いてロボットアーム18C(又はロボットアーム18Cに接合されたロボットハンド26)の3次元のロボット座標系(第1座標系)上での位置を求める座標算出部46E(演算部)と、基準マーク部材32(基準部材)に設けられてそれぞれ3次元の基準座標系(第2座標系)上での位置が規定された複数の基準マークMを順次検出可能であるとともに、ロボットアーム18Cに支持された撮像装置22B(マーク検出部)と、撮像装置22Bで複数の基準マークMを検出したときの、ロボットアーム18Cのロボット座標系上での位置と基準マークMの基準座標系上での位置との間の非線形成分を含む変換行列H3(変換関係)を求める座標変換部46Fと、基準座標系上で指定された目標位置をその変換関係を用いてロボット座標系上でのロボットアーム18Cの位置に変換してロボットアーム18Cの位置を制御する座標補正部46G及びアーム制御部(制御部)と、を備えている。
 また、本実施形態のロボットアーム18Cを備えるロボット装置4Aの制御方法は、複数の角度センサ48A~48Fの検出結果を演算することによってロボットアーム18Cのロボット座標系(x,y,z)上での位置を求めるステップ112と、基準マーク部材32に設けられてそれぞれ基準座標系上での位置が規定された複数の基準マークMを、ロボットアーム18Cに支持された撮像装置22Bを用いて順次検出するステップ116と、基準マークMを検出しているときのロボットアーム18Cのロボット座標系上での位置と、検出された基準マークMの基準座標系上での位置との間の非線形成分を含む変換行列H3を求めるステップ122と、基準座標系上で指定された目標位置をその変換行列H3を用いてロボット座標系上でのロボットアーム18Cの位置に変換してロボットアーム18Cの位置を制御するステップ124,126,128と、を含んでいる。
 本実施形態によれば、基準マーク部材32の複数の基準マークMを検出し、ロボットアーム18Cのロボット座標系上での位置と、検出された基準マークMの基準座標系上での位置との間の変換行列H3(変換関係)を求めている。このため、ロボットハンド26(ロボットアーム18C)のロボット座標系上の位置がドリフトによって変動している場合でも、ロボットハンド26のロボット座標系上での位置の線形誤差及び弱い非線形誤差を含む誤差を補正して、キャリブレーションを容易にかつ高精度に行うことができる。そして、基準座標系上で指定された目標位置をその変換関係を用いてロボット座標系上でのロボットハンド26の位置に変換することによって、ロボットハンド26(ロボットアーム18C)を目標とする位置に正確に、かつ迅速に移動できる。また、ロボットハンド26の位置を制御しているため、種々の形状の対象物(ワーク)の位置までロボットハンド26の作用点を高精度に移動できる。
 なお、上述の実施形態では以下のような変形が可能である。
 まず、上述の実施形態において、式(3B)に示す変換行列Bの逆行列を計算する場合には、複数の基準マークMの検出によって、基準座標系(X,Y,Z)上の位置をロボット座標系(x,y,z)上の位置に変換する変換行列Cを求めてもよい。この場合には、基準座標系上の目標位置(Xm,Ym,Zm)からロボット座標系上の移動位置を求める際には、変換行列Cをそのまま使用できるので、計算が容易である。
 また、上述の実施形態では、同一平面上にない4個又は5個の基準マークMを含む複数の基準マークMを検出している。しかしながら、例えばロボット装置4Aのロボットアーム18Cのロボットハンド26の作用点がほぼz方向の位置が同じ同一平面上を移動するような場合には、基準マーク部材32として、z軸に垂直な広いマーク形成面を有し、そのマーク形成面に同一直線上にない3つの基準マークを含む複数の基準マークが形成された基準マーク部材を使用してもよい。この場合、上述の式(3B)の行列Bの要素の内、倒れTxy,Tyx、倍率の偏差mx,my、及びシフトSx,Syの6個の要素を決定すればよく、1つの基準マークMの検出でx方向、y方向の2つの式が得られる。このため、撮像装置22B及び近接センサ44を用いて同一直線上にない3つの基準マークMを検出することによって、行列Bのその6個の要素を決定できる。行列Bの他の6個の要素は例えば0にしてもよい。その後、行列Bの逆行列を式(4)に適用することで、2次元平面上の目標位置から対応するロボット座標系上の移動位置を高精度に求めることができる。
 次に、上述の実施形態において、ロボット座標系の位置を基準座標系の位置に変換する式(3B)のアフィン変換の変換行列Bを求め、この変換行列Bを用いてロボット座標系のキャリブレーションを行う場合には、ロボット座標系の位置に関する線形誤差のみが補正される。これに対してさらに非線形成分の補正を行うようにしてもよい。
 3次元特有のドリフトによる非線形誤差の一例として、図10(A)に示すように、ロボット座標系(x,y,z)において、z方向の位置に比例して、z軸の周りに2次元の座標系(x,y)が次第に回転するように見える誤差がある。この場合、上述の式(1E)中のz軸の周りの回転を表す行列において、角度γを位置zに比例するaz(aは一定の係数)に置き換えることによって、3行3列の行列Dを用いる次の式(8A)が得られる。なお、式(8A)は、基準座標系の原点34Sを(Sx,Sy,Sz)だけシフトさせて、原点34Sを仮想的にロボット座標系の原点14Sに一致させた場合の関係式である。
Figure JPOXMLDOC01-appb-I000009
 式(8A)の右辺のロボット座標系(x,y,z)にその検出された位置(xn、yn、zn)を代入し、左辺に基準マークMの基準座標系(X,Y,Z)上の既知の位置(Xn,Yn,Zn)(n=1~N)を代入して、例えば最小2乗法で係数aの値を決めることができる。その後、式(4)に対応して、基準座標系(X,Y,Z)上の目標位置に式(8A)の行列Dの逆行列を掛けることで回転誤差が補正されたロボット座標系(x,y,z)上での移動位置を求めることができる。
 なお、式(8A)中の行列Dの逆行列D-1は、三角関数の行列が位置zにのみ依存するような単純な場合は、上述の式(8B)のように簡単に書ける。なお、式(8B)中の位置zとして近似的に位置Zを用いてもよい。しかしながら、実際には行列Dの逆行列は複雑になっている場合がある。その場合には、以下のようにしてもよい。
 すなわち、まずロボット座標系(x,y,z)上で検出されたN個の位置(xn,yn,zn)(n=1~N)に関して、対応する基準マークMの基準座標系(X,Y,Z)上の既知の位置(Xn,Yn,Zn)を式(4)に代入して、線形誤差が補正されたロボット座標系(x,y,z)上での位置(xn’,yn’,zn’)を算出する。その後、検出された位置と線形誤差が補正された位置との偏差δxn(=xn-xn’),δyn(=yn-yn’),δzn(=zn-zn’)を求める。さらに、基準マークMの既知の位置(Xn,Yn,Zn)からシフトSx,Sy,Szを差し引いたシフト位置Xn’(=Xn-Sx),Yn’(=Yn-Sy),Zn’(=Zn-Sz)を求める。そして、式(8A)に対応する次の式(8C)の右辺の(X’,Y’,Z’)にシフト位置Xn’,Yn’,Zn’を代入し、左辺の(δx,δy,δz)に偏差δxn,δyn,δznを代入し(n=1~N)、例えば最小2乗法で係数aを求める。
Figure JPOXMLDOC01-appb-I000010
 その後、基準座標系上の目標位置(Xm,Ym,Zm)を式(4)に代入してロボット座標系上の移動位置(xm,ym,zm)を求めた後、式(8C)の(X’,Y’,Z’)にシフト位置(Xm-Sx,Ym-Sy,Zm-Sz)を代入して、ロボット座標系のz軸の回転による偏差(δxm,δym,δzm)を求める。そして、式(4)で求めた移動位置(xm,ym,zm)に、式(8C)から求めた偏差(δxm,δym,δzm)を加算することによって、z軸の回転による誤差が補正された移動位置を求めることができる。
 さらに、ロボット座標系の回転は任意の軸の周りでもよい。その回転軸を求めるには、一例として図10(B)に示すように、図4(B)のドリフト立体54Cと同様のドリフト立体54Dにおいて、対向する2つの面の中でそれぞれ回転中心を求めればよい。例えば対向する2つの面54Da,54Dbの回転中心を通る軸として軸X’が求められる。同様に他の2組の2つの面の回転中心を通る軸Y’,Z’も求められる。
 次に、軸X’,Y’,Z’に沿った方向の位置を位置X’,Y’,Z’として、軸X’,Y’,Z’に沿った方向の回転角をaX’,bY’,cZ’として、最小2乗法等で係数a,b,cを決定すればよい。
 次に、非線形成分の補正方法の一例につき説明する。このため、まずロボット座標系上で検出されたN個の位置(xn,yn,zn)(n=1~N)に関して、対応する基準マークMの基準座標系上の既知の位置(Xn,Yn,Zn)から式(4)を用いて、線形誤差が補正されたロボット座標系上での位置(xn’,yn’,zn’)を算出する。このとき、次のように検出された位置と線形誤差が補正された位置との偏差dxn,dyn,dzn(n=1~N)が非線形誤差である。この非線形誤差は線形誤差よりもかなり小さい値である。
 dxn=xn-xn’ …(9A),dyn=yn-yn’ …(9B),
 dzn=zn-zn’ …(9C)
 さらに、これらの非線形誤差をフィッティング係数pi,qi,ri(i=1,2,3,…)を用いてx,y,zの関数で表す。
 dxn=p1+p2x+p3y+p4z+p5x2 +p6y2 +p7z2 +p8xy+p9yz+p10zx+p11x3 +p12y3 +…   …(10A)
 dyn=q1+q2x+q3y+q4z+q5x2 +q6y2 +q7z2 +q8xy+q9yz+q10zx+q11x3 +q12y3 +…   …(10B)
 dzn=r1+r2x+r3y+r4z+r5x2 +r6y2 +r7z2 +r8xy+r9yz+r10zx+r11x3 +r12y3 +…   …(10C)
 dxn,dyn,dznは線形誤差が補正されているため、係数p1~p4,q1~q4,r1~r4は小さい値になる。そして、例えばdxn(n=1~N)と式(10A)の右辺との差分の2乗和が最小になるように、最小二乗法で係数piを求めることができる。同様に他の係数qi及びriも求めることができる。なお、偏差dxn,dyn,dznを基準座標系(X,Y,Z)の位置X,Y,Zの関数で表す方法もある。これらの係数pi,qi,ri及び式(7)で計算される位置xm,ym,zmを用いて偏差dxm,dym,dzmを計算し、計算結果を位置xm,ym,zmに加算することによって、非線形誤差が補正されたロボット座標系(x,y,z)上の移動位置を算出できる。
 次に、3次元特有の誤差として、図11に示すようにロボット座標系(x,y,z)の原点14Sからロボットハンド26までの距離(ロボットアーム18A~18Cの先端までの長さ)による撓みがある。すなわち、ロボットアーム18A~18Cは、自重や把持するワークの重量で先端部が撓まないように太く設計されている。それでも、発熱や経時変化等のドリフトによって、原点14Sからの距離Lが長くなるとロボットアーム18A~18Cの先端が撓む恐れがある。図8において、ロボットハンド26の原点14Sからの距離L1のときの-z方向の撓みをdz1とすると、距離L1よりも長い距離L2のときのロボットハンド26の撓みdz2は大きくなる。
 すなわち、ロボットハンド26(先端部20A)の-z方向の撓みdzは、次のように係数si(i=1,2,…)を用いてロボットハンド26の原点14S(ベース部14の中心)からの距離Lの関数(非線形な固有関数)となる。
 dz=s1L+s2L2 +s3L3 +s4L44 +… …(11)
 L=(x2 +y2 )1/2       …(12)
 ロボットハンド26(腕先)の荷重が大きい場合にはdzは主にLの3乗に比例して撓み、ロボットアーム18A~18Cが均一に重い場合(等分布荷重)には、dzは主にLの4乗に比例して撓む。そこで、例えば基準マーク部材32の複数の基準マークMを検出する際のロボットハンド26の位置zとその基準マークMの既知の位置Zとの差分を式(11)に当てはめることで係数siを求めることができる。求めた係数siを用いて、距離Lに応じてロボットハンド26の位置zを補正することで、ロボットハンド26の位置をより目標位置に近づけることができる。
 [第3の実施形態]
 次に、第3の実施形態につき図12(A)~(C)を参照して説明する。
 図12(A)は本実施形態の基準マーク部材32Aの構成要素のマーク形成部60を示し、図12(B)は基準マーク部材32Aを示す。図12(B)において、基準マーク部材32Aは、矩形の平板状で平面度の良好な定盤62の表面に複数(図12(B)では6個)のマーク形成部60を固定したものである。なお、マーク形成部60の個数及び配置は任意である。以下、定盤62の短辺方向をX方向、長辺方向をY方向として説明する。定盤62の表面には、X方向に所定間隔で、かつY方向に間隔LY(X方向の間隔の1.5~2倍程度の間隔)で多数のねじ穴64が形成されている。ねじ穴64のX方向、Y方向の間隔は高精度に加工(設定)されている。
 なお、定盤62としていわゆる光学定盤を使用してもよい。さらに、例えば図1のロボット装置4のようにロボットアーム18C(ロボットハンド26)の可動範囲が分かっているロボット装置に基準マーク部材を設置する場合、そのロボットアームの可動範囲内の所定領域を覆う大きさの平板状部材を用意してもよい。そして、その平板状部材の表面の位置精度を保った複数位置にねじ穴を設けておき、そのねじ穴を設けた平板状部材をそのロボット装置の設置面に例えばロボット台として設置してもよい。
 一方、図12(A)において、マーク形成部60は階段状で、その長手方向の低い平板状の同じ高さの両端部60a,60dに間隔LYで、ねじ穴64に螺合可能なボルト66を挿通することが可能な円形の開口60c,60dが形成されている。また、マーク形成部60の両端部60a,60dの間に、低い段差のマーク形成面60e、中程度の段差のマーク形成面60f、及び高い段差のマーク形成面60gが形成されている。マーク形成面60e~60gはそれぞれマーク形成部60の底面に平行な平面である。マーク形成面60e~60gの大きさ及びマーク形成部60の底面からの高さは予め規定されて記憶されている。さらに、3つのマーク形成面60e~60gの中心にそれぞれ基準マークMが形成されている。定盤62及びマーク形成部60は金属製であるが、それ以外の材料でも可能である。マーク形成部60及び基準マークMは例えばフライス盤等を用いて高精度に加工できる。なお、マーク形成部60に設ける基準マークMも、例えばシールを貼着したものでもよい。
 図12(B)において、定盤62の表面の一例として6箇所の2つのねじ穴64に、それぞれ2本のボルト66を介して6個のマーク形成部60が固定されている。1つのマーク形成部60には3つの基準マークMが形成されているため、基準マーク部材32Aには全体として18個の基準マークMが形成されている。定盤62の表面にマーク形成部60を固定するときのX方向、Y方向の精度は例えば0.1mm程度以下であり、マーク形成部60の形状の加工精度は例えば0.01mm程度以下である
 本実施形態において、図7(A)のロボット装置4Aを使用する場合、図7(A)の設置面2a上に定盤62を設置した後、その6個のマーク形成部60が定盤62に固定される。必要に応じて、定盤62の角部を図7(A)の押さえ具36A~36Cで固定してもよい。このとき、基準マーク部材32Aの端部のマーク形成部60のマーク形成面60eの基準マークMの中心を原点34Sとして、原点34Sを通りX方向及びY方向に平行な軸をX軸及びY軸として、原点34Sを通り定盤62の表面に垂直な軸をZ軸とすると、基準座標系(X,Y,Z)が構成される。基準座標系(X,Y,Z)上での基準マーク部材32Aの全部の基準マークMの位置(X,Y,Z)はほぼ0.1mm程度以下の精度で既知である。基準マーク部材32Aの座標系(X,Y,Z)上での全部の基準マークMの位置の情報は図3の記憶部46Iに記憶される。本実施形態においても、基準マーク部材32Aにおいて検出する基準マークMは、同一平面上にない少なくとも4個の基準マークMでよい。
 本実施形態によれば、基準マーク部材32Aを用いることによって、第2の実施形態と同様に、ロボット装置4Aにおいてドリフトによるロボット座標系(x,y,z)上での位置の変動のキャリブレーションを容易に行うことができる。また、本実施形態の基準マーク部材32Aの基準マークMの位置はほぼ加工精度のみで定まるため、基準マークMの位置を計測するための計測装置が不要である。さらに、本実施形態では、定盤62上のマーク形成部60の配置及び個数を任意に容易に変更できる。このため、例えば上述の式(9A)~(9C)のように計算できる座標系の非線形誤差をも高精度に検出できるようにするなど、種々の条件で位置変動のキャリブレーションを容易に行うことができる。
 なお、上述の実施形態において、定盤62の表面には直交するX方向及びY方向に所定間隔でねじ穴64が形成されている。なお、定盤62の表面には予め定めた任意の複数の位置にねじ穴64を形成しておき、その複数のねじ穴64に複数のマーク形成部60を固定してもよい。
 また、上述の実施形態において、図12(C)に示すように、マーク形成部60の3つの基準マークMの他に、マーク形成部60のY軸にほぼ垂直な側面60h,60i,60jにそれぞれ基準マークMYを形成してもよい。基準マークMYの形状は基準マークMと同じでもよいが、基準マークMの形状と異なる形状でもよい。この変形例のマーク形成部60を用いて、例えば最も高い位置又は次に高い位置の側面60j,60iの基準マークMYを検出する場合、図1のロボット装置4のロボットアーム18C(ロボットハンド26)をY軸に平行に+Y方向に向けて設定し、先端部20Aの回転角を0度等に設定してもよい。このような検出方法を用いることによって、ロボットアーム18CをY軸に平行に設定して作業を行う場合のロボット座標系(x,y,z)でのドリフトによる位置の変動のキャリブレーションを容易に行うことができる。
 次に、上述の実施形態では基準マークとして十字型等の基準マークMが使用されている。基準マークとしては、任意の形状のマークが使用可能である。基準マークとしては、図13(A)に示すエイプリルタグ(AprilTag又はApril Tag)、又は図13(B)に示すQRコード(登録商標)(2次元バーコード)のような識別コードを使用することもできる。その識別コードには当該基準マークの2次元又は3次元の位置又は設計上の位置からの位置ずれ量の情報を付加しておくことが好ましい。
 次に、上述の実施形態のロボット装置4,4Aは垂直多関節型である。これに対して、ロボット装置として、水平多関節型(スカラ型)のロボット装置、パラレルリンク型のロボット装置、直交型のロボット装置、又は他の任意の関節構造を備える各種ロボット装置(例えば組立ロボット、人間協調型ロボット等)を使用する場合にも上述の実施形態を適用できる。
 また、本明細書には以下の発明の態様も記載されている。
 1)ロボット装置であって、特定部を有し、前記特定部を3次元の第1座標系上の複数の位置に移動するロボットアームと、複数の前記位置にある前記特定部の3次元の第2座標系上の位置をそれぞれ計測する計測装置と、前記特定部の前記第1座標系上での位置と前記第2座標系上での位置との間の非線形成分を含む変換関係を求める変換部と、前記第2座標系上で指定された位置を前記変換関係を用いて前記第1座標系上での位置に変換し、該変換された位置に基づいて前記ロボットアームを制御する制御部と、を備えるロボット装置。
 2)前記ロボットアームの複数の部分の変位情報を検出する複数の検出部を備え、3次元の前記第1座標系は、複数の前記検出部の検出結果を用いて定められる座標系である1に記載のロボット装置。
 3)前記非線形成分を含む前記変換関係は、3次元ホモグラフィー変換を含む1又は2に記載のロボット装置。
 4)前記特定部の前記第1座標系上の複数の前記位置の数をn(nは5以上の整数)として、前記変換関係は、3n行×15列の行列を含む、1から3のいずれか一項に記載のロボット装置。
 5)前記非線形成分を含む前記変換関係は、3次元アフィン変換及び所定の非線形変換を含む1から4のいずれか一項に記載のロボット装置。
 6)前記所定の非線形変換は、位置及び距離の少なくとも一方に関して少なくとも2次の変換関係を含む5に記載のロボット装置。
 7)前記計測装置は、対象物の3次元の位置情報を取得可能な立体カメラであり、前記第2座標系は、前記立体カメラの視野内に設定されている座標系である1から6のいずれか一項に記載のロボット装置。
 8) 前記特定部は、前記ロボットアームに把持されている球体である1から7のいずれか一項に記載のロボット装置。
 9)前記特定部は、前記ロボットアームに設けられた、位置情報を示す識別マークである1から7のいずれか一項に記載のロボット装置。
 10)ロボットアームを備えるロボット装置であって、前記ロボットアームの複数の部分の変位情報を検出する複数の検出部と、複数の前記検出部の検出結果を用いて前記ロボットアームの3次元の第1座標系上での位置を求める演算部と、基準部材に設けられてそれぞれ3次元の第2座標系上での位置が規定された複数の基準マークを順次検出可能であるとともに、前記ロボットアームに支持されたマーク検出部と、前記マーク検出部で複数の前記基準マークを検出したときの、前記ロボットアームの前記第1座標系上での位置と前記基準マークの前記第2座標系上での位置との間の非線形成分を含む変換関係を求める変換部と、前記第2座標系上で指定された位置を前記変換関係を用いて前記第1座標系上での前記ロボットアームの位置に変換し、該変換された位置に基づいて前記ロボットアームを制御する制御部と、を備えるロボット装置。
 11)前記非線形成分を含む前記変換関係は、3次元ホモグラフィー変換を含む10に記載のロボット装置。
 12)検出対象の前記基準マークの数をn(nは5以上の整数)として、前記変換関係は、3n行×15列の行列を含む、10又は11に記載のロボット装置。
 13)前記非線形成分を含む前記変換関係は、3次元アフィン変換及び所定の非線形変換を含む10又は11に記載のロボット装置。
 14)前記所定の非線形変換は、位置又は距離に関して少なくとも2次の変換関係を含む13に記載のロボット装置。
 15)前記基準部材は、表面の予め定められた複数の位置に複数のねじ穴が設けられた定盤と、前記定盤の前記表面に前記ねじ穴を用いて固定されたそれぞれ互いに高さが異なる複数のマーク形成面を持つ複数のマーク形成部材とを有し、複数の前記マーク形成部材の複数の前記マーク形成面にそれぞれ前記基準マークが形成された、10から14のいずれか一項に記載のロボット装置。
 16)ロボットアームを備えるロボット装置の制御方法であって、前記ロボットアームを用いて、前記ロボットアームが有する特定部を3次元の第1座標系上の複数の位置に移動することと、計測装置を用いて、複数の前記位置にある前記特定部の3次元の第2座標系上の位置をそれぞれ計測することと、前記特定部の前記第1座標系上での位置と前記第2座標系上での位置との間の非線形成分を含む変換関係を求めることと、前記第2座標系上で指定された位置を前記変換関係を用いて前記第1座標系上での位置に変換し、該変換された位置に基づいて前記ロボットアームを制御することと、を含む制御方法。
 17)3次元の前記第1座標系は、前記ロボットアームの複数の部分の変位情報を検出する複数の検出部の検出結果を用いて定められる座標系である16に記載の制御方法。
 18)前記非線形成分を含む前記変換関係は、3次元ホモグラフィー変換を含む16又は17に記載の制御方法。
 19)前記特定部の前記第1座標系上の複数の前記位置の数をn(nは5以上の整数)として、前記変換関係は、3n行×15列の行列を含む、16から18のいずれか一項に記載の制御方法。
 20)前記非線形成分を含む前記変換関係は、3次元アフィン変換及び所定の非線形変換を含む16又は17に記載の制御方法。
 21)前記所定の非線形変換は、位置及び距離の少なくとも一方に関して少なくとも2次の変換関係を含む20に記載の制御方法。
 22)前記計測装置は、対象物の3次元の位置情報を取得可能な立体カメラであり、前記第2座標系は、前記立体カメラの視野内に設定されている座標系である16から21のいずれか一項に記載の制御方法。
 23)前記特定部は、前記ロボットアームに把持されている球体である16から22のいずれか一項に記載の制御方法。
 24)前記特定部は、前記ロボットアームに設けられた、位置情報を示す識別マークである16から22のいずれか一項に記載の制御方法。
 25)ロボットアームを備えるロボット装置の制御方法であって、前記ロボットアームの複数の部分の変位情報を用いて前記ロボットアームの3次元の第1座標系上での位置を求めることと、基準部材に設けられてそれぞれ3次元の第2座標系上での位置が規定された複数の基準マークを、前記ロボットアームに支持されたマーク検出部を用いてそれぞれ検出することと、前記基準マークを検出しているときの前記ロボットアームの前記第1座標系上での位置と、検出された前記基準マークの前記第2座標系上での位置との間の非線形成分を含む変換関係を求めることと、前記第2座標系上で指定された位置を前記変換関係を用いて前記第1座標系上での前記ロボットアームの位置に変換し、該変換された位置に基づいて前記ロボットアームを制御することと、を含むロボット装置の制御方法。
 26)前記非線形成分を含む前記変換関係は、3次元ホモグラフィー変換を含む25に記載の制御方法。
 27)検出対象の前記基準マークの数をn(nは5以上の整数)として、前記変換関係は、3n行×15列の行列を含む、25又は26に記載の制御方法。
 28)前記非線形成分を含む前記変換関係は、3次元アフィン変換及び所定の非線形変換を含む25に記載の制御方法。
 29)前記所定の非線形変換は、位置及び距離の少なくとも一方に関して少なくとも2次の変換関係を含む28に記載の制御方法。
 30)前記基準部材は、表面の予め定められた複数の位置に複数のねじ穴が設けられた定盤と、前記定盤の前記表面に前記ねじ穴を用いて固定されたそれぞれ互いに高さが異なる複数のマーク形成面を持つ複数のマーク形成部材とを有し、複数の前記マーク形成部材の複数の前記マーク形成面にそれぞれ前記基準マークが形成された、25から29のいずれか一項に記載の制御方法。
 M…基準マーク、4,4A…ロボット装置、10…ロボット装置の制御装置、12…ロボットハンドの制御装置、14…ベース部、18A~18C…ロボットアーム、20A…ロボットアーム18Cの先端部、22A,22B…撮像装置、24…ツールボール、26…ロボットハンド、28A,28B…フィンガー、32,32A…基準マーク部材、34…平板部、39i…計測点、40A~40I…マーク形成部、44…近接センサ、48A~48F…角度センサ、46E…座標算出部、60…マーク形成部、62…定盤

Claims (30)

  1.  ロボット装置であって、
     特定部を有し、前記特定部を3次元の第1座標系上の複数の位置に移動するロボットアームと、
     複数の前記位置にある前記特定部の3次元の第2座標系上の位置をそれぞれ計測する計測装置と、
     前記特定部の前記第1座標系上での位置と前記第2座標系上での位置との間の非線形成分を含む変換関係を求める変換部と、
     前記第2座標系上で指定された位置を前記変換関係を用いて前記第1座標系上での位置に変換し、該変換された位置に基づいて前記ロボットアームを制御する制御部と、を備えるロボット装置。
  2.  前記ロボットアームの複数の部分の変位情報を検出する複数の検出部を備え、
     3次元の前記第1座標系は、複数の前記検出部の検出結果を用いて定められる座標系である請求項1に記載のロボット装置。
  3.  前記非線形成分を含む前記変換関係は、3次元ホモグラフィー変換を含む請求項1に記載のロボット装置。
  4.  前記特定部の前記第1座標系上の複数の前記位置の数をn(nは5以上の整数)として、前記変換関係は、3n行×15列の行列を含む、請求項3に記載のロボット装置。
  5.  前記非線形成分を含む前記変換関係は、3次元アフィン変換及び所定の非線形変換を含む請求項1に記載のロボット装置。
  6.  前記所定の非線形変換は、位置及び距離の少なくとも一方に関して少なくとも2次の変換関係を含む請求項5に記載のロボット装置。
  7.  前記計測装置は、対象物の3次元の位置情報を取得可能な立体カメラであり、
     前記第2座標系は、前記立体カメラの視野内に設定されている座標系である請求項1に記載のロボット装置。
  8.  前記特定部は、前記ロボットアームに把持されている球体である請求項1に記載のロボット装置。
  9.  前記特定部は、前記ロボットアームに設けられた、位置情報を示す識別マークである請求項1に記載のロボット装置。
  10.  ロボットアームを備えるロボット装置であって、
     前記ロボットアームの複数の部分の変位情報を検出する複数の検出部と、
     複数の前記検出部の検出結果を用いて前記ロボットアームの3次元の第1座標系上での位置を求める演算部と、
     基準部材に設けられてそれぞれ3次元の第2座標系上での位置が規定された複数の基準マークを順次検出可能であるとともに、前記ロボットアームに支持されたマーク検出部と、
     前記マーク検出部で複数の前記基準マークを検出したときの、前記ロボットアームの前記第1座標系上での位置と前記基準マークの前記第2座標系上での位置との間の非線形成分を含む変換関係を求める変換部と、
     前記第2座標系上で指定された位置を前記変換関係を用いて前記第1座標系上での前記ロボットアームの位置に変換し、該変換された位置に基づいて前記ロボットアームを制御する制御部と、を備えるロボット装置。
  11.  前記非線形成分を含む前記変換関係は、3次元ホモグラフィー変換を含む請求項10に記載のロボット装置。
  12.  検出対象の前記基準マークの数をn(nは5以上の整数)として、前記変換関係は、3n行×15列の行列を含む、請求項11に記載のロボット装置。
  13.  前記非線形成分を含む前記変換関係は、3次元アフィン変換及び所定の非線形変換を含む請求項10に記載のロボット装置。
  14.  前記所定の非線形変換は、位置又は距離に関して少なくとも2次の変換関係を含む請求項13に記載のロボット装置。
  15.  前記基準部材は、表面の予め定められた複数の位置に複数のねじ穴が設けられた定盤と、前記定盤の前記表面に前記ねじ穴を用いて固定されたそれぞれ互いに高さが異なる複数のマーク形成面を持つ複数のマーク形成部材とを有し、
     複数の前記マーク形成部材の複数の前記マーク形成面にそれぞれ前記基準マークが形成された、請求項10に記載のロボット装置。
  16.  ロボットアームを備えるロボット装置の制御方法であって、
     前記ロボットアームを用いて、前記ロボットアームが有する特定部を3次元の第1座標系上の複数の位置に移動することと、
     計測装置を用いて、複数の前記位置にある前記特定部の3次元の第2座標系上の位置をそれぞれ計測することと、
     前記特定部の前記第1座標系上での位置と前記第2座標系上での位置との間の非線形成分を含む変換関係を求めることと、
     前記第2座標系上で指定された位置を前記変換関係を用いて前記第1座標系上での位置に変換し、該変換された位置に基づいて前記ロボットアームを制御することと、を含む制御方法。
  17.  3次元の前記第1座標系は、前記ロボットアームの複数の部分の変位情報を検出する複数の検出部の検出結果を用いて定められる座標系である請求項16に記載の制御方法。
  18.  前記非線形成分を含む前記変換関係は、3次元ホモグラフィー変換を含む請求項16に記載の制御方法。
  19.  前記特定部の前記第1座標系上の複数の前記位置の数をn(nは5以上の整数)として、前記変換関係は、3n行×15列の行列を含む、請求項18に記載の制御方法。
  20.  前記非線形成分を含む前記変換関係は、3次元アフィン変換及び所定の非線形変換を含む請求項16に記載の制御方法。
  21.  前記所定の非線形変換は、位置及び距離の少なくとも一方に関して少なくとも2次の変換関係を含む請求項20に記載の制御方法。
  22.  前記計測装置は、対象物の3次元の位置情報を取得可能な立体カメラであり、
     前記第2座標系は、前記立体カメラの視野内に設定されている座標系である請求項16に記載の制御方法。
  23.  前記特定部は、前記ロボットアームに把持されている球体である請求項16に記載の制御方法。
  24.  前記特定部は、前記ロボットアームに設けられた、位置情報を示す識別マークである請求項16に記載の制御方法。
  25.  ロボットアームを備えるロボット装置の制御方法であって、
     前記ロボットアームの複数の部分の変位情報を用いて前記ロボットアームの3次元の第1座標系上での位置を求めることと、
     基準部材に設けられてそれぞれ3次元の第2座標系上での位置が規定された複数の基準マークを、前記ロボットアームに支持されたマーク検出部を用いてそれぞれ検出することと、
     前記基準マークを検出しているときの前記ロボットアームの前記第1座標系上での位置と、検出された前記基準マークの前記第2座標系上での位置との間の非線形成分を含む変換関係を求めることと、
     前記第2座標系上で指定された位置を前記変換関係を用いて前記第1座標系上での前記ロボットアームの位置に変換し、該変換された位置に基づいて前記ロボットアームを制御することと、を含むロボット装置の制御方法。
  26.  前記非線形成分を含む前記変換関係は、3次元ホモグラフィー変換を含む請求項25に記載の制御方法。
  27.  検出対象の前記基準マークの数をn(nは5以上の整数)として、前記変換関係は、3n行×15列の行列を含む、請求項26に記載の制御方法。
  28.  前記非線形成分を含む前記変換関係は、3次元アフィン変換及び所定の非線形変換を含む請求項25に記載の制御方法。
  29.  前記所定の非線形変換は、位置及び距離の少なくとも一方に関して少なくとも2次の変換関係を含む請求項28に記載の制御方法。
  30.  前記基準部材は、表面の予め定められた複数の位置に複数のねじ穴が設けられた定盤と、前記定盤の前記表面に前記ねじ穴を用いて固定されたそれぞれ互いに高さが異なる複数のマーク形成面を持つ複数のマーク形成部材とを有し、
     複数の前記マーク形成部材の複数の前記マーク形成面にそれぞれ前記基準マークが形成された、請求項25に記載の制御方法。
PCT/JP2023/015738 2022-05-17 2023-04-20 ロボット装置及びその制御方法 WO2023223763A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/JP2022/020479 WO2023223410A1 (ja) 2022-05-17 2022-05-17 ロボット装置及びその制御方法
JPPCT/JP2022/020479 2022-05-17

Publications (1)

Publication Number Publication Date
WO2023223763A1 true WO2023223763A1 (ja) 2023-11-23

Family

ID=88834887

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/JP2022/020479 WO2023223410A1 (ja) 2022-05-17 2022-05-17 ロボット装置及びその制御方法
PCT/JP2023/015738 WO2023223763A1 (ja) 2022-05-17 2023-04-20 ロボット装置及びその制御方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/020479 WO2023223410A1 (ja) 2022-05-17 2022-05-17 ロボット装置及びその制御方法

Country Status (1)

Country Link
WO (2) WO2023223410A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016052695A (ja) * 2014-09-03 2016-04-14 キヤノン株式会社 ロボット装置、およびロボット装置の制御方法
US20180186004A1 (en) * 2017-01-04 2018-07-05 Samsung Electronics Co., Ltd. Robot and electronic device for performing hand-eye calibration
CN112025772A (zh) * 2020-07-28 2020-12-04 沈阳建筑大学 一种基于视觉测量的机械臂自主标定方法
WO2021050646A1 (en) * 2019-09-11 2021-03-18 Dmg Mori Co., Ltd. Robot-mounted moving device, system, and machine tool
CN112971984A (zh) * 2021-02-05 2021-06-18 上海阅行医疗科技有限公司 一种基于一体化手术机器人的坐标配准方法
JP2022017738A (ja) * 2020-07-14 2022-01-26 株式会社キーエンス 画像処理装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016052695A (ja) * 2014-09-03 2016-04-14 キヤノン株式会社 ロボット装置、およびロボット装置の制御方法
US20180186004A1 (en) * 2017-01-04 2018-07-05 Samsung Electronics Co., Ltd. Robot and electronic device for performing hand-eye calibration
WO2021050646A1 (en) * 2019-09-11 2021-03-18 Dmg Mori Co., Ltd. Robot-mounted moving device, system, and machine tool
JP2022017738A (ja) * 2020-07-14 2022-01-26 株式会社キーエンス 画像処理装置
CN112025772A (zh) * 2020-07-28 2020-12-04 沈阳建筑大学 一种基于视觉测量的机械臂自主标定方法
CN112971984A (zh) * 2021-02-05 2021-06-18 上海阅行医疗科技有限公司 一种基于一体化手术机器人的坐标配准方法

Also Published As

Publication number Publication date
WO2023223410A1 (ja) 2023-11-23

Similar Documents

Publication Publication Date Title
EP1809446B1 (en) Method and system to provide imporved accuracies in multi-jointed robots through kinematic robot model parameters determination
US9266241B2 (en) Robotic work object cell calibration system
JP5670416B2 (ja) ロボットシステム表示装置
US5929584A (en) Tool center point calibration apparatus and method
CA2292491A1 (en) Method and device for robot tool frame calibration
US9114534B2 (en) Robot calibration systems
Lembono et al. SCALAR: Simultaneous calibration of 2-D laser and robot kinematic parameters using planarity and distance constraints
US8485017B1 (en) Robotic work object cell calibration system
US9713869B2 (en) Calibration of robot work paths
CN110672049B (zh) 用于确定机器人坐标系与工件坐标系间关系的方法及系统
JP6900290B2 (ja) ロボットシステム
US9669546B2 (en) Robotic work object cell calibration method
US20140365006A1 (en) Visual Datum Reference Tool
TWI708667B (zh) 運動裝置之位置與姿態校正裝置及系統與方法
JPH07121214A (ja) ロボット用計測センサ装置並びに該装置を用いたキャリブレーション方法及び計測方法
JP2023541642A (ja) パラレルキネマティクスを較正するための方法及びアセンブリ
WO2023223763A1 (ja) ロボット装置及びその制御方法
JP5319271B2 (ja) ロボットのツール位置検出方法、ロボットと対象物との相対位置検出方法、及びそれらの装置
WO2014042668A2 (en) Automatic and manual robot work finder calibration systems and methods
Zhu et al. Calibration of laser displacement sensor used by industrial robots
Gatla et al. Calibration of industrial robots by magnifying errors on a distant plane
TWI710441B (zh) 機器手臂的座標校正方法
KR20010072332A (ko) 3차원 택틸 시임 추적 장치
Motta Robot Calibration: Modeling, Measurement and Applications
US20150306769A1 (en) Calibration for robotic systems

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

Country of ref document: EP

Kind code of ref document: A1