ros - 不同帧率的 ROS 主题同步
问题描述
假设我有多个 ROS 主题要订阅。通常我可以将 message_filters::sync_policies 与精确时间或近似时间一起使用。但由于财产
消息只使用一次。两个集合不能共享相同的消息。有些消息可以被丢弃。
这意味着它只会在所有主题链接到一个集合时运行绑定的回调函数。
在某些情况下,传入主题之一,假设主题 A的速率是其他主题的一半,假设B 和 C,并且我不想放弃任何 B 或 C 主题以屈服于 A,是否存在现成的方法或算法?
例如,我可以复制或插入 A 消息。或者我可以产生一些“假”的 A 消息(不需要太多资源),这样我就可以轻松地进入回调函数。
如果没有这样的包,我想我可能会尝试编写一个可能有助于某些特殊情况的包。如果我自己做这个,我必须花很多时间来确保它有效。你怎么看?
解决方案
使用message_filters::Cache可能是您的手动解决方法。
- 如果一切顺利,请使用至少 2 个队列缓存您
topic A
的队列,但至少我会走得更高一点。 - 在您的(同步的)主题
topic B/C
回调中,您可以topic A
使用getLatestTime()
.
因此,您的代码中有两个(缓存topic A
和同步topic B/C
的)订阅者。
推荐阅读
- c# - C# DateTime 字段未格式化
- c# - 屏幕上的边界框正确,但是当我使用相同的矩形获得 Texture2d 时向上移动
- c++ - 引用类型返回函数:如何返回(可选)对象
- python - 带有下拉列表选择器的 Python requests-html
- java - 有没有办法用一种方法而不是两种方法?
- javascript - 平滑扩展 Div 而不滞后
- firebase - 当我运行我的 ionic 3 时,问题 [object object] 显示在 html 页面中
- java - 如何找到成员所属的对象
- php - 如何使用我的标准 Laravel 项目正确设置 MDBootstrap
- python - 更新后Tensorflow极度缓慢