机器人手眼标定问题实质上是求解矩阵方程[AX=XB][3],其中[A]为机械臂末端的坐标变换关系,[B]为相机的坐标变换关系,[X]为机械臂末端到相机之间的坐标变换关系。袁泉等[4]利用棋盘格标定法对相机进行标定,利用特征点匹配求解相机参数。对于相机视野模糊的情况,章秀华等[5]提出了一种动目标多视点基于标定的去模糊方法。Wang等[6]建立了惩罚函数的目标方程来更新旋转矩阵,使其单位正交化。然而,旋转矩阵的正交化可能造成精度退化,尤其当求解不准确时。王一凡等[7]提出了一种分别求出四元数实部和对偶部的方法求解矩阵方程。这类方法可以通过优化算法更好地处理旋转部分的噪声和误差,但是计算复杂度较高,需要较长的计算时间。Liu等[8]使用Kronecker积、奇异值分解(singular value decomposition,SVD)算法求解标定方程以获得初始解,最后通过迭代算法进行优化,但是如果没有合适的停止条件会导致过拟合。此外,还有一些数学方法被提出来解决该问题,比如对偶四元数[9]、Clifford代数[10]、旋量理论[11]等。以上方法大致可以分为求解解析解以及求解迭代解两种,这两种方法计算成本较大,不适合快速在线求解。Chen等[12]提出了基于对偶非线性优化和样本筛选的标定方法,但是该方法并没有考虑标定时来自机器人的位姿误差。Chen等[13]使用目标配准误差模型(target registration error,TRE)进行手眼校准,消除了机器人位姿误差的影响,但是没有考虑来自相机模型的噪声和干扰,影响了标定结果的准确性。
长短期记忆(long short-term memory,LSTM)网络在处理序列数据方面表现出优良的性能[14]。Bilal等[15]提出了基于视觉的位姿估计系统,并使用LSTM网络和稀疏回归方法提高其准确性。Kuo等[16]提出了一种传感器融合方案,借助惯性传感器对机器人进行静态标定和动态补偿。但是以上方法都默认相机和机器人处在同一工作空间内,且标定结果的作用空间较小。因此,本文利用LSTM网络,通过引入空间偏移量来处理异空间机器人手眼标定问题,将机器人和相机转换为同一工作空间内,再通过LSTM网络对像素坐标-实际坐标对应数据点进行学习,最后得到能精准反映机器人手眼非线性映射关系的预测模型。相比于经典的平面标定方法,不仅大幅度提高了标定精度,并且克服了经典平面标定方法工作空间小,且仅在标定板所在平面区域内精度较高的缺陷。
1 机器人异空间手眼标定的问题描述
如图1所示,在机器人的工作任务中,其工作空间与相机的视野有时不在同一范围内,本文采用LSTM网络来确定机器人基坐标系{B}与相机像素平面坐标系{C}之间的映射关系。
<G:\武汉工程大学\2024\第5期\乐恒韬-1.tif>[{C}][{B}][P][P′]
图1 机器人异空间的手眼标定示意图
Fig. 1 Schematic of robot hand-eye calibration in
different space
设标定板上的某一角点[P]通过相机识别到的像素坐标为[PC=(u,v)],然后由传送带带动标定板运动一段距离d到点[P′],点[P′]位于机器人的工作空间内,用机器人末端顶尖接触点[P′],记录此时点[P′]在机器人基坐标系{B}的坐标为[PB=(x, y, z)],则点[P]在坐标系{B}和{C}的映射关系[f]可表示为:
[PC=fPB] (1)
1.1 LSTM网络的求解过程
为了确定式(1)的映射关系,本文采用LSTM网络模型,其网络结构如图2所示。
整个LSTM网络模型学习过程的前向传递包含了遗忘门[ft]、输入门[it]和输出门[ot]。其中遗忘门[ft]用来控制[t-1]时刻的记忆单元状态[Ct-1]是否被保留,表达式为:
[ft=σ(Wf?ht-1xt+bf)] (2)
式中,[xt]为t时刻的输入向量,[ht-1]为t-1时刻的隐藏状态向量,[σ]为[sigmoid]激活函数,[Wf]和[bf]分别为遗忘门的权重矩阵与偏置向量。
[it]用于控制t时刻的输入向量[xt]是否被更新到t时刻的记忆单元更新值[Ct],分别表示为:
[it=σ(Wi?ht-1xt+bi)] (3)
[Ct=tanh(Wc?ht-1xt+bc)] (4)
式中,[Wi]和[bi]为输入门的权重矩阵与偏置向量,[Wc]和[bc]为记忆单元更新值的权重矩阵与偏置向量。
t时刻的记忆单元状态[Ct]通过遗忘门[ft]和输入门[it]控制t-1时刻的记忆单元状态[Ct-1]以及更新值[Ct]得到:
[Ct=ft?Ct-1+it?Ct] (5)
[ot]基于[Ct]更新t时刻的隐藏状态向量[ht],表达式分别为:
[ot=σ(Wo?ht-1xt+bo)] (6)
[ht=ot?tanh(Ct)] (7)
式中,[Wo]和[bo]为输出门的权重矩阵与偏置向量。
1.2 标定点的像素坐标提取
为了更准确地获得标定点[P]的像素坐标[PC],本文采用便于算法检测的圆形标定板。选用跨平台计算机视觉库(open source computer vision library,OpenCV)的Hough圆检测函数HoughCircles来检测标定板的圆孔,进而得到圆心的像素坐标。Hough圆检测通过Canny边缘检测算子找到潜在的圆心。在圆心基础上,根据边缘的非零像素的灰度值确定圆孔半径,具体流程如图3所示。其中区域分割采用cv2::getRectSubPix函数;高斯滤波采用cv2::GaussianBlur函数;霍夫圆检测采用cv2::HoughCircles函数。
2 验证与讨论
为了验证所提方法的有效性,开展了机器人异空间手眼标定的实验并进行了分析。如图4所示,实验装置包括UR5e机器人、KinectV2相机、标定板、顶针和传送带。标定板上9个圆的直径均为20 mm。相机安装在传送带上方,标定板放置在传送带上。为了降低光照带来的影响,实验时在传送带上方使用灯条来做固定光源。标定程序运行在Ubuntu I7-10750电脑上。整个标定实验的流程为:
步骤1:在KinectV2相机视野内放置标定板,使用KinectV2相机拍摄当前标定板的图像,依次提取并记录标定板上各圆心的像素坐标;
步骤2:开启传送带,将标定板平移送至机器人工作空间内;
步骤3:拖动UR5e机器人,使其末端顶针以S型轨迹依次接触每个圆的圆心,按照轨迹顺序依次记录各圆心的像素坐标,同时记录对应的机器人末端顶针的位姿信息。为保证顶针和圆心的正确对应,标定时使用相机算法实时提取出标定圆的圆心,通过程序校准加人为校准,尽可能降低对应关系所带来的误差。重复上述过程,直至采集完36组数据。
设像素坐标为标定板圆心坐标,单位为pixel。像素坐标输入LSTM网络模型解算后得到的输出为模型预测坐标,单位为mm。机器人顶尖顶住标定板圆心时的顶尖末端坐标为机器人实际坐标,单位为mm。采集的36组真实数据作为验证集来验证训练模型的预测精度,数据记录见表1。
使用平移误差E来评估LSTM网络的预测精度,表达式为:
[E=(xP-xA)2+(yP-yA)2] (8)
式中:[xP]和[yP]表示预测值的坐标值;[xA]和[yA]表示真实值的坐标值。
LSTM网络模型的训练基于高层神经网络(advanced neural network, ANN)的深度学习框架Keras实现。共采集450组数据,其中训练集和测试集的比例为8∶2。数据归一化函数选择最小最大值标准化函数MinMaxScaler,激活函数选择ReLU,全连接层选择Dense,优化器选择Adam,训练完整遍历次数epochs设置为200,训练参数个数batch_size与日志显示verbose均设置为1。训练流程如图5所示。
<G:\武汉工程大学\2024\第5期\乐恒韬-5.tif>[像素坐标
(u,v)][真实坐标
(x,y,z)][MinMaxScaler
归一化][训练集预处理][训练][更新权重][LSTM][激活层
ReLU][全连接Dense][预测][输入][输出][像素坐标
xt(u,v)][预测坐标
ht(x,y,z)][最终权重]
图5 LSTM网络训练流程图
Fig. 5 Training pipeline of LSTM network
LSTM网络模型的评价指标设定为预测坐标的平移误差。将36组真实数据组成的验证集作为输入,预测结果如图6(a)所示。
如图6(b)所示,该网络模型验证集输出的预测坐标的平均平移误差仅为0.69 mm。验证集数据随机分布于传送带的所有工作空间中,模型预测结果显示平移误差波动值均小于1 mm,证明了该方法的有效性。
3 结 论
针对机器人异空间平面标定问题,创新性地提出了一种基于LSTM网络的机器人手眼关系标定方法。通过引入空间偏移量,利用LSTM网络求解出像素坐标系和机器人坐标系的映射关系。通过标定实验,得到如下结论:
(1)通过引入移动距离偏移量,解决了相机空间和机器人工作空间不匹配的问题。在传送带稳定工作的情况下,LSTM网络预测的坐标准确度较高。对于工作不稳定的传送带,由于扰动形式多样,如果扰动均匀分布在标定数据集里,在训练过程中也可以很好地被补偿。
(2)基于LSTM网络的机器人异空间手眼关系标定方法不仅可以精准匹配像素坐标和机器人工作平面坐标,并且平移误差波动小,证明了该方法的泛化性。相比于经典的九点标定算法,该方法可以更好地补偿相机镜头畸变、深度值变化等误差,所适用的工作空间更大。