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核心节点.
Lio-sam代码分析(1)-基本框架说明_第1张图片

在这里插入图片描述

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.此节点也是作者最重要的更新的部分.

你可能感兴趣的:(slam)