rosbag --clock(上、下集)
上集
将rosbag的数据feed给lego-loam,输出地图。另外写了一个滤波节点,订阅地图,进行滤波操作,再发布出来。

由于输入给lego-loam的数据来自于rosbag,所以需要rosbag提供时间信息。

rosbag play --clock recorded1.bag

由于rosbag的数据发布频率比较快,导致了一个结果。rosbag播放完毕,时钟停止,滤波节点中缓存了几个数据还没有处理完毕。失去了时钟信息,滤波节点停止运行,但是没有输出报错信息!!!

个人心得:滤波节点有两个独立的线程,一个是callback函数线程,一个是main函数线程,进而导致print出来的信息排布混乱。没有花时间整理print出来的信息,也就没能及时发现main函数线程因为缺失了时间信息而停止运行。因此,但凡遇到莫名其妙的bug,即使没有报错信息,首要任务是结合print出来的信息整理代码的逻辑,快速缩小范围再逐步排查原因。

解决方案

  1. 最佳

-k, --keep-alive

rosbag play -k  --clock recorded1.bag

bag文件中的数据播放完毕以后,继续提供时间信息。

  1. 次佳

-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相关推荐

  1. 踩坑rosbag --clock

    将rosbag的数据feed给lego-loam,输出地图.另外写了一个滤波节点,订阅地图,进行滤波操作,再发布出来. 由于输入给lego-loam的数据来自于rosbag,所以需要rosbag提供时 ...

  2. rosbag中--clock的使用

    文章目录 ROS时间种类 一.ros::Time::now()解释 二.c++中sleep, usleep, ros中的ros::Duration 三.参数use_sim_time介绍 1.launc ...

  3. 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的博客- ...

  4. 将Rosbag中的Compressed类型的图像转换成raw类型

    经常存在这种情况, 我们需要在移动设备上录制一些包含图像信息的rosbag, 但是如果录制raw格式的话,占的内存空间太大, 一般可以采用录制compressed模式; 但是一般的代码中,图像从sen ...

  5. ROS:rosbag play系列指令(详解)

    Rosbag play系列指令 Rosbag play bagFile01.bag bagFile02.bag - 播放多个录制文件: 由于我们的bag录制文件并不是同一时间录制,因此bag录制文件会 ...

  6. 【ROS】rosbag

    文章目录 一.常用几个操作 1 录包 2 回放 3 修复 二.完整的rosbag用法 1 rosbag 基本作用 2 rosbag record 3 rosbag info 4 rosbag play ...

  7. rosbag录制话题、播放话题多种模式

    录制所有话题 rosbag record -a 录制多个话题 rosbag record -a //录制所有话题,并以当前时间截为文件名称 rosbag record /topic1 /topic2 ...

  8. 【ROS】rosbag使用

    参考: 1.https://blog.csdn.net/weixin_42905141/article/details/100057323 2.https://www.cnblogs.com/long ...

  9. 用far planner跑自己的rosbag

    far planner是结合cmu的automantion环境一起跑的,far planner只是一个上层的路径规划算法,所以并不涉及对于机器人的姿态估计和控制.因此我们需要将这一部分用开源代码来替换 ...

最新文章

  1. 1.7 Java创建对象详解(显式创建和隐含创建)
  2. 理解Javascript_12_执行模型浅析
  3. linux之文件类型
  4. 关于开发入门的一些事儿
  5. treeview找到节点并展开_我们从100个经典韩剧中,找到8个「神套路」,这样写抖音剧本个个都是爆款!...
  6. 宝藏又小众的金属板材质贴图素材网站分享
  7. 英语语法快速入门1--简单句(附思维导图)
  8. ubuntu系统压力测试工具--stress
  9. AR小项目的制作过程(一)
  10. 30A的MOS现在价格都下探到1块了,为什么你还在用继电器?
  11. diy 单片机 自动浇花_单片机自动浇花系统(附原理图、仿真文件、源程序)
  12. (五)循环神经网络 -- 3 语言模型数据集
  13. Kubernetes(15):Pod控制器ReplicaSet和Deployment详解
  14. 按关键字批量杀进程shell脚本
  15. 张爱玲的10大爱情名言
  16. java实现小说阅读器(功能:查看全文、统计总行数/总页码数、查找指定行、指定页码、实现翻页)
  17. 算法设计与分析_算法导论(CLRS)骨灰级笔记分享:目录
  18. 月入8000+的steam搬砖项目,你应该知道(详细教程)
  19. python-pip加速
  20. day2-MySQL规约

热门文章

  1. 基于一款计分应用的体验,优化设计结构原型
  2. flash上制作一个按钮,控制动画播放、暂停
  3. EasyARM-i.MX280A—Linux系统开发板(开发日记1-登录开发板)
  4. html div表格代码,Table tr th td html表格标签
  5. 斯坦福28岁加密女王认罪!320亿美元帝国崩塌,最高110年监禁,或将指证前男友...
  6. MATLAB 循环保存.mat文件
  7. backtrace java_remote stacktrace: Backtrace 异常的解决办法
  8. Charles 抓取安卓手机https包(安卓<华为>客户端应用,windows环境)
  9. 【云原生】Spring Cloud是什么?Spring Cloud版本介绍
  10. 计算机自动设置开机,电脑可以设置系统自动开机吗