每日浅读SLAM论文——简析LIO-SAM

news2024/9/21 4:23:26

文章目录

  • Overview
  • 雷达里程计
  • IMU预积分
  • GPS
  • 回环
  • 代码结构解析

今天讲一篇经典的LIO(LiDAR-Inertial Odometry)SLAM论文——LIO-SAM。
雷达+里程计由于其高鲁棒性、较低成本(二维雷达不贵、三维雷达价格也在降、IMU不太贵),可以说是工业机器人应用最广泛的SLAM解决方案了。对于三维LiDAR+IMU的结局方案,在github上的开源算法并不多,甚至可以说就LIO_SAM和FAST_LIO两种(及它们的前身和衍生物)。
在这里插入图片描述
如果尝试过运行这两个算法的人,一般都会觉得FAST_LIO是更好用的算法,FAST_LIO不需要标定,计算速度更快,定位精度更高、建图效果也更细腻(LIO-SAM真难用,对IMU标定要求极高,非常容易漂移)。但是为什么LIO_SAM的star更多呢?道理很简单,如果你只是想运行一个LIO算法,那FAST_LIO可能更好,但是如果你想改代码,那你一定更会绝对修改LIO_SAM更简单,具体为什么往后看。

Overview

系统框架如下所示,乍一看花里胡哨的,实际上是一个非常清楚的紧耦合LIO框架 x i x_i xi代表的被优化的位姿,每两个之间都有两个约束,一个绿色的雷达里程计约束、橙色的IMU约束。时不时会加入黄色的GPS和紫色的回环约束。然后使用iSAM一起优化。
在这里插入图片描述

雷达里程计

雷达里程计用的还是LOAM的方法,区别在于使用了关键帧和scan_to_map,没有使用每两个相邻帧进行匹配。
首先是关键帧,关键帧可以减少约束,增加效率。选择的方法很简单,只有当前位置和上一个节点位置变化范围超过阈值(雷达里程计提供),才保存为关键帧,加入新的优化节点。
然偶是匹配,使用滑动窗口保存一定数量的雷达帧,叠加起来过一个体素滤波降采样(非常常见的做法)。将目前的scan和submap进行匹配(LOAM),得到雷达里程计。

IMU预积分

紧耦合的核心,原理太难了我也不会,以后再说。但是核心思想就是,IMU频率是非常快的,两个scan之间都有很多数据,需要一个个积分过去算出来约束,但是在更新之后需要重新计算,使用预积分模型之后就不需要重新计算了(大概感觉就像差分数组,加速修改这种,我瞎说的)。

GPS

就是一个全局约束,当累计出来的协方差大于GPS本身协方差的时候,会加入一个GPS因子。

回环

LIO-SAM的回环很简单,找到之前最近的keyframe,利用那帧keyframe周围的scan组成submap,然后使用LOAM的方法进行匹配。
核心在于提供了一个回环的接口,不需要你自己改,从而衍生了很多版本的LIO-SAM。

代码结构解析

LIO-SAM只include了一个utility.h文件,里面定义了一些全局变量。剩下主要文件就4个,非常常见的结构。
在这里插入图片描述
imageProjection预处理点云,featureExtraction提取plane和edge特征,imuPreintergration向因子图里面添加IMU预积分因子,mapOptimization进行优化(把雷达里程计的计算和添加其他因子也放在了里面)。

总而言之,想要在LIO-SAM上进行修很简单,尤其是在加传感器的时候,在·mapOptimization里加一个新的sub,然后加入因子图中,就搞定了,堪称工业利器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/729553.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【解决】uniapp的全局公共组件(不用在每个页面引入组件标签),各平台均可使用!!!!

感谢滚动君大佬提供的思路,但是此方法只适用于微信小程序 app端之所以不能用的关键原因在于不能找到resourcePath原始路径,不像小程序会提供一个路径区分哪些文件来自组件哪些文件来自页面,如果不做区分,那么页面栈就会超载&…

EasyCVR视频融合平台国标级联后推送不了通道是什么原因?

EasyCVR视频融合平台基于云边端一体化架构,具有强大的数据接入、处理及分发能力,平台支持海量视频汇聚管理,可支持多协议、多类型的设备接入,并能对设备进行分级、分组管理,并支持权限、角色分配,属于功能全…

电子时钟制作(瑞萨RA)(9)----读取DHT11温湿度数据

概述 本篇介绍如何驱动DH11湿度传感器同时实现当前串口数据打印。 DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。 硬件准备 首先需要准备一个开发板,这里我准备的是芯片型号R7FA2E1A72DFL的开发板: 视频教程 https://www…

从零实现深度学习框架——注意力机制

引言 本着“凡我不能创造的,我就不能理解”的思想,本系列文章会基于纯Python以及NumPy从零创建自己的深度学习框架,该框架类似PyTorch能实现自动求导。 💡系列文章完整目录: 👉点此👈 要深入理解…

网络数据包的监听与分析——IP数据报文分析

1. 抓包工具下载 x下面是一个IP数据报的抓包软件——IPtool的蓝奏云下载链接 https://wwix.lanzoue.com/iaGpy11klpnc 2. iptool使用 下载解压之后,右击以管理员身份运行,打开该exe文件即可 然后点击绿色运行就开始捕包了 随便点一个包进去进行分析就可…

Java文档

API(Application Programming Interface,应用程序编程接口)是Java提供的基本编程接口(java提供的类还有相关方法)。中文在线文档:Java 8 中文版 - 在线API手册 - 码工具 (matools.com) Java语言提供了大量…

Java项目 仿天猫商城系统(springboot+mybatis+mysql+maven+jsp)

基于springbootmybatismysqlmavenjsp仿天猫商城系统 一、系统介绍1、系统主要功能:2.涉及技术框架: 二、功能展示三、其它系统四、获取源码 一、系统介绍 1、系统主要功能: 项目主要参考天猫商城的购物流程:用户从注册开始&…

浅谈线段树

1.前言 Oi-Wiki上的线段树 同步于 c n b l o g s cnblogs cnblogs发布。 如有错误,欢迎各位 dalao 们指出。 注:本篇文章个人见解较多,如有不适,请谅解。 前置芝士 1.二叉树的顺序储存 2.线段树是什么? 线段树…

“量贩零食”热潮袭来:真风口还是假繁荣?

以前只听过量贩式KTV,现在“量贩零食店”也出现在了大街小巷。 高考结束后,家住武汉的花花频繁逛起了量贩零食店。这类店把各种零食集合在一起销售,用低价来换取高销量,主打一个性价比。店里的散装零食即便按斤售卖,也…

蛋白组学 差异蛋白分析 富集分析 go kegg

生信学习day1-蛋白组分析 蛋白质组差异分析的三个R包 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/448479536Introduction to DEP (bioconductor.org)http://www.bioconductor.org/packages/release/bioc/vignettes/DEP/inst/doc/DEP.html#lfq-based-dep-analysis浅谈蛋白…

阿里云coluder认证训练营开班!

在这个充满机遇和挑战的时代里,云计算已经成为推动企业创新和发展的关键技术。而作为云计算人才培训领域的领军企业,摩尔狮致力于培养更多优秀的云技术人才, 所以摩尔狮联合阿里云为大家打造了免费的云计算入门课程——Clouder认证集训营&…

全方位了解VR全景展示与制作

引言: 虚拟现实(VR)技术正在以惊人的速度改变我们的生活方式和体验方式。其中,VR全景展示与制作作为虚拟现实的重要应用之一,为用户提供了身临其境的视听体验。 一、了解VR全景展示与制作 1.VR全景展示 VR全景展示是…

JDK,JRE,JVM的区别

1.JVM JVM,也叫java虚拟机,用来运行字节码文件,可将字节码翻译为机器码,JVM是实现java跨平台的关键,可以让相同的java代码在不同的操作系统上运行出相同的结果。 2.JRE JRE,也叫java运行时环境&#xff…

【JS】javascript学习笔记

step by step. 目录 严格区分大小写 点击事件: JavaScript关键字/语句标识符 数据类型 对象Object 创建对象方法 事件 循环 标签 正则表达式 异常 未定义adddlert-> throw—— 调试工具debugger ​编辑 JS严格模式 表单 严格区分大小写 点击事件&am…

python3 学习笔记

一、注释 1.单行注释:# 开头 2.多行注释: 和 """ 二、缩进 python是使用缩进来表示代码块,不需要使用大括号{} python具有严格的缩进原则,每个缩进一般可以有两个或四个空格组成,也可以是任意数量的…

深度学习常用优化器总结

一、优化器的定义 优化器(optimizer)本质上是一种算法,用于优化深度学习模型的参数,通过不断更新模型的参数来最小化模型损失。在选择优化器时,需要考虑模型的结构、模型的数据量、模型的目标函数等因素。 二、常用…

web前端总结(一)HTML标签

1.语法结构&#xff1a; <标签 属性 “值”>内容</标签> <p align "center">标签内容</P> 2.标签 1.标题标签&#xff1a; **标题标签 <h1> - <h6>&#xff08;重要&#xff09;** 为了使网页更具有语义化&#xff0c;我们…

stm32_<一文通>_cubemx_freertos

文章目录 前言一、任务调度1.1 延时1.1.1 相对延时1.1.2 绝对延时 1.2 挂起和恢复1.2.1 cmsis的挂起和恢复函数1.2.2 freertos的挂起和恢复函数 1.3 删除1.3.1 cmsis的删除任务函数1.3.2 freertos的删除任务函数 二、Freertos任务与中断三、消息队列3.1 写入和读取一个数据3.2 …

6阶高清视频滤波驱动MS1681

MS1681 是一个单通道视频缓冲器&#xff0c;它内部集成6dB 增益的轨到轨输出驱动器和6 阶输出重建滤波器。MS1681 的-3dB 带宽为35MHz&#xff0c;压摆率为160V/us。MS1681 比无源LC 滤波器与外加驱动的解决方案能提供更好的图像质量。它单电源供电范围为2.5V 到5.5V&#xff0…

什么是提示词工程师?

前言 你可能听说过人工智能模型&#xff0c;但你是否知道&#xff0c;背后的神奇之处源自于那些执着于提示设计和优化的专业人员&#xff1f;提示词工程师是引导我们与机器对话的幕后英雄&#xff0c;他们通过精心构造的提示&#xff0c;让模型理解我们的意图、解答问题&#…