我正在运行ROS Indigo。我有一个简单的问题:我的包中有一个实用程序类,我想从脚本中调用它。它只需要在我们自己的包中调用;我不需要它可用于其他ROS包。
我在HandControl.py文件中定义了一个名为HandControl的类。我尝试导入它或在不导入的情况下使用它都会失败。我在catkin工作区中的位置 - 包的根目录还是脚本?我在任何地方都需要__init.py__
(我已尝试了几个地方)?
答案 0 :(得分:2)
这是遵循Python和ROS标准的好习惯。脚本通常放在/script
目录中,它们应该不导入到其他python脚本中。可重用的python代码是python模块的指示。 Python模块应放在/src/package_name
中,您也应该创建__init__.py
。此模块将在您的catkin工作区中随处可用。这个结构很有可能在将来帮助你构建事物,即使你现在似乎不需要它。项目通常会增长,遵循指南有助于维护良好的代码。有关更具体的详细信息,请查看此python doc。
答案 1 :(得分:0)
埃里卡,
请参阅this学校项目,该项目是用Python编写并在ROS Indigo上运行的。如果您查看/scripts
文件夹,则可以看到从其他脚本调用的自定义类的示例。如果您查看/launch
中的启动文件,您可以看到配置ROS节点的示例 - 这可能是您的问题。