LIO-SAM部署WHU-TLS Tunnel数据集实战:从环境搭建到数据预处理
1. WHU-TLS Tunnel数据集详解WHU-TLS Tunnel数据集是武汉大学发布的全球最大规模地面激光扫描点云基准数据集专为三维重建和SLAM算法评估设计。这个数据集最吸引我的地方在于它包含了11种典型场景的17.4亿个三维点云数据其中隧道场景数据对地下空间建模特别有价值。第一次接触这个数据集时我被它的数据规模震撼到了——原始数据包解压后足足有120GB相当于250部高清电影的存储量。数据集采用LAS格式存储这是测绘行业的通用点云格式。但这里有个坑需要注意LAS文件不能直接用文本编辑器查看需要专用工具。我推荐使用CloudCompare这个开源软件它支持Windows/Linux/macOS全平台。安装命令很简单sudo apt install cloudcompare数据集目录结构很有讲究raw_data/存放原始扫描数据ground_truth/包含精确配准结果calibration/有传感器标定参数readme.pdf详细说明采集设备和场景信息我建议把数据集放在SSD硬盘上机械硬盘的读取速度会导致后续处理非常卡顿。在我的测试中同样的处理流程SSD比机械硬盘快3-5倍。存放路径最好用英文比如我的是~/Datasets/WHU_TLS/Tunnel避免ROS处理中文路径可能出现的异常。2. 环境配置全攻略2.1 ROS Melodic安装避坑指南虽然官方文档说安装ROS Melodic很简单但实际会遇到各种网络问题。我最推荐使用清华镜像源速度能提升10倍不止。先备份原有源列表sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak然后替换为清华源sudo sed -i s/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g /etc/apt/sources.list安装ROS桌面完整版时建议分步执行sudo apt update sudo apt install ros-melodic-desktop-full安装后务必检查/opt/ros/melodic目录是否存在。我遇到过因为磁盘空间不足导致安装不完整的情况这时需要清理空间后重新安装。2.2 解决rosdep初始化难题rosdep初始化失败是新手最常见的坑。根本原因是GitHub的raw域名被污染我的终极解决方案是sudo mkdir -p /etc/ros/rosdep/sources.list.d/ echo yaml https://gitee.com/zhao-xuzuo/rosdistro/raw/master/rosdep/osx-homebrew.yaml | sudo tee /etc/ros/rosdep/sources.list.d/20-default.list然后更新时使用国内镜像rosdep update --include-eol-distros --rosdistro melodic --skip-keyspython-rosdistro python-catkin-pkg2.3 导航包的特殊安装方式官方仓库的navigation包经常出问题我摸索出一个稳定方案cd ~/catkin_ws/src git clone -b melodic-devel https://gitee.com/kay2023/navigation.git cd .. rosdep install --from-paths src --ignore-src -r -y catkin_make -j$(nproc)编译时如果报错缺少依赖可以用这个万能命令sudo apt install ros-melodic-* # 会自动补全所需依赖3. LIO-SAM专项配置3.1 源码获取与编译建议从GitHub克隆最新代码到工作空间cd ~/catkin_ws/src git clone https://github.com/TixiaoShan/LIO-SAM.git cd .. catkin_make -j$(nproc)编译成功后需要修改params.yaml中的关键参数pointCloudTopic: points_raw # 改为WHU数据集的话题名 sensor: velodyne # 传感器类型要匹配3.2 点云数据接口适配WHU数据集需要转换到LIO-SAM支持的格式我写了个转换脚本#!/usr/bin/env python import laspy import rospy from sensor_msgs.msg import PointCloud2 def las_to_pcd(las_file): inFile laspy.read(las_file) points np.vstack((inFile.x, inFile.y, inFile.z)).transpose() # 后续转换代码...这个脚本需要安装python-laspy库pip install laspy -i https://pypi.tuna.tsinghua.edu.cn/simple4. 实战预处理技巧4.1 点云降采样方案原始数据密度太高我通常先做体素滤波rosrun pcl_ros pcd_to_pointcloud input.pcd _frame_id:map _cloud_publish_rate:1.0 rosrun pcl_ros voxel_grid input:/cloud_pcd output:/downsampled leaf_size:0.1参数调节经验隧道场景leaf_size建议0.05-0.1开放场景可用0.2-0.3保留约10%的点即可保证精度4.2 坐标系统一方法WHU数据集使用UTM坐标系需要转换到局部坐标系。我开发了自动转换工具Eigen::Affine3d utmToLocal(const Eigen::Vector3d origin) { // 坐标系转换核心算法... }转换后要检查点云朝向我遇到过Z轴反向的问题需要用下面的命令修正rosrun tf static_transform_publisher 0 0 0 0 0 3.14159 map laser 100经过这些实战处理WHU数据集就能完美适配LIO-SAM了。记得每次修改参数后要重新source环境cd ~/catkin_ws source devel/setup.bash
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2442783.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!