一、手眼标定概述
1.1 什么是手眼标定
手眼标定,说白了就是让机器人知道自己的「手」和「眼睛」之间的位置关系。
你想想看,机器人装上摄像头之后,它能看到工件、能看到目标。但它怎么把「眼睛看到的位置」变成「手能抓的位置」?
这中间缺一个坐标变换矩阵。手眼标定要算的,就是这个矩阵。
核心定义:手眼标定是求解机器人末端执行器(手)与视觉传感器(眼)之间刚性变换关系的过程。这个关系用 4×4 齐次变换矩阵表示,包含旋转和平移。
我刚开始接触这个领域时,总觉得标定就是拍几张照片的事。后来在一条汽车产线上调试了整整三天,才发现——标定不准确,后面所有识别、定位、抓取全是白搭。
1.2 为什么需要手眼标定
直接回答:因为机器人和摄像头是两个独立的坐标系。
机器人运动靠的是基坐标系。摄像头看到的是像素坐标系。中间隔着好几层变换:
- 像素坐标系 → 图像坐标系 → 相机坐标系
- 相机坐标系 → 机器人末端坐标系
- 末端坐标系 → 机器人基坐标系
没有手眼标定,你从图像里提取的坐标,机器人根本不知道往哪儿走。
我的经验:曾经有个项目,视觉识别精度 0.1mm,但抓取偏差 5mm。排查了两天,最后发现是手眼标定矩阵用了三个月前的旧参数。重新标定后,偏差降到 0.3mm。标定不是一次性的事,设备维护、碰撞后都要重新做。
为什么不能直接测量?因为摄像头装在机器人上,安装误差、加工误差、装配误差叠加在一起,你拿尺子量不准。而且很多场景下,摄像头和机器人之间还有连杆、法兰、转接板,这些零件的公差都会累积。
所以,必须通过数学方法,用机器人运动数据和视觉观测数据,反算出这个变换关系。
1.3 手眼标定的应用场景
手眼标定不是实验室里的玩具。我在工业现场见过太多场景离不开它:
| 应用场景 | 典型任务 | 标定方式 |
|---|---|---|
| 抓取与码垛 | 从传送带上抓取随机摆放的工件 | 眼在手外(Eye-to-Hand) |
| 装配与插接 | 视觉引导机器人插入精密零件 | 眼在手上(Eye-in-Hand) |
| 焊接与切割 | 焊缝跟踪、切割路径修正 | 眼在手上 |
| 检测与测量 | 在线尺寸检测、缺陷识别 | 眼在手外 |
| 移动机器人 | AGV/AMR 视觉导航与对接 | 眼在手上 |
我印象最深的是一个 3C 装配项目。手机中框上要装一个 0.8mm 的弹片,人工装效率低,用视觉引导机器人。标定做了整整一天,因为中框反光严重,标定板图像质量差。后来换了哑光陶瓷标定板,才把标定精度做到 0.05mm。这个项目让我明白:标定精度决定了整个系统的上限。
注意:手眼标定不是「标一次管终身」。机器人维修、更换摄像头、重新安装夹具后,必须重新标定。我见过不少产线因为忽略这一点,导致批量报废。
1.4 两种标定模式
根据摄像头安装位置,手眼标定分为两种模式:
- 眼在手上(Eye-in-Hand):摄像头装在机器人末端,跟着机器人一起动。标定目标是求相机坐标系与末端坐标系之间的变换。
- 眼在手外(Eye-to-Hand):摄像头固定安装,不随机器人运动。标定目标是求相机坐标系与机器人基坐标系之间的变换。
两种模式各有优劣。眼在手上视野灵活,但标定计算更复杂;眼在手外视野固定,但标定相对简单。具体选哪种,看你的工艺需求。
嗯,这里要注意:很多人以为眼在手上标定更难,其实恰恰相反——眼在手上标定只需要机器人带着标定板走几个位姿,数据采集更方便。眼在手外反而要保证标定板始终在视野内,对工作空间有要求。
1.5 本章知识结构
下面这张图,把本章的核心逻辑串起来了:
这张图把本章的核心逻辑串起来了。中心是手眼标定,左边回答「为什么需要」,右边列出「应用场景」,下方展开「两种标定模式」。后面的章节,会沿着这个结构一步步深入。
我个人习惯,在开始任何标定工作之前,先画一张这样的结构图。它能帮你理清思路,避免在细节里迷失方向。