FAST-LIO2 是一款高效的激光雷达 - IMU 融合定位算法,具备实时性强、精度高、鲁棒性好等优势,广泛应用于机器人、自动驾驶等领域。本文针对 RK3588 开发板搭载 Ubuntu20.04 系统的场景,详细讲解 FAST-LIO2 的安装、适配 Livox MID360 激光雷达的配置流程,步骤清晰、重点突出,助力开发者快速部署融合定位方案。
一、前置准备:创建工作空间
首先创建 ROS 工作空间(FAST-LIO2 基于 ROS1 开发,需确保系统已安装 ROS Noetic 版本),后续所有源码将下载至该工作空间下:
首先创建 ROS 工作空间(FAST-LIO2 基于 ROS1 开发,需确保系统已安装 ROS Noetic 版本),后续所有源码将下载至该工作空间下:
# 创建工作空间并进入
mkdir -p catkin_ws/src && cd catkin_ws/src
注:若未安装 ROS Noetic,需先参考 ROS 官方文档 完成安装,确保 catkin_make命令可正常使用。
二、核心依赖:安装Livox-SDK2
FAST-LIO2 适配 Livox 激光雷达需依赖 Livox-SDK2,需先完成 SDK 安装与编译:
1. 安装 CMake 编译工具
sudo apt install cmake
2. 下载并编译 Livox-SDK2
# 回到 src 目录,克隆源码
cd ~/catkin_ws/src
git clone https://github.com/Livox-SDK/Livox-SDK2.git
# 编译安装
cd Livox-SDK2
mkdir build && cd build
cmake .. && make -j$(nproc) # 多线程编译,提升效率
sudo make install
注:Livox-SDK2 可下载至任意目录编译,本文统一放置在工作空间 src 下,便于管理。
三、源码下载:获取 ROS 驱动与 FAST-LIO2 工程
1. 下载 livox_ros_driver2(Livox 激光雷达 ROS1 驱动)
cd ~/catkin_ws/src
git clone https://github.com/Livox-SDK/livox_ros_driver2.git
# 编译驱动(指定 ROS1 版本)
cd livox_ros_driver2
./build.sh ROS1
2. 下载 FAST-LIO2 源码及子模块
# 回到 src 目录,克隆 FAST-LIO2
cd ~/catkin_ws/src
git clone https://github.com/hku-mars/FAST_LIO.git
# 初始化并更新子模块(关键步骤,缺失会导致编译失败)
cd FAST_LIO
git submodule update --init
# 回到工作空间根目录
cd ~/catkin_ws
四、代码适配:修改 FAST-LIO2 适配 livox_ros_driver2
由于 FAST-LIO2 默认依赖旧版 livox_ros_driver,需修改代码适配新版 livox_ros_driver2,共 4 处关键修改:
1. 修改 CMakeLists.txt(依赖包名称)
文件路径:FAST_LIO/CMakeLists.txt
# 修改前
find_package(catkin REQUIRED COMPONENTS
...
livox_ros_driver # 旧版驱动名称
...
)
# 修改后
find_package(catkin REQUIRED COMPONENTS
...
livox_ros_driver2 # 新版驱动名称
...
)
2. 修改 package.xml(依赖声明)
文件路径:FAST_LIO/package.xml
# 修改前
<build_depend>livox_ros_driver</build_depend>
<run_depend>livox_ros_driver</run_depend>
# 修改后
<build_depend>livox_ros_driver2</build_depend>
<run_depend>livox_ros_driver2</run_depend>
3. 修改头文件引用(驱动头文件路径)
需修改 2 个文件:
FAST_LIO/src/preprocess.hFAST_LIO/src/laserMapping.cpp
# 修改前
#include <livox_ros_driver/CustomMsg.h>
# 修改后
#include <livox_ros_driver2/CustomMsg.h>
4. 修改命名空间(驱动命名空间适配)
需修改 3 个文件中所有 livox_ros_driver:: 命名空间,替换为 livox_ros_driver2:::
FAST_LIO/src/preprocess.hFAST_LIO/src/preprocess.cppFAST_LIO/src/laserMapping.cpp
注:若编译时仍提示命名空间错误,说明存在遗漏,需全局搜索 livox_ros_driver:: 逐一替换。
具体操作实例:
分别打开FAST_LIO/src/preprocess.h、FAST_LIO/src/preprocess.cpp、FAST_LIO/src/laserMapping.cpp中的命名空间,有多处需要修改
修改前:
livox_ros_driver::
修改后:
livox_ros_driver2::
4. 编译工程
fast_lio的编译依赖于livox_ros_driver2包,因此需要确保livox_ros_driver2在编译fast_lio之前编译,然后再编译整个工程。如果livox_ros_driver2还未编译,需要先将FAST_LIO移出src文件夹,编译livox_ros_driver2后再将FAST_LIO移回来。
因此编译顺序关键:需先确保 livox_ros_driver2 编译完成,再编译 FAST-LIO2,否则会因依赖缺失失败。
1. 编译检查与处理
若已下载 FAST-LIO2 源码,需先临时移出 src 目录,单独编译 livox_ros_driver2:
# 临时移出 FAST-LIO2(若已放在 src 下)
mv ~/catkin_ws/src/FAST_LIO ~/
# 编译 livox_ros_driver2
cd ~/catkin_ws
catkin_make -DCATKIN_WHITELIST_PACKAGES="livox_ros_driver2"
# 移回 FAST-LIO2
mv ~/FAST_LIO ~/catkin_ws/src/
2. 编译整个工程
cd ~/catkin_ws
catkin_make
编译成功后,终端会显示 [100%] Built target fastlio_mapping,若出现 pcl::uint16_t 废弃警告,属正常现象,不影响功能使用。
如果还有编译错误提示,那就说明livox_ros_driver::没有全部改成livox_ros_driver2::。
六、硬件配置:修改 IP 与 Livox MID360 配置
1. 配置电脑 IP 地址
Livox MID360 与电脑需在同一局域网,建议将电脑 IP 静态设置为:
- IP 地址:192.168.1.5
- 子网掩码:255.255.255.0
- 网关:192.168.1.254
配置方式:
- 打开 Ubuntu 网络设置 → 有线连接 → IPv4 设置;
- 选择「手动」,添加上述静态地址,保存后生效。
编辑
2. 配置 Livox MID360 IP 地址
MID360 的 IP 由设备 SN 码生成,规则:SN 码后两位数字前加「1」,例如 SN 后两位为「12」,则 IP 为 192.168.1.112。
修改配置文件:livox_ros_driver2/config/MID360_config.json
编辑
七、运行测试:启动 FAST-LIO2 与激光雷达
1. 启动 Livox MID360 驱动
打开第一个终端,执行:
cd ~/catkin_ws
source devel/setup.bash
roslaunch livox_ros_driver2 msg_MID360.launch
启动成功后,终端会持续输出「Handle detection data」日志,说明激光雷达已正常连接。
2. 启动 FAST-LIO2 融合定位
打开第二个终端,执行:
cd ~/catkin_ws
source devel/setup.bash
roslaunch fast_lio mapping_mid360.launch
启动成功后,会自动弹出 RVIZ 可视化界面,实时显示激光雷达点云与定位结果。
关键注意事项
- 运行时需断开 WIFI,仅保留有线连接,避免网络干扰导致点云显示异常;
- 若 RVIZ 无点云,检查 IP 配置是否正确、激光雷达是否通电、USB / 以太网连接是否稳定;
- 若出现「找不到自定义消息」错误,重新执行
source devel/setup.bash或重启终端。
本文围绕 RK3588 Ubuntu20.04 系统,完成了从依赖安装、源码适配到硬件配置、运行测试的全流程讲解,核心解决了 livox_ros_driver2 与 FAST-LIO2 的适配问题。按照步骤操作即可快速部署融合定位方案,适用于机器人导航、环境建模等场景。若遇到编译或运行问题,可通过全局搜索错误关键词排查,获取更多解决方案。