本文总结《Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age》核心观点
一、导言
1.1 SLAM 的产生——原因
- 建图需求:图像支持路径规划(path planning)等其他任务,可进行闭环(loop closure)检测
- GPS 无法在室内使用
1.2 SLAM 的发展过程
1.2.1 古典时代(Classical Age)
- 发明主要概率公式,包括基于 EKF、粒子滤波器和最大似然估计的方法
1.2.2 算法分析时代(Algorithmic-analysis Age)
- 研究 SLAM 基本属性,包括观察性,收敛性、一致性、稀疏性
- 开发主要开源(open-source) SLAM 库
1.2.3 近期研究
当前 SLAM 特点:前端中多领域交汇;后端中几何+图论+优化+概率估计
回答两个问题:
-
自主机器人需要 SLAM 吗?
- 视觉惯性导航(VIN)可视为简化的 SLAM,可在无 GPS 时与传感器融合
- 里程计(odometry)忽略闭合,会无限探索新区域。闭合可找到两点间的最短路径
- 度量信息很有用
- 有些应用需要全局一致的三维重建(3D reconstruction)
-
SLAM 解决了吗?—评估 SLAM 问题的成熟度
- 评估指标:机器人(运动类型,可用传感器,可用计算资源(computational resources));环境(感知混叠(perceptual aliasing)的风险);性能(精度、成功率、延迟)
- 优势:提升了精度、鲁棒性
- 缺点:高速时失效,性能不够
1.2.4 健壮感知时代(Robust-perception Age)— SLAM 特性
- 性能强:低故障,可自调整
- 高层次理解:几何重构+对环境高层次理解(高层次几何、语义)
- 资源意识:可根据可用资源调整负载
- 任务驱动感知:过滤相关感知信息,生成自适应(adaptive)地图
二、现代 SLAM 系统剖析
2.1 MAP(Maximum a Posteriori) 与后端
- 将 SLAM 公式化为最大的后验估计问题,用因子图(factor graphs)推理变量间的依赖性
- 线性高斯下,卡尔曼滤波和 MAP 估计相同
2.2 传感器相关的前端
- 问题:传感器数据很难函数化
- 功能:提取特征点,数据关联(data association,将测量与地标关联),为非线性优化提供初始值
三、长期自治( LONG-TERM AUTONOMY) I:健壮性
问题
- 算法:无法处理快速变化的环境,由数据关联(将度量与所指状态关联)导致
- 硬件:传感器或执行器性能下降
- 感知混叠:不同输入导致传感器特征相同
3.1 简要调查
3.1.1 错误数据关联
现有成果
- 词袋模型(Bag-of-words models):解决单会话循环检测任务,但无法处理照明变化
- 匹配序列(matching sequences):统一视觉外观表示形式,或使用空间和外观信息
- 回环检测:用 RANSAC 几何检验、剔除离群值;基于激光,扫描匹配产生的误差
3.1.2 动态环境
两个挑战
- 对环境进行检测、丢弃、跟踪更改
- 对永久变化建模并更新地图
3.2 开放性问题
3.2.1 故障安全 SLAM 和恢复
- 有异常值时脆弱:SLAM 技术基于非凸成本(nonconvex costs)的迭代优化(iterative optimization);离群值(outliers)会降低估算质量
- SLAM 应该有发现故障并恢复的能力
3.2.2 硬件故障的鲁棒性
- 传感器精度降低导致与后端噪声模型不匹配,估算不准
- 如何检测传感器的降级,解决传感器冲突
3.2.3 测量重定位(Metric Relocalization)
- 基于外观的方法回路闭合本质上是拓扑结构;特征描述符(feature descriptors)的不变性(invariance)低
- 解决思路:用一个传感器模态进行映射,并用不同传感器模态在同一地图上定位
3.2.4 时变和变形地图(Time Varying and Deformable Maps)
- 如何构建大规模非刚性(nonrigidity)地图
3.2.5 自动调整参数(Automatic Parameter Tuning)
- 开发自动调参的方法
四、长期自治 II:可扩展性
问题:
- 大区域长时间使用时,因子图会无限增长,侵占计算机资源
- 求解器耗时过多
- 重新访问某点时,因子图优化效率下降,损害图稀疏性结构
4.1 简要调查
4.1.1 节点和边缘稀疏化
减少节点数量
- 减少添加节点数量或修剪较少的“信息性”节点来解决可伸缩性
- 设计方法使变量数量仅随空间大小增加,不随时间增加
- 已有成果:通用线性约束(GLC)+非线性图稀疏化(NGS)方法
连续时间轨迹估计——已有成果
- 用三次样条(cubic-splines)表示连续轨迹
- 批处理优化公式中使用基础函数近似轨迹
- 滑动窗口 B 样条(Sliding-window B-spline)公式;连续时间 SLAM 公式
- 连续 3D 扫描匹配公式扩大了大规模 SLAM
4.1.2 核心外(并行)SLAM( Out-of-Core (Parallel))
- 已有成果:子映射算法(assubmapping algorithms,将因子图分割,通过每个子图的局部和全局优化来优化整体图)
4.1.3 分布式多机器人(Distributed Multirobot) SLAM
- 部署多个 SLAM,划分场景
- 分类:集中式变体(centralized,有中央站负责推理);分散式变体(decentralized,无中央站,本地沟通)
4.1.4 高斯消除(elimination)——已有成果
- 机器人间交换边界密集,应使用稀疏化技术。Gauss–Seidel 方法能将分隔符(separators)时间复杂度从 O(n²) 降为线性
- 对问题的线性化版本执行了高斯消除,DDF-SAM 需要良好的线性化点和复杂的簿记功能(bookkeeping),确保机器上线性化点一致
4.2 开放性问题
4.2.1 地图表示
- 如何在长期运行时存储地图(原始方式浪费内存)
- 针对压缩(compressed)的已知图进行定位;针对内存进行密集重建
4.2.2 学习,遗忘和记忆
- 多久更新一次地图信息,如何确定信息是否过时
4.2.3 鲁棒的分布式映射(Robust Distributed Mapping)
- 问题:机器人参考系不同,闭环检测变难;如何从局部信息检测异常值
- 已有成果:融合信息前用会合(rendezvous)策略验证位置假设;杂散(spurious)测量中建立通用参考系
4.2.4 资源受限的平台
- 如何使SLAM算法适应资源受限的平台
- 设计“版本控制”方法
五、陈述 I:度量(METRIC)地图模型
- 对几何建模;选择合适的度量表示形式
- 度量:编码环境几何形状
- 二维建模:地标地图(landmark-based,将环境建模为稀疏的地标集)和占用网格图(occupancy grid maps,将单元中的环境离散化)。二维地图的标准已发布
- 3D 建模在起步阶段
5.1 基于地标的稀疏表示
- 大多数 SLAM 将场景表示为一组稀疏 3D 地标,对应环境中的判别特征
- 传感器数据测量地标几何特征,提供描述符,在每个测量值和对应地标间建立数据关联
5.2 低层原始密度(Low-Level Raw Dense)表示
- 建立 3D 几何的高分辨率模型,更适合于避障(obstacle avoidance)、可视化和渲染(rendering);通过点云和多边形汤(polygon soup)描述 3D 几何形状
- 与直接法结合,从物体强度值(intensity values)估算轨迹和 3D 模型
- 冲浪图(surfel maps):几何图形编码为一组磁盘(disks),对几何结构进行低级描述
5.3 边界和空间分区密集(Boundary and Spatial-Partitioning Dense)表示
- 显式表示曲面和体积,更适合导航、避障及基于物理的推理
5.3.1 边界表示
-
根据表面边界定义 3D 对象
-
基于平面、曲线,表面网格模型(surface mesh models),隐式表面(implicit surface)表示形式,TSDF(truncated signed-distance function)表示
5.3.2 空间分区
- 表示将 3D 对象定义为连续非相交基元(contiguous nonintersecting primitives)的集合
- 空间占用枚举(spatial-occupancy enumeration):3D 空间分解为以规则 3D 网格排列的相同多维数据集
- 八叉树(octree),多边形地图八叉树和二进制空间分区树()
5.3.3 特征法(Feature-based )与直接法
- 特征法:已成熟,系统取决于特征可用性,依赖检测和匹配阈值(matching thresholds),特征检测器(feature detectors)只优化速度(非精度)
- 直接法:处理原始像素,密集直接法可利用图像中所有信息,适用恶劣场景。需要 GPU 实现实时
5.3.4 如何共同估计密集的结构和运动
- 半密集(Semidense)法:只利用强梯度(strong gradients)像素
- 半直接(semidirect)法:同时利用稀疏特征和直接法,可联合估计结构和运动
5.4 基于对象的高级表示
- 将物理概念与每个对象相关联
5.4.1 参数化原始实例化(Parameterized Primitive Instancing)
- 对每个家族(families)定义一组参数,唯一标识家族成员。模型紧凑
5.4.2 扫描(Sweep)表示
- 实体定义为 2D/3D 对象沿空间轨迹的扫掠。适合在场景被遮挡部分进行推理
5.4.3 构造实体几何(Constructive Solid Geometry)
- 通过基元(primitives)间布尔运算定义复杂实体
- 对复杂几何图形建模
5.4.4 其他类型的表示形式
- CAD 中的基于特征;基于字典的表示形式;基于可负担性(affordancebased);生成和过程模型以及场景图
5.5 开放性问题
- 有关 SLAM 度量表示的问题
5.5.1 SLAM中的高级表达表示法
- 点云或 TSDF 建模 3D 几何:浪费内存,没有对 3D 几何形状的高级了解
- 方向:紧凑(compact)表示地图;提供对象几何的高级描述;使用丰富的 3D 表示形式
5.5.2 最佳表示(Optimal Representations)
- 执行给定任务所需的最小统计量,对噪声的最大不变性(invariance)
- 寻找一个通用但易于处理的框架,为任务选择最佳表示形式
5.5.3 自动自适应(Automatic Adaptive)表示
- 方向:机器人能根据任务和环境的复杂性使用不同复杂程度的表示形式
六、陈述 II:语义(SEMANTIC)地图模型
6.1 语义与拓扑 SLAM
- 拓扑映射丢弃度量信息,仅利用位置识别构建图形
6.2 语义 SLAM:概念的结构和细节
- 语义概念的级别/细节:有些任务需要更细的类别
- 语义概念的组织:设计共享或不共享某些属性的平面或分层组织处理每个物体的多种概念
6.3 简要调查
- 攻击语义映射,并给数据分配语义概念
6.3.1 SLAM 帮助语义学
- 将 SLAM 度量图分割为语义概念
- 二维激光(2D laser)扫描建立几何图,通过关联的马尔可夫(Markov)网络融合每个姿势的分类语义位置;从 RGB-D 序列构建 3D 图,进行离线对象分类;结合三层推理使用激光和相机构建语义图
6.3.2 语义学帮助 SLAM
- 使用几何形状相关知识改进地图
6.3.3 联合 SLAM 和语义推论
- 联合公式中执行单眼 SLAM 和地图分割
- 用曼哈顿世界假设(Manhattan world assumption)在室内主平面中分割地图;使用几何和语义属性联合估计相机参数、场景点和对象标签;语义分割和度量图后期融合
6.4 开放性问题
- 缺乏凝聚的表述
6.4.1 一致的语义-度量融合(Consistent Semantic-Metric Fusion)
- 如何持续融合语义信息多个源与不同时间的度量信息
- 将语义分类置信度(confidence)或不确定性(uncertainty)纳入因子图公式
6.4.2 语义映射远不止是一个分类问题
- 语义概念的专业化(负荷能力)
6.4.3 无知,意识和适应性(Ignorance, Awareness, and Adaptation)
- 如何发现新对象或类,学习新属性
6.4.4 基于语义的推理
- 如何使用语义高效定位和连续映射
七、SLAM 的新理论工具
- 为 SLAM 算法建立性能保证
- 理论的必要性:SLAM 算法难推广;可避免经验主义;突破算法界限,扩展实例集
- 讨论因子图优化方法
- 无先验会丢失部分属性
7.1 简要调查
- 迭代优化只能保证局部收敛
- 讨论了小姿态图优化问题中的极小值;研究了没有闭环时的误差增长;估计高斯-牛顿法收敛盆地(basin of convergence);旋转估计(rotation estimation)能以二维形式封闭求解
- 双重 SDP 法;凸松弛法(convex relaxation);先求解旋转,用所得值自动抽样法(bootstrap)非线性迭代
- 使用拉格朗日对偶性(duality)确定方案质量
7.2 开放性问题
7.2.1 通用性,保证和验证
- 解决方案可推广到任意因子图、噪声模型
7.2.2 弱还是强对偶
- 强对偶成立时,SLAM 可以全局解决;建立先验条件,如何判断强对偶性是否成立
- 方向:定义全局解决方案的应用程序领域,提供传感器设计和有源 SLAM 的基础见解
7.2.3 对异常值的恢复能力
- 如何解决异常值的全局技术和验证技术
八、主动(ACTIVE)SLAM
- 用动作改善地图和定位
- 控制机器人运动以最小化地图表示和定位的不确定性
8.1 简要调查
- 最优实验设计理论,根据预测的地图不确定性选择未来动作
- 信息理论:决策以信息获取的概念为指导
- 控制理论方法:模型预测控制、贝叶斯优化(Bayesian Optimization)、高斯信念传播(Gaussian beliefs propagation)
- 备选方案中选择最佳未来行动:当前地图中识别可探索位置(优势点);计算访问位置的效用,选效用最高的动作;执行并确定继续或终止
8.1.1 选择优势点(Vantage Points)
- 评估所有可能动作,搜索时间长;常使用基于边界的探索
- 成果:不确定性下连续空间规划法(只能局部收敛)、使用势场(potential fields,卷积技术计算熵并选择动作或用边界值问题解决方案)
8.1.2 计算动作的效用(Utility)
- 考虑未来动作和预测值,对姿势和地图上后验的演化进行推理。使用信息增益(information gain)对动作排名
- 量化机器人和地图不确定性指标的线性组合
- TOED 通过最优性标准使用协方差矩阵,来说明动作效用
8.1.3 执行动作或终止探索
- 执行动作很容易;决定探索任务是否完成比较难
8.2 开放性问题
8.2.1 快速准确预测未来状态
- 如何设计用于预测回路闭合及其效果的有效方法
- 预测未来行动影响的计算量大
- 预测状态涉及光谱(spectral)技术、深度学习
8.2.2 何时停止 SLAM
- 主动 SLAM 耗费资源;信息过多会出错
- 方向:面向任务的 TOED 不确定性指标可作为停止标准
8.2.3 性能保证
- 为主动 SLAM 和接近最佳策略寻找数学保证,需要具有明确性能边界的近似算法
九、新前沿:传感器与学习
9.1 SLAM 的新型和非常规传感器
- 由激光雷达和传统视觉传感器主导,有许多传感器可替代
9.1.1 简要调查
测距相机(Range cameras)
- ToF 范围精度最高
- 有光源,可在黑暗和无纹理的场景中工作
光场(Light-field)相机
- 使用放置在常规图像传感器前的微透镜(microlenses)阵列感应强度、颜色和方向
- 优势:深度估计,降噪、视频稳定、扰物隔离、镜面反射消除,光学元件的光圈(aperture)大和景深(depth of field)较宽
基于事件(Event-based)的摄像机
- 场景运动时发送局部像素级变化
- 优点:延迟小、频率高、功耗小,可在高速运动场景中使用
- 缺点:基于帧的计算机视觉算法不适用
- 基于事件的实时定位和映射算法,使得传入事件可异步更改估计状态
9.1.2 开放性问题
- 主动范围相机的瓶颈:最大范围和其他外部光源的干扰(可发出更多光功率弥补)
- 光场相机:可将运动估计问题表述为线性优化,运动估计更准确
- 传感器噪声的全面表征和传感器的非理想性。基于事件的摄像机使事件容易受到噪声的影响
其他传感器
- 触觉,嗅觉,声音,磁性和热刺激、WIFI 等
- 寻找选择算法和传感器以实现最佳性能的完整方法。最佳的传感架构可能具有多个传感器,要根据所需性能打开或通过不同物理原理测量同一现象的鲁棒性
9.2 深度学习
- 深度神经网络从原始图像直接获取帧间姿态
- 回归森林(regression forest)或深度卷积神经网络(deep convolutional neural network),仅输入图像,从单个视图估计深度(观察立体声对训练单视图深度估计的深度网络)
开放性问题
9.2.1 感知(Perceptual)工具
- 可解决计算机视觉算法无法解决的感知问题
- 地图语义更丰富
9.2.2 实际部署
- 如何在嵌入式系统中提供足够计算能力
- 可以研究更小更便宜的网络,考虑长期传感的影响
9.2.3 在线和终身学习
- 如何在单发或零发情况下利用深层网络的功能,实现持续学习
- 如何保证存在合适的数据集
9.2.4 自动抽样法(Bootstrapping)
- 深度学习如何针对特定任务提取先验
- 如何融合几何与深度网络:表征从深层网络得出的估计的不确定性