ORB-SLAM2相关内容

@[TOC]ORB-SLAM2简介
#摘要
ORB-SLAM2是基于单目,双目和RGB-D相机的一套完整的SLAM方案。它能够实现地图重用,回环检测和重新定位的功能。无论是在室内的小型手持设备,还是到工厂环境的无人机和城市里驾驶的汽车,ORB-SLAM2都能够在标准的CPU上进行实时工作。ORB-SLAM2在后端上采用的是基于单目和双目的光束法平差优化(BA)的方式,这个方法允许米制比例尺的轨迹精确度评估。此外,ORB-SLAM2包含一个轻量级的定位模式,该模式能够在允许零点漂移的条件下,利用视觉里程计来追踪未建图的区域并且匹配特征点。
视觉SLAM仅仅通过一个单目相机就能够完成。单目相机也是最便宜也是最小巧的传感器设备。然而深度信息无法从单目相机中观测到,地图的尺度和预测轨迹是未知的。此外,由于不能从第一帧当中进行三角测量化,单目视觉SLAM系统的启动往往需要多个视角或者滤波技术才能产生一个初始化的地图。最后,单目SLAM可能会造成尺度漂移,以及在探索的过程中执行纯旋转的时候可能会失败。通过使用一个双目或者RGB-D相机将会解决这些问题,并且能够成为一种更加有效的视觉SLAM的解决方案。
在单目ORB-SLAM[1]的基础上提出ORB-SLAM2,有以下贡献:

  1. 这是首个基于单目,双目和RGB-D相机的开源SLAM方案,这个方案包括,回环检测,地图重用和重定位。
  2. 我们的RGB-D结果说明,光速法平差优化(BA)比ICP或者光度和深度误差最小方法的更加精确。
  3. 通过匹配远处和近处的双目匹配的点和单目观测,我们的双目的结果比直接使用双目系统更加精确。
  4. 针对无法建图的情况,提出了一个轻量级的定位模式 ,能够更加有效的重用地图。
    ORB-SLAM2由三个平行的线程组成,跟踪,局部建图和回环检测。在一次回环检测后,会执行第四个线程,去执行BA优化。跟踪的线程在双目或者RGB-D输入之前进行,因此剩下的系统模块能够跟传感器模块独立运行。
    #ORB-SLAM2
    ##这个系统主要有3个并行的线程:
    1、通过寻找对局部地图的特征,并且进行匹配,以及只运用BA算法来最小化重投影误差,进行跟踪和定位每帧的相机。
    2、运用局部的BA算法设置局比地图并且优化。
    3、回环检测检能够通过执行位姿图的优化来更正累计漂移误差。在位姿优化之后,会启动第四个线程来执行全局BA算法,来计算整个系统最优结构和运动的结果。
    检测流程:
    Kinect生成地图【地图主要可见的有关键帧(包括相机的pose,相机的内参,ORB特征),3D的地图点( 空间中3D位置,法线方向,ORB的描述子),词袋向量,共视图等】 → 保存地图 → 加载地图和重定位
    优点:
    缺点:
    1、不能解决实际问题。它基于特征点法,建的图是稀疏的,只能满足定位需求,而无法提供导航、避障、交互等诸多功能。而且目前还没有开放存储和读取地图后重新定位的功能。
    2、受光照和车辆、行人等动态物体的影响太大
    后续工作:对前端数据进行轨迹的优化和回环,稠密建图
    【备注:1、保存稀疏地图的MapPoint和KeyFrame成.bin格式 ;2、如果保存成pcd格式,那么关键帧与关键点之间的关系没有办法保存,即pcd保存的地图信息并不完整】
    ##SLAM算法对比:
    一:视觉和IMU前端数据处理
    1.对于视觉前端做法基本分为三种:
    ①特征点提取(feature detection)+根据描述子匹配特征点
    orbslam, okvis
    优点:因为有描述子,因此对地图的维护很方便(包括重定位,闭环,全局优化)
    尤其是对室内环境,当视觉上共视关系较多的时候,这种方法能很大提高定位精度和局部的稳定性。室内移动机器人建议使用这种方法
    缺点:每帧图像都要提取特征点数量的描述子,浪费时间;在tracking过程中,如果运动过快(图像出现模糊)比较容易tracking failed,而光流要好一些
    ②特征点提取+光流跟踪
    vins,svo的初始化
    优点:简单高效,tracking要鲁棒一些
    缺点:不容易构建全局map,视觉约束只靠滑窗里面的关键帧。
    比如vins的闭环和重定位是需要另外再提取特征点和描述子的;但后端做得好
    ③直接法
    lsdslam,dso
    优点:在弱纹理下,鲁棒性好
    缺点:不容易维护全局地图,对光照影响较大,高精度地图中无法使用等。
    2.对于IMU前端:
    IMU前端基本都是使用预积分的方式,和积分的区别(预积分把重力考虑进去了)。imu预积分主要是在两帧图像之间更新imu的5个状态变量(p, v, q, ba, bg)的Jacobian和covariance。
    PS:为了使得非线性优化中,不用每次改变位姿后,积分需要重新计算的问题。
    现在改变位姿(速度,位移,旋转四元数关于世界坐标系的),预积分内的项保持不变。
    改变ba,bg(加速度和陀螺仪偏移)后,预积分的项可以通过泰勒一阶展开来进行更新。
    jacobian是单位矩阵,主要是为了求一阶近似的p, v,q;covariance是零矩阵,主要是为了求imu误差项的权重
    3.IMU初值确定:一般结合vins mono 等的视觉信息来求
    二:后端优化
    滤波:不需要做边缘化,重定位难。因为不需要迭代,速度略快。
    **优化:**需要边缘化(比较耗时间),重定位容易。迭代优化,速度略慢。
    VINS-Mono与OKVIS类似,是基于非线性优化器优化一个滑窗内的关键帧,帧间通过鲁棒的角点关联。在系统初始化阶段,通过松耦合的方式融合多种传感器;在重定位阶段,则通过紧耦合的方式融合传感器。在优化之前,也通过IMU预积分减少计算量。除此至外,VINS还提供了基于4DoF的位姿图优化和回环检测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值