保姆级教程:在Ubuntu 18.04上搞定LIO-SAM运行WHU-TLS隧道数据集的所有依赖(含ROS Melodic避坑指南)

张开发
2026/4/17 18:02:17 15 分钟阅读

分享文章

保姆级教程:在Ubuntu 18.04上搞定LIO-SAM运行WHU-TLS隧道数据集的所有依赖(含ROS Melodic避坑指南)
从零搭建LIO-SAM运行环境Ubuntu 18.04实战指南与WHU-TLS隧道数据集处理在三维激光SLAM领域LIO-SAM作为紧耦合激光惯性里程计框架因其优异的实时性和鲁棒性成为研究热点。而武汉大学发布的WHU-TLS隧道数据集凭借其复杂场景下的高精度点云数据为算法验证提供了绝佳测试平台。本文将手把手带你完成从系统配置到数据集处理的完整流程特别针对Ubuntu 18.04环境下ROS Melodic的安装痛点提供解决方案。1. 环境准备ROS Melodic的安装与配置Ubuntu 18.04作为长期支持版本其稳定性使其成为机器人开发的常见选择。但国内用户在安装ROS Melodic时常因网络问题导致关键步骤失败。以下是经过验证的安装方案# 设置软件源建议使用国内镜像 sudo sh -c . /etc/lsb-release echo deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ lsb_release -cs 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安装完整版ROS桌面环境时建议分步执行以避免网络中断# 分步安装核心组件 sudo apt install -y ros-melodic-ros-base sudo apt install -y ros-melodic-desktop-full提示若遇到Unable to locate package错误请先运行sudo apt update --fix-missingrosdep初始化是导致90%安装失败的环节可通过修改hosts文件解决# 解决raw.githubusercontent.com访问问题 echo 185.199.108.133 raw.githubusercontent.com | sudo tee -a /etc/hosts sudo rosdep init rosdep update验证安装是否成功# 检查核心包是否正常 rospack find roscpp roscore 2. LIO-SAM依赖库的完整安装指南LIO-SAM作为多传感器融合框架其依赖关系复杂。以下是分类整理的必备组件依赖类型关键包安装方式ROS基础tf2、pcl_ros、nav_msgsapt自动安装第三方库GTSAM(≥4.0)、PCL(≥1.8)源码编译工具链CMake(≥3.15)、gcc(≥7.5)手动升级数据集支持libLAS、PDAL源码编译GTSAM的安装需要特别注意版本兼容性# 安装最新版GTSAM git clone https://github.com/borglab/gtsam.git cd gtsam mkdir build cd build cmake -DGTSAM_BUILD_WITH_MARCH_NATIVEOFF .. make -j$(nproc) sudo make install点云处理库PCL的配置要点# 验证PCL版本 pcl_version --version # 若版本低于1.8需手动升级 sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl sudo apt update sudo apt install libpcl-dev常见编译错误解决方案错误Could not find a package configuration file for tf2_sensor_msgssudo apt install ros-melodic-tf2-sensor-msgs错误GTSAM version mismatch# 清除旧版本 sudo rm -rf /usr/local/lib/cmake/GTSAM*3. WHU-TLS隧道数据集处理全流程WHU-TLS数据集采用LAS格式存储需要特殊工具链进行处理。以下是完整工作流数据获取与验证从官网提交申请后检查下载文件的MD5校验值推荐使用wget -c支持断点续传格式转换工具链安装# 安装PDAL点云数据处理工具 sudo apt install pdal pdal-python # 验证libLAS安装 lasinfo --version数据集目录结构建议~/catkin_ws/ ├── src/ │ └── lio-sam/ │ └── data/ │ ├── tunnel/ │ │ ├── scan1.las │ │ └── scan2.las └── launch/ └── params.yamlLAS转PCD格式的批量处理脚本import pdal import glob las_files glob.glob(~/catkin_ws/src/lio-sam/data/tunnel/*.las) for las in las_files: json { pipeline: [ %s, { type: writers.pcd, filename: %s.pcd } ] } % (las, las[:-4]) pipeline pdal.Pipeline(json) pipeline.execute()注意转换过程中可能遇到坐标系统不匹配问题需在params.yaml中调整useImuHeading参数4. LIO-SAM的编译与参数调优完成环境准备后按照以下步骤编译cd ~/catkin_ws/src git clone https://github.com/TixiaoShan/LIO-SAM.git cd .. catkin_make -j$(nproc)关键参数调整建议针对隧道场景# params.yaml部分关键参数 pointCloudTopic: /points_raw imuTopic: /imu_raw featureExtraction: edgeFeatureNum: 10 surfFeatureNum: 30 mapOptimization: scan2mapTransform: 0.5 loopClosureThreshold: 0.3性能优化技巧内存管理在launch/run.launch中添加param namevoxelLeafSize value0.2 / param namemaxPointCloudCache value10 /实时性调优对于低配硬件可降低ICP频率mapping: icpFrequency: 5.0 odometryFrequency: 10.05. 实战问题排查手册问题1rosdep update无限重试解决方案分三步更换国内源sudo pip install rosdepc -i https://pypi.tuna.tsinghua.edu.cn/simple sudo rosdepc init rosdepc update手动下载规则文件wget https://gitee.com/zhao-xuzuo/rosdistro/raw/master/rosdep/sources.list.d/20-default.list sudo cp 20-default.list /etc/ros/rosdep/sources.list.d/问题2PCL点云显示异常典型表现为rviz中点云闪烁或漂移需检查时间戳同步确保useCloudRing参数与数据集匹配坐标框架在launch文件中添加node pkgtf typestatic_transform_publisher namebase_to_velodyne args0 0 0 0 0 0 base_link velodyne 100 /问题3IMU数据不同步在隧道等GNSS拒止环境中尤为关键硬件级同步配置PPS信号触发软件级补偿imuCalibration: timeOffset: 0.02 gravityAlignment: true经过三个实际项目验证这套配置在Intel NUCi7-10710U上可实现实时建图内存占用稳定在2GB以内。对于更长隧道场景建议将keyframeDistance参数从默认的1.5米调整为2.0-3.0米以降低计算负载。

更多文章