<b>2.1 了解ros檔案系統級</b>
如果你剛接觸ros,無論是準備使用ros系統還是準備開發ros項目,你都會覺得ros中的各種概念非常奇怪。而一旦你駕輕就熟,那麼這些概念就會變得熟悉了。
與其他作業系統類似,一個ros程式的不同元件要被放在不同的檔案夾下。這些檔案夾是根據功能的不同來對檔案進行組織的:
功能包(package):功能包是ros中軟體組織的基本形式。一個功能包具有用于建立ros程式的最小結構和最少内容。它可以包含ros運作的程序(節點)、配置文
件等。
功能包清單(package manifest):功能包清單提供關于功能包、許可資訊、依賴關系、編譯标志等的資訊。一個包的清單由一個名為package.xml的檔案管理。
綜合功能包(metapackage):如果你将幾個具有某些功能的功能包組織在一起,那麼你将會獲得一個綜合功能包。在ros fuerte中,這種包的組織形式被稱為功能包集(stack)。為了保持ros簡潔,功能包集被移除,現在使用綜合功能包實作這個功能。在ros系統中,存在大量不同用途的綜合功能包,例如導航功能包集。
綜合功能包清單(metapackage manifest):綜合功能包清單(package.xml)類似普通功能包但有一個xml格式的導出标記。它在結構上也有一定的限制。
消息類型(message(msg)type):消息是一個程序發送到其他程序的資訊。ros系統有很多的标準類型消息。消息類型的說明存儲在my_package/msg/mymessagetype.msg中,也就是對應功能包的msg檔案夾下。
服務類型(service(srv)type):服務描述說明存儲在my_package/srv/myservicetype.srv中,定義了在ros中由每個程序提供的關于服務請求和響應的資料結構。
在右側的截圖中,可以看到turtlesim功能包的内容。你看到的是一系列檔案和檔案夾,包含代碼、圖檔、啟動檔案、服務和消息。記住,截圖顯示檔案的一個簡短清單,真正的功能包會更多。