繁体   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