如何获取Python中ROS节点的URI?

How to get the URI of a ROS node in Python?

我正在尝试查找发布特定类型消息的机器。因此,我正在检查 rosnodes rosnode.rosnode_listnodes() 列表,并希望 获取相应机器的 IP 地址 运行 特定节点 .

有一个方法rosnode.lookup_uri(...),但我不知道如何使用它。我还查看了 rospyrosgraphnamesnetwork 模块 - 到目前为止没有成功。在其他信息中,rosnode.rosnode_info(node_name) 打印 URI。但它可能是一种相当昂贵的方法,不幸的是,它 returns None.

作为huanxiner answered on ROS answers,您可以使用rosgraph模块中的lookupNode,如下所示:

import rosgraph
master = rosgraph.Master("")
print master.lookupNode("node_name")

结果是这样的:

http://192.168.123.1:45678/