【论文阅读】On-Manifold Preintegration

本文详细介绍了预积分技术在实时视觉惯性里程计(Visual-Inertial Odometry, VIO)中的应用。预积分将一段时间内的惯性测量数据累积处理,避免频繁优化带来的计算开销。通过线性化模型处理零偏估计变化,简化了预积分的计算,并保持了系统的高效性。预积分的噪声模型和雅可比矩阵的计算也得到了阐述,这对于构建优化框架至关重要。
  1. SVO2系列之深度滤波DepthFilter
  2. svo_note
  3. SVO(SVO: fast semi-direct monocular visual odometry)
  4. SVO 半直接视觉里程计
  5. 【DepthFilter】深度滤波器

【论文阅读】On-Manifold Preintegration


在这里插入图片描述
本文介绍了预积分的技术细节。

C. Forster, L. Carlone, F. Dellaert, D. Scaramuzza. On-Manifold Preintegration for Real-Time Visual-Inertial Odometry.IEEE Transactions on Robotics, 33(1), 1-21, 2017.

在这里插入图片描述
以上过程与我们在IMU测量方程和噪声方程中已有描述。当然,我们完全可以用这种约束来构建图优化,对IMU相关的问题进行求解。但是这组方程刻画的时间太短,或者说,IMU的测量频率太高。我们并不希望优化过程随着IMU数据进行调用,那样太浪费计算资源。于是,预积分方法应运而生,它可以把一段时间的IMU数据累计起来统一处理。现在介绍如何在关键帧之间对IMU进行预积分。

我们不妨假设从关键帧 i 和 j 之间的IMU数据被累计起来,这个过程通常可以持续若干秒钟。这种被累计起来的观测被称为预积分[7]。当然,如果我们使用不同形式的运动学,得到的预积分形式也是不同的。本文主要使用 [SO(3)+5] 的方式来推导预积分。那么,在 [k] 至 [j] 过程中,我们可以把上式中的变量累计起来,得到:
在这里插入图片描述
这种改变实际上只是计算了某种从 [i] 到 [j] 的“差值”。这个定义在计算上有一些有趣的性质:

  1. 我们不妨考虑从 [i] 时刻出发,此时这三个量都为零。在 [i+1] 时刻,我们计算出 [Delta Ri,i+1] ,[Delta vi,i+1] 和 [Delta pi,i+1] 。而在 [i+2] 时刻时,由于这三个式子都是累乘或累加的形式,只需在 [i+1] 时刻的结果之上,加上第 [i+2] 时刻的测量值即可。这在计算层面带来了很大的便利。进一步,我们还会发现这种性质对后续计算各种雅可比矩阵都非常方便。
  2. 上述所有计算都和 [ Ri] 的取值无关。即使 [ Ri] 的估计值发生改变,这些量也无需重新计算。这又是非常方便的一个特性。
  3. 不过,如果零偏 [b_a,k] 或 [b_g,k] 发生变化,那么上述式子理论上还是需要重新计算。然而,我们也可以通过“修正”而非“重新计算”的思路,来调整我们的预积分量。
  4. 请注意,预积分量并没有直接的物理含义。尽管符号上用了 [Delta v] 之类的样子,但它并不表示某两个速度或位置上的偏差。它只是如此定义而已。当然,从量纲上来说,应该与角度、速度、位移对应。
  5. 同样地,由于预积分量不是直接的物理量,这种“测量模型”的噪声也必须从原始的IMU噪声推导而来。
    从这几个问题出发,我们来介绍如何构造预积分的测量模型、噪声模型,以及它对各种状态变量的雅可比应该如何方便地计算。
    在这里插入图片描述
    构建预积分测量模型

由前面的讨论可见,预积分内部带有IMU的零偏量,因此不可避免地会依赖此时的零偏量估计。为了处理这种依赖,我们对预积分定义作一些工程上的调整:

我们首先认为 [i] 时刻的零偏是固定的,并且在整个预积分计算过程中也都是固定的。
我们作出预积分对零偏量的一阶线性化模型,即,舍弃对零偏量的高阶项。
当零偏估计发生改变时,用这个线性模型来修正预积分。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此式是高斯随机变量的线性组合,它的结果依然是高斯的。同时,由于预积分的累加特性,预测分观测量的噪声也会随着时间不断累加。我们可以这样提问:能否用第 [j-1] 时刻的噪声来计算第 [j] 时刻的噪声?如果可以,那么程序实现也会更加简单。

答案显然是肯定的。由于上式是累加形式的,很容易将其写成递推的形式:
在这里插入图片描述
矩阵形式更清晰地显示了几个噪声项之间累计递推关系。由于它们的累加关系,在程序实现中也十分便捷。
零偏的更新

先前的讨论都假设了在 [公式] 时刻的IMU零偏恒定不变,当然这都是为了方便后续的计算。然而在实际的图优化中,我们经常会对状态变量(优化变量)进行更新。那么,理论上来讲,如果IMU零偏发生了变化,预积分应该重新计算,因为预积分的每一步都用到了 [i] 时刻的IMU零偏。但是实际操作过程中,我们也可以选用一种讨巧的做法:假定预积分观测是随零偏线性变化的,虽然实际上并不是线性变化的,但我们总可以对一个复杂函数做线性化并保留一阶项,然后在原先的观测量上进行修正。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参考文献:

[1]. C.Forster, L.Carlone, F.Dellaert,and D.Scaramuzza “IMU preintegration on manifold for efficient visual ­inertial maximum ­a­ posteriori estimation,” in Robotics: Science and Systems XI, no. EPFL­CONF­214687, 2015.

[2]. L. Chang, X. Niu, and T. Liu, “GNSS/imu/odo/lidar­slam integrated navigation system using imu/odo pre­ integration,” Sensors, vol. 20, no. 17, p. 4702, 2020.

[3]. Z. Yuan, D. Zhu, C. Chi, J. Tang, C. Liao, and X. Yang, “Visual ­inertial state estimation with pre­integration correction for robust mobile augmented reality,” in Proceedings of the 27th ACM International Conference on Multimedia, pp. 1410–1418, 2019.

[4]. K. Eckenhoff, P. Geneva, and G. Huang, “Closed­form preintegration methods for graph­based visual-inertial navigation,” The International Journal of Robotics Research, vol. 38, no. 5, pp. 563–586, 2019.

[5]. R. M. Murray, Z. Li, and S. S. Sastry, A mathematical introduction to robotic manipulation. CRC press, 2017.

[6]. J. L. Crassidis, “Sigma­point Kalman filtering for integrated GPS and inertial navigation,” IEEE Transactions on Aerospace and Electronic Systems, vol. 42, no. 2, pp. 750–756, 2006.

[7]. T.Luptonand, S.Sukkarieh, “Visual­ inertial ­aided navigation for high­dynamic motion in built environments with­out initial conditions,” IEEE Transactions on Robotics, vol. 28, no. 1, pp. 61–76, 2011.

[8]. S.Leutenegger, S.Lynen, M.Bosse, R.Siegwart, and P.Furgale, “Keyframe ­based visual-inertial odometry using nonlinear optimization,” The International Journal of Robotics Research, vol. 34, no. 3, pp. 314–334, 2015.
[9]. https://zhuanlan.zhihu.com/p/388859808
[10]. https://zhuanlan.zhihu.com/p/108203458
[11]. https://blog.youkuaiyun.com/weixin_41230454/article/details/84343506
[12]. https://lgg2018.com/2019/12/15/imu%e9%a2%84%e7%a7%af%e5%88%86/
[13]. IMU 预积分推导
[14] IMU预积分–详细推导过程

Abstract: Current approaches for visual-inertial odometry (VIO) are able to attain highly accurate state estimation via nonlinear optimization. However, real-time optimization quickly becomes infeasible as the trajectory grows over time; this problem is further emphasized by the fact that inertial measurements come at high rate, hence leading to fast growth of the number of variables in the optimization. In this paper, we address this issue by preintegrating inertial measurements between selected keyframes into single relative motion constraints. Our first contribution is a preintegration theory that properly addresses the manifold structure of the rotation group. We formally discuss the generative measurement model as well as the nature of the rotation noise and derive the expression for the maximum a posteriori state estimator. Our theoretical development enables the computation of all necessary Jacobians for the optimization and a-posteriori bias correction in analytic form. The second contribution is to show that the preintegrated IMU model can be seamlessly integrated into a visual-inertial pipeline under the unifying framework of factor graphs. This enables the application of incremental-smoothing algorithms and the use of a structureless model for visual measurements, which avoids optimizing over the 3D points, further accelerating the computation. We perform an extensive evaluation of our monocular VIO pipeline on real and simulated datasets. The results confirm that our modelling effort leads to accurate state estimation in real-time, outperforming state-of-the-art approaches.
### 实时视觉惯性里程计中的流形上预积分技术 在实时视觉惯性里程计(VIO)中,为了提高计算效率并保持状态估计的一致性和准确性,在流形上的预积分技术被广泛应用。该方法通过将IMU测量数据在局部流形空间内累积,从而减少重复计算。 #### 预积分理论基础 预积分的核心在于利用李群和李代数来描述旋转和平移的变化过程。具体来说,SO(3)用于表示三维空间中的旋转矩阵,而se(3)则对应于六维的空间变换向量[^1]。通过对这些几何结构的理解,可以更精确地处理传感器噪声以及非线性误差传播问题。 对于加速度计读取值$a$ 和陀螺仪读取值$\omega$, 可以定义如下微分方程: $$ \dot{R}(t)= R(t)\hat{\omega} \\ \ddot{p}(t)=a $$ 其中 $R\in SO(3)$ 表示姿态, $\hat{\cdot}$ 是斜对称算子操作符. #### 流形上预积分实现细节 当考虑时间间隔内的连续运动时,传统欧氏空间下的简单累加会引入较大偏差。因此采用指数映射的方式将在短时间内近似为常速率变化: $$ \Delta p=\int_{0}^{T}\exp([\Omega]\tau)d\tau a_0+\frac{T^2}{2}g\\ v_T=v_0+\int_{0}^{T}\exp([\Omega]\tau)a_0d\tau+Tg \\ R_T=R_0\exp(\Omega T) $$ 这里$\Omega=[\omega_x,\omega_y,\omega_z]^T-\beta_b$ , 并且$\beta_b$代表偏置项;上述公式展示了如何基于初始条件$(p_0,v_0,R_0)$ 计算经过时间段T后的位姿更新 $(\Delta p,v_T,R_T)$ 。这种做法不仅提高了数值稳定性还简化了后续优化流程的设计[^2]. ```cpp // C++ code snippet demonstrating pre-integration on manifold. Eigen::Matrix<double, 9, 1> PreIntegrate( const Eigen::Vector3d& acc, const Eigen::Vector3d& gyro, double dt, const Eigen::Vector3d& gravity) { // Implementation of the equations mentioned above... } ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大江东去浪淘尽千古风流人物

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值