范 银 金惠良 叶 骞
(上海交通大学机械与动力工程学院 上海 200240)
绳索并联机构是一种特殊的并联机器人,采用绳索代替传统并联机器人的刚性连杆,通过改变绳索的长度来控制绳索末端的运动状态。相较于传统并联机构,绳索并联机构结构简单、工作尺度大、高负载能力、易于拆装与重组、易于模块化[1]。绳索并联机构目前已经取得了广泛的应用,如FAST大型射电望远镜[2]、索并联摄像机器人[3]、起重机器人[4]等,但是运动过程中绳索张力必须为正[5],这种单向受力的特性使得绳索末端的运动精度控制变得十分复杂。
针对绳索并联机构的高精度运动控制问题,由于绳索并联机构的自由度冗余特性,目前最常用的方式是基于运动学逆解的绳长控制方法。文献[6]分析了系统的李雅普诺夫稳定性,并基于此提出了PD反馈控制方法。文献[7]分析了绳索运动过程中的张力分配问题,提出一种非线性前馈控制。文献[8]针对绳索形变等因素造成末端运动误差问题,通过高精度视觉定位进行控制闭环。文献[9]提出了神经网络PID控制方法,减小了绳索末端运动误差。但是多数文献把重点都放在了绳索末端位置误差上面,而忽略了姿态误差、运动连续性等问题,而绳索末端位姿不连续,将造成索力分配不均、绳索震荡、末端晃动等一系列问题。
本文研究6绳索并联机构的高精度位姿控制问题。首先从理论角度推导了末端误差来源,建立基于神经网络预测模型的绳长误差校正机制来减小误差,但是不能完全消除误差。误差的存在将会导致6根绳索在运动过程中随机出现松弛状态,对末端造成冲击使得其运动不连续。本文提出一种预松弛控制方法进行含误差的位姿连续性运动控制。仿真结果表明,神经网络预测模型能够补偿90%左右的位置误差,预松弛控制能够很好地保持其位姿在运动过程中的连续性。
6绳索并联机构的结构示意图如图1所示,由外部6边形排列机架(外框)与内部6棱柱型末端组成,A1~A6为摆动式定滑轮位置,即绳索与外部机架连接点,沿圆周均匀分布;B1~B6为绳索与末端连接点,周向均匀分布,竖直方向上交错布置。
图1 6绳索并联机构结构示意图
针对该6绳索并联机构,建立以底部6边形中心为原点的全局坐标系C: O-XYZ,在绳索末端上建立以末端质心为原点的局部坐标系C′:O′-X′Y′Z′,其中A1~A6在全局坐标系中的位置,B1~B6在局部坐标系中的位置均为已知。根据机器人运动学可以得到局部坐标系到全局坐标系的旋转矩阵为
(1)
式中,α、 β、 γ为绳索末端绕全局坐标系3轴的旋转角。
(2)
在运动过程中,给定局部坐标系原点坐标CO′(x,y,z),根据图2示意的矢量闭环法,可以得到绳索AiBi在全局坐标系C:O-XYZ下的向量表达式li=CAi-CBi,将式(2)代入可得:
(3)
通过式(3)即可得到绳索长度li=|li|(i=1, 2,…,6)。
图2 绳索1闭合矢量法图解
求解机构的运动学正解,即已知6根绳索长度li(i=1,2,…,6),求解绳索末端的位姿(x, y, z, α, β, γ)。由运动学逆解可以得到方程组:
(4)
式 (4)为非线性方程组,一般采用数值迭代的方法去求解,本文采用牛顿迭代法。首先对上述问题进行方程标准化处理,由于涉及到向量的模长,这里采用取模平方进行函数构造:
i=1,2,…,6 (5)
得到6个构造函数。将函数在给定近似初值解X0=(x0, y0, z0, α0, β0, γ0)处进行一阶泰勒展开:
(6)
式中, fi0为构造函数初值,fi0=fi(x0, y0,…,γ0)。将其写成矩阵形式,并作变量替换,可得:
=J0·ΔX0
(7)
式中,J0为系统在该次迭代中的雅克比矩阵;Δx0为自变量x0负增量,Δx0=x0-x,其余变量类似。
当数值解充分逼近真实解时候,ΔX与F均逼近0,给定允许误差ε1(或ε2)作为迭代过程的终止条件,具体迭代求解过程如下。
步骤1已知第n次迭代时,近似解为X[n],将函数在此处一阶泰勒展开,得到构造函数初值F[n]与对应的雅克比矩阵J[n];
步骤2求解线性方程组F[n]=J[n]·ΔX[n],得到其方程解X[n+1]:
X[n+1]=X[n]-ΔX[n]=X[n]-J[n]+·F[n]
(8)
式中J[n]+为第n次迭代雅克比矩阵的广义逆,J[n]+=(J[n]TJ[n])-1J[n]T;
步骤3通过X[n+1],将方程组再次一阶泰勒展开,得到F[n+1]、J[n+1];
步骤4进行迭代终止条件判断ΔX[n+1]<ε1(或ΔF[n+1]< ε2),若满足条件,则终止迭代,得到近似解X=X[n+1];否则,返回步骤1。
绳索并联机构的运动误差,主要包含理论系统误差与机构系统误差两部分。理论系统误差,主要是指在进行绳索长度计算时,忽略悬链线效应,直接看作直线处理的理论计算误差;机构系统误差,主要包含机构加工、安装产生的静态误差,绕线过程中左右摆动、绳索重叠带来的动态误差。
对于理论系统误差,可以通过式(9)直接修正。对于本文构建的小尺度绳索并联系统而言,其误差小于0.01%,可以忽略。
(9)
式中,THi为绳索i末端受到的水平拉力大小(N);ρ为绳索的线密度(kG/m);hi、 Li为绳索i的竖直跨度与水平跨度。
对于机构系统误差,对式(3)取微元,可以得到:
δ(li)=(δli)ui+li(δui)
(10)
式中,ui为绳索i的方向向量,ui=li/|li|。
(11)
化简式(11)可以得到绳索机构系统误差:
(12)
由式(12)可以看出,在绳索连接点静态误差几乎不会变的情况下,绳索长度的误差δli直接决定了绳索末端的位姿误差,因此绳索长度误差的补偿显得尤为重要。由于绳索在绕线控制过程中左右摆动与重叠的随机性,此误差为非线性误差,无法通过计算得到,只能通过非线性预测算法进行误差的预测与补偿。
针对非线性系统的预测问题,学术界提出了诸如模糊预测、回归预测等方法,其中最普适性的是神经网络预测方法[10]。本文采用长短期记忆(lonG-short term memory,LSTM)神经网络进行绳索长度的预测。LSTM神经网络是一种时间序列预测网络,即已知前(k-1)时刻的所有输入输出值,预测第k时刻的输出值。相较于传统的循环神经网络而言,在处理时间序列过长时候存在很大的优势。
LSTM神经网络引入了记忆单元与隐藏层状态的机制来进行隐藏层之间的信息传递,在结构中加了状态C来保存长期信息。如图3所示, LSTM记忆单元内有3个门:输入门(Input Gate)、遗忘门(ForGet Gate)、输出门(Output Gate)。其中,输入门能够控制新信号的加入;遗忘门能够忘记无用的信息并保留有用的信息;输出门能够控制记忆单元的输出。这3种门结构在记忆单元中通过矩阵乘法等运算,使无用的信息在迭代过程中衰减。
图3 LSTM神经网络记忆单元结构
在第k个时间点,LSTM神经网络的记忆单元有3个输入:当前时刻的输入xk,上一时刻的输出hk-1,上一时刻的记忆单元状态Ck-1。2个输出:当前时刻的输出hk,当前时刻的单元状态Ck。各个门与网络输出如下:
(13)
对于6绳索并联机构,同一时刻存在6绳的控制输出量与实际长度共12变量,为12变量序列预测问题,因此在LSTM基础上构建多变量预测模型。网络的激活函数采用RELU函数,遗忘门、输入门、输出门的激活函数采用SiGmoid函数,权值更新采用自适应矩估计优化算法Adam,损失评价函数采用均方误差(MSE)函数。
实际运动中,在kT时刻,通过传感器得到末端执行器的位姿(x,y,z,α,β,γ),通过运动学逆解式(3)即可得到在该时刻的6根绳索长度的实际值l(k),加上该时刻6根绳索长度的理论值x(k),得到12变量序列。给定训练步长N,在kT时刻,将x(k-N+1)~x(k), l(k-N)~l(k-1)作为训练输入,将l(k)作为训练输出,依次划分输入集与输出集,进行网络训练。
网络训练完成之后,给定输入序列可以得到网络预测绳长lm(k),在实际情况下,由于噪声等时变因素的影响,预测值存在预测偏差,利用前次预测偏差进行偏差修正,得到最终预测绳长lp(k)为
lp(k)=lm(k)+ζ(l(k-1)-lm(k-1))
(14)
式中,ζ为偏差修正系数。
`
图4 误差补偿迭代流程图
为了验证上述给出的LSTM神经网络预测模型的有效性,在给定连续轨迹情况下,使用Python对绳索并联机构的绳长预测算法进行了仿真。为了体现出机器人结构误差对末端运动误差的影响,对绳索连接点Ai、 Bi的误差进行了预设,如式(15)所示。
(15)
给定空间椭圆目标轨迹式(16),末端匀速运动,运动时间10 s,采样周期10 ms,共计算得出1 000个离散序列点。LSTM神经网络由3层组成,中间层单元数取50,训练步长取10,得到训练集的输入输出。
(16)
将上述轨迹重新采样,得到测试集,进行网络测试,结果表明预测补偿算法能够有效减小绳长误差。图5给出了绳索1的长度预测结果,可以看出预测补偿绳长曲线逼近真实绳长曲线,其最大误差由2.32 mm减小到0.24 mm,误差减小了89.65%。
(a) 长度变化曲线
(b) 误差变化曲线
绳索并联机构存在冗余控制自由度,由于控制量输出的离散特点,可以将每个控制周期结束时刻的末端状态近似为准静态过程,也就是说末端在离散点处于受力平衡状态。由于绳索长度存在不可忽略的误差,6根绳索中必然存在由于正向误差而松弛的绳索,其数量不大于3,编号不定。
由于绳长误差的不确定性,带来绳索张紧松弛状态的不确定性,将会造成绳索张力突变,使得绳索末端受到随机冲击,产生晃动,影响末位姿的稳定性和位姿变化的连续性。考虑到整个控制过程为离散化控制,重点关注离散点的位姿稳定性,对于控制周期内的短暂过程通常不甚关注。这里提出一种预松弛控制方法,在控制周期内指定3绳为控制主输出绳,其余3绳给定预松弛量,保持松弛状态,仅在控制周期结束时,补偿松弛量,使末端达到预定位姿。此方案通过牺牲控制周期内的位姿准确性换取运动的连续性,之后通过松弛量补偿得到相同的离散点精度。
预松弛控制方法的目的是为了避免绳索张紧、松弛状态切换的随机性,尽量减少末端在运动过程中的晃动,减少绳索切换状态时对末端产生的冲击。该控制方法在某个控制周期内,将6绳分为3主输出绳、3从输出绳。3主输出绳作为控制周期内驱动绳,3从输出绳作为控制周期末调整绳。为了决定作为控制主输出的3绳,将末端运动区域划分为如下7个区域(图6):区域0由绳索1/3/5主输出,区域1由绳索1/4/5主输出,以此类推。
图6 预松弛控制区域划分
在第k个周期内,其预松弛控制主要流程如下:
步骤1给定控制目标Xk和X(k+1),通过预松弛分配方法得到主、从绳分配(主绳i1i2i3,从绳j1j2j3),通过运动学逆解得到理论绳索长度的变化量[dli1, dli2, dli3, dli4, dli5, dli6];
步骤2将绳长变化量代入绳长误差预测模型,得到控制周期内控制量总输出[δli1, δli2, δli3, δli4, δli5, δli6];
步骤3预松弛阶段,0~σt,主绳滞后,从绳预松弛,控制器输出[0, 0, 0, σlj1, σlj2, σlj3];
步骤4运动执行阶段,σt ~(T-σt),主绳控制输出,从绳从动输出,控制器输出为[δli1, δli2, δli3, δli4, δli5, δli6];
步骤5控制松弛补偿阶段,(T-σt)~T,主绳滞后,从绳补偿松弛量,控制器输出为[0, 0, 0, -σlj1, -σlj2, -σlj3]。
在控制过程中,将运动过程看作准静态过程,由于主绳一直保持张紧状态,索力变化连续,绳索末端姿态变化连续,不存在冲击等问题。值得一提的是,在控制执行阶段,从绳由于本身质量很轻,其重力对末端运动的影响可以直接忽略。
为了验证预松弛控制方法在运动连续性上的作用,使用Matlab对该方法进行仿真。仿真轨迹采用式(16)的空间椭圆轨迹,等距划分1 000个离散点数据。仿真过程中,直接通过运动学逆解得到绳索长度,在绳长上添加[0, 5]范围内的随机噪声,用来模拟实际运动中的绳长误差。图7给出了预松弛控制与含误差6绳控制的结果对比,从图7(a)可以看出在空间位置误差方面,两者没有明显的优劣之分。但是由于6绳控制过程中,存在绳索随机松弛的现象,其空间姿态角、绳索张力波动非常明显,相对而言,预松弛控制能够很好地保证空间姿态角与绳索张力的连续性。
上文分别建立了6绳索并联机构的LSTM神经网络误差预测模型、预松弛控制方法。从仿真结果可以看出,神经网络误差预测补偿模型有效地减小了绳长误差,保证了末端空间位置的准确性;预松弛控制方法在控制周期内保证了绳索末端姿态变化的连续性,绳索拉力的连续性。基于上述2种方法的控制效果,将2种方法结合进行最终轨迹的控制,其主要控制流程如图8所示。
(a) 空间误差变化
(b) 末端姿态角β误差变化
(c) 绳索3的索力变化
为了验证绳索并联机构基于神经网络误差预测模型的预松弛控制方法的有效性,在Matlab中对该控制方法进行了仿真。仿真轨迹采用半径200 mm的圆形轨迹,高度平面800 mm,误差预设值如式(15)所示,通过运动学正解牛顿迭代法进行末端位姿求解,分别进行了含误差6绳控制、误差补偿6绳控制与误差补偿预松弛控制3种方法的仿真。
图9(a)给出了3种控制方法的轨迹仿真图,可以看出误差补偿后的预松弛控制轨迹误差相较于传统6绳控制误差而言明显减小,仅比6误差补偿控制误差略大一些;图9(b)给出了3种控制方法的末端姿态角β的误差变化曲线,可以看出误差补偿预松弛控制方法能够很好地保证末端运动位姿的连续性,具有明显的优势;图9(c)给出了末端在z方向上的误差变化曲线,在运动过程中传统6绳控制最大误差为7.4863 mm,误差补偿6绳控制最大误差为1.0933 mm,误差补偿预松弛控制最大误差为2.0565 mm,预松弛控制由于主动松弛了3绳,其运动过程中的精度必然会下降一点,但是换来了整个运动过程中的稳定性与连续性,同时在控制周期结束时可以通过松弛量补偿的方式确保离散点的位置精度。
本文根据6绳索并联机构的运动学逆解建立了机构末端的误差模型,建立了末端位姿误差与绳索长度误差之间的关系。考虑到绳索长度误差的非线性特性,构建基于LSTM神经网络的绳长预测模型,给定人为误差之后进行模型的训练与预测,其绳长误差减小了近90%。
图8 误差预测补偿预松弛控制流程图
(a) 误差补偿预松弛控制轨迹仿真
(b) 末端姿态角β误差变化
(c) 末端位置z方向误差变化
针对含绳长误差时,绳索冗余控制量将导致绳索随机松弛,出现末端运动位姿不连续、绳索张力突变,导致末端受到冲击等问题,提出一种预松弛控制方法,保证控制过程末端位姿与绳索张力的连续性。给定随机误差进行仿真,结果表明该方法能很好地保证末端运动的连续性。
针对实际控制过程,将绳长误差预测补偿模型与预松弛控制方法相结合进行轨迹运动控制。给定人为误差之后进行仿真,仿真结果表明,相较于6绳误差补偿控制,误差补偿预松弛控制能够在适当牺牲精度的情况下得到更加连续光滑的运动轨迹,验证了该控制方法的有效性。