ROS主题以不同的帧速率同步

时间:2018-11-07 01:44:16

标签: ros

说我要订阅多个ROS主题。通常,我可以将message_filters :: sync_policies与确切时间或近似时间一起使用。但是由于财产

  

消息仅使用一次。两组不能共享同一条消息。某些邮件可以删除。

这意味着仅当所有主题都链接到集合中时,它才会运行绑定的回调函数。

在某些情况下,一个传入主题(例如,主题A )的比率是其他主题的一半,例如 B和C ,而我没有想要将B或C主题中的任何一个放到A上,是否有现成的方法或算法?

例如,我可以复制或插入A消息。或者,我可以生成一些“伪” A消息(占用很少的资源),因此我可以轻松地输入回调函数。

如果没有这样的软件包,我想我可能会尝试写一个可能对某些特殊情况有所帮助的软件包。如果我自己制作,则必须花很多时间来确保它能正常工作。你觉得呢?

1 个答案:

答案 0 :(得分:0)

使用message_filters::Cache可能是您的手动解决方法。

  • 如果一切顺利,请以至少2个队列缓存topic A,但我至少会总是高一点。
  • 在(同步的)主题topic B/C回调中,您可以使用topic AgetLatestTime()缓存中检索最新消息。

因此,您的代码中将有两个(缓存的topic A和同步的topic B/C)订户。