kinematiself-calibration for a welding robot based on kinematics and matlab software

4
Proceedings of the 8th World Congress on Intelligent Control and Automation July 6-9 2010, Jinan, China 978-1-4244-6712-9/10/$26.00 ©2010 IEEE The Kinematic Self-calibration Method and Simulation of one Palletizing Robot Dunmin Lu 1 , Chuanqing Zhang 2 , Yuezhen Fan 1 , Xiangdong Yang 2 , Ken Chen 2 1) School of Technology, Beijing Forestry University, Beijing 100083, China ([email protected]) 2) Department of Precision Instruments and Mechanology, Tsinghua University, Beijing 100084, China Abstract—The kinematic calibration is very important work to improve the position and orientation accuracy of robots. This pa- per presents a method for the kinematic self-calibration of a joint palletizing robot. The calibration makes use of the micrometer gauge(with magnetic stand) ,measuring platform and joint encoders of robot as measuring tools.The simulating operation was made by using the method of least square of Matlab software and the kinematic equation of robot. The simulating results show that the method was practicable. The main advantage of this method is it can be executed rapidly without external complex sensors to measure the posi- tion or the orientation of the robot. Keywords—palletizing robot, kinematic self-calibration,MATLAB software, method of least square 一种码垛机器人运动学自标定方法及仿真 路敦民 1 张传清 2 樊月珍 1 杨向东 2 陈恳 2 1) 北京林业大学工学院,北京,100083,中国 2) 清华大学精密仪器与机械学系,北京,100083,中国 对机器人进行运动学标定,是提高机器人位姿精度的重要措施。本文针对一种关节式码垛机器人,提出了一种机器人本 体参数自标定方法。该方法使用千分表(带磁性表座)和测量平台为工具,利用机器人本体的关节传感器进行测量。利用 MATLAB 的最 小二乘算法和该机器人的运动学方程,对运动学参数进行标定。仿真运算结果表明该方法可行。该方法的优点是不需附加额外的测量 机器人位姿的传感器或装置,并且可以实现快速标定。 关键词 码垛机器人,运动学自标定,MATLAB 软件,最小二乘法 1.引言 机器人的位姿精度是机器人工作的重要指标之一。由 于机械加工误差、安装误差等因素的影响,机器人的实际 运动学模型与理想运动学模型之间存在偏差,从而影响到 机器人的位姿精度,解决该问题的方法有两种:一是直接 提高机械加工精度和安装精度;二是采用运动学标定的方 法辨识出机器人更为准确的运动学模型。直接提高机械加 工精度及安装精度,可以提高机器人的几何参数的精度, 但会极大的增加制造成本,另外对于使用过程中的部件磨 损,部件更换所造成的精度下降也无能为力。另外,对于 机器人某些参数,例如关节零位时对应的实际角度,也需 北京林业大学青年科技启动基金(BLX2W8014),优秀青年教师 科技创新专项资助计划(BLYX200907),中国博士后科学基金 20060400417)。 要通过标定来确定。采用运动学标定辨识机器人运动学模 型的方法按普通精度要求进行机械加工,安装完成机器人 后对其进行运动学标定后使用,可获得较高的位姿精度。 使用过程中结构参数发生变化(如再装配),对其再次进 行标定即可 [1-3] 对机器人本体的标定是机器人标定中基本而重要的 内容,可以分为:基于运动学模型的标定和非运动学模型 的标定;采用外部测量装置的外部标定和借助于机器人内 部传感器的自标定;自标定又分为施加物理约束和增加冗 余传感器两种方式 [4-5] 本文研究对象是一种大尺寸的码垛机器人,使用三坐 标测量机和关节测量臂的方法均较难实现。所以采用了基 于运动学模型的自标定方法, 即利用机器人内部的关节传 感器对其进行运动学标定。 6424

Upload: saurabh-arora

Post on 30-Jun-2015

1.228 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: kinematiSelf-calibration for a welding robot based on kinematics and Matlab software

Proceedings of the 8th

World Congress on Intelligent Control and Automation July 6-9 2010, Jinan, China

978-1-4244-6712-9/10/$26.00 ©2010 IEEE

The Kinematic Self-calibration Method and Simulation of one Palletizing Robot

Dunmin Lu1, Chuanqing Zhang2, Yuezhen Fan1, Xiangdong Yang 2, Ken Chen2 1) School of Technology, Beijing Forestry University, Beijing 100083, China ([email protected])

2) Department of Precision Instruments and Mechanology, Tsinghua University, Beijing 100084, China

Abstract—The kinematic calibration is very important work to improve the position and orientation accuracy of robots. This pa-

per presents a method for the kinematic self-calibration of a joint palletizing robot. The calibration makes use of the micrometer

gauge(with magnetic stand) ,measuring platform and joint encoders of robot as measuring tools.The simulating operation was made by

using the method of least square of Matlab software and the kinematic equation of robot. The simulating results show that the method

was practicable. The main advantage of this method is it can be executed rapidly without external complex sensors to measure the posi-

tion or the orientation of the robot.

Keywords—palletizing robot, kinematic self-calibration,MATLAB software, method of least square

一种码垛机器人运动学自标定方法及仿真 路敦民 1 张传清 2 樊月珍 1 杨向东 2 陈恳 2

1) 北京林业大学工学院,北京,100083,中国 2) 清华大学精密仪器与机械学系,北京,100083,中国

摘 要 对机器人进行运动学标定,是提高机器人位姿精度的重要措施。本文针对一种关节式码垛机器人,提出了一种机器人本

体参数自标定方法。该方法使用千分表(带磁性表座)和测量平台为工具,利用机器人本体的关节传感器进行测量。利用 MATLAB 的最

小二乘算法和该机器人的运动学方程,对运动学参数进行标定。仿真运算结果表明该方法可行。该方法的优点是不需附加额外的测量

机器人位姿的传感器或装置,并且可以实现快速标定。

关键词 码垛机器人,运动学自标定,MATLAB 软件,最小二乘法 1.引言

机器人的位姿精度是机器人工作的重要指标之一。由

于机械加工误差、安装误差等因素的影响,机器人的实际

运动学模型与理想运动学模型之间存在偏差,从而影响到

机器人的位姿精度,解决该问题的方法有两种:一是直接

提高机械加工精度和安装精度;二是采用运动学标定的方

法辨识出机器人更为准确的运动学模型。直接提高机械加

工精度及安装精度,可以提高机器人的几何参数的精度,

但会极大的增加制造成本,另外对于使用过程中的部件磨

损,部件更换所造成的精度下降也无能为力。另外,对于

机器人某些参数,例如关节零位时对应的实际角度,也需

北京林业大学青年科技启动基金(BLX2W8014),优秀青年教师

科技创新专项资助计划(BLYX200907),中国博士后科学基金

(20060400417)。

要通过标定来确定。采用运动学标定辨识机器人运动学模

型的方法按普通精度要求进行机械加工,安装完成机器人

后对其进行运动学标定后使用,可获得较高的位姿精度。

使用过程中结构参数发生变化(如再装配),对其再次进

行标定即可[1-3]。 对机器人本体的标定是机器人标定中基本而重要的

内容,可以分为:基于运动学模型的标定和非运动学模型

的标定;采用外部测量装置的外部标定和借助于机器人内

部传感器的自标定;自标定又分为施加物理约束和增加冗

余传感器两种方式[4-5]。 本文研究对象是一种大尺寸的码垛机器人,使用三坐

标测量机和关节测量臂的方法均较难实现。所以采用了基

于运动学模型的自标定方法,即利用机器人内部的关节传

感器对其进行运动学标定。

6424

Page 2: kinematiSelf-calibration for a welding robot based on kinematics and Matlab software

2.码垛机器人运动学分析

图 1 所示为研究的码垛机器人机构三维

有 4 个自由度,腰部回转、大臂俯仰、小臂

转。对应的关节 2 和关节 3 机构简图见图 2大臂、小臂的零位初值必须标定,腰部回转

需标定)。图 2 中的平行四边形机构使手腕

变,关节 2 和关节 3 均是通过丝杠螺母机构

动运动转化为俯仰运动。关节 2 和关节 3 电

量编码器。电机 2 经过减速器减速后,驱动

动螺母机构移动(即 P2 值发生变化,θ‘ 发生

相应的转角发生变化)。关节 3 同理。关节

速比为 7,电机每周的脉冲数为 4096,关节

为 10mm,关节 3 对应的丝杠导程为 16mm计尺寸如下: 442 . 94mm , 320mm, 400mm, 1540mm205mm, 800mm, 210mm,205 690,210 820。

图 1 码垛机器人三维图

P5l

4l 3l

2l

3d

1d2P a b

'2θ θ

z

x

图 2 机器人关节 2 和 3 机构简图

维图,机器人共

臂俯仰、手腕回

2 所示(机器人

转和手腕回转不

腕的姿态保持不

构,将电机的转

电机上安装有增

动丝杠转动,带

生变化,关节 2节和关节 3 的减

节 2 的丝杠导程

m。图中已知设504.48mm ,

, 2400mm, 320mm,

3P

b

2d

4d'3θ

sin ′cos ′

α sin ⁄ 2′ arccos

其中205 690,0.49β arcsin b d⁄ arcs

′ arccos 其中210 820,0.40

3.标定原理

采用基于运动学正分析的自标

参数标定。标定原理如下: 拆掉机器人手爪,在机器人手

机器人手腕下方放置一高度适合的

杆 2 和杆 3 所在的平面建立坐标系

和平板平面有一条相交线(图中的

运动,每次均使千分表和平台接触

表的读数以及关节 2 和 3 编码器

均在L直线上,利用共线关系列写

乘法,计算出机器人各运动学参数

图 3 测量原理

4.仿真运算

仿真运算框图如图 4 所示。

后计算出测量值,利用标定算法进

结果后和所赋值进行比较即可。

计算出测量值

给出各标定值

图 4 标定仿真运

4.1 只标定 P20、P30、k

只对关节 2 和关节 3 的“零位

z

0

cos ′ (1) sin ′ (2) 10 442.94⁄ 0.4939 (3) / 2 (4) 939 θ′ 2.2474 in . 0.6871 (5) / 2 (6) 084 θ′ 2.2640

标定方式对其进行运动学

手腕下吸附一个磁性表座,

的平台。关节 1 固定,以

系如图 3 所示。则 xz 平面

的L)。令关节 2 和 3 低速

触,测量并记下每次千分

的读数。由于这些测量点

写方程,然后利用最小二

数。

理图

首先将待标定值赋值,然

进行标定运算,算出标定

标定结果

标定运算

运算框图

位”以及 L 的斜率 k 进行标

x

L

6425

Page 3: kinematiSelf-calibration for a welding robot based on kinematics and Matlab software

定,即只对P20、P30、k进行标定。对其赋值,设P20=346mm,

P30=587mm,k=0.08。其余参数均按设计值。各测量点对

应的电机 2 和电机 3 的编码器仿真数值见表 1 所示(取 60个点)。关节 2 的回零点在丝杠上端,关节 3 的回零点在丝

杠下端,所以编码器数值符号相反。

表 1 电机 2、3 编码器仿真数值 1

序号 E2 E3 序号 E2 E3 1 -146396 258546 31 -226396 158546 2 -142396 258546 32 -236396 158546 3 -138396 253546 33 -246396 158546 4 -138396 248546 34 -256396 158546 5 -138396 243546 35 -266396 158546 6 -138396 238546 36 -266396 163546 7 -138396 233546 37 -266396 168546 8 -138396 228546 38 -266396 173546 9 -138396 223546 39 -266396 178546

10 -138396 218546 40 -266396 183546 11 -138396 213546 41 -266396 188546 12 -138396 208546 42 -266396 193546 13 -138396 203546 43 -266396 198546 14 -138396 198546 44 -266396 203546 15 -138396 193546 45 -266396 208546 16 -138396 188546 46 -266396 213546 17 -138396 183546 47 -266396 218546 18 -138396 178546 48 -266396 223546 19 -138396 173546 49 -266396 228546 20 -138396 168546 50 -266396 233546 21 -138396 163546 51 -266396 238546 22 -138396 158546 52 -266396 243546 23 -146396 158546 53 -261396 238546 24 -156396 158546 54 -256396 233546 25 -166396 158546 55 -251396 228546 26 -176396 158546 56 -246396 223546 27 -186396 158546 57 -241396 218546 28 -196396 158546 58 -236396 213546 29 -206396 158546 59 -231396 208546 30 -216396 158546 60 -226396 203546

设第一个测量点千分表读数为零,则根据运动学方程

以及各测量点共线,计算出各点千分表的读数见表 2。(表

2 中仿真测量数值已经远远超过了千分表的读数范围,但是

这对仿真有效性并没有影响)。

表 2 千分表测量值仿真数值

序号 测量值 序号 测量值1 0.0000000 31 2.0876104e+002 2 2.7876839 32 2.0028897e+002 3 17.877814 33 1.9163876e+002 4 30.352959 34 1.8280863e+002 5 42.969643 35 1.7379660e+002 6 5.5724021e+001 36 1.5927281e+002 7 6.8612382e+001 37 1.4483925e+002 8 8.1631136e+001 38 1.3049831e+002 9 9.4776808e+001 39 1.1625239e+002 10 1.0804604e+002 40 1.0210400e+002

11 1.2143557e+002 41 8.8055706e+001 12 1.3494224e+002 42 7.4110140e+001 13 1.4856300e+002 43 6.0270018e+001 14 1.6229488e+002 44 4.6538137e+001 15 1.7613501e+002 45 3.2917375e+001 16 1.9008057e+002 46 1.9410700e+001 17 2.0412887e+002 47 6.0211708e+000 18 2.1827726e+002 48 -7.2480581e+000 19 2.3252317e+002 49 -2.0393730e+001 20 2.4686412e+002 50 -3.3412484e+001 21 2.6129767e+002 51 -4.6300845e+001 22 2.7582147e+002 52 -5.9055223e+001 23 2.7027328e+002 53 -4.1771960e+001 24 2.6318502e+002 54 -2.4400456e+001 25 2.5592639e+002 55 -6.9440310e+000 26 2.4849691e+002 56 1.0594097e+001 27 2.4089598e+002 57 2.8210808e+001 28 2.3312287e+002 58 4.5903072e+001 29 2.2517672e+002 59 6.3667947e+001 30 2.1705650e+002 60 8.1502573e+001

利用 MATLAB 作为仿真工具,使用 fsolve 解算函数,

初值设为[360 600 0.2], myo-

tions=optimset('LevenbergMarquardt','on','NonlEqnAlgorithm','lm','MaxIter',10000,'TolFun',1e-3,'Tolx',1e-6, 'MaxFunEvals', 10000)。

仿真结果:exitflag=1,说明收敛,仿真值如下: [P20 P30 k]=[346.002200772016 586.996423026923

0.080007961516] 和设计值比较,误差很小。fval 曲线如图 5 所示,最

大误差<1×10-5mm。

图 5 fval 曲线 1

如果初值设为[330 620 -0.2]时,仍旧收敛,仿真结果

为 [P20 P30 k]=[345.999579585789 587.000526224774 0.079998822460],和真实值相比较误差仍旧很小,说明算

法对迭代初值要求不高。

误差

/mm

0 10 20 30 40 50 60-1

-0.5

0

0.5

1x 10

-5

6426

Page 4: kinematiSelf-calibration for a welding robot based on kinematics and Matlab software

4.2 只标定 P20、P30、k、l2、l3

设 2 240 , 3 600 , 0.1 , 1539 , 2399,其它值同设计值。电机 2、3 编码器仿真数值同表 1相同,此时千分表测量值仿真数值见表 3。

表 3 电机 2、3 编码器仿真数值 2 测量值 序号 测量值

1 0.0000000e+000 31 2.3084843e+002 2 4.2755460e+000 32 2.1606797e+002 3 2.4144180e+001 33 2.0051721e+002 4 3.9897875e+001 34 1.8406771e+002 5 5.5756693e+001 35 1.6654718e+002 6 7.1716998e+001 36 1.4936729e+002 7 8.7775288e+001 37 1.3224490e+002 8 1.0392819e+002 38 1.1518216e+002 9 1.2017244e+002 39 9.8181293e+001 10 1.3650490e+002 40 8.1244570e+001 11 1.5292253e+002 41 6.4374342e+001 12 1.6942239e+002 42 4.7573031e+001 13 1.8600165e+002 43 3.0843133e+001 14 2.0265756e+002 44 1.4187223e+001 15 2.1938746e+002 45 -2.3920370e+000 16 2.3618877e+002 46 -1.8891902e+001 17 2.5305900e+002 47 -3.5309531e+001 18 2.6999572e+002 48 -5.1641990e+001 19 2.8699659e+002 49 -6.7886242e+001 20 3.0405933e+002 50 -8.4039142e+001 21 3.2118172e+002 51 -1.0009743e+002 22 3.3836161e+002 52 -1.1605774e+002 23 3.2986223e+002 53 -9.1190262e+001 24 3.1893895e+002 54 -6.6518618e+001 25 3.0766344e+002 55 -4.2019101e+001 26 2.9601093e+002 56 -1.7671967e+001 27 2.8395228e+002 57 6.5393593e+000 28 2.7145289e+002 58 3.0628889e+001 29 2.5847127e+002 59 5.4608533e+001 30 2.4495708e+002 60 7.8488468e+001

迭代初值设为[360 600 0.2 1540 2400],仿真结果

exitflag=1,说明收敛,仿真值如下: [240.00018383601 600.00154648598 -0.010000468763 1539.01196728890 2398.99270047348],和真实值比较,误差很小。此时的 fval曲线见图 6 所示。最大误差<10×10-6mm。

图 6 fval 曲线 2

5.结论

本文所提出的机器人自标定方法,利用千分表、测量平

台、机器人本体的关节传感器作为测量工具,利用 MATLAB 的

最小二乘算法和该机器人的运动学方程完成标定运算。仿真结果

表明该方法具备较高的标定精度,且对迭代初值要求不高,可行

性较高。

参考文献

[1] ZVIS. ROTH,BENJAMIN W. MOORING,BAHRAM RAVANI.

An Overview of Robot Calibration. IEEE Journal of Robotics

and Automation. 39(5), 1987:377-385.

[2] A.Y. Elatta,Li Pei Gen,Fan Liang Zhi,et al.An Overview of

Robot Calibration.Information Technology Journal.3(1),2004:

74-78.

[3] 张文增,陈强,孙振国等.弧焊机器人工件坐标系快速标定方法.

焊接学报.2005,26(7):1-4.

[4] Wisama Khalil,Sebastien Besnard.Self Calibration of Ste-

wart–Gough Parallel Robots Without Extra Sensors.IEEE

Transactions on Robotics and Automation.15(6), 1999:

1116-1121. [5] 王东署,徐方,徐心和.激光加工机器人自标定研究.机械与电

子.2006,(2):45-48.

误差

/mm

0 10 20 30 40 50 60-6

-4

-2

0

2

4

6

8

10x 10

-6

6427