一、眼在手上标定概述:什么是眼在手上、为什么需要标定、标定的核心目标与数学本质
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 标定流程总览
眼在手上标定,我一般分成三步走:
- 数据采集:控制机器人运动到N个不同位姿,在每个位姿下记录机器人末端位姿和相机拍摄的标定板图像
- 求解手眼矩阵:用采集的数据构建AX=XB方程,求解X
- 验证标定结果:用未参与求解的数据做验证,看重投影误差和抓取精度
这三步环环相扣。采集不好,求解再准也没用;求解不准,验证肯定过不了。
下面这张图展示了整个标定流程的逻辑关系:
1.6 标定精度的影响因素
标定精度不是玄学,是可以量化的。我总结了几大影响因素:
| 因素 | 影响程度 | 建议 |
|---|---|---|
| 标定板精度 | 高 | 使用陶瓷或玻璃标定板,避免纸打印 |
| 数据采集数量 | 中 | 至少15组,覆盖不同姿态 |
| 机器人重复定位精度 | 高 | 使用高精度机器人,或多次测量取平均 |
| 相机分辨率 | 中 | 根据视场和精度要求选择 |
| 标定板平面度 | 高 | 标定前检查平面度,贴在刚性平面上 |
我的经验:
标定精度最终能到多少?在良好条件下,眼在手上的标定精度可以达到0.1-0.5mm。但如果你用的是协作机器人(重复精度±0.1mm),标定精度上限就是机器人的重复精度。
别指望标定能弥补机器人的机械误差——标定只解决坐标系转换问题,不解决机器人本身的精度问题。
1.7 本章小结
眼在手上标定,说白了就是求一个手眼矩阵X,让相机看到的像素坐标能准确转换到机器人基座坐标系下。核心方程是AX=XB,数据采集、求解、验证三步缺一不可。
记住一句话:标定的上限由数据质量决定,下限由求解算法决定。把采集做好,后面的事就顺了。