SO(3) 与 so(3) 的对应关系及案例

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) 的向量形式。

相关推荐
kobesdu13 小时前
【ROS2实战笔记-24】ROS2 Launch 实用技巧:条件逻辑与节点动态生成
笔记·ros·slam
大江东去浪淘尽千古风流人物20 小时前
【RADIO-ViPE】动态环境下的在线开放词汇语义SLAM:视觉-语言-几何紧耦合BA与自适应鲁棒核深度解析
slam·语义slam·vio·开放词汇·动态场景
大江东去浪淘尽千古风流人物2 天前
【KV-Tracker】Transformer 实时位姿跟踪:KV-Cache 加速多视图几何网络达 27FPS
网络·深度学习·transformer·slam·位姿估计·kv-cache
大江东去浪淘尽千古风流人物2 天前
【ACE-SLAM】场景坐标回归实时神经 SLAM:TriMLP 架构与隐式回环闭合
人工智能·神经网络·数据挖掘·回归·实时·slam·场景坐标回归
元让_vincent3 天前
论文 Review SLAM LiLoc | Lifelong Localization
slam·性能提升·激光slam·multi-session·先验地图
大江东去浪淘尽千古风流人物3 天前
【SharpSLAM】无人机高速飞行下的物体级视觉 SLAM:GAN 去模糊与 3D 重建联合优化
生成对抗网络·3d·无人机·slam·3d重建·deepsdf·去模糊
大江东去浪淘尽千古风流人物7 天前
【Structure PLP-SLAM】点-线-面三基元融合SLAM:从Plücker坐标到Graph-Cut平面重建的完整技术解析
平面·slam·视觉slam·点线面融合·plücker坐标·平面重建
Undergoer_TW14 天前
SLAM实战避坑指南:对极几何与极点极线推导——吃透零空间与对极约束
slam·对极几何
大江东去浪淘尽千古风流人物14 天前
【Polaris-VIO】Docker 镜像跨硬件分发的隐藏陷阱:AVX-512、-march=native 与 CPU 指令集解耦边界
运维·docker·容器·slam·vio·avx-512
kobesdu15 天前
【ROS2实战笔记-23】参数系统中的动态参数与远程加载安全剖析
笔记·安全·slam·ros2