IMU Preintegration
- 又称: preintegrated IMU factor, on-manifold preintegration
- 类别: State estimation & navigation › Localisation
- 标签: imu, state-estimation, factor-graphs, sensor-fusion, slam
把两个关键帧之间的大量 IMU 采样合并为一个不依赖于其绝对状态的相对运动测量,这样在估计值改变时,优化器无需重新积分。
定义
IMU 产生加速度计和陀螺仪采样的频率远高于相机或激光雷达产生帧的频率。在基于优化的估计器中,为每个 IMU 采样增加一个状态会使问题规模过大;而简单地把采样积分成位姿则有另一个问题:结果取决于起始的姿态、速度和偏置,而这些量本身正在被估计。优化器每改变一次这些量,整段 IMU 数据就都必须重新积分。IMU 预积分(IMU preintegration)通过在第一个状态的机体坐标系中对两个状态之间的测量进行积分来避免这一点,得到旋转、速度和位置的相对变化量,它们与起始位姿和速度无关。
Lupton 和 Sukkarieh 为视觉惯性导航引入了预积分(2012),Forster、Carlone、Dellaert 和 Scaramuzza 在旋转流形上重新表述了它(2015,2017 年扩展);如今大多数因子图系统使用的正是这一表述。重力单独处理:在把预积分项与两个状态进行比较时再把它加回。对偏置的依赖通过一阶修正来处理:在积分过程中,该方法还会累积预积分量对陀螺仪偏置和加速度计偏置的雅可比矩阵,因此偏置估计的微小变化可以低成本地更新测量值。合成测量的协方差与之一同传播,这为因子提供了权重。如果偏置估计偏离积分时所用的值太远,就重新进行积分。
结果是在因子图中相邻关键帧之间的一个 IMU 因子,它连接这些关键帧的位姿、速度和偏置,通常还配有一个对偏置缓慢随机游走建模的因子。正是这一点使得在滑动窗口估计器和全平滑估计器中保留 IMU 数据变得切实可行,例如 VINS-Mono、ORB-SLAM3 的惯性模式、LIO-SAM 和 LVI-SAM。精度仍然取决于提供给因子的 IMU 噪声和偏置参数、与其他传感器的时间同步,以及离散积分格式,该格式假设测量值在采样之间保持不变或简单变化。
为何重要
没有预积分,紧耦合的视觉惯性优化和激光雷达惯性优化就会慢得无法在机器人上实时运行。正是因为它,IMU 数据才能与相机、激光雷达和其他测量并列放在同一个因子图中。
主要应用
- 视觉惯性里程计和 SLAM 后端
- 激光雷达惯性里程计与建图
- 在因子图中把 IMU 数据与 GPS、雷达或轮式里程计融合
- 在线估计加速度计和陀螺仪偏置
- 相机-IMU 和激光雷达-IMU 标定
实际应用
一名开发者使用 GTSAM,以 IMU 的噪声密度和偏置随机游走值创建一个预积分对象,这些值取自数据手册,或来自对记录数据的艾伦方差分析。两个关键帧之间的每个 IMU 采样都输入其中,当下一个关键帧到来时,累积的结果就成为一个 IMU 因子,连接两个关键帧的位姿、速度和偏置变量。之后当优化器更新偏置时,该因子使用其存储的雅可比矩阵,而不是重新处理这些采样。用其他传感器(例如探地雷达)进行定位的系统,也用同样的因子在频率较低的雷达测量之间连接位姿。
常见误解
- 预积分消除了 IMU 漂移 — 它只是重新组织了积分;噪声和偏置误差仍然存在,必须由其他传感器加以约束
- 预积分测量一旦算出就固定不变 — 它依赖于偏置估计,偏置估计会被一阶修正,如果偏置变化较大,就需要重新积分
- 预积分只是一个提速技巧 — 它还提供了正确传播的协方差,正是这一点使优化器能够在 IMU 数据和其他传感器之间权衡
谁需要了解
- SLAM 和视觉惯性里程计开发者
- 状态估计工程师
- 无人机和腿足机器人导航工程师
- 使用因子图库构建估计器的研究人员
相关技术
- GTSAM
- 艾伦方差(Allan Variance)
- 李群(Lie Groups)
- VINS-Mono
- LIO-SAM
- 惯性导航系统(Inertial Navigation Systems)
相关术语
相关项目
- LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
- oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
- Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
- OpenCat: An open-source Arduino and Raspberry Pi-based quadruped robot pet framework
- FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
- DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required