参考:
1. https://answers.ros.org/question/192723/cant-find-python-scripts-after-sourcing/
2. http://wiki.ros.org/PyStyleGuide
最近需要在ROS下实现几个使用TensorFlow的Publisher和Server node,出现了搜索不到module或者ros找不到我的node的情况,所以在网上搜了下怎么管理用Python写的ros package,把问题解决了。这篇博客的前半部分都来自参考[1],后半部分会讲一下参考[1]没说清楚的部分,还有我遇到的问题。
一、ROS Package结构
假设我建立了一个叫knex_pkg的包,其中包含如下四个node:
scripts/knex_arduino_connector.py
scripts/knex_scratch_connector.py
scripts/range_filter.py
scripts/range_to_laser.py
那么这个Package的结构应该如下所示:
knex_pkg/
CMakesLists.txt
package.xml
launch/ # roslaunch files go here
msg/ # msg files go here
nodes/ # installable python nodes go here
knex_arduino_connector.py
knex_scratch_connector.py
range_filter.py
range_to_laser.py
src/ # this is where your python modules exported as libraries or used in your nodes go.
urdf/ # urdf and xacro files go here -- basically your robot model stuff, if any.
scripts/ # generally non-exported python scripts -- stuff that might be called to setup your package and code gen stuff
srv/ # service descriptions go here
__init__.py # only necessary if you want to use anything from the scripts directory in your package src and node files