邱晓荣, 刘全胜, 赵 吉
(1. 马来西亚管理科学大学信息科学与工程学院,雪兰莪 莎阿南 40100;2. 无锡职业技术学院物联网技术学院,江苏 无锡 214121; 3. 江南大学物联网工程学院,江苏 无锡 214122)
视觉测量与控制作为机器人智能化最重要的实现方式之一,可以大幅提高机器人的效率和精度,目前在工业生产中有着非常广泛的应用。机器人在生产操作时,需要知道目标物体相对于机械手末端执行器的位置,这可以通过手眼系统的自标定来获取,获取的关键在于确定机械手末端坐标系与摄像机坐标系之间的相对位置关系[1-3]。常见的手眼系统一般可以分为固定视点系统和非固定视点系统2种。非固定视点系统中,摄像机被固定在机器人机械手末端,随末端执行器一起移动,可实时观测到摄像机视野中的工件图像。
为了实现非固定视点系统的自标定,目前常用的方法是在不使用标定参照物的基础上,精确控制摄像机做线性无关的平移运动和旋转运动,只需依据场景中若干特征点,即可线性求解手眼系统中的摄像机内参矩阵、手眼关系、特征点目标深度等信息。杨广林等[4]提出依据2个特征点,利用2次平移运动和1次旋转运动,可线性求解手眼关系的平移向量和特征点目标深度。许海霞等[5]提出只需1个特征点,利用5次以上平移运动和2次以上旋转运动,可实现自标定。孔令富等[6]提出利用4次纯平移运动可以计算手眼关系的旋转矩阵,继而实现特征点目标深度实时估计。曲学军等[7]提出基于平行直线束图像序列,利用消隐点标定摄像机的焦距和外参数。陈天飞等[8]通过多次平移运动,同时结合四参数平面模型,分别标定光平面法向量和目标深度信息。张黎烁等[9]提出仅需2个特征点,通过控制摄像机做4次线性无关的平移运动和2次旋转运动,即可实现手眼系统的标定。何佳唯等[10]结合标定板设计了一种手眼关系混合标定方法,用于求解手眼旋转矩阵和平移矩阵。徐成刚等[11]基于马达代数空间构建手眼标定方程,并利用SVD方法求解手眼关系矩阵,取得了较好的效果。
受上述相关研究的启发,本文提出一种新的基于主动视觉的自标定方法,简化摄像机旋转的次数,降低了运算的复杂度,能够满足工业领域的精度要求。
摄像机成像系统原理如图1所示,特征点M在CCD成像平面O-uv中的成像点坐标为MUV(u,v),在图像平面ON-XNYN中的成像点坐标为MN(xn,yn),在摄像机坐标系OC-XCYCZC中的坐标为MC(xc,yc,zc)。
图1 摄像机成像系统原理图
K是摄像机内参矩阵五参数模型,图像平面x轴、y轴的尺度因子分别用表示,表示畸变因子,(u0,v0)是CCD成像平面的原点。摄像机成像系统中坐标变换关系如下:
基于主动视觉的手眼系统如图2所示。其中,特征点M在世界坐标系OW-XWYWZW中的坐标为MW(xw,yw,zw),在机械手末端坐标系OH-XHYHZH中的坐标为MH(xh,yh,zh),在摄像机坐标系OC-XCYCZC中的坐标为MC(xc,yc,zc)。
图2 基于主动视觉的手眼系统原理图
综合式(1)~式(5),得到手眼系统中的坐标变换关系,其中ξ表示特征点在摄像机坐标系的深度值。
根据扩展焦点的性质[12],任一特征点在摄像机平移前后的对应点连线均通过扩展焦点,因此可以通过场景中的2个或2个以上特征点来求解扩展焦点。
如图3所示,图像I和图像II是摄像机平移前后的两幅图像,P1和P2是特征点M在平移前后图像上的位置。摄像机做平移运动,直线OCO和OC'O'平行,直线P2'O和P2O'平行。P2'是P2在图像I上的对应点,对应点连线P2'P1和OCOC'相交于扩展焦点e。
图3 扩展焦点的原理图
由式(2)和式(3),可得扩展焦点e在摄像机坐标中的坐标:
式中moce表示OC到e的向量,mococ′表示OC到OC′的向量,c=moce/|moce|,表示摄像机平移运动的单位向量,且k>k1>0。
控制摄像机做1次平移运动,XH1、XH2是平移前后特征点M在机械手末端坐标系中的坐标,XC1、XC2是平移前后特征点M在摄像机坐标系中的坐标,则有:
式(10)-式(9),可得:
式(11)结合式(8),可得:
如式(12)所示,控制机械手做3次线性无关的平移运动,可得:
式中B=(b1,b2,b3),C=(c1,c2,c3),可得手眼关系旋转矩阵为
式(14)表明,通过精确控制摄像机做3次线性无关的平移运动,可以标定手眼关系的旋转矩阵,且为正交阵。
式(7)结合式(12),可得:
式(15)等价于:
假定
结合式(16)和式(17),可得:
如式(18)和式(19)所示,假定另一矩阵A′除外其余元素与A相同,控制摄像机做4次线性无关的平移运动,可通过最小二乘法求出A′的唯一解。为了确定a33的值,由式(17)得:
求出a33后,再由式(20)求出A,实现摄像机内参矩阵的标定。
如图1所示,控制摄像机做1次平移运动,(u1,v1)和(u2,v2)是平移前后特征点M在CCD成像平面的坐标,(x1,y1)和(x2,y2)是平移前后特征点M在图像平面的坐标,MC1(xc1,yc1,zc1)和MC2(xc2,yc2,zc2)是平移前后特征点M在摄像机坐标系中的坐标,由式(2)、式(3)和式(8)得:
结合式(1),将式(22)代入式(23),可得:
化简式(25),可得:
同理,通过式(26)可以求出zc2的值。同时式(26)、式(27)也表明通过控制摄像机做1次平移运动,可以求出平移前后特征点的目标深度信息。
完成上述4次线性无关的平移之后,为了标定手眼关系的平移向量,可以先控制机械手做1次实旋转运动(姿态1→姿态2,如图4所示),然后再控制摄像机做1次虚拟旋转运动(姿态2→姿态3,如图5所示)。
同时需要注意的是,由于手眼系统中摄像机被固定在机械手末端,为了使旋转前后机械手末端坐标系和摄像机坐标系的旋转部分平移部分保持一致,实际是不能控制摄像机基于机械手末端完成姿态2→姿态3的旋转操作。因此,图5所示的只是假想控制摄像机做1次虚拟旋转运动,并基于此次虚拟旋转做进一步的标定分析,同时还需保证虚拟旋转结束后的摄像机坐标系与实旋转之前摄像机坐标系的各个数轴平行且方向完全一致。
图4 实旋转前后手眼系统姿态对比
图5 虚旋转前后手眼系统姿态对比
XH5、XH6是实旋转前后特征点M在机械手末端坐标系中的坐标,XC5、XC6是实旋转前后特征点M在摄像机坐标系中的坐标。则有:
由式(28),可得:
如图5所示,虚旋转完成后,特征点M在机械手末端坐标系中的坐标是XH7,在摄像机坐标系中的坐标是XC7,可得:
结合式(29)和式(30),可得:
式(31)表明经过一次实旋转和一次虚旋转后,特征点M在摄像机坐标系中的坐标XC5(xc5,yc5,zc5)和XC7(xc7,yc7,zc7),可以看作是一次平移运动前后的坐标变换。
结合式(2)、式(3)和式(30),可得
假定
将式(33)和式(34)代入式(32),可得:
将式(35)展开,可得:
式(36)中,矩阵D的9个元素已知,(u6,v6)是机械手实旋转后特征点M在CCD成像平面的坐标,由此可以求出机械手虚旋转后特征点M在CCD成像平面的坐标(u7,v7),进而可以求出虚旋转后特征点M在摄像机坐标系的坐标XC7(xc7,yc7,zc7)。
由式(2)、式(3)和式(8)得:
由于(u5,v5)→(u7,v7)的对应关系类似于一次平移运动,因此结合这两点的坐标可以求出平移运动的单位向量c′。
将式(1)和式(37)代入式(38),可得:
化简式(40),可得:
由式(43)可知,通过控制手眼系统中的机械手做一次实旋转,然后再控制摄像机做一次虚旋转,可以实现对手眼关系平移向量的标定。
标定实验的测试平台采用的是DENSO VP-6242E/GM工业机器人,摄像机镜头的焦距为8 mm,感光CCD分辨率为640×480。
如图6所示,首先控制摄像机做4次线性无关的平移运动。为提高计算精度,取三特征角点对应连线的均值[9]计算CCD成像平面中扩展焦点的坐标。
图6 4次平移运动
然后根据扩展焦点的坐标可以求出摄像机平移运动过程中的方向向量,继而求出手眼关系的旋转矩阵和 摄像机内参矩阵。
接着做1次实旋转运动,此次实旋转结合1次假想的虚旋转,可以求出手眼关系的平移矩阵为
为了进一步确保自标定方法的正确性,最后还需在机械手末端安装一个执行器,同时计算该末端执行器在机器人世界坐标系中的偏移修正值ts。
在摄像机内参矩阵、手眼关系旋转矩阵和平移向量完成求解之后,在保持机器人本体姿态不变的情况下,进行平面和三维数据验证测试,测试结果如表1所示。
表1 测量精度分析
表1中的计算坐标由手眼系统自标定时相关特征点坐标值计算得出,其中1~5号为平面测试数据,6~10号为三维测试数据,最大测量误差均不超过0.40 mm,能够满足工业领域的精度要求。
与传统手眼系统自标定方法相比,提出的基于主动视觉的手眼系统自标定方法无需标定参照物,实现过程相对简单,并在2个方面对做了较好的改进:1)通过控制摄像机做3次线性无关的平移运动,即可实现对手眼关系旋转矩阵的线性求解,比文献[6]简化了1次平移运动,降低了手眼关系旋转矩阵以及后续摄像机内参矩阵求解的运算复杂度;2)与文献[9]相比,本方法简化了1次实旋转,只需1次实旋转结合1次虚旋转即可,降低了求解手眼关系平移向量的运算复杂度。最后的实验结果表明,本方法能够保证实际作业精度,对促进手眼系统的工业应用具有参考价值。