1. 标定基础回顾
各位同学,咱们正式开始这门课之前,先把最基础的东西夯实一下。手眼标定,说白了就是解决一个数学方程:AX = XB。
我第一次接触这个方程的时候,觉得它挺简单,不就是个矩阵求解嘛。后来在产线上调试机器人,才发现这里面坑多得很。今天咱们就把这个方程和背后的坐标系变换原理,彻底讲透。
1.1 手眼标定到底在解决什么问题?
想象一下这个场景:你有一个机器人,末端装了一个相机。机器人移动到一个位置,拍了一张照片,识别出工件的位置。现在问题来了——相机看到的坐标,怎么换算成机器人能用的坐标?
这就是手眼标定的核心任务:建立相机坐标系和机器人末端坐标系之间的固定变换关系。
核心概念:手眼标定求解的是一个固定的齐次变换矩阵 X,它描述了相机坐标系相对于机器人末端坐标系的位姿(位置+姿态)。
我习惯把这个矩阵 X 理解为“翻译官”。相机说“工件在我前方10厘米”,X 就把这句话翻译成机器人能听懂的“工件在末端前方10厘米”。
1.2 AX=XB 方程的由来
为什么是 AX=XB?咱们一步步推导一下。
假设机器人从位姿 A₁ 移动到 A₂,相机从位姿 B₁ 移动到 B₂。注意,这里的 A 和 B 描述的是同一个物体在不同坐标系下的变换。
- A:机器人末端坐标系相对于机器人基座坐标系的变换(机器人控制器直接给出)
- B:标定板坐标系相对于相机坐标系的变换(通过相机标定得到)
- X:相机坐标系相对于机器人末端坐标系的变换(这就是我们要解的)
那么,从位姿1到位姿2,存在一个闭环关系:
A₁ · X · B₁⁻¹ = A₂ · X · B₂⁻¹
整理一下,就得到了经典方程:
A₂⁻¹ · A₁ · X = X · B₂⁻¹ · B₁
令 A = A₂⁻¹ · A₁,B = B₂⁻¹ · B₁,就得到:
A · X = X · B
我的经验:在实际项目中,我建议至少采集15-20组不同位姿的数据。太少的话,方程容易退化,解出来的 X 精度很差。我曾经吃过这个亏,只拍了8组数据,结果标定误差大得离谱。
1.3 坐标系变换原理
要理解 AX=XB,必须先搞懂坐标系变换。这里我快速过一下核心概念。
1.3.1 齐次变换矩阵
一个 4×4 的齐次变换矩阵 T 包含两部分:
| 组成部分 | 符号 | 含义 | 维度 |
|---|---|---|---|
| 旋转矩阵 | R | 描述两个坐标系之间的姿态关系 | 3×3 |
| 平移向量 | t | 描述两个坐标系之间的位置关系 | 3×1 |
T = [ R t ]
[ 0 1 ]
其中 R 是正交矩阵(RᵀR = I),t 是平移向量。最后一行固定为 [0 0 0 1]。
1.3.2 变换的链式法则
坐标系变换可以串联。比如:
T_cam_to_base = T_end_to_base · T_cam_to_end
这个公式的意思是:从相机坐标系到机器人基座坐标系的变换,等于先做末端到基座的变换,再做相机到末端的变换。
注意顺序:矩阵乘法不满足交换律!T₁ · T₂ 和 T₂ · T₁ 是完全不同的。我见过不少新手在这里搞反,标定结果一塌糊涂。
1.4 手眼标定的两种常见配置
根据相机安装位置不同,分为两种:
| 配置类型 | 相机安装位置 | 特点 | 典型应用 |
|---|---|---|---|
| Eye-in-Hand | 固定在机器人末端 | 相机随机器人移动,视野灵活 | 抓取、装配、焊接 |
| Eye-to-Hand | 固定在工作空间外 | 相机不动,视野固定 | 检测、定位、码垛 |
这两种配置对应的 AX=XB 形式略有不同,但本质是一样的。咱们这门课主要讲 Eye-in-Hand,因为它在工业机器人中更常见,标定难度也更大。
1.5 知识体系总览
下面这张图把本章的核心知识点串起来了。你仔细看看,心里有个框架。
1.6 避坑指南:新手最容易犯的三个错误
做手眼标定这么多年,我总结出三个最常见的坑:
- 数据量不够:少于10组位姿,方程容易奇异。我建议至少15组,而且位姿要多样化,不要都在同一个区域转。
- 标定板精度不够:用打印的棋盘格?注意纸张变形。我习惯用陶瓷或玻璃基底的标定板,热稳定性好。
- 忽略机器人运动学误差:机器人本身的定位精度会影响标定结果。如果条件允许,先用激光跟踪仪标定机器人。
我曾经踩过的坑:有一次在产线上做 Eye-in-Hand 标定,采集了20组数据,解出来的 X 矩阵看起来没问题,但实际抓取总是偏2-3毫米。查了两天才发现,是机器人末端法兰的安装平面有0.1度的倾斜。从那以后,我每次标定前都会先检查机器人的机械状态。
1.7 本章小结
咱们这一章把基础打牢了:
- 手眼标定的本质是求解 AX=XB
- X 矩阵是相机到机器人末端的齐次变换矩阵
- 坐标系变换遵循链式法则,注意乘法顺序
- 两种配置(Eye-in-Hand / Eye-to-Hand)各有适用场景