slam学习笔记8---fastlio2运行效率高缘由

前言:lio里面,fastlio2的精度和速度表现很显眼。有必要总结一下运行效果高的缘由。参考各大家,从个人对fastlio2理解,汇总所得。

Fast-LIO2 运行速度快的主要原因可以归结为以下几个方面:

🔹 1. 采用增量式 KD 树(IKD-Tree),高效管理点云

● IKD-Tree(Incremental KD-Tree) 允许动态添加和删除点,而不像传统 KD-Tree 需要完全重建索引。

● 加速最近邻搜索(Nearest Neighbor Search),提高点云匹配效率。

● 避免构建全局地图,只维护局部滑动窗口地图,减少计算量。

✅ 优化点云匹配,使得 LIO 计算更快。

🔹 2. 采用扩展卡尔曼滤波(EKF),替代 BA 优化

● 传统 LIO-SAM 等方法采用 因子图优化(Batch Optimization),计算量较大。

● Fast-LIO2 采用基于扩展卡尔曼滤波(EKF)的递推估计,可以逐帧更新状态,而无需全局优化。

● 不需要回溯优化,减少计算复杂度,使得每帧 LiDAR 数据处理更快。

✅ 利用 EKF 避免大规模优化,使实时性更强。

🔹 3. 采用紧耦合(Tightly Coupled)IMU 预积分,提高初始估计

● IMU 预积分(Preintegration) 可以在 LiDAR 里程计计算前,提供一个较为精准的先验估计。

● 减小点云匹配的计算压力,提高匹配成功率,减少错误匹配带来的优化迭代次数。

● 在高速运动或激光雷达点云稀疏的场景下(如固态雷达),IMU 提供更稳定的姿态估计,减少点云畸变的影响。

✅ IMU 预积分降低点云计算负担,提高里程计算效率。

🔹 4. 直接在状态空间中优化,减少点云拟合计算

● 传统 LOAM 采用点到线、点到面优化,需要迭代拟合多个特征方程。

● Fast-LIO2 直接在状态空间中优化位姿,而不是单独优化点云误差。

● 避免额外的非线性优化,提高计算效率。

✅ 减少不必要的计算步骤,使 LIO 更加实时。

🔹 5. 仅维护局部地图,避免大规模点云存储

● 传统 LIO-SAM 维护 全局点云地图,数据量大,计算慢。

● Fast-LIO2 仅保留局部滑动窗口地图,并通过 IKD-Tree 实现动态更新,无需全量重建地图。

● 旧点云自动移除,降低内存使用,提高查询速度。

✅ 只保留关键数据,减少冗余计算。

🔹 6. 高效的多线程并行处理

● Fast-LIO2 采用多线程架构,不同任务可以并行计算:

○ IMU 预积分(并行执行)

○ 点云去畸变(异步处理)

○ 点云匹配(主线程计算)

○ 状态更新 & 地图维护(后台线程)

○ 充分利用多核 CPU 资源,加速计算。

✅ 多线程架构减少等待时间,提高吞吐量。

🔹 7. 轻量级 C++ 实现,优化 CPU 使用

● 采用 轻量级 C++ 代码,减少不必要的运算和内存占用。

● 相比 LIO-SAM,Fast-LIO2 依赖更少,代码更加紧凑。

● 适合嵌入式计算设备,如 Jetson TX2、树莓派、低功耗 CPU。

✅ 高效 C++ 代码 + 精简实现,提升计算效率。

🔹 8. 针对高动态环境优化

● 传统 LIO 方法在高速运动时(如无人机、自动驾驶)可能会出现漂移。

● Fast-LIO2 结合 IMU 进行动态补偿,减少运动畸变对点云匹配的影响。

● 在高速场景下,仍能保持高精度,且计算量不增加。

✅ 适用于高动态环境,如无人机、自动驾驶。

🔹 总结:Fast-LIO2 为什么快?

关键优化点 :作用

IKD-Tree :动态点云管理,快速最近邻搜索

EKF 递推优化 :避免全局优化,减少计算量

IMU 预积分 :先验估计,提高匹配效率

状态空间优化 : 直接优化位姿,减少非线性计算

局部地图维护 : 仅存储关键点,减少内存和计算负担

多线程并行 : 提高 CPU 资源利用率

轻量级 C++ 实现 :适用于嵌入式设备,降低计算开销

高动态环境优化 : 适应无人机、自动驾驶等高速运动场景

✅ Fast-LIO2 通过高效的数据结构(IKD-Tree)、优化方法(EKF)和并行计算,极大提升了 LiDAR 里程计的计算速度

###################

好记性不如烂笔头

积跬步期千里

觉得不错的话,记得点赞收藏

相关推荐
再睡一夏就好11 分钟前
【C++闯关笔记】unordered_map与unordered_set的底层:哈希表(哈希桶)
开发语言·c++·笔记·学习·哈希算法·散列表
摇滚侠1 小时前
Spring Boot3零基础教程,为什么有Reactive-Stream 规范,响应式编程,笔记101
java·spring boot·笔记
TL滕2 小时前
从0开始学算法——第一天(认识算法)
数据结构·笔记·学习·算法
YuforiaCode2 小时前
神领物流v2.0-day3-运费微服务笔记(个人记录、含练习答案、仅供参考)
笔记
zhangrelay2 小时前
如何使用AI快速编程实现标注ROS2中sensor_msgs/msg/Image图像色彩webots2025a
人工智能·笔记·opencv·学习·计算机视觉·机器人视觉
m0_598250003 小时前
电源完整性07-如何确定PDN网络中的大电容
笔记·单片机·嵌入式硬件·硬件工程
摇滚侠4 小时前
Spring Boot3零基础教程,Reactive-Stream 规范核心接口,笔记103
java·spring boot·笔记
!!!!!!!!!!!!!!!!.5 小时前
CTF WEB入门 命令执行篇29-49
笔记·安全
bnsarocket5 小时前
Verilog和FPGA的自学笔记8——按键消抖与模块化设计
笔记·fpga开发·verilog·自学·硬件编程
TL滕6 小时前
从0开始学算法——第一天(如何高效学习算法)
数据结构·笔记·学习·算法