码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • LIO-SAM论文与代码阅读笔记(一)论文阅读


    文章目录

      • 0.前言
      • 1.内容介绍
      • 2.研究背景
        • 2.1.不同的地图维护方式
        • 2.2.LIO的紧耦合和松耦合
      • 3.方法
        • 3.1.因子图
        • 3.2.激光里程计因子
        • 3.3.GPS因子
      • 4.实验
        • 4.1.旋转数据集
        • 4.2.行走数据集
        • 4.3.校园数据集
        • 4.4/5.公园数据集和运河数据集
      • 5.总结
        • 5.1.LIO-SAM的核心思想和优缺点
        • 5.2.LiDAR SLAM的展望

    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的问题仍然在前端特征匹配上,后端的理论已经比较完善了。就是高博那句话,“好模型耐不住烂数据”,再好的后端优化处理,前端的特征匹配是错的也没用。

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

  • 相关阅读:
    【c语言】探索内存函数
    PL/SQL变量,常量和数据类型(二)
    新鲜出炉:appium2.0+ 单点触控和多点触控新的解决方案
    面试算法23:两个链表的第1个重合节点
    【工具知识】——类图的快速入门
    34.【C/C++ string大汇总,不看定后悔】
    《移动机器人运动规划与集群协同》直播要点总结
    C++编程题目------平面上的最接近点对(分治算法)
    ARouter There is no route match the path 原因
    PostMan测试接口-----上传文件、导出excel
  • 原文地址:https://blog.csdn.net/qq_42731705/article/details/127833557
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号