簡體   English   中英

在ROS catkin工作區中定義和使用Python類

[英]Defining and using a Python class within a ROS catkin workspace

我正在運行ROS Indigo。 我有一個簡單的問題:我的軟件包中有一個實用程序類,希望可以從腳本中調用它。 它只需要在我們自己的包中調用; 我不需要將其提供給其他ROS軟件包。

我在文件HandControl.py中定義了一個名為HandControl的類。 我所有嘗試導入或不使用而未導入的嘗試都失敗了。 我將它放置在catkin工作區中的哪個位置(包的根目錄還是腳本中)? 我在任何地方都需要__init.py__ (我嘗試過幾個地方)?

在此處遵循Python和ROS的標准是一個好習慣。 腳本通常放置在/script目錄中,不應其導入其他python腳本中。 可重用的python代碼是python模塊的指示。 Python模塊應該放置在/src/package_name並且您還應該在其中創建__init__.py 此模塊將在您的catkin工作區中的任何地方可用。 這種結構很有可能會在將來幫助您構建事物,即使您目前似乎不需要它。 項目通常會增長,並且遵循准則有助於維護良好的代碼。 有關更多具體細節,請查看此python文檔

埃里卡,

請參閱學校項目,該項目是用Python編寫並在ROS Indigo上運行的。 如果查看/scripts文件夾,則可以看到從其他腳本調用的自定義類的示例。 如果您查看/launch的啟動文件,您會看到一個配置ROS節點的示例-也許這就是您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM