有没有办法查看 ROS 主题之前发布的消息,以便迟到的订阅者可以看到之前发布的数据?

Is there a way to see a ROS topic's previously published messages, so late subscribers can see previously published data?

我在一个系统中开发 ros 节点,该系统有其他节点 运行,这些节点对我来说是不透明的(由另一方开发,基本上锁定任何更改)。其中一个节点在系统启动序列的早期就 ROS 主题发布一条消息。不能保证我的节点会及时看到这条消息被发布,实际上我的节点更有可能还没有启动。此消息包含我的节点正确配置自身所需的一些信息和其他一些信息。

那么我的节点有没有办法在消息发布后检索它?

没有一种方法可以查看某个主题的消息历史记录。但是,您可以使发布者锁定。这意味着当它发布一条消息时,它会继续被订阅者看到,直到一条新消息取代它。它可以通过 rospy.Publisher

的可选参数使用
pub = rospy.Publisher('topic_name', topic_type, queue_size=10, latch=True)