1. 定义与对应关系
SO(3)(特殊正交群)是三维旋转矩阵的集合:
SO(3) = { R ∈ ℝ³ˣ³ | RᵀR = I, det(R) = 1 }
so(3) 是 SO(3) 在单位元处的切空间,由所有 3×3 反对称矩阵组成:
so(3) = { φ∧ ∈ ℝ³ˣ³ | φ∧ᵀ = −φ∧ }
其中 φ = (φ₁, φ₂, φ₃)ᵀ 是一个三维向量,φ∧ 是其反对称矩阵:
φ∧ = [ 0 −φ₃ φ₂ ]
φ₃ 0 −φ₁
−φ₂ φ₁ 0
核心映射关系:
- 指数映射(so(3) → SO(3)):exp(φ∧) = R(即罗德里格斯公式)
- 对数映射(SO(3) → so(3)):log(R) = φ∧
- hat 映射(向量 → 反对称矩阵):φ∧ = hat(φ)
- vee 映射(反对称矩阵 → 向量):φ = vee(φ∧)
2. 怎么从so(3) 变回 SO(3):绕 Z 轴旋转 90°
设旋转向量 φ = (0, 0, π/2)ᵀ,即绕 Z 轴旋转 90°。 (Ps:个人认为 φ就是惯导里面讲的等效旋转矢量)
步骤一:构造 so(3) 反对称矩阵
φ∧ = [ 0 −π/2 0 ]
π/2 0 0
0 0 0
步骤二:指数映射得到旋转矩阵
利用罗德里格斯公式:R = I + (sinθ/θ)·φ∧ + ((1−cosθ)/θ²)·(φ∧)²
其中 θ = π/2,sinθ = 1,cosθ = 0:
R = [ 0 −1 0 ]
1 0 0
0 0 1
这正是绕 Z 轴旋转 90° 的标准旋转矩阵。
步骤三:对数映射(反向验证)
Tr(R)是R的迹:1;
从 R 可以提取转角 θ = arccos((Tr(R)−1)/2) = arccos(0) = π/2,转轴为 (0,0,1),恢复出 φ = (0, 0, π/2)。
怎么从 SO(3) 变回 so(3)?------对数映射
给定一个旋转矩阵 RR,要找回它的旋转向量,先求转角
θ = arccos((Tr(R)−1)/2)
然后反对称矩阵部分由下式给出:

从反对称矩阵中读出 (ux,uy,uz),就得到了单位转轴,再乘上 θ 就是 so(3) 的向量形式。