在ROS catkin工作区中定义和使用Python类

时间:2017-01-06 19:35:47

标签: python ros

我正在运行ROS Indigo。我有一个简单的问题:我的包中有一个实用程序类,我想从脚本中调用它。它只需要在我们自己的包中调用;我不需要它可用于其他ROS包。

我在HandControl.py文件中定义了一个名为HandControl的类。我尝试导入它或在不导入的情况下使用它都会失败。我在catkin工作区中的位置 - 包的根目录还是脚本?我在任何地方都需要__init.py__(我已尝试了几个地方)?

2 个答案:

答案 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节点的示例 - 这可能是您的问题。