作者 | 无疆WGH  编辑 | 汽车人

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

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

ADAS巨卷干货,即可获取

后台回复【SLAM综述】获取视觉SLAM、激光SLAM、RGBD-SLAM等多篇综述!

前言

近些年,紧耦合 LIO 逐渐引起了一些高校实验室以及业界的关注,这主要是因为紧耦合方案能够解决一些纯 LO 和松耦合 LIO 所存在的问题,比如运动畸变问题和特定场景下的松耦合 LIO 失效问题。

紧耦合 LIO 之所以叫紧耦合,是因为它会把 LiDAR 的原始观测和 IMU 的原始观测放到一起联合处理、互相影响,通常的思路是 IMU 数据首先用于 LiDAR 观测的去畸变,然后 LiDAR 观测和 IMU 观测会被一起丢到某种形式的状态估计模型中,并以最小化 LiDAR 观测和 IMU 观测的总体误差为目的,估计出最终的 Position、Velocity、Orientation、Bias、Gravity 等状态量。这其中,IMU 数据通常以预积分的形式进行处理;对 Bias 的估计相当于用 LiDAR 观测反过来影响 IMU 的状态量;对 Velocity 和 Bias 这些状态量的估计体现了紧耦合的思想之一 —— 充分考虑观测之间的内在约束,而非仅仅对 Position,Rotation 这样的结果做融合;所谓“某种形式的状态估计模型”通常是滑窗优化(Sliding Window Optimization)或者迭代误差状态卡尔曼滤波(iESKF),前者能够批量估计近期多个时刻的状态量, 后者则以迭代卡尔曼滤波(iEKF)为基础框架递归式地估计当前时刻的状态量。后文我们会看到,滑窗优化和迭代误差状态卡尔曼滤波,正是实现紧耦合 LIO 的两种主流方法。

事实上,滑窗优化和迭代卡尔曼滤波有着相同的数学本质,可以从基于概率图模型(Probabilistic Graphical Model)的概率推断视角下做出统一的解释,两者的主要差别在于问题的规模不同。后期笔者可能会写一篇文章证明滤波/滑窗优化/全局优化的统一性。

在技术落地方面,紧耦合 LIO 在自动驾驶和机器人领域都有用武之地,比如有自动驾驶厂商以 LIO 作为局部跟踪定位手段,配合多传感器融合实现自动驾驶车辆的完全定位,而 LIO 实时生成的局部地图也有助于车辆对周围环境的精确感知。紧耦合 LIO 与时下自动驾驶领域逐渐出现的「重感知,轻地图」路线非常契合,随着未来固态激光雷达成本的进一步降低,雷达上车的规模进一步扩大,紧耦合 LIO 技术可能迎来更大的需求。

了解一下「纯 LO、松耦合 LIO、紧耦合 LIO」三者的渐进式发展历程是很有必要的。

纯 LO 可以从点云配准算法讲起,通常是某种形式的 scan to scan 或者 scan to local map 配准,早期主要是基于 ICP、NDT 等的一些改良型配准算法,2014 年发表的 LOAM 通过提取几何特征来做配准,提升算法效率的同时实现了更好的配准精度,启发了后续的一系列工作;但纯 LO 的问题在于不能很好地去除点云畸变,并且存在诸多退化场景导致无法工作。

松耦合 LIO 通过融合 IMU 的数据实现点云去畸变,IMU 观测也可以为点云配准提供初值,甚至提供重力方向观测,最终的结果可以是直接输出点云配准结果、也可以是用滤波对 IMU 积分结果(预测)和点云配准结果(观测)做融合得到,相关的研究成果有 LOAM (with IMU),LeGO-LOAM,XXX 等;但松耦合 LIO 对 LiDAR 和 IMU 的融合仅体现在结果层面,没有考虑两种观测间的内在约束,且依然无法解决一些退化场景问题。

紧耦合 LIO,正如我们上文提到的,充分考虑了 LiDAR 观测和 IMU 观测的内在约束性,互相影响,共同决定最终的结果,理论上,能够应对前两者无法解决的退化场景问题,比如长隧道环境、剧烈运动环境等。当前固态激光雷达(solid-state LiDAR)成为了一种趋势,但固态激光雷达普遍视场角(FoV)有限,最大一般不超过横向120度,在这种情况下,更能体现紧耦合的必要性。自 2019 年以来,有影响力的紧耦合 LIO 方案主要有以下 6 篇:LIOM(LIO-Mapping)、LINS、LIO-SAM、LiLi-OM、Fast-Lio1&2、Faster-Lio。有意思的是,这6项工作中多数都兼容固态激光雷达。后文中,我们将逐篇介绍这6项工作,介绍它们的核心思想和框架设计,以飨读者。

我们还要再强调一下,紧耦合 LIO 的核心在于状态估计器的设计,无非是优化(滑窗优化)和滤波(迭代卡尔曼滤波)两条路线;滑窗优化的优点在于可以联合估计多个时刻的状态量,精度更高,但付出的代价是运算效率低,早期基于滑窗优化的 LIO 甚至不能保证实时性;迭代卡尔曼滤波的优点在于计算效率很高,有着良好的实时性,但受限于观测的数量和过早地边缘化掉了早期状态量,精度不如滑窗优化高;两种不同路线体现的是精度和效率的权衡。

下文中,我们将先介绍基于滑窗优化的两项工作(LIOM、LiLi-OM),然后介绍基于迭代卡尔曼滤波的工作(LINS、Fast-Lio1&2 和 Faster-Lio),最后还要补充介绍一下 LIO-SAM,LIO-SAM 相对比较特殊,虽然也是紧耦合方案,但它的具体做法是将滑窗仅用于优化 IMU 的 bias,然后有一个额外的后端,该后端将预积分因子、激光里程计因子、回环因子等放到一个因子图优化模型中联合优化。

LIOM (LIO-Mapping)

论文链接:https://arxiv.org/abs/1904.06993

开源代码地址:https://github.com/hyye/lio-mapping

发表日期&作者:2019年4月,港科大 RAM-LAB 实验室

LIOM 是将滑窗优化用于 LIO 的有影响力的工作之一,非常适合作为第一篇来介绍。众所周知,VINS-mono 是视觉 SLAM 领域中将滑窗用的非常好的工作之一,是诸多技巧的集大成者。LIOM 的思路在于,能否将 VINS-mono 中的滑窗优化思想移植到激光 SLAM 领域?答案是可以,但又有所不同。

在 VINS-mono 的滑窗中,相邻帧之间可以通过共视特征点建立帧间约束,但 LIO 中却不具备构建这种帧间约束的基础 —— 激光点云无法实现帧间特征点追踪,而 scan to scan 配准又太不靠谱,也不足以构建帧间约束。怎么办呢?scan to scan 配准不靠谱,但是 scan to local map 配准则是靠谱的!

于是 LIOM 将滑窗中的所有帧投影到最老帧的坐标系下,构建一个表达在最老帧坐标系下的 local map,剩下的每一帧都和 local map 做配准,从而每一帧都可以构建一个与最老帧的约束关系,而相邻帧之间本来就有来自 IMU 预积分的约束关系,从而形成了完整的滑窗优化问题。

思路讲清楚了,我们再看一下细节,下图是 LIOM 论文中的滑窗优化问题模型,从中可以清晰地看到:优化的状态量为各个关键帧时刻的 pose、speed 和 bias(橙色圆和蓝色五角星),在最新帧到来之时,用滑窗内的所有关键帧构建了表达在最老帧坐标系下的 local map(褐色块),然后每一帧都和 local map 建立了约束(浅蓝色连线),所有的相邻帧之间又有来自 IMU 预积分的约束(红色块)。

LIOM 中的滑窗优化问题

除了紧耦合 LIO 之外,LIOM 还在 mapping 部分通过 scan to global map 配准进一步提升位姿精度,且在 scan to global map 配准的优化问题求解中,仅优化 yaw,不优化 roll 和 pitch;这样做的出发点是更相信 LIO 部分给出的重力方向,后续的调整无需再改变 roll 和 pitch。

LiLi-OM

论文链接:https://arxiv.org/abs/2010.13150

开源代码地址:https://github.com/KIT-ISAS/lili-om

发表日期&作者:2022年10月,Kailai Li & Meng Li,卡尔斯鲁厄理工学院[德国]

这篇工作于 2022 年 10 月首先上传到 arxiv 预印本网站上,后续发表在了 RAL-2021。这是一篇兼容旋转式机械雷达和 Livox Horizon 固态激光雷达的工作,但本文的重点在于紧耦合方法的设计,与点云形态相关的部分不再多说。

LiLi-OM 的总体 pipeline 如下图所示,由 3 部分构成:一个轻量化的激光里程计(绿色区域),一个基于滑窗优化的紧耦合 LIO(红色区域),一个负责回环检测和全局优化的真后端(紫色区域)。我们只重点分析基于滑窗优化的紧耦合 LIO 部分。

LiLi-OM 的算法 pipeline

下图所示为滑窗优化问题的示意图,我们只需关注两个问题:滑窗内的状态量有哪些?滑窗内的约束有哪些?

LiLi-OM 的滑窗优化问题模型

滑窗内的状态量为各个关键帧时刻的 Position、Velocity、Orientation、Bias。

滑窗内的约束有3种,分别是边缘化约束(黄色因子),IMU 预积分约束(蓝色因子),点云配准约束(紫色因子)。边缘化约束和 IMU 预积分约束不再多说;正如在 LIOM 中提到的,LIO 中无法通过 scan to scan 配准提供帧间约束,LiLi-OM 将最新的 30 个关键帧拼接为 local map,用 scan to local map 的配准结果作为点云配准约束。在每轮滑窗优化过后,local map 都会根据新的位姿做更新。

LiLi-OM 的算法 pipeline 里还有很多细节可以讲,比如固态激光雷达点云的配准算法,自适应计算配准结果的权重,滑窗优化使用 ceres solver,而后端全局优化使用 gtsam 等,实验部分与其它算法的对比也很充分,详见论文。

LiLi-OM 建图效果

LINS

论文链接:https://arxiv.org/abs/1907.02233

开源代码地址:https://github.com/ChaoqinRobotics/LINS---LiDAR-inertial-SLAM

发表日期&作者:2019年7月,港科大 RAM-LAB 实验室

LINS 同样出自港科大 RAM-LAB 实验室,作为滤波系的工作,和 LIOM 互相呼应。LINS 的算法 pipeline 如下。

滤波形式的问题并没有什么框图可以细说,我们粗略地讲一下 LINS 中迭代误差状态卡尔曼滤波(iESKF)的范式。

首先,LINS 中 iESKF 估计的状态量为最新时刻的 Position、Velocity、Orientation、Bias 和 Gravity,并且,这些状态量都是表达在上一帧坐标系下的,也即,LINS 是一种 robocentric 的方法,以 k 时刻到 k+1 时刻的状态递推为例,我们的目标状态量表示为:

由于采用了误差状态,因此实际目标状态量为:

Fast-Lio(1&2)

论文链接1:https://arxiv.org/abs/2010.08196

论文链接2:https://arxiv.org/abs/2107.06829

开源代码地址:https://github.com/hku-mars/FAST_LIO

发表日期&作者:2020年10月/2021年7月,港大 MaRS-Lab 实验室

Fast-Lio 同样采用迭代误差状态卡尔曼滤波(iESKF)来实现紧耦合的 LIO。在滤波器的设计上,Fast-Lio 和 LINS 大体相同,但在卡尔曼增益的计算部分有所区别。众所周知,计算卡尔曼增益时需要对观测对误差状态的雅可比矩阵与自身转置的乘积求逆,当观测的维度较大时求逆将变得耗时,比如有 1000 个点时就需要对  大小的矩阵求逆。针对此问题,Fast-Lio 采用的新的卡尔曼增益计算方法,需要求逆的矩阵的规模仅与状态量的规模相关,而非观测的规模。

Fast-Lio 的 pipeline 如下所示,Fast-Lio 兼容旋转式机械激光雷达和 Livox 固态激光雷达,首先对点云做特征提取,并用 IMU 观测对特征点做去畸变,然后将激光观测和 IMU 观测放到 iESKF 中估计当前时刻的 Position、Velocity、Orientation、Bias 和 Gravity 状态量,所有这些状态量都是位于世界坐标系下的。

Fast-Lio pipeline

Fast-Lio2 相比于 Fast-Lio 使用了增量式的 ikd-Tree 数据结构(中文解析)维护 local map,有效降低了对激光点观测查询近邻的耗时,进一步提升了效率;除此之外,在算法部分差别不大,pipeline 如下图所示。

Fast-Lio2 pipeline

Faster-Lio

论文链接:https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9718203

开源代码地址:https://github.com/gaoxiang12/faster-lio

发表日期&作者:2022年,智行者&清华

Faster-Lio 是智行者高博团队在 Fast-Lio2 的基础上发表的工作,和 Fast-Lio2 类似,也致力于通过使用增量式的数据结构(iVox)维护 local map,来提升算法的效率。由于 Faster-Lio 的主要工作在于 iVox,在 iESKF 部分完全同 Fast-Lio系列,因此本文不再赘述。

Faster-Lio 中的 iVox 数据结构

LIO-SAM

论文链接:https://arxiv.org/abs/2007.00258

开源代码地址:https://github.com/TixiaoShan/LIO-SAM

发表日期&作者:2020年7月,Tixiao Shan, etc

LIO-SAM 作为非常有影响力的工作,相信很多同学都已经很熟悉了。LIO-SAM 并非一个单纯的 LIO,其后端的因子图优化支持融合 GPS 等不同的传感器数据,框架如下图所示,网上也有很多解读。

这里主要提一下 LIO-SAM 中的紧耦合 LIO 部分:LIO-SAM 中的 imu_preintegration 节点专门对 IMU 做预积分,预积分结果给到后端的 scan to local map 部分做去畸变和配准初值,配准结果反过来还会返回至 imu_preintegration 节点,该节点内基于 gtsam 构建一个不超过N帧的滑窗优化问题,专门优化 IMU 当前的 bias,新的 bias 将用于后续时刻的 IMU 预积分。同时,IMU 预积分结果也作为 IMU 预积分因子,输入到后端的因子图优化问题中(如下图所示),参与整个轨迹的优化。

LIO-SAM 后端因子图优化 

往期回顾

港大重磅SLAM新作!R3LIVE++:一个实时鲁棒的紧耦合激光雷达-惯性-视觉融合框架

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

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

加入我们:自动驾驶之心技术交流群汇总!

自动驾驶之心【知识星球】

想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!

紧耦合LIO综述 | 6篇顶会论文看透紧耦合LIO玩儿法(LIOM/LIO-SAM)相关推荐

  1. 发表一篇顶会论文的经验分享

    [背景]:最近半个月,对之前发表的一篇顶会论文进行了修改,并重新提交了.这篇论文是一篇计算机领域的A会文章.本篇文章主要对计算机领域论文写作及发表过程中的相关经验做一个总结.希望可以对研究生小白们有点 ...

  2. 传感器标定两篇顶会论文解析

    传感器标定两篇顶会论文解析 一.在城市环境中的多个3D激光雷达的自动校准 标题:Automatic Calibration of Multiple 3D LiDARs in Urban Environ ...

  3. SLAM架构的两篇顶会论文解析

    SLAM架构的两篇顶会论文解析 一.基于superpoint的词袋和图验证的鲁棒闭环检测 标题:Robust Loop Closure Detection Based on Bag of SuperP ...

  4. 导师:寒假复现几篇顶会论文?答:3天1篇!

    3天复现1篇顶会论文!?这怎么做的到? 自己读论文总会遇到很多问题: 不知道从哪里找论文.不知道如何甄别论文质量? 找到论文之后,找不到论文源代码? 好不容易找到代码,却配置不好环境,更别说复现论文了 ...

  5. 北大95后「AI萝莉」回来了,一次中8篇顶会论文的她,现在达摩院开源7大NLP模型...

    梦晨 博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 曾有一位北大硕士生,在校期间一次性在国际顶会ACL中标8篇论文,其中2篇一作,还登上了知乎热搜. 在那次热搜之后,这位"论文 ...

  6. 辰星人才 | 旷视实习生鲁盼:UCLA朱松纯准博士,两年七篇顶会论文

    「不管是去学术界还是工业界,在通往未来的道路上最好去公司实习一次.其实你只有在经历不同的东西之后,才会发现什么是最适合自己的.如果你长期处在同一个环境下,你只能知道当前这个环境适合你或者不适合你,至于 ...

  7. 7篇顶会论文带你梳理多任务学习建模方法

    如果觉得我的算法分享对你有帮助,欢迎关注我的微信公众号"圆圆的算法笔记",更多算法笔记和世间万物的学习记录- 公众号后台回复"多任务",即可获取相关论文资料集合 ...

  8. 800 篇顶会论文纵览推荐系统的前沿进展

    © 作者|张君杰 机构|中国人民大学高瓴人工智能学院 引言:推荐系统作为人工智能领域最具有应用前景的方向之一,在学术界和工业界一直占据着重要地位.本文聚焦于推荐系统在学术研究方面的前沿进展,在之前整理 ...

  9. 北大95后「AI萝莉」回来了,一次中8篇顶会论文的她,现在达摩院开源7大NLP模型

    曾有一位北大硕士生,在校期间一次性在国际顶会ACL中标8篇论文,其中2篇一作,还登上了知乎热搜. 在那次热搜之后,这位"论文大户"似乎逐渐销声匿迹. 今天,她带着阿里达摩院深度语言 ...

最新文章

  1. XML专题:使用NSXMLParser解析xml文件
  2. DWR小结DWRUtil篇
  3. python3语法错误-Python3 错误和异常
  4. Android--Genymotion虚拟机(模拟器)的配置
  5. mysql索引 物理文件_MySQL体系结构之物理文件
  6. 使用RDLC报表(四)--钻取式报表
  7. Linux内核套接字(Socket)的设计与实现
  8. lLinux系统安全sudo+pam
  9. [Swift]LeetCode289. 生命游戏 | Game of Life
  10. css如何改变横线<hr/>标签的颜色
  11. 卷积与反卷积、步长(stride)与重叠(overlap)及 output 的大小
  12. dorado 刷新_dorado BDF常见问题
  13. 远程桌面要求更改电源_远程工作实际上可以使老板动态改变电源
  14. win10计算机升级系统,微软Win10升级助手
  15. Android 九宫格布局(图片上传、预览)
  16. 泰勒公式和麦克劳林公式
  17. 【渝粤教育】国家开放大学2019年春季 2444酒店管理概论 参考试题
  18. 搜狗浏览器安装自定义JS脚本的方法~
  19. 计算机内存不足黑屏怎么办,win10内存不足会黑屏吗_win10电脑内存不足黑屏了怎么办...
  20. 百余门店闭门谢客,韩妆如何败给了国潮?

热门文章

  1. 无法连接虚拟设备 sata0:1,因为主机上没有相对应的设备——解决方案
  2. java计算机毕业设计BS用户小票系统(附源码、数据库)
  3. jQuery 的表单验证之提交验证
  4. co作为前缀的意思_品牌故事之Tiffany Co
  5. 深层学习:心智如何超越经验3.1 创造性问题
  6. js获取本月初与月底的时间、获取前一天的时间。
  7. 三角剖分与Delaunay三角剖分及带约束的Delaunay三角剖分
  8. 如何查看本地服务器名称
  9. 索尼发布新款VR头盔与FB竞争,暂未公布定价
  10. Python写入和读取Excel表格数据