[英]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.