ROS学习之包的概念
目錄
?對(duì)于rosbuild,請(qǐng)參閱:rosbuild / Packages
ROS中的軟件以包的形式組織。軟件包可能包含ROS?節(jié)點(diǎn),與ROS無(wú)關(guān)的庫(kù),數(shù)據(jù)集,配置文件,第三方軟件或邏輯上構(gòu)成有用模塊的任何其他內(nèi)容。這些包的目標(biāo)是以易于消費(fèi)的方式提供這種有用的功能,以便軟件可以輕松重用。一般來(lái)說(shuō),ROS包遵循“Goldilocks”原則:足夠的功能是有用的,但不是太多,因?yàn)樵摪侵亓考?jí)的,難以從其他軟件使用。
軟件包很容易用手工制作,或者像catkin_create_pkg這樣的工具。一個(gè)ROS包就是一個(gè)從ROS_PACKAGE_PATH(見(jiàn)ROS環(huán)境變量)中下載的一個(gè)目錄,其中包含一個(gè)package.xml文件。包是最小單元。這意味著一個(gè)包是您可以在ROS中構(gòu)建的最小的單獨(dú)的東西,它是軟件捆綁發(fā)行的方式(例如,每個(gè)ROS包都有一個(gè)debian包)。
有關(guān)如何讀取和寫(xiě)入package.xml文件的文檔,請(qǐng)參閱catkin / package.xml部分。
?
常見(jiàn)文件和目錄
ROS包往往遵循一個(gè)共同的結(jié)構(gòu)。以下是您可能注意到的一些目錄和文件。
-
include / package_name:C ++包含頭(確保在CMakeLists.txt中導(dǎo)出)
-
msg /:包含消息(msg)類型的文件夾
-
src / package_name /:源文件,特別是導(dǎo)出到其他包的Python源代碼。
-
srv /:包含Service(srv)類型的文件夾
-
scripts /:可執(zhí)行腳本
-
CMakeLists.txt:CMake構(gòu)建文件(參見(jiàn)catkin / CMakeLists.txt)
-
package.xml:package?catkin / package.xml
-
CHANGELOG.rst:許多軟件包將定義一個(gè)可以自動(dòng)注入到二進(jìn)制打包中并進(jìn)入wiki頁(yè)面的更改日志
?
命令行工具
軟件包是ROS文件如何組織的一個(gè)非常核心的概念,所以在ROS中有很多工具可以幫助您管理它們。這包括:
-
rospack:查找和檢索有關(guān)包的信息
-
catkin_create_pkg:創(chuàng)建一個(gè)新的包
-
catkin_make:構(gòu)建包的工作區(qū)
-
rosdep:安裝包的系統(tǒng)依賴項(xiàng)
-
rqt:在rqt中有一個(gè)名為“Introspection / Package Graph”的插件,它將包的依賴性視為圖形
還有一些常見(jiàn)的Unix shell的擴(kuò)展,可以提供額外的功能來(lái)幫助您導(dǎo)航和使用軟件包。最常用的是rosbash,它提供常見(jiàn)的Unix shell命令的ROS變體。最常用的是roscd,它執(zhí)行cd到包的目錄,例如
roscd roscpp_tutorials客戶端庫(kù)支持
?
轉(zhuǎn)載于:https://www.cnblogs.com/qixianyu/p/6668793.html
總結(jié)
以上是生活随笔為你收集整理的ROS学习之包的概念的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: iOS开发 - OC - block的详
- 下一篇: 1119: 零起点学算法26——判断奇偶