Lego-LOAM 运行时出现错误

本文记录了解决Lego-LOAM在Ubuntu16.04+ROS环境下运行时遇到的GTSAM兼容性问题的过程。通过调整Eigen库版本至3.2.8,成功解决了编译警告并使Lego-LOAM正常运行。

系统配置:Ubuntu16.04+ros-kinect
gtsam+eigen:gtsam(4.0.0)+eigen(3.3.7
编译gtsam过程一帆风顺,没有任何问题,在编译Lego-LOAM时出现一个错误,解决方法参见这篇博文,但是当我运行“ roslaunch lego_loam run.launch” 出现了如下图所示的错误:
运行时出现mapoptimization错误

应该是gtsam的问题,我将eigen 的版本改为3.3.4,发现还是报一样的错,接着将eigen的版本改为3.2.8,编译gtsam的出现一堆warning(看起来非常难受,你懂的)但是不影响编译通过,这次就可以运行了“ roslaunch lego_loam run.launch”。
gtsam安装包中有一个3rdparty,Eigen库就放在这里,替换时,将其替换为对应的版本的eigen就行。

**

参考文档

优快云:https://blog.youkuaiyun.com/qq_43145072/article/details/92770932

<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
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值