LIO-SAM超级详细源码流程图

0 写在前面

本系列文章是对LIO-SAM源码的学习总结,难免有错漏之处,如果哪里有问题欢迎私聊或者留言指出,感激不尽。

LIO代码已经完整阅读了,还需要对其进行消化总结,后续的文章会在这个专栏持续更新,能点个关注最好啦,关注不迷路^_^,整个流程图在最下面,童叟无欺

1 概述

 上图来自LIO-SAM的论文,为整个系统关键的因子图,总体来看,变量结点为机器人的位姿(包含旋转和平移),因子有:1)Lidar Odometry 2)imu preintegration 3)gps 4)loop closure等四种因子。

总的来说LIO-SAM的源码就是在不停的计算上面提到的四种因子,并将其按照一定的规律添加到因子图中,进行优化然后更新,一直这样循环往复的过程。读者要理解好这个过程,在这样的宏观框架下去进行阅读和理解,就会容易很多。下面简单说一下除GPS外三种因子约束的构建:

2 因子约束的构建

1 lidar odometry

LIO激光里程计的处理类似于LOAM,也是对点云提取角点和面点,对于角点和面点分别将点到直线、点到面的距离作为损失函数,利用非线性优化的方法迭代获取优化后的位姿;优化的初始值由imu里程计提供(或者imu数据)

2 imu preintegration

imu预积分使用了来自激光里程计的位姿估计,利用其进行初始化,并且其也作为imu部分因子图的一个因子参与到因子图的求解当中去。除此之外imu偏置也作为一个因子参与优化,偏置更新后要进行重传播

3 回环检测

LIO的回环使用的是基于欧式距离的方法,对关键帧查找与其相邻的关键帧计算其距离,当距离小与一定的阈值则认为是回环,然后利用icp匹配,获取位姿变换添加到因子图。

3 代码结构

这里代码看的是详细中文注释的版本,注释写得很不错,地址如下:

GitHub - smilefacehh/LIO-SAM-DetailedNote: LIO-SAM源码详细注释,3D SLAM融合激光、IMU、GPS

如图所示为代码文件结构、核心文件为src下面的四个cpp文件,我主要是对这四个文件进行讲解。按照从上到下的顺序讲解。各个文件的主要功能如下图所示。

4 上图

整个图直接拿去,慢慢看哈哈哈喜欢的话点个赞,点个关注

  • 9
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值