基于共形几何代数的串联机器人误差建模方法*
2022-03-23张海峰柴馨雪
张 睿,张海峰,柴馨雪
(浙江理工大学 机械与自动控制学院,浙江 杭州 310018)
0 引 言
在高端制造[1]、微动机构[2]、医疗康复[3]、细胞生物工程[4]等领域,对机器人的精度要求较高。
提高机器人精度的方法主要有误差预防法和运动学标定法[5,6]。误差预防法[7]根据机器人的结构进行优化设计,改善加工精度,以提高机器人的制造精度;误差预防法对材料和加工设备要求较高,且具有成本高、灵活性低等缺陷。
运动学标定法对机器人运动学模型中的几何参数进行识别,通过改进几何参数,提高机器人精度。运动学标定法分为4个步骤,即误差建模、误差测量、参数辨识和误差补偿。其中,误差建模表示了机器人几何参数误差与末端误差的传递模型。
构建准确的误差模型是后续误差测量、参数辨识和误差补偿等步骤的前提。构建误差模型的方法主要有:DH(Denabit-Hartenberg)模型法[8]、POE(product of exponential)模型法[9,10]、螺旋理论法[11,12]等。
EVERETT L[13]对误差模型提出了3种评价要求,即极小性、完整性和连续性。DH模型法先按照既定的规则,由4个参数组成构建机器人相邻连杆间的位姿变换矩阵,再考虑连杆参数的微小误差,构建出最终的微分误差矩阵用以求解。其优点为表达形式简单、应用广泛;但在相邻关节轴线位于平行或接近于平行的位姿时,其杆件参数的微小变动可能导致末端位姿的突变,因此不符合连续性要求[14]。
针对上述缺点,HAYATI S A[15]对平行轴线引入了一个绕y轴的旋转参数,建立了MDH(modified-DH)误差模型。该误差模型消除了平行轴线的奇异问题,但当相邻关节轴线位于垂直位姿时,MDH模型也会出现微小变动,造成位姿跃变的奇异状态,因此不满足完整性要求。
POE模型[16]通过指数积表达式对机器人进行建模,其参考坐标系的位置和姿态可以任意选取,具备完整性和连续性;但POE模型的关节坐标系建立大多与机器人控制器不同,因而不易实现误差补偿。通过螺旋理论法进行误差建模,可有效分离出机器人末端不可补偿的位姿误差[17],但驱动量与误差元素间存在耦合,需采取解耦补偿。
共形几何代数(CGA)[18]2384是一种共形空间下的几何代数表示方式,它将运算对象由数字转变为几何体,对几何体直接进行几何计算[19]28-29,计算后的结果仍然为纯几何体,具备针对几何建模的协变量代数和针对几何计算的高级不变量算法[20]。因而,在几何建模与数据计算领域,它具有突出的优势[21]。
KIM J S[22]采用CGA对3-SPS/S并联机构进行了正、逆运动学及奇异位形研究。张英等人[19]30-33基于CGA提出了应用于平面并联机构正运动学的免消元计算方法。连宾宾[23]通过将CGA与螺旋理论结合,对3-RSR&SS并联机构进行了误差建模,在求得支链误差模型后线性叠加得到整体误差模型;但其得到的误差源为螺旋形式的6个基本元素,与机构几何参数不相对应,故仅进行了仿真误差验证。
为此,笔者首先阐述空间连杆机构运动学分析所需的CGA基本理论,其次提出基于CGA的串联机器人误差建模方法,再以JAKA Zu3六自由度串联机器人为例,进行误差建模和运动学标定实验。
1 串联机器人误差建模
1.1 CGA基础
CGA是基于欧氏几何的共形模型,由三维欧式向量空间R3与二维闵式空间R1,1延伸出一个五维空间R3+1,1[24],该空间由5个基向量{e1,e2,e3,e+,e-}构成,且满足如下条件:
(1)
ei·e+=ei·e-=e+·e-=0
(2)
为方便研究,笔者定义e0和e∞分别为原点向量和无穷远点向量,且满足下式:
(3)
(4)
CGA中几何体的变换可借助几何积来实现:
(5)
CGA中空间几何元素具有相互对偶的两种表达式[18]2386-2387,如表1所示。
表1 空间几何元素的表达式
空间中刚体的连续运动,可以分解为若干转动运动和移动运动。在CGA中,根据驱动副的类型不同,刚体运动可分别表示为:
(6)
空间中任一刚体的连续运动可表示为:
(7)
1.2 串联机器人运动学模型
n自由度的串联机器人运动学模型如图1所示。
图1 串联机器人的运动学模型P0-x0y0z0—基座坐标系;Pn-xnynzn—末端坐标系
相邻坐标系间几何参数关系如图2所示。
图2 相邻坐标系间几何参数关系
平行关节轴线的变换如图3所示。
图3 平行关节轴线的变换
这5个变换在CGA中的表达分别为:
(8)
式中:eij—ei∧ej。
(9)
其中:
(10)
根据运动学模型,可求得机器人末端坐标系的位姿。在CGA中,基座坐标系的x、y、z轴和原点P0可由基向量e1、e2、e3两两外积求得,即:
(11)
(12)
求得坐标轴和原点的CGA表达式如下:
xn=xn1e23+xn2e13+xn3e12+xn4e10+xn5e1∞+xn6e20+
xn7e2∞+xn8e30+xn9e3∞
yn=yn1e23+yn2e13+yn3e12+yn4e10+yn5e1∞+yn6e20+
yn7e2∞+yn8e30+yn9e3∞
zn=zn1e23+zn2e13+zn3e12+zn4e10+zn5e1∞+zn6e20+
zn7e2∞+zn8e30+zn9e3∞
Pn=Pn1e1+Pn2e2+Pn3e3+Pn4e0+Pn5e∞
(13)
式中:xni,yni,zni(i=1,…,9)—具体数值。
将式(11)代入上式,化简得:
xn=(xn1x0+xn2y0+xn3z0)+xn4e10+xn5e1∞+xn6e20+
xn7e2∞+xn8e30+xn9e3∞
yn=(yn1x0+yn2y0+yn3z0)+yn4e10+yn5e1∞+yn6e20+
yn7e2∞+yn8e30+yn9e3∞
zn=(zn1x0+zn2y0+zn3z0)+zn4e10+zn5e1∞+zn6e20+
zn7e2∞+zn8e30+zn9e3∞
Pn=(Pn1e1+Pn2e2+Pn3e3)+Pn4e0+Pn5e∞
(14)
式中:xni,yni,zni(i=1,2,3)—坐标轴xn,yn,zn分别在坐标轴x0,y0,z0上的投影;Pni(i=1,2,3)—末端坐标系原点在基坐标系下的坐标表示。
包含有e0和e∞的部分为CGA在五维空间下表示与原点和无限远处相关的部分,可将其省略。
将上述坐标轴投影和坐标表示提取出来,整理为末端位姿矩阵,即为名义位姿矩阵TN:
(15)
其中:
1.3 基于CGA的串联机器人误差模型
在机器人操作中,末端的实际位姿矩阵TR与名义位姿矩阵TN之间存在一定的偏差dT,两者之间的关系可表示为:
TR=TN+dT
(16)
其中,dT也可通过基座坐标系下的微分运动改变量进行描述,有:
dT=S·TN
(17)
式中:S—基座坐标系中的微分变换量。
S表达式为:
(18)
对式(17)进行整理可得:
(19)
当微分运动改变量足够小时,可利用微分运动学模型来近似代替dT,对名义位姿矩阵进行全微分,即:
(20)
式中:dai,dαi,ddi,dθi,dβi—机器人几何参数误差。
由于误差数值足够小,笔者采用Δai,Δαi,Δdi,Δθi,Δβi对其进行表示。
S中包含位置误差和姿态误差,将其列写为末端误差矢量e,并将公式右边以矩阵形式表达,则有:
(21)
式中:J—误差系数矩阵;Δq—几何参数误差。
J为n×5n型的误差系数矩阵,仅与机器人运动学模型和几何参数计算有关,为几何参数误差模型,即:
J=(ja,jα,jd,jθ,jβ)
(22)
其中:
式(21)中的Δq是一个由需要辨识的几何参数误差组成的矢量,共包含5n个几何参数误差,可展开为:
Δq=(Δa1,…,Δan,Δα1,…,Δαn,Δd1,…,Δdn,
Δθ1,…,Δθn,Δβ1,…,Δβn)T
(23)
综上所述,基于CGA的串联机器人误差建模流程如图4所示。
图4 误差建模流程
2 串联机器人算例
2.1 运动学模型
笔者以JAKA Zu3六自由度串联机器人为例,验证基于CGA的串联机器人误差建模方法的正确性。JAKA Zu3机器人的连杆坐标系如图5所示。
图5 JAKA Zu3机器人的连杆坐标系
(24)
由式(11)得,基座坐标系的x、y、z轴和原点P0为:
(25)
(26)
JAKA Zu3六自由度串联机器人的几何参数如表2所示。
表2 JAKA Zu3机器人几何参数
θi(i=1,…,6)—机器人驱动关节角数值
求得坐标轴直线和原点的CGA如下:
x6=(x61x0+x62y0+x63w0)+x64e10+x65e1∞+x66e20+
x67e2∞+x68e30+x69e3∞
y6=(y61x0+y62y0+v63w0)+y64e10+y65e1∞+y66e20+
y67e2∞+y68e30+y69e3∞
z6=(z61x0+z62y0+z63w0)+z64e10+z65e1∞+z66e20+
z67e2∞+z68e30+z69e3∞
P6=(P61e1+P62e2+P63e3)+P64e0+P65e∞
(27)
式中:x6i,y6i,z6i(i=1,2,3)—坐标轴x6,y6,z6分别在坐标轴x0,y0,z0上的投影;P6i(i=1,2,3)—末端坐标系原点在基座坐标系下的位置描述,为一个标量系数(因表达式太长,此处省略)。
由式(15)以及上述坐标轴投影和坐标表示提取出来,整理矩阵形式,即为名义位姿矩阵TN,即:
(28)
其中:
2.2 误差建模
笔者用dai,dαi,ddi,dθi,dβi表示机器人几何参数误差,对名义位姿矩阵TN进行微分运算,即:
(29)
由式(19)计算到得微分变换算子S:
(30)
又因为:
(31)
从中提取出位置误差和姿态误差,列写为末端误差矢量e:
(32)
获得误差系数矩阵J和几何参数误差矢量Δq。由于误差模型中的误差系数矩阵有线性相关的可能性,会影响某些误差参数的辨识效果,使后续参数辨识的精度降低。为避免误差系数矩阵线性相关的影响,笔者对误差系数矩阵的冗余性进行分析,去除其中的冗余误差参数。KHALIL W等人[25]的研究表明,奇异值分解能够分析出矩阵的冗余列。
采用QR分解公式:
(33)
式中:Q—r×r的正交矩阵;R—c×c的上三角矩阵。
R矩阵对角线上数值为0的列所对应的误差参数为冗余参数。通过冗余性分析,笔者得到冗余参数如表3所示。
表3 误差系数矩阵冗余性分析
1—独立参数;0—冗余参数
则可将Δq展开为:
Δq=(Δa1,…,Δa5,Δα1,…,Δα6,Δd1,Δd2,
Δd6,Δθ1,…,Δθ6,Δβ2,Δβ3)T
(34)
2.3 仿真标定
在进行标定前,需要通过仿真标定验证误差模型的正确性。在标定实验过程中,存在外界扰动因素的影响,由参数辨识算法求解出的几何参数误差与真实的几何参数误差不完全相同,因此在仿真标定时,笔者模拟了标定实验中测量系统的外界扰动因素N,以观测外界扰动因素对参数辨识算法的计算精确度的影响。设扰动因素是一组随机变量,其位置标准偏差为0.02 mm,姿态标准偏差为0.000 15 rad。
几何参数误差模型仿真验证步骤如下:
(1)随机选取50组机器人姿态,姿态的选取以均匀分布在其工作空间中为宜,并记录机器人控制器返回的驱动值;
(2)通过基于CGA的运动学模型计算,求得机器人名义位姿矩阵TN;
(3)预设一组机器人的几何参数误差[26,27],机器人的实际几何参数,定义为其名义几何参数与预设几何参数误差相加得到的值,通过基于CGA的运动学模型计算,求得机器人实际位姿矩阵TR;
(4)将机器人名义位姿矩阵TN和实际位姿矩阵TR代入基于CGA的误差模型,计算出误差系数矩阵,并通过Levenberg-Marquardt算法[28]进行求解,其参数辨识公式为:
Δq=J+e=(JTJ+μI)-1JTe
(35)
式中:μ—权系数;I—单位矩阵。
参数辨识的流程图如图6所示。
图6 参数辨识流程
图6中,参数辨识的精度emax取值为0.01 mm/0.000 17 rad。
在第5次参数辨识迭代后,辨识结果与预设误差值大致接近,如表4所示。
表4 预设误差与辨识误差
进行误差补偿后,位置误差的对比如图7所示。
图7 仿真前后位置误差
进行误差补偿后,姿态误差的对比如图8所示。
图8 仿真前后姿态误差
从图(7,8)中可知:仿真标定前后,机器人位置误差的平均值、最大值和标准差由1.498 0 mm、1.802 4 mm、0.199 5 mm下降到0.136 4 mm、0.213 7 mm、0.055 7 mm,姿态误差的平均值、最大值和标准差由0.005 9 rad、0.006 6 rad、0.000 4 rad下降到0.000 6 rad、0.000 8 rad、0.000 1 rad。该结果验证了基于CGA的误差模型的正确性。
3 标定实验
笔者对机器人进行运动学标定,以验证误差模型。测量设备为LEICA公司的AT960型激光跟踪仪,激光跟踪仪的主要参数如表5所示。
表5 激光跟踪仪主要参数
标定实验的具体步骤如下:
(1)将机械控制传感器(T-Mac)安装在机器人末端法兰上,利用激光跟踪仪对T-Mac进行实时测量,测量坐标系相对于基座坐标系的旋转矩阵Rt和平移向量rt由测量计算得到(其中,rt中的单位为mm):
(36)
标定实验现场如图9所示。
图9 标定实验现场
(2)驱动机器人运动,在工作空间中选取一系列点,将机器人控制器返回的驱动值,代入基于CGA的运动学模型,求得名义位姿矩阵TN;
(3)采用激光跟踪仪对T-Mac进行实时测量,获得实际位姿矩阵TR;
(4)根据几何参数误差模型,采用Levenberg-Marquardt算法对几何参数误差进行参数辨识。
笔者求解出的几何参数误差如表6所示。
表6 标定实验辨识几何参数误差
(5)标定补偿实验。在求得辨识几何参数误差后,将辨识几何参数误差补偿到机器人的运动学参数中,作为新的运动学参数,代入运动学模型中。
机器人末端位姿不变,结合新的运动学参数,通过逆运动学重新计算驱动关节驱动值,通过机器人控制器控制轨迹输出,获得补偿后的实际位姿。
补偿实验的流程图如图10所示。
图10 误差补偿流程图
(6)在第一次补偿的基础上,重复以上工作,直到达到所满意的定位精度要求。
各关节补偿前后的驱动值对比如图11所示。
图11 各关节补偿前后的驱动值对比图
以折线图的方式绘制出标定实验前后,机器人位置误差的对比如图12所示。
图12 实验标定前后位置误差对比图
笔者以折线图的方式绘制出标定实验前后,机器人姿态误差的对比如图13所示。
图13 实验标定前后姿态误差对比图
对机器人进行几何参数标定后,位置误差的平均值、最大值和标准差由2.933 1 mm、3.920 7 mm、0.528 8 mm下降到0.615 2 mm、1.075 0 mm、0.247 5 mm;姿态误差的平均值、最大值和标准差由0.029 7 rad、0.036 5 rad、0.004 6 rad下降到0.005 7 rad、0.007 3 rad、0.001 1 rad。
该结果验证了基于CGA的误差模型的正确性。
4 结束语
笔者提出了一种基于共形几何代数的机器人误差建模方法,在CGA框架下建立了机器人运动学模型,通过微分运算建立了误差模型,并以JAKA Zu3串联机器人为例,对该方法进行了验证。
理论研究和实验结果表明:
(1)该方法对机器人关节运动描述清晰、易于理解,且考虑到几何参数的微小变化,可以实现完整的几何误差建模;
(2)进行运动学标定实验后,JAKA Zu3串联机器人的平均位置误差由2.933 1 mm下降到0.615 2 mm,平均姿态误差由0.029 7 rad下降到0.005 7 rad,验证了该方法的有效性。
目前,笔者仅使用六自由度串联机器人进行了方法验证。在后续的研究工作中,笔者将把该方法应用于并联机器人的误差建模。