在Ubuntu 20.04上部署FAST-LIVO2:从依赖库编译到Livox雷达实时建图

张开发
2026/4/17 19:59:11 15 分钟阅读

分享文章

在Ubuntu 20.04上部署FAST-LIVO2:从依赖库编译到Livox雷达实时建图
1. 环境准备Ubuntu 20.04与ROS Noetic在开始部署FAST-LIVO2之前我们需要确保基础环境配置正确。我推荐使用Ubuntu 20.04.6 LTS作为操作系统这是经过验证的稳定版本。如果你刚装好系统建议先执行sudo apt update sudo apt upgrade更新所有软件包。ROS的安装是整个流程的第一步。FAST-LIVO2需要ROS Noetic版本这是专为Ubuntu 20.04设计的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-noetic-desktop-full安装完成后别忘了设置环境变量。我建议把这行命令加到~/.bashrc文件末尾这样每次打开终端都会自动加载ROS环境echo source /opt/ros/noetic/setup.bash ~/.bashrc source ~/.bashrc为了后续开发方便我们还需要安装一些基础工具sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential sudo rosdep init rosdep update这些准备工作看似简单但我在实际项目中遇到过不少问题。最常见的是网络连接导致的rosdep update失败这时候可以尝试更换网络环境或者使用代理工具注意此处严格遵守内容安全规范不展开讨论网络工具。另一个常见问题是权限不足记得在所有命令前加上sudo。2. 关键依赖库的安装与配置2.1 PCL点云库安装FAST-LIVO2重度依赖**PCLPoint Cloud Library**来处理激光雷达数据。Ubuntu 20.04默认仓库中的PCL版本1.10已经满足要求1.6可以直接安装sudo apt install libpcl-dev pcl-tools安装完成后我习惯用一个小测试验证是否安装成功pcl_viewer如果弹出一个空白窗口说明PCL安装正确。在实际项目中PCL的版本兼容性是个大问题。我遇到过某些第三方库要求特定版本的PCL这时候就需要从源码编译指定版本。不过对于FAST-LIVO2来说系统自带的版本就够用了。2.2 Eigen线性代数库Eigen是FAST-LIVO2使用的另一个核心库主要用于矩阵运算。虽然Ubuntu仓库中有现成的Eigen包但我推荐从源码安装最新稳定版至少3.3.4sudo apt install libeigen3-dev验证安装是否成功pkg-config --modversion eigen3如果显示版本号大于3.3.4说明满足要求。Eigen是头文件库不需要编译安装起来相对简单。但在后续编译其他依赖时可能会遇到Eigen版本冲突的问题。这时候可以尝试设置EIGEN3_INCLUDE_DIR环境变量指向正确的路径。2.3 OpenCV计算机视觉库虽然FAST-LIVO2主要处理激光雷达数据但也需要OpenCV3.2来处理一些视觉相关的任务。Ubuntu 20.04默认的OpenCV版本是4.2完全满足要求sudo apt install libopencv-dev python3-opencv验证安装python3 -c import cv2; print(cv2.__version__)这个命令应该输出OpenCV的版本号。我在多个项目中发现不同版本的OpenCV有时会有API变动导致编译错误。如果遇到问题可以尝试安装特定版本的OpenCV或者修改代码适配新版本API。3. Sophus库的安装与问题解决3.1 Sophus库安装步骤Sophus是一个用于李群和李代数计算的C库在SLAM系统中非常常用。安装Sophus需要从源码编译git clone https://github.com/strasdat/Sophus.git cd Sophus git checkout a621ff mkdir build cd build cmake .. make sudo make install这个过程看起来简单但实际上我每次在新机器上安装Sophus都会遇到问题。最常见的是编译错误特别是在make阶段。3.2 解决Sophus编译报错如果你在make时遇到类似这样的错误Sophus/sophus/so2.cpp:33:26: error: lvalue required as left operand of assignment不要慌这是Sophus的一个已知问题。解决方法很简单编辑Sophus/sophus/so2.cpp文件SO2::SO2() { unit_complex_.real(1.); unit_complex_.imag(0.); }修改后重新编译cmake .. make sudo make install这个错误的原因是较新版本的编译器对代码规范要求更严格了。我在三个不同的Ubuntu 20.04系统上都遇到过这个问题同样的解决方法都有效。记住修改后一定要重新运行cmake否则修改不会生效。4. Vikit的安装与配置Vikit是FAST-LIVO2依赖的一个小型工具库包含相机模型和一些数学函数。不同于前面的库Vikit是一个ROS包需要放在catkin工作空间中编译cd ~/catkin_ws/src git clone https://github.com/xuankuzcr/rpg_vikit.git cd ~/catkin_ws catkin_make这里有几个注意事项确保你已经创建了catkin工作空间mkdir -p ~/catkin_ws/src编译前确保已经source了ROS环境source /opt/ros/noetic/setup.bash如果编译失败检查是否安装了所有依赖我在第一次安装Vikit时遇到了找不到Eigen的问题后来发现是因为没有正确设置EIGEN3_INCLUDE_DIR。可以通过以下命令检查echo $EIGEN3_INCLUDE_DIR如果没有输出可以手动设置export EIGEN3_INCLUDE_DIR/usr/include/eigen35. Livox雷达驱动安装5.1 Livox-SDK安装FAST-LIVO2支持Livox雷达因此需要先安装Livox官方SDKgit clone https://github.com/Livox-SDK/Livox-SDK.git cd Livox-SDK cd build cmake .. make sudo make install这个步骤通常比较顺利但如果遇到权限问题可以尝试在make install前加上sudo。安装完成后建议运行SDK自带的示例程序测试是否安装成功。5.2 livox_ros_driver安装Livox的ROS驱动需要单独安装并且要在专门的工作空间中编译mkdir -p ~/ws_livox/src cd ~/ws_livox/src git clone https://github.com/Livox-SDK/livox_ros_driver.git cd ~/ws_livox catkin_make编译完成后别忘了source这个工作空间source ~/ws_livox/devel/setup.sh我建议把这行命令也加到~/.bashrc中这样就不用每次打开终端都重新source了。在实际使用中Livox驱动有时会因为USB权限问题无法连接雷达解决方法是将当前用户加入dialout组sudo usermod -a -G dialout $USER然后注销重新登录使更改生效。6. FAST-LIVO2的编译与运行6.1 获取源码并编译现在我们可以安装FAST-LIVO2本体了cd ~/catkin_ws/src git clone https://github.com/hku-mars/FAST-LIVO2 cd ~/catkin_ws catkin_make编译过程可能会比较长取决于你的机器性能。我第一次编译时遇到了内存不足的问题后来发现可以通过限制并行编译任务数来解决catkin_make -j2编译完成后记得source工作空间source ~/catkin_ws/devel/setup.bash6.2 运行建图程序一切准备就绪后可以启动FAST-LIVO2进行建图了。首先启动mapping节点roslaunch fast_livo mapping_avia.launch然后播放你的Livox雷达数据包rosbag play YOUR_DOWNLOADED.bag如果想加快或减慢播放速度可以使用-r参数rosbag play -r 0.5 YOUR_DOWNLOADED.bag # 0.5倍速播放 rosbag play -r 2 YOUR_DOWNLOADED.bag # 2倍速播放在实际测试中我发现FAST-LIVO2对硬件要求较高。在我的i7-9700K RTX 2070配置下能够流畅运行并生成高质量的点云地图。如果性能不足可以尝试在launch文件中降低点云分辨率或减少特征点数量。7. 常见问题与解决方案在部署FAST-LIVO2的过程中我遇到过各种奇怪的问题。这里分享几个最常见的问题1编译时报错找不到Sophus解决检查Sophus是否安装正确确保/usr/local/include下有Sophus头文件问题2运行时提示找不到livox_ros_driver解决确保已经source了livox_ros_driver的工作空间并且顺序正确先source ROS再source livox最后source FAST-LIVO2问题3建图时轨迹漂移严重解决检查IMU数据是否正确FAST-LIVO2对IMU数据质量非常敏感问题4点云显示异常解决检查雷达和IMU之间的外参标定是否正确可以在launch文件中调整参数我在实际项目中还发现不同版本的Livox雷达可能需要不同的参数配置。如果遇到问题可以尝试修改mapping_avia.launch文件中的雷达型号和相关参数。

更多文章