• LIO-SAM论文与代码阅读笔记(一)论文阅读


    0.前言

    本文是 LIO-SAM论文与代码阅读笔记系列文章的一部分,所有博客如下:

    LIO-SAM论文与代码阅读笔记(一)论文阅读

    LIO-SAM论文与代码阅读笔记(二)代码阅读:imuPreintergration.cpp和imageProjection.cpp

    LIO-SAM论文与代码阅读笔记(三)代码阅读:featureExtraction.cpp和mapOptmization.cpp

    注释代码链接:https://github.com/Cc19245/LIO-SAM-CC_Comments

    本文参考博客【论文阅读38】LIO-SAM

    1.内容介绍

    注意下面的说法,他说LOAM的scan-to-map是使用全局地图进行匹配,其实也是有道理的。虽然LOAM中维护的是一个局部的栅格地图,但是这个地图中其实是可以包含之前的点的,比如绕一个大圈回到原点,这个时候栅格地图中的点其实也包括最开始的时候的哪些点,因此虽然栅格地图是局部的,但是里面保存的地图点是全局的(当然每一步都会对栅格地图中的点进行体素滤波下采样来降低内存)。所以我感觉这也是LOAM精度高的一个原因

    2.研究背景

    2.1.不同的地图维护方式

    再次解释了LOAM用的栅格体素地图属于本质上属于全局地图,每一帧扫描之后就把地图加到了这个栅格地图中,这样就分不清哪些点云是哪一帧扫描的了,自然后面即使有GPS或者回环对位姿进行了修正,但是也没办法对点云的位置进行修正了,因为不知道这些点云是哪一帧扫描的。

    LIO-SAM中用的就是单独存储每一帧的点云,这样后面修正位姿后也可以接着修正点云的世界坐标。

    2.2.LIO的紧耦合和松耦合

    注意下面的说法,使用IMU去点云畸变也属于松耦合,然后把IMU估计结果和LiDAR估计结果进行EKF滤波也算松耦合的方法。

    而紧耦合的方法又包括ErIEKF的方法和图优化的方法。

    3.方法

    3.1.因子图

    3.2.激光里程计因子

    • 下面的讲解有点歧义,LiDAR中应该不存在关键帧的说法,每一帧都使用,所以可以认为每一帧都是关键帧,每一帧又都是普通帧。不确定是不是这样?但是LOAM中给后端发送当前帧的点云进行匹配的时候进行了降频啊?是不是这样就是关键帧?

      解答:不是!这篇博客中最后写了,这确实是使用关键帧的方法,相当于借鉴了视觉SLAM的思想,就是为了提速。后面实验部分可以看到LIO-SAM可以倍速很多运行,感觉和使用这个方法以及使用iSAM2有关。

    • 最后一句注意就是LIO-SAM中地图匹配的方法,使用scan-to-map的时候使用的map是过去n+1个帧的点云组成的,并不是LOAM中那种全局的栅格地图。

    3.3.GPS因子

    主要就是三点处理:

    • 转笛卡尔坐标系
    • 线性插值得到对应LiDAR时间戳的GPS值
    • 一直有GPS的话,就不用一直加入GPS进行优化,因为实际上LIO的漂移是很慢的。

    4.实验

    创新不够,实验来凑!

    4.1.旋转数据集

    只用LIO和LO对比,这样在剧烈旋转的时候LOAM基于匀速运动的假设自然就不成立了,所以实验对LIO有优势。

    可以看到下面蓝色部分LOAM很模糊,LIO的结果就比较清晰。

    在这里插入图片描述

    4.2.行走数据集

    还是剧烈平移和旋转运动,还是不满足匀速运动假设,所以仍然是对LIO有利。

    4.3.校园数据集

    这里大部分是自己和自己比了,尤其在对比回环和GPS的作用,这个确实是LIO-SAM实打实的长处所在。
    在这里插入图片描述
    在这里插入图片描述

    4.4/5.公园数据集和运河数据集

    都是大场景,其实就是为了表现融合了GPS之后漂移变小。

    5.总结

    5.1.LIO-SAM的核心思想和优缺点

    5.2.LiDAR SLAM的展望

    看下面博客作者的总结和评论,可以总结出以下几点:

    • LIO系统去掉scan-to-scan是必然的,因为scan-to-scan就是为了得到给后端scan-to-map优化使用的较为准确的位姿初值,现在有了IMU就用不到它了,只要特征匹配是正确的,后端优化到最优位姿问题不大;
    • scan-to-map的时候使用局部地图的优势是降低了对全局地图的处理时间。实际上虽然LOAM用的栅格地图本质上也是局部地图,但是它维护的栅格地图也比较大,如果需要移动地图也是要进行处理。并且其实这种全局栅格地图虽然说也可能有最开始的一些扫描点,但是肯定匹配起作用的还是大部分的最近的那些点,这样对比使用最近n帧的局部地图精度也不会下降很多。
    • 确实SLAM的问题仍然在前端特征匹配上,后端的理论已经比较完善了。就是高博那句话,“好模型耐不住烂数据”,再好的后端优化处理,前端的特征匹配是错的也没用。

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    ONNX模型tensor shapes inference和Flops统计工具
    第15章 注销器实现原理与触发
    重生奇迹MU上武器加13有加成吗?
    SpringBoot-内容协商
    “六新”求新谋变 再造绿色新准能扬帆起航
    C# Windows多串口绑定
    深入理解 python 虚拟机:字节码教程(2)——控制流是如何实现的?
    手写小程序摇树工具(四)——遍历wxml、wxss、wxs文件
    Scikit-learn (sklearn) 基础教程
    Git 提交规范
  • 原文地址:https://blog.csdn.net/qq_42731705/article/details/127833557