2015-10-16 37 views
1

大部分節目和例子我見過發起rospy用戶的功能,如一個rospy用戶必須在一個函數?

def listener(): 
    rospy.Subscriber('/heylookitsanoutput',Image,imagecallback) 
    rospy.spin() 

,但是否有必要保持一個函數內?它可以像MQTT一樣工作嗎?你可以在一個函數的開始處拋出訂閱者,並且在看到某個帖子發佈到訂閱的主題後執行回調?

我可以理解需要這樣做,因爲您可能需要rospy.spin()等待您正在查找的輸入,但是如果回調可以作爲可中斷事件觸發,那可能對我更好場景(將圖像窗口更新爲新圖像)。

謝謝!

回答

1

可以在if __name__ == "__main__":塊也發起rospy訂戶的功能外, 即。 他的行爲將完全相同,在看到某個帖子發佈到訂閱主題後執行回調。

我想在函數內部嵌入這些命令的主要觀點是可能性,將它們導入其他模塊輕鬆,以獲得更好的代碼的組織。

相關問題