ROS的工作空间是一个存放工程开发相关文件的文件夹,Fuerte版本之后的ROS默认使用的是Catkin编译系统。
功能包是ROS软件中的基本单元,包含ROS节点、库、配置文件等。一个文件夹是功能包的标志是该文件夹中有package.xml
与CmakeLists.txt
两个文件。
package.xml
:描述功能包属性,记录功能包的基本信息,包含作者信息、许可信息、依赖选项、编译标志等。CmakeLists.txt
:记录功能包的编译规则。
ROS不允许在某个功能包中嵌套其他功能包,多个功能包必须平行放置在代码空间中。
元功能包(Meta Package) 是一种特殊的功能包,其主要作用是将多个功能包整合为一个逻辑上独立的功能包,相当于功能包集合。元功能包中没有CmakeLists.txt
文件,只包含一个package.xml
元功能包清单文件。
虽然元功能包清单的package.xml
文件与功能包的package.xml
文件类似,但是需要包含一个引用的标签如下:
<export>
<metapackage/>
</export>
此外,元功能包清单不需要<bulid_depend>
标签声明编译过程依赖的其他功能包,只需要使用<run_depend>
标签声明功能包运行时依赖的其他功能包。
以Prometheus项目为例,Prometheus项目文件夹就是一个典型的Catkin编译系统下的工作空间。
该工作空间中的文件结构及各文件夹属性如下,未特别说明的为普通文件夹——不属于ROS工作空间中功能包、元功能包等任何一种特殊文件类型。(在Prometheus工作空间中我没有看到元功能包。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)