肖 帅, 王 韬, 张树华, 梁静静, 张世俊, 吕文华
北京控制工程研究所,北京 100094
随着航天技术的不断发展,空间态势感知与空间安全成为我国航天领域的一个重要发展方向.其中,以空间机械臂为核心的空间智能操控技术作为空间态势感知与空间安全领域的一项关键技术,近年来得到了越来越多的关注[1].目前,我国正在研发的一些空间态势感知与空间安全试验卫星、空间站以及月球探测器等飞行器都配置了空间机械臂系统.
对于空间机械臂,尤其是灵巧型操控机械臂,为了实现末端工具对目标物的准确操作,往往要求空间机械臂具有较高的控制精度.机械臂末端的控制精度与机械臂本身结构参数的测量精度是直接相关的[2].然而,空间机械臂在飞行器发射过程中会承受巨大的振动和冲击,同时,空间机械臂在轨空间环境与地面环境在重力等方面差异较大,不可避免地会引起入轨后机械臂结构参数发生变化.因此,为了保证空间机械臂在轨运行时的控制精度,必须在入轨后对其进行在轨标定[3].
在地面条件下,借助于精密的地面测量装置,可以容易地实现对空间机械臂结构参数的精确测量,目前这方面的研究也比较成熟[4-11].然而,在轨空间环境下,由于无法使用外部精密测量仪器,使得空间机械臂的在轨标定变得困难.目前关于这方面研究的报道还很少.文献[12]报道了日本在“发现号”航天飞机进行的一项空间机械臂在轨标定试验.它利用手眼相机对特定标志物进行多次测量,通过计算获得一个标定矩阵,在轨迹规划过程中,将实际期望的末端位姿矩阵左乘标定矩阵,从而实现对机械臂连杆参数的修正补偿.该方法本质上是在任务空间通过线性变换对非线性的结构参数误差进行补偿,难以实现整个工作空间的参数补偿.文献[3]和[13]采用线性化的方法设计了空间机械臂在轨标定方法,然而对空间机械臂的非线性模型进行线性化的过程,实际上是一个近似过程,因此必然会导致标定精度的降低.
本文提出了一种基于手眼相机的空间机械臂在轨标定方法.该方法首先采用D-H参数法建立空间机械臂系统的非线性模型,然后在不同构型下利用手眼相机对底板上设置的靶标进行测量获得足够的标定数据,最后采用数值迭代算法对空间机械臂非线性模型进行求解,从而获取空间机械臂的标定参数.该方法直接基于空间机械臂非线性模型进行求解,避免了基于线性化模型进行解析计算带来的精度损失,提高了在轨标定精度.
空间机械臂的运动学模型采用目前广泛使用的D-H模型,每个连杆用4个参数(ai,αi,di,θi)描述,下标i表示第几个连杆.其中关节角度θi是可以通过角度测量传感器直接测量的,其他3个参数(ai,αi,di)为待标定的参数.假设空间机械臂共有N个关节,则N个关节的角度测量数据表示为ΘB=[θ1θ2…θN],待标定的参数表示为XDH=[a1d1α1a2d2α2…aNdNαN],手眼相机测量得到的空间机械臂末端在基准坐标系下的位姿测量数据表示为MB=[x1x2x3φ1φ2φ3],其中(x1,x2,x3)表示空间机械臂末端的相对位置,(φ1,φ2,φ3)表示空间机械臂末端以欧拉角表示的相对姿态.空间机械臂的正运动学方程可以表示为
f(ΘB,XDH)=MB
(1)
其中f(·,·)表示空间机械臂的正运动学函数.
(2)
其中,M表示测例的个数.对于N自由度空间机械臂,需要标定的参数个数K≤3N.对于每个测例可以产生6个非线性方程,为了保证标定结果的准确性,测例个数应满足M≥K/6.相比于姿态测量精度,通常手眼相机的位置测量精度更高.如果只使用手眼相机的位置测量数据进行标定,则每个测例可以产生3个非线性方程,因此测例个数应满足M≥K/3.
空间机械臂系统一般包括安装底板、空间机械臂、手眼相机以及靶标,如图1所示.靶标主要用于完成手眼相机内部参数的标定,以及空间机械臂结构参数的标定.靶标相对于空间机械臂基准坐标系的安装关系固定,并且在发射前会在地面进行标定.因此,通过手眼相机测量末端相对于靶标的位姿关系,就可以计算出末端相对于基准坐标系的位姿关系.
图1 空间机械臂系统组成图Fig.1 The space manipulator system
在轨标定过程中,需要设计多组测例,在不同构型下利用手眼相机对靶标上特征点进行位姿测量,记录每一组测例下关节的角度信息以及手眼相机的位姿测量信息.手眼相机对靶标特征点的位姿测量,可以采用拍图下传至地面进行解算的方法,以提高测量精度.
数据测量的具体过程如下:
1)根据靶标的安装位置,设置M组手眼相机相对靶标的不同位姿,即M组空间机械臂构型作为标定测例,并对各标定测例进行编号,依次编号为1~M,M≥N/2,其中N为空间机械臂关节个数,每组标定测例下需保证靶标处于空间机械臂末端的手眼相机的视场内;
2)控制空间机械臂进行运动,依次运动至1号标定测例至M号标定测例所对应的空间机械臂构型,在每组标定测例下利用空间机械臂末端手眼相机对靶标进行拍照,即完成成像.
5)对于标定测例i,根据式(2)建立以XDH为变量的一个非线性方程
(3)
6)对标定测例1至标定测例M得到M个非线性方程,联立这M个非线性方程就得到如下的非线性方程组
(4)
在进行数据分析时做如下假设:
1)空间机械臂在地面已经进行了精确的标定,每个连杆除关节角外的D-H参数为(ai0,αi0,di0);
2)关节的角度信息θi可以通过旋转变压器、旋转编码器等传感器准确采集;
3)靶标相对于空间机械臂基坐标系的位姿信息在地面已经精测,且发射后保持不变.
具体数据处理方法如下:
1)将式(4)改写为如下形式:
F(XDH)=0
(5)
其中:
(6)
2)以空间机械臂地面标定的D-H参数结果作为XDH的初值XDH(0);
3)采用Levenberg-Marquardt数值迭代算法进行迭代计算,迭代公式如下:
XDH(k+1)=XDH(k)-
[J(XDH(k))TJ(XDH(k))+μkI]-1·
J(XDH(k))TF(XDH(k))
(7)
其中:k≥0为迭代步数,k的初值为0;J(·)为式(5)的雅克比矩阵;μk为阻尼因子,参见文献[14].取:
(8)
5)迭代结束后,取XDH(k+1)作为XDH的最终解,即空间机械臂结构参数的标定结果.
整个在轨标定的流程如图2所示.
图2 在轨标定流程图Fig.2 The flow chart of in-orbit calibration
以一个七自由度空间机械臂为例,对所提出的方法进行仿真验证.其地面标定的结构参数值见表1,假设发射后其在轨真实的结构参数见表2.
表1 七自由度空间机械臂发射前标定的D-H参数Tab.1 The D-H parameters of the 7-DOFS space manipulator on ground
表2 七自由度空间机械臂D-H参数在轨真实值Tab.2 The D-H parameters of the 7-DOFS space manipulator in-orbit
根据靶标的安装位置,设计了18组空间机械臂构型作为标定测例,每组标定测例下需保证靶标处于空间机械臂末端的手眼相机的视场内.考虑到手眼相机的位置测量精度更高,因此标定时不使用手眼相机的姿态测量数据.对于七自由度空间机械臂,N=7,因此测例个数应满足M≥7.此外,为了提高标定精度,应尽量设计多组标定测例.因此,这里选取了18组测例,18组测例的关节角度见表3.
表3 18组测例的关节角度Tab.3 Joint angles of 18 test cases /(°)
假设手眼相机可以准确测量末端位置信息,则采用所提出的方法迭代过程中的残差收敛情况见图3,得到的标定结果如表4所示.可以看到,当手眼相机可以准确测量末端位置时,采用本文所提出的方法可以快速准确地标定空间机械臂的D-H参数,经过7步迭代后,残差快速收敛到7.44841×10-22,最终标定结果ai和di的误差小于0.0001 mm,αi的误差小于0.001°.
图3 手眼相机测量无误差时残差收敛情况Fig.3 The radiual with no hand-eye measurement error
表4 手眼相机无误差下七自由度空间机械臂D-H参数在轨标定值Tab.4 The D-H parameters of the 7-DOFS space manipulator in-orbit without errors of hand-eye cameras
实际中手眼相机的测量结果是存在误差的,假设手眼相机的位置测量误差为0.1 mm,则采用本方法残差收敛情况见图4,得到的标定结果见表5.可以看到,采用本方法得到的D-H参数的标定误差仍然较小,经过4步迭代后,残差收敛到0.0214329,ai和di的误差小于0.1mm,αi的误差小于0.1°,这个误差是由于手眼相机的测量误差引起的.
图4 手眼相机测量有误差时残差收敛情况Fig.4 The radiual with hand-eye measurement error
表5 手眼相机有误差下七自由度空间机械臂DH参数在轨标定值Tab.5 The D-H parameters of the 7-DOFS space manipulator in-orbit with errors of hand-eye cameras
本文提出了一种空间机械臂的在轨标定方法.该方法采用D-H参数法建立空间机械臂系统的非线性模型,然后利用标定数据采用数值迭代的方法直接基于空间机械臂非线性模型进行求解,从而完成空间机械臂的在轨自标定.通过数学仿真对该方法的有效性进行了验证,该方法可以准确获取空间机械臂的D-H参数.该方法直接基于非线性模型采用数值迭代算法进行解算,避免了基于线性化模型进行解析计算带来的精度损失,提高了在轨标定精度.