IMU 预积分推导说明系列
- IMU 预积分 - 1. 介绍
- IMU 预积分 - 2. 预备知识 (1) 关键帧
- IMU 预积分 - 2. 预备知识 (2) 3D 旋转与不确定性
- IMU 预积分 - 3. IMU 模型推导与运动积分
- IMU 预积分 - 4. IMU 预积分测量值推导
- IMU 预积分 - 5. LIO-SAM 中的 IMU 预积分
SO(3) 中的不确定性描述
要理解预积分,我们首先需要理解流形的概念。尽管原论文的标题为“流形上的实时视觉-惯性里程计预积分”,但本文更侧重于解释为什么使用 SO(3) 更为便利,而不是深入数学上的严格证明。
从 2D 到 3D 的旋转
在 3D 空间中表示旋转的方法有:
- a) 欧拉角表示法(Euler angle representation)
- b) 四元数(Quaternion)
- c) 李群(Lie Group),即 SO(3)
即使你对这三种方法不太熟悉也没关系。实际上,我们在学习过程中对 2D 空间中的旋转有过一些接触。个人认为 2D 空间中的旋转表示方法与 3D 空间中的旋转表示方法之间存在某种对应关系,以下是它们的简要特点:
详细的旋转解释可能会使文章过长,因此详细内容将在后续部分(待定)中进行讨论。
SO(3) 中的旋转表示的优点
-
参数减少:用 axis-angle 表示法(轴角表示法)来表示 3D 旋转,只需 3 个参数,而用 3x3 旋转矩阵表示需要 6 个参数。虽然四元数也可以用来表示旋转,但优化时处理四元数比较复杂,因为四元数必须保持单位长度,这需要额外的约束优化。
-
近似简便:在优化时,若旋转变化量较小(即上表中的 v 较小),可以使用
Exp(v) ≈ I₃ + [v]ₓ
进行近似。这使得旋转的不确定性表示更为简便。 -
不确定性描述:使用 SO(3) 来表达旋转的不确定性,可以像在欧几里得几何中那样,通过加上高斯噪声来表示线性方程或非线性方程中的不确定性。详细内容将在后续部分进一步解释。
SO(3) 中的不确定性描述
在论文的第 III.B 节中,SO(3) 的不确定性描述是理解流形上的预积分的核心概念。尽管在预备知识部分看似不重要,但理解这一部分非常关键,否则你无法理解后续如何推导预积分测量值的过程。
3D 旋转的不确定性可以通过将无噪声的旋转矩阵与通过指数映射得到的不确定性向量(ϵ ∈ ℝ³)相乘来表示(SO(3) × SO(3) → SO(3)):
R ~ = R exp ( ϵ ) , ϵ ∼ N ( 0 , Σ ) \tilde{R} = R \exp(\epsilon), \quad \epsilon \sim \mathcal{N}(0, \Sigma) R~=Rexp(ϵ),ϵ∼N(0,Σ)
这意味着我们可以用一个大小为 3x1 的零均值高斯分布向量来表示 3D 空间中旋转的流形上的不确定性。
在图优化 SLAM 中,这一概念非常重要。通常,i-th 关键帧和 j-th 关键帧之间的误差项记作 e i j e_{ij} eij,其对应的不确定性记作 Ω i j \Omega_{ij} Ωij。因子图 SLAM 的最终目标是解决如下优化问题:
x ∗ = arg min ∑ x e i j T Ω i j e i j x^* = \arg\min \sum_{x} e_{ij}^T \Omega_{ij} e_{ij} x∗=argminx∑eijTΩijeij
为了进行图 SLAM,我们需要用数学表达 residual e i j e_{ij} eij 和其不确定性 Ω i j \Omega_{ij} Ωij。通过公式 [1],可以得到与 [2] 中的 Ω i j \Omega_{ij} Ωij 对应的部分(即信息矩阵)。例如,ϵ 较大时意味着旋转测量的不确定性较高,对应的误差也相对较大,从而在优化中信息的重要程度较低。
理解这一概念非常重要,因为论文的第 VI 节中介绍的流形上的预积分最终目标是将关键帧 i 和 j 之间的几十到数百个 IMU 测量值简化为一个 ϵ 项。详细内容将在“IMU 预积分测量值推导”部分进行讨论。总体来说,记住通过指数映射来表达 3D 空间中旋转的不确定性,使得可以使用现有的因子图 SLAM 框架进行优化。