Lio-sam代码分析(1)-基本框架说明

Lio-sam代码分析(1)-基本框架说明

  • 概述
  • LIO-SAM整体框架
  • imageProjecion图像映射节点
  • FeatureExtraction 特征提取
  • mapOptmization 图优化节点
  • imuPreintergration IMU预积分

概述

LIO-SAM是Tixiao又一次的升级,主要是加入了IMU进行了紧耦合(而gps和loop可有可无,不是主要更新部分).本着学习为目的对整个工程进行了分析.但实际上这并不是一个SLAM工程,其主要是输出一个高频率的里程计信息.工程较为简单仅包含以下四个文件:

  • imageProjecion
  • FeatureExtraction
  • mapOptmization
  • imuPreintergration
    这四个文件

LIO-SAM整体框架

整个工程包含四个文件,同时也是4个功能模块,其功能框架和topic 输入输出如下图所示.与之前开源的lego-slam其主要区别在于增加了IMU预积分功能,而预积分模块也是输出高频率odom核心节点.
在这里插入图片描述

在这里插入图片描述

imageProjecion图像映射节点

此节点主要是对接收的原始点云进行去畸变处理,而logo-loam假设了匀速处理,没有进行畸变处理,直接进行了特征提取,而LIO-SAM框架弥补了这不足,从而适应能力更强.
该节点订阅了3个消息,分别是imu原数据, imu预计分提供的odom数据和cloud原始数据,通过imu和imu_odom进行点云去畸变处理然后进行特征提取.
注意,由于预积分进程较为特殊,需要经过一段时间后才能输出稳定的imu_odom,因此在开始时,即初始化时,仅采用imu原始数据进行去畸变处理.

FeatureExtraction 特征提取

此节点仅是对去畸变后的点云进行了角点和平面点进行特征提取,并将处理后的点云发布出去,此节点功能和代码内容延续了lego-slam.

mapOptmization 图优化节点

slam的主要流程,根据预处理后的点云数据进行点云匹配,并增加闭环处理,(采用了因子图优化功能),输出lidar odom.此节点实际上就是一个完整的基于优化思想slam过程.最后输出基于map坐标系的全局lidar odom,用于预积分节点.

imuPreintergration IMU预积分

根据imu原始数据和lidar odom进行因子图优化,估计IMU的零偏,最后积分输出高频率的IMU odom.此节点也是作者最重要的更新的部分.

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解密长短时记忆网络(LSTM):从理论到PyTorch实战演示

目录 1. LSTM的背景人工神经网络的进化循环神经网络(RNN)的局限性LSTM的提出背景 2. LSTM的基础理论2.1 LSTM的数学原理遗忘门(Forget Gate)输入门(Input Gate)记忆单元(Cell State)…

基于微信小程序的物流管理系统3txar

在此基础上,结合现有物流管理体系的特点,运用新技术,构建了以 springboot为基础的物流信息化管理体系。首先,以需求为依据,对目前传统物流管理基础业务进行了较为详尽的了解和分析。根据需求分析结果进行了系统的设计&…

19万字智慧城市总体规划与设计方案WORD

导读:原文《19万字智慧城市总体规划与设计方案WORD》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 感知基础设施 感知基础设施架构由感知范围、感知手…

Centos7 安装Docker 详细多图版

配置要求 Docker CE(社区免费版) 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。 一、Centos安装Docker 1.1 卸载(可选&#xff0…

springboot+docker实现微服务的小例子

【任务】: 创建一个服务A:service_hello 创建一个服务B:service_name service_name负责提供一个api接口返回一个name字符串。 service_hello负责从这个接口获取name字符串,然后进行一个字符串拼接,在后面加一个hello&…

Linux - 借助 inotifywait,轻松实现 Linux 文件/目录事件监听

文章目录 inotify-tools 依赖包使用示例 inotify-tools 依赖包 [rootVM-24-3-centos ~]# yum install inotify-tools Loaded plugins: fastestmirror, langpacks Repository epel is listed more than once in the configuration Determining fastest mirrors ...... ...... ..…

市面上那里有稳定L2股票行情数据接口?

随着市场的发展和技术的进步,level2股票行情数据接口已经成为股票交易软件的标准配置之一。虽然这些券商软件的功能在很大程度上相似,但它们仍然有自己的特点和优势。 例如:通过股票交易所以其专业的研究报告和丰富的信息服务而受到广泛关注&…

uniapp - 全平台兼容实现上传图片带进度条功能,用户上传图像到服务器时显示上传进度条效果功能(一键复制源码,开箱即用)

效果图 uniapp小程序/h5网页/app实现上传图片并监听上传进度,显示进度条完整功能示例代码 一键复制,改下样式即可。 全部代码 记得改下样式,或直接

实验篇——家族成员染色体位置分析

实验篇——家族成员染色体位置分析 文章目录 前言一、名词解释二、实操1. 获取存储基因ID的文件2. 获取基因密度文件3. 获取染色体文件4. 执行 总结 前言 在基因家族分析中,通过观察基因家族成员在染色体上的位置。可以判断在染色体上是否成簇分布。 一、名词解释 …

【Python原创毕设|课设】基于Python Flask的上海美食信息与可视化宣传网站项目-文末附下载方式以及往届优秀论文,原创项目其他均为抄袭

基于Python Flask的上海美食信息与可视化宣传网站(获取方式访问文末官网) 一、项目简介二、开发环境三、项目技术四、功能结构五、运行截图六、功能实现七、数据库设计八、源码获取 一、项目简介 随着大数据和人工智能技术的迅速发展,我们设…

stm32之5.长按按键(使用时钟源)调整跑马灯速度

------------------------------ 源码 #include <stm32f4xx.h> #include "led.h" #include "delay.h" #include "my_str.h" #include "beep.h" #include "key.h" int main(void) { key_init(); Led_init();…

完美解决微信小程序使用复选框van-checkbox无法选中

由于小程序使用了vant-ui框架&#xff0c;导致checkbox点击无法选中问题 <van-checkbox value"{{ checked }}" shape"square"><view class"check-content"><view class"checktext">我已阅读并同意>《用户协议》…