一、眼在手上标定概述:什么是眼在手上、为什么需要标定、标定的核心目标与数学本质

1.1 什么是“眼在手上”?

先说说这个“眼在手上”到底是个什么配置。

简单讲,就是把相机固定在机器人末端法兰盘上,跟着机械臂一起动。相机和末端之间是刚性连接,相对位姿固定不变。

我刚开始接触这个术语时,觉得名字挺形象——眼睛长在手上,手往哪指,眼就往哪看。跟“眼在手外”(相机固定在工作台上方)正好相反。

眼在手上的典型场景:

  • 机械臂末端装一个工业相机,跟着机器人去抓取工件
  • 移动式视觉引导,比如AGV+机械臂+相机一体化
  • 大工件局部检测,相机需要靠近不同位置拍照

你想想看,如果相机固定在天花板上,工件被机械臂挡住了怎么办?眼在手上就没有这个问题——相机跟着手走,永远能看到目标区域。

1.2 为什么需要标定?

相机装上去就能用吗?当然不行。

相机看到的是像素坐标,机器人要的是世界坐标。中间差了好几个坐标系转换。我见过不少新手,装好相机就直接用像素坐标去控制机器人,结果抓了个寂寞。

标定的本质,就是建立从像素到机器人基座坐标系的完整转换链。具体来说,我们需要知道:

  • 相机内参:焦距、主点、畸变系数——把像素坐标变成相机坐标系下的归一化坐标
  • 手眼矩阵:相机坐标系到机器人末端坐标系的变换——这是眼在手上标定的核心
  • 机器人运动学:末端坐标系到基座坐标系的变换——机器人自己会告诉你

我曾经在一个项目里,标定完发现抓取偏差有5mm。排查了两天,最后发现是标定板贴歪了。嗯,这里要注意:标定板的平面度和平行度,直接影响标定精度。

1.3 标定的核心目标

说白了,眼在手上标定就干一件事:求出手眼矩阵 X。

这个 X 是 4×4 的齐次变换矩阵,包含旋转和平移。有了它,相机看到的任何点,都能转换到机器人末端坐标系下,再结合机器人当前位姿,就能算出在基座坐标系下的位置。

核心公式(AX = XB):

这是眼在手上标定的数学本质。A 是机器人末端的两次运动变换,B 是相机看到的标定板两次位姿变换。求解 X 使得 AX = XB 成立。

为什么是这个形式?因为相机跟着末端走,相机看到的标定板位姿变化,和末端自身的位姿变化,通过手眼矩阵 X 耦合在一起。

1.4 数学本质:AX = XB

我们来拆解一下这个方程。

假设机器人从位姿1运动到位姿2:

  • A = 末端从位姿1到位姿2的变换矩阵(机器人控制器给出)
  • B = 相机看到的标定板从位姿1到位姿2的变换矩阵(通过视觉求解)
  • X = 相机到末端的手眼矩阵(未知,待求)

方程 AX = XB 展开后,实际上包含两个部分:

部分 含义 求解方法
旋转部分 RA · RX = RX · RB Tsai法、Park法、四元数法
平移部分 RA · tX + tA = RX · tB + tX 旋转解出后,线性求解平移

我个人习惯先解旋转,再解平移。因为旋转误差会传递到平移上,旋转解准了,平移自然就准。

避坑指南:

我曾经遇到过标定数据采集了20组,解出来的X却一直在跳。后来发现是机器人运动范围太小,所有位姿几乎共线,导致旋转部分欠约束。

建议:采集数据时,让机器人末端做大幅度的旋转和移动,覆盖不同的姿态。至少采集15-20组,且姿态差异要足够大。

1.5 标定流程总览

眼在手上标定,我一般分成三步走:

  1. 数据采集:控制机器人运动到N个不同位姿,在每个位姿下记录机器人末端位姿和相机拍摄的标定板图像
  2. 求解手眼矩阵:用采集的数据构建AX=XB方程,求解X
  3. 验证标定结果:用未参与求解的数据做验证,看重投影误差和抓取精度

这三步环环相扣。采集不好,求解再准也没用;求解不准,验证肯定过不了。

下面这张图展示了整个标定流程的逻辑关系:

眼在手上标定全流程 阶段一:数据采集 控制机器人运动到N个位姿 记录末端位姿(机器人) 拍摄标定板图像 阶段二:求解手眼矩阵 提取标定板角点 计算相机位姿 构建AX=XB方程 求解旋转+平移 输出手眼矩阵X 4×4齐次矩阵 阶段三:验证标定结果 重投影误差验证 抓取精度测试 标定合格? 核心:AX = XB 方程求解是标定的数学本质,数据质量决定标定精度

1.6 标定精度的影响因素

标定精度不是玄学,是可以量化的。我总结了几大影响因素:

因素 影响程度 建议
标定板精度 高 使用陶瓷或玻璃标定板,避免纸打印
数据采集数量 中 至少15组,覆盖不同姿态
机器人重复定位精度 高 使用高精度机器人,或多次测量取平均
相机分辨率 中 根据视场和精度要求选择
标定板平面度 高 标定前检查平面度,贴在刚性平面上

我的经验:

标定精度最终能到多少?在良好条件下,眼在手上的标定精度可以达到0.1-0.5mm。但如果你用的是协作机器人(重复精度±0.1mm),标定精度上限就是机器人的重复精度。

别指望标定能弥补机器人的机械误差——标定只解决坐标系转换问题,不解决机器人本身的精度问题。

1.7 本章小结

眼在手上标定,说白了就是求一个手眼矩阵X,让相机看到的像素坐标能准确转换到机器人基座坐标系下。核心方程是AX=XB,数据采集、求解、验证三步缺一不可。

记住一句话:标定的上限由数据质量决定,下限由求解算法决定。把采集做好,后面的事就顺了。