RK3588 Ubuntu20.04 安装 FAST-LIO2 完整教程(适配 Livox MID360)

109 阅读5分钟

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.h
  • FAST_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.h
  • FAST_LIO/src/preprocess.cpp
  • FAST_LIO/src/laserMapping.cpp

注:若编译时仍提示命名空间错误,说明存在遗漏,需全局搜索 livox_ros_driver:: 逐一替换。

具体操作实例:

分别打开FAST_LIO/src/preprocess.hFAST_LIO/src/preprocess.cppFAST_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

配置方式:

  1. 打开 Ubuntu 网络设置 → 有线连接 → IPv4 设置;
  2. 选择「手动」,添加上述静态地址,保存后生效。

编辑

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 的适配问题。按照步骤操作即可快速部署融合定位方案,适用于机器人导航、环境建模等场景。若遇到编译或运行问题,可通过全局搜索错误关键词排查,获取更多解决方案。