4. 手眼标定问题建模

手眼标定的核心是求解机器人末端执行器(或基座)与相机坐标系之间的空间变换关系。根据相机安装位置的不同,标定问题分为两种经典构型:眼在手外(Eye-to-Hand)和眼在手上(Eye-in-Hand)。两种构型的数学模型均基于齐次变换矩阵的闭环约束,但求解的目标矩阵和坐标链不同。

4.1 眼在手外(Eye-to-Hand)数学模型

在 Eye-to-Hand 构型中,相机固定安装在机器人工作空间之外,不随机器人运动。标定板(或特征物体)安装在机器人末端法兰盘上。相机观察标定板,同时记录机器人关节角度,从而建立约束方程。

核心思想: 相机坐标系到机器人基座坐标系的变换矩阵 X 是固定不变的,通过机器人末端在不同位姿下拍摄标定板,构建闭环方程 AX = XB。

4.1.1 坐标链与符号定义

定义以下齐次变换矩阵(4×4):

  • B:机器人基座坐标系(Base)
  • E:机器人末端法兰盘坐标系(End-effector)
  • C:相机坐标系(Camera)
  • P:标定板坐标系(Pattern/Calibration Object)

在 Eye-to-Hand 中,待求解的未知矩阵为 X = BTC(相机到机器人基座的变换)。已知量包括:

  • A = BTE:机器人正运动学给出的末端到基座的变换(随关节角变化)。
  • B = CTP:相机观测标定板得到的标定板到相机的变换(通过PnP或3D配准获得)。

4.1.2 闭环约束方程推导

对于机器人两个不同的位姿 i 和 j,标定板固定在末端上,因此标定板在机器人基座下的坐标是固定的(但未知)。通过坐标链传递,可以得到:

# 位姿 i 下的坐标链
<sup>B</sup>T<sub>P</sub> = <sup>B</sup>T<sub>E_i</sub> · <sup>E_i</sup>T<sub>P</sub>

# 位姿 j 下的坐标链
<sup>B</sup>T<sub>P</sub> = <sup>B</sup>T<sub>E_j</sub> · <sup>E_j</sup>T<sub>P</sub>

# 由于标定板固定在末端,<sup>E</sup>T<sub>P</sub> 是常数矩阵(记为 M)
# 同时,相机观测给出 <sup>C</sup>T<sub>P</sub>,而 <sup>B</sup>T<sub>C</sub> = X 是未知常数
# 因此:<sup>B</sup>T<sub>P</sub> = X · <sup>C</sup>T<sub>P</sub>

# 联立两个位姿,消去常数 M 和 <sup>B</sup>T<sub>P</sub>,得到:
A_i · M = X · B_i
A_j · M = X · B_j

# 两式相减消去 M,得到经典 AX = XB 形式:
(A_j⁻¹ · A_i) · X = X · (B_j⁻¹ · B_i)

令 A = Aj⁻¹ · Ai,B = Bj⁻¹ · Bi,则方程简化为:

Eye-to-Hand 核心方程: A · X = X · B
其中 A 是机器人末端运动的相对变换,B 是相机观测标定板的相对变换,X 是待求的相机到基座变换。

4.2 眼在手上(Eye-in-Hand)数学模型

在 Eye-in-Hand 构型中,相机固定在机器人末端法兰盘上,随机器人一起运动。标定板固定放置在机器人工作空间中的某个位置。相机随末端运动,在不同位姿下拍摄同一块固定标定板。

核心思想: 相机坐标系到末端法兰盘坐标系的变换矩阵 X 是固定不变的,通过机器人运动到不同位姿拍摄固定标定板,构建闭环方程 AX = XB(形式相同,但矩阵含义不同)。

4.2.1 坐标链与符号定义

同样使用上述坐标系定义,但待求解的未知矩阵变为 X = ETC(相机到末端法兰盘的变换)。已知量包括:

  • A = BTE:机器人正运动学给出的末端到基座的变换。
  • B = CTP:相机观测固定标定板得到的标定板到相机的变换。

4.2.2 闭环约束方程推导

对于两个不同位姿 i 和 j,标定板固定在机器人基座坐标系下(位置固定)。通过坐标链:

# 位姿 i 下,标定板在基座下的坐标
<sup>B</sup>T<sub>P</sub> = <sup>B</sup>T<sub>E_i</sub> · <sup>E_i</sup>T<sub>C</sub> · <sup>C_i</sup>T<sub>P</sub>

# 位姿 j 下,标定板在基座下的坐标
<sup>B</sup>T<sub>P</sub> = <sup>B</sup>T<sub>E_j</sub> · <sup>E_j</sup>T<sub>C</sub> · <sup>C_j</sup>T<sub>P</sub>

# 由于标定板固定,<sup>B</sup>T<sub>P</sub> 是常数;<sup>E</sup>T<sub>C</sub> = X 是未知常数
# 两式相等,消去 <sup>B</sup>T<sub>P</sub>,得到:
A_i · X · B_i = A_j · X · B_j

# 整理成 AX = XB 形式:
(A_j⁻¹ · A_i) · X = X · (B_j · B_i⁻¹)

令 A = Aj⁻¹ · Ai,B = Bj · Bi⁻¹,则方程同样简化为:

Eye-in-Hand 核心方程: A · X = X · B
其中 A 是机器人末端运动的相对变换,B 是相机观测标定板的相对变换(注意与 Eye-to-Hand 中 B 的定义顺序相反),X 是待求的相机到末端变换。

4.3 两种构型的对比分析

对比维度 眼在手外(Eye-to-Hand) 眼在手上(Eye-in-Hand)
相机安装位置 固定在工作空间外 固定在机器人末端
标定板安装位置 固定在机器人末端 固定在工作空间内
待求解矩阵 X BTC(相机→基座) ETC(相机→末端)
方程形式 A · X = X · B A · X = X · B
A 矩阵含义 末端运动的相对变换 末端运动的相对变换
B 矩阵含义 相机观测标定板的相对变换(Bj⁻¹·Bi) 相机观测标定板的相对变换(Bj·Bi⁻¹)
标定板是否随动 是(随末端运动) 否(固定不动)
典型应用场景 固定视觉引导、全局定位 移动抓取、末端视觉伺服

4.4 两种构型的坐标链示意图

下图展示了两种构型的坐标链传递关系,帮助理解方程中各个矩阵的物理含义。

Eye-to-Hand 与 Eye-in-Hand 坐标链对比 Eye-to-Hand(眼在手外) 基座 B 末端 E 标定板 P 相机 C A = BTE M = ETP X = BTC B = CTP Eye-in-Hand(眼在手上) 基座 B 末端 E 相机 C 标定板 P A = BTE X = ETC B = CTP 固定 BTP

4.5 方程求解的数学本质

无论是 Eye-to-Hand 还是 Eye-in-Hand,最终都归结为求解矩阵方程 AX = XB。该方程中 A、B、X 均为 4×4 齐次变换矩阵,包含旋转部分 R 和平移部分 t:

X = | R_x   t_x |
    | 0^T   1  |

A = | R_a   t_a |
    | 0^T   1  |

B = | R_b   t_b |
    | 0^T   1  |

将上述分块代入 AX = XB,可拆解为旋转方程和平移方程:

旋转部分:R_a · R_x = R_x · R_b
平移部分:R_a · t_x + t_a = R_x · t_b + t_x

求解策略通常分为两步:

  1. 先求解旋转矩阵 Rx:利用旋转方程 Ra · Rx = Rx · Rb,通过轴角表示或四元数方法求解。
  2. 再求解平移向量 tx:将求得的 Rx 代入平移方程,转化为线性方程组求解。
注意事项: 方程 AX = XB 的解存在唯一性条件要求至少两组非平行的旋转运动。实际标定中通常采集 15~20 组位姿数据,通过最小二乘或非线性优化获得鲁棒解。若机器人运动自由度不足或相机观测噪声过大,可能导致解不稳定。

4.6 两种构型的求解流程对比

下表总结了两种构型在实际标定中的操作流程差异:

步骤 Eye-to-Hand 操作 Eye-in-Hand 操作
1. 准备 标定板固定在机器人末端 标定板固定在工作空间内
2. 数据采集 机器人运动到 N 个位姿,记录关节角 + 相机拍摄标定板 机器人运动到 N 个位姿,记录关节角 + 相机拍摄标定板
3. 计算 A 正运动学计算 BTE,再计算相对变换 A = Aj⁻¹·Ai 正运动学计算 BTE,再计算相对变换 A = Aj⁻¹·Ai
4. 计算 B PnP 求解 CTP,再计算 B = Bj⁻¹·Bi PnP 求解 CTP,再计算 B = Bj·Bi⁻¹
5. 求解 X 求解 AX = XB,得到 BTC 求解 AX = XB,得到 ETC
6. 验证 重投影误差或3D点距离误差 重投影误差或3D点距离误差

4.7 两种构型的求解流程示意图

下图以流程图形式对比两种构型的数据处理与求解步骤:

Eye-to-Hand 与 Eye-in-Hand 求解流程对比 Eye-to-Hand 流程 ① 标定板固定在末端,相机固定 ② 运动 N 个位姿,采集关节角+图像 ③ 正运动学 → A = Aj⁻¹·Ai ④ PnP → B = Bj⁻¹·Bi ⑤ 求解 AX=XB → X = BTC ⑥ 重投影误差验证 Eye-in-Hand 流程 ① 标定板固定,相机固定在末端 ② 运动 N 个位姿,采集关节角+图像 ③ 正运动学 → A = Aj⁻¹·Ai ④ PnP → B = Bj·Bi⁻¹ ⑤ 求解 AX=XB → X = ETC ⑥ 重投影误差验证

4.8 关键总结

  • 统一方程形式: 两种构型均归结为 AX = XB 矩阵方程,但 A、B、X 的物理含义不同。
  • B 矩阵定义差异: Eye-to-Hand 中 B = Bj⁻¹·Bi,Eye-in-Hand 中 B = Bj·Bi⁻¹,注意顺序不可混淆。
  • 求解策略一致: 先解旋转再解平移,可采用 Tsai-Lenz、Park-Martin 或非线性优化等方法。
  • 数据要求: 至少两组非平行旋转运动,实际建议 15~20 组位姿以保证解的唯一性和鲁棒性。
  • 误差来源: 机器人运动学误差、相机标定误差、PnP 求解误差、标定板制造误差等均会影响最终标定精度。