2015-10-05 53 views
2

直到現在,在我的項目工作中,我一直在使用rospy建立主題和節點來構建ROS腳本,訂閱事物以及通常執行各種功能。然而,我被引導去相信,最終我的腳本需要被製作成'包',其概念是它們增加了程序的模塊性(並且只是事情的完成方式)。關於ROS包的必要性

到目前爲止,我的腳本非常緊湊,我不明白爲什麼發送一個調用rospy的python腳本需要額外的包裝級別(尤其是考慮到ROS wiki的大部分教程的混淆性)。到目前爲止,我還沒有爲我的任何程序創建軟件包或任何其他軟件。有一些壓倒性的理由,我爲什麼需要自己關心ROS包和柔kin花等等?現在,我只是沒有看到什麼時候一切正常,並且可能會在腳本運行的任何計算機上運行。

謝謝!

回答

2

有很多中,你一定要使用柳絮情況:

  • 你的包中包含C++代碼。這必須編制,將由柔cat花照顧。
  • 你有自定義的消息類型。自定義消息必須被生成和編譯。這也是由柔done花完成的。
  • 你有依賴於其他ROS包(或反之亦然)。 catkin解決了這種依賴關係,並在必要時構建它們。
  • 您有Python模塊需要安裝,以便其他軟件包可以使用它們。當然,你可以製作自定義的setup.py文件,但是使用catkin就可以做到這一點。
  • 當腳本位於catkin包中時,可以使用ROS命令行工具(rosrun,roscd,rosed,...),這些都非常方便。

只要你真的只有簡單的Python腳本而不依賴於其他非核心ROS包,你可能沒有將它們捆綁在一個包中。
但是,只要您與其他ROS開發人員共享您的代碼,我就會將其打包。雖然它可能正在工作,但如果他們沒有獲得他們習慣的包裝結構,它會令其他人感到困惑。

+0

再次感謝@luator!我的腳本很簡單,可能是爲什麼他們似乎沒有必要,但隨着時間的推移會發生變化,所以我想我需要儘快適應練習,而不是晚些時候。 – godfreap