Life-Long SLAM大盘点 | 对全生命周期SLAM的汇总与思考发散

作者 | Sky Shaw  编辑 | 汽车人

原文链接:https://zhuanlan.zhihu.com/p/488778404

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【SLAM】技术交流群

引言

在近期的工作和学习中,个人时不时地都在思考移动机器人在具体的SLAM方向(抑或者可以称之为“领域”)中的最终“形态”到底是个什么表现形式:是在各种复杂场景下都表现为state of art的稳定输出?还是通过不同的功能和机制对各种情况进行适配实现稳定运行?套用高博的话(Faster-LIO:快速激光IMU里程计),本人认为移动机器人在SLAM领域的最终形态也就是达到精度/效率/鲁棒性三者(或者很多其他技术细节)的完美结合,而即使每个模块都如同一个个巨人,让我们这些普通的算法研究人员“心生畏惧”,但我们希望在每一次努力地研究和调查下,将这些巨人天敌逐步分解和吸收,达到如同漫画里艾伦·耶格尔 一样将精度巨人、效率巨人和鲁棒性巨人一并吞下达成我们希望中的最终形态。

本文呢,将从SLAM中一个在近期发展比较迅速但还没有那么卷的方向(Life-Long SLAM)入手,将相关论文进行一个初步简单的整理,方便后续“调查”工作的进行。

1. SLAM工程的选择 & 其中包含的基础技术点

本人理解的Life-Long SLAM 是作为 SLAM系统中功能的一部分,不论是2D SLAM算法框架还是3D SLAM算法框架,Life-Long SLAM实现的必要前提条件就是首次单次的建图必须顺利无误地完成。考虑到目前主流的2D/3D SLAM算法的框架有很多
(gmapping/hector/karto/cartographer/LOAM系列/LIO-SAM系列/Apollo/Autoware等),在本文中就以cartographer的框架为背景基础,因为它适配2D和3D建图,还有相关的定位模块功能,是很不错的可以用来举一反三的例子,为后续的其他框架的扩展提供参考。

c9ba3e165cfb1999c0d077db2db3758d.png
图:cartographer框架图

1.1 前端:

传感器数据预处理(无效值去除、序列检查、点云遮挡点与平行点去除、点云corp&merge、点云去畸变);
环境角度偏差量计算;
多传感器数据同步;
基于sensor-tracker形式的pose-extrapolator;
Imu数据重力向量更新与对齐;
CSM:Correlative Scan Matcher & Ceres Scan Matcher;
概率栅格地图的构建、更新和扩展;
Rangefinders RayCasting;
etc……

1.2 后端:

基于Google Ceres构建Pose Graph,主要利用node-submap constraints,辅以 node-node constraints作为edges(后续可以扩展submap-submap constraints),scan-pose为node;
基于SPA加速的后端优化;
LoopClosure:Correlative Scan Matcher & Branch and Bound;
etc……

1.3工程:

pbstream文件:建图轨迹信息保存与加载;
Lua参数文件的加载;
Google日志;
etc……

2. 历年顶会中Life-Long SLAM相关的论文分析

[ICRA-2014] Long-term 3D map maintenance in dynamic environments:提出了一种基于time history of velocities,筛选分类出dynamic points & static points;

[ICRA-2014] Grid-based mapping and tracking in dynamic environments using a uniform evidential environment representation:主要贡献是提出一种uniform, low-level, grid-based world model including dynamic and static objects,领域还是动态障碍物去除方法;

[ICRA-2021] ERASOR--Egocentric Ratio of Pseudo Occupancy-based Dynamic Object Removal for Static 3D Point Cloud Map Building:主要贡献点是提供了一种3D SLAM时,去除动态障碍物的方法;

[IROS-2020] REMOVERT;

[IROS-2021] LT-mapper: A Modular Framework for LiDAR-based Lifelong Mapping:贡献领域在于map management,提出一种解决high\low dynamic change detection & positive\negative change management的方法;

[ICRA-2014] Localization in highly dynamic environments using dual-timescale NDT-MCL: 适用于变化率非100%的场景的3D定位,如仓储/运料/建筑工地等场景

[IV-2018] Map Management for Efficient Long-Term Visual Localization in Outdoor Environments;

[IROS-2018] PoseMap: Lifelong, Multi-Environment 3D LiDAR Localization;

[KI-2010] Life-long Map Learning for Graph-based SLAM Approaches in Static Environments;

[Int. J. Robot. Res-2012] Information-Theoretic Compression of Pose Graphs for Laser-Based SLAM;

[IROS-2012] Dynamic Pose Graph SLAM: Long-term Mapping in Low Dynamic Environments;

[IROS-2021] A General Framework for Lifelong Localization and Mapping in Changing Environment;可以详见知乎高仙IROS论文分享

[Institution for Mathmatic, KTH-2010] Lectures on Statistical Learning Theory for Chow-Liu Trees

[IEEE/Trans.Infor.Theory-1968] Approximating Discrete Probability Distributions With Dependence Trees

[IEEE Transactions on Robotics-2014] Generic node removal for factor-graph SLAM

3. 适用于本文选择的SLAM工程中的技术论文与文章

本节的论文筛选是根据第2节的选集中进一步确认的较为关键的核心技术、思路论文,方便“调查”的入手。

  1. [KI-2010] Life-long Map Learning for Graph-based SLAM Approaches in Static Environments;

  2. [Int. J. Robot. Res-2012] Information-Theoretic Compression of Pose Graphs for Laser-Based SLAM;

  3. [IROS-2012] Dynamic Pose Graph SLAM: Long-term Mapping in Low Dynamic Environments;

  4. [IROS-2021] A General Framework for Lifelong Localization and Mapping in Changing Environment;本人也是从高仙的解决方案中受到了很大的启发,帮助确立了“调查”的方向。

  5. [Institution for Mathmatic, KTH-2010] Lectures on Statistical Learning Theory for Chow-Liu Trees

  6. [IEEE/Trans.Infor.Theory-1968] Approximating Discrete Probability Distributions With Dependence Trees

  7. [IEEE Transactions on Robotics-2014] Generic node removal for factor-graph SLAM

4. 核心论文技术点和技术方案分析

[IROS-2021] A General Framework for Lifelong Localization and Mapping in Changing Environment;知乎高仙IROS论文分享

本节选择从2021年高仙发布的Life-Long SLAM框架论文入手,进行简单的技术点分解和发散,若有错误的地方还望各位批评指正。

[IROS-2021] A General Framework for Lifelong Localization and Mapping in Changing Environment;

8e654c840195a887cc3ce2f7dbe8f603.png
图:引用A General Framework for Lifelong Localization and Mapping in Changing Environment论文场景的照片
8cb8a8f118ce88da59f986c305dc760c.png
图:引用A General Framework for Lifelong Localization and Mapping in Changing Environment论文场景的照片

4.1 高仙论文主要贡献点概述:

  1. 完整且稳定的lifelong SLAM框架,通过了实际场景的长期测试,并且得到大规模落地部署;

  2. 基于submap的graph sparsification method,在维持厘米级精度的同时,计算量和内存复杂度都是“常量状态”;

  3. 测试过程采集了包含激光雷达、IMU、轮式编码器在内的lifelong SLAM数据,并开源了该数据集,便于之后学术界和工业界的研究。

论文中也提供了2D方案中的传感器的布局方案和上位机选型,如下图示:

6230a45a4c5d66eab0ecc0a61eb4f719.png
图:引用A General Framework for Lifelong Localization and Mapping in Changing Environment论文传感器与上位机的方案

4.2 高仙论文SLAM系统框架

7bf489e39923f725d506bd58074c53d1.png
图:引用A General Framework for Lifelong Localization and Mapping in Changing Environment系统框架图
  1. Input Module:IMU、wheel odometry、LIDAR data;

  2. Pre-Process Module

  3. Local LiDAR Odometry,LLO:SLAM前端,接收预处理模块的传感器数据,并进行连续帧匹配,同时生成submap;

  4. Global LiDAR Matching,GLM:后端,接收前端的激光数据并与地图数据中的submap进行匹配,构建约束信息,并送入PGR模块;

  5. Pose Graph Refinement,PGR:后端,分为(1)multi-session localization(2)PGR:负责submap的删除和添加,基于CLT进行位姿图的稀疏化,之后启动全局位姿图优化;

  6. Output:实时输出计算得到的定位信息,TF转换、位姿和地图;

在以上的系统框架中和本文主题Life-Long紧密相关的部分在于第5个模块Pose Graph Refinement,接下来将针对该部分进行下一步的分析。

4.3 系统框架中Multisession Localization概念

47c59579d70485929073376a6eabb33a.png
  • 引入session,也就是程序过程维护的trajectory;

  • 第一次建图属于session 0,此时阶段为mapping stage,构建了当前环境的地图描述,并存入数据库。值得说明的是,session 0生成的pose graph不会被替换或者修改;

  • 进入定位模式时,每次定位会从数据库读取地图数据,并加载到内存,创建新session(session 1~n)。在每个定位session中,定位状态的输出和新子图的构建通过LLO,GLM则利用sensor data与已完成的submap进行约束构建。Finished Nodes和constraints都再输入到PGR;

  • 定位过程中不断将新生成的submap添加到当前session,同时删除旧session的submap。在删除旧submap时,触发位姿图的稀疏化和位姿优化。最后在结束定位任务时,调用接口保存更新的地图,并传入数据库,从而完成一次地图更新。经过多次地图更新后,地图中包含多条session,每条session由一定数量的node、submap和约束信息构成。

4.4 实现Life-Long的核心部分POSE GRAPH REFINEMENT

根据该部分,往下细分的话可再划分成3个子部分,

  1. Submap trimming:地图筛选与删除判断单位,该子部分会输出需要删除的冗余地图。

  2. Pose graph sparsification:进行地图删除后,需要对应地处理维护的因子图,保证因子图的一致性和稀疏性。

  3. Pose graph optimization:完成1、2后,再进行因子图的优化计算。

4.4.1 Submap trimming

高仙的论文是以submap作为删除的单元,有的论文中以关键帧作为删除单元,但本质都一样,都是为了剔除冗余的信息,尽力维护建图轨迹中节点的独立性(或者是唯一性)。

与之相关的论文处理可以作出以下规整:

27e19c0cfc68946fe128f7a633457052.png

上述表格中的·「i」代表本文第三部分中筛选出的论文的标号

4.4.2 Pose graph sparsification

从Submap trimming来到这里,我们应该替机器人思考一个这样的问题:

How to maintain a pose graph that does not grow unless the robot explores previously unobserved parts of the environment?

如此,我们还可以将上面这个大问题进一步拆解:

  1. How to restrict the size of the pose graph ?

  2. How to maintain a sparse pose graph ?

好在高仙又贴心地帮助我们提出了一个解决方案,在本文中贴出相关的图示,而每一步的思路可以详见论文中的相关方法论。

7e2c92e01d6f97bafeb703676b66629a.png
图:引用A General Framework for Lifelong Localization and Mapping in Changing Environment论文PGS的操作示意图
4.4.3 关于PGR的思考

如果有读者看完论文,就会发现虽然提供了一个看似很完整的解决思路,但其背后的原理和理论并没有详细的介绍和推导。故此,本文将针对论文中的思路整理背后相关的原理和理论基础,以下为部分较为核心的理论基础,更加完善的内容可以通过研读第二部分的汇总论文获得。

Multivariate Probability;
Marginal Probability & Conditional Probability;
Dependence Structure;
Bayesian Update;
Marginalization & Schur Complement & Elimination Clique;
Reverse I-Projection & Kullback-Leibler Divergence;
Mutual Information;
Chow-Liu Tree Theory & Spanning Weighted Tree;
Kruskal’s Algorithm;
Optimal Product Approximation Problem & Approximate Marginalization;

5. PGR核心理论分析与讨论

该节将简单整理一下4.4.3小节中提及的核心理论内容,希望在本部分的内容可以为第四部分进行足够的理论补充。

5.1 Multivariate Probability

c3bbccf8c42800cec5a4cc7482940988.png

5.2 Marginal Probability & Conditional Probability

e43070932e53e13b071d1756fd34b059.png

5.3 Dependence Structure

96b57c59f4d233b6739f4ff905bd588b.png 30c3fbf53187dd17f2388e1cf02e8eda.png

5.4 Marginalization & Schur Complement & Elimination Clique

8286d313eb66da37e6213c7aaf7df982.png

5.5 Reverse I-Projection & Kullback-Leibler Divergence

eb17f6ce9ec0b42f9cdfc1c07916d329.png

5.6 Mutual Information

93886d461f1eec80a486cf464d078cfd.png

5.7 Chow-Liu Tree Theory

4c9b4c072f1796047a6bb88a127d045b.png

5.8 Kruskal’s Algorithm & Spanning Weighted Tree

de8ec307e61a96f4ec8341b6cb47a95f.png

(一)视频课程来了!

自动驾驶之心为大家汇集了毫米波雷达视觉融合、高精地图、BEV感知、多传感器标定、传感器部署、自动驾驶协同感知、语义分割、自动驾驶仿真、L4感知、决策规划、轨迹预测等多个方向学习视频,欢迎大家自取(扫码进入学习)

c50c668b4a8a12b234763eeab95836bf.png

(扫码学习最新视频)

视频官网:www.zdjszx.com

(二)国内首个自动驾驶学习社区

近1000人的交流社区,和20+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、Occpuancy、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

60ded3f1f6e2470ac282ffd67c569d95.jpeg

(三)自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向;

6607f6b9edf2745e57aadae46d33f592.jpeg

添加汽车人助理微信邀请入群

备注:学校/公司+方向+昵称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值