Ubuntu20.04下LIO-SAM从编译到实战:避坑指南与数据集测试

张开发
2026/6/24 19:17:03 15 分钟阅读
Ubuntu20.04下LIO-SAM从编译到实战:避坑指南与数据集测试
1. 环境准备与依赖安装在Ubuntu 20.04上部署LIO-SAM的第一步是搭建完整的ROS Noetic开发环境。这里我推荐使用鱼香ROS的一键安装脚本实测下来比手动安装更稳定。执行以下命令即可完成基础环境配置wget http://fishros.com/install -O fishros . fishros安装过程中会提示选择ROS版本记得选择noetic。完成后别忘记执行source /opt/ros/noetic/setup.bash使环境变量生效。接下来需要安装关键依赖GTSAM。这里有个大坑官方推荐的PPA源在某些网络环境下会报错。我测试过三种安装方式最稳定的是通过源码编译wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.3.zip unzip ~/Downloads/gtsam.zip -d ~/Downloads/ cd ~/Downloads/gtsam-4.0.3/ mkdir build cd build cmake -DGTSAM_BUILD_WITH_MARCH_NATIVEOFF .. sudo make install -j$(nproc)注意-DGTSAM_BUILD_WITH_MARCH_NATIVEOFF这个参数必须加上否则在虚拟机环境编译会失败。安装完成后建议运行gtsam-config --version验证是否成功。最后安装ROS相关依赖包sudo apt-get install -y ros-noetic-navigation \ ros-noetic-robot-localization \ ros-noetic-robot-state-publisher2. 源码编译与关键修改创建工作空间并克隆源码mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone https://github.com/TixiaoShan/LIO-SAM.git接下来需要修改两处关键配置才能正常编译第一处修改解决OpenCV4兼容问题打开~/catkin_ws/src/LIO-SAM/include/utility.h找到第18行左右的#include opencv/cv.h替换为#include opencv2/imgproc.hpp #include opencv2/opencv.hpp第二处修改适配C14标准编辑~/catkin_ws/src/LIO-SAM/CMakeLists.txt将第5行的set(CMAKE_CXX_FLAGS -stdc11)改为set(CMAKE_CXX_FLAGS -stdc14)在find_package部分添加find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)编译时如果遇到libmetis.so缺失错误执行sudo cp /usr/local/lib/libmetis.so /opt/ros/noetic/lib/最后编译并验证cd ~/catkin_ws catkin_make -j$(nproc) source devel/setup.bash3. 官方数据集测试与参数调优官方提供了多个测试数据集其中casual_walk_2.bag是最基础的测试场景。下载数据集后执行roslaunch lio_sam run.launch rosbag play casual_walk_2.bag -r 3对于更复杂的场景如outdoor.bag需要调整params.yaml中的关键参数# IMU坐标系设置 extrinsicRot: [1, 0, 0, 0, 1, 0, 0, 0, 1] extrinsicRPY: [1, 0, 0, 0, 1, 0, 0, 0, 1] # 点云话题设置速腾雷达需修改 pointCloudTopic: /velodyne_points # GPS参数park.bag需启用 useImuHeadingInitialization: true gpsTopic: odometry/gps保存地图时需要修改savePCD: true savePCDDirectory: /path/to/save4. 常见问题解决方案问题1运行时出现ERROR: cannot launch node of type [robot_localization/ekf_localization_node]解决方法安装缺失的ROS包sudo apt-get install ros-noetic-fake-localization问题2点云显示异常或轨迹漂移检查IMU与雷达的外参矩阵是否正确特别是对于Livox雷达需要额外设置sensor: livox N_SCAN: 6 Horizon_SCAN: 4000问题3GPS数据无法融合确保在params.yaml中正确设置GPS话题并检查坐标系转换gpsCovThreshold: 2.0 poseCovThreshold: 25.05. 性能优化技巧内存管理在虚拟机运行时建议分配至少8GB内存编译时使用-j$(nproc)参数加速但可能增加失败概率实时性调整修改run.launch中的参数可以提升性能param namemapping/processInterval typedouble value0.15/ param namemapping/maxLeafSize typedouble value0.5/可视化优化关闭RViz中不必要的显示项可以显著降低CPU占用建议只保留Path (Odometry)Path (GPS)PointCloud (Map)对于需要长期运行的建图任务可以通过rosrun lio_sam save_map服务实时保存地图rosservice call /lio_sam/save_map 0.2 /output/path

更多文章