Calibration and programming of robots
09833897 · 2017-12-05
Assignee
Inventors
- Rune SØE-KNUDSEN (Årslev, DK)
- Esben Hallundbæk Østergaard (Odense C, DK)
- Henrik Gordon PETERSEN (Odense NV, DK)
Cpc classification
B25J9/1682
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1694
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1656
PERFORMING OPERATIONS; TRANSPORTING
G05B2219/39049
PHYSICS
Y10S901/05
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
B25J9/009
PERFORMING OPERATIONS; TRANSPORTING
International classification
B25J9/00
PERFORMING OPERATIONS; TRANSPORTING
Abstract
Methods includes calibrating robots without the use of external measurement equipment and copying working programs between un-calibrated robots. Both methods utilize the properties of a closed chain and the relative position of the links in the chain in order to update the kinematic models of the robots.
Claims
1. A method for making a working program for a first robot usable with a second robot, each of the first robot and the second robot having joints connecting two flanges, the two flanges comprising a base flange and a tool flange, the method comprising: obtaining the working program for the first robot; selecting positions or angles based on the working program for the first robot; moving the second robot to the positions or angles to produce a position pair data set; estimating kinematic models of the first robot and the second robot based on a base flange offset and a tool flange center point offset between the first robot and the second robot using the position pair data set; and performing a conversion operation on the working program based on the kinematic models.
2. The method of claim 1, further comprising: making a determination about whether the working program is runnable on the second robot within one or more defined tolerances.
3. The method of claim 2, wherein making the determination comprises making a determination that the working program is not runnable on the second robot within the one or more defined tolerances; and wherein, when the working program is not runnable on the second robot within the one or more predefined tolerances, the method further comprises: selecting additional positions based on the working program; moving the second robot to the additional positions to produce an extended position pair data set; estimating revised kinematic models of the first robot and the second robot using the extended position pair data set; and performing a conversion operation on the working program based on the revised kinematic models.
4. The method of claim 1, further comprising: performing a conversion operation on a second working program based on the kinematic models.
5. The method of claim 1, wherein performing the conversion operation comprises: applying forward kinematics to first position pair data in the working program for a first kinematic model associated with the first robot to produce a first program; applying inverse kinematics to the first program using a second kinematic model for the second robot to produce second position pair data; and completing the conversion operation by replacing the first position pair data in the first working program with the second position pair data to produce a converted working program that is usable with the second robot.
6. The method of claim 1, wherein the kinematic models are based on parameters defining transformations.
7. The method of claim 6, wherein the kinematic models are based on three types of Denavit-Hartenberg parameters.
8. The method of claim 7, wherein the three types of Denavit-Hartenberg parameters comprise Schilling parameters, Parallel variant parameters, and RPY parameters.
9. The method of claim 6, wherein RPY parameters are usable to modulate a last joint of each of the first robot and the second robot.
10. The method of claim 1, wherein the kinematic models are estimated using predetermined models as a starting point.
11. Non-transitory machine-readable data storage storing instructions that are executable to make a working program for a first robot usable with a second robot, each of the first robot and the second robot having joints connecting two flanges, the two flanges comprising a base flange and a tool flange, the instructions being executable to perform operations comprising: obtaining the working program for the first robot; selecting positions or angles based on the working program for the first robot; causing the second robot to move to the positions or angles to produce a position pair data set; estimating kinematic models of the first robot and the second robot based on a base flange offset and a tool flange center point offset between the first robot and the second robot using the position pair data set; and performing a conversion operation on the working program based on the kinematic models.
12. The non-transitory machine-readable data storage of claim 11, wherein the operations comprise: making a determination about whether the working program is runnable on the second robot within one or more defined tolerances.
13. The non-transitory machine-readable data storage of claim 12, wherein making the determination comprises making a determination that the working program is not runnable on the second robot within the one or more defined tolerances; and wherein the operations comprise, when the working program is not runnable on the second robot within the one or more predefined tolerances: selecting additional positions based on the working program; causing the second robot to move to the additional positions to produce an extended position pair data set; estimating revised kinematic models of the first robot and the second robot using the extended position pair data set; and performing a conversion operation on the working program based on the revised kinematic models.
14. The non-transitory machine-readable data storage of claim 11, wherein the operations comprise: performing a conversion operation on a second working program based on the kinematic models.
15. The non-transitory machine-readable data storage of claim 11, wherein performing the conversion operation comprises: applying forward kinematics to first position pair data in the working program for a first kinematic model associated with the first robot to produce a first program; applying inverse kinematics to the first program using a second kinematic model for the second robot to produce second position pair data; and completing the conversion operation by replacing the first position pair data in the first working program with the second position pair data to produce a converted working program that is usable with the second robot.
16. The non-transitory machine-readable data storage of claim 11, wherein the kinematic models are based on parameters defining transformations.
17. The non-transitory machine-readable data storage of claim 16, wherein the kinematic models are based on three types of Denavit-Hartenberg parameters.
18. The non-transitory machine-readable data storage of claim 17, wherein the three types of Denavit-Hartenberg parameters comprise Schilling parameters, Parallel variant parameters, and RPY parameters.
19. The non-transitory machine-readable data storage of claim 16, wherein RPY parameters are usable to modulate a last joint of each of the first robot and the second robot.
20. The non-transitory machine-readable data storage of claim 11, wherein the kinematic models are estimated using predetermined models as a starting point.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) A further understanding of the nature and advantages of the present invention may be realized by reference to the remaining portions of the specification and the drawings. In the following, preferred embodiments of the invention are explained in more detail with reference to the drawings, wherein
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
DETAILED DESCRIPTION
(24) The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which exemplary embodiments of the invention are shown. The invention may, however, be embodied in different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like reference numerals refer to like elements throughout. Like elements will, thus, not be described in detail with respect to the description of each figure.
(25) Classic kinematics is used to model the robots. This makes it possible to transfer information from the robot joints to the Cartesian coordinate system in order to make their joints comparable.
(26) Notation
(27) The used notation is as follows: T.sub.c(θ).sub.r,
(28) which is a homogeneous transformation of a θ rotation clockwise around axis c, where c is x, y or z. T.sub.c(s).sub.t,
(29) which is a homogeneous transformation of s translation along axis c, where c is x, y or z. T.sub.j.sup.i,
(30) which is a homogeneous transformation from i to j. Z.sub.j.sup.i,
(31) which is z-axis unit vector for the homogeneous transformation from i to j. P.sub.j.sup.i,
(32) which is position from i to j.
(33) Robot Representation
(34) The robots are modeled with two types of Denavit-Hartenberg, DH, parameters. The first type of DH uses the Schilling notation (c.f. R. J. Schilling. “Fundamentals of Robotics: Analysis and Control”. Simon & Schuster Trade, 1.sup.st ed. 1996, incorporated in its entirety by reference) to describe a transformation between two non parallel z-axes, since the notation has a singularity when the z-axis is parallel (see equation 1 below).
(35) The second type uses a DH parallel variant to avoid this singularity (see equation 2 below). The parallel DH variant uses the same principles as the original DH, but has a singularity when the first y and the next z-axis, respectively, is parallel. The singularity of Schilling DH is defined by the normal between the first and next z-axis, since the distance to the normal intersection with the first z-axis is used as a parameter, see illustration
(36) Choosing the right notation for each joint element results in a representation of the robot without any DH parameter singularities:
Φ.sub.DH(θ,d,α,a)≡T.sub.z(θ).sub.rT.sub.z(d).sub.tT.sub.x(α).sub.rT.sub.x(a).sub.t (1)
Ψ.sub.DH(β,b,α,a)≡T.sub.x(β).sub.rT.sub.x(b).sub.tT.sub.x(α).sub.rT.sub.x(a).sub.t (2)
Closed Chain Model
(37) The representation combines each element in the chain to one model. The model reflects the physical characteristic of the closed chain, and makes it possible to relate each element to each other. Depending on the equipment used to connect the robots, different approaches may be used. In the basic installation, the tool flanges are connected via a stiff solid adapter 2, and the base flanges are connected with a stiff solid adapter 4 and all the joints in the chain are represented by DH parameters as described above. This has the advantages as being a minimal complete representation describing the joints' rotational axes in the system relative to each other, see illustration
(38) Advanced Chain Combinations
(39) A more advanced adapter can be used to connect the tool and base flanges 10. Preferably, the model is configured to reflect the used equipment. An example of an advanced way to connect the base flanges 10 of the robots 6, 8, could include a prismatic joint that can displace the robots 6, 8 with a known distance. Another example of adding a more advanced joint to the chain could be done with a ball-bar or an additional joint. The ball-bar is a common known tool for calibration of single robot (c.f. M. R. Driels: Using passive end-point motion constraints to calibrate robot manipulators. Journal of Dynamic Systems, Measurement, and Control, 115(3): 560-566, 1993—hereby incorporated by reference in its entirety). This method works by mounting one of the ball-bar ends to a fixed location and the other end to the robot. This means that all observations are done relative to the fixed location and therefore limited by it. The movement is also limited due to the fixed location. When the equipment is used in the context of the present invention, each end is mounted on each robot 6, 8 and the measurements will therefore not be limited to a fixed location. This gives the possibility to take measurements that relate to the whole workspace of the robots 6, 8.
(40) Some robots have multiple limbs. By treating them as individual robot arms, the method according to the invention, which is described in the present patent specification, can be used to calibrate these limbs without additional active measurement equipment.
(41) The method according to the invention is based on the closed chain principle, as illustrated in
(42) Least Squares Function
(43) The—preferably over-determined—system of equations is solved by a least squares function that represents the squared error. In equation 3, the transformation represents the error for the joints in the open chain as illustrated in
Error≡T.sub.0.sup.{circumflex over (0)}=T.sub.0.sup.1T.sub.1.sup.2 . . . T.sub.n-1.sup.nT.sub.n.sup.{circumflex over (0)} (3)
(44) The position error is taken into account by calculating the squared length of the Error's translation part, see equation 4:
ePos.sup.2≡∥p.sub.0.sup.{circumflex over (0)}∥.sup.2=p.sub.0.sup.{circumflex over (0)}.Math.p.sub.0.sup.{circumflex over (0)} (4)
(45) The rotation error is calculated by the axis angle notation AA (c.f. Robert J. Schilling: Fundamentals of Robotics: Analysis and Control. Simon & Schuster Trade, 1.sup.st edition, 1996). The error of angle is found by calculating the AA from the Error rotation part, see equation 5:
{angle,{right arrow over (axis)}}=AA(R.sub.0.sup.{circumflex over (0)})eRot≡angle (5)
(46) The resulting least squares equation is a squared sum of equations 4 and 5 for N observations, see equation 6:
(47)
representing the error gap between the chain ends as illustrated in
Constraints
(48) In order to scale the model properly it is necessary to have a known distance or distance change in the model. This can be illustrated by trigonometry as in
(49) Collecting Observations
(50) In order to use the method, as described above, is it necessary to collect and save observations from the physical chain in order to imitate it with the mathematical representation. The observations can be collected both manually supervised by an operator or automatically by the robots moving autonomously around in the workspace. It is necessary to collect enough measurements distributed in the whole workspace. This is due to the fact that the calibration can only be assumed to represent the used workspace. As the robots 6, 8 need to be connected and follow each other, it is furthermore preferred that the position regulators of some of the joints can be turned off and be led around by the others. It is necessary to manipulate the chain of robots 6, 8 without any use of inverse kinematics, since the kinematics is not known due to the lack of calibration.
(51) Evaluation
(52) A reliable evaluation of the final calibration uses the estimated mathematical model and compares it with the observations. It is important that these observations are independent from those used in the calibration procedure and distributed throughout the workspaces of the robots. If the observations from the calibration are used to evaluate the calibration, then the result will not be trustworthy as no new information has been added to support the result. Another reliability indication for the quality of the results is to let the calibration adjust on physical known parameters and afterwards compare it with the known values.
(53) Having joints of the robots 6, 8 connected in a closed chain opens the possibility to adjust other parameters than those, which relate to determination of the position. An example of these parameters could be to adjust parameters that relate to the forces in the chain.
(54) Calibration Example
(55) The object of this example is to illustrate and explain how the method according to the invention can be used on specific robots manufactured by the applicant, Universal Robots. The setup includes two UR-6-85-5-A industrial serial robots 6, 8 and two solid passive adapters to connect the tool and base flanges. In
(56) Representation
(57) The model of the closed chain includes a transformation for each joint as illustrated in
T.sub.base.sup.wrist3≡T.sub.base.sup.shoulderT.sub.shoulder.sup.elbowT.sub.elbow.sup.wrist1T.sub.wrist1.sup.wrist2T.sub.wrist2.sup.wrist3
Error≡[T.sub.base.sub.
(58) The connection between the robots can be represented with an extended version of DH (see equation 8 and 9 below). This representation makes it possible to represent any transformation in a similar way as DH which gives the same advantages.
T.sub.ΦDH(θ.sub.1,d.sub.1,α,a,θ.sub.2,d.sub.2)≡T.sub.z(θ.sub.1).sub.rT.sub.z(d.sub.1).sub.tT.sub.x(α).sub.rT.sub.x(a).sub.tT.sub.z(θ.sub.2).sub.rT.sub.z(d.sub.2).sub.t (8)
T.sub.ΨDH(β.sub.1,b.sub.1,α,a,β.sub.2,b.sub.2)≡T.sub.x(β.sub.1).sub.rT.sub.x(b.sub.1).sub.tT.sub.x(α).sub.rT.sub.x(a).sub.tT.sub.x(β.sub.2).sub.rT.sub.x(b.sub.2).sub.t (9)
(59) The parameters for each transformation of the closed chain model are described in table 1 below. The fixed distances are represented in the model with the “a” parameter (see table 1). The same design trick is done for both the connection, the tool and base flanges, both of them can be fixed with a known normal length. As mentioned above it is preferred—but not necessary—to have multiple pre-known parameters in the system. This makes it possible to include one of them as a ground true to evaluate the outcome of the calibration.
(60) TABLE-US-00001 TABLE 1 Table describing the adjustable and fixed (the “a” parameter) parameters of the representation of the model for the setup where the robots 6, 8 are displaced with 90 degrees. Description Robot.sub.6 Robot.sub.8 T.sub.wrist3.sub. ,
, α, a) Φ.sub.DH (
,
, α, a) T.sub.base.sub.
(61) In order to use the calibrated model in the controller of the robots 6, 8, it is necessary to re-compute the transformations into the needed format. Including extraction of useful information from
(62)
In this case the Schilling DH notation.
(63)
(64)
(65)
(66)
(67)
(68)
EXAMPLE OF PROGRAM DUPLICATION
(69) This section will be described as an example of how the closed chain method can be used to duplicate a working program from one robot to another where one or both is un-calibrated. The example takes advantage of the program that is to be duplicated. The program to be duplicated contains way-points of robot configurations. Here a closed chain is obtained by using the way-points to represent the first part of the chain and then—mathematically—close the chain by re-teaching the same way-points with the new robot that is intended to perform the tasks of the first robot. See
(70) Data
(71) The generated reference data is based on the program of the robot that is going to be duplicated. The data is collected manually by relearning key way-point positions, which are essential to the task of program. These essential positions may vary in precision depending on the program, but will in most cases be those that are most explicit and easiest to replicate. By relearning these essential positions it is also achieved that the resulting program of the new robot will match in these key positions. If several programs are being duplicated between the same two robots, then those key positions can be reused, thereby leading to a higher level of compliance between them. Depending on the task and the robot tool it may be difficult to determine the correct position and rotation. Especially the rotations may be difficult to replicate correctly if the tool is rotation independent. This can thus reduce the level of knowledge but still be usable as the rotation in these tasks is not that important because of the rotation independence. Depending on the tasks of the robots, the collected data is typically grouped in groups where the essential action of the robot is made. This implies that the relationship between the workspaces of the two robots are only partly known and that correct corresponding configurations can only be provided near the key positions. However, as the other waypoints are not essential for the tasks of the robot it will in the most cases be good enough for the robot executing the tasks of the program. If the program needs to be duplicated back to the original robot, then the same corresponding key positions may be reused. This enables the original program as well as changes in it to be ported back to the original robot. This is particularly interesting if the same program is used in similar robot cells, which thereby enables production to be up-scaled by duplicating the programs without loss of flexibility.
(72) Robot Base Representation
(73) In the present example it is assumed that the same tool is mounted on both robots 6, 8 and that the position of the tool center point is the same (see
T.sub.RPYxyz(θ.sub.x,θ.sub.y,θ.sub.z,x,y,z)≡T.sub.x(x).sub.tT.sub.y(y).sub.tT.sub.z(z).sub.tT.sub.z(θ.sub.z).sub.rT.sub.y(θ.sub.y).sub.rT.sub.x(θ.sub.x).sub.r (10)
Robot Representation
(74) The robots 6, 8 are modulated with three types of Denavit-Hartenberg parameters. The two first ones are the same as used in the calibration example above. However, for modulation of the last joint, a RPY notation is chosen in order to ensure that any position and rotation can be modulated (see equation 11 below). This notation is used because none of the other DH notations can represent any transformation which is needed to modulate any tool flange transformation. Like the base representation, the RPY is a good choice as only modest or none rotation is needed to be modeled. By choosing the right notation for each joint, the result is a representation of the robot without any parameter singularities:
RPY.sub.DH(r,p,y,x,y,z)≡T.sub.z(θ.sub.z).sub.rT.sub.y(θ.sub.y).sub.rT.sub.x(θ.sub.z).sub.rT.sub.x(x).sub.tT.sub.y(y).sub.tT.sub.z(z).sub.t (11)
Tool Representation
(75) The transformation that defines where the tool center point is placed relative to the tool flange of the robot is called T.sub.tf.sup.tcp. This transformation is fixed due to the assumption that the same tool is mounted on both robots 6, 8. Furthermore, any small adjustment, which is needed, can be obtained by the parameters of the last joint. In this example, the scale of the model is not important as long as the relative scales of the robots are the same as the scale of the physical robots 6, 8. This is valid as long as the input and output to the method are pure angles, as angles are independent of the scale of the objects as illustrated in
(76) Full Model
(77) The representation of the model is illustrated in table 2 below. To avoid linearly dependent parameters in the model, some of them are fixed. The parameter θ and d for the base joint of both robots are fixed because the same adjustment can be done by the T.sub.base.sub.
(78) TABLE-US-00002 TABLE 2 describing the adjustable and fixed parameters of the representation of the model. Description Robot.sub.6 Robot.sub.8 T.sub.tf.sup.tcp fixed T.sub.wrist3.sup.tf RPY.sub.DH ( ,
,
, RPY.sub.DH (r, p, y, x, y, z)
,
,
) T.sub.wrist2.sup.wrist3 Φ.sub.DH (θ, d, α, a) Φ.sub.DH (θ, d, α, a) T.sub.wrist1.sup.wrist2 Φ.sub.DH (θ, d, α, a) Φ.sub.DH (θ, d, α, a) T.sub.elbow.sup.wrist1 Ψ.sub.DH (β, b, α, a) Ψ.sub.DH (β, b, α, a) T.sub.shoulder.sup.elbow Ψ.sub.DH (β, b, α, a) Ψ.sub.DH (β, b, α, a) T.sub.base.sup.shoulder Φ.sub.DH (
,
,α, a) Φ.sub.DH (
,
,α, a) T.sub.base.sub.
(79) In
(80) In
(81) In
(82)
(83) If the program is usable, then it is in the next step—optional step 136—evaluated whether more programs need to be converted, and if affirmative, then perform the steps 132-136 where the given angle pairs can be adjusted or additional can be added. Otherwise, the program is ready to use, as indicated by block 138 in the illustrated flowchart.
(84)
(85) In
(86) As illustrated it is by the invention possible to perform program conversions between robots, which are un-calibrated.
LIST OF REFERENCE NUMBERS
(87) In the following is given a list of reference numbers that are used in the detailed description of the invention. 2 tool flange adapter 4 base flange adapter 6, 8 robots 10 base flanges 16 common normal between rotational axes 16, 20 rotational axes 22-36 method steps, calibration 38-52 method steps, calibration 54-82 method steps, automatic and manual calibration loop 84-90 method steps, saving of sensor information 92-104 method steps, collection of angle data pairs 106-116 method steps, program conversion 118-138 method steps, program correction 140-146 method steps, definition of joint angles 148-166 method steps, correction of program