LeGO-LOAM运行数据集

本文记录了作者初次接触激光雷达并尝试运行LeGO-LOAM算法的过程,包括源码下载、论文阅读、数据集获取、Gtsam及LeGO-LOAM的编译安装,以及算法的实际运行步骤与初步结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

因为作者刚刚接触激光雷达,这篇博客记录运行LeGO-LOAM过程中遇到的一些问题。

LeGO-LOAM源码下载

https://github.com/RobustFieldAutonomyLab/LeGO-LOAM/

LeGO-LOAM论文下载

https://github.com/RobustFieldAutonomyLab/LeGO-LOAM/blob/master/Shan_Englot_IROS_2018_Preprint.pdf

数据集下载

链接:https://pan.baidu.com/s/1UswMElc81AKY8hnpmkjnrA
提取码:l5rl

官网上的数据集下载链接不知为什么打不开了(可能不开源了?),这是我从另一个博主那找到的。

编译安装Gtsam

git clone https://bitbucket.org/gtborg/gtsam.git
mkdir build
cd build
cmake ..
sudo make install

编译LeGO-LOAM

cd ~/catkin_ws/src     //自己的ros工作空间
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
cd ..
catkin_make -j1
source ~/catkin_ws/devel/setup.bash

source命令在每打开一个新的终端需要重新输入

运行LeGO-LOAM

source ~/catkin_ws/devel/setup.bash
roslaunch lego_loam run.launch 

在这里插入图片描述
打开另一个终端

source ~/catkin_ws/devel/setup.bash
rosbag reindex nsh_indoor_outdoor.bag   //.bag文件路径(这里是刚好在一个文件夹,没有写全局路径)
rosbag info nsh_indoor_outdoor.bag    //查看数据集信息
rosbag play --clock nsh_indoor_outdoor.bag

在这里插入图片描述
在这里插入图片描述

运行结果

在这里插入图片描述

后记

后面的任务是用Velodyne VLP-16雷达实时跑通LeGO-LOAM,构建一个三维点云地图。
现在对于有无imu数据那块还没有弄的很明白,算法也不清楚,等跑通再读论文和代码吧。路漫漫其修远~

ps.写博客还真是挺麻烦的,向伟大的博主们致敬~

<think>嗯,用户想了解如何使用LeGO-LOAM处理自制的数据集。首先,我需要回忆一下LeGO-LOAM的基本配置和运行流程。根据引用[1]中的信息,LeGO-LOAM的配置涉及到修改launch文件中的参数,特别是设置use_sim_time的值。在线建图和离线建图的区别可能在于是否使用仿真时间,这点需要注意。 然后,用户提到的是自制数据集,可能需要调整数据集的格式和话题名称。LeGO-LOAM默认订阅的话题可能是特定的传感器数据,比如点云话题。如果自制数据集的话题名称不同,就需要在代码或launch文件中进行修改,比如在run.launch里更改topic名称,确保LeGO-LOAM能正确接收数据。 另外,数据预处理也是关键。自制数据集可能需要转换成LeGO-LOAM支持的格式,比如ROS的bag文件。用户可能需要使用工具将数据录制为bag文件,并检查时间同步问题,尤其是IMU和LiDAR的数据同步。引用[3]提到LIO-SAM是基于LeGO-LOAM构建的,并且处理数据的速度很快,这说明LeGO-LOAM对数据输入的要求可能比较严格,必须保证数据的准确性和同步。 接下来是参数调整部分。不同的环境可能需要不同的配置,例如点云降采样的体素大小、特征提取的阈值等。用户需要根据自制数据集的特点调整这些参数,以优化建图效果。此外,IMU参数如果有的话,也需要正确配置,确保惯性数据能被正确处理。 运行时的调试和可视化也很重要。启动LeGO-LOAM后,使用RViz查看点云和轨迹是否正确,如果出现黑屏或数据不显示,可能需要检查话题是否正确发布,或者传感器数据是否有效。引用[1]中提到运行时会黑屏但别慌,可能是指控制台没有输出,但实际在RViz中会有显示。 最后,用户可能遇到的问题包括时间戳不同步、坐标系不匹配或者参数设置不当。需要引导用户检查这些方面,并参考引用[2]提到的系统学习3D视觉的步骤,深入理解各个模块的作用,以便更好地调试和优化。 总结步骤应该是:准备数据集格式,修改话题名称,调整参数,处理时间同步,运行并可视化,最后根据效果优化参数。同时,引用相关资源帮助用户进一步学习,比如引用[3]中的算法评估和引用[2]的学习资料,能提供更全面的支持。</think>### 如何使用LeGO-LOAM处理自定义数据集? #### 1. **数据集格式要求** LeGO-LOAM默认支持ROS格式的传感器数据(`.bag`文件),需包含以下数据: - **3D激光雷达点云**:话题通常为`/velodyne_points`(需与launch文件配置一致) - **IMU数据**(可选但推荐):话题为`/imu/data`,需包含姿态、角速度和线性加速度信息 - **时间同步**:LiDAR和IMU的时间戳需对齐,避免时间漂移问题 #### 2. **关键配置步骤** **步骤1:修改launch文件参数** 打开`LeGO-LOAM/launch/run.launch`,调整以下参数: ```xml <param name="/use_sim_time" value="true" /> <!--离线数据集设为true--> <param name="topic" type="string" value="/custom_lidar_topic" /> <!--若自定义点云话题名需修改此处--> ``` [^1] **步骤2:数据预处理** -数据集非ROS格式,需转换为`.bag`文件: ```bash rosbag record -O custom_dataset.bag /custom_lidar_topic /imu/data ``` - 检查时间同步: ```bash rosbag info custom_dataset.bag ``` **步骤3:坐标系对齐** 在`utility.h`文件中确认坐标系定义: ```cpp // 激光雷达与IMU的相对位姿(需根据实际传感器安装位置修改) const extern Eigen::Matrix3f extRot = ...; const extern Eigen::Vector3f extTrans = ...; ``` #### 3. **运行与调试** ```bash # 启动ROS核心 roscore # 播放数据集 rosbag play --clock custom_dataset.bag # 启动LeGO-LOAM roslaunch lego_loam run.launch ``` [^1] #### 4. **可视化验证** - 在RViz中加载配置: - 添加`/map`(全局点云) - 添加`/laser_cloud_surround`(局部特征点云) - 添加`/aft_mapped_to_init`(优化后轨迹) #### 5. **常见问题处理** | 问题现象 | 解决方案 | |---------|----------| | 无点云显示 | 检查launch文件中的`topic`是否与数据集话题一致 | | 轨迹漂移严重 | 调整`utility.h`中的特征提取阈值(如`edgeThreshold`和`surfThreshold`) | | 时间同步错误 | 使用`rosbag fix`修复时间戳或添加`--imulate-time`参数播放bag | #### 6. **性能优化建议** - **点云降采样**:修改`featureAssociation.cpp`中的体素滤波参数 ```cpp downSizeFilter.setLeafSize(0.2, 0.2, 0.2); // 根据点云密度调整 ``` - **IMU融合优化**:在`transformFusion.cpp`中调整IMU权重参数 ```cpp float imuWeight = 0.1; // 增大权重可增强IMU约束 ``` [^3]
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值