2. 坐标系基础

手眼标定的本质是求解不同坐标系之间的空间变换矩阵。在机器人视觉引导系统中,通常涉及五个核心坐标系:世界坐标系、机器人基坐标系、工具坐标系、相机坐标系和标定板坐标系。理解它们之间的变换关系是进行标定参数优化与精度验证的前提。

2.1 五大坐标系定义与作用

坐标系名称 符号 定义与作用 典型原点位置
世界坐标系 {W} 全局参考系,描述环境中所有物体的位置。通常与机器人基坐标系重合或固定偏移。 用户自定义(如工作台一角)
机器人基坐标系 {B} 固定在机器人底座上的坐标系,是机器人运动学计算的基准。所有关节角度最终映射到此系。 机器人底座安装面中心
工具坐标系 {T} 固定在机器人末端执行器(如夹爪、焊枪)上的坐标系。TCP(工具中心点)在此系中定义。 工具末端中心点
相机坐标系 {C} 以相机光心为原点,Z轴沿光轴指向场景的坐标系。所有图像坐标最终转换到此系。 相机光心
标定板坐标系 {P} 固定在标定板上的坐标系,通常以棋盘格左上角内角点为原点,X/Y轴沿棋盘格边缘。 棋盘格第一个内角点
关键概念: 在机器人视觉中,手眼标定主要求解的是相机坐标系{C}与工具坐标系{T}之间的变换关系(眼在手上),或相机坐标系{C}与机器人基坐标系{B}之间的变换关系(眼在手外)。其他坐标系作为中间桥梁参与计算。

2.2 坐标系变换的数学表示

任意两个坐标系之间的变换关系可以用一个 4×4 齐次变换矩阵 表示,包含旋转分量 R(3×3)和平移分量 t(3×1):

| R   t |
| 0   1 |    其中 R ∈ SO(3), t ∈ ℝ³

常用变换矩阵符号及其含义:

  • ᵇTₜ:从工具坐标系{T}到机器人基坐标系{B}的变换(机器人正向运动学提供)。
  • ᶜTₚ:从标定板坐标系{P}到相机坐标系{C}的变换(通过PnP算法从图像计算得到)。
  • ᵇTₚ:从标定板坐标系{P}到机器人基坐标系{B}的变换(间接计算或外部测量)。
  • ᵇTₜ 与 ᶜTₚ 是手眼标定方程中的已知量,待求量为 ᵗTₜ(眼在手上)或 ᵇTₜ(眼在手外)。

2.3 坐标系变换链与手眼标定方程

在眼在手上(Eye-in-Hand)配置中,相机固定在机器人末端工具上。变换链为:

{P} →ᶜTₚ→ {C} →ᵗTₜ→ {T} →ᵇTₜ→ {B}

由此得到闭环方程:

ᵇTₚ = ᵇTₜ · ᵗTₜ · ᶜTₚ

对于两次不同的机器人位姿(i 和 j),标定板固定不动,则 ᵇTₚ 为常量,消去后得到经典手眼标定方程:

(ᵇTₜⱼ⁻¹ · ᵇTₜᵢ) · ᵗTₜ = ᵗTₜ · (ᶜTₚⱼ · ᶜTₚᵢ⁻¹)

简写为:AX = XB,其中 A 为机器人末端运动,B 为相机观测到的标定板运动,X 为待求的手眼矩阵。

核心洞察: 手眼标定的精度取决于 A 和 B 的测量精度。A 受机器人定位精度影响,B 受相机标定精度和角点提取精度影响。优化参数时,需要同时考虑这两个误差源。

2.4 坐标系变换关系总览(SVG)

下图展示了五个坐标系之间的完整变换关系,以及手眼标定方程中涉及的矩阵路径:

手眼标定坐标系变换关系图 坐标系变换关系与手眼标定方程 世界坐标系 {W} 机器人基坐标系 {B} 工具坐标系 {T} 相机坐标系 {C} 标定板坐标系 {P} 固定偏移 ᵇTₜ(运动学) ᵗTₜ = X (待求) ᶜTₚ(PnP) ᵇTₚ(间接) 📌 眼在手上配置变换链: {P} → ᶜTₚ → {C} → ᵗTₜ → {T} → ᵇTₜ → {B} → 固定偏移 → {W}

2.5 坐标系变换的精度影响因素

每个变换矩阵的精度都会影响最终标定结果。下表总结了各变换的主要误差来源:

变换矩阵 获取方式 主要误差来源 典型误差量级
ᵇTₜ 机器人正向运动学 连杆参数误差、关节零点偏移、齿轮间隙 0.1~1.0 mm
ᶜTₚ PnP 求解(基于相机内参) 相机内参标定误差、角点提取亚像素精度、镜头畸变 0.01~0.1 pixel
ᵗTₜ 手眼标定求解(AX=XB) 上述两个矩阵误差的传递与放大 0.1~0.5 mm
ᵇTₚ 间接计算(ᵇTₜ · ᵗTₜ · ᶜTₚ) 累积误差 0.2~1.5 mm
⚠️ 常见误区: 初学者常误认为手眼标定只与相机和机器人末端有关,而忽略了机器人基坐标系与世界坐标系的对齐。如果世界坐标系与机器人基坐标系之间存在未校准的旋转偏移,将导致整个视觉引导系统的定位偏差。在实际工程中,务必先确认 {W} 与 {B} 的关系。

2.6 眼在手外配置的变换关系

在眼在手外(Eye-to-Hand)配置中,相机固定安装在机器人工作空间上方,不随机器人运动。此时变换链变为:

{P} →ᶜTₚ→ {C} →ᵇTₜ→ {B} →ᵇTₜ⁻¹→ {T}

对应的手眼标定方程为:

ᵇTₜ · ᶜTₚ = ᵇTₚ

其中 ᵇTₜ 为待求的相机到机器人基坐标系的变换矩阵。通过移动机器人到多个位姿,记录 ᵇTₜ(运动学)和 ᶜTₚ(视觉观测),即可求解。

两种配置的选择取决于应用场景:

  • 眼在手上:适合需要跟随工具移动、近距离观察工件的场景(如焊接、装配)。
  • 眼在手外:适合大范围全局定位、工具遮挡少的场景(如码垛、分拣)。

2.7 坐标系变换的工程实践要点

  1. 统一单位:所有变换矩阵中的平移分量必须使用相同单位(通常为毫米)。
  2. 旋转表示一致性:在计算过程中,统一使用旋转矩阵或四元数,避免欧拉角带来的万向锁问题。
  3. 数据记录:每次采集数据时,同步记录机器人位姿(ᵇTₜ)和标定板位姿(ᶜTₚ),确保时间戳对齐。
  4. 冗余观测:至少采集 10~15 组不同位姿的数据,覆盖机器人工作空间的不同区域和姿态。
  5. 验证闭环:标定完成后,使用一组未参与标定的测试数据,计算重投影误差或三维定位误差。
实践建议: 在开始手眼标定之前,先用一张简单的棋盘格图像验证相机内参标定精度(重投影误差 < 0.1 pixel),再用机器人示教器验证运动学精度(末端位置重复性 < 0.05 mm)。这两个前置步骤能显著提高手眼标定的成功率。