![](/img/trans.png)
[英]ROS catkin_init_workspace not found when spawned as process by PHP
[英]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.