FAST-LIVO激光视觉惯性里程计系统完整配置指南
项目概述
FAST-LIVO是一个快速且紧密耦合的稀疏直接激光-惯性-视觉里程计系统。该系统基于两个紧密耦合的直接里程计子系统构建:视觉惯性里程计(VIO)子系统和激光惯性里程计(LIO)子系统。LIO子系统将新扫描的原始点云注册到增量构建的点云地图中,而地图点还附加了图像块,这些图像块随后在VIO子系统中用于通过最小化直接光度误差来对齐新图像,无需提取任何视觉特征。
环境要求
操作系统与ROS
- 操作系统:Ubuntu 16.04~20.04
- ROS版本:Kinetic或Melodic
核心依赖库
系统运行需要以下关键库的支持:
- PCL:版本≥1.6,用于点云处理
- Eigen:版本≥3.3.4,用于线性代数运算
- OpenCV:版本≥3.2,用于图像处理
依赖库安装步骤
Sophus库安装
Sophus库用于李群李代数运算,安装步骤如下:
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
mkdir build && cd build
cmake ..
make
sudo make install
Vikit库安装
Vikit包含相机模型、数学和插值函数,需要作为catkin项目安装:
cd catkin_ws/src
git clone https://github.com/uzh-rpg/rpg_vikit.git
Livox驱动安装
安装Livox激光雷达的ROS驱动程序:
cd catkin_ws/src
git clone https://github.com/Livox-SDK/livox_ros_driver.git
系统部署流程
创建工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
获取项目源码
git clone https://gitcode.com/gh_mirrors/fa/FAST-LIVO
编译构建系统
cd ~/catkin_ws
catkin_make
source devel/setup.bash
关键配置参数详解
传感器话题配置
在config目录下的配置文件中,需要设置以下核心参数:
- lid_topic:激光雷达数据的话题名称
- imu_topic:IMU数据的话题名称
- img_topic:相机数据的话题名称
子系统开关参数
- img_enable:启用视觉惯性里程计子系统
- lidar_enable:启用激光惯性里程计子系统
性能优化参数
- point_filter_num:新扫描的采样间隔,建议值3-4用于更快的里程计,1-2用于更稠密的地图
- outlier_threshold:单个像素光度误差的异常值阈值,建议暗场景50-250,亮场景500-1000
- filter_size_surf:新扫描中点的下采样,室内场景0.05-0.15,室外场景0.3-0.5
系统运行与测试
启动核心节点
roslaunch fast_livo mapping_avia.launch
数据集回放
rosbag play YOUR_DOWNLOADED.bag
基准数据集运行
针对不同的基准数据集,可以使用对应的启动文件:
NTU-VIRAL数据集:
roslaunch fast_livo mapping_avia_ntu.launch
rosbag play YOUR_DOWNLOADED.bag
MARS-LVIG数据集:
roslaunch fast_livo mapping_avia_marslvig.launch
rosbag play YOUR_DOWNLOADED.bag
配置建议与优化
时间同步要求
系统目前仅支持硬件同步的激光-惯性-视觉数据集,由于相机和IMU之间的时间偏移未估计,因此相机和激光雷达的帧头必须在相同的物理触发时间。
参数调优指南
- 点云密度控制:通过point_filter_num参数平衡精度与效率
- 异常值处理:根据场景亮度调整outlier_threshold参数
- 下采样策略:根据室内外场景选择适当的filter_size参数
注意事项
- 系统仅支持硬件同步的激光-惯性-视觉数据集
- 商业使用需要获得授权许可
- 建议使用官方推荐的传感器组合
- 配置文件中需要设置正确的外参矩阵和相机参数
技术支持与资源
- 官方文档:README.md
- 配置文件:config/目录
- 启动文件:launch/目录
通过以上完整的配置流程,您可以成功部署FAST-LIVO系统,并开始进行高精度的激光视觉惯性里程计研究与应用。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




