李 奎,徐孝彬,王婷婷,刘 波
(河海大学 机电工程学院,江苏 常州 213000)
因其具有高强度、轻量化、耐疲劳等诸多优点,复合材料构件已经被越来越多地被应用在航空航天、军工等领域[1-2],因此,行业对复合材料铺放成型装备的要求也越来越高。
冗余铺放机器人逐渐成为复合材料铺放的主流设备。由于逆解的无穷性,冗余机器人在路径规划及避障等方面具有更大的灵活性[3-6],但冗余特性也为机器人的运动学求解及优化增加了难度。
冗余机器人逆运动学求解的方法主要有代数法[7-8]、迭代法[9-10]、几何法[11-12]和自运动流形法。自运动流形法反映了冗余机器人的运动学本质,给出了逆解的全部构型,因此受到了众多研究者的青睐。
基于自运动流形的性能优化可以得到全局最优解。为此,国内外很多学者针对冗余机器人系统的自运动流形求解及优化进行了大量研究。
MAHMOUD T等人[13]对七自由度拟人手臂的构型和相应位姿进行了大量数据采样,从而获得了多个参数化表示的分类流形;但其采样过程较为复杂。MOORE B等人[14]利用旋量四元数获得了七自由度PA10机械手的参数化的自运动流形;但该方法的计算量较大。PIERRE D等人[15]从末端姿态局部小范围调整和参数化自动流形两方面,对七自由度冗余铺放机器人的控制进行了优化,提高了其铺放的效率;但该方法不具有通用性,并不适合其他构型的铺丝机器人。JIUCHUN G等人[16]在铺放路径节点对应的流形中动态寻找最短路径,即为相应离散位姿点对应的最优逆解;每个节点的解都要依赖于前面所有节点的解,因此很容易出现错误解,而且求解过程较为复杂。徐朋等人[17-18]利用Paden-Kahan子问题和旋量方法,求解了八自由度铺丝机器人自运动流形,并分别以关节速度变化量最小、关节变化最小以及关节动能最小化为指标,建立了多目标优化函数;但文中并没有给出机械臂各关节优化曲线的仿真结果。赵建文等人[19]采用几何法和矢量代数,对位姿解耦的七自由度冗余手臂的位置子流形和姿态子流形进行了分析;但其没有进行流形方面的优化研究。葛新锋等人[20]采用点的自然坐标作为独立的运动参数,对七自由度铺放机器人的自运动流形进行了参数表达;但其没有对流形进行仿真和验证。栗伟周等人[21]引入了体积元函数,对七自由度铺丝机器人进行了运动学性能分析。郭娟等人[22]采用位置和姿态变换矩阵相结合的算法,对自动铺丝机器人进行了逆运动学求解;但其均未涉及到较深入的优化研究。
上述方法有的计算量大、效率低,有的方法不具有通用性,只适合特定构型的冗余机器人求解。
基于上述分析,笔者结合几何法和自运动流形法,首先,利用运算效率较高的几何法求解其自运动流形;其次基于自运动流形进行全局逆解优化(由于铺放质量与机器人的关节运动幅度和加速度变化具有很大关系,为满足铺放质量,建立一种基于自运动流形的全局优化目标函数,将铺放路径变量引入目标优化函数,使得机器人在整条铺放路径上关节运动变化量和加速度变化量之和最小);最后,对飞机尾椎模型的一条铺放路径进行运动学逆解全局优化,以验证优化算法的可行性。
该冗余铺放机器人系统由六自由度库卡机器人KUKA KR 120 R2900 extra、移动导轨和旋转芯模组成,其系统结构如图1所示。
图1 八自由度铺放机器人系统
机器人可沿导轨进行直线运动,对旋转的芯模完成复合材料的铺放工作。因此,该铺放系统可等效为一个八自由度的冗余机器人来进行研究。
根据D-H法建立系统坐标系如图2所示。
图2 八自由度铺放机器人D-H坐标系
图2中,xmymzm-Om是芯模固定坐标系(fixed mold coordinate system,FMCS),xm′ym′zm′-Om′是芯模旋转坐标系(rotating mold coordinate system,RMCS),x0y0z0-O0为移动导轨零位坐标系,x1y1z1-O1为移动导轨坐标系。x2y2z2-O2至x7y7z7-O7为机械臂关节坐标系。
对冗余系统而言,令r为相对冗余自由度个数,则每个自运动流形都是构型空间的r维子流形。
定义r维向量s={s1,s2…sr},则每个子流形可表示为Mi(s),对于末端给定位姿,其对应的自运动流形可表示为:
(1)
式中:n为自运动的总个数;Mi(s)为第i个自运动子流形。
对于八自由度铺放机器人系统,其相对冗余自由度个数为2。笔者选取芯模旋转角度θ1和机械臂直线位移d定义为冗余变量。因此,该铺放系统所对应的自运动流形为二维子流形的集合。
对于该冗余系统的自运动流形求解,笔者采用位姿分离和关节依次运动的思想,对于给定的末端位姿,通过计算可以得到机械臂腕点的位置坐标,通过芯模旋转关节、移动关节和机械臂前3关节的运动,使机械臂的腕点达到预定位置;此时,再通过依次调节机械臂后3个关节的运动,使得末端达到预定姿态。因为铺放头与机械臂最后一个关节固连,所以根据铺放头的长度和位姿矩阵,可以得到腕点的位置坐标,腕部三个转动关节的轴线交于腕点。因为姿态调整时不影响腕部的位置,所以铺放头末端位姿解耦。
机械臂转动关节空间可表示为C2~C7,芯模旋转关节空间为Cm,移动关节空间为C1,定义位置关节构型空间为CP=Cm×C1×C2×C3×C4。末端压辊对应的位姿相对于芯模旋转坐标系是保持不变的。
机器人铺放头末端压辊的位姿由规划的铺放路径决定。定义铺放路径时,设定RMCS与FMCS两个坐标系。铺放起始时刻,两个坐标系重合,随着铺放过程的进行,FMCS在世界坐标系里始终保持不变,RMCS跟随芯模的旋转在世界坐标系里是一直变化的;但相对于芯模自身不发生改变,所以定义的铺放路径和末端压辊位姿在RMCS中保持不变,但相对于FMCS已经发生了位姿变化。RMCS与FMCS的变换矩阵可通过芯模转角θ1获得。
对于RMCS中的末端压辊位姿矩阵m′TE,根据定义的位置子流形,则有:
(2)
令压辊到机械臂腕点W的长度为l,由于铺放头与机械臂关节7固连,则腕点在末端位姿坐标系中的齐次坐标表示为ElW=[0 0 -l]T,则:
(3)
式中:m′TE为铺放末端RMCS坐标系中的位姿矩阵。
再由式(2)和式(3)相等,可以得到m′pW对应的位置子流形构型表达式。但由于冗余性,无法得出各关节的解析解。为此,需要对式(2)、式(3)做相应变换,即:
(4)
式(4)等号左边包含位置子流形关节变量θ2~θ4,等号右边包含θ1,d两个自运动变量。因此,可以将θ2,θ3,θ4用θ1,d表示;对于θ2,θ3,θ4的求解可采用几何法进行获取。
令腕点在机械臂基座坐标系x1y1z1下的坐标为1pW=[1pWx1pWy1pWz],则有:
(5)
通过上式可得,1pWx,1pWy,1pWz均为θ1和d的表达式。
机器人的肩肘腕关节运动示意图如图3所示。
图3 关节2旋转示意图
机器人肩肘腕关节共面,即O1SEW共面,将腕点W投影到x2y2平面交于W′,则O1W′与y2轴重合,θ2即为y2与x1轴的夹角:
θ2=arctan(1pWz/1pWx)
(6)
机器人基座旋转示意图如图4所示。
图4 机械臂基座旋转示意图
初始状态下,向量lO1S0=[a2h0]T,a2,h均为机械臂已知的结构参数,当关节2旋转θ2角度后,向量lO1S=[a2cosθ2ha2sinθ2]T。图3中向量lO1W=[1pWx1pWy1pWz]T,lSW=lO1W-lO1S,可得:
θ3=arccos(0z2·lSW/|lSW|)-∠ESW
(7)
其中:0z2=[0 1 0]T,∠ESW=arccos((|SE|2+|SW|2-|EW|2)/(2|SE||SW|)。
根据图3所示,同样可求得θ4如下:
θ4=π-∠SEW
(8)
其中:∠SEW=arccos((|SE|2+|EW|2-|SW|2)/(2|SE||EW|)。
由上述求解可知,θ2,θ3,θ4均可以用θ1和d表示,从而得θP=[θ1dθ2θ3θ4]T的参数方程,可抽象表示为H(θP,θ1,d)=0,即为位置子流形的参数方程形式。
理论上,根据机械臂是否翻肩和左右手臂形,可以得到位置子流形的四个曲面。考虑实际铺放过程中机械臂工作的连续性,其构型不可能在不同的位置子流形中跳转。因此,上述求解的位置子流形只代表机械臂正常工作时的构型,而对其他三种构型对应的位置子流形,笔者不再详细论述。
经过位置关节的运动,其末端姿态已经改变,末端姿态和关节7姿态一致。因此,通过θ5,θ6,θ7三个关节的依次运动将关节7恢复到给定目标姿态即可完成末端压辊姿态调整。
末端姿态调整过程如图5所示。
图5 末端姿态关节依次运动过程
图5(a)图是经过位置关节运动后的关节5至7姿态示意图,依次运动过程为关节5旋转θ5和关节6旋转θ6后,使得z7轴恢复到目标值;再通过关节7运动旋转θ7后,使得末端坐标系y轴恢复到目标值。因为在进行姿态调节时,腕点位置保持不变,所以保证了最终末端位置的正确性。
根据上述姿态变换过程,可得如下矢量代数表达式:
(9)
(10)
θ7=arccos(y‴7·y7)
(11)
在关节依次运动过程中,可得下式:
(12)
在实际铺放应用中,机械臂不可翻腕,因此,笔者不再讨论翻腕对应的姿态子流形。
此处,笔者以末端压辊位姿为例,给出其对应的自运动流形仿真。
该位姿矩阵是根据系统正解获得的齐次变换矩阵,其中,θ1=0°,d=1 500 mm,θ2=90°,θ3=80°,θ4=-15°,θ5=18°,θ6=20°,θ7=20°。
齐次变换矩阵为:
m′TE=
该位姿为仿真系统中机器人铺放时某一时刻对应的姿态。其中,左上角3×3矩阵表示末端压辊在芯模旋转坐标系xm′ym′zm′-Om′中的姿态,右上角3×1矩阵表示压辊在芯模旋转坐标系的位置坐标。
其他参数分别为h=675 mm,a2=350 mm,Xf=2 500 mm,Yf=1 000 mm,∣SE∣=2 500 mm,∣EW∣=1 200 mm;并假定芯模和机械臂的移动方向均保持不变,即芯模保持逆时针旋转,机械臂远离零位移动,这与实际铺放过程相符。
θ1和d作为自运动变量,根据上述求解过程可得到其位置子流形仿真结果,如图6所示。
图6 位置子流形仿真
姿态子流形仿真结果如图7所示。
图7 姿态子流形仿真
由于该冗余系统的自运动流形存在于八维关节构型中,无法直观表示。因此,需要将其分别映射为θ2,θ3,θ4张成的空间位置子流形和θ5,θ6,θ7张成的空间姿态子流形来表示。
从仿真结果可以看出:该八自由度铺放机器人对应的自运动流形为空间中的部分曲面,而非完整的封闭曲面,这是因为KUKA机器人各关节角都有一定的变化范围,并非理想的(π,π]取值范围。
这也和假定的芯模单一旋转方向以及机械臂单一移动方向因素相关。
笔者任取若干组自运动变量值,得到机械臂的关节角度值,并通过正向运动学得到末端位姿矩阵均与给定位姿相符,从而验证了自运动流形的正确性。
具体验证过程此处不再详述。
自运动流形给出了铺放路径上每个离散路径点对应的无穷多个逆解,逆解全局优化旨在建立某种优化准则,从自运动流形无数逆解中寻找最佳的逆解,从而用于控制机械臂完成铺放工作。
笔者从铺放路径全局出发,建立目标优化函数如下式所示:
H(θ1,d)=
(13)
该优化准则针对机械臂每个旋转关节,均包含两项之和。其中,第一项是在全局铺放路径上求每个关节变化的两次连续可微曲线,从而使每个关节曲线的曲率变化之和最小,保证机械臂整体运动的平滑性。第二项使得在铺放全局过程中各个关节变化量之和最小,从而降低机械臂整体运动的幅度[23]。
此处以长度约2 450 mm的飞机尾椎模型为铺放实验对象,如图8所示。
图8 飞机尾椎模型及铺放路径
笔者以测地线规划一条铺放路径,长度约3 500 mm,初始位姿点为T0,终点位姿为Tn,Ti为铺放路径上第i个离散位姿点,对整条铺放路径采用上述自运动流形求解和优化准则进行优化。
芯模转角随铺放路径优化曲线如图9所示。
图9 芯模转角随铺放路径优化曲线
机械臂位移随铺放路径优化曲线如图10所示。
图10 机械臂位移随铺放路径优化曲线
机械臂关节角随铺放路径优化曲线如图11所示。
图11 机械臂关节角随铺放路径优化曲线
从仿真图9可得:芯模初始旋转角度约为-40°,说明芯模初始顺时针旋转了约40°,使机械臂具有一个合理的初始构型。在后续铺放过程中,芯模一直保持逆时针旋转。
同时,图10中机械臂的移动位移量也是一直增大,说明其移动方向不变。θ2基本保持0°不变,表示机械臂基座关节不发生旋转,通过直线移动来满足芯模坐标系下铺放位姿点的Z方向坐标值。
图11中,关节2变化量很小,说明机械臂基座关节基本不发生旋转,这与图9和图10的结果相符。
优化目标函数中,各关节平衡系数取值根据其运动学和动力学特性选取,如表1所示。
表1 优化平衡系数取值
由于机械臂前面3关节的转动会导致铺放末端大幅移动,对铺放质量影响很大。因此,前面三个关节角应作为重点优化项,其优化系数取值较大。后面三个腕关节用于姿态调整,对铺放末端的影响较小,尤其关节7甚至允许在规划的角度上进行小范围调整,均不会影响铺放质量。因此,优化系数取值较小。
针对图8中的同一铺放路径,其铺放路径离散点和末端位姿设置均相同,不同优化算法将导致关节角的变化过程也不同。
笔者将自运动流行及逆解优化算法,和文献[17]的多目标优化算法进行对比。机械臂各关节角变化之和与所有关节角变化总和的对比结果,如图12所示。
图12 机械臂关节角变化对比图
由图12可得:笔者建立的目标优化函数使得机械臂(在铺放过程中)各关节运动变化量以及所有关节运动总变化量都是更小的,从而可以得到更好的铺放质量。其中,该方法对应的关节角变化总量为100.542°,而多目标优化方法对应的关节角变化总量为113.282°,因此,关节运动总量减少的百分比为(113.282-100.542)/113.282=11.25%。
笔者采用几何法求解了八自由度铺丝机器人的位置子流形和姿态子流形,对给定的末端位姿进行了流形仿真,并验证了其正确性;提出了一种全局优化目标函数,对飞机尾椎模型的一条铺放路径进行了仿真优化,得到了自运动变量和机器人各关节角在铺放路径上的优化曲线,从而可为机器人运动控制提供理论基础。
研究结果表明:
1)采用基于自运动流形的全局优化目标函数算法,能够有效求解八自由度冗余铺放机器人的自运动流形;全局目标优化函数能够基于自运动流形寻找最优解;
2)相较于文献[17]的多目标优化算法,针对相同的铺放路径,逆解全局优化算法对应的关节运动总量可减少11.25%,从而可实现更好的铺放质量;
3)全局优化目标函数算法同样可适用于其他位姿解耦的冗余机器人的逆运动学问题求解。
在下一阶段,笔者将基于仿真优化的结果,将自运动变量和各关节优化曲线进行离散化,并发送给机器人执行,从而进行机器人铺放效率方面的对比和研究。