目录
- ROS的目录结构
- 创建功能包
- 查找ROS功能包
- 删除ROS功能包
ROS的目录结构
从上面的结构图可以看出,功能包位于工作空间的src/目录中,所以需要进到src/目录去创建功能包。
创建功能包
功能包是ROS中软件组织的基本形式,具有创建ROS程序的最小结构和最少内容,它包含ROS节点源码、脚本、配置文件等。
使用catkin_create_pkg
可创建功能包,用法如下:
catkin_create_pkg your_pkg_name [depended_pkg_1] [...]
这里以创建名为package_example的功能包为例。假设package_example依赖系统提供的功能包roscpp和std_msgs.
cd catkin_ws/src
catkin_create_pkg package_example roscpp std_msgs
创建成功后在catkin_ws/src目录下会新建一个package_example的文件夹:
在package_example目录中,有下图所示的几个文件/文件夹:
- CMakeLists.txt是功能包配置文件,用于编译cmake功能包编译时的编译配置。
- package.xml是功能包清单文件,用xml的标签格式标记该功能包的各类相关信息,比如包的名称、开发者信息、依赖关系等,主要是为了使功能包的安装和分发更容易。
- include是功能包头文件目录,可以把功能包程序中包含的*.h头文件放在这里。include目录之所以还要加一级路径<pkg_name>是为了更好地区分自己定义的头文件和系统标准头文件,<pkg_name>用实际功能包的名称替代。不过这个文件夹不是必要项,比如有些程序没有头文件。
- src目录存放功能包节点所对应的源代码,一个功能包中可以有多个节点程序来完成不同的功能,每个节点程序都可以单独运行。这里src目录存放的是这些节点程序的源代码,你可以按需创建文件夹和文件来组织源代码,源代码可以用C++、Python等编写。
查找ROS功能包
使用rospack find
可以查找ROS功能包,用法如下:
rospack find your_pkg_name
以package_example为例,
rospack find package_example
删除ROS功能包
把整个功能包删除,然后把工作空间下devel/share路径下与被删除文件夹同名的文件夹删除,devel/include和devel/lib中也一样,再catkin_make即可。