4. 手眼标定问题建模:AX=XB 方程推导,Eye-to-Hand vs Eye-in-Hand 的区别与联系
手眼标定的核心是将机器人末端执行器(或机械臂基座)与相机之间的未知空间变换关系,转化为一个数学上可解的矩阵方程。无论采用哪种安装方式,最终都会归结为求解经典的 AX = XB 问题。本节将从运动学约束出发,推导该方程,并深入对比两种标定模式的本质差异。
4.1 问题建模:从运动链到 AX=XB
假设机器人末端执行器(法兰盘)从位姿 A 运动到位姿 B,相机同时观测到标定板(固定在机器人外部)的位姿变化。记:
- Hcam2base:相机坐标系到机器人基坐标系的变换矩阵(待求的 X)。
- Hgripper2base:机器人末端执行器到基坐标系的变换矩阵(从机器人控制器读取)。
- Htarget2cam:标定板(目标)到相机坐标系的变换矩阵(通过相机位姿估计获得)。
对于 Eye-to-Hand 配置,标定板固定在机器人末端执行器上。当机器人运动时,标定板相对于基座标系的位姿保持不变,但相对于相机的位姿会变化。由此可建立闭环约束:
闭环约束关系:
Hgripper2baseA · Htarget2gripper · Hcam2targetA = Hgripper2baseB · Htarget2gripper · Hcam2targetB
Hgripper2baseA · Htarget2gripper · Hcam2targetA = Hgripper2baseB · Htarget2gripper · Hcam2targetB
整理后得到:
(H_gripper2base^B)^(-1) · H_gripper2base^A · H_target2gripper = H_target2gripper · H_cam2target^B · (H_cam2target^A)^(-1)
令:
- A = (Hgripper2baseB)-1 · Hgripper2baseA (机器人末端运动增量)
- B = Hcam2targetB · (Hcam2targetA)-1 (相机观测到的标定板运动增量)
- X = Htarget2gripper (待求的手眼变换矩阵)
即得到标准形式:AX = XB。
关键理解: A 和 B 分别是机器人末端和相机观测到的 相对运动,而非位姿。方程的本质是:机器人末端移动了多少,相机看到的标定板就应该移动相同的量(在不同坐标系下描述)。
4.2 AX=XB 方程的数学结构
每个变换矩阵都是 4×4 的齐次变换矩阵,包含旋转部分 R 和平移部分 t:
X = | R_x t_x |
| 0 1 |
A = | R_a t_a |
| 0 1 |
B = | R_b t_b |
| 0 1 |
将 AX = XB 展开,得到旋转和平移两个子方程:
| 子方程 | 表达式 | 求解方法 |
|---|---|---|
| 旋转部分 | Ra · Rx = Rx · Rb | Tsai 两步法、四元数法、李代数法 |
| 平移部分 | (Ra - I) · tx = Rx · tb - ta | 在旋转解出后,通过线性最小二乘求解 |
旋转方程是 矩阵相似变换 问题,至少需要 两组非平行旋转轴 的运动才能唯一确定 Rx。实际标定中通常采集 15-20 组位姿,通过优化方法求解。
4.3 Eye-to-Hand vs Eye-in-Hand:核心区别
两种配置的物理安装方式不同,导致标定方程中的 X 含义和求解流程存在本质差异。
| 对比维度 | Eye-to-Hand(眼在手外) | Eye-in-Hand(眼在手上) |
|---|---|---|
| 相机安装位置 | 固定在机器人外部(如工作台、天花板) | 固定在机器人末端执行器上 |
| 标定板位置 | 固定在机器人末端执行器上 | 固定在机器人外部(工作台) |
| 待求变换 X | 相机坐标系 → 机器人基坐标系 | 相机坐标系 → 机器人末端坐标系 |
| 运动增量 A | 机器人末端运动增量(基坐标系下) | 机器人末端运动增量(基坐标系下) |
| 运动增量 B | 相机观测到的标定板运动增量 | 相机观测到的标定板运动增量 |
| 标定板是否随动 | 是(固定在末端) | 否(固定在世界坐标系) |
| 典型应用场景 | 抓取、装配、大范围视觉引导 | 精密定位、焊缝跟踪、移动抓取 |
常见误区: 初学者容易混淆两种配置下的 X 含义。在 Eye-to-Hand 中,X 是相机到基座的变换,标定完成后相机看到的物体坐标可直接转换到机器人基坐标系;在 Eye-in-Hand 中,X 是相机到末端的变换,需要结合当前末端位姿才能转换到基坐标系。
4.4 两种配置的方程对比
虽然两种配置都使用 AX = XB 形式,但 A 和 B 的具体构造方式不同:
- Eye-to-Hand:
- A = (Hgripper2baseB)-1 · Hgripper2baseA
- B = Hcam2targetB · (Hcam2targetA)-1
- X = Htarget2gripper(标定板到末端)
- Eye-in-Hand:
- A = (Hgripper2baseB)-1 · Hgripper2baseA
- B = Htarget2camB · (Htarget2camA)-1
- X = Hcam2gripper(相机到末端)
注意:在 Eye-in-Hand 中,标定板固定,因此 Htarget2cam 是相机看到的标定板位姿,其逆矩阵参与运算。
4.5 两种配置的联系与统一性
尽管物理安装不同,两种配置在数学上具有深刻的统一性:
- 方程形式统一: 都归结为 AX = XB,求解算法完全通用。
- 运动约束本质相同: 都是利用机器人运动和相机观测之间的 闭环一致性 来求解未知变换。
- 求解方法互通: Tsai 法、Park-Martin 法、Daniilidis 法等算法可直接应用于两种配置。
- 精度影响因素相似: 机器人定位精度、相机标定精度、特征点提取精度对两种配置的影响规律一致。
工程启示: 理解 AX = XB 的统一性后,可以开发通用的标定软件框架,只需在配置文件中指定相机安装方式,即可自动切换 X 的含义和数据处理流程,大幅提高开发效率。
4.6 标定流程对比总结
| 步骤 | Eye-to-Hand | Eye-in-Hand |
|---|---|---|
| 1. 准备 | 标定板固定在机器人末端 | 标定板固定在工作台 |
| 2. 数据采集 | 移动机器人,记录末端位姿和标定板在相机下的位姿 | 移动机器人,记录末端位姿和标定板在相机下的位姿 |
| 3. 计算 A | 相邻末端位姿的增量 | 相邻末端位姿的增量 |
| 4. 计算 B | 相邻标定板位姿的增量(相机系) | 相邻标定板位姿的增量(相机系) |
| 5. 求解 X | X = Htarget2gripper | X = Hcam2gripper |
| 6. 验证 | 重投影误差、抓取测试 | 重投影误差、定位测试 |
4.7 工程实践要点
选择建议:
- 如果机器人工作空间较大,且需要全局视觉引导,优先选择 Eye-to-Hand。
- 如果任务需要高精度局部定位,或机器人末端需要频繁更换工具,优先选择 Eye-in-Hand。
- 两种配置可以混合使用(如双相机系统),但标定流程需要分别独立进行。