避免多次调用 rospy.init_node()

Avoid multiple calls to rospy.init_node()

我正在尝试检查一个节点是否已经初始化 python 脚本的另一部分?因此,如果我正在编写一个包含很多 pubs/subs 的客户端 class。它需要一个节点才能处于活动状态,因此应该创建一个。但是如果我在初始化对象之前创建一个节点。它将抛出以下错误:

raise rospy.exceptions.ROSException("rospy.init_node() has already been called with different arguments: "+str(_init_node_args))

那么有没有办法检查scrip是否已经初始化了呢?所以我可以创建一个,如果它不存在,如果一个确实存在并且不尝试创建另一个节点。

一种快速而肮脏的方法是将 init_node 调用放在 try...except 块中。像这样:

try:
    rospy.init_node("NODE_NAME_HERE")
except rospy.exceptions.ROSException as e:
    print("Node has already been initialized, do nothing")