解决lego-loam运行bag包时无数据的问题

本文介绍了解决LEGO-LOAM激光雷达里程计在回放bag文件时出现无输出数据的问题。主要原因是bag文件中的话题时间和系统时间不一致,导致数据丢失。通过设置ROS的use_sim_time参数为true,并在播放bag文件时使用--clock选项,可以确保系统时间和bag文件中的时间同步,从而避免数据丢失。

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

问题:

下载编译lego-loam代码。运行run.launch后,再播放自己的bag包,发现无输出数据

原因:

录制bag包时的topic时间与系统时间(如tf)有差别,播放时,系统找不到对应时间的topic,缓冲队列一满,就默认把topic全都丢弃了,导致了lego-loam无输入topic,也就无输出数据。

解决办法:

改将run.launch文件中的/use_sim_time为true,这代表指定让程序使用模拟时间,而不是实际的 wall-clock time。

<param name="/use_sim_time" value="true" />

运行lego-loam:

roslaunch lego_loam run.launch

再在播放bag包时加上--clock,发布bag中的模拟时间(这样程序的系统时间就与bag中的topic时间一样了),并播放对应的两个话题:

rosbag play lego_loam.bag --clock --topics /velodyne_points /imu_data

实时建图时将run.launch文件中的/use_sim_time改为false即可:

<param name="/use_sim_time" value="false" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

和道一文字_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值