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齐次变换矩阵。通过矩阵乘法,可以串联从机器人基座到相机、再到标定板的完整变换链。
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法)中,旋转部分通常先以四元数形式求解,再转换为矩阵。
3.6 四种表示方法对比总结
| 表示方法 | 参数数量 | 奇异问题 | 组合/插值 | 标定适用性 |
|---|---|---|---|---|
| 旋转矩阵 | 9 | 无 | 易组合 | 最终输出格式 |
| 欧拉角 | 3 | 万向锁 | 困难 | 示教器读取、人机交互 |
| 四元数 | 4 | 无 | 易插值 | 优化求解首选 |
| 齐次矩阵 | 16(有效12) | 无 | 链式乘法 | 统一变换框架 |
现场工作流建议: 从机器人控制器读取欧拉角 → 转换为四元数进行标定优化求解 → 得到四元数结果 → 转换为齐次变换矩阵用于后续坐标变换。这一流程兼顾了人机交互的直观性和计算的稳定性。