3d激光SLAMLIO-SAM框架介绍

lio-sam的全称是:tightly-coupled lidar inertial odometry via smoothing and
mapping
从全称上可以看出,该算法是一个紧耦合的雷达惯导里程计(tightly-coupled lidar inertial
odometry),借助的手段就是利用gt-sam库中的方法。
lio-sam 提出了一个利用gt-sam的紧耦合激光雷达惯导里程计的框架。
实现了高精度、实时的移动机器人的轨迹估计和建图。
本篇博客重点解读lio-sam框架下imu预积分功能数据初始化代码部分
lio-sam 的代码主要在其主目录内的src文件夹下的四个cpp文件,分别是:
featureextraction.cpp
imageprojection.cpp
imupreintegration.cpp
mapoptmization.cpp
每个cpp文件是一个独立的ros节点,对应着下图的四个模块
lio-sam的所有文件即对应功能在下面做了如下总结:
lio-sam:│ cmakelists.txt #项目工程配置文件,可以知道作者用了哪些第三方库及cpp生成了什么执行文件
│ license #软件版权
│ package.xml #ros包配置文件
│ readme.md #项目工程说明文件:文件构成、依赖、运行等
│ ├─config│ │ params.yaml #参数文件
│ │ │ └─doc #存储效果图、流程图、论文等
│ │ │ └─kitti2bag #将kitti数据集转换成bag格式
│ kitti2bag.py│ readme.md│ ├─include│ utility.h #参数服务器类,初始化参数;各类公用函数
│ ├─launch│ │ run.launch #总运行launch文件
│ │ │ └─include #分模块运行文件
│ │ module_loam.launch│ │ module_navsat.launch│ │
module_robot_state_publisher.launch│ │ module_rviz.launch│ │ │ ├─config
#存储rviz参数文件和机器人坐标系参数
│ │ rviz.rviz│ │ robot.urdf.xacro│ ├─msg│ cloud_info.msg #自定义ros数据格式
│ ├─src #源文件
│ featureextraction.cpp #提取雷达线面特征,发布雷达点云
│ imageprojection.cpp#订阅提取的雷达点云、imu数据和imu里程计数据,对雷达做畸变矫正,进行雷达前端里程计位姿粗估计的发布(以imu频率)
│ imupreintegration.cpp#imu预积分,订阅雷达里程计和imu数据,估计imu偏置,进行雷达里程计、imu预积分因子的图优化,输出imu里程计。
│ mapoptmization.cpp #订阅雷达前端信息、gps信息,进行点云配准,进行雷达里程计、全局gps、回环检测因子的图优化。
│ └─srv save_map.srv
本篇主要解读 imu预积分部分代码,也就是
imupreintegration.cpp#imu预积分,订阅雷达里程计和imu数据,估计imu偏置,进行雷达里程计、imu预积分因子的图优化,输出imu里程计。

电感三点式振荡器电路
国产存储产业崛起 长江存储有望在2023年赶“英”超“美”
传感器遍布全球需要先满足四大需求
北斗卫星发展新阶段——密集发射 全球组网
食品安全快速检测仪器的使用方法具体是怎样的
3d激光SLAMLIO-SAM框架介绍
美国国会议员认为对区块链实行监管会影响其带来的效率
微处理器散热保护电路的设计
新吉奥年产9万台新能源车身项目顺利通过竣工验收
看懂机器学习和人工智能千丝万缕的关系
浅谈Web渗透之信息收集(下)
基于合宙CC表的工厂量产硬件测试系统来了
中国电子信息制造业的芯片短缺问题
美企可继续向华为出售零部件 不过华为没被移出实体名单
焊接机器人与人工焊接的对比
三相同步发电机的组成及工作原理
【大大芯方案】转换效率再升级,大联大推出基于onsemi产品应用于5KW的电源方案
推动5G商用,美国将分配更多的毫米波频谱,实现高效传输
动力电池HPPC该怎样进行测试呢
关于对Verilog代码的维护问题