3、刚体变换与齐次矩阵:旋转矩阵、平移向量、齐次变换矩阵(4x4)、欧拉角与四元数简介

在3D视觉手眼标定中,机器人末端与相机之间的空间关系本质上是刚体变换。刚体变换只包含旋转和平移,不改变物体的形状和大小。理解并熟练运用旋转矩阵、平移向量、齐次变换矩阵、欧拉角和四元数,是进行标定计算的基础。

3.1 旋转矩阵

旋转矩阵是一个3x3的正交矩阵(RTR = I,行列式为+1),用于描述一个坐标系相对于另一个坐标系的姿态。矩阵的每一列代表原坐标系轴在目标坐标系中的方向向量。

属性 说明
维度 3 x 3
自由度 3(绕X、Y、Z轴的旋转角度)
约束 正交矩阵(RTR = I),行列式 = +1
逆矩阵 R-1 = RT(转置即逆)
组合 连续旋转可通过矩阵乘法实现:R总 = R2 · R1
标定现场要点: 旋转矩阵是连续且无奇异的,但9个参数存在6个约束,直接用于优化求解时效率较低,通常作为中间表示或最终结果输出。

3.2 平移向量

平移向量是一个3x1的列向量 t = [tx, ty, tz]T,表示一个坐标系原点在另一个坐标系中的位置偏移。在标定中,它描述了相机光心相对于机器人末端法兰盘中心(或基座)的物理距离。

3.3 齐次变换矩阵(4x4)

为了将旋转和平移统一在一个线性框架下,引入了4x4齐次变换矩阵。它将3D点表示为齐次坐标 [x, y, z, 1]T,使得复合变换可以通过矩阵乘法链式完成。

齐次变换矩阵 T 的结构:
    ┌             ┐
    │ R3x3   t3x1 │
T = │             │
    │ 01x3     1   │
    └             ┘

其中:
- R3x3:旋转矩阵
- t3x1:平移向量
- 01x3:零行向量
- 1:缩放因子(标定中恒为1)
链式法则: 手眼标定的核心方程 AX = XB 中的 A、B、X 均为4x4齐次变换矩阵。通过矩阵乘法,可以串联从机器人基座到相机、再到标定板的完整变换链。
齐次变换矩阵结构及变换链 齐次变换矩阵 T R t 0 1 3x3 旋转 + 平移 机器人基座 机器人末端 相机 标定板 变换链:T基→板 = T基→末 · T末→相 · T相→板 其中 T末→相 即为手眼标定待求矩阵 X

3.4 欧拉角

欧拉角用三个角度(如绕Z轴、Y轴、X轴的旋转:Z-Y-X顺序)来描述旋转。它直观且参数少,但存在万向锁(Gimbal Lock)问题,即在某些姿态下会丢失一个自由度,导致插值和优化困难。

表示法 优点 缺点
欧拉角 直观、参数少(3个) 万向锁、不连续、插值不平滑
旋转矩阵 无奇异、可组合 参数冗余(9个)、不直观
四元数 无奇异、可插值、紧凑(4个) 不直观、需归一化
现场避坑: 在机器人示教器上读取姿态时,通常显示为欧拉角(如RPY)。直接使用这些角度进行矩阵运算前,务必确认旋转顺序(如Z-Y-X还是X-Y-Z)和参考坐标系(固定轴还是动轴),否则会导致严重的标定误差。

3.5 四元数简介

四元数是一种超复数,形式为 q = w + xi + yj + zk,其中 w 为实部,(x, y, z) 为虚部,且满足 i² = j² = k² = ijk = -1。单位四元数(模长为1)可以无奇异地表示三维空间中的任意旋转。

四元数表示旋转:
给定单位四元数 q = [w, x, y, z] 和点 p = [0, px, py, pz],
旋转后的点 p' = q · p · q-1

其中 q-1 = [w, -x, -y, -z](单位四元数的逆等于共轭)

四元数与旋转矩阵的转换(示例):
R = [[1-2(y²+z²),   2(xy-wz),   2(xz+wy)],
     [  2(xy+wz), 1-2(x²+z²),   2(yz-wx)],
     [  2(xz-wy),   2(yz+wx), 1-2(x²+y²)]]
标定现场优势: 四元数在优化求解中非常稳定,因为它只有4个参数且满足单位模长约束,避免了旋转矩阵的冗余和欧拉角的奇异。在手眼标定算法(如Tsai法、Park法)中,旋转部分通常先以四元数形式求解,再转换为矩阵。
四元数与欧拉角旋转对比 欧拉角(Z-Y-X顺序) 绕Z轴(偏航) 绕Y轴(俯仰) 绕X轴(翻滚) ⚠ 万向锁:中间轴旋转90°时丢失自由度 四元数(单位球面插值) q₁ q₂ ✓ 球面线性插值(SLERP)平滑无奇异

3.6 四种表示方法对比总结

表示方法 参数数量 奇异问题 组合/插值 标定适用性
旋转矩阵 9 无 易组合 最终输出格式
欧拉角 3 万向锁 困难 示教器读取、人机交互
四元数 4 无 易插值 优化求解首选
齐次矩阵 16(有效12) 无 链式乘法 统一变换框架
现场工作流建议: 从机器人控制器读取欧拉角 → 转换为四元数进行标定优化求解 → 得到四元数结果 → 转换为齐次变换矩阵用于后续坐标变换。这一流程兼顾了人机交互的直观性和计算的稳定性。