SLAM:现在,未来和鲁棒感知时代
文章目录
- SLAM 研究的时代划分
- the classical age (1986 - 2004)
- the algorithmic-analysis age (2004 - 2015)
- the robust-perception age (now)
- 自主机器人真的需要SLAM吗?
- SLAM问题被解决了吗?
- SLAM算法鲁棒性
- SLAM算法鲁棒性面临的主要挑战
- 数据关联(data association)
- 恶劣环境(harsh environment)
- 研究现状
- 前端短期数据关联(short-term data association)
- 前端长期数据关联(long-term data association)
- 前端回环闭合检测(loop closure detection )
- 前端回环闭合验证(loop closure validation)
- 后端回环闭合验证
- 动态环境的处理
- 待解决的问题(open problem)
- SLAM失效保护和恢复(failsafe SLAM and recovery)
- 对硬件失效的鲁棒性(robustness to HW failure)
- 几何重定位(metric relocalization)
- 随时间变化的、可变形的地图(time varing and deformable map)
- 自动化调参(Automatic parameter tuning)
- SLAM算法鲁棒性面临的主要挑战
- SLAM的场景尺度(scalability)
- 研究现状
- 节点、边缘稀疏化(node and edge sparsification)
- 去中心化(并行)SLAM(out-of-core (parallel) SLAM)
- 分布式多机器人SLAM(distributed multi robot SLAM)
- 待解决的问题
- 地图维护(map maintenance)
- 鲁棒分布式建图(robust distributed mapping)
- 学习,遗忘,记忆(learning, forgetting, remembering)
- 资源有限的平台(resource-constrained platform)
- 研究现状
- 地图表示:几何度量推理(metric reasoning)
- 稀疏路标表示(landmark-based sparse representation)
- 低层原始数据稠密表示(low-level raw dense representation)
- 边界和空间分割稠密表示(boundary and spatial-partitioning dense representation)
- 基于物体的高阶表示(high-level object-based representation)
- 待解决的问题(open problem)
- SLAM中的高层表示(high-level, expressive representations in SLAM)
- 最优表示(optimal representations)
- 自动、自适应表示(automatic, adaptive represetation)
- 地图表示:语义推理(semantic reasoning)
- 语义SLAM vs 拓扑SLAM(semantic SLMA vs topological SLAM)
- 语义的结构和具体内容(semantic SLAM: structure and detail of concepts)
- 语义建图的研究现状
- 待解决的问题(open problem)
- 语义建图不只是一个分类问题
- 忽略、察觉和适应(ignorance, awareness, and adaptation)
- 基于语义的推理
- SLAM中的新理论工具
- 主动SLAM(active SLAM)
- SLAM中的新传感器
本文为对综述论文Simultaneous Localization And Mapping: Present, Future, and the Robust-Perception Age的理解和心得,本文受众为,对SLAM问题有一个全面的基础认知,想进一步寻找SLAM研究方向的童鞋。
对该综述论文的学习还可以参考:
【泡泡机器人翻译专栏】SLAM: 现在,未来和鲁棒年代(一)
【泡泡机器人翻译专栏】SLAM: 现在,未来和鲁棒年代(二)
【泡泡机器人翻译专栏】SLAM: 现在,未来和鲁棒年代(三)
【泡泡机器人翻译专栏】SLAM: 现在,未来和鲁棒年代(四)
【泡泡机器人翻译专栏】SLAM: 现在,未来和鲁棒年代(五)
SLAM 研究的时代划分
- the classical age (1986 - 2004)
- the algorithmic-analysis age (2004 - 2015)
- the robust-perception age (now)
the classical age (1986 - 2004)
在SLAM问题研究的前20年,主要是提出问题和理清框架,这一阶段的主要有两个成果:
- 对SLAM问题,引入了一些主要的概率形式表述框架(probabilistic formulation),包括基于扩展卡尔曼滤波器(Extended Kalman Filters),Rao-Blackwellised 粒子滤波器(Rao-Blackwellised Partical Filter)和极大似然估计的方法(Maximum Likelihood Estimation);
- 指出了SLAM问题在效率(efficiency)和鲁棒的数据关联(robust data association)方面面对的挑战。
the algorithmic-analysis age (2004 - 2015)
- 研究了SLAM问题的基本性质,包括可观测性(observability),收敛性(convergence)和一致性(consistency);
- 理解了SLAM问题的稀疏性(sparsity),更具体一点,是理解了增量方程中H矩阵结构的稀疏性,这对于SLAM的效率起着至关重要的作用。
- 一些主要的开源SLAM框架也在这一阶段被开发了出来。
the robust-perception age (now)
Cadena等人认为,在我们正处于的这个时代,这个阶段SLAM领域的研究有以下特点:
- 鲁棒性能(robust performance)。未来的SLAM系统能够在任意环境下以低失效率长期运行,包含失效保护机制,有自动调参的能力,也就是能够调整系统参数来适应不同的场景;
- 高层次的理解能力(high-level understanding)。未来的SLAM系统不仅能够实现基本的几何重建,还能在更高的层次上理解环境信息(e.g., semantic, affordances, high-level geometry, physics);(affordance指的是,对于给定的环境或者物体,给定的机器人可以采取的动作的集合)
- 资源敏感(resource awareness)。未来的SLAM系统可以被裁剪以适应实际的传感器和可用计算资源,也可以根据可用计算资源调整计算负载(我理解这里的意思是,如果计算资源充足,可以充分利用计算能力提高精度)。
- 任务驱动的推理(task-driven inference)。未来的SLAM系统能够生成自适应的地图表示(adaptive map representations),地图表示的复杂性取决于机器人所要执行的任务。
自主机器人真的需要SLAM吗?
- 首先,我们发现过去十年中,视觉-惯性里程计代表了SLAM研究的最新进展。从某种意义上说,视觉-惯性导航(VIN, visual-inertial navigation)就是SLAM:VIN可以看作回环闭合(或场景识别)模块被关闭的SLAM系统。如果只考虑简单场景(比如航空中的惯性导航),可能并不需要SLAM,但是在更一般的情况下,实际场景会更具挑战性(比如,灭有GPS信号,低性能传感器),这就需要SLAM研究实际场景中的多传感器融合问题。
- 第二个回答与回环闭合有关。一个忽略回环闭合的高性能里程计,会将世界(环境)解释为一个“无穷的走廊”(infinite corridor),机器人会在这个“走廊”中不断探索新的环境。而回环闭合会告诉机器人,这个“走廊”其实不是无穷的,沿着走廊走可能会回到之前到过的位置。
现在回环闭合的优势就很明显:通过回环闭合检测,机器人可以理解环境真正的拓扑关系,可以找到位置之间的最短路径(比如,图中的点B与点C)。那么,既然获得环境的正确拓扑关系是SLAM的重要价值,那么为什么不丢弃几何度量信息,只做位置识别呢?答案很简单:几何度量信息使得位置识别更加简单、更加鲁棒。几何重建可以检测回环闭合,并且可以剔除错误的回环闭合。因此,尽管SLAM在理论上可能是冗余的(一个可靠的位置识别模块就可以实现拓扑建图),SLAM可以天然地抑制错误的数据关联(data association)和感知混淆(perceptual aliasing,感知混淆指的是环境中不同的地点,有着相似的场景外观,会造成错误的场景识别)。从这个意义上讲,SLAM地图(就是前面说的几何度量重建结果)可以预测并验证测量的有效性,我们认为一点对于SLAM系统的鲁棒运行至关重要。 - 我们的第三个回答是,我们需要SLAM,
不同的SLAM系统有着各自擅长完成的任务,因此一个机器人专家设计SLAM系统时,需要面对多种设计选择。比如,拓扑地图可以用来分析一个给定的位置是否可以到达,但是不适合用于运动规划和底层控制;局部一致的几何度量地图,适合用于避障和与环境的局部交互,但是它的精度不高;全局一致的几何度量地图,可以使机器人完成全局路径规划,但这种地图的计算和维护成本比较高。选择合适的SLAM系统的更一般的方法是,把SLAM看作一个计算充分统计量(sufficient statistic)的机制,这个充分统计量包含了机器人过去所有的观测。从这个意义上讲,压缩的地图表示中需要保留哪些信息,是与任务深度相关的。
SLAM问题被解决了吗?
- 机器人平台(robot):
- 运动类型(比如,动力学、最大运动速度);
- 可用的传感器(比如分辨率、采样频率);
- 可用的计算资源。
- 环境(environment):
- 平面环境/3D环境;
- 自然路标/人工路标;
- 动态元素的数量;
- 对称的数量(?ammount of symmetry);
- 感知混淆的风险。这个方面的问题实际上取决于传感器与环境的组合情况:比如两个不同的房间对于2D激光雷达来说可能扫描结果很相似(感知混淆),但是相机可以根据外观信息区分它们。
- 性能要求(performance requirements):
- 机器人状态估计的期望精度;
- 环境地图表示的类型与期望精度(比如,基于稀疏路标或者稠密点云);
- 成功率(这里的成功率指的是,满足精度边界的测试结果占测试总量的比例);
- 估计延时(estimation latency);
- 最大运行时间;
- 最大地图尺寸(地图面积或者地图体积);
举个例子,使用机器人构建一个室内环境的2D地图,机器人配置了轮式编码器和激光扫描仪,期望有足够的精度(<10cm)和鲁棒性(简单来说,就是低失效率),这种SLAM问题可以认为已经被解决。类似的,运动缓慢的机器人(比如火星探路车,室内机器人)使用的基于视觉的SLAM和视觉-惯性里程计被认为是成熟的研究领域。而另一些机器人平台/环境/性能要求配置下的SLAM问题,仍然需要大量的基础研究。当机器人运动或者环境条件过于具有挑战性时(比如机器人快速运动,高度动态的环境),当前的SLAM系统很容易失效。当前的SLAM系统通常也无法满足苛刻的性能要求,比如快速估计以用于机器人的闭环控制。
SLAM算法鲁棒性
SLAM算法鲁棒性面临的主要挑战
数据关联(data association)
恶劣环境(harsh environment)
研究现状
前端短期数据关联(short-term data association)
前端长期数据关联(long-term data association)
在SLAM前端进行长期数据关联更具有挑战性,它包括回环闭合的检测和验证(loop closure detection and validation)。
前端回环闭合检测(loop closure detection )
对于SLAM前端的回环闭合检测,一个比较直观的方法就是,在当前观测(比如图像)中检测特征,将其之前所有检测到的特征进行对比,但考虑到计算量,这种暴力求解方法是不切实际的。词袋模型(bag-of-words)通过对特征空间进行量化,从而实现了更加有效的搜索,避免了暴力搜索。词袋模型可以设计为层级式字典树(hierarchical vocabulary tree),这种结构可以实现大规模数据集中的高效查找。
基于词袋模型的方法,在单次任务回环闭合检测中表现出了非常可靠的性能。但是这些方法无法处理剧烈的光照变化,因为光照剧烈变化时,就无法与字典树中的视觉单词(visual word)匹配上了。为了处理这个问题,有的方法匹配图像序列,有的方法把不同的视觉特征整合为同一的表示,还有的方法同时使用空间信息和视觉特征,视觉场景识别的详细内容可参考综述论文Visual Place Recognition: A Survey。在基于激光雷达的SLAM前端,基于特征的方法也可以用来进行回环闭合检测。
前端回环闭合验证(loop closure validation)
回环闭合验证,指的是通过额外的几何验证步骤来确保回环闭合的质量。在基于视觉的方法中,通常使用RANSAC进行几何校验,剔除离群点(outlier)。在基于激光雷达的方法中,激光雷达通过之前的扫描已经建出了地图,可以通过计算当前激光雷达的扫描值与地图的匹配度,来完成对回环闭合的验证。
后端回环闭合验证
动态环境的处理
- SLAM系统需要检测、丢弃和跟踪环境中的变化。目前的主流方法选择剔除环境中动态变化的部分,但也有一些研究把动态变化的元素作为环境的一部分进行建模。
- SLAM系统需要对环境中的永久变化(permanent change)或半永久变化(permanent change)进行建模,系统需要理解什么时候应该更新地图,以及该如何更新地图。现有的SLAM系统在处理动态场景时主要有两种方式:一是维护同一个位置的多个地图;二是只维护一个地图,但是构建地图的参数是时变的。
待解决的问题(open problem)
SLAM失效保护和恢复(failsafe SLAM and recovery)
对硬件失效的鲁棒性(robustness to HW failure)
几何重定位(metric relocalization)
随时间变化的、可变形的地图(time varing and deformable map)
自动化调参(Automatic parameter tuning)
SLAM的场景尺度(scalability)
研究现状
这一部分的内容,回顾了当前控制、或者说是降低问题规模增长的方法。我们主要关注两种降低因子图复杂度的方法:
节点、边缘稀疏化(node and edge sparsification)
去中心化(并行)SLAM(out-of-core (parallel) SLAM)
分布式多机器人SLAM(distributed multi robot SLAM)
一种实现大尺度场景建图的方法是使用多机器人SLAM,将整个大场景分成多个较小的区域,一个机器人负责一个小区域。这种方法主要有两个变种:
- 中心式(centralized)。在中心式方法中,机器人各自构建子地图,然后把局部信息传递给一个中心站,由中心站进行后续推断;
- 分散式(decentralized)。在分散式方法中,不存在做数据融合的中心站,各个agent通过局部通信实现估计的一致性。
待解决的问题
尽管有大量的研究工作致力于降低因子图优化的复杂度,SLAM系统在诸如长时间运行(long-term operation)等方面还有很长的路要走。
地图维护(map maintenance)
鲁棒分布式建图(robust distributed mapping)
离群点(outlier)的去除在单机器人的情况下已经实现,但是在多机器人SLAM领域离群点的问题被忽略了。处理虚假的观测值非常有挑战性,这主要有两个方面的原因:
学习,遗忘,记忆(learning, forgetting, remembering)
这些问题都是与具体任务相关的(task-dependent),没有绝对的答案。
资源有限的平台(resource-constrained platform)
地图表示:几何度量推理(metric reasoning)
在2D情况下,构建环境的几何模型相对简单,只有两种主要范式:
- 路标地图(landmark-based maps)。在路标地图中,环境被建模为路标的稀疏集合
- 栅格地图(occupancy grid maps)。在栅格地图中,环境被离散化为许多栅格,每一个栅格会被赋予一个概率值,该值表征了这个栅格被占据的概率。
稀疏路标表示(landmark-based sparse representation)
低层原始数据稠密表示(low-level raw dense representation)
这些稠密表示地图的视觉效果很好,但是它们很笨重,因为需要存储大量的数据。而且这种地图对几何信息的描述是低层级的,它们忽视了障碍物的拓扑结构。
边界和空间分割稠密表示(boundary and spatial-partitioning dense representation)
不同于使用低层数据的非结构化点云地图,边界和空间分割稠密表示显式地对表面(边界)和体积进行建模。
- 半稠密法(semi-dense)。半稠密法只使用梯度大的像素(比如图像边缘),以此来解决稠密法对计算能力的高要求。
- 半直接法(semi-direct)。半直接法同时采用了稀疏特征(比如角点和边缘)和直接法,使用了半直接法的SVO证明了其高效性。而且,由于半直接法使用稀疏特征,这使得它可以联合估计环境结构和运动
基于物体的高阶表示(high-level object-based representation)
- 参数化基元实例化(parameterized primitive instancing)。这种表示方法依赖于对一系列物体簇(比如圆柱体、球体)的定义。对于每一簇物体,给定一组参数(比如半径、高度)的值,就可以唯一地确定该簇物体中的一个实例。据我所知,目前没有采用这种表示方法的SLAM系统;
- 扫描表示法(sweep representation)。扫描表示法包含两个要素:一是做扫描运动的2D图形(截面)或3D物体,二是扫描运动的方式。根据简单的运动规则,2D或3D物体沿着空间中的轨迹扫描,生成实体。常用的扫描表示方法有:平移扫描和旋转扫描。比如,一个圆柱体可以由一个圆沿着与其垂直的轴所在的方向扫描得到。在计算机视觉中,2D cross-sections 被称为generalized cylinders,这种方法已经被用于机器人抓取。据我所知,目前并没有SLAM系统使用扫描表示法。
- 构造实体几何(constructive solid geometry)。这种表示法通过基元之间的布尔运算(布尔运算是数字符号化的逻辑推演法,包含联合、相交、相减)来定义复杂实体。一个实体被表示为一颗二叉树,树的节点表示构成实体的基元,树的边表示基元之间的布尔运算(机械设计课程中,使用solidworks画图时,零件似乎就是用这种形式构造的)。据我所知,目前也没有SLAM系统使用这种表示方法。
待解决的问题(open problem)
以下这些关于SLAM中几何度量表示的问题,需要大量的基础研究,仍然有很多未知领域有待探索。
SLAM中的高层表示(high-level, expressive representations in SLAM)
最优表示(optimal representations)
自动、自适应表示(automatic, adaptive represetation)
地图表示:语义推理(semantic reasoning)
语义SLAM vs 拓扑SLAM(semantic SLMA vs topological SLAM)
语义的结构和具体内容(semantic SLAM: structure and detail of concepts)
- 语义的层级和具体内容(level/detail of semantic concepts)。对于一个给定的机器人任务,比如“从房间A到房间B”,初步的分类(比如房间、走廊、门)就可以很好的完成这个任务。但是对于其它的一些任务,比如“拿起一个茶杯”,就需要更加精细的分类(桌子、茶杯、玻璃杯)。
- 语义的组织形式(organization of semantic concepts)。语义信息并不是唯一的(exclusive),多个语义信息可以表达同一个实体(比如凳子、板凳),一个语义信息也可以表达多个实体(比如桌子一个词,既可以指课桌,也可以指饭桌)。一个实体可能有无穷多的属性。一个椅子的属性可能是“可移动的”和“可坐”,一个餐桌的属性可能是“可移动”和“不可坐”。椅子和餐桌都是家具,它们都具有“可移动”的共同属性,但是具有不同的用途。由于语义存在的这些特点,我们在组织语义信息时,不管使用扁平结构还是层级结构(flat or hierarchical organization),无论有没有共同属性,都必须要能够处理语义信息的多样性(multiplicity)。
语义建图的研究现状
- SLAM帮助语义(SLAM helps semantics)
- 语义帮助SLAM(semantics help SLAM)
- SLAM与语义联合推理(joint SLAM and semantic inference)
待解决的问题(open problem)
语义SLAM不像几何度量SLAM那样有一套成熟的框架,而是尚处于研究的早期阶段。
语义建图不只是一个分类问题
忽略、察觉和适应(ignorance, awareness, and adaptation)
基于语义的推理
SLAM中的新理论工具
主动SLAM(active SLAM)
SLAM中的新传感器
SLAM:现在,未来和鲁棒感知时代相关推荐
- 【泡泡机器人转载】SLAM: 现在,未来和鲁棒年代
摘要 SLAM是由同步环境地图构建和运行于其中的机器人状态估计组成.SLAM领域过去30年取得了令人瞩目的成就,其在大场景应用成为了可能,这一技术被见证了成功地被应用于工业领域.本文中,我们研究了SL ...
- 机器人环境感知算法之鲁棒感知阶段
关注同名微信公众号"混沌无形",有趣好文! 原文链接: 机器人环境感知研究现状简述(包含原文PDF百度云下载链接) 这一阶段要求SLAM系统具备更稳健的性能.更高阶的理解能力等多智 ...
- 2017CVPR NID-SLAM:基于归一化信息距离的鲁棒单目SLAM系统
原作:Geoffrey Pascoe 翻译:Frank 转载请注明出处 水平有限,错误请指出 NID-SLAM:基于归一化信息距离的鲁棒单目SLAM系统 摘要 本文提出了一种基于归一化信息距离(NID ...
- 【源头活水】IEEE TIFS 2022 | 基于不确定因素感知的鲁棒虹膜识别
"问渠那得清如许,为有源头活水来",通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉.为此,我们特别精选论文阅读笔记,开辟 ...
- 半直接单目VO | PL-SVO:快速、鲁棒的SLAM线特征跟踪
作者 | 猛女瘦瘦 编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/571034195 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨 ...
- Ultimate SLAM:结合事件、图像和惯性测量单元,在HDR和高速场景下实现鲁棒的视觉SLAM...
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 摘要 事件摄像机是受生物启发的视觉传感器,输出像素级亮度变化,而不是标准亮度帧.这些相机不会受到运 ...
- 论文翻译 | Mask-SLAM:基于语义分割掩模的鲁棒特征单目SLAM
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 摘要 本文提出了一种将单目视觉SLAM与基于深度学习的语义分割相结合的新方法.为了稳定运行,vSL ...
- Mask-SLAM:基于语义分割掩模的鲁棒特征单目SLAM
摘要 本文提出了一种将单目视觉SLAM与基于深度学习的语义分割相结合的新方法.为了稳定运行,vSLAM需要静态对象上的特征点.在传统的vSLAM中,随机样本一致性(RANSAC) 用于选择那些特征点. ...
- Robust Consistent Video Depth Estimation_具有鲁棒一致性的视频深度估计
论文 Code 核心:利用卷积神经网络训练 单张图像深度估计 优化深度图的对齐 连续优化 共同优化相机位姿参数的内外参 估计的深度图3D对齐 解决Naive alignment:提出一种更灵活变形的模 ...
最新文章
- smarty的简单分页
- 替换openjdk的版本时遇到报错Transaction check error
- STL的pair键值对
- swarm 本地管理远程_带有WildFly Swarm的远程JMS
- delphi查看源码版本_[Mybatis]-IDEA导入Mybatis源码
- scala char_Scala中的Char数据类型
- 爱因斯坦鲜为人知的另一面
- 程序员再也不担心请不到假了!
- hdu 5017 Ellipsoid(西安网络赛 1011)
- RefineDetLite:腾讯提出轻量级高精度目标检测网络
- 【Kafka】kafka 创建 topic的时候 Replication factor 参数理解
- java 取余_JAVA面试解析(有赞)
- kvm启动报错Could not access KVM kernel module: Permission denied
- 使用socket实现基于select模型的网络聊天室
- 随手刷屏的波士顿动力机器人,用3D打印解决了哪些问题
- DataGridView的行的字体颜色变化
- 为什么微盟耗时 7 天 7 夜才找回删库数据?
- Creator性能优化
- Python使用pyhive库远程操作hive的配置和使用
- 报表控件是什么?常见报表类型有哪些?