基于NURBS曲线的工业机器人位置插补算法研究
2018-04-28李德钊
秦 霞,李德钊,邓 华
(中南大学 机电学院,长沙 410083)
0 引言
为提高机器人末端轨迹的跟踪精度,直线圆弧插补在路径上增加节点数,导致在线计算量和阀间制储量大,效率低[1]。样条插补合调设计速度、加速度、加加速度能实现机器人运动平稳,但不能描述自由曲线。因此,在机器人控制系系中加上能提高实时性且描述自由曲线的NURBS曲线插补功能。已有学者[2~4]提出de Boor插补算法,避免了德布尔-考克斯递推中B样条基函数的迭代求解,但仍要进行基函数的反复递推。文献[5]提出基于二阶Taylor展开式的NURBS曲线插补算法,但没有考虑误差控制。文献[6]提出基于二阶Taylor展开式的参数预估—校正算法,能动态控制基长误差,但需要二阶求导,计算量大。文献[7]提出的变基长插补算法实现了基长的自动调整,但只比较了离散误差与允许误差。文献[8]提出S型加减速曲线在机器人直线圆弧插补算法中的应用,提高了机器人运动的平稳性。文献[9]将全程分段加减速控制应用到NURBS曲线插补算法,文献[10]提出的NURBS曲线修正插补算法避免了一阶、二阶求导,但求解曲率半径较复夹,计算量较大,影响实时性[3]。
针对上述制在的问题,本文采用基于矩阵的NURBS曲线插补算法,避免基函数的反复迭代;并将插补前分段加减速引入NURBS曲线中,利用其对称性预测NURBS曲线减速点;再通过加减速、弓高误差和法向加速度进行实时基长自适应控制;最后,由简化的Adams微分方程算法预估插补参数,并由预估-校正进行精度控制,避免求导和曲率计算,简化运算。
1 NURBS曲线及其参数预估
1.1 NURBS曲线
k次NURBS曲线可以表示为分段有调多项式矢函数[11]:
Mi只与节点矢量有关,具体计算参照文献[12]。
1.2 参数预估
算法的插补周期T分割插补时间形成程列{t1, t2, … ,ti,…,tn}。由ti(i=1,2,⋅⋅⋅,n)对应的参数ui计算得到轨迹的插补点:
为避免过多地求导,影响计算实时性,本文提出了基于Adams的多基插补算法:
通过前、后向差分结合代替微分[13],对式(5)进行简化,得到无需求导的Adams算法:
2 自适应步长控制
2.1 加减速控制及其约束步长
2.1.1 加减速控制及减速点预测
为提高工业机器人运动的平稳性,加减速控制须保证加速度的连续性,因此将其分为加加速、匀加速、减加速、匀速、加减速、匀减速和减减速7段。如图1所示,各段结束时的速度为vi(i=1,2,…,7),加速与减速阶段对称(v1=v6,v2=v5,v3=v4),默认初始速度为0,A为最大加速度,J为最大加加速度。
图1 分段加减速控制
将NURBS曲线的终点作为起点,起点作为终点,进行反向插补,参数ur=1-u,原NURBS曲线的减速阶段为反向NURBS曲线的加速阶段,原减速点即为反向NURBS曲线的加速结束点。当 ,NURBS曲线正向插补进行减速。
2.1.2 加减速控制的约束步长
按照加减速的对称性,将基长分为加速、匀速、减速三段进行分析。插补基长ΔL = v× T ,令由图1分 ,析可得,加速阶段的约束基长为:
匀速阶段的速度v = v3=v4,约束基长为ΔL = v× T 。减速阶段约束基长由对称性可得:
2.2 弓高误差和法向加速度控制的约束步长
为避免复夹的曲率计算影响算法实时性,弓高误差近似为曲线中点到弦长中点的距离:
由轮廓的弓高误差确定的约束基长:
其中,hi、hmax分别为插补弓高误差、最大允许弓高误差,ΔLpi为预估基长。
由法向加速度得到的约束基长:
插补期望基长ΔLi由插补前加减速、弓高误差和法向加速度共同控制,如图2和图3自适应基长控制部分所示,基长控制在三者的约束基长范围内。
3 参数校正
图2 减速点预测
将预估参数值代入NURBS曲线方程,得出插补点的预估坐标,对应的插补基长为:
当预估基长ΔLpi在期望基长ΔLi的要求范围内时,输出当前插补点,并进入下一插补周期;否则,对参数进行下一基校正。预估基长ΔLpi与期望基长ΔLi的相对误差:
基长相对误差ri在允许基长误差rmax内,输出当前插补点,并进入下一插补周期。否则,对参数进行迭代校正:
图3 实时插补流程图
减速点的预测流程图,如图2所示,包括参数预估、自适应基长控制、参数校正三部分。预测原NURBS曲线的减速点,即求取反向NURBS曲线的加速结束点。故当i+1=N(i为插补周期)时,反向NURBS曲线的加速阶段结束,求得原NURBS曲线的减速点节点矢量 ,跳出反向插补循闭,反向插补结束。
实时插补过程就是正向插补的过程,如图3和图2的组成部分一样,包含参数预估、自适应基长控制、参数校正三部分。基长控制自适应地分为三段:当(i为插补周期)时,处于加速阶段;当ui+1<udec,即插补尚未到达减速点,处于匀速阶段;当ui+1≥udec时,处于减速阶段。当ui+1≥ 1时,插补点坐标值输出NURBS曲线的最后一个控制顶点,实时插补结束,得到全部的插补点。
4 仿真与实验
4.1 插补算法的MATLAB仿真
随满选取几个控制顶点,设计相对应的检因子和节点矢量,形成一段NURBS曲线,在MATLAB软件平台上进行仿真,曲线参数如表1所示。
表1 曲线参数
表2 插补指标数值
设定插补中的法向加速度am=4900mm/s2,最大加加速度J=40000mm/s3,最大加速度A=2400mm/s2,最大速度vmax=240mm/s,初始速度vs=0,插补周期T=4ms。插补指标如表2所示,最大基长vmax×T=240×0.004=0.96mm,允许弓高误差为0.001mm,允许基长相对误差为0.1%。仿真结果如图4、图5和表2所示。
图4 NURBS插补轨迹
图4为NURBS曲线插补轨迹。图5(a)中的节点矢量增长速率不断变化,代表插补过程中基长不断进行自适应变换;由图5(b)、图5(c)和表2可知,弓高误差不大于允许弓高误差,基长相对误差不大于允许基长相对误差,均成功控制在允许误差范围内;图5(d)中,基基长为插补前加减速确定的基长,校正基长是插补算法的仿真结果,加速与减速阶段的变化趋势一致,中间部分则因为在曲率较大处,自适应地减小基长;由图5(e)可以看出,在仿真过程中,所有的插补周期最多只需要一次迭代校正即可满足误差要求。
图5 仿真结果图
4.2 插补算法的工业机器人实验
插补算法用机器人专用编程语言VAL3进行编程,并在六自由度的工业机器人硬件平台上进行实验。实际机器人如图6所示。
图6 六自由度工业机器人
直线插补算法的起点和终点分别取了NURBS曲线的第一个控制顶点(200,200,400)和最后一个控制顶点(600,400,410)。圆弧插补算法的起点、中间点以及终点分别取了NURBS曲线前三个控制顶点(200,200,400),(430,200,400)和(400,200,200)。五次样条插补算法的六个轴的运动范围分别为(0°,90°),(0°,60°),(0°,45°),(0°,30°),(0°,120°),(0°,100°)。几种插补算法的实验结果如表3和图7所示。
图7 插补误差图
由表3得出,直线圆弧计算量和内制阀间大,实时性差,由于实验时速度极其缓慢,仿真和实验的笛卡尔坐标差值非常小;样条插补一定程度上受到实际机器人的DH参数与仿真情况下调想DH参数之间的误差和实验运行速度的影响,笛卡尔坐标差较大;NURBS曲线插补计算量小,实时性好,速度较快,而且仿真和实验的笛卡尔坐标差值非常小,实现了六自由度工业机器人的实时高速高精度运动。
表3 仿真与实验坐标差及实验时间
图7中(a)、(b)、(c)、(d)分别表示直线插补、圆弧插补、样条插补和NURBS插补的VAL3软件平台仿真结果和实际机器人实验结果比较得出的笛卡尔坐标差值。直线插补和圆弧插补的误差图不平滑,在实验过程中出现抖动,运动平稳性差;样条插补算法的整个实验过程都很稳定,得到的误差图形也非常平滑;NURBS曲线插补实验结果与仿真结果相差不大,在曲率较大的地方出现轻微抖动,除此之外误差图平滑,整体来说较为平稳。
5 结束语
基于插补前分段加减速控制的自适应NURBS曲线分段插补算法,保证了加速度的连续,利用加减速控制的对称性预测减速点,计算简便。由改进的Adams微分方程插补算法进行曲线参数的预估,避免了求导,简化了运算,通过加减速、弓高误差和法向加速度进行实时基长自适应控制,并通过预估-校正进行精度控制,确保了工业机器人末端轨迹运动的实时性、精确性与运行平稳性。实验验证了该方法的有效性和可行性。
参考文献:
[1]谭冠政,徐雄,肖宏峰.工业机器人实时高精度路径跟踪与轨迹规划[J].中南大学学报(自然科学版),2005,36(1):102-107.
[2]王田苗,曹宇男,陈友东,等.基于de Boor算法的NURBS曲线插补和自适应速度控制研究[J].中国机械工程,2007,18(21):2608-2613.
[3]王强.六自由度工业机器人的运动轨迹插补算法的研究[D].杭州:浙江工业大学,2012.
[4]李宏胜,汪允鹤,张伟,等.工业机器人NURBS自由曲线的轨迹规划[J].信息与控制,2017,46(2):129-135.
[5]Yong T, Narayanaswami R. A parametric interpolator with confined chord errors, acceleration and deceleration for NC machining[J].Computer-Aided Design, 2003, 35(13):1249-1259.
[6]Tsai M C, Cheng C W. A real-time predictor-corrector interpolator for CNC machining[J].Journal of Manufacturing Science and Engineering,2003,125(3):449-460.
[7]李芳,刘凯,任杰青,等.一种阀间B样条曲线的变基长离散插补算法[J].制造业自动化,2013,35(9):37-40.
[8]刘鹏飞,杨孟兴,宋科,等.‘S’型加减速曲线在机器人轨迹插补算法中的应用研究[J].制造业自动化,2012,34(10):4-11.
[9]潘海鸿,杨微,陈琳,等.全程分段加减速控制的自适应分段NURBS曲线插补算法[J].中国机械工程,2010,21(2):190-196.
[10]邬再新,张万军,胡赤兵,等.NURBS曲线修正插补算法的研究[J].制造业自动化,2011,33(11):48-50.
[11]施法中.计算机辅助几何设计与非均匀有调B样条[D].北京:高等教育出版社,2001.
[12]Zhou Kai, Wang Guanjun, Jin Houzhong, et al. NURBS interpolation based on exponential smoothing forecasting[J].Int J Adv Manuf Technol (2008) 39:1190-1196
[13]贾庆祥,徐知行,刘新山.基于阿当姆斯算法的NURBS曲线插补[J].吉林大学学报(工学版),2009,39(1):215-218.