【问题标题】:Is it same to set two subscribers in a Node and set two subscribers in two Nodes?在一个Node中设置两个订阅者,在两个Node中设置两个订阅者是否相同?
【发布时间】:2021-12-08 07:40:47
【问题描述】:

我是 ROS 系统的新手,我正在开发一个可以订阅两个视频源并用它做一些简历的系统。

但我很困惑,我应该使用具有两个不同订阅者的两个 python 文件(两个节点),还是只使用一个具有两个不同订阅者的类的 python 文件?

完全一样吗?或者哪种方式是定义我的代码的更好方式?

谢谢!!

还有一个小问题……我能知道图像类型数据的来源吗?因为我有两个图像数据要接收,但它们的图像大小完全一样。我需要知道哪个是对其进行不同处理的原因,所以这就是我在工作中使用两个订阅者的原因

如果我只使用一个订阅者订阅两个源图像,我能区分是哪一个吗?

【问题讨论】:

  • 请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: python ros rospy


【解决方案1】:

您的第一个问题太含糊,无法回答。实现细节完全取决于您的应用程序和您拥有的约束。作为一般规则,如果您认为计算量很大,则应使用两个不同的节点。

你的第二个问题有一个更明确的答案。您可以通过收到消息的_connection_header 字段访问调试信息。

>>> print(some_msg._connection_header)
{'callerid': '/talker_38321_1284999593611',
'latching': '0',
'md5sum': '992ce8a1687cec8c8bd883ec73ca41d1',
'message_definition': 'string data\n\n',
'topic': '/chatter',
'type': 'std_msgs/String'}
>>> print(some_msg._connection_header['callderid'])
'/talker_38321_1284999593611'

我应该注意,除了用于调试之外,不建议这样做。

【讨论】:

    猜你喜欢
    • 2019-03-21
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 2015-07-25
    相关资源
    最近更新 更多