rosbag --clock
rosbag --clock(上、下集)
上集
将rosbag的数据feed给lego-loam,输出地图。另外写了一个滤波节点,订阅地图,进行滤波操作,再发布出来。
由于输入给lego-loam的数据来自于rosbag,所以需要rosbag提供时间信息。
rosbag play --clock recorded1.bag
由于rosbag的数据发布频率比较快,导致了一个结果。rosbag播放完毕,时钟停止,滤波节点中缓存了几个数据还没有处理完毕。失去了时钟信息,滤波节点停止运行,但是没有输出报错信息!!!
个人心得:滤波节点有两个独立的线程,一个是callback函数线程,一个是main函数线程,进而导致print出来的信息排布混乱。没有花时间整理print出来的信息,也就没能及时发现main函数线程因为缺失了时间信息而停止运行。因此,但凡遇到莫名其妙的bug,即使没有报错信息,首要任务是结合print出来的信息整理代码的逻辑,快速缩小范围再逐步排查原因。
解决方案
- 最佳
-k, --keep-alive
rosbag play -k --clock recorded1.bag
bag文件中的数据播放完毕以后,继续提供时间信息。
- 次佳
-r FACTOR, --rate=FACTOR
rosbag play -r 0.1 --clock recorded1.bag
将发布频率降低为原来的10%,留给滤波节点足够的时间进行处理。
下集
首先启动 roscore
,这一步会启动ros的时钟,提供时钟信息。
接着启动lego-loam。
播放lego-loam的数据集, rosbag play --clock recorded1.bag
。这时候,启动了另一个时钟,导致roscore启动的时钟停止。所以,当rosbag播放完毕后,ros的时钟完全停止。这时候运行ros会报各种莫名其妙的错误。
解决方案
重新运行 roscore
!
rosbag --clock相关推荐
- 踩坑rosbag --clock
将rosbag的数据feed给lego-loam,输出地图.另外写了一个滤波节点,订阅地图,进行滤波操作,再发布出来. 由于输入给lego-loam的数据来自于rosbag,所以需要rosbag提供时 ...
- rosbag中--clock的使用
文章目录 ROS时间种类 一.ros::Time::now()解释 二.c++中sleep, usleep, ros中的ros::Duration 三.参数use_sim_time介绍 1.launc ...
- rosbag录制问题:/use_sim_time set to true and no clock published. Still waiting for valid time...
录制前在新的终端输入: rosparam set /use_sim_time false 参考: rosbag数据记录与回放时遇到/use_sim_time设置问题_lemonxiaoxiao的博客- ...
- 将Rosbag中的Compressed类型的图像转换成raw类型
经常存在这种情况, 我们需要在移动设备上录制一些包含图像信息的rosbag, 但是如果录制raw格式的话,占的内存空间太大, 一般可以采用录制compressed模式; 但是一般的代码中,图像从sen ...
- ROS:rosbag play系列指令(详解)
Rosbag play系列指令 Rosbag play bagFile01.bag bagFile02.bag - 播放多个录制文件: 由于我们的bag录制文件并不是同一时间录制,因此bag录制文件会 ...
- 【ROS】rosbag
文章目录 一.常用几个操作 1 录包 2 回放 3 修复 二.完整的rosbag用法 1 rosbag 基本作用 2 rosbag record 3 rosbag info 4 rosbag play ...
- rosbag录制话题、播放话题多种模式
录制所有话题 rosbag record -a 录制多个话题 rosbag record -a //录制所有话题,并以当前时间截为文件名称 rosbag record /topic1 /topic2 ...
- 【ROS】rosbag使用
参考: 1.https://blog.csdn.net/weixin_42905141/article/details/100057323 2.https://www.cnblogs.com/long ...
- 用far planner跑自己的rosbag
far planner是结合cmu的automantion环境一起跑的,far planner只是一个上层的路径规划算法,所以并不涉及对于机器人的姿态估计和控制.因此我们需要将这一部分用开源代码来替换 ...
最新文章
- 1.7 Java创建对象详解(显式创建和隐含创建)
- 理解Javascript_12_执行模型浅析
- linux之文件类型
- 关于开发入门的一些事儿
- treeview找到节点并展开_我们从100个经典韩剧中,找到8个「神套路」,这样写抖音剧本个个都是爆款!...
- 宝藏又小众的金属板材质贴图素材网站分享
- 英语语法快速入门1--简单句(附思维导图)
- ubuntu系统压力测试工具--stress
- AR小项目的制作过程(一)
- 30A的MOS现在价格都下探到1块了,为什么你还在用继电器?
- diy 单片机 自动浇花_单片机自动浇花系统(附原理图、仿真文件、源程序)
- (五)循环神经网络 -- 3 语言模型数据集
- Kubernetes(15):Pod控制器ReplicaSet和Deployment详解
- 按关键字批量杀进程shell脚本
- 张爱玲的10大爱情名言
- java实现小说阅读器(功能:查看全文、统计总行数/总页码数、查找指定行、指定页码、实现翻页)
- 算法设计与分析_算法导论(CLRS)骨灰级笔记分享:目录
- 月入8000+的steam搬砖项目,你应该知道(详细教程)
- python-pip加速
- day2-MySQL规约
热门文章
- 基于一款计分应用的体验,优化设计结构原型
- flash上制作一个按钮,控制动画播放、暂停
- EasyARM-i.MX280A—Linux系统开发板(开发日记1-登录开发板)
- html div表格代码,Table tr th td html表格标签
- 斯坦福28岁加密女王认罪!320亿美元帝国崩塌,最高110年监禁,或将指证前男友...
- MATLAB 循环保存.mat文件
- backtrace java_remote stacktrace: Backtrace 异常的解决办法
- Charles 抓取安卓手机https包(安卓<华为>客户端应用,windows环境)
- 【云原生】Spring Cloud是什么?Spring Cloud版本介绍
- 计算机自动设置开机,电脑可以设置系统自动开机吗