FAST-LIO2实战:从零搭建香港大学火星实验室SLAM框架(附官方数据集测试指南)
最近在机器人感知领域,一个名为FAST-LIO2的框架引起了不小的波澜。它出自香港大学火星实验室,以其惊人的计算效率和鲁棒性,迅速成为激光惯性里程计领域的新标杆。如果你正在寻找一个既能处理高速运动,又能在杂乱环境中稳定运行的SLAM方案,那么FAST-LIO2绝对值得你投入时间深入研究。这篇文章,我将带你从零开始,一步步搭建这个框架,并用官方数据集进行验证。整个过程我会穿插我实际部署时踩过的坑和总结的技巧,目标是让你能避开弯路,快速上手并理解其核心运作机制。
1. 环境准备与系统配置
在开始编译代码之前,一个干净、兼容的系统环境是成功的第一步。FAST-LIO2官方推荐在Ubuntu 18.04 + ROS Melodic 或 Ubuntu 20.04 + ROS Noetic 环境下运行。我个人更倾向于使用Ubuntu 20.04,因为它对较新的硬件驱动支持更好,并且其生命周期也更长。无论选择哪个版本,请确保你的系统已经完成了基本的更新。
首先,更新你的软件包列表并升级现有软件:
sudo apt update
sudo apt upgrade -y
接下来是安装ROS。如果你使用的是Ubuntu 20.04,安装ROS Noetic的命令如下:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-noetic-desktop-full -y
安装完成后,别忘了初始化rosdep并设置环境变量,这些步骤对于后续的包编译至关重要:
sudo rosdep init
rosdep update
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
注意:
rosdep init和rosdep update步骤可能会因网络问题失败。如果遇到Website may be down的错误,可以尝试更换网络环境或使用一些国内的镜像源进行配置,具体方法可以搜索相关社区解决方案。
除了ROS,我们还需要安装一些编译工具和依赖库。CMake的版本需要不低于3.10,GCC版本建议在7.0以上。安装以下通用开发工具:
sudo apt install -y build-essential cmake git libeigen3-dev libboost-all-dev
Eigen库是线性代数计算的核心,而Boost库则提供了许多C++扩展功能,两者都是FAST-LIO2的基石依赖。完成这些,你的基础系统环境就准备好了。
2. 依赖项安装与工作空间创建
FAST-LIO2的核心创新之一在于其使用了ikd-Tree这种高效的数据结构进行增量式点云索引。因此,除了框架本身,我们还需要处理两个关键的依赖:Livox SDK(如果你使用Livox雷达)和ikd-Tree。让我们先创建一个专属的ROS工作空间。
mkdir -p ~/fast_lio_ws/src
cd ~/fast_lio_ws/src
catkin_init_workspace
cd ..
catkin_make
source devel/setup.bash
这个 fast_lio_ws 将成为我们所有相关代码的家。接下来,处理Livox雷达的驱动。即使你暂时没有Livox设备,官方数据集的格式也源于此,所以驱动是必须的。
首先,安装Livox-SDK。它不通过ROS包管理,需要单独编译:
cd ~
git clone https://github.com/Livox-SDK/Livox-SDK.git
cd Livox-SDK
mkdir build && cd build
cmake ..
make
sudo make install
然后,将Livox的ROS驱动包克隆到我们的工作空间:
cd ~/fast_lio_ws/src
git clone https://github.com/Livox-SDK/livox_ros_driver.gi

&spm=1001.2101.3001.5002&articleId=150678806&d=1&t=3&u=28cf171728dd4e768492d97abfd19275)
1万+

被折叠的 条评论
为什么被折叠?



