《机器人空间三点圆弧功能的实现.doc》由会员分享,可在线阅读,更多相关《机器人空间三点圆弧功能的实现.doc(12页珍藏版)》请在三一办公上搜索。
1、机器人空间三点圆弧功能的实现第35卷2007拄第8期8月华中科技大学(自然科学版)J.HuazhongUniv.ofSci.8LTech.(NatureScienceEdition)Vo1.35No.8Aug.2007机器人空间三点圆弧功能的实现叶伯生(华中科技大学国家数控系统工程技术研究中心,湖北武汉430074)摘要:基于机器人终端执行器经历的空间任意三点,求出空间圆弧的圆心和半径,继而推导出机器人控制系统中任意空间圆弧的实现方法.该算法不仅理论上可使所有插补点均落在圆弧上,而且由于采用了矢量算法,并以三点的次序作为圆弧的方向,从而避免了插补方向和过象限的判断,可以使用统一的实时插补递推公
2、式.研究成果已在实际机器人中得到应用该成果同样适用于需要空间圆弧功能的机床数控系统.关键词:机器人;空间圆弧;插补;矢量;误差中图分类号:TP242文献标识码:A文章编号:167卜4512(2007)08000504ImplementationofarcinterpolationinarobotbyusingthreearbitrarypointsYeBosheng(NationalNCSystemEngineeringResearchCenter,HuazhongUniversityofScienceandTechnology,Wuhan430074,China)Abstract:Ameth
3、odisproposedtocalculatethecenterandradiusofanarcinaspacethroughthreearbitrarypoints.Thecorrespondinginterpolationalgorithmforanarbitraryspecialarcinarobotcontrolsystemwasdeduced.Allinterpolatedpointscouldfallonthecurvethroughthealgorithmtheoretical一1y.Aunifiedrecurrenceformulacouldbeusedwithoutthedi
4、rectionjudgment,becausevectoralgorithmwasusedandthesequenceofthreepointswastakenastheinterpolationdirection.Theresulthasbeenappliedtoapracticalrobot.ThisachievecanbealsousedinCNCsystemsinmachinetools.Keywords:robot;areinspace;interpolation;vector;error机器人一般应用于比较恶劣或人难于企及的环境以替代劳动者完成必要的任务,因而机器人的编程,很多情况
5、下是采用示教完成的口.示教过程包括把机器人移动到几个所要求的目标点并把这些点的位置记录在存储器中,然后定义经过这些点的曲线轨迹及速度.当曲线轨迹为圆弧时,除了示教圆弧起点(当前点)和终点外,至少还应知道圆心或圆弧上一中间点.显然,示教圆心是很困难的,因而机器人终端执行器的轨迹圆弧通常由示教的圆弧起点,中间点及圆弧终点决定,而这三点所决定的平面通常不一定平行于某一坐标平面,因而需要研究空间任意三点圆弧的插补算法.本研究以上述需求为出发点,基于机器人终端执行器(根据使用场合的不同,可以是爪,焊枪,电磁铁和其他装置)经历的空间任意三点,推导出了机器人控制系统中任意空间圆弧的实现方法,并分析了该算法的
6、性能及特点.1由空间任意三点求圆弧的圆心和半径已知空间任意三点分别为圆弧起点P.(X.,y.,Z.),中间点P(X,Y,Z)和圆弧终点P(X,Y,Z),如图1所示.设圆心为C(Xc,y,Zc),半径为R,则有lc-P.l=lc-Pllc-PlR;(1)c-P.一(丽).(2)收稿日期:20060712.作者简介:叶伯生(1966一),男,副教授;武汉,华中科技大学国家数控系统工程技术研究中心(430074).E-mail:yebosh?6?华中科技大学(自然科学版)第35卷图1空间三点决定的圆弧由式(1)得(X一Xc)+(yyc)+(ZZc)一R(一0,1,2).(3)设坐标系0XyZ上各坐标
7、轴的单位坐标矢量分别为i,-,k,则有.:(x.一xc,y0一yc,z.一Zc),P0一(X1一X0,Y1一y0,Z1一Zo),P1P一(X2一X1,Y2Yl,Z2一Z1).于是.xPoP1一liJklJX.一Xcy0一ycZoZcJ,Ixlx.y1一y0z1z.I-?+P0P1PlP;:i-,kIlX1一X.y1一y0Z1一Z.I.1x2一x1y2一ylz2一z1J由式(2)得(y0一yc)(Z一Z.)一(一Zc)(y一Yo3/E(Y一Yo)(Z2一Z)一(z一Z.)(y2Y1)一E(z.一Zc)(XlXo)(X.一Xc)(Z1一Zo)-1/Uz一Z.)(X2一X)一(X1一X.)(Z2一Z
8、1)一.(4)式(3)和式(4)化简后可得aExcZc一B,(5)R一(X.一Xc)+(yc)+(Z0一Zc)1/(6)式(5)中,A为33矩阵,a.一2(x.一X1),ao.一2(y0一Y1),a02=2(ZoZ1),alo一2(XlX2).a11:2(Y1一Y2),al22(Z1一Z2),一口02(口o2a11一a01al2)/8,a2I=:ao2(a0oai2一aL)2lf)/8,a22一a00(a02口11一a0la12)+abl(a)l!一a.2a1.)/8;B为31矩阵,b.一(+Z)一(X+y+Z),b=(X+Z)一(x;+y;+Z;),b2一口20X0+a21Y0+a22Z0.
9、由式(5)求得,yc,Zc,由式(6)求得R.在求解过程中应注意平行于某一坐标平面的圆弧的处理.此时X,Zi(i一0,1,2)中,有一个坐标值是不变的,容易出现detA一0(矩阵A的秩rantc42)的情况.在这种情况下,应去掉矩阵A和矩阵B的第3行以及矩阵A等于0的1列和EX.,Yc,Z.=rr的相应1行(若X一0,则去掉A的第1列和X.,y.,Z.r的第1行X.;若Y=0,则去掉A的第2列和Exc,Yc,Z的第2行Yc;若Z:0,则去掉A的第3列和X.,y.,Z.的第3行Z),形成一个二元一次方程组,求解未知的两个圆心坐标.2插补算法2.1插补原理任意空间圆弧插补,就是求出在一个插补周期T
10、内,机器人终端执行器从当前位置(X,Y,Zi)和方位(,)沿圆弧割线上截取弦长厂一FT(F为编程速度)后,所到达的下一个插补点的位置(X,Yi+1,Z川)和方位(+1,a,届+1).方位的插补一般采取线性方式,即把终端执行器在圆弧终点和起点的方位差均匀地分配到插补的每一步,算法简单,本文不作讨论.2.2插补递推公式在数控机床中,平行于坐标平面的圆弧编程一般只给出起点,终点和圆心,因而需要用G02和G03区分为顺时针圆弧和逆时针圆弧.而给定了起点,终点和一个中间点的空间三点圆弧的走向是确定的,因此无需用顺时针和逆时针区分.事实上,用丽丽表示空间三点圆弧所在平面的法矢量,l,则从,l的正方向看,从
11、P到P到P的圆弧始终是逆时针圆弧.所以,可用统一格式ARCX.一y.一ZfX1一y1一ZlX2一y2一Z2一描述空间三点圆弧-6_.机器人的控制系统读入此段程序后,首先求出圆心和半径,然后再计算插补点的坐标.设,l一丽一+,则一(ylYo)(Z2一Z1)一(Z.一Z0)(y2一Y1);一(z,一)(x2一x1)一(7)(X1一Xo)(Z2一Z1);叫一(X1一Xo)(y2一Y1)一(y,一Yo)(X2一X1).空间三点圆弧上任一点P(X,Y,Z)处沿前进方向的切矢量第8期叶伯生:机器人空间三点圆弧功能的实现?7?i+J+llk=,l一IXtXc.,y一yc硼ZZc则rf一(Z一Zc)一硼(YY
12、c);f=硼(XXc)(ZfZc);(8)lz一(YYc)一(XXc).设经过一个插补周期后,机器人的终端执行器从P(X,Y,Z)沿圆弧切向移动FT后(其中:F为编程速度;T为插补周期),到达P:+(x:+,t+,z:+),女图2所示,贝UrX斗1一X+X一X+Em;1一Y+Y+En;(9)lZ1一Z+=Z+E/,式中EFY/(+l).可以证明+z一(硼)?(XXc)+(yyc).+(Z一Zc)+(XXc)+(y一Yc)+(Z一Zc)一(硼)R,.从而,EFT/ER(+硼).(10)从图2可以看出,点P:+并不在圆弧上,为使所有插补点都落在圆弧上,需对式(9)进行修正.连接cPi+交圆弧于P点
13、,以P代替+作为插补点,则插补点始终在圆弧上.图2空间圆弧插补原理在直角ACPP:+中,I+IzIIz+I+I,即(R+R)一Rz+FTz,有rx斗1一xc+R(x1一xc)/(R+FT)1/2;JY斗1一Yc+R(1一yc)/(R+FT)/;Iz斗一zc+R(ZI+1一zc)/(R+FT)/.(11)令GR/(R+)1/2一l/1+(/R),(12)并把式(9)代人式(11),得插补递推公式rX1一Xc+G(X+Em一Xc);Y一Yc+G(Y+Enfyc);(13)IZ斗1一Zc+G(Z+E/Zc).2.3终点判别圆弧插补的终点判别只需算出圆心角和步距角,以两者的商作为插补次数,参考图2,有
14、一arcsin(FT/R)FT/R.(14)圆心角的计算则要考虑如图3所示的丌(圆弧P.PP)和>丌(圆弧P.PP)两种情况.当丌时,02arcsin(X2一Xo)+(y2一y.)+(Z2一Z.)/(2R);(15)当>丌时,02丌一2arcsin(X2一Xo)+(y2一)+(Z一)/(2R).(16)从图3可以看出,当丌时,矢量.P.P.PPo图3圆心角的计算与圆弧所在平面的法矢量,l(一)方向相同;当>丌时,矢量.与,l方向相反.因而可用公式H一训1+删1+伽1(17)的正负来判断的范围,当H0时,丌;当H<O时,>丌.式中,1,硼1为矢量Cp.P.在各坐标轴
15、方向上的分量,1一(yoYc)(Z2一Zn)一(一Zc)(y2一Y.);1一(一Zc)(x2一Xo)一(18)(X.一Xc)(Z2一);硼1一(XoXc)(y2一Y0)一(yoYc)(X2一Xo).算出和后,插补次数(不包括点)NEo/a+1.(19)2.4误差分析由插补递推过程知,插补点总在圆弧上,算法没有累积误差.?8?华中科技大学(自然科学版)第35卷从图2和式(14)可知,每次插补走过的步距角是不变的,因而每个插补周期走过的弦长是不变的,即进给速度是恒定的.只是弦长lPPl稍稍小于切线段长度lPP:+l(=FT),相对误差为很小,可以忽略其高次项)(1PPlIPPI)/lPPl=(L2
16、Rsin(8/2)/(F丁)=12sin(8/2)/81218/2一(8/2)./(31)+(8/2)/(51)3/8/(241).插补的弓高误差约为F/(8R).2.5插补算法步骤及实时性分析根据以上分析,可以构造出如下空间三点圆弧的插补算法步骤(注意:为避免混淆插补动点与圆弧起点,中间点和终点,此处用XE1描述x,用y描述y,用zEi描述Z).a.获取已知条件:圆弧起点P.(X.,Y.,Zo),中间点P(X,y,Z1)和圆弧终点Pz(Xz,y2,Z2),编程速度F及插补周期T.b.由式(5)求圆弧的圆心C(X.,Y.,),由式(6)求圆弧半径尺.c.由式(7)求圆弧所在平面的法矢量n的分量
17、u,由式(18)求1,1,1,由式(12)求G,由式(14)求.d.由步骤c求得的结果,根据式(10)算出E,根据式(17)算出H.e.根据H的正负由式(15)和式(16)算出,并由式(19)算出插补次数N.f.置一0,插补起点为P.(X.,Y.,Zo),即xo3:X.,yO一Yo,zro3一Z0.g.=+1,由式(8)求m,z.h.由式(13)确定下一插补点.i.若<N,则转g.j.xEN3=X2,yN一Y2,Zr一Z2,结束.步骤ae在插补预处理中完成.因而实时插补过程由式(8)和式(13)构成,共有9次乘法运算,计算量不大,在主频166MHz的工控机上验证,平均每次的插补运行时间约
18、为0.1ms.大部分机器人是关节机器人,系统控制的是关节坐标轴.因此,用上述方法算得插补动点后,还得通过坐标变换把动点的位置和方位转换为关节坐标,然后控制相应的关节转动一定的角度,到达所要求的位置和方位.不同结构的机器人,其变换矩阵会不同,但对于任一给定的机器人,其位置和方位与关节的关系是一定的.因而只要插补点的位置在机器人的运动范围内,总可以找到相应关节坐标系下的解83.误差分析和实时性分析表明,本文研究的算法能满足机器人控制的精度及实时性要求,本研究成果已成功应用于华中I型教学机器人.事实上,在机械加工中,如果机床数控系统具有空间任意圆弧插补功能,可达到简化编程,提高加工效率和精度的目的.
19、因此,本研究成果也可应用于高性能机床数控系统.参考文献1熊有伦.机器人技术基础M.武汉:华中理工大学出版社,1996.2叶伯生.计算机数控系统原理,编程与操作M.武汉:华中理工大学出版社,1999.3秦开怀,金建新,宾鸿赞.CNC系统中任意三维椭圆弧的高速插补新方法J.华中理工大学,1992,20(6):7-11.4金建新.机床CNG系统中任意空间曲线的可控步长插补方法J.机械工程,2002(4):9597.5别卫春,朱志红,叶伯生.HNCIR机器人语言解释系统的研究与实践J.机电一体化,2000(3):273O.6叶伯生,朱志红,刘恩沧.基于PC的教学机器人控制系统J.机械与电子,2000(6):4345.7张毅,叶伯生,朱志红.HNcIR机器人运动学方程的研究及求逆的新方法J.机械设计与制造.2000(3):4042.8王奇志,徐新和,尹朝万.PUMA机械手逆运动方程新的推导方法及求解J.机器人,1998(3:8187.