A Robot Pose Calibration Method Using Position Error Model
-
摘要: 针对机器人位姿标定模型中位置和姿态数据的权重不合理导致参数识别精度低甚至发散问题,给出一种直接基于末端位置坐标测量的机器人位姿标定方法,避免了位置和姿态数据量级不同对参数识别精度的影响。采用指数积方法,建立一种包含3点位置信息的机器人运动学模型。通过对运动学模型取微分,利用指数映射微分公式推导出机器人末端3点位置误差与几何参数误差之间映射关系的显示表达并给出参数误差识别方法。采用激光跟踪仪作为测量设备,以UR5机器人为标定对象进行运动学参数标定和验证试验。试验结果表明,机器人末端位置误差模和姿态误差模的平均值分别降低了90%和92%。Abstract: Unreasonable weights of position and orientation data in a robot pose calibration model may lead to low accuracy or even divergence of parameter identification. A robot pose calibration method is presented directly based on the position measurement of an end-effector, avoiding the influence of different magnitudes of position and orientation data on parameter identification accuracy. A robot's kinematic model based on three-point position information is established by using the product of exponential formula. By differentiating the kinematic model and then employing the explicit expression of differentials of exponential mapping, the explicit expression of the mapping relationship between three-point position errors of the end-effector and its geometric parameter errors is derived, and the parameter error identification method is introduced. By taking a laser tracker as the measuring equipment, the UR5 robot is used to perform the kinematic parameter calibration and verification tests. The results indicate that the mean values of the modulus of position error and orientation error are reduced by 90% and 92%, respectively.
-
Key words:
- robot /
- product of exponential formula /
- position error /
- pose calibration
-
表 1 机器人运动学参数
Table 1. Kinematic parameters of the robot
参数 ${\boldsymbol{\xi }} = \left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{\xi }}_1}}&{{{\boldsymbol{\xi }}_2}}&{{{\boldsymbol{\xi }}_3}}&{{{\boldsymbol{\xi }}_4}}&{{{\boldsymbol{\xi }}_5}}&{{{\boldsymbol{\xi }}_6}} \end{array}} \right]$ ${ { { {\boldsymbol{p} }_{1,0} } } \mathord{\left/ {\vphantom { { { {\boldsymbol{p} }_{1,0} } } {{\rm{mm}}} } } \right. } {{\rm{mm}}} }$ ${ { { {\boldsymbol{p} }_{2,0} } } \mathord{\left/ {\vphantom { { { {\boldsymbol{p} }_{2,0} } } {{\rm{mm}}} } } \right. } {{\rm{mm}}} }$ ${ { { {\boldsymbol{p} }_{3,0} } } \mathord{\left/ {\vphantom { { { {\boldsymbol{p} }_{3,0} } } {{\rm{mm}}} } } \right. } {{\rm{mm}}} }$ 名义值 $\left[ {\begin{array}{*{20}{c}} 0&0&0&0&0&0 \\ 0&1&1&1&0&1 \\ 1&0&0&0&1&0 \\ 0&{ - 89.2}&{ - 514.2}&{ - 906.2}&{109.2}&{ - 1001.95} \\ 0&0&0&0&0&0 \\ 0&0&0&0&0&0 \end{array}} \right]$ $\left[ {\begin{array}{*{20}{c}} {18.32} \\ {223.4} \\ {1067.24} \end{array}} \right]$ $\left[ {\begin{array}{*{20}{c}} { - 67.41} \\ {223.4} \\ {981.51} \end{array}} \right]$ $\left[ {\begin{array}{*{20}{c}} {49.7} \\ {223.4} \\ {950.13} \end{array}} \right]$ 标定
结果$\left[ {\begin{array}{*{20}{c}} {0.0001}&{0.0001}&{ - 0.0004}&{ - 0.0009}&{0.0002}&{ - 0.0009} \\ {0.0006}&1&1&1&{0.0025}&1 \\ 1&{0.0005}&{ - 0.0007}&{ - 0.0018}&1&{ - 0.0024} \\ { - 0.3868}&{ - 88.7382}&{ - 514.3115}&{ - 906.8491}&{107.8863}&{ - 1001.7192} \\ {0.0824}&{0.0499}&{ - 0.1994}&{ - 0.7751}&{0.2665}&{ - 0.9722} \\ { - 0.0001}&{ - 0.0589}&{ - 0.1596}&{ - 0.0842}&{ - 0.0173}&{0.1004} \end{array}} \right]$ $\left[ {\begin{array}{*{20}{c}} {19.048} \\ {226.3246} \\ {1069.1} \end{array}} \right]$ $\left[ {\begin{array}{*{20}{c}} { - 67.6289} \\ {225.9993} \\ {983.4768} \end{array}} \right]$ $\left[ {\begin{array}{*{20}{c}} {48.6487} \\ {226.1409} \\ {950.856} \end{array}} \right]$ 表 2 标定试验靶球位置坐标
Table 2. Position coordinates of the calibration test's target balls
测量点 ${{\boldsymbol{p}}_1}$ ${{\boldsymbol{p}}_2}$ ${{\boldsymbol{p}}_3}$ 1 (−726.901, −9.778, −75.979) (−738.377,28.715,−190.903) (−629.201,26.116,139.351) 2 (481.483, −221.604, 201.430) (559.457,−305.147,243.447) (466.473,−270.219,312.158) 3 (−28.487, −304.408, 969.160) (62.610,−226.510,947.678) (86.697,−335.400,994.042) 4 (−427.332, 174.343, 571.682) (−319.860,150.199,519.804) (−398.314,60.485,539.386) 5 (−46.930, 608.749, 778.907) (−0.710,661.720,679.498) (69.095,645.942,776.789) 6 (212.208, −396.321, 613.403) (214.228,−275.332,626.887) (214.332,−323.166,515.990) 7 (555.793, 583.417, 447.906) (607.273,630.472,547.699) (492.312,593.616,551.415) 8 (585.907, −334.809, 582.681) (479.142,−277.064,592.416) (482.383,−397.750,595.691) 9 (−603.246, 225.019, 336.475) (−522.203,312.941,359.501) (−484.995,208.186,312.293) 10 (122.144, 238.644, 668.388) (220.578,233.073,739.814) (149.436,330.600,743.523) 11 (−319.424, 568.251, 516.962) (−293.663,606.222,404.182) (−207.224,606.355,488.539) 12 (310.696, −435.415, 744.755) (282.428,−457.866,861.007) (214.606,−381.453,796.619) 13 (312.573, 279.856, −98.730) (383.400,370.496,138.679) (433.339,265.400,106.300) 14 (589.367, 351.828, 383.528) (551.609,300.070,279.998) (668.296,327.955,293.819) 15 (88.840, 795.370, 529.624) (197.885,818.206,480.484) (171.704706.705,518.806) 16 (−537.940, 493.200, 194.683) (−651.928,535.317,187.083) (−592.063,506.286,86.223) 17 (117.140, 150.490, 294.5360) (137.948,163.075,413.884) (62.033,238.673,358.138) 18 (−517.848, 264.431, 699.758) (−466.727,374.686,707.558) (−397.624,278.143,685.144) 19 (228.103, −158.962,870.037) (192.977,−51.041,825.943) (129.502,−150.194,798.987) 20 (254.626, 16.918, 668.108) (259.594,−93.412,719.413) (264.945,5.207,788.959) 21 (220.265, −412.440, 581.746) (230.705,−308.063,519.946) (225.520,−412.800,460.007) 22 (499.402, 200.400, 566.441) (496.324,136.881,462.624) (531.327,82.810,564.809) 23 (−192.673, −262.493, 717.925) (−206.133,−216.516,829.842) (−283.798,−299.859,789.723) 24 (394.260, −648.622, 422.714) (400.176,−639.763,543.993) (333.047,−561.200,481.480) 25 (158.296, 71.174, 602.057) (201.185,−41.504,584.812) (88.719,−25.974,626.035) 26 (180.289, −118.644, 847.728) (178.423,−161.857,961.584) (221.176,−50.895,940.356) 27 (227.456, 544.127, 830.937) (308.510,456.136,853.689) (207.610,463.131,919.652) 28 (226.389, −632.490, 512.305) (264.035,−746.752,531.152) (146.307,−720.667,538.383) 29 (−128.701, 387.978, 953.532) (−99.713,437.423,846.073) (−68.740,322.991,869.618) 30 (100.926, 540.976, 239.473) (109.534,661.953,228.481) (177.651,604.249,309.849) 31 (−588.944, 77.134, 567.8860) (−598.417,78.222,689.239) (−540.088,167.767,633.005) 32 (296.912, 59.571, 692.561) (409.243,62.733,739.410) (314.731,92.257,808.583) 33 (339.251, 555.167, −135.583) (276.392,504.470,−44.469) (248.795,476.914,−158.783) 34 (593.679, −226.058, 46.759) (585.230,−118.370,−9.457) (615.972,−216.586,−72.667) 35 (77.842, 567.787, 70.829) (66.342,565.072,192.026) (33.052,469.161,126.619) 36 (−76.068, 763.490, 701.3920) (−32.560,657.046,661.229) (−43.361,676.174,779.984) 37 (78.664,488.444,518.305) (56.315,375.286,557.361) (110.724,454.261,630.783) 38 (246.404,25.858,999.695) (179.248,118.393,1041) (183.898,96.882,922.907) 39 (−528.701,155.416,265.871) (−443.418,238.555,240.542) (−485.484,228.519,353.337) 40 (−624.716,135.738,550.678) (−740.463,172.906,543.360) (−651.419,248.008,511.329) 表 3 验证试验靶球位置坐标
Table 3. Position coordinates of the verification test's target balls
测量点 ${{\boldsymbol{p}}_1}$ ${{\boldsymbol{p}}_2}$ ${{\boldsymbol{p}}_3}$ 1 (164.498,−184.094,761.640) (213.018,−77.896,726.926) (199.092,−166.584,646.117) 2 (153.308,−152.438,576.032) (235.942,−63.978,589.508) (119.637,−35.304,573.988) 3 (−194.906,−809.367,518.047) (−161.870,−741.446,422.547) (−204.757,−852.939,404.677) 4 (284.060,−318.179,334.397) (177.378,−345.587,282.485) (275.347,−330.564,213.478) 5 (−578.813,22.782,748.894) (−683.789,52.164,694.645) (−594.370,133.213,699.797) 6 (−253.757,630.027,668.623) (−192.980,682.863,760) (−311.497,662.305,770.994) 7 (−253.058,12.204,940.652) (−227.130,46.950,826.852) (−194.214,116.887,919.670) 8 (164.283,−496.792,198.725) (203.360,−389.798,241.764) (89.475,−424.463,262.155) 9 (−247.498,401.721,706.337) (−368.189398.637,690.454) (−296.864,330.714,620.523) 10 (−169.342,227.112,572.839) (−68.263,239.563,639.629) (−148.933,154.394,668.501) 11 (382.747,176.183,588.828) (467.313,102.280,541.752) (492.186,165.813,641.415) 12 (35.372,−298.271,655.578) (−50.392,−230.919,601.375) (65.978,−201.114,588.696) 13 (36.420,239.914,964.251) (34.619,144.139,1039) (−54.203,225.945,1044) 14 (44.552,−281.165,657.898) (127.690,−274.478,746.608) (59.027,−373.334,736.287) 15 (720.087,−49.105,220.830) (800.751,−91.503,140.073) (805.448,24.267,174.195) 16 (−775.236,−73.458,277.514) (−884.282,−23.933,299.450) (−875.244,−142.974,281.207) 17 (712.690,51.460,406.206) (798.076,−29.365,437.825) (785.491,72.418,501.615) 18 (859.053,30.287,153.411) (882.361,144.648,188.187) (768.117,109.644,170.777) 19 (270.654,338.143,594.835) (255.192,458.052,580.393) (249.310,385.001,484.394) 20 (701.300,129.765,46.031) (735.538,125.672,162.852) (624.836,164.670,134.313) -
[1] ZHI B B, LI S, LI X. An overview of calibration technology of industrial robots[J]. IEEE/CAA Journal of Automatica Sinica, 2021, 8(1): 23-36. doi: 10.1109/JAS.2020.1003381 [2] 焦国太, 冯永和, 王锋, 等. 多因素影响下的机器人综合位姿误差分析方法[J]. 应用基础与工程科学学报, 2004, 12(4): 435-442.JIAO G T, FENG Y H, WANG F, et al. Synthetically analysis of the robot pose error resulting from various factors[J]. Journal of Basic Science and Engineering, 2004, 12(4): 435-442. (in Chinese) [3] CHEN G, LI T, CHU M, et al. Review on kinematics calibration technology of serial robots[J]. International Journal of Precision Engineering and Manufacturing, 2014, 15(8): 1759-1774. doi: 10.1007/s12541-014-0528-1 [4] WANG H X, SHEN S H, LU X. A screw axis identification method for serial robot calibration based on the POE model[J]. Industrial Robot-An International Journal, 2012, 39(2): 146-153. doi: 10.1108/01439911211201609 [5] WANG S W, JIA Q X, CHEN G, et al. Complete relative pose error model for robot calibration[J]. Industrial Robot:the International Journal of Robotics Research and Application, 2019, 46(5): 622-630. doi: 10.1108/IR-11-2018-0244 [6] 任永杰, 邾继贵, 杨学友, 等. 利用激光跟踪仪对机器人进行标定的方法[J]. 机械工程学报, 2007, 43(9): 195-200. doi: 10.3901/JME.2007.09.195REN Y J, JIA J G, YANG X Y, et al. Method of robot calibration based on laser tracker[J]. Journal of Mechanical Engineering, 2007, 43(9): 195-200. (in Chinese) doi: 10.3901/JME.2007.09.195 [7] 高文斌, 王洪光, 姜勇, 等. 基于距离误差的机器人运动学参数标定方法[J]. 机器人, 2013, 35(5): 600-606. doi: 10.3724/SP.J.1218.2013.00600GAO W B, WANG H G, JIANG Y, et al. Kinematic calibration method of robots based on distance error[J]. Robot, 2013, 35(5): 600-606. (in Chinese) doi: 10.3724/SP.J.1218.2013.00600 [8] 申景金, 郭家桢, MASOUD K. 基于距离误差的机器人参数辨识模型与冗余性分析[J]. 农业机械学报, 2018, 49(11): 372-378.SHEN J J, GUO J Z, MASOUD K. Parameter calibration model and redundancy analysis of robot based on distance error[J]. Transactions of the Chinese Society for Agricultural Machinery, 2018, 49(11): 372-378. (in Chinese) [9] QI J D, CHEN B, ZHANG D H. Compensation for absolute positioning error of industrial robot considering the optimized measurement space[J]. International Journal of Advanced Robotic Systems, 2020, 17(2): 1729881420921644. [10] 高文斌, 王洪光, 姜勇, 等. 一种模块化机器人的标定方法研究[J]. 机械工程学报, 2014, 50(3): 33-40. doi: 10.3901/JME.2014.03.033GAO W B, WANG H G, JIANG Y, et al. Research on the calibration for a modular robot[J]. Journal of Mechanical Engineering, 2014, 50(3): 33-40. (in Chinese) doi: 10.3901/JME.2014.03.033 [11] NGUYEN H N, JIAN Z, KANG H J. A new full pose measurement method for robot calibration[J]. Sensors, 2013, 13(7): 9132-9147. doi: 10.3390/s130709132 [12] LI G Z, ZHANG F H, FU Y L, et al. Kinematic calibration of serial robot using dual quaternions[J]. Industrial Robot:the international journal of robotics research and application, 2019, 46(2): 247-258. doi: 10.1108/IR-10-2018-0221 [13] ZHANG X C, SONG Y T, YANG Y, et al. Stereo vision based autonomous robot calibration[J]. Robotics and Autonomous Systems, 2017, 93: 43-51. doi: 10.1016/j.robot.2017.04.001 [14] 乔贵方, 万其, 吕仲艳, 等. 基于ZRM-MDH模型转换的串联机器人运动学参数标定[J]. 农业机械学报, 2021, 52(3): 382-389.QIAO G F, WANG Q, LYU Z Y, et al. Kinematic parameters calibration method of serial robot based on ZRM-MDH model transformation[J]. Transactions of the Chinese Society for Agricultural Machinery, 2021, 52(3): 382-389. (in Chinese) [15] WU L, YANG X D, CHEN K, et al. A minimal POE-based model for robotic kinematic calibration with only position measurements[J]. IEEE Transactions on Automation Science and Engineering, 2015, 12(2): 758-763. doi: 10.1109/TASE.2014.2328652 [16] WU Y E, KLIMCHIK A, CARO S, et al. Geometric calibration of industrial robots using enhanced partial pose measurements and design of experiments[J]. Robotics and Computer-Integrated Manufacturing, 2015, 35: 151-168. doi: 10.1016/j.rcim.2015.03.007 [17] PARK F C. Computational aspects of the product-of-exponentials formula for robot kinematics[J]. IEEE Transactions on Automatic Control, 1994, 39(3): 643-647. doi: 10.1109/9.280779 [18] CHEN I M, YANG G, TAN C T, et al. Local POE model for robot kinematic calibration[J]. Mechanism and Machine Theory, 2001, 36(11-12): 1215-1239. doi: 10.1016/S0094-114X(01)00048-9 [19] LOU Y J, CHEN T N, WU Y Q, et al. Improved and modified geometric formulation of POE based kinematic calibration of serial robots[C]//2009 IEEE/RSJ International Conference on Intelligent Robots and Systems. St. Louis, MO, USA: IEEE, 2009: 5261-5266. [20] HE R B, ZHAO Y J, YANG S N, et al. Kinematic-parameter identification for serial-robot calibration based on POE formula[J]. IEEE Transactions on Robotics, 2010, 26(3): 411-423. doi: 10.1109/TRO.2010.2047529