ORBSLAM2理论与实战(1) SLAM认识

28 篇文章 8 订阅

1、SLAM(同步定位与建图):

       SLAM是Simultaneous Localization and Mapping的缩写,意为“同时定位与建图”。它是指运动物体根据传感器的信息,一边计算自身位置,一边构建环境地图的过程。目前,SLAM的应用领域主要有机器人、虚拟现实和增强现实。其用途包括传感器自身的定位,以及后续的路径规划、场景理解。

随着传感器种类和安装方式的不同,SLAM的实现方式和难度会有很大差异。按传感器来分,SLAM主要分为激光、视觉两大类。其中,激光SLAM研究较早,理论和工程均比较成熟。视觉方案目前大部分实验室研究阶段,实际产品应用很少。SLAM研究自1988年提出以来,已经过了近三十年。早期SLAM研究侧重于使用滤波器理论,最小化运动体位姿和地图的路标点的噪声。21世纪之后,学者们开始借鉴SfM(Structure from Motion)中的方式,以优化理论为基础求解SLAM问题。这种方式取得了一定的成就,并且在视觉SLAM领域中取得了主导地位。

  • 激光传感器:激光传感器可以直接获得相对于环境的直接距离信息,从而实现直接相对定位,对于激光传感器的绝对定位及轨迹优化可以在相对定位的基础上进行。
  • 视觉传感器:视觉传感器很难直接获得相对于环境的直接距离信息,而必须通过两帧或多帧图像来估计自身的位姿变化,再通过累积位姿变化计算当前位置。这种方法更类似于直接用里程计进行定位,即视觉里程计(Visual Odometry)。里程计的测量积分后才相当于激光传感器直接获得的定位信息,这就是图优化SLAM框架中的前端。而后端对定位和位姿轨迹的优化本质上与激光传感器的优化相同,都基于最优估计的理论框架进行。

2、视觉SLAM发展:

视觉定位

机器人运动过程中构建环境模型和地标,打造室内“视觉GPS”系统

 

地图构建

通过多传感器融合技术实时构建高精度,可持久使用的室内地图

 

语义地图

使用深度神经网络对地图信息进行分割理解,形成具有丰富语义信息的室内地图

 

应用场景

AR、机器人、无人机、无人驾驶等领域, 就像移动互联网时代的手机定位一样。

 

 

有理解力的SLAM:语义SLAM,精准感知并适应环境。将语义分析与SLAM有效融合,增强机器对环境中相互作用的理解能力,为机器人赋予了复杂环境感知力和动态场景适应力。

有广度的SLAM:100万平米强大建图能力。借助高效的环境识别、智能分析技术,室内外全场景范围高达100万平米的地图构建能力。

有精度的SLAM:高精度定位领先算法。可在任何地点进行开机识别、全局定位,精准度高达±2cm。

有时效的SLAM:动态地图实时更新。根据传感器回传数据,与原有地图进行分析比对,完成动态实时更新,实现life-long SLAM。

3.视觉SLAM框架

                      

整个视觉SLAM流程包括以下步骤。

  1. 传感器信息读取。在视觉SLAM中主要为相机图像信息的读取和预处理。如果是在机器人中,还可能有码盘、惯性传感器等信息的读取和同步。
  2. 视觉里程计(Visual Odometry,VO)。视觉里程计的任务是估算相邻图像间相机的运动,以及局部地图的样子。VO又称为前端(Front End)。
  3. 后端优化(Optimization)。后端接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。由于接在VO之后,又称为后端(Back End)。
  4. 回环检测(Loop Closing)。回环检测判断机器人是否到达过先前的位置。如果检测到回环,它会把信息提供给后端进行处理。
  5. 建图(Mapping)。它根据估计的轨迹,建立与任务要求对应的地图。

视觉里程计

  视觉里程计就是利用一个图像序列或者一个视频流,计算摄像机的方向和位置的过程。一般包括图像获取后、畸变校正、特征检测匹配或者直接匹配对应像素、通过对极几何原理估计相机的旋转矩阵和平移向量。

后端优化
  后端优化理论上来说,如果视觉里程计模块估计的相机的旋转矩阵R和平移向量t都正确的话,我们就能得到完美的定位和建图了。但实际试验中,我们得到的数据往往有很多噪声,且由于传感器的精度、错误的匹配等,都对造成结果有误差。并且由于我们是只把新的一帧与前一个关键帧进行比较,当某一帧的结果有误差时,就会对后面的结果产生累计误差,最后的结果肯定误差越来越大。为了解决这个问题,引入后端优化。 
  后端优化一般采用捆集调整(BA)、卡尔曼滤波(EKF)、图优化等方式来解决。其中基于图优化的后端优化,效果最好。Graph-based SLAM一般使用g2o求解器,进行图优化计算。 
闭环检测
  后端优化可能得到一个比较优的解,但当运动回到某一个之前去过的地方,如果我们能认出这个地方,并找到那个时候的关键帧进行比较,我们就可以得到比单用后端优化更准确更高效的结果。闭环检测就是要解决这个问题。 
  闭环检测有两种方式,一是根据估计出来的相机的位置,看是否与之前否个位置邻近;另外一种是根据图像,去自动识别出来这个场景之前到过,并找到那时候的关键帧。现在比较常用的是后一种方法,其实是一个非监督的模式识别问题。比较常用的方法是使用Bag-of-Words(BOW),ORB-SLAM就是使用这个方法来进行闭环检测
 

经典的视觉SLAM框架是过去十几年的研究成果。这个框架本身及其所包含的算法已经基本定型,并且已经在许多视觉程序库和机器人程序库中提供。依靠这些算法,我们能够构建一个视觉SLAM系统,使之在正常的工作环境里实时定位与建图。因此,我们说,如果把工作环境限定在静态、刚体,光照变化不明显、没有人为干扰的场景,那么,这个SLAM系统是相当成熟的了。

4、SLAM与视觉里程计(Visual Odometry):

人们有时候会混淆SLAM和视觉里程计的概念。应该说,视觉里程计是SLAM的一个模块,其目的在于增量式地估计相机运动。然而,完整的SLAM还包括添加回环检测和全局优化,以获得精确的、全局一致的地图。

视觉里程计通常作为SLAM系统的前端。它增量式的计算方法能估计邻近帧间的相机运动,但这也意味着邻近帧间的误差会影响之后的轨迹估计,意味着它会随着时间推移,产生漂移。同时,视觉里程计也不含有建图模块。一个完整的SLAM系统会关心相机轨迹和地图的全局一致性,但这也意味着需要更多的计算资源来计算全局的优化。在资源有限、不关心全局路径的场合(如无人机的着陆、短时间控制中),可以考虑只使用视觉里程计,而不必使用完整的SLAM。

5、SLAM和SFM:

视觉SLAM中大量使用了SFM中的方法,如特征点跟踪、捆集优化(Bundle Adjustment)等,以至于许多研究者把它们视为同一个研究领域。然而,尽管方法上很相似,SLAM和SFM的侧重点是不同的。SLAM的应用场合主要在机器人和VR/AR,计算资源有限,需要很强的实时性,故侧重点在于,如何在有限的资源里快速地对相机进行定位。而SFM方法通常是离线的,可以调用大量计算资源进行长时间的计算,侧重于重建出更精确、美观的场景。

 

 

参考:

1.高博视觉十四讲:从理论到到实践

2. 微信公总号: 涛涛CV   文章名称为  视觉SLAM的技术总结

https://mp.weixin.qq.com/s?__biz=MzIzOTE3ODk5NQ==&mid=2649635993&idx=1&sn=62da7eb22d9748af7ab341a2b0b9767b&chksm=f1349905c643101329f22c4b4ebefd56a193533d2fc062e188418ef3f74d5f37559aa51f628c&mpshare=1&scene=1&srcid=0515narwyRpEu8U30bGisHWI#rd

3.https://yq.aliyun.com/articles/79457?utm_campaign=wenzhang&utm_medium=article&utm_source=QQ-qun&2017511&utm_content=m_20422

4.https://blog.csdn.net/u010128736/article/details/53141681

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值