【论文笔记】Past, Present, and Future of Simultaneous Localization and Mapping

Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age

Scaramuzza, D., Cadena, C., Leonard, J. J., Carrillo, H., Latif, Y., Reid, I., … Carlone, L. (2016). Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age. IEEE Transactions on Robotics, 32(6), 1309–1332. https://doi.org/10.1109/tro.2016.2624754

文章简介

这篇文章主要讲近30年的SLAM技术的发展历程。

  1. 文章首先解释为什么需要SLAM,为何需要建立地图等基础的问题
  2. 接着简要介绍近30年来出现的主要技术
  3. 接下来介绍SLAM系统的组成以及个部分的作用
  4. 详细讲解SLAM每个步骤的实现过程,如环境的几何形状表示、语义信息的建模等
  5. 最后讲述SLAM的发展趋势

SLAM在这30年发展可以分为三个阶段

  1. 1986-2004 古典阶段,引入了SLAM概率论推导方法,包括基于扩展卡尔曼滤波、粒子滤波和最大似然估计;而且,这里的第一个挑战是效率和数据关联的鲁棒性问题
  2. 2004-2015 算法分析阶段,在算法分析的年代,有许多SLAM基本特性的研究,包括可观测性,收敛性和一致性。在这一时期,研究者们理解了稀疏特征在高效SLAM解决方案中的重要角色,开发了主要开源SLAM库
  3. 2015-至今 鲁棒感知阶段,主要从鲁棒性、环境的高层次理解、资源敏感和对任务驱动的判断四个方面解
    1. 鲁棒性能:这一时期SLAM系统在任意环境总运行的失效率较低;系统具有失效保护机制且具有自动调整的功能可以根据应用场景自动选择系统参数
    2. 高层次的理解力:SLAM系统已经除了基本的几何重建还能够在更高层次上理解环境信息(比如,语义,可供性,高层几何意义,物理意义)
    3. 资源敏感:SLAM系统可以进行裁剪以满足现有传感器和计算资源,也可以根据现有资源调整计算负载
    4. 对任务驱动的判断:SLAM系统可以自适应地表示地图,其复杂度可以根据机器人执行的任务而改变。

概念

  • SLAM 指同时估计装有机载传感器的机器人的状态,以及构建传感器感知的环境模型。 简单的说是:是让Robot在估计自身位姿的同时建立地图
  • 位姿 位置和方向,但也可能包含其他参数,如速度、传感器偏、校准参数等
  • 回环检测 使用地图,例如一组可识别的地标,机器人可以通过重新访问已知区域来“重置”其定位错误
  • VIN 视觉惯性导航,可认为是一个退化的SLAM系统,其中舍弃回环检测或位置识别模块
  • 感知混叠 不同的感知输入导致相同的传感器信号
  • 因子图 用于推断变量之间相互依赖的图模型
  • 数据关联 是将每次测量值与对应的状态进行关
  • 拓扑地图 一种保持点与线相对位置关系正确而不一定保持图形形状与面积、距离、方向正确的抽象地图

为什么需要SLAM

  1. 在受限的环境中运行,没有GPS、传感器性能不佳、无法人工构建地图等
  2. SLAM有回环检测,这使得robot能够理解环境的拓扑结构。对于里程计,将世界理解成一个"无穷的走廊",机器人会一直探索新的区域。回环闭合会告知机器人这个“走廊”与自己一直相交。
  3. 很多应用都内在或外在地需要一个全局一致性的地图,而SLAM是构建这样地图的关键

不需要SLAM的场景

  1. 人工构建好地图,比如工厂搬运机器人的导航地标
  2. Robot能够接收到健壮的GPS信号,或着有其他精准的定位方式

为什么需要建立地图

  1. 地图是其他任务的基础,比如路径规划
  2. 地图可以限制Robot位姿估计的误差,在没有地图的情况下,轨迹的推算会随着时间迅速漂移
  3. 建立地图可以进行回环检测,减少位姿估计的误差

SLAM问题解决了吗

SLAM是一个比较宽泛的话题,这个问题很好地定位在一个机器人/环境/性能的组合中。人们可以从以下几个方面来评估一个SLAM问题的成熟度:从这三个方面来看 1.Robot的参数 2.环境 3.性能要求。不同Robot的参数不一样,使用的环境不一样,对位姿或地图要求的精度也不一样,SLAM在一个场景下满足要求,但在另一个场景可能不满足

  1. Robot,运动类型(比如,运动状况,最大速度),可用的传感器(如,分辨率,采用率),可用的计算资源
  2. 环境,运行于二维平面或三维空间,自然路标或人工路标,动态元素的数量,对称的数量和感知混淆的风险
  3. 性能要求,机器人状态估计中的期望精度,环境表示的精度和类型(比如,基于路标的或稠密云点),成功的概率(满足精度边界的测试结果的百分比),估计延时,最大运行时间,最大地图面积

SLAM系统的构

SLAM结构

这是典的SLAM系统,包括两个主要部分:前端和后端。 前端将传感器数据抽象为可进行估计的模型,而后端则对前端生成的抽象数据进行推理。前端计算机视觉、信号处理等其他研究领域交叉;后端是几何、图论、优化和概率估计的组合

前端

在机器人的实际应用中,可能很难像最大后验估计中的那样,将传感器测量数据直接写作为状态分析的函数,出于这种原因,在SLAM后端之前,通常都有一个模块,前端,目的是从传感器数据中提取相关特征

前端部分还负责将观测值和环境中特定的路标关联(比如,3D云点):这就是所谓的数据关联。数据关联模块是将每个观测值 Z k Z_k Zk和一个未知变量子集 X k X_k Xk进行关联,比如 Z k = h k ( X k ) + ε k Z_k=h_k(X_k)+\varepsilon_k Zk=hk(Xk)+εk。最后,前端还可以为非线性优化中的变量提供一个初始估计

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

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

后端优化是在前端完成特征点提取匹配后进行优化,目的是希望得到更加准确的估计相机位姿

当前SLAM系统标准的形成来源于Lu和Milios的论,它是Gutmann和Konolig等人研究的后续。所有这些方法形成了SLAM最大后验估计问题,经常会使用因子图公式推导变量之间的依赖关系

MAP推导及求解过程见知乎

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

最大后验估计已经被证明是比原来的基于非线性滤波方法对SLAM更精确更有效,但有些基于EKF的SLAM系统也具有很好的性能。基于非线性滤波方法,EKF的线性点比较精确,采用滑动窗口滤波,EKF可以需要考虑到潜在的不一致性。所以,滤波方法和最大后验估计之间的性能差异变得越来越小

SLAM地图选择

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

SLAM 系统的鲁棒性

鲁棒性分为两点来讨论,在这里主要讨论算法鲁棒性

  1. 算法鲁棒性,SLAM算法的局限造成的,比如,很难处理极端动态环境
  2. 硬件可靠性,主要由于传感器和机器老化

算法鲁棒性

  1. 数据关联问题,如在基于特征的视觉SLAM系统中,它将每个特征和特定的路标关联,这样可能会出现感知混叠问题,不同的传感器输入产生相同的感知信,如果数据关联构建了错误的测量-状态匹配,后端可能会出现错误估计
  2. 环境的变换,如季节、光照、物体增加消失或者移动等。常规SLAM认为世界是静态的,构建的地图模型后不会更改,当环境出现改变时,Robot感知到的环境与构建的环境不匹配,SLAM算法失效
  3. 在恶劣场景使用SLAM,比如水下场景,可见范围有限,一些传感器无法使用等

提高算法鲁棒的方法

短期数据关联是最容易处理的:如果传感器的数据采样率相对比较快,比机器人的运动快,对相同3D路标跟踪特征就比较容易。前端进行长期数据关联的同时需要闭合回路的检测和校验,因此更具有挑战性。用当前的观测值中提取的特征暴力匹配之前所有观测值提取的特征时不切实际

  1. 词袋模型,它可以量化特征空间和进行更有效的搜索来避免这种难题。词袋模型可以设计成层级式字典树,可以在大范围数据集中有效查找。基于词袋模型的技术在处理单任务闭环回路检测中表现出非常可靠的性能
  2. 回环闭合校验,由附加的几何验证步骤来确认回环闭合的质量。在基于视觉的应用中,随机抽样一致性算法 RANSAC常用来做几何校验和离群点去除;在基于激光的方法中,可以通过确认当前激光扫描和已经扫描好的地图的匹配程来校验回环闭合
  3. 针对错误的回环闭合,让SLAM后端弹性处理离群的观测值,1.基于回环闭合的有效性进行推导,回环闭合通过优化过程中的残差进行约束。2.是检测离群点先验信息,即在优化之前,识别不正确的回环闭合
  4. 动态环境,1.SLAM系统舍弃环境中的动态目标,或将动态元素作为模型的一部分。2.必须构建模型处理永久或短暂的环境变化,理解如何和什么时候相应地更新地图。当前的SLAM系统处理动态环境,要么维护同一位置的多个与时间相关地图,要么通过一些时变参数来参数化表示地图

待解决的问题

  1. 失效保护SLAM和恢复机制,尽管对SLAM后端进行了处理,当前SLAM方案在出现离群点时仍然比较脆弱,这主要因为鲁棒的SLAM是基于非凸集迭代优化。这样会有两个结果:首先,离群点去除的结果依赖于优化中初始估计的质量;其次,系统天生脆弱:任何一个离群点都会降低估计的质量,它又会反过来降低系统分辨离群点的能力。一个理想的SLAM系统应该是具有失效保护和失效侦测的功能,比如,系统必须能检测到即将发生的失效问题(比如:由于离群点或者硬件老化),还要具有恢复机制重建之前的操作任务
  2. 硬件鲁棒性,硬件出现问题会影响SLAM系统,如传感器的观测质量(噪声和偏移)不能匹配后端的噪声模型,将会导致较差的后端估计结果,我们如何检测不良传感器的运行状态?如何相应地调整传感器噪声数据统计模型(协方差,偏移)
  3. 度量重定位(Metric Relocalization),与基于特征方法不同,基于外观(appearance-based)的方法能够在白天和黑夜之间或者不同季节之间实现loop closure。对于Metric Relocalization(比如对之前构建的地图估计相对位姿),基于特征的方法可能更规范化,但无法扩展到这样的环境中。如果视觉变成了针对不同应用的传感器的选择,回环检测变成了传感器位置匹配问题,也可以研究SLAM问题所需的其他信息和传感器。见1315
  4. 时间变换和形变地图(DeformableMaps),主流SLAM方法假设世界是静态的,而真实世界有环境动态改变和物体的形变,所以SLAM运行的场景并不是一成不变的。一个理想的SLAM方案应该能够处理环境中的动态因素,包括非固定部分,能够长时间工作生成所有地形地图,并能实时处理这些工作
  5. 自动参数调整,SLAM系统(特别是数据关联模块)需要更多的参数调整,在给定的场景中正确地工作。这些参数,包括控制特征匹配的阈值,RANSAC参数,还有决定何时添加新的因子到因子图中或何时触发回环闭合算法搜索匹配。如果SLAM需在任意场景中使用,那么就需要考虑自动参数调整的方法

SLAM扩展性

SLAM的应用场景多种多样,如室内机器人,长时间工作的清洁机器人,农业机器人等,对于这样的应用,SLAM因子图会随着运行时间的增加可能没有边界,不停地探索新的位置。在实际应用中,由于机器人资源限制,计算时间和存储容量有限,因此,设计不受计算时间和存储容量限制的SLAM方法非常重要

主要考虑两种方法减少因子图优化的复杂性:

  1. 稀疏方法,为了内存和计算效率,会损失一些信息
  2. 并行和多机器人方法,将计算任务分配到多个机器人/处理器上。

节点和边缘稀疏性,减少添加到图的节点的数量,或者剔除信息量少的节点

并行SLAM,SLAM并行算法用多个处理器计算因子。主要是将因子图分解成几个不同的子图,局部优化每一个子图,再加上一个全局优化,该算法通常称为局部构图算法

分布式多机器人SLAM,大场景建图的方法多采用多机器人SLAM,将场景分成小区域,每个地图用不同的机器人。这种方法有两个不确定因素:中心计算型,即机器人构建子地图,将局部信息传递给中心服务器用于执行推断,另一种是分散式的,没有中心数据融合,机器人利用本地通信在全局地图上达到一致
高斯消元法 高斯消元法在SLAM领域中很常见,但存在两个缺点,1.机器人之间的边缘是稠密的,通信代价是隔离器数量的二次方,这就需要采用稀疏方法来减少通信代价;2.高斯消元法运行于线性的问题,因此像DDF-SAM这样的方法需要良好的线性化点和复杂的统计(bookkeeping),以确保线性化点在机器人之间的一致性

待解决的问题

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

地图维护 很少有人关心,地图如何在SLAM的长期运行中存储。数据放在云端、用点云或体积映射进行原始数据表示很耗费内存,类似的,为视觉SLAM存储特性描述符变得很麻烦。现有的方法是对已知地图进行压缩,以及高效率内存的稠密重建

学习、遗忘和记忆, 在长期建图中多久更新一次地图中所包含的信息,以及如何确定这些信息何时过时并可以丢弃。

鲁棒的分布式建图,离群点的去除在单一机器人SLAM中已经实现,多机器人SLAM的领域中很少关注离群点的问题。处理虚假的观测值尤为困难,主要有两个面的原因。 首先,机器人可能无法共享公共参考帧,导致难以检测和去除错误的回环闭合。其次,在分布式配置中,机器人必须要从每个部分(partial)和局部信息中检测出离群点。

平台资源有限,如何将现有SLAM算法应用于计算资源有限的机器人平台。当机器人平台不同的时候,比如手机、微型无人机、机器昆虫等,许多SLAM算法无法在这些平台上运行,希望可以有好的方法选择计算成本而放弃精度。类似的问题也出现在多机器人设置中:如何在带宽资源有限和通信不稳定的情况下确保多机器队伍可靠地运行

度量地图模型(METRIC MAP MODELS)

度量表示方法(metric map)是一个环境几何结构的符号表示。为SLAM选择和适度度量标准会影响很多领域,包括长时间导航,与环境交互,人机交互。

2-D地图建模,基于地标(landmark-based)的地图和网格地图(occupancy grid maps)。 前者将环境建模为一个稀疏的地标集,后者将环境离散到单元格中,并为每个单元格分配一个占用概率。IEEE RAS地图数据表示工作组发布了机器人二维地图的标准,解决了二维情况下这些表示的标准化问题; 该标准定义了平面环境(外加拓扑映射)的两种主要度量表示,以便于数据交换、基准测试和技术转移
3-D地图建模

  1. 基于地标(landmark)的稀疏表示,SLAM方法大多将场景表示为一组稀疏的三维地标,对应于环境中的判别特征(如线、角),这样表示背景是假设是地标是可区分的,即传感器数据测量地标的一些几何信息,并提供一个描述符,建立一个(可能不确定)每个测量值与相应地标之间的数据关联
  2. 低层次的原始密集表示(Low-Level Raw Dense Representations),密集表示法试图提供三维几何的高分辨率模型; 这些模型更适合于避障,或者进行可视化和渲染。虽然这些模型看起来不错,当数据量太大时就会变得很麻烦。 此外,他们给出了一个低层次的几何描述,忽略了障碍的拓扑结构
  3. 边界和空间分割稠密表示边界表示超出了低级基元的非结构化集合(点),并试图显式地表示表面(或边界)和体积。这些表示形式更适合于诸如运动或步法规划、避障、操纵和其他基于物理的推理(如接触推理)等任务。边界表示(b-reps)通过外观边界定义了3D物体。简单的边界表示是基于平面的模型,用于构建地图。空间分割表示将三维对象定义为一系列连续的非相交原语(primitives)。 最流行的空间分割表示是空间占用枚举(spatial-occupancy enumeration),它将三维空间分解为相同的立方体(体素),并排列在规则的三维网格中。更有效的空间分割方法有八叉树、多边形地图八叉树、二值空间分割树。在机器人应用中,八叉树用于3D建图,然而常用的是将栅格地图作为空间分割表示的概率变量。在三维环境中没有移动障碍物时,可以采用2.5D立体图。
  4. 基于对象的高级表示,虽然点云和边界表示目前在密集映射领域占据主导地位,但我们预计更高级别的表示,包括对象和实体形状,将在SLAM的未来发挥关键作用。 实体表示显式地编码了真实对象是三维而不是一维的事实(例如, 、点)或二维(曲面)。 将对象建模为实体形状允许将物理概念(例如体积和质量)与每个对象关联起来,

基于特征的方法和特征图法

方法的选取通常取决于具体任务和性能要求比如,时间,精度,失效率等

特征点法,这种系统依赖于环境中特征的可用性、依赖于检测和匹配阈值, 然而大多数特征检测器都是针对速度而不是精度进行优化的

直接法,直接方法利用原始像素信息,而稠密直接方法则利用图像中的所有信息,即使是梯度较小的区域; 因此,在纹理较差、失焦和运动模糊的场景中,也优于基于特征的方。 但是,它们需要高计算能力(gpu)来实现实时性。 此外,目前只能一个一个地估计,如何联合估计稠密结构和运动仍是一个有待解决的问题。为了避免基于特征的方法的缺点,有两种方法可供选择。 半感知方法通过只利用梯度较强的像素(即 ,边; 半直接方法同时利用稀疏特征(如角或边)和直接方法,被证明是最有效的; 此外,由于它们依赖于稀疏特性,因此允许对结构和运动进行联合估计。

基于对象的高级表示
点云和边界表示目前在稠密建图领域占有主要地位,但我们预计更高级别的表示,包括对象和实体形状,将在SLAM的未来发挥关键作用,实体表示显式了对象是三维而不是一维点或二维曲面的事实。 将对象建模为实体形状允许将物理概念(例如体积和质量)与每个对象关联起来,这对于必须与世界交互的机器人来说无疑是非常重要的
实体对象表示

  1. 参数化的原始实例化,依赖于对象族(如圆柱体、球体)的定义。 对于每个家族,都定义一组参数(例如,半径、高度),这些参数惟一地标识家族的成员(或实例
  2. 扫描表示:将实体定义为二维或三维物体沿空间轨迹的扫描。 典型的扫描表示包括平移扫描(或挤压)和旋转扫描,这种表现方式似乎特别适合于对场景中被遮挡的部分进行推理。
  3. 构造立体几何:通过原语之间的布尔运算定义复杂立体[209]。 对象存储为树,其中叶子是基本类型,边表示操作。 这种表示法可以对相当复杂的几何图形进行建模。

待解决的问题

  1. SLAM中的高水平表达表示:点云或TSDF的缺点, 1.浪费内存。2.模型变得复杂。在SLAM中使用更高级别的表示有三个优点1.压缩表示有利于构建大规模地图,2.高级表示提供高级的对象的几何特性描述,这有利于位姿识别、语义理解和人机交互等,3.使用丰富的3-D表示可以与已存在的现代建筑建设和管理标准进行交互。但目前为止,除了点云、网格模型、surfels模型和TSDFs之外,没有任何SLAM技术可以构建更高级别的表示
  2. 最优表示:尽管关于三维几何的不同表示的文献相对较多,但很少有著作关注于理解应该用哪些标准来指导特定表示的选择。这些属性中我们发现:域(真正的对象的集合可以表示),一致性(“大小”表示的存储和传输),易于创建(在机器人这是“推理”的建设所需时间表示),和功效在应用程序的上下文中(这取决于任务的表示使用)。 因此,“最优”表示是能够预先生成给定任务,同时又简洁且易于创建的表示。
  3. 自动自适应表示,传统上,表示的选择被委托给设计系统的机器人专家,首先,选择合适的表示方法是一个耗时的工作,需要专业级知识。其次,缺乏弹性:一旦系统确定后,就不能改变;我们希望机器人使用或多或少复杂的表示,这取决于任务和环境的复杂性。 优化表示的自动设计将对长期导航产生较大影响。

语义与拓扑SLAM

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

语义SLAM:概念的结构和细节

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

1)语义概念的层次/细节:对于一个给定的机器人任务,例如“从a房间到B房间”,粗略的类别(房间、走廊、门)就足以成功执行,而对于其他任务,例如“拿起一个茶杯”,则需要更精细的类别(桌子、茶杯、玻璃)。
2)语义概念的组织:语义概念不是排他的。 甚至,一个实体可以拥有无限数量的属性或概念。 椅子可以是“可移动的”和“可坐下的”; 餐桌可以是“可移动的”和“不固定的”。 “虽然椅子和桌子都是家具,但它们共享着可移动的财产,但可用性不同。 扁平化或层次化的组织(共享或不共享某些属性)必须被设计来处理这种概念的多样性。

语义地图包括将语义概念与机器人环境中的几何实体相关联。 近年来,人们认识到纯几何映射的局限性,并在环境语义地图方面开展了大量的工作,以增强机器人的自主性
有三种主要方法可以实现语义建图,并将语义概念分配给数据

  1. SLAM Helps Semantics,早期的研究将经典SLAM系统构建的度量图分割成语义概念的直接方法开始。比如利用二维激光扫描构建几何地图,然后通过离线的关联马尔可夫网络融合每个机器人姿态的分类语义位置。
  2. Semantics Helps SLAM,第一个语义地图出现后不久,另一个趋势开始于利用已知的语义类或对象。 这个想法是,如果我们能够识别出地图上的物体或其他元素,那么我们就可以利用我们对它们几何形状的先验知识来改进对地图的估计。
  3. Joint SLAM and Semantics Inference,具有计算机视觉和机器人专业知识的研究人员发现,他们可以在关节公式中执行单目SLAM和地图分割。

待解决的问题

语义建图不只是一个分类问题,给定一些先验知识,机器人应该能够推断新的方法和他们的语义表示,也就是说,它应该可以发现环境中的新物体或者新的分类,与其他机器人和人互动的时候了解到新的属性,对环境中缓慢的或突然的变化,采取相应的表示方法

基于语义的推理作为人类,语义表示可以让我们简化并且加速对环境的推理,当然精确的几何度量表示可能会花费我们一些时间。目前,这并不适合机器人。机器人可以处理几何度量表示但他们真的无法使用语音方法。我们的机器人目前没法有效地、高效率的定位,用环境中的语义信息持续建图(分类,关系和属性)

SLAM中的新理论工具

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

一般性,保障,验证:第一个问题是现有结果的一般性问题。在位姿图优化中提出对全局方案的保障和验证的结论。这些结论是否可以一般化到任意因子图?
弱对偶或强对偶?论文45,46,表明强对偶可以保证SLAM问题全局解决;但他们提供了无法实际应用的证据表明大部分为的强对偶遇到了实际应用上的问题。卓有成效的问题处理方法是在强对偶下构建一个先验条件。
对离群点的适应能力:第三个问题考虑的是出现不合格观测值得情况下的估计问题。尽管最近的结论对位姿图优化提供了强有力的支撑,但没有结论保证出现离群点的情况。

主动SLAM

上面所描述的SLAM问题仍然是机器人领域被动估计问题,比如,机器人执行SLAM是基于给定的传感器数据,没有自由主动地收集数据。接下来讨论主动SLAM,即如何根据机器人的运动增强建图和定位的结果。控制机器人运动问题的主要目的是为了将机器人地图表示和定位问题的不确定性最小化

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

主动SLAM的步

  1. 机器人识别可能要探索或利用的位置,即 ,以其目前对地图的估计
  2. 机器人计算访问每个有利位置的效用,并选择效用最高的动作
  3. 机器人执行所选择的动作,并决定是否需要继续或终止任务

优势点选择,理想情况下,执行主动SLAM算法的机器人应该评估机器人和地图空间中的每一个可能动作,但评估的计算复杂度随着搜索空间的增大呈指数级增长,在实际应用中难以计算,而且目前这些方法只能保证收敛到局部最优策略
计算行动的效用,理想情况下,计算机器人给定行动的效用可以根据机器人位姿和地图推断后续步骤的变化,对后面可控制的行动和待测量值有重要作用。如果后验信息已知,可以用信息理论方法,信息增益,可以用于给不同的行动排序。然而,计算这种可能性,通常情况下计算量是无法控制的。实际情况下,只能近似估计。早期的工作考虑了地图的不确定性,机器人独立或条件独立。大部分方法将效用定义为测量机器人几何信息和地图不确定性地线性组合。这种方法的一个不利因素是两种不确定性的数值无法比较,比如,地图的不确定性的幅度经常超过机器人,所以需要手动调整纠正。处理这个问题的方法是粒子滤波SLAM,位姿图优化
最优实验设计理论(TOED),也对行动的效用起作用。在最优试验设计(TOED)中,每次行动都是随机设计的,可以通过所谓的优化准则使用关联的协方差矩阵进行比较
执行行动或终止探路,执行行动通常都是简单的任务,使用运动规划中构建好的方法,决定探路任务是否完整,目前是一个未解决的问题,将在后面的段落里面讨论

待解决的问题

后续状态的快速、准确的预测,机器人的主动SLAM每一个行动都应该帮助减少地图中的不确定性,增强定位的精度;为了达到这个目的,机器人必须能够预测后续行动对地图的影响和机器人的定位。在任何时间约束下都必须快速获得预测结果,精确地支持决策过程
截止时间,什么时候可以不在使用主动SLAM了?主动SLAM计算代价昂贵:因此很自然的问题是我们什么时候可以不用主动SLAM了而将主要资源用在其他任务上。平衡主动SLAM的决策和外部任务非常关键,其实在实际应用中,主动SLAM只是为了完成预定的任务

性能保证,另外一个重要的方向是为主动SLAM和最优方法寻找数学方法上的保障。既然无法完全解决问题,就需要有近似算法可以接近所希望的性能

SLAM 中的新传感器

出了新的算法之外,新传感器的出现也是促进SLAM发展的一大因素
深度相机,发光深度相机不是新的传感器,但随着微软Kinect游戏机的问世,它们在2010年成为了普通硬件。 它们根据不同的原理运行,如结构光、飞行时间、干涉测量或编码孔径。 结构光摄像机采用三角测量法工作; 因此,它们的精度受到相机和模式投影仪(结构光)之间距离的限制。 相比之下,飞行时间(ToF)相机的精度只取决于ToF测量装置; 因此,它们提供了最高的测距精度(几米的亚毫米)
光场相机,与标准相机只记录每个像素的光强不同,光场相机(也称为全光相机)同时记录光线的强度和方。流行的光场相机是在传统的图像传感器前放置一组微透镜来感知亮度、颜色和方向信息
事件触发相机,比如动态视觉相机(DVS)或异步图像传感器(ATIS)正在改变基于图像的感知领域。与标准的基于图像帧的相机不同,获得固定帧率的整幅图像,事件触发相机只发送某个运动改变场景的时刻的局部像素级别的变化

待解决的问题

有源测距相机 的主要瓶颈是最大距离和与其他光源(如太阳光)的干扰; 然而,这些弱点可以通过释放更多的光功率来改善
基于事件的相机 由于单个事件不能携带足够的信息进行状态估计,而且由于一个事件摄像机平均每秒生成100,000个事件,由于状态空间的快速增长,在单个事件的离散时间内进行SLAM会变得非常困难

其他相关问题

其他传感器,SLAM的研究大多集中在距离和视觉传感器上,人类或动物能够通过触觉、触觉、声音、磁场和热刺激来提高它们的感知能力,但是这些替代传感器的研究还是视觉传感器的形式SLAM的九牛一毛
深度学习,研究证明,通过学习深度神经网络,可以将移动机器人直接从原始图像对获取的两幅图像之间的帧间位姿,从而有效替代视觉里程计

待解决的问题

我们在这里强调了SLAM的一系列未来发展方向,在这些方向上,我们相信机器学习和更具体地说,深度学习将具有影响力,或者SLAM应用程序将为深度学习带来挑战
感知工具,一些已经超出现有计算机视觉算法能力范围的感知问题现在可以解决了
实际部署,深度学习依赖于强有力的计算机硬件,如何将深度学习模型移植到嵌入设备并高效运行存在很大的困难
在线和终身学习,SLAM系统通常在一个开放的世界中运行,在这个世界中可以连续观察到新的对象和场景。 但是到目前为止,深度网络通常是在封闭的场景中训练的,固定数量的对象类,如何对一个新的物体进行识别是需要考虑的
引导(bootstrapping),场景的先验信息是SLAM性能提升的关键,深度学习能够提取这些先验知识,用于特定的任务,比如估计场景标签或场景深度,但如何最好地提取和利用这些信息是一个重大的开放性问题

总结

本文介绍了SLAM近30年的发展过程,要完全看懂这篇论文需要一定的SLAM相关知识。本文先提出一系列问题说明SLAM作用和发展SLAM的必要性。接着介绍SLAM的结构,SLAM系统主要由前端和后端两大部分组成,前端主要是从观测数据中提取特征并输入到后端,前端有两个主要的模块组成,短期数据关联模块和长期数据关联模块,短期数据关联模块短时间间隔内的数据,比如每帧之间的特征点进行关联;长期数据关联模块将新的观测值关联到旧的路标上,主要用于回环检测。后端主要是对估计的位姿进行优化,达到降低位姿估计误差的目的。然后介绍SLAM系统的鲁棒性,主要从算法和硬件两个方面来介绍,并提出了一些策略来提高算法的鲁棒性。SLAM系统的伸缩性方面主要介绍如何将SLAM应用于不同类型的Agent,比如有些计算资源受限的平台。这里提出了两个方法,分别是稀疏方法和并行的多机器人方法,但与此同时也存在一些问题。地图度量问题也是SLAM中的重要一环,不同类型的地图表示对于SLAM系统的复杂度和性能大相径庭,针对不同的应用场景需要选择不同的地图模型,但现阶段还没有一个通用的地图模型适用与所有的场景。同样的,语义和拓扑SLAM也是两个重要的SLAM研究领域,语义SLAM提供了一个哲学层面的任务选择策略,可以让机器人变得更加智能,但是语义地图建图和语义推理是两个亟待研究的问题。主动SLAM可以自主运动以增强定位和建图的精度,但是也存在无法连续预测后续状态以及性能问题。最后一部分介绍SLAM系统中使用的新传感器,如深度相机、广场相机和时间触发相机,但是这些新的传感器存在一些缺陷,导致没有大规模的应用。最后,深度学习在图像分类和目标检测等领域取得惊人的成绩,有研究着将深度学习的方法运用于SLAM之中,并取得了不错的效果,但是深度学习只能在某些特定的点辅助SLAM,现阶段还不能完全代替SLAM技术,目前SLAM还是传统的基于数学表示的方法为主,但深度学习是一个需要研究的方面。

里面有些内容参考泡泡机器人的翻译,侵删。

萎缩性胃炎和肠黏膜炎是十分常见的胃肠道疾病,两者的同时诊断并不罕见。萎缩性胃炎是指胃黏膜发生变性、萎缩和炎症,常由幽门螺杆菌感染、自身免疫和营养不良等因素引起。肠黏膜炎则是指肠道黏膜受到炎症的损害,常见的病因包括感染、炎症性肠病和放射治疗等。 同时诊断萎缩性胃炎和肠黏膜炎可以通过不同的方法。首先,临床症状可以给出一些线索。常见的症状包括腹痛、腹胀、消化不良、恶心、呕吐和便秘症状等。然后,医生可能会建议进行内镜检查和活检。内镜检查可以直接观察到胃黏膜和肠黏膜的变化。活检可以通过组织病理学的分析,确诊是否存在胃黏膜和肠黏膜炎症。 此外,医生还可能会进行其他检查以确诊。例如,通过血液检查可以检测营养不良,幽门螺杆菌感染和自身免疫等指标。还可以进行呼气测试来检测幽门螺杆菌感染。消化道造影能够观察消化道的结构和功能。综合以上检查结果,医生可以给出同时诊断萎缩性胃炎和肠黏膜炎的结论。 治疗方案将根据具体情况而定。对于萎缩性胃炎,一般的治疗包括抗幽门螺杆菌治疗、补充胃液和消化酶等。对于肠黏膜炎,治疗包括控制炎症、促进肠道愈合、改善营养状况和控制并发症等措施。此外,合理的饮食和生活习惯也是治疗的重要方面。 饮食上,应尽量避免辛辣、腌制和油腻食物,增加蔬菜、水果和纤维含量高的食物。生活习惯上,要保持规律的饮食和作息时间,避免过度疲劳和精神压力。 综上所述,同时诊断萎缩性胃炎和肠黏膜炎可以通过临床症状、内镜检查、活检和其他相关检查来判断。治疗方案则根据具体情况而定,包括药物治疗、饮食调整和生活习惯改变等。及早发现和治疗,可以提高疾病的预后和生活质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值