ROS订阅bag中的消息时会漏掉消息
-
执行步骤:
1:写一个订阅节点,并运行
2:回放bag包
3:输出消息的时间戳得到的结果:
在图片中可以看到前一个时间戳在变化,但另一个时间戳没有变化。但通过转化CSV可以发现两个message发布的频率是相同的,因此后者的时间戳不可能长时间不变。
尝试:
我修改订阅者队列的大小,但依然还是这样。提问:
我想问一下为什么会发生这种事情? -
@小鱼 今天上午解决了,原因是:
我用ros的Timer创建了一个定时器,定时器的回调函数是关闭一些订阅者和创建一些订阅者,其中,创建的订阅者中的最后一个就会出现这种错误。解决办法:
我创建了一个无用的订阅者放在最后,这样就可以正常订阅,不会漏掉消息了。遗留问题:
为什么这种问题会出现? -
@大昊 rostopic echo 出来再对比对比时间戳,如果可以贴下代码
-
@小鱼 今天上午解决了,原因是:
我用ros的Timer创建了一个定时器,定时器的回调函数是关闭一些订阅者和创建一些订阅者,其中,创建的订阅者中的最后一个就会出现这种错误。解决办法:
我创建了一个无用的订阅者放在最后,这样就可以正常订阅,不会漏掉消息了。遗留问题:
为什么这种问题会出现? -
@大昊 这个只能具体看下你的代码了,个人猜测如果你的对象是在回调函数里创建的,结束后就会立马销毁了,连带这个订阅也会被销毁。
-
小 小鱼 将这个主题标记为已解决,在