Большинство программ и примеров, которые я видел инициирует rospy абонента в функции, такие какДолжен ли абонент rospy быть в функции?
def listener():
rospy.Subscriber('/heylookitsanoutput',Image,imagecallback)
rospy.spin()
Но это необходимо, чтобы держать это внутри функции? Может ли он работать как MQTT, где вы бросаете подписчика в начале функции, с обратным вызовом, выполненным при просмотре чего-либо сообщения в подписанной теме?
Я могу понять необходимость сделать это, так как вам, вероятно, понадобится rospy.spin(), чтобы ждать ввода, который вы ищете, но если обратный вызов может быть вызван как прерываемое событие, это может быть лучше для моего сценарий (обновление окон изображений при появлении новых изображений).
Спасибо!