基于NURBS插补算法的工业机器人笛卡尔空间轨迹规划研究 | 您所在的位置:网站首页 › 机器人圆弧运动算法 › 基于NURBS插补算法的工业机器人笛卡尔空间轨迹规划研究 |
基于NURBS插补算法的工业机器人笛卡尔空间轨迹规划研究
时间:2015-09-09 17:08:25来源:周旋 乔枫 高添泉 路宇飞 导语:基于笛卡尔空间的轨迹规划作为机器人轨迹规划的一种方法,虽然在规划中可能会出现奇异位形,其运动反解也比较复杂,但其轨迹的精确性是基于关节空间规划的这种方法所无法比拟的,这样的研究可参考相关资料。摘要:本文研究了PUMA560机器人在笛卡尔空间中的轨迹规划问题,结合当前工业机器人在笛卡尔空间中轨迹规划的发展,对如何在高速环境下保持机器人末端运动的可行性和连续性轨迹规划的关键技术进行研究,利用NURBS(Non-Uniform Rational B-Spline) 曲线插补算法,使得机器人末端轨迹速度连续平滑且加速度连续,有利于提高机器人的运行速度和减少机器人的机械本体的振动和关节磨损。该算法运用MATLAB编程并在计算机上仿真PUMA560机器人模型轨迹运动,验证了轨迹规划算法。 关键词:工业机器人;轨迹规划;MATLAB;NURBS插补算法 1.前言 基于笛卡尔空间的轨迹规划作为机器人轨迹规划的一种方法,虽然在规划中可能会出现奇异位形,其运动反解也比较复杂,但其轨迹的精确性是基于关节空间规划的这种方法所无法比拟的,这样的研究可参考文献[1]。同时,随着计算机处理速度的不断提高,运动学反解的实时性也在不断提高,而轨迹规划中可能出现的奇异位形也可以通过仿真的方法加以修正。 目前,在笛卡尔空间中机械臂末端轨迹规划最基本的插补算法是空间直线和圆弧的插补算法。很多给定曲线都可以分段成多段直线或圆弧,然后再进行直线或圆弧插补。但对于一些复杂的自由曲线难以用简单的解析曲线表示,而要用列表形式给出。如果对这些复杂自由曲线进行多段直线或圆弧拟合,为了保证精度要求,复杂曲线必须分为很多小段直线或圆弧,这不仅导致编程复杂,效率降低,而且运动速度都受到严重的影响[2]。 因此,在机器人控制系统中加上B样条曲线插补功能,这能很好地解决复杂自由曲线路径的问题。而相对简单的三次B样条曲线在很大程度上能符合生产要求。所以,将三次B样条曲线插补功能应用于机器人控制系统中能很好地提高自由曲线连续路径操作中的精度和速度要求。 本文针对以上情况,采用了一种基于NURBS(Non-Uniform Rational B-Spline)曲线的可以对曲线弧长和曲线控制参数生成光滑的运动学轨迹轮廓的新广义插值算法。同典型的预先生成整个路径轨迹的运动学轨迹轮廓的方法相比,这种方法是在每个采样周期递归的生成具有光滑运动学轨迹轮廓的连续路径轨迹。这种递归的方法允许在路径轨迹运行中修改运动的速度,以避免一些比如曲线的曲率突变等意外的影响,从而对混合曲线类型的路径轨迹使用超前预估功能获得一条光滑的运动学轨迹轮廓。 2.机器人笛卡尔空间的NURBS插补算法研究 NURBS曲线比较复杂,计算量比较大,为了保证实时性,在实时插补前需先将相关公式及其系数计算出来。在NURBS插补中,预处理主要是确定每段NURBS的表达式,换言之,就是要在插补前根据NURBS的控制顶点、权因子和节点矢量求解NURBS表达式中的相关系数。目前有两种方法:一种是依据德布尔递推计算公式或给出三次NURBS基函数,可以很方便计算出NURBS曲线每一段的有理化表达式;另外一种是采用矩阵表达式[3]。 矩阵表达式这种形式使计算和分析都非常简单,所以本文采用这种方法。而对于插补点参数的求取,本文采用了泰勒展开法和探索法,同时考虑到精度问题,应用了预估-校正的方法修正参数和约束弦高误差来约束插补步长。 2.1三次NURBS表达式 已知控制点序列为,其对应的权因子序列为,和节点矢量为,则NURBS有理分式表达式为[4]: (1) 式中:B3、B2、B1、B0——分子系数矢量;B3、b2、b1、b0——分母系数矢量。 。并记:。 根据NURBS有理分式可解出三次NURBS曲线表达式第i-2段的具体表达式为: (2) 式中: (3) 将式子(1)与式子(2)比较可得轨迹表达式(1)中分子分母系数矢量计算公式: (4) 2.2参数密化 先利用一阶泰勒展开法算出前三点的参数值,再使用探索法[5]求其他点的参数值。一阶泰勒展开式: , (5) 式中,为插补步长。 探索法:(6) 2.3修正参数 由泰勒展开法和探索法得到的参数值作为此次参数插补的预估值,将其代入(1)可得到预估插补点[5]: (7) 对应预估进给步长为: (8) 采用预估法得到的和期望步长之间存在偏差,可用相对误差进行评定: (9) 式中,是期望插补步长(将在下面确定)。 当误差在允许范围内时,可认为即为所求的,否则按下式进行修正直至达到允许域内: (10) 2.4约束插补步长 为了提高插补精度,应该利用约束弓高误差来约束插补步长。插补弓高误差与插补步长及曲线曲率半径 之间存在如下关系[3]: (11) 为了计算方便,这里用曲线段中点与弦长中点的距离来代替弓高误差,如图1,即: (12) 式中,是由式子(5)或者式子(6) 确定的预估参数,是由式子(7)确定的预估插补点。 通常,与弓高误差h之间的偏差很小,只是在曲线的拐点附近可能有较大误差,但拐点附近的曲线曲率往往较小,则相应的插补误差也较小。因此,这种近似具有工程合理性。根据式子(11)中插补误差与进给步长的关系可得约束进给步长表达式: (13) 式中,是由式(8)确定的预估步长。
图1 弓高误差的近似 2.5确定期望插补步长 期望插补步长为[6]: (14) 其中为弓高约束求得的步长,为无约束状态的步长,匀速运动时为。将式(14)结合式(8)代入修正式(10)即可求得新的修正后的插补参数。 2.6插补点生成[10] 将轨迹空间映射到一维参数空间,在一维参数空间完成对参数的密化工作,得到一系列的参数值,接下来我们将参数接下来我们将参数代入如下我们规划的NURBS曲线表达式中: (15) ,,即为所得插补点坐标,将一系列插补点相连,就得到了机器人的运动轨迹,至此即完成了整个插补过程。 3.NURBS曲线插补算法的实现 根据以上论述,我们采用预估-校正方法进行参数的计算,可得算法流程如图2:首先生成NURBS曲线轨迹[8],即确定NURBS参数方程,然后完成插补,即计算各插补点对应的参量u,代入NURBS参数方程(15)求得各插补点坐标。 (16)
图2 NURBS曲线插补算法流程图 4.仿真结果与分析 以PUMA560机器人作为研究对象,验证算法在MATLAB中编程实现,并把算法产生的轨迹插值点数据输入到MATLAB中,由MATLAB完成图像的绘制并输出显示。 4.1仿真算例1-空间圆弧的NURBS插补 利用本文第2部分相关知识与文献[3][9]得出的半径为20的圆弧三次NURBS, 则表达式为: (17) 其中节点矢量为: ,控制顶点为:,相应权因子分别为:。设机器人运动的姿态保持不变,用RPY变换姿态角表示为(0.2,0.5,0.7),单位为弧度(rad)。设曲线运动的期望速度为200mm/s,插补周期为10ms。为了保证插补精度,插补过程中增加了弦高误差约束,设弦高最大允许值为0.5mm,修正相对误差最大允许值为0.5mm。 利用NURBS]曲线的生成程序,可生成用NURBS表示的半圆弧图形如图3所示。其中的多边形是用各个控制顶点连接而成的控制多边形。利用代入法,代入某些参数值计算,则知各个点均是在以原点为圆心,半径为20的半圆弧上。
图3利用NURBS表示的圆弧形状 将图3用NURBS表示的半圆弧各参数值存成文本文件于MATLAB的Work空间内,利用NURBS曲线的插补程序,读取指令格式,可进行实时动态轨迹插补,最终得其插补轨迹如图4。
图4圆弧的NURBS插补轨迹
图5机器人末端位姿各分量变化图 仿真结果表明,采用NURBS插补算法的机器人末端运动轨迹是光滑连续的,在期望速度下能保证路径的平滑和轨迹曲线的连续。 4.2仿真算例2-星型曲线的 NURBS实时插补 假定以下控制点及节点矢量,可得图6仿真结果:(数据来自文献[3]) 控制顶点依序为:{60,170,10}、{45,150,10}、{20,150,10}、{40,130, 10}、{35,110,10}、{60,125,10}、{85,110,10}、{80,130,10}、{100,150,10}、{75,150,10}、{60,170,10}。 权因子分别取:w=[1,1,1,1,1,1,1,1,1,1,1]。 节点分别为: N =[0,0,0,0,0.125,0.25,0.375,0.5,0.625,0.75,0.875,1,1,1,1]。
图6星型曲线仿真结果图 仿真结果显示,除起点处和结束处插补点间隔逐步均匀加大外(图6),其余插补点非常均匀,表明插补很平稳,效果很好。 4.3仿真算例3-蝴蝶型曲线的 NURBS实时插补 根据如下控制点及控制矢量,可以得到利用NURBS实时插补得到的蝴蝶型曲线(数据来自文献[7])。 控制顶点依序为:{104.493,152.139,10}、{105.507,152.139,10}、{106.082,149.615,10}、{106.78,144.971,10}、{119.575,151.358,10}、{127.786,158.573,10}、{140.526,167.081,10}、{155.973,163.801,10}、{150.4,147.326,10}、{144.567,139.913,10}、{142.369,130.485,10}、{133.44,133.757,10}、{141.892,128.509,10}、{139.444,120.393,10}、{133.218,115.446,10}、{137.621,104.83,10}、{130.945,109.267,10}、{129.834,114.535,10}、{126.074,108.522,10}、{120.183,112.55,10}、{114.171,116.865,10}、{109.993,122.122,10}、{105.68,136.359,10}、{106.925,124.995,10}、{109.765,119.828,10}、{104.493,114.94,10}、{99.22,119.828,10}、{102.06,124.992,10}、{103.305,136.359,10}、{98.992,122.122,10}、{94.814,116.865,10}、{88.802,112.551,10}、{82.911,108.521,10}、{79.152,114.535,10}、{78.04,109.267,10}、{71.364,104.83,10}、{75.768,115.447,10}、{69.539,120.391,10}、{67.097,128.512,10}、{75.537,133.75,10}、{66.602,130.496,10}、{64.199,139.803,10}、{58.668,147.408,10}、{53,163.794,10}、{68.465,167.084,10}、{81.197,158.572,10}、{89.411,151.358,10}、{102.204,144.971,10}、{102.904,149.614,10}、{103.478,152.139,10}、{104.492,152.139,10}。 权因子分别取:w=[1,1,1,1.2,1,1,1,1,1,1,1,2,1,1,5,3,1,1.1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.1,1,3,5,1,1,2,1,1,1,1,1,1,1,1.2,1,1,1]。 节点分别为:N =[0,0,0,0,0.008286,0.014978,0.036118,0.085467,0.129349, 0.150871,0.193075,0.227259,0.243467,0.25608,0.269242,0.288858,0.316987,0.331643,0.348163,0.355261,0.364853,0.383666,0.400499,0.426851,0.451038,0.465994,0.489084,0.499973,0.510862,0.533954,0.54891,0.573096,0.599447,0.61628,0.635094,0.644687,0.651784,0.668304,0.682958,0.711087,0.730703,0.743865,0.756479,0.772923,0.806926,0.84913,0.870652,0.914534,0.963883,0.985023,0.991714,1,1,1,1]。
图7蝴蝶型曲线仿真结果图
图8各关节角的变化图
图9各关节角的速度图
图10各关节角的加速度图 仿真结果显示,插补点分布大部分很均匀,在几处曲率较小的拐角存在变化,速度和加速度在曲率比较小的四处拐角处还存在明显的突变情况,大部分都能在许可范围内波动,表明系统存在少许冲击,但均在允许的范围之内。 5.结论 采用NURBS插补算法,对机械手末端的运动轨迹进行规划。在NURBS算法中,为了保证插补精度,增加了利用弓高误差来约束插补步长,由于NURBS算法中增加了弦高误差约束插补步长,所以运动的位移曲线不确定,导致运动轨迹不平滑,运动速度和加速度有少许波动,但均在允许的范围之内,不过它可以比较精确地插补各种自由曲线,可以满足用户的很多要求,随着计算机运算能力和储存能力的提高,NURBS将更为广泛地应用在机器人的轨迹规划中来表示轨迹路径。 参考文献 [1] 孙羽; 张汝波. 笛卡儿空间机器人轨迹规划方法[J].北华大学学报(自然科学版),2002(06). [2] 孔凡国; 郝尚华; 钟廷志; 郝凤齐.三次B样条曲线插补算法的VC实现[J].中国新技术新产品,2009(09). [3] 刘新山.NURBS曲线插补技术研究及其仿真[D],吉林大学,2007(04). [4] 刘新山; 贾庆祥; 袁修华.NURBS曲线插补算法及加减速控制研究[J],组合机床与自动化加工技术,2007(11). [5] 游有鹏, 王珉.NURBS曲线高速高精度加工的插补控制[J]. 计算机辅助设计与图形学学报, 2001, 13(10): 943-947. [6] 范劲松, 徐宗俊. 用三次NURBS表示圆弧与整圆的算法研究[J]. 计算机辅助设计与图形学学报, 1997, 9(5): 391-395. [7] 黄翔, 岳伏军.NURBS插补技术在高速加工中的应用研究[J]. 南京航空航天大学学报, 2002, 34(1): 82-85. [8] Meng-Shiun Tsai,Hao-Wei Nien,Hong-Tzong Yau .Development of an integrated look-ahead dynamics-based NURBS interpolator for high precision machinery. Computer Aided Design . 2008 [9] M Shpitalai,Y Koren,C C Lo. Real time curve interpolators. Computer Aided Design . 1994 [10] B K choi,W SYoo,C S Lee. Matrix representation for NURBS curve and surface. Computer Aided Design . 1990 标签: 分享到: 上一篇:基于 PC 以及 EtherCAT 的复... 下一篇:珠峰变频器在恒压供水中的应用 中国传动网版权与免责声明:凡本网注明[来源:中国传动网]的所有文字、图片、音视和视频文件,版权均为中国传动网(www.chuandong.com)独家所有。如需转载请与0755-82949061联系。任何媒体、网站或个人转载使用时须注明来源“中国传动网”,违反者本网将追究其法律责任。 本网转载并注明其他来源的稿件,均来自互联网或业内投稿人士,版权属于原版权人。转载请保留稿件来源及作者,禁止擅自篡改,违者自负版权法律责任。 相关资讯 |
CopyRight 2018-2019 实验室设备网 版权所有 |