【泡泡图灵智库】VINS-Mono:一种鲁棒多功能的单目视觉惯性状态估计器

2018 年 12 月 23 日 泡泡机器人SLAM

泡泡图灵智库,带你精读机器人顶级会议文章

标题:VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator

作者:Tong Qin, Peiliang Li, Shaojie Shen

来源:IEEE Transactions on Robotics, August 2018

编译:夏友杰

审核:李鑫

欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权


摘要

       大家好,今天为大家带来的文章是——VINS-Mono:一种鲁棒多功能的单目视觉惯性状态估计器,该文章发表于IEEE Transactions on Robotics, 2018年8月刊。


由一个相机和一个低成本惯性测量单元(IMU)组成的单目视觉惯性测量系统(VINS)是进行6自由度(DoF)状态估计的最小传感器套件(从尺寸,重量和能量角度来看)。本文提出了VINS-Mono:一种具有鲁棒性和多功能的单目视觉惯性状态估计器。该方法首先进行鲁棒的估计器初始化步骤。其次,通过融合预积分后的IMU测量值和视觉特征观测值,用一个紧耦合非线性优化方法来得到高精度的视觉惯性里程计。然后,本文提出一个回环检测模块,其和紧耦合方案一起可以提供最小计算量的重定位功能。除此之外,系统可以通过4-DoF的姿态图优化来加强全局一致性。进一步地,系统还可以有效地通过保存和载入地图来实现地图的复用。通过全局姿态图优化,系统可以融合当前地图和历史地图。本文还在公开数据集和现实世界中的实验中验证了所提出的方案的性能,并且与目前其他主流方案进行比较。实验还包括使用微型飞行器平台进行的在线闭环飞行,和将方案导出到一个基于iOS的应用中。特别强调的是,本文提出的方案是一个可靠的,完整的和多功能的系统,适用于对定位精度需求高的各类应用。本文还开源了PC端(https://github.com/HKUST-Aerial-Robotics/VINS-Mono)和iOS移动端(https://github.com/HKUST-Aerial-Robotics/VINS-Mobile)的代码。

主要贡献

        1、本文提出了一个鲁棒的初始化方案,能够让系统从未知的初始状态开始正常运行。

       2、提出一种基于优化的紧耦合单目VIO方案,包括相机与IMU的外参标定以及IMU偏移矫正。

        3、在线重定位和4-DoF全局位姿图优化。

        4、实现了位姿图复用,包括对多个局部位姿图的保存,载入和融合功能。

算法流程

图1 VINS-Mono系统框图

        1、测量值预处理

        对于相机和IMU采集到的数据需要进行预处理。对于视觉数据,需要在相邻两帧中跟踪特征并且在最新帧中检测特征;对于IMU数据,需要对相邻两帧中的IMU数据进行预积分。

        1.1 前端视觉处理

        一方面,对于每张新图像,用KLT光流法对现有特征进行跟踪;另一方面,不断检测新角点,使得每张图像对应的角点特征保持一个合理的范围内(比如100-300个)。对于处理外点(outlier),则使用RANSAC算法结合计算基础矩阵(Fundamental Matrix)。

        在视觉前端预处理中,还需要考虑关键帧(keyframe)的选取,其准则有二,一是与上一关键帧的视差(parallax)大于一定的阈值;二是当持续跟踪的特征点数小于一定阈值。此时需要选取当前帧作为关键帧以保证系统正常运行。

        2. IMU预积分

        2.1 IMU测量模型

        2.2 预积分

        2.3  偏置纠正

        2、估计器初始化

        单目紧耦合VIO是个高非线性系统,因此系统状态需要较为准确的初始值。首先,进行纯视觉地运动恢复结构(SfM),然后对齐IMU预积分结果和纯视觉结构,其中包括恢复视觉结构的尺度、陀螺仪偏移标定、速度和重力的估计。

        3、紧耦合单目VIO

        初始化估计器后,由基于滑动窗口的紧耦合单目VIO来实现准确并鲁棒的状态估计。

图2 具有重定位的滑动窗口单目VIO示意图

        滑动窗口中的状态向量定义如下:

        其中,x_k表示拍第k帧图像时的IMU状态,包括位置、速度、世界坐标系下的IMU方向以及IMU坐标系下的加速度计和陀螺仪的偏移。n表示关键帧的数目,m表示滑动窗口中的特征总数。λ_l是第l个特征的逆深度。x^b_c表示相机在IMU坐标系下的位姿。

        那么,采用视觉惯性光束平差法来表示问题,最小化先验和所有观测残差的Mahalanobis范数之和来得到最大后验估计,即

        其中,第一项是来自边缘化后的先验,第二项来自IMU观测残差,第三项来自视觉数据残差。

主要结果

        1、 数据集上对比

        表1总结了OKVIS,VINS不带回环检测以及VINS带回环检测三种方法在EuRoC数据集下15个数据子集的结果。

表1 EuRoC数据集下RMSE(米)

图3 VINS与OKVIS在数据集上的轨迹对比。

(a) MH_03_medium, (b) MH_05_difficult.

       2、现实世界中的实验

图4  在大规模环境中的估计轨迹示意图,与谷歌地图对齐。其中黄线表示基于VINS-Mono算法的估计轨迹,红线表示闭环。

        3、应用

        将VINS-Mono移植到移动端设备,并且展示了一个简单的AR应用,如图5所示。将此实现命名为VINS-Mobile,硬件设备为iPhone,640 x 480分辨率的图像采集频率为30Hz,同时IMU数据由内置的InvenSense MP67B六轴陀螺仪和加速度以100Hz频率采集。

图5 左图是VINS-Mobile的AR应用图片,右图是估计轨迹。(a)开始:VINS-Mobile在开始位置初始化且一个虚拟盒子被放置在平面上。(b)结束:VINS-Mobile最终轨迹,总长约264米。

Abstract

One camera and one low-cost inertial measurement unit (IMU) form a monocular visual-inertial system (VINS), which is the minimum sensor suite (in size, weight, and power) for the metric six degrees-of-freedom (DOF) state estimation. In this paper, we present VINS-Mono: a robust and versatile monocular visual-inertial state estimator. Our approach starts with a robust procedure for estimator initialization. A tightly coupled, nonlinear optimization-based method is used to obtain highly accurate visual-inertial odometry by fusing preintegrated IMU measurements and feature observations. A loop detection module, in combination with our tightly coupled formulation, enables relocalization with minimum computation. We additionally perform 4-DOF pose graph optimization to enforce the global consistency. Furthermore, the proposed system can reuse a map by saving and loading it in an efficient way. The current and previous maps can be merged together by the global pose graph optimization. We validate the performance of our system on public datasets and real-world experiments and compare against other state-of-the-art algorithms. We also perform an onboard closed-loop autonomous flight on the microaerial-vehicle platform and port the algorithm to an iOS-based demonstration. We highlight that the proposed work is a reliable, complete, and versatile system that is applicable for different applications that require high accuracy in localization. We open source our implementations for both PCs (https://github.com/HKUST-Aerial-Robotics/VINS-Mono) and iOS mobile devices (https://github.com/HKUST-Aerial-Robotics/VINS-Mobile).


如果你对本文感兴趣,想要下载完整文章进行阅读,可以关注【泡泡机器人SLAM】公众号


点击阅读原文,即可获取本文下载链接。

欢迎来到泡泡论坛,这里有大牛为你解答关于SLAM的任何疑惑。

有想问的问题,或者想刷帖回答问题,泡泡论坛欢迎你!

泡泡网站:www.paopaorobot.org

泡泡论坛:http://paopaorobot.org/bbs/


泡泡机器人SLAM的原创内容均由泡泡机器人的成员花费大量心血制作而成,希望大家珍惜我们的劳动成果,转载请务必注明出自【泡泡机器人SLAM】微信公众号,否则侵权必究!同时,我们也欢迎各位转载到自己的朋友圈,让更多的人能进入到SLAM这个领域中,让我们共同为推进中国的SLAM事业而努力!

商业合作及转载请联系liufuqiang_robot@hotmail.com

登录查看更多
19

相关内容

Mono 是一个由 Novell 公司(由Ximian发起,并由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程。
基于视觉的三维重建关键技术研究综述
专知会员服务
154+阅读 · 2020年5月1日
专知会员服务
31+阅读 · 2020年4月24日
专知会员服务
84+阅读 · 2019年12月13日
【泡泡图灵智库】协同视觉-惯性SLAM
泡泡机器人SLAM
28+阅读 · 2019年9月6日
【泡泡图灵智库】基于点线的直接单目视觉里程计(ICRA)
Real-time Scalable Dense Surfel Mapping
Arxiv
5+阅读 · 2019年9月10日
Monocular Plan View Networks for Autonomous Driving
Arxiv
6+阅读 · 2019年5月16日
Structure Aware SLAM using Quadrics and Planes
Arxiv
4+阅读 · 2018年8月13日
Arxiv
4+阅读 · 2017年11月4日
VIP会员
Top
微信扫码咨询专知VIP会员