机器视觉系统可以从工作环境中采集到的图像分析处理提取信息, 并且可以对空间尺寸进行精确测量和定位, 进而反馈给机器人, 引导机器人进行抓取、装配等操作[1-3]. 为了将视觉系统中的位姿信息转换到机器人系统中, 手眼标定是其中的重要环节, 标定精度对机器人最终定位精度有很大影响.
传统的手眼标定方法都是通过求解AX=XB方程的形式来标定[4]. 求解方法可以分为分步法[5-7]和整体法[8-10]. 除了传统的方法之外, 还有其他的手眼标定方法. Ma[11]提出一种基于主动视觉的手眼自标定方法, 通过运动平台的三次非共面平移运动求解相机与平台间的旋转关系, 然后控制运动平台进行一次非平移运动, 通过前后两次对同一标志点的重建获得相机平移量, 代入方程求解相机与平台之间的平移关系. 杨守瑞等[12]建立了同时包含机器人参数误差和手眼关系误差的模型, 先得到手眼关系初解, 随后将初解代入误差模型, 通过球心约束同时求解机器人误差和手眼误差. 张旭等[13]令机器人末端吸盘携带标定板, 摄像机获取平面镜中标定板的图像, 并通过3次改变平面镜的姿态求解相机到末端靶标的位姿, 然后通过辅助相机测量末端靶标到吸盘的距离, 最终获取相机到吸盘的手眼关系.
传统的求解AX=XB方程的方法比较复杂, 常常需要机器人移动数十个位置, 而一些新的方法需要其他的高精度的测量设备. 针对以上问题, 结合实际环境和需求, 本文提出一种面向Eye-to-Hand形式的新的两步法手眼标定方法. 该方法将求解手眼关系分为求解旋转关系和平移关系两步, 首先令机器人末端进行两次平移运动获取旋转关系, 其次建立了机器人运动前后各个坐标系转换关系的模型, 通过机器人末端若干次旋转运动求解平移关系, 最后通过仿真实验和实际实验证明, 该方法操作简单、快速且具有一定精度.
1 新的两步法手眼标定在不同应用场景下的Eye-to-Hand形式的手眼标定中, 相机与机器人的相对位置关系是多变的, 而机器人末端携带标定板运动的标定方法对相机与机器人的相对位置没有较多要求, 所以本文通过机器人末端夹持标定板运动, 相机采集标定板图像的形式进行标定.
本文提出的手眼标定方法涉及到的各个坐标系如图1所示. 其中, 工具坐标系为
在进行手眼标定前, 工具坐标系已由之前描述的四点法标定好, 相机也经过了单目标定获得了内参和畸变系数. 为了获取相机和工具坐标系的关系, 必须要让相机对工具坐标系上的点坐标进行测量, 由于末端夹爪上没有合作目标, 所以设计了如图2所示的编码点标定板供夹爪夹持. 设计编码点标定板坐标系为
1.1 旋转关系标定
记工具坐标系到相机坐标系的旋转矩阵为
$\left[ {\begin{array}{*{20}{c}} {{x_A}}\\ {{y_A}}\\ {{{\textit{z}}_A}}\\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{{\hat{X}}_B}\cdot{{\hat{X}}_A}}&{{{\hat{Y}}_B}\cdot{{\hat{X}}_A}}&{{{\hat{Z}}_B}\cdot{{\hat{X}}_A}}&{{t_x}}\\ {{{\hat{X}}_B}\cdot{{\hat{Y}}_A}}&{{{\hat{Y}}_B}\cdot{{\hat{Y}}_A}}&{{{\hat{Z}}_B}\cdot{{\hat{Y}}_A}}&{{t_y}}\\ {{{\hat{X}}_B}\cdot{{\hat{Z}}_A}}&{{{\hat{Y}}_B}\cdot{{\hat{Z}}_A}}&{{{\hat{Z}}_B}\cdot{{\hat{Z}}_A}}&{{t_{\textit{z}}}}\\ 0&0&0&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{x_B}}\\ {{y_B}}\\ {{{\textit{z}}_B}}\\ 1 \end{array}} \right] $ | (1) |
转换矩阵的第一列可以视为坐标系B的X轴上的单位矢量在坐标系A的X, Y, Z轴上单位矢量的投影, 第二列和第三列以此类推, 第四列为坐标系B的原点
设旋转矩阵初值为
(1)控制机器人末端沿工具坐标系的X轴方向运动一段距离, 运动距离无需记录, 在起始点和终点处分别对标定板拍照获得标定板坐标系原点
(2)控制机器人末端沿工具坐标系的Y轴方向运动一段距离, 后续步骤同步骤(1), 获得
(3)
(4)由于
求出
记相机坐标系到工具坐标系的平移矩阵为
在固定拍照位置, 工具坐标系为
$\left[ {\begin{array}{*{20}{c}} {{I_{3 \times 3}}}&{{}_d^t{{t}}} \\ 0&1 \end{array}} \right] = {}_d^t{{T}} = {}_{d1}^{t1}{{T}}$ | (2) |
$ \left\{ {\begin{array}{*{20}{l}} {^c{{{P}}_i}{ = }_f^c{{R}}\cdot{^f}{{{P}}_i}{ + }_f^c{{t}}}\\ {^t{{{P}}_i}{ = }_c^t{{R}}\cdot{^c}{{{P}}_i}{ + }_c^t{{t}}} \end{array},\;\;{{i = 0}},{\rm{1}},{\rm{2}},{\rm{3}}} \right.$ | (3) |
根据之前对
${}^t{{{O}}_d} = \sum\limits_{i = 0}^3 {{}^t{{{P}}_i}} /4$ | (4) |
但是这里计算出的
设标定板上一点P在
$\left[ {\begin{array}{*{20}{c}} {{}^c{{P}}} \\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{}_{t1}^c{{R}}}&{{}_{t1}^c{{t}}} \\ {{0}}&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{}_{d1}^{t1}{{R}}}&{{}_{d1}^{t1}{{t}}} \\ {{0}}&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{}^{d1}{{P}}} \\ 1 \end{array}} \right]$ | (5) |
也可以表示为:
$\left[ {\begin{array}{*{20}{c}} {{}^c{{P}}} \\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{}_t^c{{R}}}&{{}_t^c{{t}}} \\ {{0}}&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{}_d^t{{R}}}&{{}_d^t{{t}}} \\ {{0}}&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{}_{d1}^d{{R}}}&{{}_{d1}^d{{t}}} \\ {{0}}&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{}^{d1}{{P}}} \\ 1 \end{array}} \right]$ | (6) |
式(5)和式(6)的右边相等, 因此有:
$\begin{array}{l} \left[ {\begin{array}{*{20}{c}} {{}_{t1}^c{{R}}}&{{}_{t1}^c{{t}}} \\ {{0}}&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{}_{d1}^{t1}{{R}}}&{{}_{d1}^{t1}{{t}}} \\ {{0}}&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{}^{d1}{{P}}} \\ 1 \end{array}} \right] \\ = \left[ {\begin{array}{*{20}{c}} {{}_t^c{{R}}}&{{}_t^c{{t}}} \\ {{0}}&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{}_d^t{{R}}}&{{}_d^t{{t}}} \\ {{0}}&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{}_{d1}^d{{R}}}&{{}_{d1}^d{{t}}} \\ {{0}}&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{}^{d1}{{P}}} \\ 1 \end{array}} \right] \end{array} $ | (7) |
结合式(2), 将式(7)展开并化简可得:
$\left\{ \begin{array}{l} {}_{t1}^c{{R}}{}_{d1}^{t1}{{R}} = {}_t^c{{R}}{}_{d1}^d{{R}} \\ \left( {{}_{t1}^c{{R}} - {}_t^c{{R}}} \right){}_d^t{{t}} = {}_t^c{{R}}{}_{d1}^d{{t}} + {}_t^c{{t}} - {}_{t1}^c{{t}} \end{array} \right.$ | (8) |
如果控制工具坐标系围绕TCP点只做姿态变换, 没有平移, 则
$\left( {} \right) $\left( {{}_{t1}^c{{R}} - {}_t^c{{R}}} \right){}_d^t{{t}} = {}_t^c{{R}}{}_{d1}^d{{t}}$$ | (9) |
上式中
${}_{d1}^d{{t}} = \frac{1}{4}\sum\limits_{i = 0}^3 {\left( {{}_c^t{{R}}{}_{f1}^c{{R}}{}^f{{{p}}_i} + {}_c^t{{R}}{}_{f1}^c{{t}} - {}_c^t{{R}}{}_f^c{{R}}{}^f{{{p}}_i} - {}_c^t{{R}}{}_f^c{{t}}} \right)} $ | (10) |
上式中
可将式(9)视为
计算出
设平移矩阵为
(1)机器人夹持标定板到单目视觉系统上方固定位置处;
(2)控制工具坐标系围绕TCP点做若干次旋转运动, 并对每次位置的标定板拍照;
(3)根据式(9)和式(10)求解
(4)最终的平移矩阵
作为对比, 本文首先对传统的解AX=XB方程形式的手眼标定方法进行了仿真, 并且计算了标定误差. 在仿真中, 对实验数据分别设置了若干组高斯误差(
本文实验的硬件系统包括工业机器人、编码点标定板、工业相机及镜头. 其中, 所使用的工业机器人型号为KUKA KR60HA, 工业相机型号为德国映美精公司的DMK 33G274, 使用的镜头为Computar的M0814-MP2, 焦距8 mm. 实验环境如图4所示.
对于本文提出的新的两步法标定, 首先如2.1节所述步骤标定相机与工具坐标系的旋转关系. 标定过程采集的编码点标定板图像如图5所示.
可以看出, 标定板背景环境较为复杂, 由于采用编码点, 仍可以很好的提取圆心. 最终计算出:
${}_c^t{{R}} = \left[ {\begin{array}{*{20}{c}} {0.011\;35}&{0.9989}&{0.045\;05} \\ {0.9999}&{ - 0.011\;84}&{0.010\;65} \\ {0.011\;17}&{0.044\;92}&{ - 0.9989} \end{array}} \right]$ |
然后控制工具坐标系旋转不同角度, 采集各姿态下的标定板图像并记录工具坐标系在机器人基坐标系下的读数, 代入式(8)组成线性方程组, 求得
$\begin{array}{l} {}_c^b{{T}} = {}_t^b{{T}}{}_c^t{{T}} \\ = \left[ {\begin{array}{*{20}{c}} {4.39{\rm{e}} - 3}&{0.9991}&{0.042\;54}&{984.82} \\ { - 0.9999}&{4.83{\rm{e}} - 3}&{ - 0.010\;07}&{ - 341.68} \\ { - 0.010\;27}&{ - 0.042\;49}&{0.999}&{489.54} \\ 0&0&0&1 \end{array}} \right] \end{array} $ |
可以看出, 整个标定过程只需机器人进行两次平移运动和若干次旋转运动, 非常快速. 令机器人夹爪夹持标定板运动到不同位姿, 用单目相机采集标定板图像, 记录并计算A和B, 令
3 结论
本文提出了一种新的单目视觉系统两步手眼标定方法, 该方法将标定过程分为求解旋转关系和平移关系两步, 通过控制机器人进行两次平移运动和若干次旋转运动即可计算手眼关系. 该方法与已有方法的主要区别在于其避免了对AX=XB方程的求解, 传统的基于AX=XB方程求解的方法不仅至少需要采集数十张标定板图像, 而且精度得不到保证, 本文方法不仅可以减少在标定过程中对标定板图像数量的要求, 而且实验验证了本文方法具有较高精度, 因此本文方法快速、精确, 此外该方法使用的编码点标定板非常简单, 不需要昂贵的外部设备. 在实际应用中, 机器人和环境噪声会对标定精度造成影响. 所以后续仍需要对其进行精度和标定结果优化进行大量的研究工作.
[1] |
Ahmad R, Plapper P. Safe and automated assembly process using vision assisted robot manipulator. Procedia CIRP, 2016, 41: 771-776. DOI:10.1016/j.procir.2015.12.129 |
[2] |
Zeng A, Yu KT, Song SR, et al. Multi-view self-supervised deep learning for 6D pose estimation in the amazon picking challenge. Proceedings of 2017 IEEE International Conference on Robotics and Automation. Singapore. 2016. 1386–1393.
|
[3] |
Wada K, Sugiura M, Yanokura I, et al. Pick-and-verify: Verification-based highly reliable picking system for various target objects in clutter. Advanced Robotics, 2017, 31(6): 311-321. DOI:10.1080/01691864.2016.1269672 |
[4] |
Condurache D, Burlacu A. Orthogonal dual tensor method for solving the AX= XB sensor calibration problem. Mechanism and Machine Theory, 2016, 104: 382-404. DOI:10.1016/j.mechmachtheory.2016.06.002 |
[5] |
Tsai RY, Lenz RK. A new technique for fully autonomous and efficient 3D robotics hand/eye calibration. IEEE Transactions on Robotics and Automation, 1989, 5(3): 345-358. DOI:10.1109/70.34770 |
[6] |
Park FC, Martin BJ. Robot sensor calibration: Solving AX= XB on the Euclidean group. IEEE Transactions on Robotics and Automation, 1994, 10(5): 717-721. DOI:10.1109/70.326576 |
[7] |
Horaud R, Dornaika F. Hand-eye calibration. The International Journal of Robotics Research, 1995, 14(3): 195-210. DOI:10.1177/027836499501400301 |
[8] |
Andreff N, Horaud R, Espiau B. On-line hand-eye calibration. Proceedings of the 2nd International Conference on 3-D Digital Imaging and Modeling. Washington, DC, USA. 1999. 430–436.
|
[9] |
Daniilidis K. Hand-eye calibration using dual quaternions. The International Journal of Robotics Research, 1999, 18(3): 286-298. DOI:10.1177/02783649922066213 |
[10] |
Strobl KH, Hirzinger G. Optimal hand-eye calibration. Proceedings of the 2006 IEEE/RSJ International Conference on Intelligent Robots and Systems. Beijing, China. 2006. 4647–4653.
|
[11] |
Ma SD. A self-calibration technique for active vision systems. IEEE Transactions on Robotics and Automation, 1996, 12(1): 114-120. DOI:10.1109/70.481755 |
[12] |
杨守瑞, 尹仕斌, 任永杰, 等. 机器人柔性视觉测量系统标定方法的改进. 光学 精密工程, 2014, 22(12): 3239-3246. |
[13] |
张旭, 贾君慧, 张刚. 基于镜面反射的手眼标定方法. 中国机械工程, 2018, 29(10): 1153-1158, 1165. DOI:10.3969/j.issn.1004-132X.2018.10.004 |