一、手眼标定概述:让机器人真正“看见”世界
各位工程师朋友,咱们今天聊聊手眼标定。说实话,我入行头两年,一直觉得这玩意儿就是个“校准工具”,后来踩了坑才明白——手眼标定,其实是给机器人装上“眼睛”和“手”之间的坐标桥梁。
1.1 什么是手眼标定?
简单说,手眼标定就是求解相机坐标系与机器人末端(或基座)坐标系之间的变换关系。你想想看,相机看到物体在图像里的位置,机器人要抓取它,得知道这个物体在机器人坐标系下到底在哪。没有标定,相机看到的和机器人抓的,就是两个世界。
我个人习惯把这个问题拆成两类:
- Eye-to-Hand(眼在手外):相机固定安装,不随机器人运动。标定的是相机到机器人基座的变换。
- Eye-in-Hand(眼在手上):相机装在机器人末端,跟着一起动。标定的是相机到机器人末端的变换。
我在项目里遇到过不少新人,上来就问“哪种标定更准?”其实没有答案,关键看应用场景。后面我会详细对比。
核心公式(经典 AX = XB):
对于 Eye-in-Hand,A 是机器人末端的两次位姿变换,B 是相机两次观测的位姿变换,X 就是我们要找的手眼矩阵。解这个方程,就是手眼标定的数学本质。
1.2 为什么需要手眼标定?
说白了,没有标定,机器人的“眼睛”和“手”就是各干各的。我刚开始做视觉引导抓取时,相机明明拍到了工件,机器人伸过去却抓了个空。后来一查,标定误差差了 5 毫米。嗯,5 毫米在工业现场,可能就是一次撞机事故。
具体来说,手眼标定解决三个核心问题:
- 坐标统一:把相机看到的像素坐标,转换到机器人能理解的物理坐标。
- 精度保障:消除安装误差、镜头畸变、机器人运动学误差带来的累积偏差。
- 动态补偿:对于 Eye-in-Hand,机器人移动时,相机视野变化,标定矩阵能实时补偿这种变化。
避坑指南:我曾经见过一个项目,标定板贴歪了 0.5 度,结果整个产线抓取偏了 2 厘米。所以标定前的硬件安装,一定要用水平仪和激光对中仪检查。别偷懒,省这一步后面全是坑。
1.3 手眼标定的应用场景
手眼标定不是实验室里的玩具,它在工业现场到处都是。我挑三个最常见的场景聊聊。
1.3.1 抓取(Pick & Place)
这是最典型的应用。相机识别工件位置和姿态,机器人根据标定结果去抓取。我做过一个 3C 产线的项目,手机中框抓取,要求重复定位精度 ±0.1mm。没有手眼标定,根本不可能。
1.3.2 装配(Assembly)
装配比抓取更苛刻。比如汽车发动机活塞装配,不光要位置对,角度也得对。手眼标定在这里不仅要解平移,还要解旋转。我记得有一次做精密装配,标定矩阵的旋转部分差了 0.01 弧度,结果活塞死活插不进去。
1.3.3 焊接(Welding)
焊接路径规划依赖视觉引导。焊缝跟踪时,相机实时检测焊缝位置,机器人末端要精确跟随。这里手眼标定的实时性要求很高,标定误差会直接导致焊偏或焊穿。
| 应用场景 | 精度要求 | 标定难点 | 常见问题 |
|---|---|---|---|
| 抓取 | ±0.1 ~ ±1 mm | 工件种类多,换型频繁 | 标定板磨损导致精度下降 |
| 装配 | ±0.01 ~ ±0.1 mm | 旋转误差敏感,需六自由度标定 | 机器人运动学误差耦合 |
| 焊接 | ±0.5 ~ ±2 mm | 高温、烟尘干扰视觉 | 标定后需定期校验 |
个人经验:做焊接标定时,我建议在标定板周围加装气吹和隔热罩。不然标定做一半,板子热变形了,数据全废。
1.4 手眼标定的知识体系框架
为了让大家有个整体认知,我画了一张图。这张图把本章的核心知识点串起来了:从问题定义,到两种配置,再到数学本质,最后落到应用场景。
这张图你看懂了吗?从上到下,从左到右,就是手眼标定的完整知识脉络。后面几章,我们会沿着这个框架一步步深入。
本章小结:
- 手眼标定解决的是相机与机器人之间的坐标变换问题。
- 分为 Eye-to-Hand 和 Eye-in-Hand 两种配置,各有优劣。
- 核心数学是求解 AX = XB 方程。
- 应用覆盖抓取、装配、焊接等主流工业场景。