1. 手眼标定基础:从“眼睛”到“手”的坐标对话
各位工程师朋友,咱们直接进入正题。手眼标定,说白了就是让机器人的“眼睛”(相机)和“手”(机械臂)能对上话。你想想看,相机看到工件在某个位置,机械臂要过去抓,这两者用的坐标系根本不一样——相机有自己的像素坐标系,机械臂有自己的基坐标系。没有标定,机器人就是个“睁眼瞎”。
我最早接触这个课题是在一个3C装配项目里。当时相机明明拍到了螺丝孔,机械臂就是怼不进去。折腾了两天,最后发现是手眼关系矩阵算错了0.5毫米。嗯,从那以后,我再也不敢小看这一步。
1.1 什么是手眼标定?
手眼标定,就是求解相机坐标系与机械臂末端(或基座)坐标系之间的空间变换关系。这个关系用一个4×4的齐次变换矩阵表示,包含旋转和平移。
数学上,我们要求解的是这样一个方程:
相机坐标系 → 机器人坐标系
P_robot = T_cam2robot × P_camera
其中 T_cam2robot 就是我们标定要得到的矩阵。有了它,相机看到的每个点都能换算成机械臂能理解的坐标。
核心本质:手眼标定 = 求解两个刚体坐标系之间的6自由度空间变换(3个旋转自由度 + 3个平移自由度)。
1.2 Eye-in-Hand 与 Eye-to-Hand 的区别
这两种配置,我估计很多新手容易搞混。咱们用一张表说清楚:
| 对比项 | Eye-in-Hand(眼在手上) | Eye-to-Hand(眼在手外) |
|---|---|---|
| 相机安装位置 | 固定在机械臂末端 | 固定在工作空间上方或侧面 |
| 相机与机械臂关系 | 相机随机械臂移动 | 相机固定不动 |
| 标定目标 | 相机坐标系 → 机械臂末端坐标系 | 相机坐标系 → 机械臂基座坐标系 |
| 典型应用 | 小范围高精度抓取、焊缝跟踪 | 大范围定位、码垛、装配 |
| 标定复杂度 | 需要多个位姿,计算量稍大 | 相对简单,一次标定长期使用 |
Eye-in-Hand 的好处是相机离工件近,精度高,但每次机械臂动,视野就变了。我做过一个手机中框抓取项目,用的就是这种配置。当时遇到的问题是:机械臂在不同姿态下,标定板的成像质量差异很大,导致标定结果不稳定。
Eye-to-Hand 则相反,相机视野固定,适合看全局。但相机离得远,像素当量(每个像素代表的实际尺寸)会变大,精度受限制。我记得有个汽车零部件项目,客户非要Eye-to-Hand,结果因为视野太大,0.1毫米的定位精度死活达不到,最后被迫加了第二个相机。
我的建议:如果工件尺寸小(< 200mm)且精度要求高(< 0.1mm),优先选Eye-in-Hand。如果工件大、工作范围广,或者需要同时看多个工件,选Eye-to-Hand更省事。
1.3 标定的核心目标
手眼标定的核心目标,用一句话概括就是:让机器人能准确抓取相机看到的物体。
拆开来看,有四个具体目标:
- 空间对齐:建立相机与机器人之间的坐标映射关系
- 误差最小化:将重投影误差或位置误差控制在允许范围内(通常< 0.5mm)
- 稳定性:标定结果在不同位姿、不同光照下可重复
- 鲁棒性:对标定板姿态、噪声、畸变有一定的容忍度
我曾经在一个项目中踩过坑:标定结果在实验室里精度0.2mm,一到产线上就变成1.5mm。后来发现是产线振动导致相机支架发生了微小位移。所以,稳定性有时候比精度本身更难搞。
1.4 数学本质:AX = XB 问题
这里稍微深入一点。手眼标定的数学本质,是一个经典的 AX = XB 问题。
什么意思呢?
- A:机械臂从位姿1到位姿2的变换矩阵(已知,从机器人控制器读取)
- B:相机从位姿1到位姿2的变换矩阵(已知,通过标定板图像计算)
- X:手眼变换矩阵(未知,我们要解的)
方程就是:A × X = X × B
这个方程的解,就是我们要的手眼关系。为什么是这种形式?因为机械臂移动前后,相机与机械臂之间的相对关系是不变的——这就是约束条件。
注意:AX = XB 方程至少需要3组非共面的位姿数据才能求解。我见过有人只拍2组数据就标定,结果矩阵奇异,标定结果完全不能用。一般建议采集10-15组不同姿态的数据,然后做优化求解。
1.5 知识体系总览
下面这张图,把本章的核心逻辑串起来了。你可以把它当作后续学习的路线图:
1.6 标定前的准备工作
在进入实际标定之前,有几个基础条件必须满足。我见过太多人上来就标,结果数据一塌糊涂:
- 相机内参必须先标定好:畸变系数、焦距、主点坐标。内参不准,手眼标定就是空中楼阁
- 机械臂运动学参数要准确:尤其是末端执行器的安装偏差,最好先用工具标定一下TCP
- 标定板要平整、精度够:陶瓷板优于玻璃板,玻璃板优于打印纸。我习惯用7×7的陶瓷圆点标定板
- 光照要均匀:避免反光、阴影,否则特征点提取会出偏差
一个小技巧:正式标定前,先用手动模式让机械臂走几个位姿,观察标定板在图像中的位置。确保标定板始终在视野中央区域,不要跑到边缘——边缘畸变大会引入额外误差。
1.7 本章小结
手眼标定,本质上就是给机器人的“眼睛”和“手”做一次坐标对齐。Eye-in-Hand和Eye-to-Hand各有适用场景,选型时要根据精度、视野、工作范围综合判断。数学上,它归结为AX=XB问题,需要多组位姿数据来求解。