4. 手眼标定问题建模:Eye-in-Hand vs Eye-to-Hand、AX=XB方程推导、未知量定义
手眼标定的核心是求解机器人末端执行器(或基座)与相机之间的固定空间变换关系。根据相机安装位置的不同,标定问题分为两种经典构型:Eye-in-Hand(眼在手上)和Eye-to-Hand(眼在手外)。两种构型虽然物理布局不同,但最终都归结为求解同一形式的矩阵方程 AX = XB。
4.1 两种构型对比
| 对比维度 | Eye-in-Hand(眼在手上) | Eye-to-Hand(眼在手外) |
|---|---|---|
| 相机安装位置 | 固定在机器人末端法兰盘上,随机械臂运动 | 固定在工作空间外部,不随机械臂运动 |
| 标定物位置 | 标定板固定在工作空间内(静止) | 标定板固定在机器人末端法兰盘上(随动) |
| 待求变换 | 相机坐标系 → 末端坐标系(X) | 相机坐标系 → 机器人基坐标系(X) |
| 方程形式 | A · X = X · B | A · X = X · B |
| 典型应用 | 移动抓取、焊缝跟踪、装配 | 固定工位视觉定位、大范围检测 |
关键区别:两种构型中,X 的物理含义不同,但方程形式完全一致。Eye-in-Hand 求解的是相机相对于末端的位姿;Eye-to-Hand 求解的是相机相对于机器人基座的位姿。
4.2 坐标系定义与变换链
为统一描述,定义以下坐标系:
- {B} — 机器人基坐标系(Base)
- {E} — 机器人末端坐标系(End-effector)
- {C} — 相机坐标系(Camera)
- {O} — 标定板/目标物坐标系(Object)
每次移动机械臂到不同位姿,记录两组数据:
- 机器人正运动学:末端相对于基座的变换矩阵 TE→B(或 TB→E)
- 相机外参估计:标定板相对于相机的变换矩阵 TO→C
4.3 AX = XB 方程推导
以 Eye-in-Hand 构型为例,推导过程如下:
- 建立闭环约束:从基座 {B} 出发,经过末端 {E}、相机 {C},到达标定板 {O},再回到基座 {B},构成一个闭环。
- 写出变换链:
其中 TE→C 即为待求的 X。TB→E · TE→C · TC→O · TO→B = I - 整理方程:将已知量移到一侧,未知量移到另一侧。取两次不同位姿(i 和 j),消去固定不变的 TO→B,得到:
(TB→Ej)-1 · TB→Ei · X = X · (TC→Oj · (TC→Oi)-1) - 定义 A 和 B:
于是得到经典方程:A · X = X · B。A = (TB→Ej)-1 · TB→Ei B = TC→Oj · (TC→Oi)-1
物理含义:A 表示机器人末端从位姿 i 到位姿 j 的相对运动;B 表示相机观察到的标定板从位姿 i 到位姿 j 的相对运动。方程要求:经过 X 变换后,这两个相对运动应当一致。
4.4 未知量定义与分解
变换矩阵 X 是 4×4 齐次变换矩阵,包含旋转和平移两部分:
X = [ R t ]
[ 0 1 ]
其中:
R ∈ SO(3) — 3×3 旋转矩阵(3 个自由度)
t ∈ ℝ³ — 3×1 平移向量(3 个自由度)
因此,X 共有 6 个自由度(3 旋转 + 3 平移)。方程 AX = XB 可拆解为:
| 分量方程 | 形式 | 自由度 | 说明 |
|---|---|---|---|
| 旋转部分 | RA · R = R · RB | 3 | 先求解旋转矩阵,通常使用轴角、四元数或罗德里格斯公式 |
| 平移部分 | RA · t + tA = R · tB + t | 3 | 旋转解出后,平移为线性方程,可直接求解 |
注意:旋转部分求解是手眼标定的核心难点。由于旋转矩阵的非线性约束(正交性、行列式为 +1),不能直接使用线性最小二乘。常用解法包括:Tsai-Lenz 两步法、Park-Martin 法、基于四元数的线性化方法等。
4.5 方程可解性条件
要唯一确定 X 的 6 个自由度,至少需要:
- 2 组 非退化的运动对(即至少 3 个不同位姿,形成 2 个独立的 A 和 B 对)
- 每次运动的旋转轴不能平行,否则旋转部分欠约束
- 每次运动的平移分量不能全为零,否则平移部分无法求解
4.6 本章小结
- Eye-in-Hand 与 Eye-to-Hand 虽然物理构型不同,但都归结为 AX = XB 方程。
- 方程来源于闭环变换链约束,通过两次不同位姿消去固定变换得到。
- 未知量 X 包含 6 个自由度(3 旋转 + 3 平移),求解时先解旋转再解平移。
- 至少需要 3 个非退化位姿才能唯一确定 X。