SLAM技术之FAST_LIO和FAST_LIO2算法复现
FAST_LIO与FAST_LIO2算法复现指南
FAST_LIO(Fast LiDAR-Inertial Odometry)及其改进版FAST_LIO2是高效的激光雷达-惯性里程计算法,基于紧耦合的迭代误差状态卡尔曼滤波(IESKF)实现。以下是复现关键步骤:
环境配置
系统要求:Ubuntu 18.04/20.04,ROS Melodic/Noetic
依赖安装:
sudo apt-get install ros-${ROS_DISTRO}-cv-bridge ros-${ROS_DISTRO}-tf sudo apt-get install libomp-dev libceres-dev Eigen3.3.7+:需手动安装高版本Eigen(FAST_LIO2要求Eigen≥3.3.7):
git clone https://gitlab.com/libeigen/eigen.git cd eigen && mkdir build && cd build cmake .. && sudo make install 源码编译
FAST_LIO:
git clone https://github.com/hku-mars/FAST_LIO.git cd FAST_LIO && mkdir build && cd build cmake .. && make -j4 FAST_LIO2:
git clone https://github.com/hku-mars/FAST_LIO2.git cd FAST_LIO2 && mkdir build && cd build cmake .. && make -j4
数据集准备
支持格式:
- ROS bag文件(需包含
/imu和/points话题) - 公开数据集(如NTU VIRAL、HILTI等)
数据播放:
rosbag play your_bag.bag --clock 参数配置
关键参数文件:
config/velodyne.yaml(传感器参数)config/mapping.yaml(算法参数)
修改示例:
# velodyne.yaml lidar_topic: "/points" imu_topic: "/imu" 运行与可视化
启动FAST_LIO:
roslaunch fast_lio mapping_velodyne.launch 启动FAST_LIO2:
roslaunch fast_lio2 mapping_velodyne.launch 可视化工具:
- RViz:显示点云地图和轨迹
rosrun rviz rviz加载配置config/rviz_config.rviz
性能调优
常见调整参数:
max_iteration:IESKF最大迭代次数(默认4-6)cube_side_length:地图分辨率(默认200m)filter_size_surf:点云降采样分辨率
实时性优化:
- 启用
fov_degree限制视场角 - 降低
max_points_num减少计算量
注意事项
- 时间同步:确保IMU和LiDAR时间戳严格同步,否则需外部同步工具。
- 传感器标定:提供准确的LiDAR-IMU外参(
extrinsic_T和extrinsic_R)。 - 点云类型:支持非结构化点云(如Velodyne、Ouster),需在配置中指定
point_type。
通过上述步骤可完成算法复现,具体效果取决于传感器质量与环境复杂度。建议从公开数据集开始验证。