4. 预积分理论基础

在视觉惯性里程计(VIO)与惯性导航系统中,IMU 以数百赫兹的频率输出角速度与比力,而视觉观测通常只有 10~30 赫兹。若把每一帧之间的所有 IMU 采样都作为状态量参与优化,计算量将不可接受。预积分的核心思想,就是把两帧图像之间成百上千次 IMU 测量,压缩成一个与起始状态解耦的相对运动约束。理解预积分,必须先理解它背后的连续时间运动学、离散时间积分,以及预积分量本身的物理意义。

一、连续时间运动学:预积分的物理源头

在惯性坐标系下,载体的姿态、速度、位置满足如下连续时间微分方程。设 R 为从机体系到世界系的旋转矩阵,ω 为机体系角速度,a 为机体系比力,g 为世界系重力:

Ṙ(t) = R(t) · [ω(t)]×
v̇(t) = R(t) · a(t) + g
ṗ(t) = v(t)

这三个方程揭示了 IMU 测量的本质:陀螺仪测量的是机体系角速度,加速度计测量的是机体系比力(包含重力反作用)。姿态 R 出现在速度方程中,意味着速度与位置的演化依赖于姿态,而姿态又由角速度积分得到。这种耦合关系正是预积分需要处理的关键难点。

连续时间运动学告诉我们:IMU 测量是在机体系下表达的,而导航状态是在世界系下表达的。预积分的任务,就是把机体系测量“搬运”到世界系,同时避免重复依赖起始状态。

二、离散时间积分:从微分方程到可计算形式

实际系统中,IMU 以固定采样周期 Δt 输出测量值。常用的离散积分方法包括欧拉法、中值法和四阶龙格库塔法。以中值法为例,在 ti 到 ti+1 之间:

ω_mid = 0.5 · (ω_i + ω_{i+1})
a_mid = 0.5 · (a_i + a_{i+1})

R_{i+1} = R_i · Exp(ω_mid · Δt)
v_{i+1} = v_i + (R_i · a_mid + g) · Δt
p_{i+1} = p_i + v_i · Δt + 0.5 · (R_i · a_mid + g) · Δt²

其中 Exp(·) 表示 SO(3) 上的指数映射。可以看到,若直接按上式递推,每一时刻的速度和位置都显式依赖初始的 R_i、v_i、p_i。在优化过程中,一旦起始状态被调整,所有中间积分都必须重新计算,这正是预积分要解决的问题。

三、预积分量的定义:把起始状态“提”出来

预积分的做法是:把世界系下的积分式重新整理,将起始状态因子提取到积分号外,只对机体系测量进行积分。定义两帧 i 与 j 之间的预积分量为:

ΔR_ij = ∏_{k=i}^{j-1} Exp((ω_k - b_g) · Δt)
Δv_ij = Σ_{k=i}^{j-1} ΔR_ik · (a_k - b_a) · Δt
Δp_ij = Σ_{k=i}^{j-1} [ Δv_ik · Δt + 0.5 · ΔR_ik · (a_k - b_a) · Δt² ]

这三个量 ΔR_ij、Δv_ij、Δp_ij 分别表示相对旋转、相对速度和相对位置增量。它们只依赖两帧之间的 IMU 测量、零偏估计和采样周期,而与起始帧的世界系姿态、速度、位置无关。因此,在优化中调整起始状态时,预积分量无需重新积分,只需重新组合即可。

预积分量的构成与物理意义 IMU 测量流 ω_i, a_i ω_{i+1}, a_{i+1} … ω_{j-1}, a_{j-1} 采样周期 Δt 零偏 b_g, b_a 预积分计算 ΔR_ij = ∏ Exp(ω·Δt) 相对旋转增量 Δv_ij = Σ ΔR·a·Δt 相对速度增量 Δp_ij = Σ (Δv·Δt + ½ΔR·a·Δt²) 相对位置增量 与起始状态解耦 与起始状态组合 R_j = R_i · ΔR_ij 姿态恢复 v_j = v_i + R_i · Δv_ij + g·Δt_ij 速度恢复 p_j = p_i + v_i·Δt_ij + ½g·Δt_ij² + R_i·Δp_ij 位置恢复 起始状态变化时无需重新积分

四、物理意义与工程价值

预积分量的物理意义可以这样理解:ΔR_ij 是载体从 i 到 j 在机体系下累积的旋转;Δv_ij 是在起始机体系下累积的速度变化;Δp_ij 是在起始机体系下累积的位置变化。它们描述的是“相对运动”,而不是“绝对运动”。

这种相对性带来了巨大的工程价值。在基于因子图的 VIO 中,预积分因子连接两个关键帧状态节点,其残差形式为:

r_ΔR = Log( ΔR_ij^T · R_i^T · R_j )
r_Δv = R_i^T · (v_j - v_i - g·Δt_ij) - Δv_ij
r_Δp = R_i^T · (p_j - p_i - v_i·Δt_ij - ½g·Δt_ij²) - Δp_ij

优化器调整 R_i, v_i, p_i, R_j, v_j, p_j 时,ΔR_ij, Δv_ij, Δp_ij 保持不变,只需重新计算残差,无需重新积分。这正是预积分能够大幅加速优化的根本原因。

预积分量 物理含义 依赖的测量 恢复公式
ΔR_ij 相对旋转增量 陀螺仪 ω、零偏 b_g R_j = R_i · ΔR_ij
Δv_ij 相对速度增量 加速度计 a、零偏 b_a、ΔR v_j = v_i + R_i·Δv_ij + g·Δt
Δp_ij 相对位置增量 加速度计 a、零偏 b_a、ΔR、Δv p_j = p_i + v_i·Δt + ½g·Δt² + R_i·Δp_ij

五、常见误区与复盘

误区一:把预积分量当成世界系下的绝对运动。实际上 ΔR、Δv、Δp 都是在起始机体系下定义的相对量,恢复绝对状态时必须左乘 R_i 并叠加起始状态。
误区二:忽略零偏更新对预积分的影响。当优化器调整 b_g、b_a 时,严格来说需要重新积分。工程上通常采用一阶雅可比近似进行修正,而不是完全重积分。
复盘要点:预积分的本质是“换元”。把世界系积分中的起始状态提取出来,把机体系测量单独积分。理解这一点,就能理解为什么预积分因子在优化中如此高效,也能理解零偏修正、重力对齐、数值积分精度等后续问题的来源。

总结来说,连续时间运动学给出了物理规律,离散时间积分给出了可计算形式,而预积分量的定义则通过数学变换实现了与起始状态的解耦。三者层层递进,构成了 IMU 预积分理论的基础。掌握这一基础,才能进一步理解预积分因子的雅可比推导、零偏更新策略以及在 VIO 系统中的实际部署。