最详细的SLAM综述

  论文:Past, Present, and Future of Simultaneous Localization And Mapping: Towards the Robust-Perception Age . Cesar Cadena, Luca Carlone, Henry Carrillo, Yasir Latif, Davide Scaramuzza, Jos´e Neira, Ian Reid, John J. Leonard

摘要

同时定位和建图(SLAM)包括同时构建环境模型(地图),以及对在其中运动的机器人状态的估计。在过去的30年里,SLAM社区取得了惊人的进步,实现了大规模的实际应用,并见证了这项技术向工业的稳步过渡。本文综述了SLAM当前的进展,并思考了未来的方向。

本文首先介绍SLAM事实上的标准公式。然后,回顾了相关的工作,涵盖了一系列广泛的主题,包括长期建图的鲁棒性和可拓展性建图的度量和语义表示理论性能保证主动SLAM和探索以及其他新的前沿。

同时,本文对SLAM使用者也具有一定的立场和指导作用。通过以批判的眼光看发表的研究,我们描绘了开放的挑战和新的研究问题,仍然值得仔细的科学调查。这篇论文还包含了两位作者对机器人大会上经常引发讨论的两个问题的回答:机器人需要SLAM吗? SLAM解决了吗?

引言

        SLAM由同时估计带有板载传感器的机器人的状态估计,和构建传感器所感知的环境模型(地图)组成。在简单的实例中,机器人的状态是由它的位姿(position和orientation)描述的,其他量(如机器人速度、传感器的bias和外参)也可能包括在状态中。另一方面,地图是描述机器人运行环境的感兴趣的东西(如路标、障碍物的位置)的表示。

        使用环境地图有两个方面的需要。首先,地图通常需要用于执行其他任务; 例如,地图可以用于执行路径规划或为人类操作员提供直观的可视化。其次,地图可以限制在估计机器人状态时的误差。在没有地图的情况下,航迹推算(dead-reckoning)会随着时间迅速漂移;但是在使用地图(例如一组具有可区分性的路标)机器人在重新访问已知区域时“重置”其定位误差(称之为回环检测)。因此,SLAM应用于那些无法使用先验地图,需要构建地图的场景。

        在某些机器人应用中,所有路标的位置是已知的。例如,可以为在工厂工作的机器人提供环境中人工信标(articial beacons)的手工构造(manually-built)的地图。另一个例子是机器人可以使用GPS (GPS卫星可以被认为是在已知位置的移动信标)。在这种场景中,如果可以根据已知路标可靠地进行定位,则可能不需要SLAM。

        SLAM问题的流行与移动机器人在室内应用的出现有关。室内运行阻止了使用GPS来限制定位误差;而SLAM提供了用户构建地图的另一种选择,它可以在没有专门的定位设施的情况下运行机器人。

        Durrant-Whyte和Bailey在两项综述中对SLAM问题的前20年进行了详细的历史回顾。

[69]Simultaneous Localisation and Mapping (SLAM): Part I.

[7]Simultaneous Localisation and Mapping (SLAM): Part II.

        这两个综述主要覆盖了我们所说的古典时代classical age(1986-2004);古典时代引入了SLAM的主要概率公式,包括基于扩展卡尔曼滤波器(EKF)、RaoBlackwellised粒子滤波器和最大似然估计(MLE)的方法;此外,这个时代描述了与效率和鲁棒的数据关联(data association)有关的基本挑战。另外两个描述古典时代三种主要SLAM公式的优秀参考文献是Thrun, Burgard和Fox的书[240]和stachhniss等人[234]的46章。

[240] S. Thrun, W. Burgard, and D. Fox. Probabilistic Robotics. MIT Press, 2005.

[234] C. Stachniss, S. Thrun, and J. J. Leonard. Simultaneous Localization and Mapping. In B. Siciliano and O. Khatib, editors, Springer Handbook of Robotics, chapter 46, pages 1153–1176. Springer, 2nd edition, 2016.

        随后的时期我们称之为算法分析时代(algorithmic-analysis age)(2004-2015),Dissanayake等人[64]对这一时期进行了部分综述。

[64] G. Dissanayake, S. Huang, Z. Wang, and R. Ranasinghe. A review of recent developments in Simultaneous Localization and Mapping. In International Conference on Industrial and Information Systems, pages 477–482. IEEE, 2011.

        算法分析阶段研究了SLAM的基本特性,包括可观性、收敛性和一致性。在这一时期,人们也了解了稀疏性对高效SLAM求解的关键作用,主要的开源SLAM库也被开发出来了。

        我们回顾了到目前为止主要的SLAM综述在表I,观察到大多数最近的综述只涵盖特定的方面或子领域的SLAM。

图片1.jpg

        如果考虑到SLAM所涉及的方方面面,那么SLAM在过去30年中的流行也就不足为奇了。在较低的层次(称为前端),SLAM与其他研究领域交叉,如计算机视觉和信号处理; 在更高的层次上(称之为后端),SLAM是几何学、图论、优化和概率估计的组合。最后,一个SLAM专家必须处理从传感器校准到系统集成的实际问题。

        本文对SLAM的现状进行了全面的概述,并对SLAM研究的开放性问题和未来的发展方向提出了部分学界人士的看法。我们主要关注的是度量(metric)语义(semantic)SLAM,我们建议读者参考Lowry等人最近的综述[160],该综述提供了基于视觉的位置识别和拓扑SLAM的全面回顾。

[160]S. Lowry, N. S¨underhauf, P. Newman, J. J. Leonard, D. Cox, P. Corke, and M. J. Milford. Visual Place Recognition: A Survey. IEEE Transactions on Robotics (TRO), 32(1):1–19, 2016.

        在深入研究这篇论文之前,我们首先讨论两个经常在机器人会议上引发讨论的问题:(1)自主机器人需要SLAM吗? (2) SLAM是否作为一项学术研究来解决? 我们将在论文的结尾重新讨论这些问题。

        回答问题“自主机器人真的需要SLAM吗”需要了解是什么使SLAM独一无二。SLAM的目标是建立一个全局一致的环境表示(地图),利用帧间运动(ego-motion)和回环闭合(loop closure) 。这里的关键是“回环闭合”:如果我们删除回环闭合,SLAM就会简化为里程计(odometry)。在早期的应用中,里程计是通过集成车轮编码器获得的。从车轮里程计中获得的位姿估计会迅速漂移,几米后就无法使用了;这是SLAM发展背后的主要推动力之一:外部路标的观测有助于减少轨迹漂移,并可以纠正它。最近的里程计算法是基于视觉和惯性信息,漂移非常小(小于 0.5%的轨迹长度)。因此,问题变得合情合理:我们真的需要SLAM吗?我们的答案是三方面的。

        第一个答案,观察到在过去十年中,SLAM研究本身就产生了视觉惯性里程计(VIO)算法,这是目前最先进的技术,比如[163],[175];

[163]S. Lynen, T. Sattler, M. Bosse, J. Hesch, M. Pollefeys, and R. Siegwart. Get out of my lab: Large-scale, real-time visual-inertial localization. In Proceedings of Robotics: Science and Systems Conference (RSS), pages 338–347, 2015.

[175]A. I. Mourikis and S. I. Roumeliotis. A Multi-State Constraint Kalman Filter for Vision-aided Inertial Navigation. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), pages 3565–3572. IEEE, 2007.

        在这个意义上,视觉惯性导航(VIN)是SLAM算法:VIN可以被认为是一个简化的SLAM系统,其中缺少了回环闭合(或位置识别)模块。更普遍地说,SLAM已经直接导致了比以前考虑的其他领域(如,航空航天工程中的惯性导航)更有挑战性场景下(如缺少GPS,低质量的传感器)的传感器融合的研究。

        第二个答案与环境的真实拓扑有关。一个只执行里程计而忽略回环的机器人将世界看作一个“无限走廊”(图1-左),在其中机器人不断探索新的领域。

图片2.jpg

        一个回环闭合(loop closure)事件告诉机器人这个“走廊”与自己相交(图1-右)。loop closure的优势现在变得很明显:通过寻找loop closure,机器人能够了解环境的真实拓扑结构,并能够找到位置之间的捷径(例如,地图上的点B和C)。因此,如果获得正确的环境拓扑是SLAM的优点之一,为什么不直接删除度量信息,只进行位置识别呢? 答案很简单: 度量信息让位置识别变得更简单、更鲁棒; 度量信息告诉机器人关于loop closure的机会大小,并可以丢弃误报的loop closure。因此,尽管SLAM在原则上可能是冗余的(位置识别模块足以进行拓扑建图),SLAM提供了一种自然的防御机制,以防止错误的数据关联感知混淆(perceptual aliasing)(环境中不同位置相对应的相似场景会欺骗位置识别算法)。从这个意义上说,SLAM地图提供了一种预测和验证未来测量结果的方法,我们相信这种机制是鲁棒运行的关键。

        第三个答案是,许多应用程隐式或显式地需要全局一致的地图,那么都需要SLAM。例如,在许多军事和民用应用中,机器人的目标是探索一个环境,并向人类操作员报告地图,确保获得环境的全覆盖。另一个例子是,机器人必须执行结构检查(建筑、桥梁等);在这种情况下,全局一致的三维重建是成功执行的必要条件。

        “SLAM解决了吗”这个问题在机器人社区经常被问到。这个问题很难回答,因为SLAM已经成为一个非常广泛的话题,以至于这个问题只适用于给定的机器人/环境/性能时。具体来说,可以从以下几个方面来评价SLAM问题的成熟度:

² 机器人: 运动类型(如,动力学,最大速度),可用的传感器(如,分辨率,采样率),可用的计算资源;

² 环境:平面的或三维的,自然的或人工路标存在的,动态元素的数量,对称性的数量和感知混叠的风险。请注意,这些方面中的许多实际上都依赖于传感器-环境的配置:例如,在2D激光雷达看来,两个房间可能是相同的(感知混叠),而相机可能从外观线索分辨它们;

² 性能要求:估计机器人状态想要的精度,环境表示的准确性和类型(例如,基于路标的或稠密的),成功率(满足精度范围的测试百分比),估计延迟,最大运行时间,建图区域的大小。

        使用配备了车轮编码器和激光雷达的机器人 对二维室内环境建图时,具有足够的精度(< 10cm)和足够的鲁棒性(例如低故障率),这个SLAM问题可以认为很大程度上解决了(工业系统执行SLAM的一个例子是库卡导航解决方案[145])。

        同样,基于视觉的慢速的移动机器人SLAM(如火星漫游者[166]、家用机器人[114])和VIO[94]也可以认为是成熟的研究领域。

        另一方面,其他机器人/环境/性能组合情况下仍然需要大量的基础研究。当前的SLAM算法很容易在机器人的运动或环境太有挑战性时失败(例如,快速的机器人运动,高度动态变化的环境);

        同样,SLAM算法往往无法面对严格的性能要求,如快速闭环控制的高速率估计。本综述将对这些未决问题以及其他问题提供一个全面的概述。

        在本文中,我们认为我们正在进入SLAM的第三个时代,即鲁棒感知时代(robust-perception age),这一时代具有以下关键要求:

ü 1)robust performance:在广泛的环境中,SLAM系统可以在较长时间内以低故障率运行;该系统包括故障安全(fail-safe)机制,并具有自调优(self-tuning)能力,因为它可以根据场景调整系统参数的选择。

ü 2)high-level understanding:SLAM系统超越基本的几何重建,以获得对环境的高层次理解 (e.g., high-level geometry,semantics, physics, affordances);

ü 3) resource awareness:根据可用的传感器和计算资源定制SLAM系统,并提供根据可用资源调整计算负载的手段;

ü 4) task-driven perception:SLAM系统能够选择相关的感知信息,过滤掉不相关的传感器数据,以支持机器人必须执行的任务;此外,SLAM系统产生自适应地图表示,其复杂性可能因手头的任务而不同。

论文组织:

Ø 论文首先提出了SLAM的标准形式和架构(第二部分)。

Ø 第三节讨论了life-long SLAM的鲁棒性。

Ø 第四节讨论可伸缩性。

Ø 第五节讨论了如何表示环境的几何。

Ø 第六节将环境表示的问题扩展到语义信息的建模。

Ø 第七节概述了目前国际上关于SLAM理论方面的研究成果。

Ø 第八节扩展了讨论并回顾了主动SLAM问题,在这个问题中,决策被用来提高SLAM结果的质量。

Ø 第九节概述了SLAM的最新趋势,包括非常规传感器和深度学习的使用。

Ø 第十节给出最后的评论。

        在整篇论文中,我们为机器人社区之外的相关工作提供了许多pointer。尽管SLAM有其独特的特点,但它涉及到计算机视觉、计算机图形学和控制理论等领域的问题,这些领域的交叉融合是快速发展的必要条件。

        对于非专业读者,我们建议在深入研究这篇论文之前先阅读DurrantWhyte和Bailey的SLAM教程[7,69]。更有经验的研究人员可以直接跳到感兴趣的部分,在那里他们将找到一个独立的概述现状和开放的问题。

[69]Simultaneous Localisation and Mapping (SLAM): Part I.

[7]Simultaneous Localisation and Mapping (SLAM): Part II.

第二节 现代SLAM系统的剖析

        一个SLAM系统的架构包括两个主要组成部分:前端(front-end)和后端(back-end)。前端将传感器数据抽取到用于估计的模型中,而后端则对前端抽取的数据进行推断。图2总结了这种架构。我们从后端开始回顾这两个组件。

图片3.jpg

最大后验(MAP)估计和SLAM后端

        SLAM目前事实上的标准形式起源于Lu和Milios的开创性论文[161],随后是Gutmann和Konolige的工作[101]。从那以后,许多方法提高了SLAM问题的优化效率和鲁棒性。所有这些方法都将SLAM表述为最大后验估计(MAP)问题,并经常使用因子图(factor graphs)[143]的形式来推理变量之间的相互依赖性。

[143] F. R. Kschischang, B. J. Frey, and H. A. Loeliger. Factor Graphs and the Sum-Product Algorithm. IEEE Transactions on Information Theory, 47(2):498–519, 2001.

        假设我们要估计一个未知变量X,在SLAM中变量X通常包括机器人的轨迹(作为一组离散的位姿)和环境中的路标的位置。给定一组观测值Z={zk : k=1,..,m},其中每个测量值都可以表示为X的函数,比如zk=hk(Xk)+εk,其中Xk⊆X是变量的子集,hk(.)是已知函数(测量模型或观测模型)。εk是随机测量噪声。

        在MAP估计中,我们通过计算得到后验p(X|Z) (the belief over X given the measurements)最大值的变量X*来估计X。

图片4.jpg

        这个等式是由贝叶斯定理推导出来的。在(1)中,p(Z|X)是给定X值时测量值Z的可能性,p(X)是先验概率。这个先验概率包括关于X的任何先验知识;在没有先验知识的情况下,p(X)成为一个常数(均匀分布),此时X无关紧要,可以从优化中删除。在这种情况下,MAP估计简化为最大似然估计(MLE)。

        与卡尔曼滤波不同,MAP估计不需要明确区分运动模型和观测模型:这两个模型都被视为因子(factor),并无缝地整合到估计过程中。值得注意的是,卡尔曼滤波和MAP估计在线性高斯情况下得到相同的估计结果,但在非线性或非高斯情况下,两者的结果是不同的。

        假设各个测量值Z是独立的(对应的噪声不相关),则问题(1)可分解为:

图片5.jpg

        在右边,到zk只依赖于Xk。问题(2)可以通过因子图的推理来解释。变量对应于因子图中的节点。P(zk|Xk)和先验p(x)称为因子,它们对节点子集的概率约束进行编码。因子图是一种在第k个因子(及其测量值zk)与相应变量Xk之间的依赖性进行编码的图模型(graphical model)。因子图的第一个优点是它能够对问题进行深刻的可视化。图3显示了一个简单SLAM问题下的因子图示例。

图片6.jpg

        图中显示了变量(即机器人位姿、路标位置、相机标定参数),以及这些变量之间的约束因子。第二个优点是通用性:因子图可以对具有异质变量和因子以及任意相互联系的复杂推理问题进行建模。因子图的连通性反过来影响所产生的SLAM问题的稀疏性,如下所述。

        为了将(2)写成更明确的形式,假设εk是零均值高斯噪声,其信息矩阵(协方差矩阵的逆)为Ωk。则(2)中的测量似然为:

图片7.jpg

其中记

QQ截图20210405170947.png

        对于给定的函数h0()、先验均值z0、信息矩阵Ω0,假设先验可以写成:

QQ截图20210405170958.png

        因为最大化后验值和最小化负对数后验值(negative log-posterior)是一样的,则(2)中的MAP估计可以写为:

图片8.jpg

        正如在大多数机器人感兴趣的问题一样,这是一个非线性最小二乘问题,hk(·)是一个非线性函数。注意公式(4)是根据噪声正态分布的假设得出的。对噪声分布的其他假设得到不同的代价函数;例如,如果噪声服从拉普拉斯分布,则(4)中的平方2范数将被1范数取代。为了提高对外点的容能力,用鲁棒损失函数(比如Huber或Tukey loss)替代(4)中的平方2范数也是常见的。

        计算机视觉专家可能会注意到问题(4)和BA在SfM[244]中的相似性;(4)和BA都确实源于一个后验公式的最大值。

[244] B. Triggs, P. McLauchlan, R. Hartley, and A. Fitzgibbon. Bundle Adjustment - A Modern Synthesis. In W. Triggs, A. Zisserman, and R. Szeliski, editors, Vision Algorithms: Theory and Practice, pages 298–375. Springer, 2000.

        然而,有两个关键特点使SLAM与众不同。首先,(4)中的因子不像BA中那样局限于建模射影几何,而是包括各种各样的传感器模型,例如惯性传感器、车轮编码器、GPS等。例如,在基于激光的建图中,这些因子通常会限制对应于不同视角的相对位姿,而在视觉SLAM的直接法(direct methods)中,这些因子会惩罚场景中同一部分不同视点的像素强度差异。BA的第二个不同之处在于,在SLAM场景中,问题(4)通常增量求解: 当机器人移动时,每一步都可以获得新的测量值。

        最小化问题(4)通常通过连续的线性化来解决,例如,高斯-牛顿法Levenberg-Marquardt方法(alternative approaches, based on convex relaxations and Lagrangian duality are reviewed in Section VII)。逐次线性化方法迭代进行,从给定的初始猜测X_开始,用二次代价在X_近似代价函数,通过求解一组线性方程可以以封闭形式进行优化(称为正规方程normal equation)。这些方法可以无缝地推广到属于光滑流形(如旋转)的变量,这是机器人技术感兴趣的。

        现代SLAM求解器背后的关键insight是:出现在正规方程中的矩阵是稀疏的,其稀疏结构由潜在因子图的拓扑结构决定。这使得使用快速线性求解器 [125, 126, 146, 204]成为可能。

[125] M. Kaess, H. Johannsson, R. Roberts, V. Ila, J. J. Leonard, and F. Dellaert. iSAM2: Incremental Smoothing and Mapping Using the Bayes Tree. The International Journal of Robotics Research (IJRR), 31:217–236, 2012.

[126] M. Kaess, A. Ranganathan, and F. Dellaert. iSAM: Incremental Smoothing and Mapping. IEEE Transactions on Robotics (TRO), 24(6):1365–1378, 2008. R. K¨ummerle, G. Grisetti, H. Strasdat, K. Konolige, and W. Burgard.

[146]g2o: A General Framework for Graph Optimization. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), pages 3607–3613. IEEE, 2011.

[204] L. Polok, V. Ila, M. Solony, P. Smrz, and P. Zemcik. Incremental Block Cholesky Factorization for Nonlinear Least Squares in Robotics. In Proceedings of Robotics: Science and Systems Conference (RSS), pages 328–336, 2013.

        此外,它可以设计增量(或在线)求解器,当获得新的观测值时更新X的估计。目前的SLAM库(如GTSAM[61]、g2o[146]、Ceres[214]、iSAM[126]和SLAM++[204])能够在几秒钟内解决包含成千上万个变量的问题。

[61] F. Dellaert. Factor Graphs and GTSAM: A Hands-on Introduction. Technical Report GT-RIM-CP&R-2012-002, Georgia Institute of Technology, Sept. 2012.

[214] S. Agarwal et al. Ceres Solver. http://ceres-solver.org, June 2016.Google.

        动手教程[61,97]提供了两个最流行的SLAM库的优秀介绍;每个库还包括一组例子展示真正的SLAM问题。

[97]G. Grisetti, R. K¨ummerle, C. Stachniss, and W. Burgard. A Tutorial on Graph-based SLAM. IEEE Intelligent Transportation Systems Magazine, 2(4):31–43, 2010.

        目前描述的SLAM公式通常被称为最大后验估计(maximum a posteriori estimation),因子图优化(factor graph optimization),graph-SLAM,full smoothing,或smoothing and mapping(SAM)。该框架的一个流行变体是位姿图优化(pose graph optimization),其中被估计的变量是沿着机器人轨迹采样的位姿,每个因子对一对位姿施加约束。

        MAP估计方法已被证明比原有的基于非线性滤波的SLAM方法更准确、更有效。我们建议读者参考综述[7,69]来了解滤波方法的概述,并参考[236]来比较滤波和平滑。

[7] T. Bailey and H. F. Durrant-Whyte. Simultaneous Localisation and Mapping (SLAM): Part II. Robotics and Autonomous Systems (RAS), 13(3):108–117, 2006.

[69] H. F. Durrant-Whyte and T. Bailey. Simultaneous Localisation and Mapping (SLAM): Part I. IEEE Robotics and Automation Magazine, 13(2):99–110, 2006.

[236] H. Strasdat, J. M. M. Montiel, and A. J. Davison. Visual SLAM: Why filter? Computer Vision and Image Understanding (CVIU), 30(2):65– 77, 2012.

        我们注意到一些基于EKF的SLAM系统也已被证明达到最先进的性能。基于EKF的SLAM系统的优秀例子包括MSCKF[175],以及Kottas等人[139]和Hesch等人[105]的VIN系统。

[105] J. A. Hesch, D. G. Kottas, S. L. Bowman, and S. I. Roumeliotis. Camera-IMU-based localization: Observability analysis and consistency improvement. The International Journal of Robotics Research (IJRR), 33(1):182–201, 2014.

[139] D. G. Kottas, J. A. Hesch, S. L. Bowman, and S. I. Roumeliotis. On the consistency of vision-aided Inertial Navigation. In Proceedings of the International Symposium on Experimental Robotics (ISER), pages 303–317. Springer, 2012.

[175] A. I. Mourikis and S. I. Roumeliotis. A Multi-State Constraint Kalman Filter for Vision-aided Inertial Navigation. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), pages 3565–3572. IEEE, 2007.

        毫不奇怪,当EKF的线性化点是准确的时,滤波和地图估计之间的性能不匹配就会变小(就像在视觉惯性导航问题中发生的那样),当使用滑动窗口滤波器时,以及当EKF中不一致的潜在来源被处理时[105,108,139]。

        如下一节所讨论的,MAP估计通常是在传感器数据的预处理版本上执行的。在这方面,它通常被称为SLAM后端。

依赖传感器的SLAM前端

        在实际的机器人应用中,可能很难像MAP估计中要求的那样,直接将传感器测量值写成状态的解析函数。例如,如果原始传感器数据是一幅图像,可能很难将每个像素的强度表示为SLAM状态的函数;同样的困难也出现在更简单的传感器上(例如,单线激光雷达)。在这两种情况下,我们无法设计出一个足够通用但又易于处理的环境表示;即使存在这样一个通用表示,也很难写出一个将测量值与这种表示的参数联系起来的解析函数。

        因此,在SLAM后端之前,通常会有一个模块,即前端,从传感器数据中提取相关特征。例如,在基于视觉的SLAM中,前端提取环境中少数可辨别的点的像素位置;这些点的像素观测现在很容易在后端建模。前端还负责将每个测量结果与环境中的特定路标(比如3D点)联系起来:这就是所谓的数据关联(data association)。理论上说,数据关联模块将每个观测zk与位置变量的子集Xk关联起来,即zk=hk(Xk)+εk。最后,前端也可以为非线性优化(4)中的变量提供一个初始值。例如,在基于特征的单目SLAM中,前端通过从多个视图三角定位路标的位置来进行路标的初始化。

        图2给出了一个典型SLAM系统。前端的数据关联模块包括短期数据关联长期数据关联。短期数据关联(Short-term data association)负责在连续的传感器测量中关联相应的特征; 例如,短期数据关联将跟踪连续帧中2个像素值正在对应同一个3D点的事实。长期数据关联( long-term data association)(或回环闭合)负责将新的测量与旧的路标关联起来。后端通常会向前端反馈信息,例如,支持回环检测和验证。

        在前端发生的预处理是依赖于传感器的,因为特征的概念取决于我们所考虑的输入数据流。

III. LONG-TERM AUTONOMY I: ROBUSTNESS

        SLAM系统可能在许多方面都很脆弱,运行失效(failures)可能与算法或硬件相关。前者包括了由于现有SLAM算法的局限性而导致的失效模式(failures mode)(例如,难以处理极端动态或恶劣环境)。后者包括由于传感器或执行器退化造成的故障。明确地解决这些失效模式对于长期运行至关重要,因为在长期运行中,人们不能对环境结构(例如,大部分是静态的)进行简化假设,也不能完全依赖板载传感器。在本节中,我们回顾算法鲁棒性的主要挑战。然后我们讨论开放问题,包括针对硬件相关故障的鲁棒性。

        数据关联( data association)是算法失效的主要来源之一。如第二节所述,数据关联将每个测量值与该测量值所对应的状态部分相匹配。例如,在基于特征的视觉SLAM中,它将每个视觉特征与一个特定的路标联系起来。感知混淆(Perceptual aliasing),即不同的传感输入导致相同的传感器信号的现象,使数据关联特别困难。在存在感知混淆时,数据关联会建立了错误的测量状态匹配(外点或假阳匹配),这反过来导致后端错误的估计。另一方面,when data association decides to incorrectly reject a sensor measurement as spurious (false negatives),较少的测量值被用于估计,以这是以牺牲估计精度为代价的做法。

        当环境中存在的未建模动态物体,包括短期和季节性变化,可能会欺骗短期和长期数据关联,使情况变得更糟。在当前的SLAM方法中,一个相当常见的假设是,当机器人移动时,世界仍然保持不变(即路标点是静态的)。这种静态世界假设在小规模场景中运行的单一建图中是正确的,只要没有短期动态物体(比如人或物体的移动)。在较长的时间尺度和大型环境中进行建图时,环境改变是不可避免的。

        鲁棒性的另一个方面是在恶劣环境下进行SLAM,如水下[73,131]。这种情况下的挑战是有限的可见性,不断变化的条件,以及无法使用传统传感器(比如激光雷达)。

概述

        与错误数据关联相关的鲁棒性问题可以在SLAM系统的前端或后端解决。传统上,前端负责建立正确的数据关联。短期数据关联更容易处理:如果传感器的采样率较快,与机器人的动力学相比,跟踪相同3D路标对应的特征比较容易。例如,如果我们想在连续图像中跟踪一个3D点,并且假设帧率足够高,那么基于特征描述子匹配或光流法[218]可以确保可靠的跟踪。

[218] D. Scaramuzza and F. Fraundorfer. Visual Odometry [Tutorial]. Part I: The First 30 Years and Fundamentals. IEEE Robotics and Automation Magazine, 18(4):80–92, 2011.

        在高帧率下,传感器(相机、激光)的视点不会发生显著变化,因此,在t + 1时刻的特征(及其外观)仍然接近于在t时刻观察到的特征。事后看来,短期数据关联比长期数据关联更容易、更可靠,这使得(视觉的、惯性的)里程计比SLAM更简单。

        前端的长期数据关联更具挑战性,涉及到回环检测和验证。对于前端的回环检测,用暴力法(brute-force)检测当前测量中的特征(例如,图像)并试图将它们与所有以前检测到的特征进行匹配很快就变得不切实际。BoW[226]通过量化特征空间和允许更有效的搜索来避免这一棘手问题。BoW可以被排列成分层词汇树[189],从而能够在大规模数据集中进行有效查找。基于BoW的技术[53]等在单会话回环检测任务中表现出了可靠的性能。

[226]J. Sivic and A. Zisserman. Video Google: A Text Retrieval Approach to Object Matching in Videos. In Proceedings of the IEEE International Conference on Computer Vision (ICCV), pages 1470–1477. IEEE, 2003.

[189] D. Nist´er and H. Stew´enius. Scalable Recognition with a Vocabulary Tree. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), volume 2, pages 2161–2168. IEEE, 2006.

[53] M. Cummins and P. Newman. FAB-MAP: Probabilistic Localization and Mapping in the Space of Appearance. The International Journal of Robotics Research (IJRR), 27(6):647–665, 2008.

        然而,这些方法不能处理剧烈的光照变化,因为视觉单词会匹配失败。这导致了新方法的出现,通过匹配序列[173],将不同的视觉外观收集成统一的表示[48],或使用空间和外观信息[106]来明确解释这些变化。Lowry等人[160]对视觉位置识别进行了详细的研究。基于特征的方法也被用于检测基于激光的SLAM前端的回环检测; 例如,Tipaldi等人[242]提出了用于2D激光的FLIRT特征。

[160] S. Lowry, N. S¨underhauf, P. Newman, J. J. Leonard, D. Cox, P. Corke, and M. J. Milford. Visual Place Recognition: A Survey. IEEE Transactions on Robotics (TRO), 32(1):1–19, 2016.

        回环闭合验证包括额外的几何验证步骤,以确定回环闭合的质量。在基于视觉的应用中,RANSAC通常用于几何验证和剔除外点( outlier rejection)[218]。在基于激光的方法中,可以通过检查当前激光扫描与现有地图的匹配程度来验证回环闭合(即扫描匹配产生的残差有多小)。

        尽管在前端的回环检测方面取得了进展,但在存在感知混淆的情况下,错误的回环闭合被送入后端是不可避免的。错误的回环闭合会严重破坏MAP评估的质量[238]。为了解决这个问题,最近的研究[33,150,191,238]提出了使SLAM后端抗伪测量弹性(resilient against spurious)的技术。这些方法通过观察约束在优化过程中产生的残余误差来判断闭环约束的有效性。相反,其他方法则尝试预先检测外点(attempt to detect outliers a priori),即在进行任何优化之前,通过里程计识别错误的回环闭合。

        在动态环境中,挑战有两个方面。首先,SLAM系统必须检测、丢弃或跟踪 变化的特征。虽然主流的方法试图抛弃场景的动态部分[180],但一些工作将动态元素作为模型的一部分[11,253]。第二个挑战是SLAM系统必须模拟永久或半永久的变化,并了解如何以及何时相应地更新地图。当前处理动态环境的SLAM系统either maintain multiple (time-dependent) maps of the same location [60], or have a single representation parameterized by some time-varying parameter [140].

开放问题

在本节中,我们回顾长期SLAM中出现的开放问题和新研究问题。

Failsafe SLAM and recovery:

        尽管在SLAM后端取得了进展,但当前的SLAM求解器在出现外点(outlier)时仍然很脆弱。这主要是因为几乎所有的鲁棒SLAM技术都是基于非凸代价的迭代优化。出现外点有两个后果:首先,外点剔除的能力依赖于优化的初值(the outlier rejection outcome depends on the quality of the initial guess fed to the optimization);其次,这个体系本质上是脆弱的:包含单个外点会降低估计的质量,这反过来又会降低以后识别外点的能力。这些类型的故障会导致错误的线性化点,从这个点恢复非常困难,特别是在增量设置中。理想的SLAM解决方案应该是fail-safe和failure-aware的,也就是说,系统需要知道即将发生的失效(由于外点或退化)并提供恢复机制,以重新建立正常的运作。现有的SLAM方法都不提供这些功能。实现这一点的一种可能的方法是在前端和后端之间进行更紧密的集成,但如何实现这一点仍然是一个开放的问题。

Robustness to HW failure:

        虽然解决硬件故障可能会出现在SLAM范围之外,但这些故障会影响SLAM系统,而后者在检测和缓解传感器和运动故障方面可以发挥关键作用。如果传感器的精度由于故障、非额定条件或老化而下降,则导致传感器测量的质量(例如,噪声、偏差)与后端使用的噪声模型(c.f. eq.(3))不匹配,会出现较差的估计。这自然提出了一个研究问题: 我们如何检测退化的传感器运行? 我们如何相应地调整传感器噪声统计(协方差,偏差)? 更一般地说,我们如何解决来自不同传感器的冲突信息? 这在安全至关重要的应用(如自动驾驶汽车)中似乎至关重要,在这些应用中,对传感器数据的错误解读可能会使人类的生命处于危险之中。

Metric Relocalization:

        与基于特征的方法不同,基于外观(appearance-based)的方法能够在白天和黑夜序列之间或不同季节之间回环闭合,由此产生的回环闭合本质上是拓扑的。对于度量重定位(metric relocalization)((即估计相对于先前建立的地图的相对位姿),基于特征的方法仍然是主流方法; 然而,目前的特征描述子缺乏足够的不变性,无法在这种情况下可靠地工作。空间信息,固有的SLAM问题,如轨迹匹配,可能被利用来克服这些限制。此外,使用一种传感器模式(如3D激光雷达)进行建图和使用不同的传感器模式(如摄像头)在同一幅地图上进行定位也是一个有用的补充。Wolcott等人[260]的工作是朝这个方向迈出的第一步。

Time varying and deformable maps:

        主流的SLAM方法是在考虑的是刚性和静态世界假设的情况下发展起来的;然而,由于动力学和物体固有的变形性,现实世界是非刚性的。理想的SLAM解决方案应该能够对环境中的动态物体进行推理,包括非刚性,能够在很长一段时间内生成“所有地形”地图,并能够实时地这样做。在计算机视觉领域,自80年代以来已经有几次尝试从非刚性物体中恢复形状,但适用性有限。非刚性SfM的最新研究结果(如[91,96])限制较少,但只适用于小场景。在SLAM社区,纽科姆等人[182]解决了小规模重建的非刚性情况。然而,在大尺度上解决非刚性地图的问题,在很大程度上还没有被探索。

Automatic parameter tuning:

        SLAM系统(特别是数据关联模块)需要大量的参数调优,以便在给定的场景中正确工作。这些参数包括控制特征匹配的阈值、RANSAC参数以及决定何时向图中添加新因子或何时触发回环闭合算法来搜索匹配。如果SLAM必须在任意场景下“开箱即用”,则需要考虑相关参数的自动调优方法。

IV. LONG-TERM AUTONOMY II: SCALABILITY

虽然现代的SLAM算法已经成功地在室内建筑规模的环境中进行了演示,但在许多应用中,机器人必须在更大的区域内进行长时间的运行。这些应用包括用于环境监测的海洋勘探,不断变化的城市中的不间断清洁机器人,或大规模的精准农业。在这类应用中,由于对新地方的不断探索和操作时间的增加,基于SLAM的因子图的大小可以无限增长。在实践中,计算时间和内存占用受到机器人资源的限制。因此,设计计算和存储复杂度保持有界的SLAM方法是非常重要的。

在最坏的情况下,基于直接线性求解的逐次线性化方法意味着在变量数量上二次增长的内存消耗。当使用迭代线性求解器(如共轭梯度[62])时,内存消耗随变量数量的增加而线性增长。更复杂的是,当对一个地方进行多次重复访问时,因子图优化的效率会随着节点和边不断添加到同一空间区域而降低,破坏了图的稀疏性结构。

在本节中,我们将回顾一些控制或至少减少问题规模增长的当前方法,并讨论开放的挑战。

概述

我们重点研究了降低因子图优化复杂度的两种方法: (i) sparsification methods,用内存和计算效率来交换信息损失,(ii)out-of-core and multi-robot methods,将计算分摊在多个机器人/处理器上。

Node and edge sparsification

这类方法通过减少添加到图中的节点数量,或通过修剪有较少的“信息度(informative)”节点和因子来解决可伸缩性问题。Ila等人[115]使用一种信息论方法,只向图中添加非冗余节点和高信息度的观测。Johannsson等人[120],在可能的情况下,通过在现有节点之间引入新的约束来避免向图中添加新的节点,这样变量的数量只会随着探索空间的大小而增长,而不会随着建图时间的延长而增长。Kretzschmar等人[141]提出了一种基于信息的准则,用于确定在位姿图优化中边缘化哪些节点。Carlevaris-Bianco和Eustice[28],以及Mazuran等[170]分别引入了Generic Linear Constraint (GLC)因子和Nonlinear Graph Sparsification (NGS)方法。These methods operate on the Markov blanket of a marginalized node and compute a sparse approximation of the blanket. Huang等人[107]通过求解一个l1正则化最小化问题来稀疏化Hessian矩阵(由正规方程产生)。

另一项可以随着时间的推移减少需要估算参数数量的工作是连续时间轨迹估计(continuous-time trajectory estimation)。Bibby和Reid提出了用三次样条曲线来表示机器人[12]的连续轨迹的SLAM方法。在他们的方法中,因子图中的节点代表了以滑动窗口方式优化的样条控制点(节)。后来,Furgale等人[88]提出了使用基函数,特别是b样条,在批量优化公式中近似机器人轨迹。滑动窗口b样条公式也用于带卷帘相机(rolling shutter cameras)的SLAM, Patron-Perez等人[196]采用基于鲁棒的表示,Kim等人[133]采用半稠密直接表示。最近,Mueggler等人[177]将连续时间SLAM公式应用于基于事件的相机。Bosse等人[21]将连续3D扫描匹配公式从[19]扩展到大规模SLAM应用。后来,Anderson等人[4]和Dub´e等人[67]分别通过使用小波或在轨迹上采样非均匀结提出了更有效的实现。Tong等人[243]将轨迹的参数化从基曲线改为高斯过程表示,其中因子图中的节点是实际机器人姿态,任何其他姿态都可以通过计算给定时间的后验均值来插值。在第一个方案中,需要一个昂贵的批量高斯牛顿优化来求解状态。Barfoot等人随后提出了一个带有精确稀疏逆核的高斯过程,这大大减少了批处理解的计算时间。

Out-of-core (parallel) SLAM

SLAM的核外并行算法(Parallel out-of-core)将因子图优化的计算(和内存)负载分配给多个处理器。其核心思想是将因子图划分为不同的子图,并通过对每个子图交替进行局部优化和全局细化来优化整体图。相应的方法通常被称为submapping算法,这种思想可以追溯到最初处理大规模地图[18]的尝试。Ni等人[187]和Zhao等人[267]提出了因子图优化的子建图方法,将子地图组织成二叉树结构。Grisetti等人[98]提出了一种子建图的层次结构:每当获得一个观测结果时,层次结构的最高层次会被修改,只有在较低层次上受实质性影响的区域会被改变。有些方法在两个并行运行的线程中近似解耦定位和建图,比如Klein和Murray[135]。其他方法则采用了并行求解不同阶段的方法:受[223]的启发,Strasdat等[235]采用了两阶段的方法,首先优化局部的位姿特征图,然后优化位姿图;Williams等人[259]在高频滤波器和低频平滑器中的分裂因子图优化,这是周期性同步的。

Distributed multi robot SLAM

构建大规模环境地图的一种方法是部署多个机器人进行SLAM,并将场景划分为更小的区域,每个区域由不同的机器人绘制。这种方法有两个主要变体:集中式(centralized),机器人建立子地图并将局部信息传送到中央工作站,中央工作站执行推断[66,210];分布式(decentralized),没有中央数据融合,智能体利用局部通信在一个公共地图上达成一致。Nerurkar等[181]提出了一种基于分布共轭梯度的协同定位算法。Aragurez等人[5]研究基于共识的地图合并方法。Knuth和Barooah[137]使用分布式梯度下降法估计3D姿态。在Lazaro等人[151]中,机器人交换它们的因子图的一部分,这些图以压缩的测量的形式近似,以最小化通信。Cunnigham等人[54]使用高斯消去法,并开发了一种称为DDF-SAM的方法,其中每个机器人在separators(即多个机器人共享的变量)上交换高斯边缘。[216]中有一项关于多机器人SLAM方法的最新综述。

[216] S. Saeedi, M. Trentini, M. Seto, and H. Li. Multiple-Robot Simultaneous Localization and Mapping: A Review. Journal of Field Robotics (JFR), 33(1):3–46, 2016.

虽然高斯消去法已经成为一种流行的方法,但它有两个主要的缺点。首先,机器人之间交换的边缘是密集的,通信成本是separators数量的二次型。这促使人们使用精简技术来降低通信成本[197]。第二个原因是高斯消去是在问题的线性化版本上执行的,因此像DDF-SAM[54]这样的方法需要良好的线性化点和复杂的簿记,以确保机器人之间的线性化点的一致性。高斯消去的另一种方法是Choudhary等人的[47]的高斯-塞德尔方法,这意味着通信负担在separators的数目上是线性的。

开放问题

尽管在降低因子图优化的复杂性方面做了大量的工作,但在与长期运行相关的其他方面文献有很大的差距。

Map representation:

一个尚未探索的问题是如何在长期运行期间存储地图。即使内存不是一个严格的限制,例如数据存储在云上,原始的表示如点云或volumetric地图(参见第五节)在内存方面是浪费;类似地,为基于视觉的SLAM存储特征描述符很快就会变得很麻烦。最近提出了一些初步的解决方案,用于针对压缩的已知地图进行定位[163],以及提高内存效率的密集重建[136]。

Learning, forgetting, remembering:

关于长期建图的一个有关的未决问题是,多久更新地图中保存的信息,以及如何决定这些信息何时过时并可以丢弃。如果能忘记,什么时候才好?在这种情况下,什么是可以遗忘的,什么是必须保持的?地图的某些部分可以被“卸载”并在需要时被召回吗?虽然这显然与任务有关,但文献中并没有对这些问题提出有根据的答案。

Robust distributed mapping:

虽然在单个机器人情况下提出了外点剔除的方法,但关于多机器人SLAM的文献很少涉及到外点问题。处理虚假测量尤其具有挑战性,原因有二。首先,机器人可能不共享一个共同的参考系,使其更难检测和拒绝错误的回环闭合。其次,在分布式SLAM中,机器人必须从非常partial和local的信息中检测出外点。解决这个问题的早期尝试是[84],在融合信息之前,机器人使用一个集合策略(rendezvous strategy)主动验证位置假设。Indelman等人[117]提出了一种概率方法,在面对虚假测量时建立一个共同的参考框架。

Resource-constrained platforms:

另一个相对未被探讨的问题是如何使现有的SLAM算法适应机器人平台有严格计算限制的情况。当平台的尺寸缩小时,例如移动电话、微型飞行器或机器人昆虫,这个问题非常重要[261]。许多SLAM算法在这些平台上运行都太昂贵了,所以最好能有一种算法,可以调整“旋钮”,让精度和计算成本之间的平衡得到缓和。在多机器人设置中也出现了类似的问题:在面临带宽限制和通信中断的情况下,如何保证多机器人团队的可靠运行?Cieslewski等人[49]的版本控制方法是这方面的第一个研究。

V. REPRESENTATION I: METRIC MAP MODELS

本节讨论如何在SLAM中建模几何图形。更正式地说,度量表示(或度量地图)(metric representation)是编码环境几何形状的符号结构。我们认为,理解如何为SLAM选择合适的度量表示将影响许多研究领域,包括长期导航、与环境的物理交互以及人机交互。

几何建模在二维情况下显得简单得多,只有两种主要的范式: 基于路标的地图(landmark-based maps)和占用网格地图(occupancy grid maps)。前者将环境建模为一组稀疏的路标,后者将环境离散化成网格,并给每个单元分配占用概率。在二维情况下,这些表示的标准化问题已经被IEEE RAS Map Data Representation Working Group解决,该工作组最近发布了机器人二维地图的标准[113]。

[113] IEEE RAS Map Data Representation Working Group. IEEE Standard for Robot Map Data Representation for Navigation, Sponsor: IEEE Robotics and Automation Society. http://standards.ieee.org/findstds/standard/1873-2015.html/, June 2016. IEEE.

该标准为平面环境(外加拓扑地图)定义了两种主要的度量表示,以便于数据交换、基准测试和技术转移。

三维几何建模的问题更加微妙,如何在建图过程中有效地对三维几何建模的理解还处于起步阶段。在本节中,我们将回顾度量表示,从机器人、计算机视觉、计算机辅助设计(CAD)和计算机图形学的广泛角度进行讨论。我们的分类法的灵感来自[80,209,221],并包括指向更近期工作的pointer。

Landmark-based sparse representations

大多数SLAM方法将场景表示为一组稀疏的3D地标,对应于环境中的判别特征(如线、角)[179];一个例子如图4(左)所示。

[179] R. Mur-Artal, J. M. M. Montiel, and J. D. Tard´os. ORB-SLAM: a Versatile and Accurate Monocular SLAM System. IEEE Transactions on Robotics (TRO), 31(5):1147–1163, 2015.

图片9.jpg

这些通常被称为基于路标的表示或基于特征的表示,自定位和地图的早期工作以来,在移动机器人中广泛应用,在SfM的计算机视觉中也广泛使用[2,244]。

[2] S. Agarwal, N. Snavely, I. Simon, S. M. Seitz, and R. Szeliski. Bundle adjustment in the large. In European Conference on Computer Vision (ECCV), pages 29–42. Springer, 2010.

[244] B. Triggs, P. McLauchlan, R. Hartley, and A. Fitzgibbon. Bundle Adjustment - A Modern Synthesis. In W. Triggs, A. Zisserman, and R. Szeliski, editors, Vision Algorithms: Theory and Practice, pages 298–375. Springer, 2000.

一个普遍的假设是这些路标是可区分的,即传感器数据测量路标的某些几何方面,但也提供一个描述符,在每个测量和相应路标之间建立一个(可能不确定的)数据关联。先前的工作还研究了不同的3D路标参数化,包括全局和局部笛卡尔模型,以及逆深度参数化[174]。虽然大量的工作集中在点特征的估计上,但相关研究还包括对更复杂的几何地标的扩展,包括线、段或弧[162]。

[162] Y. Lu and D. Song. Visual Navigation Using Heterogeneous Landmarks and Unsupervised Geometric Constraints.

IEEE Transactions on Robotics (TRO), 31(3):736–749, 2015.

Low-level raw dense representations

与基于路标的表示相反,稠密表示尝试提供3D几何图形的高分辨率模型;这些模型更适合于避障,或者可视化和渲染,如图4(右)所示。在稠密模型中,原始表示通过大量非结构化点(即点云)或多边形(即polygon soup[222])来描述三维几何。点云,与立体相机和RGB-D相机以及3D激光雷达一起被广泛应用于机器人技术[190]。

[222] C. Shen, J. F. O’Brien, and J. R. Shewchuk. Interpolating and Approximating Implicit Surfaces from Polygon Soup. In SIGGRAPH, pages 896–904. ACM, 2004.

[190] A. N¨uchter. 3D Robotic Mapping: the Simultaneous Localization and Mapping Problem with Six Degrees of Freedom, volume 52. Springer, 2009.

这些表示方法最近在单目SLAM中获得了普及,结合直接法(direct method)的使用[118,184,203],直接从所有图像像素的强度值来估计机器人的轨迹和3D模型。

[118] M. Irani and P. Anandan. All About Direct Methods. In Proceedings of the International Workshop on Vision Algorithms: Theory and Practice, pages 267–277. Springer, 1999.

[184] R. A. Newcombe, S. J. Lovegrove, and A. J. Davison. DTAM: Dense Tracking and Mapping in Real-Time. In Proceedings of the IEEE International Conference on Computer Vision (ICCV), pages 2320– 2327. IEEE, 2011.

[203] M. Pizzoli, C. Forster, and D. Scaramuzza. REMODE: Probabilistic, Monocular Dense Reconstruction in Real Time. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), pages 2609–2616. IEEE, 2014.

稍微复杂一点的表示是surfel maps,它将几何图形编码为一组圆盘(disks)[104,257]。虽然这些表示在视觉上令人愉快,但它们通常很麻烦,因为它们需要存储大量数据。此外,它们对几何结构的描述较低,忽略了障碍物的拓扑结构。

[104] P. Henry, M. Krainin, E. Herbst, X. Ren, and D. Fox. RGB-D mapping: Using depth cameras for dense 3d modeling of indoor environments. In Proceedings of the International Symposium on Experimental Robotics (ISER), 2010.

[257] T. Whelan, S. Leutenegger, R. F. Salas-Moreno, B. Glocker, and A. J. Davison. ElasticFusion: Dense SLAM Without A Pose Graph. In Proceedings of Robotics: Science and Systems Conference (RSS), 2015.

Boundary and spatial-partitioning dense representations

边界稠密表示和空间划分表示超越了非结构化的低级基元集合(如点),并试图显式地表示表面(或边界)和体积。这些表示更适合于诸如运动规划或步态规划、避障、操纵和其他基于物理的规划,如接触规划(contact reasoning)等任务。

边界表示(b-reps)定义3D物体的表面边界。特别简单的边界表示是基于平面的模型,Castle等人[44]和Kaess[124,162]已经将其用于建图。更通用的b-reps包括基于曲线的表示(例如NURBS或b样条的张量积),曲面网格模型(surface mesh models)(connected sets of polygons)和隐式曲面表示(implicit surface representations)。

隐式曲面表示指定立体的表面为R3上定义的函数的零交点(The latter specify the surface of a solid as the zero crossing of a function defined on R3[16])。函数的例子包括radial-basis functions [38], signed-distance function [55], and truncated signed-distance function (TSDF) [264]。TSDF目前是机器人领域基于视觉的SLAM的一种流行表示,在开创性的工作[183]之后吸引了越来越多的关注。[257,258]也采用了网格模型。

[16] J. Bloomenthal. Introduction to Implicit Surfaces. Morgan Kaufmann, 1997.

[38] J. C. Carr, R. K. Beatson, J. B. Cherrie, T. J. Mitchell, W. R. Fright, B. C. McCallum, and T. R. Evans. Reconstruction and Representation of 3D Objects with Radial Basis Functions. In SIGGRAPH, pages 67–76. ACM, 2001.

[55] B. Curless and M. Levoy. A volumetric method for building complex models from range images. In SIGGRAPH, pages 303–312. ACM, 1996.

[264] C. Zach, T. Pock, and H. Bischof. A Globally Optimal Algorithm for Robust TV-L1 Range Image Integration. In Proceedings of the IEEE International Conference on Computer Vision (ICCV), pages 1–8. IEEE, 2007.

[183] R. A. Newcombe, A. J. Davison, S. Izadi, P. Kohli, O. Hilliges, J. Shotton, D. Molyneaux, S. Hodges, D. Kim, and A. Fitzgibbon. KinectFusion: Real-Time Dense Surface Mapping and Tracking. In IEEE and ACM International Symposium on Mixed and Augmented Reality (ISMAR), pages 127–136, Basel, Switzerland, Oct. 2011.

[257] T. Whelan, S. Leutenegger, R. F. Salas-Moreno, B. Glocker, and A. J. Davison. ElasticFusion: Dense SLAM Without A Pose Graph. In Proceedings of Robotics: Science and Systems Conference (RSS), 2015.

[258] T. Whelan, J. B. McDonald, M. Kaess, M. F. Fallon, H. Johannsson, and J. J. Leonard. Kintinuous: Spatially Extended Kinect Fusion. In RSS Workshop on RGB-D: Advanced Reasoning with Depth Cameras,2012.

空间划分表示(Spatial-partitioning representations)将3D对象定义为连续的非相交基元(primitives)的集合。最流行的空间划分表示是所谓的spatial-occupancy enumeration,它将3D空间分解为相同的立方体(体素voxels),排列在规则的3D网格中。更有效的划分方法包括八叉树、Polygonal Map octree和二叉空间划分树[80,12.6]。在机器人技术中,八叉树表示已经被用于3D建图[75],而常用的占用网格地图[71]可以被认为是空间划分表示的概率变体。

[80] J. Foley, A. van Dam, S. Feiner, and J. Hughes. Computer Graphics: Principles and Practice. Addison-Wesley, 1992.

[75] N. Fairfield, G. Kantor, and D. Wettergreen. Real-Time SLAM with Octree Evidence Grids for Exploration in Underwater Tunnels. Journal of Field Robotics (JFR), 24(1-2):03–21, 2007.

[71] A. Elfes. Occupancy Grids: A Probabilistic Framework for Robot Perception and Navigation. Journal on Robotics and Automation, RA-3(3):249–265, 1987.

[23] C. Brand, M. J. Schuster, H. Hirschmuller, and M. Suppa. Stereo-Vision Based Obstacle Mapping for Indoor/Outdoor SLAM. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pages 2153–0858. IEEE, 2014.

在没有悬挂的障碍物的3D环境中,也使用了[23]的2.5D高程地图(2.5D elevation maps)。在进行更高级的表示之前,让我们更好地理解稀疏(基于特征的)表示(和算法)与视觉SLAM中的稠密表示的比较。

哪种方法最好:基于特征的方法还是直接法? 基于特性的方法已经相当成熟,并且有很长的成功历史[59]。它们允许建立精确和鲁棒的自动重定位和回环闭合的SLAM系统[179]。然而,这样的系统依赖于环境中特征的可用性,依赖于检测和匹配阈值,以及大多数特征检测器的优化是为了速度而不是精度。直接法处理原始像素信息,稠密直接法利用图像中的所有信息,即使是梯度较小的区域;因此,在纹理较差、散焦(defocus)和运动模糊的场景中,它们可以优于基于特征的方法[184,203]。然而,它们需要高计算能力(gpu)来实现实时性能。此外,如何联合估计稠密结构和运动仍然是一个开放的问题(目前它们只能交替估计)。为了避免基于特征的方法的问题,有两种选择。半稠密法通过仅利用具有强梯度(即边缘)的像素来克服稠密方法的高计算要求[72,83];半直接方法利用了稀疏特征(如角或边)和直接法[83],并被证明是最有效的[83];此外,因为它们依赖于稀疏特征,它们允许结构和运动的联合估计。

High-level object-based representations

虽然点云和边界表示目前是稠密建图的主流方法,我们预计更高层次的表示,包括物体(object)和实体(solid)形状,将在SLAM的未来发挥关键作用。早期的SLAM技术包括SalasMoreno等人的SLAM++[217]、Civera等人的[50]和Dame等人的[56]。实体表示(solid representations)明确地编码了这样一个事实:真实物体是三维的,而不是一维的(即点)或二维的(曲面)。将物体建模为固体形状允许将物理概念(如体积和质量)关联到每个物体,这对必须与世界交互的机器人来说绝对是重要的。幸运的是,来自CAD和计算机图形学的现有研究为这些发展铺平了道路。下面,我们列举了几个尚未在SLAM环境中使用的实体表示的例子:

Parameterized Primitive Instancing:依赖于目标族(families of objects)的定义(如圆柱体、球体)。对于每个族,都定义了一组参数(例如,半径、高度),它们唯一地标识族的一个成员(或实例)。这种表现方式可能会在SLAM中得到应用,因为它可以使用非常紧凑的模型,同时仍然捕捉人造环境中的许多元素。

Sweep representations:沿轨迹穿过空间时将实体定义为2D或3D物体的扫描。典型的扫描表示(sweep representations)包括平移扫描(或extrusion)和旋转扫描。例如,圆柱体可以表示为沿与圆平面正交的轴的圆的平移扫描。二维截面的扫描在计算机视觉[13]中被称为广义圆柱体(generalized cylinders),它们已被用于机器人抓取[200]。这种表示似乎特别适合于推理场景的遮挡部分,通过利用对称性。

Constructive solid geometry:通过基元(primitives)之间的布尔运算来定义复杂的固体。一个目标被存储为一棵树,其中叶子是基元,边表示操作。这种表示方法可以对相当复杂的几何图形进行建模,在计算机图形学中得到了广泛的应用。

在总结这篇综述时,我们提到了其他类型的表示,包括CAD中基于特征的模型[220]、 dictionary-based representations[266]、affordance-based models[134]、generative and procedural models[172],以及scene graphs[121]。特别是基于字典的表示,将固体定义为字典中原子的组合,在机器人和计算机视觉中已经被考虑,使用从数据[266]中学习的字典或基于对象模型的现有存储库[149,157]。

开放问题

以下关于SLAM的度量表示的问题值得大量的基础研究,但仍有大量的未探索。

High-level, expressive representations in SLAM:

虽然目前大多数机器人社区都专注于点云或TSDF来建模三维几何,但这些表示有两个主要缺点。首先,它们浪费内存空间。例如,这两种表示都使用许多参数(即点、体素)来编码一个简单的环境,比如一个空房间(所谓的体素哈希voxel hashing可以部分缓解这个问题[188])。

[188] M. Nießner, M. Zollh¨ofer, S. Izadi, and M. Stamminger. Real-time 3D Reconstruction at Scale Using Voxel Hashing. ACM Transactions on Graphics (TOG), 32(6):169:1–169:11, Nov. 2013

其次,这些表示没有提供任何对三维几何的高级理解。例如,考虑这样一个例子,机器人必须判断它是在房间里还是在走廊里移动。点云不能提供关于环境类型(如房间与走廊)的现成可用信息,而更复杂的模型(例如参数化的基元实例化)将提供简单的方法来区分这两个场景(例如,通过查看定义基元的参数)。因此,在SLAM中使用更高级的表示有三个优势。

首先,使用更紧凑的表示将为大规模建图中的建图压缩提供一种自然的工具。

其次,高级表示将提供物体几何的高级描述,这是促进数据关联、位置识别、语义理解和人机交互的理想特征;这些表示也将为SLAM提供强大的支持,使其能够对遮挡进行推理,利用形状先验,并通知目标物理属性的推理/建图过程(如体重、动力)。

最后,使用丰富的3D表示可以与现有的现代建筑建设和管理标准进行交互,包括CityGML[193]和IndoorGML[194]。

目前没有任何SLAM技术可以构建超越点云、网格模型、surfes模型和TSDFs的更高层次的表示。最近在这方面的努力包括[17,51,231]。

Optimal Representations:

虽然关于3D几何的不同表示形式的文献相对较多,但很少有工作关注于理解哪些标准应该指导选择特定的表示形式。直观地说,在简单的室内环境中,我们应该选择参数化的基元,因为很少参数可以充分描述三维几何。另一方面,在复杂的室外环境中,人们可能更喜欢网格模型。因此,我们应该如何比较不同的表示法,如何选择“最优”的表示法? Requicha[209]识别了一些允许比较不同表示的实体表示的基本属性。这些属性中我们发现:domain(可以表示的真正的对象的集合),conciseness(存储和传输的表示大小),ease of creation(在机器人学总,这是构造表示的推理的所需时间),efficacy in the context of application(这取决于任务的表示使用)。因此,“最佳”表示法是能够执行给定任务的表示法,同时又简洁容易创建。Soatto和Chiuso[229]将最优表示定义为执行给定任务的最小充分统计量,及其对有害因素的最大不变性。找到一个通用但易于处理的框架来选择任务的最佳表示仍然是一个开放的问题。

Automatic, Adaptive Representations:

传统上,表示的选择被委托给设计系统的机器人专家,但这有两个主要缺点。首先,设计一个合适的表示是一项耗时的任务,需要专家。第二,它缺乏灵活性:一旦系统被设计出来,选择的表示方式就不能改变;理想情况下,我们希望机器人根据任务和环境的复杂性使用或多或少的复杂表示。最优表示的自动设计将对长期导航产生很大的影响。

VI. REPRESENTATION II: SEMANTIC MAP MODELS

语义建图包括将语义概念与机器人周围的几何实体相关联两部分。最近,人们认识到单纯的几何地图的局限性,为了提高机器人自主和鲁棒性,促进更复杂的任务(例如避免开车时泥泞的道路),从路径规划到任务规划,使能高级人机交互 [9, 26, 217],催生了一个重要的和正在进行的研究,即在环境中语义建图。

[9]S. Y. Bao, M. Bagra, Y. W. Chao, and S. Savarese. Semantic structure from motion with points, regions, and objects. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 2703–2710. IEEE, 2012.

[26] C. Cadena, A. Dick, and I. D. Reid. A Fast, Modular Scene Understanding System using Context-Aware Object Detection. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), pages 4859–4866. IEEE, 2015.

[217] R. Salas-Moreno, R. Newcombe, H. Strasdat, P. Kelly, and A. Davison.SLAM++: Simultaneous Localisation and Mapping at the Level of Objects. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 1352–1359. IEEE, 2013.

不同的需求导致了语义建图的不同方法,主要在语义概念的数量和类型以及将它们与环境的不同部分联系起来的方法上有所不同。例如,Pronobis和Jensfelt[206]对不同的房间进行了标注,而Pillai和Leonard[201]对地图上的几个已知物体进行了分割。除了少数几种方法外,基本层次的语义解析(semantic parsing)被表述为一个分类问题,其中考虑了传感器数据和语义概念之间的简单建图。

Semantic vs. topological SLAM

正如在第一节中提到的,拓扑地图去掉了度量信息,只利用位置识别来构建一个图(graph),其中节点代表可识别的“位置”,而边表示位置之间的可达性。拓扑地图与语义地图截然不同。前者需要识别一个之前见过的地方(不管那个地方是厨房还是走廊),后者感兴趣的是根据语义标签对位置进行分类。Lowry等人对基于视觉的拓扑SLAM进行了全面的综述[160],第三节讨论了其中的一些挑战。在本节的其余部分中,我们将重点讨论语义地图。

[160] S. Lowry, N. S¨underhauf, P. Newman, J. J. Leonard, D. Cox, P. Corke, and M. J. Milford. Visual Place Recognition: A Survey. IEEE Transactions on Robotics (TRO), 32(1):1–19, 2016.

Semantic SLAM: Structure and detail of concepts

对于人类来说,概念的数量是无限的,概念之间的关系也是无限的,这为语义概念的层次和组织提供了一个更哲学的、任务驱动的决策。细节和组织取决于机器人执行任务的内容和位置,它们在不同阶段影响问题的复杂性。语义表示(semantic representation)是通过定义以下几个方面来构建的:

Level/Detail of semantic concepts: 对于一个给定的机器人任务,例如从房间a到房间B,粗略的分类(房间、走廊、门)就足以成功完成任务,而对于其他任务,例如“拿起茶杯”,则需要更精细的分类(桌子、茶杯、玻璃杯)。

Organization of semantic concepts:语义概念并不是排他的。甚至,单个实体可以拥有无限数量的属性或概念。椅子可以“movable”和“sittable”;一张餐桌可以是“movable”和“unsittable”。虽然椅子和桌子是家具,但它们共享可移动的属性,但具有不同的可用性。平面或层次结构的组织,无论是否共享某些属性,都必须被设计来处理这种概念的多样性。

Brief Survey

进行语义建图和将语义概念分配给数据的方法主要有三种。

SLAM helps Semantics: 第一个研究语义建图的机器人研究人员首先采用直接的方法,将经典SLAM系统构建的度量地图分割成语义概念。

早期的工作是Mozos等人[176],他们使用2D激光扫描建立了一个几何地图,然后通过关联马尔可夫网络(associative Markov network)以离线方式融合每个机器人位姿的分类语义位置。同样,Lai等[148]用RGB-D序列构建三维地图,然后进行离线目标分类。Pronobis等人后来提出了一种在线语义建图系统[206],他们结合了三层推理(感官、类别和地点),利用激光和相机传感器构建了环境的语义地图。最近,Cadena等人[26]使用了运动估计,并将粗语义分割与不同的目标检测器连接起来,以优于单个系统。Pillai和Leonard[201]使用单目SLAM系统来提高视频中物体识别任务的性能。

Semantics helps SLAM: 在第一个语义地图出现后不久,另一个趋势是利用已知的语义类或目标。这个想法是,如果我们能识别出地图上的物体或其他元素,那么我们就可以利用我们对其几何形状的先验知识来提高对地图的估计。

Castle等人的[44]和Civera等人的[50]和Dame等人的[56]在小范围内进行了第一次尝试,前者采用稀疏特征的单目SLAM,后者采用稠密地图表示。Salas-Moreno等人[217]利用RGB-D传感器提出了一种基于环境中已知物体检测的SLAM系统。

Joint SLAM and Semantics inference: 具有计算机视觉和机器人技术专长的研究人员意识到,他们可以在以联合的形式执行单目SLAM和地图分割。

Flint等人的在线系统[79]提出了一个模型,利用曼哈顿世界假设来分割室内场景中主要平面上的地图。Bao等人[9]提出了一种利用场景中的几何属性和语义属性联合估计相机参数、场景点和对象标签的方法。在他们的工作中,作者以每幅图像对20分钟的运行时间为代价,证明了改进的物体识别性能和鲁棒性,但是有限的物体类别使该方法不适用于在线机器人运行。与此同时,H¨ane等人[102]解决了户外场景中更专业化的类相关优化问题。尽管仍是离线的方式,Kundu等人[147]通过语义分割和度量建图的后期融合降低了问题的复杂性,Sengupta等人[219]早些时候也利用立体相机提出了类似的想法。需要注意的是,[147]和[219]只关注建图部分,并没有在后期阶段对早期计算的位姿进行改进。最近,Vineet等人[251]提出了一个很有前途的在线系统,该系统使用立体相机和稠密地图表示。

Open Problems.

在SLAM中包含语义信息的问题还处于起步阶段,与度量SLAM相反,它仍然缺乏一个cohesive的公式。图5显示了一个建筑工地作为一个简单的例子,我们可以发现下面讨论的挑战。

图片10.jpg

Consistent semantic-metric fusion: 尽管在时间融合方面已经取得了一些进展,例如,每帧语义证据[219,251],但将多个来源的语义信息与来自不同时间点的度量信息进行一致融合的问题仍然存在。将语义分类的置信度或不确定性合并到已知的因子图公式中,用于度量表示,这是一种可能的方法,可以得到一个联合的语义-度量推理框架。

Semantic mapping is much more than a categorization problem: 语义概念正在演变为更专门的信息,如地图中实体的功能支持度和可操作性,以及环境中不同活跃主体之间可能的交互作用。如何表示这些属性和相互关系,是高级人机交互需要回答的问题。

Ignorance, awareness, and adaptation: 给出一些先验知识,机器人应该能够推断新概念及其语义表征,也就是说,它应该能够发现新的对象或类的环境,学习新的属性与其他机器人与人类活动相互作用的结果,并适应表示随时间缓慢而突然的环境的变化。例如,假设一个带轮机器人需要判断地形是否可以驾驶,以告诉它的导航系统。如果机器人在一条道路上发现了一些泥,而这条路之前被划分为可驾驶的,机器人应该根据穿越泥泞区域的难度等级学习一个新的分类,或者在发现另一辆车陷入泥泞时调整学习器。

Semantic-based reasoning:作为人类,语义表示允许我们压缩并加速对环境的推理,而评估准确的度量表示则需要我们付出一些努力。目前,机器人的情况并非如此。机器人可以处理(有色的)度量表示,但它们不能真正利用语义概念。我们的机器人目前无法有效地、高效地定位和持续地构建使用环境中的语义概念(类别、关系和属性)的地图。例如,当探测到一辆汽车时,机器人应该推断出汽车下存在平面地面(即使被遮挡),当汽车移动时,地图更新应该只使用新的传感器读数来优化推断出的地面。更重要的是,相同的更新应该在单一且有效的操作中改变汽车的整体姿态,而不是更新每一个个体素。

VII. NEW THEORETICAL TOOLS FOR SLAM

本节讨论了为SLAM算法建立性能保证方面的最新进展,并阐明了尚未解决的问题。理论分析之所以重要,主要有三个原因。首先,SLAM算法和实现通常在很少的问题实例中进行测试,很难理解相应的结果如何推广到新的实例中。第二,理论结果阐明了问题的内在属性,揭示了在实证评估中可能与直觉相反的方面。第三,对问题结构的真正理解可以推动算法的边界,从而扩展可解决的真实SLAM实例集。

早期的SLAM算法理论分析都是基于EKF的使用;我们请读者参考[64,255]对EKF SLAM的一致性和可观测性进行全面的讨论。这里我们关注的是因子图优化方法。除了实际的优点(准确性,效率),因子图优化提供了一个优雅的框架,更易于分析。

由于没有先验,MAP估计简化为最大似然估计。因此,在没有先验的情况下,SLAM继承了极大似然估计的所有性质。(4)中的估计量是一致的,渐近高斯的,渐近有效的,并且对欧几里德空间中的变换不变[171,定理11-1,2]。有些性质在存在先验的情况下会丢失(例如,估计量不再是不变的[171,193页])。

在这种情况下,我们更感兴趣的算法性质:一个给定的算法收敛到MAP估计? 我们如何改进或检查收敛性?  在存在虚假测量的情况下,断点(breakdown point)是什么?

综述

大多数SLAM算法都是基于迭代非线性优化[63,99,125,126,192,204]。SLAM是一个非凸问题,迭代优化只能保证局部收敛。当一个算法收敛到局部最小值时,它通常返回一个完全错误的估计,不适合导航(图6)。

图片11.jpg

最先进的迭代求解器无法在相对较小的噪声水平下收敛到全局最小代价[32,37]。在迭代方法中未能收敛引发了对SLAM问题更深入理解的努力。黄和他的合作者[110]率先进行了这方面的研究,他们的初步研究讨论了SLAM中非凸性的本质。Huang等人[111]讨论了小位姿图优化问题中的最小值个数。Knuth和Barooah[138]研究了在没有回环时误差的增长。Carlone[29]为高斯-牛顿法提供了收敛域的估计。Carlone和Censi[32]表明,旋转估计可以在2D中以封闭形式求解,并表明相应的估计是唯一的。最近使用的另一种最大似然公式(例如,假设旋转时Von Mises噪声[34,211])得到了更强有力的结果。arlone和Dellaert[31,36]证明了在实践中经常遇到的某些条件(强对偶性)下,最大似然估计是唯一的,通过(凸)半定规划(SDP)可以全局求解位姿图优化。[109]对SLAM的理论方面进行了最近的概述。

如前所述,理论分析有时是设计更好算法的第一步。除了[31,36]的双SDP方法外,其他作者还提出了避免收敛到局部极小的凸松弛法。这些贡献包括Liu等人[159]和Rosen等人[211]的工作。另一个改进收敛性的成功策略是为迭代非线性优化计算一个合适的初始化。在这方面,首先求解旋转并将得到的估计用于bootstrap非线性迭代的想法在实践中被证明是非常有效的[20,30,32,37]。Khosoussi等人[130]利用平移和旋转之间的(近似)可分性来加速优化。

最近在SLAM中使用拉格朗日对偶性的理论结果也使验证技术的设计成为可能:给定一个SLAM估计,这些技术能够判断这种估计是否是最优的。能够确定一个给定的SLAM解决方案的质量对于设计故障检测(failure detection)和关键应用的恢复策略是至关重要的。关于SLAM验证技术的文献是最近的: 目前的方法[31,36]能够通过求解稀疏线性系统来进行验证,并且只要强对偶性成立,就能保证给出正确的答案(这一点稍后详细讨论)。

我们注意到,在机器人环境中提出的这些结果,为其他领域的相关工作提供了有益的补充,包括多智能体系统中的定位[46,1992,202,245,254]、计算机视觉中的SfM[86,95,103,168]和冷冻电子显微镜[224,225]。

开放问题

尽管过去几年取得了前所未有的进展,但仍有几个理论问题有待解决。

Generality, guarantees, verification::第一个问题是关于现有结果的通用性。大多数关于保证全局解和验证技术的结果已经在位姿图优化的背景下提出。这些结果能推广到任意因子图吗? 而且,大多数理论结果都假定测量噪声是各向同性的,或者至少是结构化的。我们能否将现有的结果推广到任意的噪声模型中?

Weak or Strong duality? 文献[31,36]表明,当强对偶性存在时,SLAM可以得到全局最优解;此外,它们提供了在实际应用中遇到的大多数问题中存在强对偶性的经验证据。突出的问题在于建立一个先验条件,在此条件下强对偶性成立。我们想回答这样一个问题:“给定一组传感器(以及相应的测量噪声统计)和一个因子图结构,强对偶性成立吗?”回答这个问题的能力将定义我们可以计算(或验证)SLAM全局解的应用领域。这一理论研究也将为传感器设计和主动SLAM提供基础见解(第VIII节)。

Resilience to outliers: 第三个问题是关于在存在虚假测量(spurious)的情况下的估计。虽然最近的结果为位姿图优化提供了强有力的保证,但这类结果并不适用于存在外点的情况。尽管针对非高斯噪声情况的鲁棒SLAM(章节III)和新的建模工具[212]进行了研究,但对外点有弹性的全局技术的设计,以及能够在外点存在的情况下保证给定估计的正确性的验证技术的设计仍然是开放的。

VIII. ACTIVE SLAM

到目前为止,我们将SLAM描述为机器人被动执行的估计问题,即机器人在给定传感器数据的情况下执行SLAM,但没有刻意采取行动来收集这些数据。在本节中,我们将讨论如何利用机器人的运动来改善建图和定位结果。

为了最小化地图表示和定位的不确定度而控制机器人的运动的SLAM方法称为主动SLAM(Active SLAM)。这一定义源于著名的Bajcsy的主动感知[8]和Thrun的机器人探索[240,Ch. 17]范式。

综述

主动SLAM算法的第一个提议和实现可以追溯到Feder[77],而这个名字是在[152]中创造的。然而,主动SLAM起源于人工智能和机器人探索的想法,可以追溯到80年代早期(c.f.[10])。Thrun在[239]中总结道,解决exploration-exploitation困境,即在访问新区域(探索)和通过重新访问已知区域(开发)减少不确定性之间找到平衡,比起随机探索或纯粹开发,这是一种更有效的选择。

主动SLAM是一个决策问题,有几个通用的决策框架可以作为exploration-exploitation决策的支柱。其中一个框架是 Theory of Optimal Experimental Design (TOED)[198],该理论应用于主动SLAM[41,43],允许基于预测的地图不确定性选择未来机器人动作。信息论[164,208]方法也被应用于主动SLAM [40, 232];在这种情况下,决策通常以信息获取的概念为指导。主动SLAM的控制论方法包括使用模型预测控制[152,153]。另一组研究在Partially Observably Markov Decision Process (POMDP)[123]的形式主义下制定了主动SLAM,这通常被认为是难以计算的。主动SLAM的近似但易于处理的解决方案包括贝叶斯优化[169]或有效高斯信念传播[195]等。

一个流行的主动SLAM框架包括在一组有限的备选方案中选择最佳的未来行动。这类主动SLAM算法主要分为三个步骤[15,35]: 1)机器人在其当前估计的地图中识别出可能探索或开发的位置,即有利位置(vantage locations); 2)机器人计算访问每个vantage point的效用(utility),并选择效用最高的行动; 3)机器人执行所选择的动作,并决定是否需要继续或终止任务。下面,我们将详细讨论每一点。

Selecting vantage points: 理想情况下,执行主动SLAM算法的机器人应该评估机器人和地图空间中的每一个可能的动作,但评估的计算复杂度随着搜索空间的增大呈指数增长,这在实际应用中被证明是难以计算的[24,169]。在实践中,地图上的一小部分位置被选择,使用的技术是基于边界的探索[127,262]。最近的研究[250]和[116]提出了不确定性下的连续空间规划方法,可用于主动SLAM;  目前这些方法只能保证收敛到局部最优策略。主动SLAM算法的另一个最近的连续域方法是势能场(potential fields)的使用。一些例子是[249],它使用卷积技术来计算熵和选择机器人的行动,和[122],诉诸于一个边值问题的解决。

Computing the utility of an action:实际上,为了计算一个给定动作的效用(utility),机器人应该对机器人位姿和地图上的后验进化进行推理,考虑到未来(可控)动作和未来(未知)测量。如果这种后验是已知的,则可以使用一个信息增益函数来对不同的行为进行排序[22,233]。然而,解析地计算这个联合概率通常是很难计算的[35,76,233]。在实践中,人们求助于近似。初始工作认为地图和机器人的不确定性是独立的[246]或条件独立的[233]。这些方法中的大多数将效用定义为量化机器人和映射不确定性的指标的线性组合[22,35]。这种方法的一个缺点是,两个不确定度的数值比例是不可比较的,即地图的不确定度通常比机器人的大几个数量级,所以需要手动调整来纠正它。针对基于粒子滤波的SLAM[35]和位姿图优化[40]提出了解决这一问题的方法。

The Theory of Optimal Experimental Design (TOED) [198]也可以用来解释执行一个动作的效用。在TOED中,每个动作都被认为是随机设计,设计之间的比较是通过所谓的最优准则,使用它们的相关协方差矩阵来完成的,例如A-opt, D-opt和E-opt。关于最佳性标准在主动SLAM中的应用的研究见[42,43]。

Executing actions or terminating exploration: 虽然执行一个动作通常是一项简单的任务,但使用运动规划中成熟的技术,决定探索任务是否完成,目前是一个公开的挑战,我们将在下文中讨论。

开放问题

为了使主动SLAM在实际应用中产生影响,还有几个问题需要解决。

Fast and accurate predictions of future states:

主动SLAM中,机器人的每一个动作都应有助于减少地图的不确定性,提高定位精度;为此,机器人必须能够预测未来行动对地图和机器人定位的影响。预测必须快速满足延迟约束,并精确有效地支持决策过程。在SLAM领域中,回环闭合对于减少不确定性、提高定位和地图绘制精度非常重要。然而,预测回路闭合的发生和影响的有效方法还没有被设计出来。此外,预测未来行为的影响仍然是一个计算昂贵的任务[116]。最近预测机器人未来状态的方法可以在机器学习文献中找到,包括光谱技术[230]和深度学习[252]的使用。

Enough is enough: When do you stop doing active SLAM?

主动SLAM在计算上是一个昂贵的任务:因此,一个自然的问题是,我们什么时候可以停止主动SLAM,转而使用经典(被动)SLAM,以便将资源集中到其他任务上。平衡主动SLAM决策和外部任务是至关重要的,因为在大多数现实任务中,主动SLAM只是实现预期目标的一种手段。此外,有一个停止判据是必要的,因为在某种程度上可以证明,更多的信息不仅会导致收益递减效应,而且在信息相互矛盾的情况下,还会导致不可恢复的状态(例如,几个错误的回环闭合)。与难以跨系统[39]比较的信息论度量相比,以任务为导向的TOED的不确定性度量作为停止标准似乎很有希望。

Performance guarantees:

另一个重要的途径是为主动SLAM和接近最优政策寻找数学保证。由于精确求解这一问题是一个棘手的问题,因此希望有一个具有明确性能边界的近似算法。这种努力的例子是在主动传感器放置相关领域中使用的次模块化(submodularity)[93]。

IX. NEW FRONTIERS: SENSORS AND LEARNING

新传感器的开发和新计算工具的使用往往是SLAM的关键驱动因素。第IX-A部分回顾了非常规和新型传感器,以及它们在SLAM环境下带来的挑战和机遇。第IX-B节讨论了(深度)学习作为SLAM重要前沿的作用,分析了这一工具将改善、影响甚至重申SLAM问题的可能方法。

A.New and Unconventional Sensors for SLAM

除了新算法的发展,SLAM(以及一般的移动机器人)的进展往往是由新型传感器的使用引发的。例如,2D激光雷达的引入使得建立非常强大的SLAM系统成为可能,而3D激光雷达则是最近一些应用(如自动驾驶汽车)背后的主要推动力。近十年来,人们对视觉传感器进行了大量的研究,并成功地应用于增强现实和基于视觉的导航。

机器人传感技术主要由激光雷达和传统视觉传感器主导。然而,有许多可用于SLAM的替代传感器,如深度、光场(light-field)和基于事件(event-based)的相机,它们现在正成为一种商用硬件,以及磁、嗅觉和热传感器。

综述

我们回顾了最相关的新传感器和它们的SLAM应用,推迟讨论开放问题到本节结束。

Range cameras:

Light-emitting深度相机并不是新的传感器,随着微软Kinect游戏机的出现,它们在2010年成为了一种常用的硬件。它们根据不同的原理工作,如结构光、ToF、interferometry或 coded aperture。结构光相机采用三角测量;因此,它们的精度受到相机和模式投影仪(pattern projector)(结构光)之间的距离的限制。相比之下,飞行时间(ToF)相机的精度仅取决于飞行时间测量装置;因此,他们提供了最高的距离精度(几米的亚毫米)。ToF相机在2000年左右开始用于民用应用,但直到2004年才开始用于移动机器人[256]。虽然第一代ToF和结构光相机的特点是低信噪比和高价格,但它们很快在视频游戏应用中流行起来,这有助于使它们的价格低廉,并提高其准确性。由于range相机有自己的光源,它们也可以在黑暗和无纹理的场景中工作,这使得SLAM取得了显著的效果[183]。

Light-field cameras:

标准相机只记录光照到每个像素上的强度,而光场相机(也称为全光相机plenoptic camera)则记录光线的强度和方向[186]。一种流行的光场相机是在传统图像传感器前放置一排微透镜来感知亮度、颜色和方向信息。由于制造成本,商用的光场相机仍然有相对较低的分辨率(< 1MP),这正在被目前的技术努力克服。光场相机比标准相机有几个优势,如深度估计、降噪[57]、视频稳定[227]、干扰物隔离[58]和镜面去除[119]。与传统相机[14]相比,他们的光学还提供了大口径和大景深。

Event-based cameras:

与基于帧的标准相机(以固定帧速率发送整个图像)相反,基于事件的相机,如动态视觉传感器(DVS)[156]或基于异步时间的图像传感器(ATIS)[205],只发送发生时由场景中的运动引起的局部像素级变化。

与传统的相框相机相比,它们有五个主要优势: 1毫秒的时间延迟,更新速率可达1MHz,动态范围高达140dB (vs 60- 70dB的标准相机),20mW的功耗(相对于1.5W的标准相机),以及非常低的带宽和存储要求(因为只传输强度变化)。这些特性使得设计一种新的SLAM算法成为可能,这种算法可以在标准相机无法实现的高速运动[89]和高动态范围[132,207]的场景中运行。然而,由于输出是由一系列异步事件组成的,传统的基于帧的计算机视觉算法不适用。这需要对过去50年发展起来的传统计算机视觉方法进行范式转换。基于事件的实时定位和建图算法最近被提出[132,207]。种算法的设计目标是,每个传入事件都可以异步改变系统的估计状态,从而保持传感器基于事件的特性,并允许设计微秒延迟控制算法[178]。

开放问题

主动距离相机的主要瓶颈是最大距离和与其他外部光源(如太阳光)的干扰;然而,这些弱点可以通过发射更多的光来改善。

光场相机很少在SLAM中使用,因为它们通常被认为会增加产生的数据量,并需要更多的计算能力。然而,最近的研究表明,它们特别适合SLAM应用,因为它们允许将运动估计问题表述为线性优化,如果设计得当,可以提供更精确的运动估计[65]。

基于事件的相机是革命性的图像传感器,克服了标准相机在高动态范围和高速运动场景的限制。关于传感器噪声和传感器非理想性的完整表征的开放问题: 基于事件的相机有一个复杂的模拟电路,非线性和bias会改变像素的灵敏度,以及其他动态特性,这使得事件容易受到噪声的影响。由于单个事件不能携带足够的信息进行状态估计,而且一个事件摄像机平均每秒产生10万个事件,由于状态空间的快速增长,在单个事件的离散时间内进行SLAM变得非常困难。使用连续时间框架[12],估计的轨迹可以通过使用基函数(例如三次样条)在刚体运动空间中的平滑曲线来近似,并根据观察到的事件进行优化[177]。时间分辨率很高,而基于事件的相机(QVGA)的空间分辨率相对较低,目前的技术努力正在克服这一问题[155]。新开发的事件传感器克服了最初的一些限制: ATIS传感器发送像素级亮度的大小; 一个DAVIS传感器[155]可以输出帧和事件(这是通过将一个标准的基于帧的传感器和一个分布式交换机嵌入到同一个像素阵列而实现的)。这将允许在帧与帧之间的盲时跟踪特征和运动[144]。

我们总结了一些关于使用新型传感模式的SLAM的一般观察。

其它传感器

大多数SLAM研究都致力于距离和视觉传感器。然而,人类或动物可以通过使用触觉、嗅觉、声音、磁场和热刺激来提高他们的感觉能力。例如,触觉提示盲人或啮齿动物用于触觉探索对象,使用嗅觉蜜蜂找到回家的路,磁场通过信鸽用于导航,声音被蝙蝠障碍探测和导航,虽然有些蛇可以看到热物体发出的红外辐射。不幸的是,这些替代传感器没有被考虑在相同深度的距离和视觉传感器执行SLAM。触觉SLAM可以用于对物体或场景的触觉探索[237,263]。嗅觉传感器可以用来定位气体或其他气味来源[167]。虽然超声波定位在早期的移动机器人中占主导地位,但随着廉价光学距离传感器的出现,它们的使用迅速下降。尽管如此,像蝙蝠这样的动物,仅凭回声定位就能以极高的速度导航。热传感器在夜间和恶劣天气条件下提供重要线索[165]。在许多室内环境中,环境磁场的局部异常为定位提供了极好的提示[248]。最后,现有的无线网络,如WiFi,可以在不知道天线位置的情况下改进机器人导航[78]。

Which sensor is best for SLAM?

一个自然产生的问题是: 下一个驱动未来长期SLAM研究的传感器技术是什么? 显然,SLAM中给定算法-传感器的性能取决于传感器和算法参数,以及环境[228]。如何选择算法和传感器来达到最好的性能还没有找到一个完整的处理方法。Censi等人[45]的一项初步研究表明,给定任务的性能也取决于可用的传感能力。这也表明,最优的感知架构可能有多个传感器,可以根据需要的性能水平瞬间打开和关闭,或者通过不同的物理原理来测量相同的现象,以获得鲁棒性[68]。

深度学习

如果一篇声称考虑SLAM未来发展方向的论文不提及深度学习,那将是一种疏忽。它对计算机视觉的影响是革命性的,在撰写本文时,它已经对传统机器人技术(包括SLAM)产生了重大影响。

研究人员已经证明,可以通过学习深度神经网络,直接从原始图像对[52]中获取移动机器人的两幅图像之间的帧间姿态,有效地替代视觉里程计的标准几何。同样,也可以使用回归森林[247]和深度卷积神经网络[129]来定位相机的6DoF,并从单个视图仅作为输入图像的函数来估计场景(实际上是地图)的深度[27,70,158]。

在我们看来,这并不意味着传统的SLAM已经消亡,现在就说这些方法是否只是简单地展示了在原则上可以做什么,但不会取代传统的、广为人知的方法,或者它们是否会完全取代传统的SLAM,还为时过早。

开放问题

我们在此强调了SLAM的一系列未来方向,我们相信在这些方向上,机器学习,更确切地说,深度学习将会有很大的影响力,或者SLAM的应用将会给深度学习带来挑战。

Perceptual tool:

很明显,一些现有计算机视觉算法无法解决的感知问题现在可以得到解决。例如,imagenet类[213]的对象识别现在在某种程度上可以被视为一个黑匣子,从机器人专家或SLAM研究人员的角度来看,它工作得很好。同样,在各种场景类型中,像素的语义标记达到了80%左右的准确率或更高的性能水平[74]。我们已经对SLAM系统的更有语义意义的地图进行了广泛的评论,这些黑匣子工具将加速这一进程。但更危险的是:与之前的任何技术相比,深度网络更有希望将原始传感器数据连接到理解,或将原始传感器数据连接到行动。

Practical deployment

深度学习的成功主要是基于在超级计算机上的长时间训练,以及在专用GPU硬件上进行推理以获得一次性结果。对于SLAM研究人员(或者任何想要将令人印象深刻的结果嵌入到他们的系统中的人)来说,一个挑战是如何在嵌入式系统中提供足够的计算能力。我们是单纯地等待技术的进步,还是研究能够产生“足够好的”结果的更小、更便宜的网络,然后在很长一段时间内考虑传感的影响?

Online and life-long learning:

一个更大、更重要的挑战是在线学习和适应,这对未来任何长期的SLAM系统都是至关重要的。SLAM系统通常在一个开放的世界中持续观察,在那里会遇到新的物体和场景。但迄今为止,深度网络通常是在封闭的场景下进行训练的,比如,有固定数量的目标类。一个重要的挑战是利用深度网络的能力在一次或零次的场景(即一个新的类别有一个或甚至零的训练样本),使终身学习连续移动,连续观察SLAM系统。

类似地,现有的网络往往在大量标记数据的语料库上进行训练,但不能总是保证存在合适的数据集或对监督训练进行标记是可行的。最近取得一些进展的一个领域是单视图深度估计: Garg等人[90]最近证明了用于单视图深度估计的深度网络是如何通过观察大量立体视觉对来训练的,而不需要明确地观察或计算深度。类似的方法是否能被开发用于诸如语义场景标记之类的任务,还有待观察。

Bootstrapping:

关于一个场景的先验信息已经越来越多地被证明对SLAM系统有显著的促进作用。到目前为止,文献中的例子包括已知的对象[56,217]或关于场景中预期结构的先验知识,如DTAM[184]中的平滑性,[79]中的曼哈顿约束,甚至是对象[9]之间的预期关系。很明显,深度学习能够提取这些先验知识用于特定的任务,如估计场景标签或场景深度。如何最好地提取和使用这些信息是一个重要的开放问题。这在SLAM中比在其他领域中更有意义,因为在SLAM中我们对场景几何的数学有扎实的掌握——接下来的问题是如何将这种很好理解的几何与深度网络的输出融合在一起。必须解决的一个特别的挑战是描述来自深度网络的估计的不确定性。

SLAM为在大规模图形模型中探索深度学习架构和递归状态估计之间的潜在联系提供了一个具有挑战性的环境。例如,Krishan等人[142]最近提出了深度卡尔曼滤波器; 也许有一天,我们可以使用深度架构创建一个端到端SLAM系统,而不需要明确的特征建模、数据关联等。

X. CONCLUSION

在过去的30年里,同时定位和建图的问题已经取得了很大的进展。随着新应用、新传感器和新计算工具的发展,几个重要的问题得到了回答,同时也提出了许多新的和有趣的问题。

重新审视“SLAM有必要吗?”,我们相信问题的答案取决于应用场景,但通常答案都是“是”。SLAM以及VIO等相关技术,正越来越多地应用于各种现实环境中,从自动驾驶汽车到移动设备。在GPS等基于基础设施的解决方案不可用或不能提供足够精度的情况下,人们将越来越依赖SLAM技术来提供可靠的度量定位。由于定位信息对移动设备和移动智能体的价值,可以想象基于云的“位置即服务(location-as-a-service)”功能即将上线,地图也将变得商品化。

在一些应用中,如自动驾驶汽车,精确定位通过将当前传感器数据与预先创建的环境高精地图匹配来实现[154]。如果先验地图是准确的,那么实时SLAM是不需要的。然而,在高度动态的环境下,将需要地图的动态在线更新,以应对道路基础设施的建设或重大变化。由大型自动驾驶车队创建的可视化地图的分布式更新和维护是未来工作的一个引人注目的领域。

我们可以识别出不同喜好的SLAM形式比其他形式更适合哪些任务。例如,拓扑地图可以用来分析给定地点的可达性,但不适合运动规划和低层次控制;  局部一致的度量地图非常适合避障和与环境的局部交互,但它可能会牺牲准确性; 一个全局一致的度量地图允许机器人执行全局路径规划,但它可能需要计算和维护。

人们甚至可以想出一些例子,让SLAM完全没有必要,可以用其他技术代替,例如,用于局部控制和稳定的视觉伺服,或用于执行重复导航任务的“教导和重复”。选择最合适的SLAM系统的一种更普遍的方法是,将SLAM视为一种机制,用来计算总结机器人过去所有观察结果的充分统计数据,从这个意义上说,在这个压缩表示中保留哪些信息是与任务密切相关的。

至于我们熟悉的问题“SLAM解决了吗?”,在这篇论文中我们认为,随着SLAM进入鲁棒感知时代,如果不指定机器人/环境/性能的组合,这个问题就无法得到回答。对于许多应用程序和环境,仍有许多重大挑战和重要问题有待解决。为了实现终身自主机器人的真正鲁棒的感知和导航,需要对SLAM进行更多的研究。作为一个具有重要现实意义的学术努力,SLAM并没有得到解决。

尚未解决的问题主要有四个方面: robust performance, high-level understanding, resource awareness, and task-driven inference。从鲁棒性的角度来看,fail-safe、self-tuning的SLAM系统的设计是一个巨大的挑战,很多方面还未被探索。对于长期自动运行而言,构建和维护大尺度时变地图的技术,以及定义何时记忆、更新或忘记信息的策略,还需要大量的基础研究;类似的问题在资源严重受限的机器人系统中也会出现,但规模不同。另一个基本问题是关于环境的度量和语义表示的设计。尽管与环境的交互对于大多数机器人应用来说是至关重要的,但现代SLAM系统无法提供对周围世界的几何和语义的紧密耦合的高层次理解;这种表现形式的设计必须是任务驱动的,目前缺乏一个可处理的框架来链接任务和最佳表现形式。开发这样一个框架将把机器人和计算机视觉社区结合起来。

除了讨论SLAM社区的许多成就和未来的挑战外,我们还考察了与新传感器、新工具(如凸松弛和对偶理论,或深度学习)的使用有关的机会,以及主动感知的作用。SLAM仍然是大多数机器人应用不可或缺的支柱,尽管在过去的几十年里取得了惊人的进展,但现有的SLAM系统远远不能提供有洞察力的、可操作的和紧凑的环境模型,不能与人类毫不费力地创建和使用的环境模型相比。

  • 29
    点赞
  • 148
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值