我已将 ROS 订阅者写入其中一个图像主题,并使用以下方法将缓冲区设置为 1:

subscriber =rospy.Subscriber("/camera/rgb/image_mono/compressed",CompressedImage, callback,  queue_size=1)

但是我的订户仍然落后。知道是什么原因造成的吗?我是否正确设置了队列大小?

最佳答案

队列用于对传入消息进行排队。这意味着,如果您的回调处理时间比新消息到达的时间长,则仅保留 queue size,其他节点不会处理其他消息。

我建议在发布之前在发布者节点中打印一条消息,并在回调方法的顶部打印一条消息。然后你可以准确地测量 ros 处理你的消息所需的时间。所有其他计时问题都可能由您的回调方法引起。

关于python - Ros 订阅者不是最新的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26415699/

10-12 23:07