我见过的大多数程序和示例都是在函数中初始化rospy订阅者,例如
def listener():
rospy.Subscriber('/heylookitsanoutput',Image,imagecallback)
rospy.spin()但是有必要将其保持在一个函数中吗?它可以像MQTT一样工作吗?在MQTT中,您在函数的开头抛出订阅者,并在看到某些内容发布到订阅的主题时执行回调。
我可以理解这样做的必要性,因为您可能需要rospy.spin()来等待您正在寻找的输入,但是如果回调可以作为一个可中断的事件触发,那么对于我的场景(随着新图像的到来更新图像窗口)可能会更好。
谢谢!
发布于 2016-02-16 20:52:44
您也可以在函数外部启动rospy订阅者,即在if __name__ == "__main__":块中。他的行为是完全相同的,在看到某些内容发布到订阅的主题时执行回调。
我认为将这些命令嵌入到函数中的要点是可以轻松地将它们导入到其他模块中,并获得更好的代码组织。
https://stackoverflow.com/questions/33169299
复制相似问题