跳到主要内容
极客日志极客日志面向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/9/1183 浏览
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. 参考资料

更多推荐文章

查看全部
  • C++ 基础实战:从循环控制到算法入门
  • Openclaw 开源仿生机械爪设计与应用解析
  • OpenCLaw 对接本地 Ollama 与 Qwen WebUI 无响应排查
  • Python ddgs 模块安装与实战:调用 DuckDuckGo 搜索 API
  • Kiro 辅助 Python 开发实战指南
  • Java 数据结构:从树形结构到二叉树详解
  • Linux 环境下 MAT 高效分析超大 Java 堆 dump 实战
  • ComfyUI_smZNodes 安装指南:实现跨平台 AI 绘画效果一致
  • AI 绘画平民化:开源镜像 + 千元显卡运行 Z-Image-Turbo 部署指南
  • 基于 Web Unlocker 和 n8n 的自动化资讯采集与推送系统
  • HTML Popover API 实战:用原生属性替代 JS 组件库实现浮层交互
  • Python 商业爬虫三大核心项目全流程落地指南
  • JavaScript 原生实现图片轮播图
  • Android 开发进阶:Framework 源码与系统启动流程解析
  • 使用 KSWEB 在安卓手机部署 Typecho 博客并实现外网访问
  • 35 岁以上失业人群的三个选择及商业机会
  • 详解大模型上下文窗口 200k 的含义与 Token 概念
  • ROS2 Humble + slam_toolbox 激光雷达建图实战指南
  • Openclaw 开源仿生机械爪:原理、应用与生态解析
  • Java 后端 Web API 开发实战:从架构到部署

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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