LIO-SAM论文阅读笔记

本文分析了LOAM存在的地图存储、大场景漂移及优化效率问题,提出通过在因子图中整合激光里程计、IMU预积分、GPS和回环约束,实现紧耦合优化。作者详细描述了新算法的四个关键因子及其在软件系统中的应用,实验表明算法性能受地图稠密度影响较大。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LOAM存在的问题

(1)地图的存储方式导致难以检测回环以及增加其他传感器信息

(2)在大场景情况下会漂移

(3)在特征丰富环境,voxel_map 会变得稠密,导致优化没有效率

核心思想

将激光里程计,IMU 预积分,GPS,回环等约束添加到因子图中,从而实现紧耦合的优化

软件系统框图

image-20220511120216478

四种因子

IMU 预积分

IMU 预积分可以用来 de-skews 当前帧点云

激光里程计

(1)与 LOAM 或者 Lego-LOAM 一样提取线面特征

(2)利用局部关键帧构建 voxel map:选择距离当前关键帧最近的 n 个关键帧,将其线面特征进行合并形成地图

(3)与 LOAM 一样寻找当前关键帧与局部地图的匹配关系,并进行优化求解(利用 IMU 预积分作为初始值),从而获得与上一个关键帧的相对位姿

(4)根据位姿变化选取关键帧(保持因子图的稀疏)

注:激光里程计可以用于估计 IMU 的 bias

GPS

将 GPS 数据转换到局部笛卡尔坐标系

注:这里作者发现误差变化缓慢,所以只是在位姿估计的协方差大于 GPS 协方差时才添加 GPS 因子

回环

利用欧式距离检测回环,但也可以用其他方法

选择距离当前关键帧15m内的关键帧作为回环帧,然后选择回环帧前后

lio-sam是一个开源项目,是LIO(Linux内核iSCSI target)模块的一个分支。它是专门为高性能和可扩展性而设计的iSCSI目标代码。 lio-sam项目的主要目标是提供一个高性能的iSCSI目标,同时保持Linux kernel的稳定性和可靠性。它在传输层使用Scst(SCSI target实现)和LIO(Linux iSCSI实现)的组合,并有一些优化以提高性能。它还支持各种iSCSI功能,如CHAP认证、数据压缩和IPsec等。 代码阅读lio-sam对Linux内核和iSCSI有一定的了解是很有帮助的。lio-sam使用了一些Linux内核的机制,如工作队列和内存管理。了解这些机制将有助于理解lio-sam的实现原理和性能优化技巧。 在阅读lio-sam代码时,可以关注以下几个方面: 1. LIO模块的初始化和配置:lio-sam在加载模块时进行一些初始化工作,包括创建Scst的实例和配置iSCSI target。了解这些步骤可以帮助理解lio-sam的工作流程和配置方式。 2. iSCSI连接管理:lio-sam负责管理iSCSI连接,包括连接的建立、维护和中断。了解连接管理的实现原理可以帮助理解lio-sam如何处理多个客户端的连接和请求。 3. SCSI命令处理:lio-sam的核心功能是处理SCSI命令。了解lio-sam如何解析SCSI命令、调用底层存储设备和返回响应可以帮助理解其工作原理和性能优化方法。 4. 性能优化技巧:lio-sam的设计目标之一是提高性能。代码中可能包含一些性能优化技巧,如批量处理、IO调度和缓存管理等。了解这些技巧可以帮助优化自己的应用程序。 需要注意的是,代码阅读是一项耗时耗力的工作,需要具备一定的编程和系统知识。在阅读代码时,可以结合官方文档、论坛和社区来获取更多的信息和帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值