【问题标题】:Is there a way to see a ROS topic's previously published messages, so late subscribers can see previously published data?有没有办法查看 ROS 主题之前发布的消息,以便后期订阅者可以看到之前发布的数据?
【发布时间】:2021-12-30 07:44:27
【问题描述】:

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

那么我的节点有什么方法可以在消息发布后检索它?

【问题讨论】:

    标签: python ros rospy


    【解决方案1】:

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

    pub = rospy.Publisher('topic_name', topic_type, queue_size=10, latch=True)
    

    【讨论】:

    • 谢谢。那么,当我订阅主题时,我的订阅者会立即将锁定的消息视为正常回调吗?
    • @JMD83 这是正确的。创建订阅者后,它将获得关于该主题的最后一条消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多