保姆级教程:在Ubuntu18.04上为速腾16线雷达配置Fast-LIO2建图(含IMU标定与避坑)
保姆级教程:Ubuntu 18.04下速腾16线雷达与Fast-LIO2的完整部署指南
当你第一次尝试将速腾16线激光雷达与IMU设备整合到Fast-LIO2建图系统中时,可能会被ROS生态中复杂的依赖关系和配置步骤所困扰。本教程将从零开始,手把手带你完成整个流程,特别针对Ubuntu 18.04和ROS Melodic环境优化,涵盖从驱动安装到最终建图的每个细节。
1. 环境准备与基础配置
在开始之前,确保你的系统已经安装了Ubuntu 18.04 LTS和ROS Melodic完整版。ROS的安装可以通过以下命令完成:
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-melodic-desktop-full echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc关键依赖安装:
- PCL 1.8+:
sudo apt install libpcl-dev - Eigen 3.3.4+:
sudo apt install libeigen3-dev - 其他必要工具:
sudo apt install git cmake build-essential
提示:建议在开始前创建一个专门的工作空间,避免与现有ROS项目冲突:
mkdir -p ~/fastlio_ws/src cd ~/fastlio_ws catkin_make source devel/setup.bash
2. 速腾16线雷达驱动配置
速腾雷达(RS-Helios-16P)的官方驱动需要特定配置才能与Fast-LIO2兼容。首先下载并编译驱动:
cd ~/fastlio_ws/src git clone https://github.com/RoboSense-LiDAR/rslidar_sdk.git cd rslidar_sdk git submodule update --init --recursiveCMake关键修改: 打开rslidar_sdk/CMakeLists.txt,确保以下选项正确设置:
- 设置
POINT_TYPE为XYZIRT - 启用
ROS支持 - 禁用
PCL可视化(除非需要)
编译驱动:
cd ~/fastlio_ws catkin_make -DCMAKE_BUILD_TYPE=Release数据格式转换: Fast-LIO2需要Velodyne格式的点云数据,安装转换包:
cd ~/fastlio_ws/src git clone https://github.com/HViktorTsoi/rs_to_velodyne.git创建启动文件rs_to_velodyne/launch/velodyne.launch:
<launch> <node pkg="rs_to_velodyne" name="rs_to_velodyne" type="rs_to_velodyne" args="XYZIRT XYZIRT" output="screen"> </node> </launch>3. IMU设备配置与标定
常见的WHT901B-485 IMU需要特殊权限和驱动配置。首先解决串口权限问题:
sudo usermod -a -G dialout $USER sudo chmod 777 /dev/ttyUSB0安装IMU驱动:
cd ~/fastlio_ws/src git clone https://github.com/WITMOTION/wit_ros_imu.git cd ~/fastlio_ws catkin_makeIMU标定要点:
- 将IMU静置水平表面至少30分钟进行零偏校准
- 使用
imu_utils工具包进行更精确的标定:roslaunch imu_utils wit_imu.launch - 缓慢旋转IMU各轴完成标定过程
标定结果将生成在~/fastlio_ws/bag/imu_calibration.yaml,需要在Fast-LIO2配置中引用。
4. Fast-LIO2算法部署与配置
下载并编译Fast-LIO2核心算法:
cd ~/fastlio_ws/src git clone https://github.com/hku-mars/FAST_LIO.git cd FAST_LIO git submodule update --init cd ~/fastlio_ws catkin_make关键配置文件修改: 编辑FAST_LIO/config/velodyne.yaml,主要调整:
- 点云话题:
/velodyne_points - IMU话题:
/wit/imu - 点云预处理参数
- 运动补偿设置
对于速腾16线雷达,特别需要注意:
pointCloudTopic: "/velodyne_points" imuTopic: "/wit/imu" lidarType: 1 # Velodyne格式 pointFilterNum: 1 # 降采样率 featureExtractEnable: false # 关闭特征提取5. 系统集成与实时建图
启动顺序与技巧:
首先启动IMU节点:
source ~/fastlio_ws/devel/setup.bash roslaunch wit_ros_imu wit_ros_imu.launch启动速腾雷达驱动:
roslaunch rslidar_sdk start.launch运行数据格式转换:
roslaunch rs_to_velodyne velodyne.launch最后启动Fast-LIO2建图:
roslaunch fast_lio mapping_velodyne.launch
常见问题排查:
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 无点云显示 | 雷达IP未设置 | 检查雷达网络配置 |
| IMU数据异常 | 串口权限问题 | 重新设置/dev/ttyUSB*权限 |
| 建图漂移严重 | IMU未标定 | 重新进行IMU标定流程 |
| 点云畸变 | 时间同步问题 | 检查设备时间同步机制 |
在实际项目中,我发现速腾雷达与IMU的硬件同步至关重要。如果条件允许,建议使用PTP时间同步协议,或者至少确保所有设备使用相同的时间源。另外,建图过程中保持环境有足够的特征点,避免长走廊或空旷区域导致的累积误差。
