1. 手眼标定概述:什么是手眼标定?为什么需要手眼标定?手眼标定的应用场景
大家好,我是老张。做机器视觉这行十几年了,今天咱们聊聊手眼标定。
很多刚入行的朋友问我:“张工,手眼标定到底是什么?为什么我做个视觉定位,非得折腾这一步?”
嗯,这个问题问得好。咱们先从一个场景说起。
1.1 什么是手眼标定?
想象一下,你闭着眼睛去拿桌上的水杯。你的手能准确摸到杯子,是因为你的眼睛看到了杯子的位置,然后大脑计算出手臂该往哪个方向移动、移动多少距离。
机器人的“手眼标定”,干的就是同样的事。
说白了,手眼标定就是建立相机坐标系与机器人坐标系之间的数学关系。让机器人知道:相机看到的那个点,在我的手臂坐标系里到底在哪儿。
核心定义:手眼标定求解的是相机与机器人末端(或基座)之间的刚体变换矩阵,即旋转矩阵 R 和平移向量 t。
这个变换矩阵,通常用 4×4 的齐次矩阵表示:
| R t |
T = | 0 1 |
其中 R 是 3×3 旋转矩阵,t 是 3×1 平移向量。
我个人习惯把标定结果想象成一把“尺子”。这把尺子告诉机器人:相机看到的坐标,乘以这个矩阵,就变成了机器人能理解的坐标。
1.2 为什么需要手眼标定?
你可能会问:“我把相机装在机器人上,直接测不就行了?”
没那么简单。原因有三:
- 坐标系不统一:相机看到的是像素坐标(或毫米坐标),机器人用的是关节角度或笛卡尔坐标。两套语言,需要翻译。
- 安装误差:相机装上去,不可能平行、对中。哪怕偏了 0.1 度,在远距离上误差会被放大。
- 运动学模型不完美:机器人本身的连杆参数有公差,齿轮有回差。这些都会累积成定位误差。
我曾经踩过的坑:有个项目,相机装在机器人末端,用来抓取流水线上的工件。我偷懒没做手眼标定,直接拿设计图纸上的安装尺寸算位置。结果呢?前三个工件抓得挺好,第四个直接撞飞了。后来一查,机器人臂展长了 2mm,加上相机安装偏了 0.5°,累积误差到了 8mm。从那以后,我再也不敢跳过手眼标定。
所以,手眼标定不是可选项,而是必选项。它直接决定了视觉引导的精度和稳定性。
1.3 手眼标定的应用场景
手眼标定在工业现场随处可见。我列几个典型的:
| 应用场景 | 典型任务 | 标定方式 |
|---|---|---|
| 抓取与码垛 | 从料箱中抓取工件,码放到托盘 | 眼在手外(Eye-to-Hand) |
| 装配与对位 | 将零件插入指定孔位 | 眼在手上(Eye-in-Hand) |
| 焊接与涂胶 | 沿焊缝或轨迹运动 | 眼在手上(Eye-in-Hand) |
| 检测与测量 | 在机器人运动过程中检测产品尺寸 | 眼在手外(Eye-to-Hand) |
| 移动机器人导航 | AGV/AMR 视觉定位 | 眼在车上(类似眼在手外) |
你想想看,这些场景有一个共同点:视觉系统必须告诉机器人“去哪儿”。没有手眼标定,视觉给出的坐标就是“空中楼阁”,机器人根本没法执行。
1.4 两种经典配置:眼在手上 vs 眼在手外
做手眼标定之前,先搞清楚你的相机装在哪。这决定了标定的数学模型和流程。
眼在手上(Eye-in-Hand)
相机固定在机器人末端(法兰盘上)。相机跟着机器人一起动。
- 优点:视野灵活,可以靠近工件看细节;标定精度高。
- 缺点:相机线缆需要随动,容易磨损;标定过程需要移动机器人。
- 典型场景:精密装配、焊缝跟踪。
眼在手外(Eye-to-Hand)
相机固定在机器人外部(支架、天花板、地面)。相机不动,机器人动。
- 优点:视野固定,便于全局监控;相机线缆固定,可靠性高。
- 缺点:容易被机器人本体遮挡;标定精度受限于视野范围。
- 典型场景:料箱抓取、码垛、大范围检测。
我的建议:如果项目对精度要求极高(比如 0.1mm 以内),优先选眼在手上。如果项目对节拍要求高、工件位置变化大,眼在手外更合适。当然,也有混合方案——两个相机,一个在手上,一个在手外,互相补位。
1.5 手眼标定的知识体系
为了让你对整个章节有个全局认识,我画了一张图。这张图涵盖了手眼标定的核心知识模块:
这张图把本章的核心内容串起来了。从定义到方法,从配置到工具,你跟着这个框架走,就不会迷路。
1.6 本章小结
咱们捋一下今天的内容:
- 手眼标定就是建立相机与机器人之间的坐标变换关系。
- 为什么需要?因为坐标系不统一、安装有误差、机器人有公差。
- 应用场景覆盖了抓取、装配、焊接、检测等几乎所有机器人视觉任务。
- 两种配置:眼在手上和眼在手外,各有优劣,按需选择。
一句话记住:没有手眼标定,视觉系统就是“睁眼瞎”,机器人就是“盲人摸象”。两者必须通过标定“握手”,才能协同工作。