精华内容
下载资源
问答
  • slam的研究历史

    千次阅读 2018-07-04 20:42:07
    国内外研究现状、发展动态描述即时定位与地图构建(Simultaneous Localization and Mapping, 即SLAM)的目的是让机器人在未知环境中持续地构建环境地图,并同时在地图中给自己定位。定位和建图两个问题相互依赖,...

    国内外研究现状、发展动态描述

    即时定位与地图构建(Simultaneous Localization and Mapping, 即SLAM)的目的是让机器人在未知环境中持续地构建环境地图,并同时在地图中给自己定位。定位和建图两个问题相互依赖,准确的定位依赖于正确的地图,而构建正确的地图又需要准确的定位,这是一个迭代的过程[1]。

     进入2000年以后,随着计算机处理性能的大幅提升,以各种摄像头为传感器的SLAM逐渐成为研究新热点,并在近年开始有市场化的迹象。视觉传感器主要分为三种:1. 单目摄像头(Monocular Camera)2. 双目摄像头(BinocularCamera)3. 深度摄像头(RGB-D Camera)深度摄像头可以通过time of flight等方法来直接获得图像及对应的深度信息,优点在于方便获得深度数据,缺点在于成本高,体积大,室外环境基本报废。双目摄像头可以通过三角方法计算出深度信息,市面上有一些深度摄像头也是直接基于双摄像头来做的。然而双目摄像头在目标距离较远的时候会退化成单目。因此近年来大量的研究都是围绕单目进行的。单目SLAM可以通过临近图像匹配计算出摄像头位姿的变换[2],在两个视角上进行三角测距又可以得出对应点的深度信息[3]。通过这样迭代的过程可以实现定位及建图[4]。原理听起来很直观,然而现实环境中大量的测量噪声,计算误差造成了SLAM问题的无限复杂。于是解决不确定性问题是SLAM的核心。不确定性问题是很多研究领域的核心,但其实并没有很多的解决办法。大多数不确定性问题都用贝叶斯网络进行建模的[5],所以早期的SLAM问题主要都是在贝叶斯框架下进行讨论的,在该框架下主要有两种计算方案:1. EKF-SLAM (extended kalman filters ). 利用拓展卡尔曼滤波器对机器人位置进行估计[6]。2. FastSLAM (Rao-Blackwellized particle filters). 利用粒子滤波器[7]进行位置的估计。但由于基于Filter的SLAM采用了markov假设[8],仅考虑最近两组数据的递推关系,会导致误差累加不可恢复,因此近年来基于filter的SLAM已经基本被考虑了全局数据的Graph-based所取代:3. Graph-BasedSLAM。把SLAM问题建模成优化问题[9],大多采用最小二乘法进行求解。早期的Graph based SLAM认为如果所有的landmark和所有的state都有连接,那么状态矩阵的规模将非常巨大,无法求解。但后来研究发现其实每一个state只与少量的landmark有链接,整个状态矩阵其实是稀疏(sparse)的[10],求解可以非常快。基于Gprah的模型[11]不像Filter仅考虑最近的两个状态,进行局部优化,而是对之前的所有状态一起做优化,相当于一个全局优化。于是越来越多的SLAM系统转而使用Graph进行建模求解。通用的Graph SLAM求解器有GTSAM, g2o等[12]。基于视觉传感器的地图通常分三类:1. feature map2. semi-densemap3. dense map。Monocular SLAM的起源是Andrew Davision基于EKF模型[13]的MonoSALM[14],随后他在oxford的师父David Murray发表了Keyframe based的PTAM,是现在大多数SLAM系统的基石。最近两年比较流行的单目SLAM有两个,一个是TU Munich的LSD-SLAM,该工作不基于图像特征点匹配,做运动估计,而是直接提取对比图像中梯度变化明显的区域,建立semi-dense的地图[15]。第二个是University of Zaragoza的ORB-SLAM,该工作本质上与PTAM区别不大,但是作者通过很强的代码实现能力把该系统做成了目前功能最完善最稳定的SLAM系统。ORB-SLAM采用高速的ORB图像特征点,加入了SLAM系统中很重要的re-localizing和loop closure模块,并使用g2o进行全局误差最小化。该系统在多个公开dataset上取得了非常好的效果,经测试,在自然环境下也有一定的实用性。最近作者又放出了ORB-SLAM2,精简了环境配置的繁琐过程,安装更方便,工作更稳定,且可以不依赖ROS工作。

    语义地图方面,CNN-SLAM[16]为今年CVPR的文章,是比较完整的pipeline,将LSD-SLAM里的深度估计和图像匹配都替换成基于CNN的方法,取得了更为robust的结果,并可以融合语义信息。类似的工作还有论文[17]。VINet[18]是今年AAAI的文章,利用CNN和RNN构建了一个VIO,即输入image和IMU信息,直接输出估计的pose。文献[19]是Magic Leap放出来的文章,说是Deep SLAM,其实只是用CNN做了SLAM中提取特征点和匹配特征点的两个模块,在CPU上实时。文献[20]是Google 今年CVPR的oral文章,利用CNN学习一个无监督的深度估计和pose估计网络,代码见tinghuiz/SfMLearner。SfM-Net[21]利用监督学习也干了类似的工作。语义地图[22]、回环检测等也有一些工作。


    展开全文
  • SLAM_1 | SLAM问题的历史以及基本表述

    千次阅读 2018-11-29 15:52:08
    本文内容为SLAM的一篇经典综述文章「 Simultaneous Localization and Mapping(SLAM) : Part 1」的学习笔记。这篇综述著于2006年,该笔记是博主对这篇文章的个人理解。由于博主水平有限,肯定会有很多错误。笔者的...

    作者:药丸
    成文于2018年11月29日

    写在前面

    本文内容为SLAM的一篇经典综述文章「Simultaneous Localization and Mapping(SLAM) : Part 1」的学习笔记。这篇综述著于2006年,是SLAM领域的经典入门综述。该笔记是博主对这篇文章的个人理解。由于博主水平有限,估计文中有不少错误,希望高手能够指出。笔者的主要目的是对SLAM的很多基础概念做一入门的了解。限于笔者自身水平有限,很多地方可能理解的不对,想学习的同学建议大家还是直接去看原文。

    概念

    loop closure: 确定飞行器已返回之前访问过的位置的的问题。

    joint posterior distribution:联合后验分布

    conditionally independent:在概率论中,如果R的出现和B的出现在给定Y的条件概率分布中是独立事件,则两个事件R和B在给定第三事件Y的情况下是条件独立的。

    landmarks:顾名思义就是标志物,即场景中比较有辨识度的物体或者区域。

    consistent map:完全地图,是指不受障碍行进到房间可进入的每个角落的地图。

    Data Association:数据关联,也被称为一致性问题(Correspondence Problem),数据关联是指建立在不同时间、不同地点获得的数据之间的对应关系,以确定它们是否源于环境中同一物理实体的过程。

    SLAM问题的历史

    SLAM问题是这样的:一个在未知位置和未知环境中移动的机器人能否在建立环境地图的同时确定他自身的位置。

    从概念以及理论上来看,现在SLAM问题已经解决了,然而在实现更加普遍的SLAM问题以及建立更丰富的地图时,仍然有很多亟待解决的问题。

    probabilistic SLAM问题第一次在1986年提出,这是一个概率学方法刚刚开始被引入到机器人学和人工智能学的年代,有很多的研究者想要将估计理论方法应用到SLAM问题中。

    一年后,Smith and Cheesman and Durrant-Whyte将统计贝叶斯用在了描述 landmarks 和 几何不确定性之间的关系上。这项工作的一个核心是显示了对不同的Landmarks位置的估计之间必然存在高度的相关性,并且这种相关性会随着观测的增加而增加。

    在同一时期,Ayache and Faugeras进行了早期的视觉导航的研究。而Crowley and Chatila and Laumond用卡尔曼滤波完成了基于声呐的移动机器人导航。这两个研究有很多的相同之处,并启发Smith完成了一篇关于landmarks的文章,这篇文章揭示了当一个在陌生环境中移动的机器人对landmarks进行相对的估计时,这些landmarks一定都是互相相关的,这是因为在估计机器人的位置时的误差都是相似的。这项研究揭示了一个深刻的道理:一个对SLAM问题的完全解需要一对组合量:机器人的姿态以及每个landmarks的位置。而这就意味着我们需要估计一个巨长的状态向量(大概和地图中的landmarks数量一样多),并且还要进行landmarks数量的平方( O ( n 2 ) O(n^2) O(n2))数量级的运算。

    很重要的一点是,这项工作不关注整个地图绘制过程的收敛特性或其稳态行为。因为当时大家都假设地图估计的误差不会收敛,并且会无限地增长。相比于给定mapping问题的计算复杂度而不知道整个mapping收不收敛的问题,研究者们将重心更多地放在了对完全地图问题的一系列估计上。在研究过程中,大家为了避免对整个系统进行滤波,假设Landmarks之间的相关性是很小的来对landmarks之间进行解耦。也因为这个原因,大家将mapping问题和定位问题割裂开来了,SLAM问题的理论工作进入了瓶颈。

    随着人们对SLAM问题理解的逐渐加深,一个突破性的进展出现了。人们逐渐认识到如果他们将SLAM问题看做一个估计问题,那么误差将是收敛的。最重要的是,研究者们意识到了他们曾敬而远之的Landmarks之间的相关性是解决SLAM问题的关键,并且这种相关性越强,得到的效果越好。SLAM问题的结构以及「SLAM」这个提法在1995年时在一家移动机器人论文杂志上提出。基本的收敛理论以及最初的结果是Csorba做出来的。

    事实上这时候还有一些团队也在研究这个问题,他们管这个问题叫做CML(concurrent mapping and localization),他们在室内、室外和海底都做了相关的研究。

    在这一时期,大家主要做一些提高计算效率的研究,并解决在数据相关性和 loop closure 方面的问题。1999年机器人国际国际机器人研究会议是一次重要的会议,在这场会议上,大家第一次进行了针对SLAM问题的讨论,大家讨论了基于卡尔曼滤波的方法和基于概率学方法下SLAM问题的收敛性。

    在接下来的日子里,SLAM逐渐吸引了越来越多的实验室投入其中,2000年时ICRA会议有15位研究者搞这个,2002年时已经有了150位研究者,

    SLAM问题的结构和表述

    SLAM是这样一个过程:一个机器人在建立环境地图的同时也确定自身的位置。在这个问题中,机器人的移动轨迹和所有landmarks的位置都是「在线估计」,即不需要给出任何的边界条件或者初始条件。

    SLAM问题表述-图1

    下图为最基础的SLAM问题,我们需要机器人和landmark的位置,真实的位置无法被直接测量,观察是相对于机器人和landmarks之间的。
    在这里插入图片描述

    共用的定义

    如上图所示,一个小三角在空间中不断地移动,他所搭载的传感器能够测出它和landmarks之间的相对位置关系,在时间点k有如下定义

    • x k x_k xk:描述飞行器姿态和位置的向量。
    • u k u_k uk:在k-1时刻施加的控制变量,该控制变量能使得飞行器到达k-1时刻的 x x x
    • m i m_i mi:一个表示第i个landmark位置的向量,在这里,假设landmark的真实位置不变。
    • z i k z_{ik} zik:在时间点k从飞行器的位置观察landmarks的位置,这些观察将被写为 z k z_k zk
    • X X X是飞行器的位置轨迹, U U U是控制输入量的历史量, m m m是所有的landmarks, Z Z Z是所有观察到的landmarks的集合。

    基于概率学的SLAM

    数学描述

    在概率学的形式中,SLAM问题需要所有时刻的下述概率分布:
    (1) P ( x k , m ∣ Z 0 : k , U 0 : k , x 0 ) P(x_k,m | Z_{0:k}, U_{0:k}, x_0) \tag{1} P(xk,mZ0:k,U0:k,x0)(1)
    该概率分布描述了在给定的观察和控制输入情况下,landmark的位置和飞行器在k时刻的状态的联合后验分布密度。通常我们要用递归来解决这个问题。我们从时间k-1时的联合后验分布密度 P ( x k − 1 , m ∣ Z 0 : k − 1 , U 0 : k − 1 , x 0 ) P(x_{k-1},m | Z_{0:k-1}, U_{0:k-1}, x_0) P(xk1,mZ0:k1,U0:k1,x0) 开始考虑,我们可以通过贝叶斯理论算出控制量 u k u_k uk和观察量 z k z_k zk,进而算出这个密度。这种计算需要一个状态转移膜性和一个观察模型来描述控制输入和观察量的影响。

    其中观察模型描述了当飞行器的位置和landmarks的位置都已知时,做出观察 z k z_k zk的概率,我们通常把这个概率写作:
    (2) P ( z k ∣ x k , m ) P(z_k | x_k, m) \tag{2} P(zkxk,m)(2)
    一旦飞行器的位置和地图定义好了,我们很容易就能假设不同时刻的观察之间是条件独立的。。

    而一个飞行器的运动模型则可以被描述为状态转换的概率分布。
    (3) P ( x k ∣ x k − 1 , u k ) P(x_k | x_{k-1}, u_k)\tag{3} P(xkxk1,uk)(3)
    状态转换在这里被假设为了一个马尔科夫链,这个过程中,下一时刻的状态 x k x_k xk决定且只决定上一时刻 x k − 1 x_{k-1} xk1和控制量 u k u_k uk,并且状态的转换独立于观察和测绘的过程。

    SLAM算法现在就可以通过一个标准的两步递归预测相关度(按时间顺序更新,按测量更新)更新的形式:
    Time-update:按时间更新
    (4) P ( x k , m ∣ Z 0 : k − 1 , U 0 : k , x 0 ) = ∫ P ( x k ∣ x k − 1 , u k ) × P ( x k − 1 , m ∣ Z 0 : k − 1 , U 0 : k − 1 , x 0 ) d x k − 1 P(x_k, m | Z_{0:k-1}, U_{0:k}, x_0) = \int P(x_k | x_{k-1}, u_k) \times P(x_{k-1}, m | Z_{0:k-1, U_{0:k-1}, x_0})dx_{k-1}\tag{4} P(xk,mZ0:k1,U0:k,x0)=P(xkxk1,uk)×P(xk1,mZ0:k1,U0:k1,x0)dxk1(4)
    Measurement Update :按测量更新
    (5) P ( x k , m ∣ Z 0 : k , U 0 : k , x 0 ) = P ( z k ∣ x k , m ) P ( x k , m ∣ Z 0 : k − 1 , U 0 : k , x 0 ) P ( z k ∣ Z 0 : k − 1 , U 0 : k ) P(x_k, m | Z_{0:k}, U_{0:k}, x_0) = \frac{P(z_k | x_k, m) P(x_k, m | Z_{0:k-1}, U_{0:k}, x_0)}{P(z_k | Z_{0:k-1}, U_{0 : k})}\tag{5} P(xk,mZ0:k,U0:k,x0)=P(zkZ0:k1,U0:k)P(zkxk,m)P(xk,mZ0:k1,U0:k,x0)(5)

    方程4和方程5提供了计算联合后验分布密度 P ( x k , m ∣ Z 0 : k , U 0 : k , x 0 ) P(x_k, m | Z_{0:k}, U_{0:k}, x_0) P(xk,mZ0:k,U0:k,x0)的迭代步骤。值得一提的是地图构建问题可以等效为计算概率密度 P ( m ∣ X 0 : k , Z 0 : k , U 0 : k ) P(m | X_{0:k, Z_{0:k}, U_{0:k}}) P(mX0:k,Z0:k,U0:k),这种等效假设飞行器的位置 x k x_k xk在所有时刻都是已知的,这样我们就可以通过融合不同位置的地图m。反过来看,定位问题也可以被等效为计算概率密度 P ( x k ∣ Z 0 : k , U 0 : k , m ) P(x_k | Z_{0:k}, U_{0:k}, m) P(xkZ0:k,U0:k,m),同样的,为了计算飞行器的位置,这种等效要假设landmark的位置是已知的。

    结构描述

    从图示中可以看出,在估计位置和landmarks的真实位置之间误差常常会有一些误差。造成这些误差的原因大同小异:他们都来自在观测landmarks时的误差。这也说明了任何两个Landmark之间的位置估计都是高度相关的。特别的,这意味着即使每个landmarks的位置都不太精确,任意两个Landmarks之间的相对位置也可以被估计得很精确。从概率学的角度来讲,这意味着在 P ( m i ) P(m_i) P(mi)分布很平坦的情况下, P ( m i , m j ) P(m_i, m_j) P(mi,mj)的分布却可能会很尖。

    在SLAM领域最重要的洞察之一就是发现了Landmarks估计之间的相关性会随着观察的增加而单调增加。这个结论只在高斯分布下已经被证明了,在其他的概率分布下的证明仍是一个开放性的问题。特别地,这也意味着尽管机器人一直在运动,我们对landmarks之间的相对位置的估计却只会越来越精确,并且这种估计不会发散。这也意味着landmarks的分布密度函数 P ( m ) P(m) P(m)会随着观察的进行越来越尖。

    由于机器人所做的每次观察都可以近似为对 landmarks 相对位置的相互独立的估计,考虑有一个机器人正在观察两个 landmarks m i m_i mi m j m_j mj。所观察到的landmarks之间的相对位置是独立于机器人的体坐标系的,并且从不同的定点观察会得到相互独立的对于landmarks相对关系的估计。随着机器人移动到位置 x k + 1 x_{k+1} xk+1,它再次观察到了 m j m_j mj,这让对机器人和landmarks的估计能够相对于之前的点 x k x_k xk进行更新。而这也反过来更新了landmark m i m_i mi——即使在k+1时刻我们已经看不到 m j m_j mj了,但我们仍能对它的位置进行估计。这是因为两个landmarks有很强的相关性(他们之间的相对位置已经被很好地估计了),更进一步地讲,用相同的测量数据来更新landmarks的位置也进一步地增强了他们之间的相关性。

    这种准独立的估计方法是很合理的,因为观测误差会随着机器人的运动而被修正,假设在点 x k + 1 x_{k+1} xk+1时,机器人看到了两个新的landmarks, m j m_j mj仍在他的视野之内,而 m i m_i mi已经不在了。这些新的landmarks就会被新的观测互相被联系起来,被构建进整张地图之中。在之后的更新中,如果更新了这两个新的点,那么 m j m_j mj也会被更新。再进一步去想,由于 m i m_i mi m j m_j mj之间的相关性, m i m_i mi也会反过来被更新。也就是说所有的landmarks在最终会形成一张相互连接的网络,这张网络由各个landmarks的相对位置决定,而网络的准确率会随着观察的进行而不断上升。

    SLAM问题图示-图2

    在这里插入图片描述

    如上图所示,这个估计过程可以被可视化为上图——一个弹簧系统,各个节点由不同的弹簧相连接。这些节点是robot和landmarks,而这些弹簧的刚度则是landmarks之间的相关性。对临节点的观察就像对弹簧系统施加一个位移(其实我觉得这更像桁架系统)。

    随着机器人在环境中的移动和观察,这个弹簧系统的刚度会单调增加。在极限情况下,我们可以估计出一个刚性的landmarks的地图,也就是说精确的地图。在理论极限中,我们可以让机器人的相对位置精度达到100%。

    展开全文
  • SLAM学习笔记1:历史与现状

    千次阅读 2015-09-16 18:57:34
    东张西望地看SLAM的各种资料已有半个多月,深深觉得这个坑值得一跳,所以决定要开始系统地整理一下所学所看所想。欢迎拍砖! 今天看的文章是University of Sydney大牛 Hugh Durrant-Whyte写的一篇综述类tutorial ...

    即时定位与地图构建(Simultaneous Localization and Mapping, 即SLAM)的目的是让机器人在未知环境中持续地构建环境地图,并同时在地图中给自己定位。它可以解决机器人的两个基本问题:

    1. Where am I? 

    2. What can I do right here? 

    这是移动机器人的基础,因为只有知道当前环境及自身状态,机器人才可以进行下一步的任务计划,执行等操作。

    定位和建图两个问题相互依赖,准确的定位依赖于正确的地图,而构建正确的地图又需要准确的定位,这是一个迭代的过程。



    追本溯源,先回顾一下SLAM技术发展的历史,有点琐碎,可以忽略。


    概率SLAM(probabilistic SLAM)起源于1986年在旧金山举行的 IEEE Robotics and Automation Conference,这是机器人领域与人工智能领域研究结合的开端。

    一致性是构建地图mapping的基本问题。Cheesman [2] 和Durrant-Whyte [3] 构建了一个统计学框架去描述landmarks之间的相关性,用于解决几何上的不确定性。他们证明了landmarks的估计位置之间具有高度相关性,并且会随着连续的观测而相关性增加。

    Ayache 和 Faugeras [4] 从事了视觉导航( visual navigation ) 的早期研究。而Crowley [5] , Chatila 和 Laumond [6] 进行了基于卡尔曼滤波的声呐导航研究。这两项工作之后,里程碑式的文章被Smith等人提出 [7] 。该文章提出移动机器人在未知环境中获取landmarks的观测值,因为相同的location估计误差,这些landmarks的估计值一定是相关的。它的实现非常复杂,一致的定位和地图构建需要一个机器人pose与每一个landmark位置的联合状态(joint state),在每一次landmark观测之后更新。这需要大量的状态向量(landmark数量的平方)。

    文章[7]的问题在于,忽略地图的收敛性质。假设估计的地图误差不收敛,而是无限增加的,所以研究者们只能强制令landmarks之间的相关性最小甚至没有,于是把完整的filter简化成了机器人filter上一系列解耦的landmarks。同样的,因为这些问题,当时基本上是把定位问题与地图构建问题分开处理的。

    当把定位与地图构建问题结合在一起,成为单一估计问题时,理论有了新的突破。并且新理论证明了,之前研究者们所试图最小化的landmark之间的相关性,恰恰是最重要的东西,换句话说,landmark之间的相关性越强,结果表现越好。收敛性概念与即时定位建图的概念都是1995年International Symposium on Robotics中的综述文章 [8] 提出的, SLAM之前又被称为concurrent mapping and localization(CML).

    目前的工作主要着眼于提升计算效率,信息融合及循环控制上。ISRR99上,Thrun把基于Kalman filter的SLAM与概率定位建图结合[9].

     之前的SLAM工作大多以激光测距仪作为主要的传感器。

    进入2000年以后,随着计算机处理性能的大幅提升,以各种摄像头为传感器的SLAM逐渐成为研究新热点,并在近年开始有市场化的迹象。

    视觉传感器主要分为三种:

    1. 单目摄像头(Monocular Camera)

    2. 双目摄像头(Binocular Camera)

    3. 深度摄像头(RGB-D Camera)


    深度摄像头可以通过time of flight等方法来直接获得图像及对应的深度信息,优点在于方便获得深度数据,缺点在于成本高,体积大,室外环境基本报废。

    双目摄像头可以通过三角方法计算出深度信息,市面上有一些深度摄像头也是直接基于双摄像头来做的。然而双目摄像头在目标距离较远的时候会退化成单目。因此近年来大量的研究都是围绕单目进行的。

    单目SLAM可以通过临近图像匹配计算出摄像头位姿的变换,在两个视角上进行三角测距又可以得出对应点的深度信息。通过这样迭代的过程可以实现定位及建图。


    原理听起来很直观,然而现实环境中大量的测量噪声,计算误差造成了SLAM问题的无限复杂。于是解决不确定性问题是SLAM的核心。

    不确定性问题是很多研究领域的核心,但其实并没有很多的解决办法。大多数不确定性问题都用贝叶斯网络进行建模的,所以早期的SLAM问题主要都是在贝叶斯框架下进行讨论的,在该框架下主要有两种计算方案:

    1. EKF-SLAM ( extended kalman filters ). 利用拓展卡尔曼滤波器对机器人位置进行估计。

    2. FastSLAM ( Rao-Blackwellized particle filters). 利用粒子滤波器进行位置的估计。

    但由于基于Filter的SLAM采用了markov假设,仅考虑最近两组数据的递推关系,会导致误差累加不可恢复,因此近年来基于filter的SLAM已经基本被考虑了全局数据的Graph-based所取代:


    3. Graph-Based SLAM。把SLAM问题建模成优化问题,大多采用最小二乘法进行求解。

    早期的Graph based SLAM认为如果所有的landmark和所有的state都有连接,那么状态矩阵的规模将非常巨大,无法求解。但后来研究发现其实每一个state只与少量的landmark有链接,整个状态矩阵其实是稀疏(sparse)的,求解可以非常快。基于Gprah的模型不像Filter仅考虑最近的两个状态,进行局部优化,而是对之前的所有状态一起做优化,相当于一个全局优化。于是越来越多的SLAM系统转而使用Graph进行建模求解。通用的Graph SLAM求解器有GTSAM, g2o等。


    关于这两种模型的深入分析网上已经有大神们写出来了,之后有时间我再加上自己的理解吧。


    基于视觉传感器的地图通常分三类:

    1. feature map

    2. semi-dense map

    3. dense map


    Monocular SLAM的起源是Andrew Davision基于EKF模型的MonoSALM,随后他在oxford的师父David Murray发表了Keyframe based的PTAM,是现在大多数SLAM系统的基石。

    最近两年比较流行的单目SLAM有两个,一个是TU Munich的LSD-SLAM,该工作不基于图像特征点匹配,做运动估计,而是直接提取对比图像中梯度变化明显的区域,建立semi-dense的地图。

    第二个是University of Zaragoza的ORB-SLAM,该工作本质上与PTAM区别不大,但是作者通过很强的代码实现能力把该系统做成了目前功能最完善最稳定的SLAM系统。ORB-SLAM采用高速的ORB图像特征点,加入了SLAM系统中很重要的re-localizing和loop closure模块,并使用g2o进行全局误差最小化。该系统在多个公开dataset上取得了非常好的效果,经测试,在自然环境下也有一定的实用性。最近作者又放出了ORB-SLAM2,精简了环境配置的繁琐过程,安装更方便,工作更稳定,且可以不依赖ROS工作。


    关于这几种SLAM的详细分析,之后再分别写出。


    目前SLAM的主要问题在于:

    1. 视觉特征点的稳定性与计算复杂度之间的矛盾。理论上ORB特征的质量肯定比不上SIFT/SURF,但尺度不变特征的高计算复杂度很难满足视觉SLAM的实时性需要,需要GPU进行加速计算。

    2. 目前的SLAM系统建立的地图都是无意义的散点,位置不准确且并没有被很好地利用。近年来deep learning在object detection, recognition, semantic segmentation等方面大显神威,让语义地图的实现成为了可能。语义地图可以实现更稳定的data association,有希望在地图中区分出静态与动态物体,并可以在语义层面进行更高层次的场景识别。总体来说语义地图的建立是突破当前SLAM系统性能瓶颈的关键要素。


    [1] Durrant-Whyte, Hugh, and Tim Bailey. "Simultaneous localization and mapping: part I." Robotics & Automation Magazine, IEEE 13.2 (2006): 99-110.

    [2] Smith, Randall C., and Peter Cheeseman. "On the representation and estimation of spatial uncertainty." The international journal of Robotics Research 5.4 (1986): 56-68.

    [3] Durrant-Whyte, Hugh F. "Uncertain geometry in robotics." Robotics and Automation, IEEE Journal of 4.1 (1988): 23-31.

    [4] Ayache, Nicholas, and Olivier D. Faugeras. "Building, registrating, and fusing noisy visual maps." The International Journal of Robotics Research 7.6 (1988): 45-65.

    [5] Crowley, James L. "World modeling and position estimation for a mobile robot using ultrasonic ranging." Robotics and Automation, 1989. Proceedings., 1989 IEEE International Conference on. IEEE, 1989.

    [6] Chatila, Raja, and Jean-Paul Laumond. "Position referencing and consistent world modeling for mobile robots." Robotics and Automation. Proceedings. 1985 IEEE International Conference on. Vol. 2. IEEE, 1985.

    [7] Smith, Randall, Matthew Self, and Peter Cheeseman. "Estimating uncertain spatial relationships in robotics." Autonomous robot vehicles. Springer New York, 1990. 167-193.

    [8] H. Durrant-Whyte, D. Rye, and E. Nebot, “Localisation of automaticguided vehicles,” in Robotics Research: The 7th International Symposium(ISRR’95), G. Giralt and G. Hirzinger, Eds. New York: Springer Verlag,pp. 613–625, 1996.

    [9] Thrun, Sebastian, Wolfram Burgard, and Dieter Fox. "A probabilistic approach to concurrent mapping and localization for mobile robots." Autonomous Robots5.3-4 (1998): 253-271.

    展开全文
  • SLAM综述之Lidar SLAM

    千次阅读 2020-05-08 21:24:03
    SLAM包含了两个主要的任务:定位与构图,在移动机器人或者自动驾驶中,这是一个十分重要的问题:机器人要精确的移动,就必须要有一个环境的地图,那么要构建环境的地图就需要知道机器人的位置。 本系列文章主要分成...

    SLAM包含了两个主要的任务:定位与构图,在移动机器人或者自动驾驶中,这是一个十分重要的问题:机器人要精确的移动,就必须要有一个环境的地图,那么要构建环境的地图就需要知道机器人的位置。
    本系列文章主要分成四个部分:
    在第一部分中,将介绍Lidar SLAM,包括Lidar传感器,开源Lidar SLAM系统,Lidar中的深度学习以及挑战和未来。
    第二部分重点介绍了Visual SLAM,包括相机传感器,不同稠密SLAM的开源视觉SLAM系统。
    第三部分介绍视觉惯性里程法SLAM,视觉SLAM中的深度学习以及未来。
    第四部分中,将介绍激光雷达与视觉的融合。

    在1990年,[1]首次提出使用EKF(扩展卡尔曼滤波器)来逐步估计机器人姿态的后验分布以及地标点的位置。实际上,机器人从未知环境的未知位置开始,通过反复观测运动过程中的环境特征来定位自身的位置和姿态,然后根据自身的位姿都建周围环境的增量图,从而达到同时定位和地图构建的目的。

    实际上 定位问题是近年来非常复杂且热点的问题。定位技术取决于环境对成本,准确性,定位频率和鲁棒性的需求,这可以通过GPS(全球定位系统),IMU(惯性测量单元)和无线信号等来实现[2]。但是GPS只能在室外工作,IMU系统具有累积误差。无线技术作为一种主动系统,无法在成本和准确性之间取得平衡。随着快速的发展,配备激光雷达,摄像头,IMU和其他传感器的SLAM近年来兴起了。从基于过滤器的SLAM开始,基于图的SLAM现在起着主要作用。该算法从KF(卡尔曼滤波器),EKF和PF&

    展开全文
  • 视觉slam学习(一):历史与现状

    万次阅读 2016-05-18 08:36:45
    slam学习(一):历史与现状 转载:http://blog.csdn.net/qinruiyan/article/details/48498593 即时定位与地图构建(Simultaneous Localization and Mapping, 即SLAM)的目的是让机器人在未知环境中持续地构建环境...
  • SLAM(二)视觉SLAM

    2016-08-06 19:07:54
    SLAM
  • 视觉SLAM综述

    2019-03-10 11:12:21
    什么是视觉SLAM SLAM是“Simultaneous Localization And Mapping”的缩写,可译为同步定位与建图。概率 SLAM 问题 (the probabilistic SLAM problem) 起源于 1986 年的IEEE Robotics and Aut...
  • 关于slam

    万次阅读 多人点赞 2016-06-17 18:23:39
    什么是SLAM?机器人在未知环境中,要实现智能化需要完成三个任务,第一个是定位(Localization),第二个是建图(Mapping),第三个则是随后的路径规划(Navigation)。  之前地平线的高翔博士用这样一句话概括SLAM的释义...
  • slam1:激光slam,视觉slam,滤波

    千次阅读 2016-11-28 02:42:05
    slam:定位与建图。概念解析。
  • SLAM技术

    千次阅读 2018-12-12 09:56:33
    SLAM的全称是Simultaneous Localization and Mapping,即定位与制图。SLAM和SFM有这千丝万缕的联系。 SFM(Structure From Motion),称之为传统三维重建,这是一门计算机视觉学科的分支,特点是把数据采集回来,...
  • 视觉SLAM漫谈

    2017-05-18 09:47:50
    视觉SLAM漫谈 1. 前言  开始做SLAM(机器人同时定位与建图)研究已经近一年了。从一年级开始对这个方向产生兴趣,到现在为止,也算是对这个领域有了大致的了解。然而越了解,越觉得这个方向难度很大。总体来...
  • SLAM机器人

    2020-07-09 11:21:04
    鉴于题主是激光SLAM入门,就以下面这样一个思路来答一下吧。1.SLAM与ROS的关系 1.1.关于SLAM 1.2.关于ROS 1.3.SLAM与ROS的关系 2.ROS移动机器人的整体构造 2.1.硬件构造解析 2.2.电机解析 2.3.电机驱动板解析 ...
  • SLAM_SLAM面试专题

    2021-04-01 16:37:37
    7. 你认为室内SLAM与自动驾驶SLAM有什么区别? 8. 地图点的构建方法有哪些? 9. 当前帧新提取的特征点,如何恢复3D点? 10. 如何对匹配好的点做进一步的处理,更好保证匹配效果 ? 11. 单目相机
  • 视觉SLAM

    2020-04-15 08:34:16
    视觉SLAM漫谈 1.前言  开始做SLAM(机器人同时定位与建图)研究已经近一年了。从一年级开始对这个方向产生兴趣,到现在为止,也算是对这个领域有了大致的了解。然而越了解,越觉得这个方向难度很大。总体来讲有...
  • SLAM综述(2)-视觉SLAM

    2020-05-08 21:26:13
    SLAM包含了两个主要的任务:定位与构图,在移动机器人或者自动驾驶中,这是一个十分重要的问题:机器人要精确的移动,就必须要有一个环境的地图,那么要构建环境的地图就需要知道机器人的位置。 本系列文章主要分成...
  • SLAM和AR

    2020-01-30 17:30:30
    在我先前关于增强现实的历史(和未来)的博客中,我介绍了SLAM –同步本地化和映射。SLAM是将通过增强现实(AR)和虚拟现实(VR)实现或进一步创新的众多关键领域之一。还有其他领域,包括图形,触觉,显示,连接性...
  • 经典视觉SLAM框架

    千次阅读 2017-05-10 09:17:42
    引言:通过前面的推送我们已经对SLAM有了个大体的认识。(初识视觉SLAM)下面来看经典的视觉SLAM框架,了解一下视觉SLAM究竟由哪几个模块组成。 本文选自《视觉SLAM十四讲:从理论到实践》。  整体视觉SLAM流程图...
  • 1. SLAM题目 1.1 什么是闭环检测 回环检测的意义? SLAM前端使用相邻帧估计位姿,导致整个SLAM出现...[2] 随机抽取历史数据进行回环检测——抽到回环的概率小,检测效率低 [1]和[2]过于盲目,我们至少希望有一个“哪
  • slam知识总结

    2019-05-07 06:26:07
    slam历史和现状 http://wwwbuild.net/roboteasy/908066.html slamcn官网 http://www.slamcn.org/index.php/%E9%A6%96%E9%A1%B5 SLAM各个模块主要算法http://www.yidianzixun.com/article/0JZM2amK ...
  • 视觉SLAM经典框架 图1 整体视觉SLAM流程图 整个视觉SLAM流程包括以下步骤: 传感器信息读取。在视觉SLAM中主要为相机图像信息的读取和预处理。如果是在机器人中,还可能有码盘、惯性传感器等信息的读取和同步...
  • slam发展

    千次阅读 2017-11-19 12:25:23
    本文将带着读者去看看现有的SLAM方案能做到怎样的程度。特别地,我们重点关注那些提供开源实现的方案。在SLAM研究领域,能见到开源方案是很不容易的。往往论文中介绍理论只占20%的内容,其他80%都写在代码中,是论文...
  • SLAM发展历程

    2018-07-11 03:23:42
    非常好的slam入门paper,值得一读。篇幅较长,是英文的
  • SLAM学习

    2016-10-28 00:40:06
    视觉SLAM漫谈1. 前言 开始做SLAM(机器人同时定位与建图)研究已经近一年了。从一年级开始对这个方向产生兴趣,到现在为止,也算是对这个领域有了大致的了解。然而越了解,越觉得这个方向难度很大。总体来讲有以下...
  • 激光SLAM

    2016-12-18 15:42:00
    1、激光分类 维度分类: a、二维激光(单点反射、平面、旋转台) b、三维激光 距离分类: a、近距离:壁障、碰撞检测、路边检测 ...SLAM研究历史 1、反光板定位(二维) 2、ekf特征定位(二维) 主要形...
  • SLAM导论

    千次阅读 2017-12-28 14:34:41
    雷锋网(公众号:雷锋网)按:本文作者高翔,清华大学自动化学院博士研究生,主要研究兴趣为基于RGB-D相机的视觉SLAM技术。先后获得清华大学新生奖学金、张明为奖学金并三次获得国家励志奖学金,相关研究成果发表于...
  • SLAM快速入门

    2020-09-13 20:11:00
    SLAM入门 SLAM是Simultaneous localization and mapping缩写,意为“同步定位与建图”. SLAM的典型应用领域: 机器人定位导航领域-地图建模, VR/AR方面-辅助增强视觉效果, 无人机领域-地图建模, 无人驾驶领域-...
  • 视觉SLAM总结——视觉SLAM面试题汇总

    千次阅读 多人点赞 2019-09-03 23:14:09
    视觉SLAM面试题汇总视觉SLAM面试题汇总1. SIFT和SUFT的区别2. 相似变换、仿射变换、射影变换的区别3. Homography、Essential和Fundamental Matrix的区别4. 视差与深度的关系5. 描述PnP算法6. 闭环检测常用方法7. 给...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,377
精华内容 950
关键字:

slam历史