本文主要是介绍文献学习《Past, Present, and Future of Simultaneous Localization And Mapping》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文献学习《Past, Present, and Future of Simultaneous Localization And Mapping: Towards the Robust-Perception Age》
- 1 Introduction
- 2 现代SLAM系统剖析
- 3 长时间的自治
- 3.1 鲁棒性
- 3.2 可扩展性
- 4 表示法
- 4.1 度量地图模型
- 4.2 语义地图模型
- 5 ACTIVE SLAM
- 6 新的发展方向
这篇文章主要是关于SLAM技术的综述文章,介绍SLAM的历史发展阶段、当前的系统构成、地图表示法(度量/语义),还有新的传感器和计算工具。
文献链接:https://arxiv.org/pdf/1606.05830v4.pdf
1 Introduction
地图两方面的用途:
- 用于支撑其他任务,如路径规划、提供一个直观的可视化操作;
- 估计机器人状态时限制误差。
SLAM常被应用在没有可用的先验地图、需要建立地图的场景下。在临时的定位设施缺少的情况下(比如人工地标、GPS),SLAM能够提供一个具有吸引力的、用户来建立地图的可行方案,让机器人操作成为可能。
Durrant-Whyte 和 Bailey提出的SLAM问题的三个时期阶段:
- 古典时代:classical age(1986-2004)——向SLAM中引入概率公式,包括扩展卡尔曼滤波、Rao-Blackwellised粒子滤波和最大似然估计(maximum likelihood estimation),还划定了效率和鲁棒数据关联的基本挑战。
- 算法分析时期:algorithmic-analysis age(2004-2015),主要研究SLAM的基本性质,包括可观测性、收敛性和连续性。理解了稀疏性对于高效SLAM求解器的关键作用,建立了主要的开源SLAM库。
- 鲁棒感知时代:robust-perception age(2016——):鲁棒性能(故障安全机制、自调节能力),高层次理解,资源意识,任务驱动感知。
对于“我们是否需要SLAM”这个问题,作者给出了三方面的回答:
第一,在过去的十年中进行的SLAM研究本身已经产生了视觉惯性里程计算法,代表了目前最先进的状态。更一般地,SLAM直接引导在更具有挑战性的配置下(比如,没有GPS、低质量传感器)研究多传感器融合。
第二,得到真实环境的拓扑结构。看起来相似的场景,会影响位置识别,对于环境中的不同位置,SLAM能够提供一种对错误的数据关联和感知混叠的自然防御。
第三,许多应用需要SLAM,不管是隐式还是显式都需要一个全局一致的地图。
对于一个成熟的SLAM问题,可以具体分为以下几个方面:
- 机器人:运动类型(动态、高速),可用传感器(分辨率、采样率),可用计算资源;
- 环境:平面/三维,存在自然/人工地标,动态对象数量,对称数量,感知混乱的风险;
- 性能需求:准确估计机器人状态,场景的准确性和代表类型(基于地标或者稠密),成功率(测试中达到准确线的百分比),估计延迟,最大执行时间,最大地图尺寸。
当面临机器人运动或者环境具有很大的挑战性的时候(比如,机器人快速运动,场景高动态),SLAM算法就容易失败。同样地,SLAM算法通常也不能应对严格的性能要求,比如对于快速闭环控制的高频率估计。
2 现代SLAM系统剖析
一个SLAM系统包括前端和后端。前端提取传感器数据放入可处理的模型进行估计,后端根据前端提取出的数据进行推算。
后端,把SLAM构建成一个最大后验估计问题,经常使用因子图来推理变量之间的依赖关系。
在前端的数据联合中,包括了短期和长期数据连接。短期主要是负责在连续的传感器测量中连接对应的特征。长期数据联合主要是回环检测,是把新的测量值联系到旧的地标。后端把信息反馈给前端,支撑闭环检测和校正。
3 长时间的自治
3.1 鲁棒性
算法的鲁棒性:数据联合是算法失败的一个主要来源。由于感知混乱的出现,数据联合建立了错误的测量-状态匹配关系,导致后端估计产生错误。同时,当数据联合错误地排除了一些传感器测量值,就会使得用于估计的测量值变少,影响估计精度。
对于有动态物体的环境,在短期内、单一的小尺度地图场景,可以认为环境是静态的,不会发生改变,但是对于长时间尺度的大环境下,这种改变是不可避免的。
对于动态环境,有一些主流方法是去除场景中的动态部分,也有一些工作是把动态对象作为模型的一部分。
3.2 可扩展性
在许多应用前景中,机器人的运行时间和场景都是不断延伸的,然而计算时间和内存都受到机器人资源的限制。
为了降低因子图优化的复杂度,采用两种方法:
- 稀疏化方法(sparsification methods)
减少因子图中的节点,边缘化不重要的节点和因子信息;还有一种是利用连续时间轨迹估计(continuous-time trajectory estimation)来减少随时间估计的参数数量。比如说,通过各种插值(三次样条插值、批处理插值)的方法,来得到机器人运动轨迹和位姿状态。 - 核外和多机器人方法(out-of-core and multi-robot methods)
SLAM的并行核外算法将因子图优化的计算(和内存)负载分配给多个处理器。主要的想法是把因子图划分为不同的子图,通过可选择的子图局部优化来优化全局图。
对大尺度环境建图,可以应用多个机器人执行SLAM,把场景划分为更小的区域,每一个小区域由不同的机器人来建图。有两种不同的方案:有中心的,机器人建立子图传递局部信息到中心站点;去中心的,没有中心数据融合,代理利用本地通信在共有地图上达成共识。
目前存在的一些问题:
- 对于长时间的操作,如何存储地图;
- 需要多长时间更新一次地图中的信息,如何判断这些信息过期了可以被删除;
- 机器人如何处理异常值。机器人没有一个通用的参考框架,很难检测并去除错误闭环;对于分散式设置,机器人只能从部分的和局部的信息中检测异常值。
- 如何把现有的SLAM算法应用到计算资源非常有限的机器人平台(比如,手机、无人机、昆虫式机器人)
4 表示法
4.1 度量地图模型
在2D情况下,几何建模是比较容易的,有两种主要的方式:基于地物的地图和占据网格的地图。3D几何建模就要更精细,目前对于如何有效建立3D几何模型的理解还处于起步阶段。
左图就是一个基于地物/特征的稀疏代表,传感器测量一些地物的几何层次,同时提供描述子来建立测量值和对应地物的数据连接。
右图就是一个低等级的原始稠密代表方法,稠密表示方法地图提供3D几何的高分辨率模型,这样的模型更适用于避障、可视化以及呈现。
基于特征的方法更成熟,能够建立精确和鲁棒性好的带有自动重定位和闭环的SLAM系统。但是这样的系统十分依赖于环境特征,依赖于检测和匹配的阈值,而且大多数的特征检测器都是向速度方向优化而不是精度。
直接方法能够利用原始的像素信息,稠密直接法探测图像中的所有信息。对于特征少、虚焦、运动模糊场景,这类方法比基于特征的方法表现情况更好。但是为了实时性能,这类方法需要更高的计算能力。
4.2 语义地图模型
语义建图是把语义概念联系和机器人周边的几何实体联系在一起。
语义表示法可以定义为不同的方面:
- 语义层次:对象分类(比如,房间、走廊、门)
- 语义组织:用法、属性(可移动的、静止的)
目前存在的问题:语义-度量信息一致性融合,对于不同时间点获得的语义信息和度量信息,如何一致地融合,仍然是一个开放的问题。在一个已经完善的因子图公式中,结合语义分类和度量表示法,是建立一个语义-度量参考框架的可行办法。
目前机器人能够操作度量表示法,但是并不能真正探索语义概念。
5 ACTIVE SLAM
控制机器人的运动以减小其地图表示和定位的不确定性的问题通常称为主动SLAM(active SLAM)。
6 新的发展方向
新传感器的发展和新计算工具的应用已经成为了SLAM的关键驱动。
- 新式的和非传统的SLAM传感器
深度相机、光场相机、基于事件的相机
-
测距相机:结构光相机通过三角化来工作,它们的精度受到相机和模式投影仪(结构光)之间的距离的限制。ToF相机的精度只依赖于飞行事件测量装置,能够提供更高的测距准确度,
光场相机:光场相机能够记录光照强度和光束方向。由于工业制造的成本问题,商业可用的光场相机相对而言仍然只有低分辨率。但是它相对于一般的标准相机有很多优点,比如深度估计、噪声减弱、视频稳定化、干扰物分离、镜面反光的去除。
事件相机:事件相机只发送由场景中移动引起的局部像素级变化,能够应用在高速运动和高动态范围的场景下。但是,它的输出是一系列不同步的事件,传统的基于帧的计算机视觉算法是不适用的。
- 深度学习
通过学习深度神经网络,可以直接从原始图像对中获取移动机器人的两幅图像,从而回归两幅图像之间的帧间姿态,有效地替代视觉测程的标准几何形状。可以使用回归森林和深度卷积神经网络定位相机的6DoF,并仅作为输入图像的函数从单个视图估计场景的深度。
这篇关于文献学习《Past, Present, and Future of Simultaneous Localization And Mapping》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!