小觅智能 | VINS 学习笔记

VINS 基本介绍

VINS-Mono 和 VINS-Mobile 是香港科技大学沈劭劼老师开源的单目视觉惯导 SLAM 方案。2017年发表于《IEEE Transactions on Robotics》。另外,VINS 的最新一篇论文获得了 iROS 2018 最佳学生论文奖。它是基于优化和滑动窗口的 VIO ,使用 IMU 预积分构建紧耦合框架,同时还有自动初始化,在线外参标定,重定位,闭环检测,以及全局位姿图优化功能。

VINS-Mono 是基于单目视觉惯性系统的实时 SLAM 框架, 是目前非常先进的单目 VIO 算法,更是视觉与 IMU 的融合中的经典之作,其定位精度可以媲美 OKVIS,而且具有比 OKVIS 更加完善和鲁棒的初始化以及闭环检测过程,代码在 Linux 上运行,并与 ROS 完全集成。VINS-Mono 主要用于自主无人机的状态估计和反馈控制,但它也能够为 AR 应用提供精确的定位。VINS-Mobile 可以运行在 iOS 系统,值得一提的是,沈劭劼老师开源了 ROS 和 iOS 版本,前端写的很简洁,代码非常清晰,值得大家学习,链接:https://arxiv.org/pdf/1708.03852.pdf。

VINS 的整体系统框架图

小觅智能 | VINS 学习笔记_第1张图片

前端基于 KLT 跟踪算法, 后端基于滑动窗口的优化(采用 ceres 库), 基于 DBoW 的回环检测。

整体框架分为五部分,如上图所示:

  1. Measuremen Preprocessing :观测值数据预处理,包含图像数据跟踪IMU数据预积分;

  2. Initialization:初始化,包含单纯的视觉初始化和视觉惯性联合初始化;

  3. Local Visual-Inertia BA and Relocalization:局部 BA 联合优化和重定位,包含一个基于滑动窗口的 BA 优化模型;

  4. Global Pose Graph Optimization:全局图优化,只对全局的位姿进行优化;

  5. Loop detection:回环检测。

VINS 为什么采用「视觉 + IMU」 融合?

单一的传感器不能适用所有的场景,比如视觉传感器在大多数纹理丰富的场景中效果很好,但是如果遇到玻璃,白墙等特征较少的场景,基本上无法工作,而通过多个传感器的融合可以达到理想的定位效果。
小觅智能 | VINS 学习笔记_第2张图片
小觅双目摄像头采用了「双目+惯导+结构光」的融合方案

虽然 IMU 长时间使用有非常大的累积误差,但是在短时间内,其相对位移数据又有很高的精度,所以当视觉传感器失效时,融合 IMU 数据,能够提高其定位的精度。与此同时,视觉和惯性测量的互补特性, 使它们特别适合融合, 而鲁棒性和准确的定位与地图绘制是任何移动机器人都需要解决的主要需求。此外, 这两种传感器在大多数智能手机中都有,融合可以有效解决移动手机上的视觉-惯性同时定位与制图。

总结:

视觉与 IMU 的融合可以借助 IMU 较高的采样频率,进而提高系统的输出频率。
视觉与 IMU 的融合可以提高视觉的鲁棒性,如视觉 SLAM 因为某些运动或场景出现的错误结果。
视觉与 IMU 的融合可以有效的消除 IMU 的积分漂移。
视觉与 IMU 的融合能够校正 IMU 的 Bias。
单目与 IMU 的融合可以有效解决单目尺度不可观测的问题。

小觅双目摄像头标准版跑 VINS 实测:
小觅双目摄像头标准版跑 VINS 实测:

VINS 相较 OKVIS 方案搭建很快,CPU 占用率低,更适合朋友们快速上手。

VINS 未来方向

相机和 IMU 的天然互补性和智能手机的普及,使得视觉惯性里程计 VIO 近几年很流行,苹果的 ARKit 和谷歌的 ARCore 都是 VIO 的典型应用。VIO 为将来 SLAM 的小型化与低成本化提供了一个有效的方向,而且结合稀疏直接法,有望在低端硬件上取得良好的 SLAM 或 VO 效果,是非常有未来前景的。

你可能感兴趣的:(技术文章)