Kimera-VIO

Rosinol 2020 · 论文

一句话总结 — Kimera库中快速的立体视觉-惯性里程计模块:基于流形的IMU预积分加上通过iSAM2固定滞后平滑求解的GTSAM无结构视觉因子——它是一套实时、仅需CPU的度量-语义SLAM流水线的状态估计核心。

问题

在人类周围工作的机器人需要的不仅是一条轨迹:它们需要一个度量精确且带有语义标签的场景模型。现有的开源库(ORB-SLAM、VINS-Mono、OKVIS、ROVIO)仅止步于位姿和稀疏点,而实时的度量-语义系统(SLAM++、SemanticFusion、Voxblox++)则依赖RGB-D传感并大多需要GPU。Kimera的目标是”超越现有的视觉与视觉惯性SLAM库……通过在3D中实现网格重建与语义标注”——依靠视觉惯性传感、在CPU上、实时运行——其支撑点是一个足够快速、准确、可以支撑起整个系统栈的VIO前端。

方法与架构

Kimera接收立体帧和高频IMU数据,并在承载四个模块的四条线程中并行运行:

这些模块”可以单独运行,也可以组合运行,因此Kimera可以轻松退化为一个最先进的VIO系统或一个完整的SLAM系统。“

实验结果

在EuRoC数据集上(RMSE ATE,SE(3)对齐),Kimera在各个类别中都取得了顶尖性能:在固定滞后平滑模式下,Kimera-VIO达到0.05–0.35 m(例如MH_1为0.11,V1_3为0.07),而OKVIS为0.09–0.47,MSCKF为0.10–1.13,ROVIO为0.10–0.52,VINS-Mono为0.08–0.32;在全量平滑模式下,MH_1上达到0.04 m,而SVO-GTSAM在其中三个V序列上失败;在加入回环检测后,Kimera-RPGO在V2_3上取得0.19 m,而VINS-LC报告的误差为1.39 m。鲁棒性方面:若不使用PCM,随着DBoW2阈值α\alpha放宽,PGO误差会暴涨至1.74 m,而Kimera-RPGO在任何α\alpha下都保持约0.05 m的误差——无需任何参数调优。几何精度方面:全局语义网格相对于EuRoC真值点云的精度为0.35–0.48 m;快速多帧网格的噪声高出多达24%,但速度快两个数量级。在一个照片级真实感仿真器中,Kimera-Semantics在使用真值深度和Kimera-VIO位姿(ATE为0.04 m)时达到80.03%的mIoU,而使用稠密立体匹配时降至57.23%。耗时(CPU):IMU预积分约40 µs(状态输出频率超过200 Hz),跟踪每帧4.5毫秒,关键帧处理45毫秒,后端小于40毫秒,RPGO约55毫秒,语义处理每关键帧约0.1秒。

对SLAM的意义

Kimera证明了一个干净、模块化的开源系统栈能够在CPU上实时地将原始的立体+IMU数据转化为带语义标签的3D网格——这使它既是一个实用的VIO基线,也成为了整整一系列研究的基础:3D Dynamic Scene Graphs、Hydra以及Kimera-Multi都建立在这一前端之上。它的GTSAM智能因子(smart-factor)加iSAM2的组合方案,现已成为Ceres式滑动窗口优化的标准替代方案,而Kimera-RPGO的鲁棒位姿图优化也被作为独立库使用。

动手实践

相关条目