元功能包的概念和作用
在ROS中,提供了一种方式可以将不同的功能包打包成一个功能包,当安装某个功能模块时,直接调用打包后的功能包即可,该包又称之为元功能包(metapackage)。MetaPackage是Linux的一个文件管理系统的概念。是ROS中的一个虚包,里面没有实质性的内容,但是它依赖了其他的软件包,通过这种方法可以把其他包组合起来,可以认为它是一本书的目录索引,指明了这个包集合中有哪些子包,并且该去哪里下载。
如:
sudo apt install ros-noetic-desktop-full
命令安装ros时就使用了元功能包,该元功能包依赖于ROS中的其他一些功能包,安装该包时会一并安装依赖。
通过以上描述可以看出,ROS中的元功能包主要是方便用户安装,即将需要用到的子包集成为一个整包。
元功能包的创建
元功能包创建过程中,只需要使用catkin_make 创建空包,不需要添加任何依赖,然后需要在配置中修改 CmakeLists.txt 和 package.xml。
1 CmakeLists.txt中的修改过程
这里需要注意的内容是:将CmakeLists.txt中的注释文件全部删除,且增加 catkin_metapackage(),且这四句话要间隔紧凑,最后一行不能有回车
cmake_minimum_required(VERSION 3.0.2)
project(自定义包名)
find_package(catkin REQUIRED)
catkin_metapackage()
2 package.xml的修改
<exec_depend>被集成的功能包</exec_depend>
<export>
<metapackage />
</export>
以上就是元功能包的创建过程,其使用等到后续封装工程的时候会进行相关的操作。