这篇文章来自ICRA2018,并且代码开源
Abstract
我们提出的系统能够在建好的图中重定位并获得绝对位姿。4自由度的位姿图优化用来矫正漂移,获得全局一致。以一种高效的保存和加载方式复用地图。
Introduction
VIO存在的问题:
1、visual-inertial odometry approaches(VIO) 的方法仅仅关注局部的精确性。只处理局部区域或者一小段时间内的测量却丢掉或者边缘化之前的测量。在长期的运动中,容易产生漂移的问题。(局部或者短期精确性高,但全局或长期精确性低)
2、VIO是相对于初始坐标系的变换,而不是绝对位置。每次启动系统参考坐标系都不固定,这样不能在全局一致的地图中在不同的轨迹上得不到位姿(我的理解是在机器人在相同的环境中行走时,一旦和之前的轨迹不一样,那么它的坐标就需要重新选一个参考系,得到新的参考系下的坐标,和之前建图得到的坐标又不一样了)。实际生活中,对于固定的环境,我们希望得到一致的绝对的位姿,不论我们何时何地去启动我们的系统。(我的理解是:作者想为环境建立一个绝对的坐标系)
针对存在的问题作者要达到的目标:
1.提出一个实时的单目视觉惯性系统,能够进行重定位以及全局图优化消除漂移
2.系统能够重复利用之前建好的地图。达到在一个已知的环境中得到绝对的位姿估计。
3.系统能够将当前的建立的地图与之前建好的地图平滑的融合。
本文系统基本框架(或者它的baseline):
1.baseline:VIO
2.利用词袋DBoW2做的回环检测
3.重定位是通过与单目VIO特征级融合完成的(这里的重定位指的是在已建好图中的重定位)(重点)
4.几何验证循环被添加到4自由度的图优化中来消除漂移(重点)
贡献点:
1.一个带有重定位,4自由度位姿图优化,地图融合和先验地图的重复利用
2.开源的地图重用代码
文章剩下部分的组织内容:
讨论相关文献
介绍自己算法的细节
执行细节和实验评估
结论
Related Work
IMU的使用是为了帮助视觉系统恢复真实尺度
使用滤波器
1.松耦合:通过卡尔曼滤波器将IMU与相机融合。首先用相机建立一个地图,然后IMU补充尺度。
2.紧耦合:能够获得更高的精确性。一个很受欢迎的基于EKF的VIO方法是MSCKF。几个相机的位姿被保存在状态容器中。因此,经过多个相机视图得到的对于同一特征的观察形成多约束更新。相机的位姿,速度和IMU的偏差一起更新
3.IS-ISWF使用了平方根来获得单精度代表并且避免了差的数值特性,能够在计算资源有限的平台上工作。
利用图优化
使用多个相机测量和IMU测量在一个约束中,联合优化达到最优的估计。但是往往需要大量的运算。为了减少运算,就会限制窗口的大小,从而丢掉了之前的数据。能够达到局部的精确性,但是在长期的运作过程中会出现漂移。
重定位
根据地图的类型,重定位分为两种。一种是离线的地图,另一种是在线的地图。
System Overview
系统的流程:
单目视觉惯性里程计------>得到的关键帧被加载到全局位姿图中,这一步在另一个线程中完成
---------> 得到的关键帧也被放在回环检测中,用于重定位,这又是另外一个线程完成
注:重定位是使用回环检测的模块进行的
一旦有一帧被检测图中已经有-------->重定位马上进行,并且联合优化之前的关键帧用局部窗口以原始特征。然后将环路信息添加到位姿图中,作为连接当前关键帧与环路闭合帧的环路边缘。
Algorithm
Experiment Results