IMU Preintegration on Manifold

Forster 2015 · 论文

一句话总结 — 推导了一种在 SO(3)SO(3) 流形上进行理论上严谨的IMU测量预积分方法,使基于优化的VIO能够以解析方式针对偏置变化进行修正,而无需重新积分原始IMU数据。

问题

非线性优化能给出高精度的VIO,但”随着轨迹的增长,实时优化很快变得不可行;由于惯性测量以高频率到来,这一问题因优化中变量数量的快速增长而进一步加剧”(摘要)。朴素积分是在世界坐标系中定义的,因此它依赖于区间起点的绝对位姿:每当优化器移动该位姿时,所有原始IMU数据都必须重新积分——在数百Hz的频率下这是不可行的。Lupton的预积分方法(2012)指出了出路,但将旋转当作向量空间处理;一个严谨的表述必须尊重 SO(3)SO(3) 的流形结构,并正确刻画旋转噪声。

方法与架构

IMU测量的是体坐标系下的角速率和比力,受缓慢变化的偏置和白噪声污染(公式27–28):

ω~(t)=ω(t)+bg(t)+ηg(t),a~(t)=RWBT(t)(a(t)g)+ba(t)+ηa(t),\tilde{\boldsymbol{\omega}}(t) = \boldsymbol{\omega}(t) + \mathbf{b}^g(t) + \boldsymbol{\eta}^g(t), \qquad \tilde{\mathbf{a}}(t) = \mathtt{R}_{\mathrm{WB}}^{\mathsf{T}}(t)\big(\mathbf{a}(t) - \mathbf{g}\big) + \mathbf{b}^a(t) + \boldsymbol{\eta}^a(t),

运动学方程为 R˙WB=RWBω\dot{\mathtt{R}}_{\mathrm{WB}} = \mathtt{R}_{\mathrm{WB}}\,\boldsymbol{\omega}^{\wedge},v˙=a\dot{\mathbf{v}} = \mathbf{a},p˙=v\dot{\mathbf{p}} = \mathbf{v}。整条流水线的工作方式如下:

ΔR~ijk=ij1Exp((ω~kbig)Δt),Δv~ijk=ij1ΔR~ik(a~kbia)Δt,\Delta\tilde{\mathtt{R}}_{ij} \doteq \prod_{k=i}^{j-1} \mathrm{Exp}\big((\tilde{\boldsymbol{\omega}}_k - \mathbf{b}^g_i)\Delta t\big), \qquad \Delta\tilde{\mathbf{v}}_{ij} \doteq \sum_{k=i}^{j-1} \Delta\tilde{\mathtt{R}}_{ik}\,(\tilde{\mathbf{a}}_k - \mathbf{b}^a_i)\Delta t,

以及由类似的双重求和得到的 Δp~ij\Delta\tilde{\mathbf{p}}_{ij}——这些量只依赖于测量值和 bi\mathbf{b}_i,不依赖于绝对状态。

ΔR~ij=RiTRjExp(δϕij),Δv~ij=RiT(vjvigΔtij)+δvij,Δp~ij=RiT(pjpiviΔtij12gΔtij2)+δpij,\Delta\tilde{\mathtt{R}}_{ij} = \mathtt{R}_i^{\mathsf{T}}\mathtt{R}_j\,\mathrm{Exp}(\delta\boldsymbol{\phi}_{ij}), \quad \Delta\tilde{\mathbf{v}}_{ij} = \mathtt{R}_i^{\mathsf{T}}(\mathbf{v}_j - \mathbf{v}_i - \mathbf{g}\Delta t_{ij}) + \delta\mathbf{v}_{ij}, \quad \Delta\tilde{\mathbf{p}}_{ij} = \mathtt{R}_i^{\mathsf{T}}\big(\mathbf{p}_j - \mathbf{p}_i - \mathbf{v}_i\Delta t_{ij} - \tfrac{1}{2}\mathbf{g}\Delta t_{ij}^2\big) + \delta\mathbf{p}_{ij},

其中噪声向量 [δϕij,δvij,δpij][\delta\boldsymbol{\phi}_{ij}, \delta\mathbf{v}_{ij}, \delta\mathbf{p}_{ij}] 在一阶近似下是零均值高斯分布,其协方差 Σij\mathbf{\Sigma}_{ij} 通过迭代传播得到。

ΔR~ij(big)ΔR~ij(bˉig)Exp ⁣(ΔRˉijbgδbg),Δv~ijΔv~ij(bˉi)+Δvˉijbgδbg+Δvˉijbaδba.\Delta\tilde{\mathtt{R}}_{ij}(\mathbf{b}^g_i) \simeq \Delta\tilde{\mathtt{R}}_{ij}(\bar{\mathbf{b}}^g_i)\,\mathrm{Exp}\!\Big(\tfrac{\partial\Delta\bar{\mathtt{R}}_{ij}}{\partial\mathbf{b}^g}\delta\mathbf{b}^g\Big), \qquad \Delta\tilde{\mathbf{v}}_{ij} \simeq \Delta\tilde{\mathbf{v}}_{ij}(\bar{\mathbf{b}}_i) + \tfrac{\partial\Delta\bar{\mathbf{v}}_{ij}}{\partial\mathbf{b}^g}\delta\mathbf{b}^g + \tfrac{\partial\Delta\bar{\mathbf{v}}_{ij}}{\partial\mathbf{b}^a}\delta\mathbf{b}^a.

实验结果

对SLAM的意义

这是几乎所有现代基于优化的VIO背后的基础理论:VINS-Mono、ORB-SLAM3、Kimera-VIO、Basalt和OKVIS2的IMU因子都使用Forster式的流形上预积分。它对Lupton最初的预积分思想进行了正确的流形处理升级——避免了欧拉角奇异性——并使高频惯性感知与关键帧频率的非线性优化兼容。如果你要亲自动手实现一段VIO理论,就该实现这一个。

相关条目