跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++AI算法

FAST_LIO 与 FAST_LIO2 算法原理及 ROS2 环境复现

FAST_LIO 是一种基于紧耦合迭代卡尔曼滤波器的激光惯性里程计框架,FAST_LIO2 在此基础上优化了特征提取和点云存储方式。详细阐述了两种算法的核心原理,提供了基于 Ubuntu 22.04 和 ROS2 Humble 的环境搭建步骤,包括 Docker 容器配置、第三方库安装及编译流程,并演示了如何使用测试数据进行算法验证。

萤火微光发布于 2026/3/25更新于 2026/10/24118 浏览
FAST_LIO 与 FAST_LIO2 算法原理及 ROS2 环境复现

FAST_LIO 与 FAST_LIO2 算法原理及 ROS2 环境复现

算法原理简介

FAST_LIO 提出了一种计算高效且鲁棒的激光雷达惯性里程计(LIO)框架。它采用紧耦合的迭代扩展卡尔曼滤波器,将激光雷达特征点与 IMU 数据进行融合,从而在快速运动、噪声较大或环境退化的场景下实现稳健导航。

FAST_LIO2 在此基础上进行了优化,构建了一个快速、强大且多功能的 LIO 框架。相比 FAST_LIO,其主要改进在于:

  1. 去掉了特征提取模块,直接使用原始点云进行匹配。
  2. 引入 ikd-tree 数据结构来存储和管理点云,提升了搜索效率。

运行环境配置

本文基于 Ubuntu 22.04 和 ROS2 Humble 版本进行演示。为了确保环境隔离性,推荐使用 Docker 容器。

创建 Docker 容器

docker run -it -p 6080:80 -p 10000:10000 \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -e DISPLAY=host.docker.internal:0.0 \
  -e PULSE_SERVER=host.docker.internal \
  --name=DockerUnityRos2Car4 \
  docker.1ms.run/ubuntu:22.04 /bin/bash

安装 ROS2

进入容器后,首先更新源并安装基础工具:

sudo apt update
sudo apt-get install sudo -y
sudo apt-get install software-properties-common -y
sudo add-apt-repository universe

接着添加 ROS2 官方密钥源(需确保网络连接正常):

sudo apt-get install curl gnupg2 -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update && sudo apt upgrade -y
sudo apt-get install ros-humble-desktop -y

配置环境变量,避免每次手动 source:

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

安装第三方依赖库

我们需要安装一些核心数学库和驱动支持:

# 通用工具
sudo apt-get install python3-colcon-common-extensions -y
sudo apt-get install ros-humble-rqt-tf-tree -y
sudo apt-get install gdb -y
sudo apt-get install ros-${ROS_DISTRO}-pcl-ros -y
Livox SDK
git clone https://github.com/Livox-SDK/Livox-SDK2.git
cd third_party_libraries/Livox-SDK2
mkdir build && cd build
cmake .. && make -j
sudo make install
Sophus
git clone https://github.com/strasdat/Sophus.git
cd third_party_libraries/Sophus
git checkout 1.22.10
mkdir build && cd build
cmake .. -DSOPHUS_USE_BASIC_LOGGING=ON
make
sudo make install
GTSAM
git clone https://github.com/borglab/gtsam.git
cd third_party_libraries/gtsam
mkdir build && cd build
cmake ..
sudo make install

编译项目

首次编译需要初始化驱动:

cd 2_replicate_fast_lio_two_version/src/livox_ros_driver2
chmod +x build.sh
./build.sh humble

后续编译使用 colcon:

cd 2_replicate_fast_lio_two_version/
colcon build

运行测试

数据集准备

请提前准备好对应的 LiDAR 与 IMU 同步的 rosbag 数据文件,并将其放置于工作目录下的 src/docs/place_data_here/ 路径中。

FAST_LIO 算法运行

启动 bag 包并加载映射配置:

cd 2_replicate_fast_lio_two_version
source install/setup.bash
ros2 bag play /root/2_replicate_fast_lio_two_version/src/docs/place_data_here/rosbag2_2024_06_20-16_46_47

在另一个终端执行 launch 命令:

cd 2_replicate_fast_lio_two_version
source install/setup.bash
ros2 launch fast_lio mapping.launch.py config_file:=mid360.yaml

FAST_LIO2 算法运行

同样先播放数据:

cd 2_replicate_fast_lio_two_version
source install/setup.bash
ros2 bag play /root/2_replicate_fast_lio_two_version/src/docs/place_data_here/rosbag2_2024_06_20-16_46_47

然后启动 FastLio2 节点:

cd 2_replicate_fast_lio_two_version
source install/setup.bash
ros2 launch fastlio2 lio_launch.py

参考资料

  • FAST-LIO: A Fast, Robust LiDAR-inertial Odometry Package by Tightly-Coupled Iterated Kalman Filter (arXiv)
  • Ericsii/FAST_LIO_ROS2: ROS2 version of FAST_LIO2 (GitHub)

目录

  1. FASTLIO 与 FASTLIO2 算法原理及 ROS2 环境复现
  2. 算法原理简介
  3. 运行环境配置
  4. 创建 Docker 容器
  5. 安装 ROS2
  6. 安装第三方依赖库
  7. 通用工具
  8. Livox SDK
  9. Sophus
  10. GTSAM
  11. 编译项目
  12. 运行测试
  13. 数据集准备
  14. FAST_LIO 算法运行
  15. FAST_LIO2 算法运行
  16. 参考资料

更多推荐文章

查看全部
  • 机器人 DH 参数模型与正运动学
  • Claude Code 工程化实践:Hooks + Commands + Agents 协同提升开发效率
  • Android WebView 内核升级方案与 H.265 硬解实践
  • Python 爬虫实战:抓取 BOSS 直聘与智联招聘岗位信息
  • 工程项目管理系统功能清单(Spring Cloud+Vue)
  • MySQL Range 分区实战:解决千万级数据查询性能瓶颈
  • 逆向 WebChat 协议:为 OpenClaw 打造零侵入接入方案
  • SRS 流媒体服务器安装配置与使用指南
  • 七大 AIGC 测试工具横向评测:选型指南与实战分析
  • OpenClaw 本地部署指南:快速搭建自托管 AI 管家
  • 解决 VsCode 远程 SSH 环境下 Copilot Claude 模型与 Agent 异常问题
  • Stable Diffusion 整合包安装与使用指南
  • C++ 入门:命名空间、引用与函数重载详解
  • 六款免费 AI 写作工具实测:网文创作与去 AI 味方案
  • Windows 11 环境下 Python 3.12.5 安装与配置实战
  • C++ AIGC 延迟优化核心技术与实战策略
  • AI 大模型迈入应用时代,推动“可控大模型”落地
  • 如何下载、安装whisper、faster_whisper?
  • C++ 内存序深度解析:6 种内存模型与多线程同步
  • 数据结构:基于队列的二叉树深度计算(层次遍历实现)

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online