3.3 元功能包
場景
完成一個系統(tǒng)性的功能,可能涉及到多個功能包,比如實現(xiàn)了機器人導航模塊,該模塊下有地圖、定位、路徑規(guī)劃...等不同的子級功能包。那么調(diào)用者安裝該模塊時,需要逐一的安裝每一個功能包嗎?
顯而易見的,逐一安裝功能包的效率低下,在ROS2中,提供了一種方式可以將不同的功能包打包成一個功能包,當安裝某個功能模塊時,直接調(diào)用打包后的功能包即可,該包又稱之為元功能包(metapackage)。
概念
MetaPackage是Linux的一個文件管理系統(tǒng)的概念。是 ROS2 中的一個虛包,里面沒有實質性的內(nèi)容,但是它依賴了其他的軟件包,通過這種方法可以把其他包組合起來,我們可以認為它是一本書的目錄索引,告訴我們這個包集合中有哪些子包,并且該去哪里下載。
例如:
sudo apt install ros-<ros2-distro>-desktop 命令安裝 ros2 時就使用了元功能包,該元功能包依賴于 ROS2 中的其他一些功能包,安裝該包時會一并安裝依賴。
作用
方便用戶的安裝,我們只需要這一個包就可以把其他相關的軟件包組織到一起安裝了。
實現(xiàn)
1.新建一個功能包
ros2 pkg create tutorails_plumbing
2.修改 package.xml 文件,添加執(zhí)行時所依賴的包:

3.文件CMakeLists.txt內(nèi)容如下:


B站有完整的ros系列教程視頻,可以觀看完整內(nèi)容ros課程ROS2理論與實踐
更多內(nèi)容將在猛獅知識星球社區(qū)更新最新課程,后續(xù)將推出更多優(yōu)質內(nèi)容——詳情可關注猛獅集訓營公眾號和猛獅集訓營官方網(wǎng)站。
標簽: