2. 机器人基础:坐标系与变换
在 Eye-in-Hand 标定中,机器人坐标系与齐次变换矩阵是描述相机与机器人之间空间关系的数学基础。本节系统梳理机器人常用的坐标系定义、齐次变换矩阵的构成、旋转矩阵的几何意义以及欧拉角的表示方法。
2.1 机器人坐标系体系
工业机器人通常定义以下四种核心坐标系,它们构成了机器人运动学与标定计算的参考框架:
| 坐标系名称 | 符号 | 原点位置 | 用途 |
|---|---|---|---|
| 基座坐标系 | {B} 或 {0} | 机器人安装基座中心 | 全局参考系,定义机器人工作空间 |
| 关节坐标系 | {Ji} | 各关节轴中心 | 描述关节角度与连杆运动 |
| 工具坐标系 | {T} 或 {E} | 机器人法兰盘或工具末端 | 定义工具(如相机、夹爪)的位姿 |
| 用户坐标系 | {U} | 用户自定义工作台或工件 | 简化编程,使运动相对于工件 |
标定要点: Eye-in-Hand 标定中,相机固定在机器人工具末端,因此相机坐标系 {C} 与工具坐标系 {T} 之间存在固定的齐次变换关系,这是标定求解的核心未知量。
2.2 齐次变换矩阵
齐次变换矩阵 T 是 4×4 矩阵,用于统一描述坐标系之间的旋转与平移变换:
T = [ R t ]
[ 0 1 ]
其中:
R —— 3×3 旋转矩阵
t —— 3×1 平移向量
0 —— 1×3 零向量
齐次变换矩阵的逆矩阵可直接用于坐标系反向变换:
T⁻¹ = [ Rᵀ -Rᵀ·t ]
[ 0 1 ]
在机器人标定中,常用链式变换描述从基座到相机的位姿关系:
T_base_to_camera = T_base_to_tool · T_tool_to_camera
2.3 旋转矩阵
旋转矩阵 R 是 3×3 正交矩阵,满足 RᵀR = I 且 det(R) = +1。它描述了一个坐标系相对于另一个坐标系的姿态。
绕三个坐标轴的基本旋转矩阵:
| 旋转轴 | 旋转矩阵(角度 θ) |
|---|---|
| 绕 X 轴 | Rx(θ) = [[1, 0, 0], [0, cosθ, -sinθ], [0, sinθ, cosθ]] |
| 绕 Y 轴 | Ry(θ) = [[cosθ, 0, sinθ], [0, 1, 0], [-sinθ, 0, cosθ]] |
| 绕 Z 轴 | Rz(θ) = [[cosθ, -sinθ, 0], [sinθ, cosθ, 0], [0, 0, 1]] |
旋转矩阵性质: 旋转矩阵的列向量是原坐标系各轴在新坐标系中的单位方向向量;行向量是新坐标系各轴在原坐标系中的单位方向向量。
2.4 欧拉角
欧拉角用三个角度(α, β, γ)表示旋转,常见的有 ZYX 顺序(即绕固定轴依次旋转 Z→Y→X)和 ZYZ 顺序。工业机器人常用 ZYX 欧拉角(也称为 RPY 角:Roll、Pitch、Yaw)。
ZYX 欧拉角定义:
- Yaw(偏航角 γ): 绕 Z 轴旋转
- Pitch(俯仰角 β): 绕 Y 轴旋转
- Roll(横滚角 α): 绕 X 轴旋转
从 ZYX 欧拉角到旋转矩阵的转换:
R(α, β, γ) = Rz(γ) · Ry(β) · Rx(α)
注意: 欧拉角存在万向锁问题(当 β = ±90° 时,α 和 γ 的旋转轴重合,丢失一个自由度)。在标定计算中,建议优先使用旋转矩阵或四元数进行插值与优化,避免直接使用欧拉角进行数值求解。
2.5 坐标系变换关系图
下图展示了 Eye-in-Hand 系统中各坐标系之间的变换关系:
2.6 坐标系变换链与标定方程
在 Eye-in-Hand 系统中,完整的变换链可表示为:
T_base_to_camera = T_base_to_tool · T_tool_to_camera
其中:
T_base_to_tool —— 由机器人正运动学计算得出(已知)
T_tool_to_camera —— 相机相对于工具末端的固定变换(待标定)
T_base_to_camera —— 相机在基座坐标系下的位姿(通过观测标定板间接获得)
标定过程通过移动机器人到多个位姿,建立约束方程求解 T_tool_to_camera:
对于第 i 个位姿:
T_base_to_camera_i = T_base_to_tool_i · X
其中 X = T_tool_to_camera 为待求的固定变换矩阵。
核心公式: 通过至少两组不同位姿的观测数据,可以构建形如 AX = XB 的经典手眼标定方程,其中 A 为工具运动变换,B 为相机运动变换,X 为待标定的手眼变换矩阵。
2.7 旋转矩阵与欧拉角互转
在实际编程中,经常需要在旋转矩阵与欧拉角之间进行转换。以下给出 ZYX 欧拉角与旋转矩阵的互转公式:
欧拉角 → 旋转矩阵:
R = Rz(γ) · Ry(β) · Rx(α)
其中:
Rz(γ) = [[cosγ, -sinγ, 0], [sinγ, cosγ, 0], [0, 0, 1]]
Ry(β) = [[cosβ, 0, sinβ], [0, 1, 0], [-sinβ, 0, cosβ]]
Rx(α) = [[1, 0, 0], [0, cosα, -sinα], [0, sinα, cosα]]
旋转矩阵 → 欧拉角:
设 R = [[r11, r12, r13],
[r21, r22, r23],
[r31, r32, r33]]
β = atan2(-r31, sqrt(r11² + r21²))
α = atan2(r32/cosβ, r33/cosβ) (当 cosβ ≠ 0)
γ = atan2(r21/cosβ, r11/cosβ) (当 cosβ ≠ 0)
数值稳定性: 当 cosβ ≈ 0 时(即 β ≈ ±90°),上述公式出现奇异。此时应使用四元数或旋转矩阵直接参与计算,避免欧拉角转换带来的精度损失。
2.8 坐标系变换在标定中的应用
下表总结了各坐标系变换在 Eye-in-Hand 标定中的具体作用:
| 变换关系 | 已知/未知 | 获取方式 | 标定中的作用 |
|---|---|---|---|
| Tbase→tool | 已知 | 机器人正运动学 | 提供工具末端位姿 |
| Ttool→camera | 未知 | 手眼标定求解 | 标定的核心输出 |
| Tbase→camera | 间接已知 | 通过标定板观测 | 建立约束方程 |
| Tcamera→calib | 已知 | 相机内参 + 外参估计 | 提供标定板在相机下的位姿 |
通过本节的学习,您应掌握机器人坐标系的基本定义、齐次变换矩阵的构造与运算、旋转矩阵的几何意义以及欧拉角的表示与转换方法。这些知识是后续进行 Eye-in-Hand 标定方程推导与求解的数学基础。