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

整理后得到:

(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 是相机看到的标定板位姿,其逆矩阵参与运算。

AX = XB 方程推导流程(Eye-to-Hand 示例) ① 采集 N 组位姿 读取 H_gripper2base 估计 H_cam2target ② 计算 A (H_gripper^B)^(-1)·H_gripper^A ③ 计算 B H_cam^B·(H_cam^A)^(-1) ④ AX = XB 求解 X ⑤ 输出 X 说明: • 至少需要 2 组非平行旋转轴的运动才能唯一求解旋转部分。 • 实际标定建议采集 15-20 组位姿,覆盖不同姿态和位置。 • 求解方法包括 Tsai 两步法、四元数法、李代数优化法等。

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. 验证 重投影误差、抓取测试 重投影误差、定位测试
Eye-to-Hand vs Eye-in-Hand 结构对比 Eye-to-Hand(眼在手外) 机器人基座 末端执行器 标定板 相机 X Eye-in-Hand(眼在手上) 机器人基座 末端执行器 相机 标定板 X 左:标定板随末端运动,相机固定 → X = 相机到基座;右:相机随末端运动,标定板固定 → X = 相机到末端

4.7 工程实践要点

选择建议:
  • 如果机器人工作空间较大,且需要全局视觉引导,优先选择 Eye-to-Hand。
  • 如果任务需要高精度局部定位,或机器人末端需要频繁更换工具,优先选择 Eye-in-Hand。
  • 两种配置可以混合使用(如双相机系统),但标定流程需要分别独立进行。