【泡泡机器人转载】SLAM: 现在,未来和鲁棒年代

摘要

SLAM是由同步环境地图构建和运行于其中的机器人状态估计组成。SLAM领域过去30年取得了令人瞩目的成就,其在大场景应用成为了可能,这一技术被见证了成功地被应用于工业领域。本文中,我们研究了SLAM最新进展,从SLAM形成的事实标准开始讲解,回顾了相关工作,这涵盖了一系列广泛的主题,包含长时间建图过程中的鲁棒性和尺度问题,建图过程中的特征和语义表示,理论上的性能保证,主动SLAM和其扩展,还有其他前沿课题。这篇文章为非专家读者提供了一个指南。这是一篇标志性的论文:本文以批判的眼光看待已有的研究成果,描述了新的挑战和问题,这些挑战和问题仍然值得人们以谨慎的科学态度持续研究。文章还讨论了作者在机器人会议上经常遇到的两个问题:机器人需要SLAM吗?SLAM有什么作用?

1. 简介

SLAM由同步的机器人状态估计和环境地图构成。举个简单的例子,机器人的状态用位姿来表示(位置和航向),尽管状态也包含其他的物理量,比如机器人速度,传感器漂移,和标定参数。地图,另一方面也代表了兴趣点(比如,路标的位置,障碍物等)描述了机器人的运行环境。 

构建环境地图的需求是两方面的。首先,需要地图来支持其他任务,比如:地图可用于路径规划或提供符合直觉的可视化操作。其次,地图可以限制机器人状态估计的误差。如果没有地图,航位推算算法就会随时间变化快速漂移;另外一方面,如果给定一个地图,机器人可以再次访问之前走过的区域重置位置误差(就是所谓的回环闭合)。 

有些机器人应用中,环境地图是先验信息。例如,工业机器人可以运行于人工路标中。还有例子是机器人使用GPS测量数据(卫星提供的位置信息作为移动的路标)。SLAM的普及和移动机器人的室内应用密切相关。由于室内操作局限使得室内无法利用GPS来限制定位误差;然而,SLAM提供了一种用于建图的替代方法,实践表明在缺乏热点信号的情况下机器人仍可以成功运行。 

前20年SLAM问题的回顾在Durrant-Whyte和Bailey的两篇论文中有详细论述。这个报告我们称之为“古典年代”(1986-2004),古典年代时期,引入了SLAM概率论推导方法,包括基于扩展卡尔曼滤波、粒子滤波和最大似然估计;而且,这里的第一个挑战是效率和数据关联的鲁棒性问题。接下来的年代,我们称之为“算法分析”年代(2004-2015),在论文84中有部分描述。在算法分析的年代,有许多SLAM基本特性的研究,包括可观测性,收敛性和一致性。在这一时期,研究者们理解了稀疏特征在高效SLAM解决方案中的重要角色,开发了主要开源SLAM库。

表一是主要的SLAM综述一览表,我们注意到大多数综述只涵盖SLAM的某个特定方面或某一个子领域。考虑到SLAM渗透的各个方面,就不会对SLAM过去30年的普及而感到吃惊。在较低层面(我们在第2章称之为前端),SLAM必须和其他领域交叉,比如计算机视觉,信号处理;在较高层次上(我们称之为后端),SLAM融合了几何学,图理论,优化和概率估计。最后,一个SLAM专家必须处理从传感器模型构建到系统集成的各种实践问题,

本文呈现了SLAM的最新进展,展望了这一领域未解决的问题和SLAM未来的研究方向。本文总结了2015年6月罗马RSS研讨会的结论“The Problem of Mobile Sensors: Setting future goals and indicates of Progress for SLAM"。我们讨论拓扑地图构建时,主要关注特征和语义SLAM,我们队论文177视觉位置识别做了更多视觉拓扑SLAM和位置识别的解读。在研究这篇论文之前,我们讨论一下机器人会议上经常讨论的两个问题。

全自动机器人真的需要SLAM吗?回答这个问题必须理解为什么SLAM这么独特。SLAM是要构建一个全局一致性的环境表示方法,同时利用自动运动测量和回路闭合。这里的关键词是“回路闭合”:如果我们去掉回路闭合,SLAM就会退化成里程计。在早期的应用中,里程计可以通过编码器获得。编码器的位姿估计方式漂移太快,几米内估计都很不稳定;这是SLAM发展过程中的主要威胁:外部路标的观测可以有效地减小轨迹漂移甚至有可能校正它。然而,更多新的里程计算法基于视觉和惯性传感器信息,漂移非常小(小于整个轨迹长度的0.5%)。所以,这个问题就变得合理:我们真的需要SLAM吗?我们的答案分为3个方面。

首先,我们发现过去10年中,视觉惯性传感器里程计的算法发展代表了最新进展;在这种程度上视觉惯性导航就是SLAM:视觉惯性导航可以看做是一个退化的SLAM系统,其中回环闭合(位置识别)模块功能关闭。更一般的情况,

SLAM要求研究更具有挑战性的配置下(比如,没有GPS,低性能传感器)的传感器融合,这是相对其他应用而言(比如,航空工业领域的惯性导航)。

第二个答案与回环闭合有关。一个鲁棒的高性能里程计不带回环闭合,将世界理解成一个“无穷的走廊(如图1a),机器人会一直探索新的区域。回环闭合会告知机器人这个“走廊”与自己一直相交(如图1b)。现在,回环闭合的优势很清楚:通过查找回环闭合,机器人可以理解环境的真正拓扑关系,可以找到位置间的最短路径(比如,地图中的点B和C)。因此,SLAM的一个特征是得到正确的环境拓扑关系,为什么不直接获取特征信息而是位置识别呢?答案非常简单:特征信息使位置识别更简单更鲁棒;特征重构告诉机器人回环闭合的机会并且丢掉无效的回环。因此,SLAM理论上可能是多余的(一个可靠地位置识别模块就可以满足拓扑建图),SLAM可以天然地防止错误数据关联和直觉上的失真,比如相似的场景对应环境中完全不同的位置,因而可以检测位置识别。在这个意义上,SLAM地图预测并验证了测量的有效性:我们认为这个机制是鲁棒操作的关键。

第三个答案是SLAM是必须的,很多应用都内在或外在地需要一个全局一致性的地图。例如,在许多军事与民生工程应用中机器人的目标是探索环境生成地图。另外一个类似的例子是机器人用于检查结构状况(建筑物,桥梁等);在这个例子中需要一个全局一致性3D重构。

必须根据不同的需求来分辨SLAM的组件哪些部分更适合。因此,当一个机器人专家设计SLAM系统时,他需要面对多种设计选择。比如,是否采用拓扑地图分析一个给定的地点是否可以到达,但对于运动规划和低层控制并不合适;一个局部一致性的特征地图更适合避障和与环境局部交互,但它可能会牺牲精度;一个全局一致性的特征地图可以使机器人执行全局路径规划,但用于计算和维护的资源要求较高。更一般的方法是选择合适的SLAM系统,将它作为一个总结机器人过去所有观测值的统计机制计算足够多的统计数据,在这个意义上,需要获取哪些信息与具体的任务深度相关。

SLAM有什么作用?这是另一个机器人领域常问的问题。回答这个问题的难度在这个问题本身:SLAM是一个比较宽泛的话题,这个问题很好地定位在一个机器人/环境/性能的组合中。人们可以从以下几个方面来评估一个SLAM问题的成熟度:

  • 机器人:运动类型(比如,运动状况,最大速度),可用的传感器(如,分辨率,采用率),可用的计算资源;

  • 环境:平面或三维的,自然路标或人工路标,动态元素的数量,对称的数量和感知混淆的风险。这些方面都依赖于传感器与环境的匹配;比如,两个房间对2D激光扫描仪来说看起来可能一样(感知混淆),但相机可以从外观线索上分辨它们;

  • 性能要求:机器人状态估计中的期望精度,环境表示的精度和类型(比如,基于路标的或稠密云点),成功的概率(满足精度边界的测试结果的百分比),估计延时,最大运行时间,最大地图面积。

比如,构建一个2D室内环境,机器人配备了编码器和激光扫描仪,有足够的精度(<10厘米)和足够的鲁棒性(比如,低失效率),很大程度上可以解决问题。类似的,一个运行缓慢的机器人采用基于视觉的SLAM(比如,火车探路车,室内机器人),视觉惯性里程计被认为是成熟的研究领域。另外一方面,其他的机器人/环境/性能组合仍然需要大量的基础研究工作。目前当机器人的运动或环境太过挑战时,SLAM算法很容易失效(比如,机器人快速的运动,高动态环境);类似地,SLAM算法通常无法满足严苛的性能要求(比如,对快速回环闭合的快速估计)。本文将深入理解这些悬而未决的问题。

我们总结一下关于SLAM未来要考虑的问题。我们发现我们正进入SLAM的第三个时代,鲁棒性觉醒的时代,它具有以下特征:

1)鲁棒性能:这一时期SLAM系统在任意环境总运行的失效率较低;系统具有失效保护机制且具有自动调整的功能可以根据应用场景自动选择系统参数;

2)高层次的理解力:SLAM系统已经除了基本的几何重建还能够在更高层次上理解环境信息(比如,语义,可供性,高层几何意义,物理意义);

3)资源敏感:SLAM系统可以进行裁剪以满足现有传感器和计算资源,也可以根据现有资源调整计算负载;

4)对任务驱动的判断:SLAM系统可以自适应地表示地图,其复杂度可以根据机器人执行的任务而改变。

文章的结构。论文首先提供SLAM的标准格式和架构(如第2章)。第3章讨论了SLAM的鲁棒性。第4章提到了可测量性问题。第5章讨论了环境的几何表示。第6章扩展了环境表示问题,构建语义信息表示模型。第7章展现了SLAM理论方面取得的进展。第8章扩展了这些讨论,回顾了主动SLAM问题,如何做决策以提高SLAM系统结果的质量。第9章展望了SLAM的最新趋势,包括一些非传统的传感器的使用和一些新方法。第10章是本文的备注。纵观全文,我们提供了很多方向都超出了机器人领域的范围。尽管有其自身的独特性,SLAM与计算机视觉,计算机图形学,控制理论,这些领域的交叉互促使SLAM发展格外迅速。

对于非专家读者,在深入研究本文之前,我们推荐先阅读Durrant-Whyte和Bailey的SLAM指南。有经验的读者可以直接进入相关章节寻找感兴趣的话题,可以看到该领域的最新进展和未解决的问题。

2. 现代SLAM系统

 

SLAM系统可以分为2部分:前端和后端。前端提取传感器数据构建模型用于状态估计,后端根据前端提供的数据进行推断,这个架构如图2所示,我们对这两都会讨论,先从后端开始。



图3:SLAM因子图:蓝色的圆圈是连续时刻(x1,x2,...)的机器人位姿,绿色的圆圈是路标的位置(l1,l2,...),红色的圆圈表示相机内参的变量(K)。黑色的点是因子:u是里程计对应的因子,m是相机的观测值因子,c是回环闭合,p是先验因子。

这就是非线性最小二乘问题,机器人中最关心的话题,hk(·)是一个非线性函数。注意公式(5)的前提是假设噪声服从标准正态分布。其他的噪声分布会导致不同的代价函数;比如,如果噪声服从拉普拉斯分布,等式(5)中的平方l2范式会被l1范式取代。为了增加对离群点的容忍度弹性,通常都会用鲁棒损失函数取代(5)式中的平方l2范式。

SLAM方法到目前为止通常指最大后验估计,因子图优化,基于图的SLAM,全滑动或滑动和地图构建(SAM)。需要特别指出的一个框架是位姿图优化,位子图优化需要估计的变量是机器人轨迹中采样的位姿,在每对位姿上有一个因子约束。

最大后验估计已经被证明是比原来的基于非线性滤波方法对SLAM更精确更有效。我们推荐读者阅读SLAM1,2中关于滤波方法的介绍,"visual slam:why filter?"中关于滤波和平滑方法的比较。然而,我们注意到有些基于EKF的SLAM系统也具有很好的性能。基于EKF SLAM的系统的优秀的例子包括:Multi-State Constraint Kalman Filter of Mourikis and Roumeliotis和 VIN systems of Kottas et al. [160] and Hesch et al. [126]。毫无疑问,基于非线性滤波方法,EKF的线性点比较精确,采用滑动窗口滤波,EKF可以需要考虑到潜在的不一致性,所以,滤波方法和最大后验估计之间的性能不匹配变得越来越小。

 

下一章将要讨论,最大后验估计通常是在传感器数据预处理中执行。如果这样考虑,它通常作为SLAM的后端。依赖传感器的SLAM前端。在机器人的实际应用中,可能很难将传感器测量数据直接写作为状态分析的函数,像最大后验估计中的那样。比如,如果原始传感器数据是图像,可能非常难将每个像素的亮度表示为SLAM状态的函数;同样的难题也出现在更简单的传感器中(比如,单一光束的激光)。在这两个例子中,我们都无法设计一个更为一般化的方法,对环境做可跟踪的表示;甚至在一般性的表示中,可能很难给出一个分析方程将观测值与表示方法的参数进行关联。

出于这种原因,在SLAM后端之前,通常都有一个模块,前端,从传感器数据中提取相关特征。比如,在基于视觉的SLAM中,前端提取环境中少量具有明显特征的云点的像素位置;这些云点的像素观测值就很容易在后端部分构建模型(参考例1)。前端部分还负责将观测值和环境中特定的路标关联(比如,3D云点):这就是所谓的数据关联。数据关联模块是将每个观测值zk和一个未知变量子集Xk进行关联,比如zk=hk(Xk)+∈k。最后,前端还可以为非线性优化中的变量提供一个初始估计。

典型的SLAM系统的图示表示如图2所示。前端的数据关联模块包括一个短期的数据关联模块和一个长期的。短期的数据关联模块负责关联连续的传感器观测值中对应的特征;比如,短期的数据关联模块可以跟踪连续图像帧中描述同一个3维空间云点的2个像素观测值。另一方面,长期数据关联(或闭合回环)负责将新的观测值关联到旧的路标上。我们注意到后端通常都会将反馈信息反馈给前端,比如,用于回环检测和验证。

特征改变是依赖于输入的数据流,那么前端部分的预处理通常也都是依赖于传感器。在下面具有背景颜色部分,我们提供了一个机器人SLAM的案例,它配备单目摄像头和一个3D激光扫描仪。

例1:单目相机与3D激光融合SLAM

我们回顾一下图3中的SLAM问题,机器人配备了一个没有标定过的单目相机和一个3D激光扫描仪。t时刻SLAM的状态为X={x1,...,xt,l1,...,ln, K},其中xi是机器人在i时刻的3D位姿,lj是第j个路标的3D位置,K是未知的相机标定。 激光前端返回激光扫描给迭代最近点(ICP)算法用于计算两个连续激光扫描之间相对运动(里程计)。采用里程计的测量数据,后端可以定义里程计因子,在图3中记为u。每个里程计因子与连续位姿关联,对应的观测值通过观测模型描述:

其中,hiu(.)是计算xi和xi+1之间相对位姿的函数,∈iu是系数矩阵为Ωiu的0均值高斯噪声。在(8)式中,标准求和用保核收缩加法⊕取代,它将向量映射到SE(3)的一个元素上,是3D位姿流形。回环闭合因子,在图3 中记为c,将里程计因子一般化,这样它们可以测得非连续机器人位姿之间的相对位姿:

其中,计算xi和xj的相对位姿,噪声的系数矩阵是。视觉前端从每幅相机图像中提取i时刻的视觉特征;然后,数据关联模块将每个特征观测与特定的3D路标lj进行匹配。根据这个信息,后端部分定义了视觉因子,在图3中记为v。每个视觉因子包括一个观测值zijv和它的观测模型:

其中,zijv是i时刻路标lj射影到图像平面的像素的观测值。函数hijv(.)是一个标准的透视射影。

最后,先验因子p将机器人的初始位姿作为先验信息:

其中,zp是先验均值,εijv的系数矩阵为Ωp。

在我们的这个例子中,既然板载传感器不能测量任何外部的参考帧,我们就按照惯例设置先验均值zp为同样的变换。

先验信息对最大后验估计的作用使得其非常独特:在缺少一个全局参考帧的情况下,最大后验估计将认同有限数量的方案,等同于凹变换。

给定所有这些因子,SLAM后端通过最小化非线性二乘问题估计X:

其中可以简单地理解为流形SE(3)上的减法,ο,L,ρ分别是里程计,回环闭合和视觉因子。可以看到因子图中前端如何提取传感器数据给相对位姿测量。

3. 全自动化的第一步:鲁棒性

 

SLAM系统可能很脆弱:会出现算法失效和硬件相关的失效。第一类主要由现有SLAM算法的局限造成的(比如,很难处理极端动态环境)。后面一类主要由于传感器和机器老化。明确地提出失效模式对长期运行非常关键,那样就不会对环境结构有要求(比如,要求大部分是静态环境)或者完全依赖板载传感器。本章,我们主要讨论解决算法鲁棒性时的挑战。然后讨论一些未解决的问题,比如当硬件失效时的鲁棒性。

算法失效的一个主要来源是数据关联。第2章提到数据关联将每次测量值与对应的状态进行关联。比如,在基于特征的视觉SLAM系统中,它将每个特征和特定的路标关联。直观对齐,可能会出现不同的传感器输入产生相同的传感器信息,导致这个问题非常难解决。在这个例子中,如果数据关联构建了错误的测量-状态匹配,后端可能会出现错误估计。

如果环境中短期或季节变化并且没有对动态环境构建模型,情况可能更糟糕,可能会欺骗短期或长期的数据关联。一个常用的SLAM要求是机器人走过的环境保持不变(换句话说就是,环境是静态的)。这个静态环境的要求在小场景中单一地图构建中是适用的,只要没有短期动态状态(比如,人和物体在周围移动)。如果地图构建是长时间在大场景中,变化就不可避免。昼夜变化,季节变换比如树叶或环境结构的改变旧建筑物变成新建筑物,所有这些都会影响SLAM系统的性能。比如,依赖于视觉特征的系统会在剧烈的昼夜变化中失效,当旧建筑消失环境几何方法也会失效。

另外一个鲁棒性要求是在恶劣的环境中使用SLAM,比如水下环境。这个例子中的挑战是可视光有限,一直在变化的环境,而且一般的传感器无法使用(比如镭射测距仪)。

 

简要回顾

对错误数据的鲁棒性问题可以用于SLAM系统的前端部分,也可以用于后端。传统方法中,前端用于构建正确的数据关联。短期数据关联是最容易处理的:如果传感器的数据采样率相对比较快,比机器人的运动快,对相同3D路标跟踪特征就比较容易。比如,如果我们想在连续的图像中跟踪3D云点同时图像帧率足够高,标准的基于描述子匹配和光流的方法可以确保可靠的跟踪。直观上,在高帧率情况下,传感器(相机,激光)视角改变不是很大,因此t+1时刻的特征与t时刻的特征非常接近。【马后炮:事实上短期数据关联比长时间中的数据关联更容易更可靠,这使得(视觉,惯性)里程计比SLAM更简单。】前端中长期数据关联更具有挑战性同时需要闭合回路的检测和校验。对前端闭合回路来说,暴力匹配方法可能不切实际,它在当前观测中(比如,图像)侦测特征而不是在之前检测到的所有特征进行匹配。词袋模型可以量化特征空间和进行更有效的搜索来避免这种难题。词袋模型可以设计成层级式字典树,可以在大范围数据集中有效查找。基于词袋模型的技术在处理单任务闭环回路检测中表现出非常可靠的性能。然而,这些方法无法处理剧烈的图像变化因为视觉单词无法匹配。这样就需要开发新的方法匹配图像序列处理这样的变动,收集不同的视觉贴图用于统一表示,或者同时采用空间和贴图信息。可以参考一个详细的综述,论文177,视觉位置识别综述。在基于激光的SLAM前端,基于特征的方法可以用来检测回环闭合;比如,论文273提供了2D激光扫描的FLIRT(Fast Laser Interest Region Transform)特征。

回环闭合校验,由附加的几何验证步骤来确认回环闭合的质量。在基于视觉的应用中,随机抽样一致性算法 RANSAC常用来做几何校验和离群点去除,参考论文248 VO1。在基于激光的方法中,可以通过确认当前激光扫描和已经扫描好的地图的匹配程度(匹配得有多好)来校验回环闭合(比如,扫描匹配产生的残差有多小)。

尽管这些流程可以使前端的回环闭合检测更鲁棒,在直观对齐的情况下,错误的回环闭合不可避免地被反馈给后端。错误的回环闭合会严重损害最大后

验估计的质量。为了处理这个问题,最近出现了很多研究提供了一些方法可以使SLAM后端对不合格(伪造)的观测值处理更有弹性。这些方法基于回环闭合的有效性进行推导,回环闭合通过优化过程中的残差进行约束。其他的方法,检测离群点先验信息,也就是,在做任何优化之前,识别不正确的回环闭合,但里程计不支持这种做法。

动态环境中的挑战主要有两方面。首先,SLAM系统必须检测,丢掉,跟踪变化。当主流的方法都尝试丢掉场景中的动态部分,有些研究工作将动态元素作为模型的一部分。第二个挑战是SLAM系统必须构建模型处理永久或半永久变化,理解如何和什么时候相应地更新地图。当前的SLAM系统处理动态环境,要么维护同一位置的多个(与时间相关)地图,要么只有一个表示但可以根据时间变动进行参数调整。

 

待解决的问题

本章我们回顾了一些未解决的问题,记录了SLAM生命周期中出现的新的研究问题。

失效保护SLAM和恢复机制:

尽管对SLAM后端进行了处理,当前SLAM方案在出现离群点时仍然比较脆弱。这主要因为鲁棒的SLAM是基于非凸集迭代优化。这样会有两个结果:首先,离群点去除的结果依赖于优化中初始估计的质量;其次,系统天生脆弱:任一一个离群点都会降低估计的质量,它又会反过来降低系统分辨离群点的能力。一个理想的SLAM系统应该是具有失效保护和失效侦测的功能,比如,系统必须能检测到即将发生的失效问题(比如:由于离群点或者硬件老化),还要具有恢复机制重建之前的操作任务。现有SLAM系统没有这种功能。

针对硬件的鲁棒性:

其实硬件失效并不是SLAM研究的问题,但这些失效会影响SLAM系统,SLAM系统具有重要作用检测传感器和减少运动失效。如果传感器精度由于误操作或老化而降低,传感器的测量(噪声和偏移)质量不能匹配后端的噪声模型(如3式),将会导致较差的估计。这就会差生不同的研究问题:我们如何检测不良传感器的运行状态?如何相应地调整传感器噪声数据统计模型(协方差,偏移)?

几何度量重定位:

与基于特征方法不同,基于贴图的方法可以在白天和夜晚的图像序列上实现回环闭合,在不同的季节实现回环闭合也是很自然的一件事了。对于几何度量重定位(比如对之前构建的地图估计相对位姿),基于特征的方法可能更规范化,但无法扩展到这样的环境中。如果视觉变成了针对不同应用的传感器的选择,回环检测变成了传感器位置匹配问题,也可以研究SLAM问题所需的其他信息和传感器。比如,Brubaker提出了轨迹匹配中相机的劣势。另外,先用一个相机建图,再在同一个地图中定位另一个相机,可能非常有用。Wolcott和Forster的工作在这个方向上有所进展。另外一个问题是从不对称的拍照角度上得到不同的照片中如何定位。Forster研究了在激光地图中的视觉定位问题,Majdik研究了如何在Google街景照片的3D纹理地形图上定位无人机。Behzadin演示了如何在手绘地图用激光扫描仪, Winterhatter演示了如何在2D户型图上用RGB-D定位。

时间变化和地图畸变:

主流SLAM方法都假设现实世界是固定不变的,然而真实世界由于其动态环境和物体畸变并非一成不变。一个理想的SLAM方案应该能够处理环境中的动态因素,包括非固定部分,能够长时间工作生成所有地形地图,并能实时处理这些工作。在计算机视觉领域,自80年代就开始尝试在有限的应用中从非固定的物体上恢复形状,比如Pertlend的论文需要物体结构属性的信息。Bregler要求限定物体的畸变,在人脸识别上做了一些演示。最近关于非固定运动结构,比如论文5,6,114,限制比较少,但主要应用于小场景。在SLAM领域,Newcombe针对小场景提出了非固定实例。然而,大场景非固定地图仍然需要大量研究。

自动参数调整:

SLAM系统(特别是数据关联模块)需要更多的参数调整,在给定的场景中正确地工作。这些参数,包括控制特征匹配的阈值,RANSAC参数,还有决定何时添加新的因子到因子图中或何时触发回环闭合算法搜索匹配。如果SLAM需要跳出受限的思维在任意场景中都适用,那么就需要考虑自动参数调整的方法。

4. 全自动化的第二步:尺度

现代SLAM系统已经成功地应用于室内场景,如图4上,在许多应用尝试中,机器人必须工作在室外大场景中长时间工作,如图4下。这些应用包括用于环境监控的海洋探索,城市中7天24小时工作的清洁机器人,高精度的农业机器人应用。对于这样的应用,SLAM因子图可能没有边界,因为随着运行时间的增加,不停地探索新的位置。在实际应用中,由于机器人资源限制,计算时间和存储容量有限,因此,设计不受计算时间和存储容量限制的SLAM方法非常重要。

最坏的情况下,基于直接线性器的连续线性方法的内存消耗随着6式中变量数量增加呈几何式增长。采用线性迭代器时(比如,共轭梯度法时),内存变量消耗空间呈线性增长。实际情况可能更复杂,当同一个地方多次路过时,

当节点和边缘持续加入到相同的空间中时, 因子图优化就变得没有效率,还不如采用稀疏图结构。

本章我们将回顾目前的控制方法,减少问题的复杂性,讨论未解决的问题。

 

简要回顾

我们主要考虑两种防范减少因子图优化的复杂性:(1)稀疏方法,为了内存和计算效率,会损失一些信息;(2)并行和多机器人方法,将计算任务分配到多个机器人/处理器上。

节点和边缘稀疏性。这套方法是规模问题,减小将要添加到途中的节点的数量,或者筛选具有较少信息得节点和因子。论文135用信息论方法添加非冗余节点和高信息含量观测值到图中。论文141,尽可能地避免在推导节点之间新的约束时添加新节点,这样变量只依赖于空间的扩大而非建图时间。论文162基于线性约束因子和非线性图稀疏方法。这些方法用一个筛选的节点马尔科夫链来处理,并计算一个毯的近似稀疏,论文129通过解决l1范式最小化问题将海塞矩阵稀疏处理。

并行SLAM:SLAM并行算法将因子图的计算分别放入多个处理器中计算。主要的方法是将因子图分解成几个不同的子图,用局部优化每一个子图,再加上一个全局优化。对应的算法通常称为局部构图算法。论文205提供了一种因子图优化的局部建图方法,缓存因式分解子地图加速计算。论文206用二值树状结构构建子图,嵌套分析减少了两个子树之间的依赖程度。论文304提出了一种大场景SLAM的近似策略处理子地图的顺序,用最小二乘法合并。论文104提出了一种多层松弛方法,论文116提出了一种子地图层次结构:无论什么时候去的观测值,最高层都会被修改,但只有受影响的那些低层级的区域才会更改。论文266基于层次分解提出了一种SLAM的近似方法。论文62通过ADMM并行计算。论文155并行计算两个非耦合线程。论文253优化局部领域相交参数法减少计算代价。论文263采用二步法,首先优化一个局部位姿特征图,再采用论文253的方法完成一个位姿到位姿变换图。论文295将因子图优化分解为一个快速滤波线程和一个慢速平滑线程,他们之间周期性地进行同步。

分布式多机器人SLAM:一种大场景建图的方法是采用多机器人SLAM,将场景分成小区域,每个地图用不同的机器人。这种方法有两个不确定因素:中心点,即机器人构建子地图,将局部信息传递给中心站用于执行推断,还有一种分散式的,没有中心数据融合,每个机器人基于一个通用的估计用局部通信达

成一致。论文201基于分布式共轭梯度法提出一种协作式定位方法。论文9采用分布式雅可比方法估计一组2D位姿图。论文11,调研了基于一致性信息方法合并地图。论文157用分布式梯度下降法估计3D位姿。论文73,74,用高斯消元法,开发了一种方法,称为DDF-SAM,每个机器人通过隔离器(不同机器人之间共享变量)交换高斯边缘。最近有个多机器人SLAM综述,如论文244。

高斯消元法已经是非常常用的方法,但有两个缺点。首先,机器人之间的边缘是稠密的,通信代价是隔离器数量的二次方。这就需要采用稀疏方法来减少通信代价,如论文220。其次,高斯消元法在这个问题中是需要进行线性化,因此,采用的方法,如DDF-SAM方法需要好的线性点和复杂的书签确保机器人之间线性点的一致性。高斯消元的另一种方法是论文63中高斯-赛德尔算法,通信负担与隔离器数量呈线性相关。

 

待解决的问题

尽管大量工作用来降低因子图优化的复杂性,该领域仍然和长时间进行方面有很大差距。

地图维护:一个很少涉及的问题是长期操作的时候如何存储地图。甚至当内存没有那么紧张的时候,比如数据存储在云端,原始数据比如云点或者立体地图由于内存的限制而没有用;类似的在视觉SLAM中存储特征描述子很快就会变得很庞大。一些早期的用于定位方案没有采用压缩的已知地图,用于高效内存稠密重建。

鲁棒的分布式建图:离群点的去除在单一机器人的案例中已经实现,多机器人SLAM的领域中完全没有离群点的问题。处理虚假的观测值特别有挑战性,主要有两个面的原因。 首先,机器人可能无法共享共同的参考帧,很难检测、去除错误的回环闭合。第一个处理这些工作的是论文136。其次,在分布式配置中,机器人必须要从每个部分和局部信息中检测出离群点;这种方法也没有探索过。

学习、忘记、记忆:一个长期建图的问题是更新地图信息的频率,如何判断信息过期,然后丢弃。何时可以忘记?什么可以忘记,什么重要信息必须保留?这些都是基于任务的问题,没有绝对的答案。

平台资源有限:另一个相关的未涉及的问题是如何将现有SLAM算法应用于计算资源有限的机器人平台。这个问题非常重要,当机器人平台不同的时候,

比如手机,微型无人机,机器昆虫。许多SLAM算法计算成本昂贵无法运行在这些平台上,希望可以有好的方法选择计算成本而放弃精度。类似的问题也出现在多机器人设置中:如何在带宽资源有限和通信不稳定的情况下确保多机器队伍可靠地运行?论文65的版本控制是第一次研究这个方向。

 

5. 表示1:几何度量推理

本章主要讨论如何构建SLAM几何模型。更正式的,度量表示方法(几何地图)是一个环境几何结构的符号表示。我们认为理解如何为SLAM(其扩展或机器人用的)选择合适的几何度量将影响许多研究领域,包括长时间导航,与环境交互,人机交互。

几何建模在2D环境中可能更简单,有两个典型的例子:路标地图和网格地图。前者将环境建模成一组稀疏的路标,后者将环境分成小哥并给每个使用的格子分配不同的概率。2D环境中标准化表示由IEEE RAS地图数据表示工作小组处理,最近发布了用于机器人的2D地图标准,如论文119;这个标准定义了两个主要的平面环境(加上拓扑地图)用于数据交换,标杆对比,技术转移。 3D几何建模更脆弱,应该可以理解地图构建是如何有效地构建3D几何模型仍然处于研究的早期阶段。本章我们将回顾几何地图表示,从不同的领域进行透视,包括机器人、计算机视觉、计算机辅助设计,和计算机图形学。我们的分类来源于论文96,237,251,包含了最近的工作方向。

路标稀疏表示。大多数SLAM方法将场景表示为稀疏3D路标对应环境中(比如,线条和角点)的显著特征;如图5左所示。通常都是采用路标或特征表示,自从早期定位和建图工作后就广泛应用,在计算机视觉领域主要是运动

结构。这些表示方法的前提假设是路标必须是显著的,比如,传感器数据测量路标几何方面的信息,还提供描述子构建每次测量值与对应路标的数据关联(也有可能是不确定的)。大量工作主要集中在点特征的估计,机器人包括其扩展领域增加了更复杂的几何路标,包括线,区域或弧线。

低层原始数据稠密表示。与路标表示相反,稠密表示尝试提供3D几何高分辨率模型;这些模型更适合于机器人避障和路径规划,或用于可视化或渲染,如图5右。在这些稠密模型中,原始数据表示用大量无结构的点(比如,云点)或多边形描述了3D几何结构。云点广泛运用于机器人中,主要使用立体相机,RGBD相机和3D激光扫描仪。这些表示最近在单目SLAM系统中也流行开来,主要使用直接方法,从所有的像素值的亮度直接估计机器人的轨迹和3D模型。稍微复杂的表示是点元地图,将几何信息编译成一系列的圆盘。这种表示方法可视化非常好,但他们需要存储大量数据非常不方便。他们还给出了几何的低层描述,忽略了障碍物的拓扑结构。

边界和空间分割稠密表示。这些表示超越了低层无结构的表示方法(比如,点),试图明显地指出外观(或边界)和体积。边界表示通过外观边界定义了3D物体。特别是简单的边界表示都是平面模型,用于构建地图。更一般的边界表示包括曲线表示(比如,NURBS非均匀有理B样条或B样条张量积),表面网格模型(连接多边形),隐式曲面表示。后者指出了物体表面定义的R3上 函数零交叉;这类函数包括径向基函数,有效距离函数和截断符号距离函数。截断符号距离函数目前是机器人视觉SLAM中常用的表示方法。论文293,294,使用的是网格模型。

空间划分表示将3D物体定义成表面相邻的不相交的基元。最常用的空间划分表示法是空间位置枚举表示法,将3D空间分解成相同的立方体(体素Voxel),分布在一个一般的3D网格中。更有效的空间分割方法有八叉树octree,多边形地图八叉树,二值空间分割树。在机器人应用中,八叉树表示用于3D建图,然而常用的是将栅格地图作为空间划分表示的概率变量。在三维环境中没有移动障碍物时,可以采用2.5D立体图。在我们开始讨论高层表示之前,我们来了解一下视觉SLAM中基于特征的稀疏表示与稠密表示的区别。

哪种方法最好:基于特征的或稠密,直接方法?答案是取决于具体任务和性能要求(比如,时间,精度,失效率,等等)。基于特征方法的劣势是它依赖于特征类型,大量可靠地特征检测和匹配的阈值,还必须有鲁棒估计技术处

理不正确地匹配,实际上,大部分特征检测都被优化提高速度而损失精度。稠密,直接方法使用了图像上的所有信息,甚至是梯度很小的区域;因此,他们即使在场景纹理很差,失焦,运动模糊的情况下的性能也优于基于特征的方法。然而,对于实时性能,他们要求更高的计算性能(GPUs)。另外,如何估计稠密结构和运动仍然是一个未解决的问题(目前只能一个一个地估计)。比基于特征方法优化的方法有两种。半稠密方法只使用强梯度(比如,边缘)的像素克服了稠密方法的计算要求;半直接方法同时采用了稀疏特征(比如角点或边缘)和直接方法,被证明为非常有效率;另外,因为依赖于稀疏特征,他们需要估计结构和运动。

高阶物体表示。点云和边界表示目前在稠密建图领域占有主要地位,我们预见到高层表示,包括物体和固定形状,在未来SLAM中将扮演重要角色。早期的SLAM基于物体推理的技术是“SLAM++” ,这些工作源自于论文245,66,77。这些表示方法显示物体的3维表示优于1维云点或2维图像。构建物体外形与物理表示关联,比如对物体的大小和数量,对机器人来说非常重要,需要与外界交互。幸运的是,现有领域比如CAD和计算机图形学已经在这方面有了很大发展。可以参考以下例子:

基元实例化:依赖于物体的类别(比如,圆柱体,球体)。对于每种物体,需要定义一组 参数(比如,半径,高度),定义了一组物体的唯一成员(或实例)。据我们所知,目前没有SLAM方法采用这种表示。

扫描表示法:可以利用简单的规则沿着空间中的轨迹扫描2D或3D物体生成有效的实体。典型的扫描表示法包括平移扫描(或推出)和旋转扫描。比如,一个圆柱体可以通过平移扫描一个球体得到,它的轴和平面正交。在计算机视觉中,2D交叉扫描的一个例子是归一化圆柱体,它们应用于机器人抓取中,如论文225。这种表示法并没有用在SLAM中。

构造立体几何法:由两个实体/基元间的布尔运算形成的新的复杂实体。实体可以存储为二叉树,树的叶子是基元或是几何变换参数,非终端节点的边是施加于叶子节点的运算(比如并,交或差)或几何变换。这种表示方式也没有用在SLAM中。

也有其他表示类型,包括CAD中基于特征的方法,基于字典的表示方法,基于可供性的模型,生成或过程模型,和场景图像。另外,基于字典的表示方

法,定义了一个实体其组成部分可以存储在字典中,应用于机器人和计算机视觉中,字典是从数据中学习得来或基于物体模型的现有仓库。

 

待解决的问题

以下关于SLAM几何度量表示的问题,有很多基础研究工作,仍然有很多未知领域没有开发。

SLAM中的高层表示:机器人领域目前主要关注点云或TSDF构建3D几何模型,这些表示方法有两个弱点。首先,他们有一些浪费。比如,两种表示方法使用了很多参数(比如,点,体素)去将很简单的环境进行编码,甚至是空房间。其次,这些表示方法并没有提供对3D几何的高层理解。比如,机器人需要分辨出它是在房间还是在走廊运行。点云并不能提供关于环境类型的有用信息(比如,房间或走廊)。另外一方面,更复杂的模型(比如,基元实例化)提供了简单的方法区分场景(比如,根据参数定义基元)。因此,SLAM中的高层表示主要有3个作用。首先,使用精简的表示方法可以在大场景建图时提供一种压缩地图的方法。其次,高层表示可以提供更多的对物体几何信息的描述,这个特征是必须的,用于数据关联,位置识别,语义理解。3D几何信息的高层描述(比如,推断物体外形)会影响人机交互(机器人可以像人一样理解几何外形),还可以包含物理属性(比如,重量,或运动情况)作为推断或建图的一个步骤。最后,用多信息3D表示方法可以与现代建筑建造和管理标准保持兼容,比如CityCML和IndoorGML。目前并没有SLAM技术可以构建更高层的表示,从而超越现有技术,点云,网格模型,点元模型,TSDF模型。

最佳表示:3D几何的不同表示方法领域很大,但只有很少工作关注理解如何确定特定表示方法的选择标准上。直观上,在简单的室内场景中,通常会选择参数化基元,仅用少量参数就可以足够描述3D几何;另一方面,在复杂的室外环境中,可能更倾向于网格模型。因此,如何比较不同的表示方法,如何选择更好的表示方法?

论文237将物体表示方法分了几类并比较了不同的表示方法。在这些属性中我们发现:范围(一组表示的真实物体),简明(用于存储和传输的表示的尺寸),易于创建(在机器人领域,是指用于表示构建的的推断时间),应用中的作用(依赖于具体任务采用哪种表示方法)。因此,最优表示方法能够完成给定任务,精简易于创建。论文259定义了最优表示为最少的足够数据执行

任务,最大的对不利因素的不变性。针对一个任务选择最好的表示方法,寻找一个通用的且易驾驭的框架的方法仍然是未解决的问题。

自动,自适应表示方法:传统表示方法是机器人专家根据系统设计的需要选择,有两个缺点。首先,选择合适的表示方法是一个耗时的工作,需要专业级知识。其次,缺乏弹性:一旦系统确定后,就不能改变;理想中,我们希望机器人用的表示方法根据任务和环境的复杂度选择简单或复杂的表示方法。最佳表示的自动式设计很大程度上会影响长时间导航。

6. 表示2:语义推理

语义建图需要将语义方法与机器人环境的几何实体进行关联。最近,人们已经认识到纯粹几何地图的局限,产生了很多工作构建环境语义地图,比其他机器人领域更多,比如自动驾驶,鲁棒性能,处理更复杂的任务(驾驶避免泥泞道路),从路径规划到任务规划,处理更高级的人机交互。有大量的方法可以将这些观测值和不同的语义思想和方法与环境不同的部分关联起来。举个例子,论文233将不同房间贴上标签,论文226将地图中不同的已知物体进行分割。除了这些方法之外,用基本层级的语义语法分析进行分类,可以考虑传感器数据和语义方法的简单建图。

语义与拓扑逻辑SLAM。如第一章提到的,拓扑逻辑建图没有采用几何度量信息只使用位置识别构建图状结构,其中节点表示不同的位置地点,边缘表示位置之间是否可以连通。我们注意到拓扑逻辑建图与语义建图完全不同。拓扑逻辑建图需要识别之前看到过的位置地点(比如是否是厨房,走廊等),语义建图根据语义标签将位置分类。

语义SLAM:结构和思想。人可以根据语义方法在不同的层级和组织结构上在复杂的基于任务的情况下做决定,无论这些语义的数量有多少,关系多复杂。具体的组织结构细节与机器人需要在什么地方执行什么任务有关,在不同的阶段对问题复杂度有不同影响。语义表示通过如下方面构建:

语义的层级和细节:对于一个给定的机器人任务,比如从房间A到房间B,初步的分类就足够了(比如,房间,走廊,门),但对于其他任务,比如“拾起一个茶杯”,就需要更精细的分类(桌子,茶杯,玻璃杯)。

语义的组织形式:语义方法并不是唯一的。甚至一个实物可能有很多属性和方法。一个椅子是可以移动的,可以坐的;一个餐桌可能是可以移动的,不

能坐的。椅子和桌子都是家具,他们都具有移动的属性,但有不同的用途。扁平的或层级组织结构,无论有没有相同的属性,必须能够处理这些多样性。

 

简要回顾

有三种主要方法处理语义建图,给不同的数据附上语义解释。

SLAM直接作用于语义:早期的机器人研究者直接用经典的SLAM系统将几何地图分割成语义。论文194,用2D激光扫描仪构建几何地图,离线状况下通过马尔科夫网络将每个位姿进行语义位置分类。一个在线的语义建图系统,如论文233,234,融合三层推理方法(传感器数据,分类和位置)用激光和相机构建环境语义地图。最近,论文36采用运动估计,采用不同的物体识别方法连通粗略的语义分割,明显优于单一系统。论文226,使用单目SLAM系统在视频的物体识别中增强性能。

语义作用于SLAM系统:在第一个语义地图出现之后不久,就有很多研究使用语义分类或物体。主要方法是如果我们能在地图中识别它们,我们就可以用它们的几何先验知识增加对地图的估计。早期的尝试是论文57和66在小场景用单目相机的稀疏特征,论文76是用稠密地图表示。采用RGBD传感器,论文246提出了一个完全基于已知物体和户型信息的SLAM系统。

SLAM和语义联立推导:同时熟悉计算机视觉和机器人的专家们意识到可以在一个公式中推导单目SLAM和地图分割。论文95的在线系统提出了一个模型用曼哈顿方法分割室内场景地图。论文16提出了一个方法用场景几何信息和语义信息联立估计相机参数,场景云点和物体标签。在它们的工作中,作者演示了增强的物体识别性能和鲁棒性,20分钟一对图像匹配,有限的物体分类对在线机器人操作无法实际应用。类似的案例,论文123解决了一个室外场景特定分类优化问题。尽管是离线方法,论文165用后期语义分割和几何度量地图融合减少问题的复杂性,类似的方法是论文249采用立体相机。需要注意,论文165和249只关注了地图构建部分,并没有优化计算位姿。最近,论文280提出了在线系统使用立体相机和稠密地图。

 

待解决的问题

SLAM中的语义问题的研究仍然处于早期阶段,与几何度量SLAM相反,它仍然缺乏一个系统的方法。如图6显示了一个施工地点的简单例子,我们发现具有以下挑战。

语义建图不只是一个分类问题:

给定一些先验知识,机器人应该能够推断新的方法和他们的语义表示,也就是说,他应该可以发现环境中的新物体或者新的分类,与其他机器人和人互动的时候了解到新的属性,对环境中缓慢的或突然的变化,采取相应的表示方法。比如,带轮子的机器人需要分辨地形是否可行驶,以通知导航系统。如果机器人发现路上有一些泥泞,这就是之前分类过的结果,机器人应该了解到一个新的类别依据跨过泥泞道路的不同难度进行分类,或者调整他的分类器如果发现其他的车辆陷在泥泞中。

基于语义的推理:作为人类,语义表示可以让我们简化并且加速对环境的推理,当然精确的几何度量表示可能会花费我们一些时间。目前,这并不适合机器人。机器人可以处理几何度量表示但他们真的无法使用语音方法。我们的机器人目前没法有效地、有效率的定位,用环境中的语义信息持续建图(分类,关系和属性)。比如,侦测汽车时,机器人应该可以推断汽车下面的地面(甚至在有遮挡的情况下)而且当汽车移动时有新的传感器数据读入,地图更新应该可以优化之前猜测的地面位置。甚至,同样的更新应该可以在单一有效的操作中改变汽车的全局位姿,比如每一个体素。

7 . SLAM中的新理论工具

本章将讨论构建高性能SLAM系统的算法,阐明一些未解决的问题。理论分析非常重要因为三个主要原因。首先,SLAM算法和执行经常用于测试问题实例,比较难理解对应的结果如何一般化到新的例子中。其次,理论结果掩盖了问题的内在属性,这些方面在形成经验的时候可能是反直接的。第三、对问题结构的真正理解可以推动算法改进,可以扩展现实中需要解决的SLAM问题的方法。早期的SLAM算法理论分析是基于EKF;我们推荐读者阅读论文84 , 286。这里我们只关注因子图优化方法。除了具有实践上的优势(精度,效率),因子图优化提供了一个精致的框架,经过实践检验分析。

没有先验知识,最大后验概率估计退化成最大似然估计。相应的,没有先验知识,SLAM继承了最大似然估计的所有属性:(5)式中的估计是一致的,渐进式高斯估计,渐进有效率,对欧式空间变化具有不变性。这些属性在没有先验知识的情况下可能会失效(比如估计器可能不具有不变性)。

在这里我们更关注算法属性:给定的算法如何收敛到最大后验概率估计?我们如何增强或确认这种收敛?如果出现错误的测量值断点是什么?

 

简要回顾

大部分SLAM都基于迭代非线性优化。SLAM是一个非凸问题,迭代优化只能保证局部收敛。当一个算法收敛到局部最小时,他通常返回一个可能完全错误不适合于导航的估计,如图7所示。在相对小的噪声水平代价的情况下,最新的迭代器无法收敛到全局最小。

无法在迭代方法中收敛触发了人们对SLAM问题的更深的探索。论文131,284,在这方面做了一些努力,最先讨论SLAM中非凸问题的特性。论文132,讨论了讨论了小位姿图优化问题中最小值数量问题。论文158,调研了没有回环检测的情况下错误增长的状况。论文38,提供了高斯-牛顿方法收敛的初始估计。论文39,展示了在2D情况下旋转估计可以用类似的方式处理,对应的估计也是唯一的。最大似然估计的另一种方法提供了更好的结果。论文45,46,研究了实际中经常遇到的在给定条件下(强对偶),最大似然估计是唯一的,位姿图优化可以全局性地解决,通过(凸)半有限编程。

如之前提到的,理论分析是更好的算法设计的第一步。除了论文45,46的SDP方法,其他作者也提出了凸松弛方法避免收敛到局部最大值。这些贡献包

括,论文176,240。另一个成功地方法是通过估计一个迭代非线性优化的合适的初始值增强收敛。基于这种方法,先处理旋转,再用产生的估计促进非线性迭代被证明在实际应用中非常有效,如论文27,39,42,43,47。论文149分别用平移和旋转加速优化。

最近的理论研究使得拉格朗日对偶应用于SLAM中,也使得验证技术的设计成为可能:给定一个SLAM估计,这些技术可以判断估计是否为最优。可以确定的是一个SLAM方案的质量对设计失效检验和保护恢复机制非常关键。SLAM中的验证技术非常新:最新技术,如论文45,46,可以解稀疏线性提供执行验证,并且保证提供一个正确的结果,有强对偶保证(后面还会介绍这个知识点)。

我们注意到机器人领域的这些结果,给相关领域提供了一个有益的补充,包括多机器定位,计算机视觉中的运动结构,低温电子显微镜。

 

待解决的问题

尽管这些年取得了前所未有的进展,有一些理论问题仍然没有解决。

一般性,保障,验证:第一个问题是现有结果的一般性问题。在位姿图优化中提出对全局方案的保障和验证的结论。这些结论是否可以一般化到任意因子图?

弱对偶或强对偶?论文45,46,表明强对偶可以保证SLAM问题全局解决;但他们提供了无法实际应用的证据表明大部分为的强对偶遇到了实际应用上的问题。卓有成效的问题处理方法是在强对偶下构建一个先验条件。我们可以回答这样的问题:“给定一组传感器数据(包含对应的噪声测量统计数据)和因子图结构,强对偶方法可以吗?”。如果能定义这个问题就可以定义SLAM应用的计算(或验证)全局问题的应用范围。这个理论调研为传感器设计和主动SLAM问题提供了一个基础理论。

对离群点的适应能力:第三个问题考虑的是出现不合格观测值得情况下的估计问题。尽管最近的结论对位姿图优化提供了强有力的支撑,但没有结论保证出现离群点的情况。尽管有一些工作研究了鲁棒SLAM和针对非高斯噪声的模型工具,对离群点适应能力的全局技术的设计和在出现离群点的情况下验证一个给定的估计值是否正确地技术仍然没有解决。

8. 主动SLAM

目前为止我们所描述的SLAM问题仍然是机器人领域被动出现的估计问题,比如,机器人执行SLAM是基于给定的传感器数据,没有自由主动地收集数据。在这一章我们讨论如何根据机器人的运动增强建图和定位的结果。控制机器人运动问题的主要目的是为了将机器人地图表示和定位问题的不确定性最小化,我们通常称为主动SLAM。这一定义源自于众所周知的Bajcsy的论文15的主动感知和书272第17章的机器人探路方法。

 

简要回顾

第一个主动SLAM是论文93,94,这个命名源自于论文171。但主动SLAM的根源来自于人工智能,机器人探路可以追踪到上世纪80年代。论文269,270,认为探索-使用方法,比如,在访问新地点(探索)和再次访问已知区域(使用)减少不确定性之间取得平衡,比随机探索和单纯使用方法更有效。

主动SLAM是一个决策问题,有几种框架做决策,可以用于探索-采用方法的主干。其中一个框架是最优实验设计理论(TOED),用于主动SLAM,可以基于估计地图不确定性来选择机器人的下一步行动。信息理论方法已经应用于主动SLAM;在这个例子中,通常使用信息增益做决策。SLAM控制理论方法包括采用模型预测控制系统,如论文171,172。另一种主动SLAM方法是基于部分可观测的马尔科夫决策过程,比较难处理;一种近似的但可处理的主动SLAM方法是贝叶斯优化或有效的高斯置信度传播算法,或其他。

流行的主动SLAM框架会在一组有限的方法中选择最好的行动方案。主动SLAM算法主要包括3个步骤: 1)机器人识别可能的位置探索并使用,比如,在地图当前估计中的有利位置;2)机器人计算访问过的每个有利点并选择具有最高效用的行动方案;3)机器人执行选择好的行动方案,决定是否有必要继续或终结任务。我们将详细讨论每个细节。

选择有利点:理想中,机器人执行主动SLAM算法应该评估地图空间的每一个动作,但评估的计算复杂度随着搜索空间的变化呈指数级增加,这在实际应用中难以控制。实践中,选择一组位置子集,使用前沿探索技术。最近的工作,论文279,137,提出的方法基于不确定性连续空间规划,可以用于主动SLAM;当前这些方法只能确保收敛到局部最优。另外一种连续区域的主动SLAM算法是使用潜在区域。论文278 中的例子使用回旋技术计算信息熵,选择机器人的行动,论文143诉诸边界值问题方案。

计算行动的效用:理想情况下,计算机器人给定行动的效用可以根据机器人位姿和地图推断后续步骤的变化,对后面可控制的行动和待测量值有重要作用。如果后验信息已知,可以用信息理论方法,信息增益,可以用于给不同的行动排序。然而,计算这种可能性,通常情况下计算量是无法控制的。实际情况下,只能近似估计。早期的工作考虑了地图的不确定性,机器人独立或条件独立。大部分方法将效用定义为测量机器人几何信息和地图不确定性地线性组合。这种方法的一个不利因素是两种不确定性的数值无法比较,比如,地图的不确定性的幅度经常超过机器人,所以需要手动调整来纠正。处理这个问题的方法是粒子滤波SLAM,位姿图优化。

最优实验设计理论(TOED)也对行动的效用起作用。在最优试验设计(TOED)中,每次行动都是随机设计的,可以通过所谓的优化准则使用关联的协方差矩阵进行比较,比如,A,D,E最优(不知道什么意思)。论文53,55,将最优标准应用与主动SLAM中。

执行行动或终止探路:执行行动通常都是简单的任务,使用运动规划中构建好的方法,决定探路任务是否完整,目前是一个未解决的问题,将在后面的段落里面讨论。

 

待解决的问题

有几个问题必须要提出来,对主动SLAM来说会影响实际应用。

后续状态的快速、准确的预测:机器人的主动SLAM每一个行动都应该帮助减少地图中的不确定性,增强定位的精度;为了达到这个目的,机器人必须能够预测后续行动对地图的影响和机器人的定位。在任何时间约束下都必须快速获得预测结果,精确地支持决策过程。在SLAM社区回环闭合非常重要,用于减少不确定性,获得更高的定位和建图精度。尽管如此,有效地预计回环闭合的同步与效果仍然对主动SLAM有帮助。还有就是,预计未来行动的效果,也是计算代价非常昂贵的。最近有一些预计机器人状态方法是运用机器学习领域的知识,使用了频谱技术和深度学习。

已经足够了:什么时候可以不在使用主动SLAM了?主动SLAM计算代价昂贵:因此很自然的问题是我们什么时候可以不用主动SLAM了而将主要资源用在其他任务上。平衡主动SLAM的决策和外部任务非常关键,其实在实际应用中,主动SLAM只是为了完成预定的任务。

性能保证:另外一个重要的方向是为主动SLAM和最优方法寻找数学方法上的保障。既然无法完全解决问题,就需要有近似算法可以接近所希望的性能。论文112是这方面模块的设计工作,采用的是主动传感器。

9. SLAM 中的新传感器

除了新算法的发展,SLAM(通常是指移动机器人)也因为新型传感器有了大幅进展。比如,2D激光扫描仪使SLAM系统非常鲁棒,3D激光扫描仪是最近的一些应用的主要动力,比如,自动行驶汽车。过去5年大量的研究致力于视觉传感器,成功的应用有增强现实和视觉导航。短期内,标准的视觉传感器是主要的技术方案,尤其是微型无人机,它的负载能力和电源限制无法使用大型、耗电传感器,比如激光雷达。表2列出了SLAM数据集和对应的传感器。注意标杆对比问题主要是几种传感器,数据集(可以用数据集设计后端)对于传感器不可见。那么,问题来了:什么样的传感器将长期推动SLAM问题的研究?什么样的算法可以更好地使用这种新的传感器?

我们注意到我们还没有像昆虫或动物,比如猎豹和鸟,那么敏捷和易于操作的机器人的一个主要原因是标准计算机视觉感知架构的高延迟,持续时间短。延迟是因为我们需要捕捉图像还需要时间来处理,持续时间短,运行片段多,是因为我们需要等待下一帧图像进入(具体如图9a)。计算机视觉方法典型延迟是50-200毫秒,离散时间是5-100毫秒,依赖于相机的帧率和曝光时间【目前相机的最高帧率是1Mhz,体积大(>公斤级),功耗大(>100W),需要

外部补光】。高延迟和离散时间限制了机器人平台的最大灵活性。比如,考虑到中型无人机的传动装置固定转动时间,大概在30毫秒,如果我们将螺旋桨或翅膀的尺寸减小,它可以迅速减少到1毫米以内。因此,为了获得更高的灵敏度,我们需要更快的传感器和更低延迟的处理时间。我们认为事件触发的相机可以完美取代当前的图像传感器。

 

事件触发相机

事件触发相机,比如动态视觉相机(DVS)或异步图像传感器(ATIS)正在改变基于图像的感知领域。与标准的基于图像帧的相机不同,获得固定帧率的整幅图像,事件触发相机只发送某个运动改变场景的时刻的局部像素级别的变化。需要注意的是,如果像素的亮度相对变化超过一个阈值触发事件。【具体的,在动态视觉相机中,如果亮度强度log值的差值大于10-20%时,就会触发一个事件。人眼对亮度log值得灵敏度是1%。】因此,异步事件的输出序列是在微秒级别的,如图9b。具体来讲,每个事件是一个数组[tk,(xk,yk),pk],其中,tk是事件的时间戳,(xk,yk)是触发事件的像素坐标,pk∈{+1,-1}是事件极值,是亮度变化的信息。

一个事件触发相机与普通基于图像帧相机相比有5个关键优势:时间延迟1微秒,观测频率最大1Mhz,动态范围最大140dB(普通相机60-70dB),功耗20毫瓦(普通相机1.5瓦),仅需要很低的数据带宽传输(对一般的运动情

况,~k bytes | s ,普通相机 ~M bytes | s )。采用这些特征可以设计新的算法追踪夜晚的棒球,开发像飞虫那么灵敏的全自动机器人,即使是定位和建图在灯光非常挑战的情况和速度很高的情况下。然而,这些优势是要花费代价的:因为是由异步事件的序列,传统相机的计算机视觉算法就无法兼容了。就需要将发展了50年的计算机视觉算法进行移植。

 

简要回顾

第一款事件相机已经在2008年商用了,这个领域仍然非常小,只有不到100篇有关算法的论文使用这些传感器。基于事件的特征检测和跟踪,LED跟踪,对极几何,图像重构,运动估计,光流,3D重构,迭代最近点(ICP)已经做好了。

最近,事件视觉里程计,定位,SLAM算法也提出来了。这些算法的事件异步的出现改变了系统的状态估计,因此,需要使用传感器的时间特征,并且能够设计高度交互系统。连续轨迹估计方法也非常适合使用事件触发相机:单一事件无法携带足够的信息用于状态估计,因为DVS的平均数据传输速率是每秒100,000个事件,由于需要表示所有位姿,状态向量的规模将快速增大,这将无法估计DVS在所有离散时刻的位姿。采用连续事件框架,DVS位姿轨迹可以近似于一个基本函数的刚体运动空间的光滑曲线,比如二次样条函数,或根据观测事件优化。

 

待解决的问题

事件相机作用很大,但如果没有实践和算法的调整,就没有这样的需求。

构建模型,灵敏度和分辨率:事件相机有复杂的模拟电路,非线性和偏移会改变像素的灵敏度,和其他动态特征,使得事件触发对噪声非常敏感。传感器噪声特征和理想曲线现在仍然无法得知。因此,我们仍然无法用事件相机解决定位和建图问题。

既然事件通过亮度改变触发,事件发生于场景边缘有关。然而,大部分事件方法是场景强梯度,如果边缘光滑就会失效。

时刻分辨率非常高(1us),空间分辨率非常低(128x128 像素),论文30提出了一个问题。另外,新开发的事件相机传感器克服了一些原有的问题:ATIS传感器发送像素级别亮度的强度;DAVIS传感器可以同时输出图像帧和事

件(这样就可以同时加进一个普通相机传感器和DVS传感器到同一个像素帧率中)。

事件相机还是普通相机?哪个传感器更适合SLAM?给定SLAM传感器和算法主要看传感器和算法的参数,还有环境情况。完整的选择算法和传感器获得最好性能的方法还没有找到。然而,论文59的研究表明,给定任务的性能还依赖于传感器的可用电能。多传感器的最优传感架构可能无法根据性能要求同时开关。

10. 结论

我们进入了意识到鲁棒性的年代,SLAM领域面临更多更新的挑战。失效保护SLAM系统的设计,参数自动调整算法,环境高级几何度量和语义表示,还有任务和资源关联SLAM系统,更具有挑战,比最新的理论工具和传感器更有趣。SLAM仍然是大部分机器人应用的主要组成部分,与人类好不费力的功能相比,现有SLAM系统远远不能提供有效的,可用的,精简的环境模型。

【版权声明】泡泡机器人SLAM的所有文章全部由泡泡机器人的成员花费大量心血制作而成的原创内容,希望大家珍惜我们的劳动成果,转载请务必注明出自【泡泡机器人SLAM】微信公众号,否则侵权必究!同时,我们也欢迎各位转载到自己的朋友圈,让更多的人能进入到SLAM这个领域中,让我们共同为推进中国的SLAM事业而努力!

【注】商业转载请联系刘富强(liufuqiang_robot@hotmail.com)进行授权。普通个人转载,请保留版权声明,并且在文章下方放上“泡泡机器人SLAM”微信公

众账号的二维码即可。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SLAM导航机器人零基础实战系列》讲义 第1章:Linux基础 1.Linux简介 2.安装Linux发行版ubuntu系统 3.Linux命令行基础操作 第2章:ROS入门 1.ROS是什么 2.ROS系统整体架构 3.在ubuntu16.04中安装ROS kinetic 4.如何编写ROS的第一个程序hello_world 5.编写简单的消息发布器和订阅器 6.编写简单的service和client 7.理解tf的原理 8.理解roslaunch在大型项目中的作用 9.熟练使用rviz 10.在实际机器人上运行ROS高级功能预览 第3章:感知与大脑 1.ydlidar-x4激光雷达 2.带自校准九轴数据融合IMU惯性传感器 3.轮式里程计与运动控制 4.音响麦克风与摄像头 5.机器人大脑嵌入式主板性能对比 6.做一个能走路和对话的机器人 第4章:差分底盘设计 1.stm32主控硬件设计 2.stm32主控软件设计 3.底盘通信协议 4.底盘ROS驱动开发 5.底盘PID控制参数整定 6.底盘里程计标 第5章:树莓派3开发环境搭建 1.安装系统ubuntu_mate_16.04 2.安装ros-kinetic 3.装机后一些实用软件安装和系统设置 4.PC端与robot端ROS网络通信 5.Android手机端与robot端ROS网络通信 6.树莓派USB与tty串口号绑定 7.开机自启动ROS节点 第6章:SLAM建图与自主避障导航 1.在机器人上使用传感器 2.google-cartographer机器人SLAM建图 3.ros-navigation机器人自主避障导航 4.多目标点导航及任务调度 5.机器人巡航与现场监控 第7章:语音交互与自然语言处理 1.语音交互相关技术 2.机器人语音交互实现 3.自然语言处理云计算引擎

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值