文章目录

  • 1.VIO 松耦合/紧耦合。
  • 2. 相机和IMU的缺点及互补性
  • 3. VIO融合算法流程及其模块分解:
  • 4. VIO 算法核心:
  • 5. 实验结果与总结:
  • 6. 参考文献:

1.VIO 松耦合/紧耦合。

Visual-Inertial Odometry(VIO)即视觉惯性里程计,有时也叫视觉惯性系统(VINS,visual-inertial system),是融合相机和IMU数据实现SLAM的算法,根据融合框架的不同又分为松耦合和紧耦合。

其中VO(visual odometry)指仅视觉的里程计,T表示位置和姿态。松耦合中视觉运动估计和惯导运动估计系统是两个独立的模块,将每个模块的输出结果进行融合。

紧耦合则是使用两个传感器的原始数据共同估计一组变量,传感器噪声也是相互影响的。紧耦合算法比较复杂,但充分利用了传感器数据,可以实现更好的效果,是目前研究的重点。

2. 相机和IMU的缺点及互补性


相机和IMU融合有很好的互补性。首先通过将IMU 估计的位姿序列和相机估计的位姿序列对齐可以估计出相机轨迹的真实尺度,而且IMU 可以很好地预测出图像帧的位姿以及上一时刻特征点在下帧图像的位置,提高特征跟踪算法匹配速度和应对快速旋转的算法鲁棒性,最后IMU 中加速度计提供的重力向量可以将估计的位置转为实际导航需要的世界坐标系中。

随着MEMS器件的快速发展,智能手机等移动终端可以便捷地获取IMU数据和摄像头拍摄数据,融合IMU 和视觉信息的VINS 算法可以很大程度地提高单目SLAM 算法性能,是一种低成本高性能的导航方案,在机器人、AR/VR 领域得到了很大的关注。

3. VIO融合算法流程及其模块分解:


整个流程图可以分解为五部分:数据预处理、初始化、局部非线性优化、回环检测和全局优化。

各个模块的主要作用是:

图像和IMU数据预处理:对于图像,提取特征点,利用KLT金字塔进行光流跟踪,为后面仅视觉初始化求解相机位姿做准备。对于IMU,将IMU数据进行预积分,得到当前时刻的位姿、速度、旋转角,同时计算在后端优化中将要用到的相邻帧间的预积分增量,及预积分的协方差矩阵和雅可比矩阵。

初始化:初始化中,首先进行仅视觉的初始化,解算出相机的相对位姿;然后再与IMU预积分进行对齐求解初始化参数。

局部非线性优化:对应流程图中滑动窗口的视觉惯导非线性优化,即将视觉约束、IMU约束放在一个大目标函数中进行优化,这里的局部优化也就是只优化当前帧及之前的n帧的窗口中的变量局部非线性优化输出较为精确的位姿。

回环检测:回环检测是将前面检测的图像关键帧保存起来,当再回到原来经过的同一个地方,通过特征点的匹配关系,判断是否已经来过这里。前面提到的关键帧就是筛选出来的能够记下但又避免冗余的相机帧(关键帧的选择标准是当前帧和上一帧之间的位移超过一定阈值或匹配的特征点数小于一定阈值)。

全局优化:全局优化是在发生回环检测时,利用相机约束和IMU约束,再加上回环检测的约束,进行非线性优化。全局优化在局部优化的基础上进行,输出更为精确的位姿。

4. VIO 算法核心:

局部优化会用到边缘化,仅用局部优化精度低,全局一致性差,但是速度快,IMU利用率高;仅用全局优化精度高,全局一致性好,但是速度慢,IMU利用率低;两者侧重点不同,所以将两者结合,可以优势互补。

因此小编设计实验采用局部优化和全局优化融合的方法。

局部优化是滑动窗口内相机帧的优化全局优化是所有关键帧的优化,两者结合会产生边缘帧冲突的问题,因为局部优化会固定滑动窗口边缘帧,而全局优化发生回环检测的时候则会固定回环起点的帧。这里的改进就是采用相对的位姿边缘化,即边缘化以后的点是相对于它上一时刻关键帧的位姿而不是全局的位姿,这样局部优化边缘化相对位姿(关键帧),扔给全局优化整体优化。局部边缘化和全局边缘化的结合部分是关键帧。

相对边缘化可以具体解释为,相对边缘化的参考坐标系不再是世界坐标系,而是与当前帧共视且距离最近的一个关键帧的相机系(设为第k0帧)。视觉约束可以表示为:

区别于绝对边缘化的视觉约束

5. 实验结果与总结:

实验一:无人机数据集上的实验

数据集采用了欧盟机器人挑战数据集(EuRoC)。EuRoC 数据集使用 Asctec Firefly 六旋翼飞行器在仓库和房间采集数据,数据集中包括以20Hz采集的相机图像和200Hz的IMU数据,以及运动真值。

实验结果如下:

实验结果可见,融合优化的轨迹和真实轨迹很接近,而仅使用局部优化的定位结果误差不断累积。
实验二:车载数据上的实验

该车载数据是在北京市朝阳区某小区采集的,在数据采集阶段,车辆以5km/h 到 30km/h 的速度行驶,一共行驶2271m。

实验结果如下:

6. 参考文献:

  1. J. Delmerico. A Benchmark Comparison of Monocular Visual-Inertial OdometryAlgorithms for Flying Robots. 2018. ICRA
  2. T. Qin. VINS-Mono: A robust and versatile monocular visual-inertial state estimator. arXivpreprint arXiv: 1708.03852, 2017.
  3. N. Trawny. Indirect KalmanFilter for 3D Attitude Estimation. 2005. Sola. Quaternion kinematics for error-state kalmanfilter. 2017.
  4. K. Eckenhoff. Decoupled, Consistent Node Removal and Edge sparsificationfor graph-based SLAM. 2016.
  5. G. Sibley. Sliding window filter with application to planetary landing. 2010.
  6. S. Leutenegger. Keyframe-Based Visual-Inertial SLAM Using Nonlinear Optimization. 2015.
  7. H. Liu. ICE-BA: Incremental, consistenand efficient bundle adjustment for visual-inertial slam. 2018. CVPR.
  8. H. Liu. Robust keyframe-based dense SLAM with an RGB-D camera. 2017.

VIOSLAM 综述相关推荐

  1. 1-1 机器学习和深度学习综述-paddle

    课程>我的课程>百度架构师手把手教深度学习>1-1 机器学习和深度学习综述> 1-1 机器学习和深度学习综述 paddle初级课程 王然(学生) Notebook 教育 初级深 ...

  2. 深度学习编译器综述The Deep Learning Compiler

    深度学习编译器综述The Deep Learning Compiler The Deep Learning Compiler: A Comprehensive Survey 参考文献: https:/ ...

  3. ADAS系统长篇综述(下)

    ADAS系统长篇综述(下) 四.ADAS架构设计的进化阶梯 前面谈到的产品的商业化推广渗透和产品的功能演进渗透,目的是让大家去概念化.当然,最后的赢家一定是实干者,能够在具体技术实现路径上进行深度耕耘 ...

  4. YOLOv3和YOLOv4长篇核心综述(下)

    YOLOv3和YOLOv4长篇核心综述(下) 4.3.3 Neck创新 在目标检测领域,为了更好的提取融合特征,通常在Backbone和输出层,会插入一些层,这个部分称为Neck.相当于目标检测网络的 ...

  5. 服务器技术综述(四)

    服务器技术综述(四) .

  6. 服务器技术综述(三)

    服务器技术综述(三)

  7. 服务器技术综述(二)

    服务器技术综述(二)

  8. 服务器技术综述(一)

    服务器技术综述(一) 本文对服务器的概念.服务器重要部件技术和架构组成,并且对磁盘.RAID知识,网卡等知识做了深度详细介绍. 简单来说,服务器就是在网络中为其他客户机提供服务的计算机:具有高性能.高 ...

  9. 长篇自动驾驶技术综述论文(下)

    长篇自动驾驶技术综述论文(下) 三维目标检测 鉴于经济性,可用性和研究的广泛性,几乎所有的算法都使用相机作为主要的感知方式.把相机应用在ADS中,限制条件除了前面讨论到的光照等因素外,还有一个问题就是 ...

最新文章

  1. 树莓派安装docker
  2. DSP的GEL文件介绍
  3. OSI,TCP/IP,五层协议的体系结构,以及各层协议
  4. 问题记录之用poi生成图片并插入到word时,图片中的中文显示不出来
  5. 基于Android的校园二手商品交易平台,基于Android校园二手交易网站毕业设计论文.doc...
  6. ie网络集合代理无法启动_网络故障诊断70例!经典老文了!
  7. Redis Lua脚本中学教程(上)
  8. ASP.NET Core之跨平台的实时性能监控
  9. centos7php自启动,centos7系统下nginx安装并配置开机自启动操作
  10. 浅析Lambda 表达式
  11. 腾讯九次面试C++,如今面试题了如指掌
  12. 技嘉z77主板msata速度_技嘉小雕、微星迫击炮、华硕电竞特工三款主板对比
  13. 存储服务器格式化恢复方法
  14. emoji android to iphone,Emoji Android to iphone
  15. python实现不重复排列组合_python 实现排列组合
  16. LM09丨费雪逆变换反转网格策略
  17. 通过CrossTalk在Delphi中使用ADO.Net(1)
  18. GRBL四:GRBL框架解析(转载)
  19. 让Enter键实现Tab键的功能
  20. Nuxt.js打包后报错DOMException: Failed to execute appendChild on Node

热门文章

  1. 2021世界移动通信大会 | 5G时代下,苏宁如何看待未来零售发展?
  2. cloudera hue
  3. NLP--优化器(Optimizer)总结【分析】
  4. 7 个优秀的 UI 交互动画技巧
  5. 新品发布怎样让媒体报道宣传?企业官网如何推广比较有限?
  6. 【web渗透】专栏文章汇总
  7. 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 B题
  8. Piwigo画廊的安装
  9. 玩转树莓派(六)使用C语言 通过BCM2835库控制GPIO
  10. java 将数据加载到内存中_java 将数据加载到内存中的操作