ROS架構(三)——檔案系統
ROS架構(三)——檔案系統
總述
眾所周知,ROS類似於作業系統,將所有檔案按照一定的規則進行組織,而不同功能的檔案被放置在不同的資料夾下。
功能包(Package):功能包是ROS軟體中的基本單元,包含ROS節點、庫、配置檔案等。
功能包清單(Package Manifest):每個功能包都包含一個名為package.xml的功能包清單,用於記錄功能包的基本資訊,包含作者資訊、許可資訊、依賴選項、編譯標誌等。
元功能包(Meta Package):在新版的ROS中,將原有功能包集(Stack)的概念升級為“元功能包”,主要作用都是組織多個用於同一目的的功能包。例如一個ROS導航的元功能包中會包含建模、定位、導航等多個功能包。
元功能包清單:元功能包清單中可能會包含執行時需要依賴的功能包或者宣告一些引用的標籤。
訊息(Message)型別:訊息是ROS節點之間釋出/訂閱的通訊資訊,可以使用ROS提供的訊息型別,也可以使用.msg檔案在功能包的msg資料夾下自定義所需要的訊息型別。
服務(Service)型別:服務型別定義了ROS客戶端/伺服器通訊模型下的請求與應答資料型別,可以使用ROS系統提供的服務型別,也可以使用.srv檔案在功能包的srv資料夾中進行定義。
程式碼(Code):用來放置功能包節點原始碼的資料夾。
一、功能包
這些資料夾的主要功能如下。
1)config:放置功能包中的配置檔案,由使用者建立,檔名可以不同。
2)include:放置功能包中需要用到的標頭檔案。
3)scripts:放置可以直接執行的Python指令碼。
4)src:放置需要編譯的C++程式碼。
5)launch:放置功能包中所有啟動檔案。
6)msg:放置功能包自定義的訊息型別。
7)srv:放置功能包自定義的服務型別。
8)action:放置功能包自定義的動作指令。
9)CMakeLists.txt:編譯器編譯功能包的規則。
10)package.xml:功能包清單。
從功能包清單中可以清晰地看到該功能包的名稱、版本號、資訊描述、作者資訊和許可資訊。除此之外,<build_depend></build_depend>標籤定義了功能包中程式碼編譯所依賴的其他功能包,而<run_depend></run_depend>標籤定義了功能包中可執行程式執行時所依賴的其他功能包。在開發ROS功能包的過程中,這些資訊需要根據功能包的具體內容進行修改。
ROS針對功能包的建立、編譯、修改、執行設計了一系列命令。
二、元功能包
元功能包是一種特殊的功能包,只包含一個package.xml元功能包清單檔案。它的主要作用是將多個功能包整合成為一個邏輯上獨立的功能包,類似於功能包集合的概念。
雖然元功能包清單的package.xml檔案與功能包的package.xml檔案類似,但是需要包含一個引用的標籤如下:
<export>
<metapackage/>
</export>
此外,元功能包清單不需要<build_depend>標籤宣告編譯過程依賴的其他功能包,只需要使用<run_depend>標籤宣告功能包執行時依賴的其他功能包。
以導航元功能包為例,可以通過以下命令看到該元功能包中package.xml檔案的內容。
$ roscd navigation
$ gedit package.xml
相關文章
- HDFS架構指南(分散式系統Hadoop的檔案系統架構)架構分散式Hadoop
- ros學習檔案系統介紹ROS
- 淺析三款大規模分散式檔案系統架構設計分散式架構
- 常見開源分散式檔案系統架構對比分散式架構
- 詳解GPFS檔案系統架構、組網和Building Block架構UIBloC
- 根檔案系統構建
- 根檔案系統簡介與BusyBox構建根檔案系統
- Linux ALSA 系統架構及音效卡註冊檔案操作Linux架構
- 二、Linux檔案系統結構Linux
- 系統架構設計面試指南(02)-MQ和檔案儲存架構面試MQ
- 架構師入門必看系列,分散式檔案系統HDFS解讀架構分散式
- java商城系統架構之第三篇——叢集架構搭建Java架構
- 檔案系統的物理結構分配
- Linux下的檔案系統結構Linux
- Linux檔案系統目錄結構Linux
- Vsan分散式檔案系統邏輯架構損壞恢復過程分散式架構
- 【ROS教程】編寫launch檔案ROS
- Linux系統篇-檔案系統&虛擬檔案系統Linux
- i.MX6ULL終結者Linux檔案系統的構建BusyBox構建根檔案系統Linux
- Tomcat系統架構Tomcat架構
- 檔案和檔案系統
- 檔案系統
- Linux系統中有哪些比較重要的檔案系統結構?Linux
- 檔案系統(五):exFAT 檔案系統原理詳解
- Linux系統檔案系統及檔案基礎篇Linux
- FACEBOOK 的系統架構架構
- 安卓系統架構安卓架構
- 系統架構演變架構
- 廣告系統架構架構
- IOS的系統架構iOS架構
- Android系統架構圖Android架構
- Android-系統架構Android架構
- 教你用 buildroot 構建根檔案系統UI
- 分散式檔案系統(HDFS)與 linux系統檔案系統 對比分散式Linux
- 【檔案系統】嵌入式檔案系統Fatfs簡介
- 檔案系統(十):一文看懂 UBI 檔案系統
- 【Android系統】Android系統架構簡介Android架構
- 解決方案架構、系統架構和企業架構區別架構