目录

  • ROS的目录结构
  • 创建功能包
  • 查找ROS功能包
  • 删除ROS功能包


ROS的目录结构

royi项目去掉redission_xml

从上面的结构图可以看出,功能包位于工作空间的src/目录中,所以需要进到src/目录去创建功能包。

创建功能包

功能包是ROS中软件组织的基本形式,具有创建ROS程序的最小结构和最少内容,它包含ROS节点源码、脚本、配置文件等。

使用catkin_create_pkg可创建功能包,用法如下:

catkin_create_pkg your_pkg_name [depended_pkg_1] [...]

这里以创建名为package_example的功能包为例。假设package_example依赖系统提供的功能包roscppstd_msgs.

cd catkin_ws/src
catkin_create_pkg package_example roscpp std_msgs

royi项目去掉redission_xml_02

创建成功后在catkin_ws/src目录下会新建一个package_example的文件夹:

royi项目去掉redission_xml_03

package_example目录中,有下图所示的几个文件/文件夹:

royi项目去掉redission_xml_04

  • 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

royi项目去掉redission_xml_05

删除ROS功能包

把整个功能包删除,然后把工作空间下devel/share路径下与被删除文件夹同名的文件夹删除,devel/include和devel/lib中也一样,再catkin_make即可。