1. 项目背景与需求分析
大家好,我是老张。在机器视觉这行摸爬滚打了十几年,今天咱们来聊聊手眼标定。
说实话,我刚入行那会儿,觉得标定这事儿挺玄乎的。不就是让机器人知道相机在哪儿吗?后来被现实狠狠教育了几次,才明白——手眼标定是整个机器人视觉系统的基石。基础不牢,地动山摇。
1.1 什么是手眼标定?
先给个最直白的定义:手眼标定,就是求解相机坐标系与机器人坐标系之间的变换关系。
你想想看,相机能看到工件的位置,但机器人要去抓取它。相机说“工件在图像坐标(320, 240)”,机器人听不懂啊。机器人只认自己的坐标系——基座标系、工具坐标系。所以我们需要一个数学桥梁,把相机看到的坐标,翻译成机器人能执行的坐标。
这个桥梁,就是手眼标定要算出来的那个变换矩阵。说白了,就是一组旋转和平移参数。
核心公式(简化版):
机器人抓取位姿 = 手眼矩阵 × 相机检测位姿
其中,手眼矩阵 = 相机坐标系 → 机器人坐标系的刚体变换
我记得有一次在汽车零部件产线上,一个年轻工程师问我:“张工,我直接用尺子量一下相机到机器人法兰盘的距离,填进去不行吗?”
我当时就笑了。理论上可以,但实际中你量不准。相机安装有角度偏差,机器人连杆有挠度,法兰盘加工有公差。你量出来的那点误差,放到几百毫米的臂展上,末端偏差可能直接到毫米级——对于精密装配来说,这就是废品。
所以,手眼标定不是“量”出来的,是“算”出来的。通过数学优化,把各种误差平均掉,得到一个统计意义上的最优解。
1.2 为什么需要手眼标定?
这个问题,我换个角度回答你——没有手眼标定,机器人视觉就是瞎子指路。
具体来说,手眼标定解决了三个核心问题:
- 坐标统一:把相机看到的像素坐标,映射到机器人能执行的物理坐标。
- 误差补偿:消除安装误差、镜头畸变、机器人运动学误差的综合影响。
- 动态跟随:在Eye-in-Hand模式下,让机器人知道“我动的时候,相机看到的工件到底在哪儿”。
我做过一个项目,客户说“我们之前没做标定,也凑合能抓”。我去现场一看,确实能抓——但抓10个掉3个,剩下的还有一半位置偏了。做了手眼标定之后,抓取成功率直接干到99.5%以上。这就是差距。
避坑指南:
我曾经在一个项目中,因为赶工期,手眼标定只做了粗略的9点标定。结果产线一跑起来,工件在视野边缘时,抓取偏差直接飙到5mm。后来老老实实做了全视野的标定采集,偏差降到0.3mm以内。所以——标定精度,直接决定了你的系统能不能用。
1.3 Eye-in-Hand vs Eye-to-Hand 场景选择
这是手眼标定里最基础、也最容易搞混的问题。我见过不少工程师,选错了方案,后面整个项目推倒重来。
先看一张对比图,帮你快速建立直观印象:
好,现在咱们具体聊聊这两种方案怎么选。
Eye-in-Hand(眼在手上)
相机装在机器人末端法兰盘上,跟着机器人一起动。这是最常见的方案。
优点:
- 视野灵活,可以靠近工件,精度高
- 可以多角度观察,适合复杂工件
- 不受机器人遮挡影响
缺点:
- 标定相对复杂(需要求解相机与法兰盘的固定变换)
- 相机线缆需要随机器人运动,容易磨损
- 视野范围有限,大工件需要多次拍照拼接
我的经验:
Eye-in-Hand最适合高精度、小范围、多角度的场景。比如手机零部件装配、PCB插件、精密焊接。我做过一个手机摄像头模组装配项目,用的就是Eye-in-Hand,标定精度做到0.05mm以内。
Eye-to-Hand(眼在手外)
相机固定安装在机器人工作空间上方或侧面,不随机器人运动。
优点:
- 标定相对简单(只需要一次标定)
- 视野覆盖整个工作区域,适合大范围定位
- 相机线缆固定,可靠性高
缺点:
- 容易被机器人本体遮挡
- 距离工件远,精度受限于视野大小
- 无法多角度观察,对工件姿态有限制
避坑指南:
我曾经在一个码垛项目中,客户坚持用Eye-in-Hand。结果因为码垛范围太大(2m×1.5m),相机每次都要移动到不同位置拍照,效率极低。后来换成Eye-to-Hand,一个固定相机覆盖整个区域,效率提升3倍。所以——别盲目追求精度,先看你的工作范围。
如何选择?一张表说清楚
| 对比维度 | Eye-in-Hand | Eye-to-Hand |
|---|---|---|
| 精度 | 高(可近距离拍摄) | 中等(受视野距离限制) |
| 工作范围 | 小(随机器人移动) | 大(固定视野覆盖) |
| 标定复杂度 | 高(需要求解手眼矩阵) | 低(一次标定即可) |
| 遮挡问题 | 无遮挡 | 可能被机器人遮挡 |
| 多角度观察 | 支持 | 不支持 |
| 线缆可靠性 | 低(随动磨损) | 高(固定安装) |
| 典型应用 | 精密装配、焊接、检测 | 码垛、分拣、大范围定位 |
嗯,这里要注意一点:没有的好坏,只有合不合适的场景。我个人的习惯是:
- 如果工件精度要求 < 0.5mm,优先考虑Eye-in-Hand
- 如果工作范围 > 1m²,优先考虑Eye-to-Hand
- 如果两者都有需求,可以考虑混合方案(一个Eye-to-Hand做粗定位,一个Eye-in-Hand做精定位)
本章核心要点:
- 手眼标定 = 求解相机与机器人的坐标变换关系
- 没有标定,视觉引导就是空中楼阁
- Eye-in-Hand:精度高、范围小、标定复杂
- Eye-to-Hand:范围大、精度中等、标定简单
- 选择方案时,先看精度要求和工作范围