【ROS入門-2】帶你看ROS文件系統及其工具

ROS系列文章

ROS的架構

ROS的架構經過設計並劃分成了三部分, 每一部分都代表一個層級的概念:

  • 文件系統級(Filesystem level)

主要有ROS的內部構成、 文件夾結構, 以及工作所需的核心文件。

  • 計算圖級(Computation Graph level)

主要是進程和系統之間的通信,包括建立系統、 處理各類進程、 與多臺計算機通信等。

  • 社區級(Community level)

主要是在開發人員之間共享知識、 算法和代碼,塑造了ROS強大的開源社區。

本章的準備工作

本文章中我們將會用到ros-tutorials程序包,要先用apt命令去安裝:

sudo apt-get install -y ros-<distro>-ros-tutorials

<distro>替換成你所安裝的版本(比如 kinetic、melodic 等)。

從我們上一篇文章安裝的是melodic版本,那麼命令就是:

sudo apt-get install -y ros-melodic-ros-tutorials

ROS文件系統的概念

ROS文件系統可以將項目構建過程集中化, 同時提供很好的靈活性和工具來分散之間的依賴性。

Packages

功能包,也可以被稱之爲軟件包,是ROS應用程序代碼的組織單元,每個功能包都可以包含程序庫、可執行文件、腳本或者其它手動創建的東西。

Manifest

清單,它包含了關於Packages的維護者、許可協議、依賴關係以及編譯標誌等的信息,由一個名爲package.xml的文件管理。

Metapackage

元功能包:多個具有某些功能的包組織在一起,稱爲元功能包。

Metapackage Manifest

元功能包清單:由一個名字爲package.xml的文件管理,類似普通功能包但有一個XML格式的導出標記。

文件系統工具

由於ROS中大量代碼分散在衆多的packages和Metapackage之中,linux本身的命令工具ls和cd已不能滿足檢索要求,因此ROS提供了一套自己的命令工具來完成與這些命令相似的工作。

rospack

rospack允許用戶獲取功能包的有關信息,比如我們找一個roscpp功能包所在的位置,可以通過以下命令:

➜  ~ rospack find roscpp

/opt/ros/melodic/share/roscpp

rospack的用法是:

rospack find [功能包名稱]

ros006

roscd

roscdrosbash命令集中的一部分,它允許你直接切換(cd)工作目錄到某個軟件包或者軟件包集當中。

roscd的用法是:

roscd [功能包名稱[/子目錄]]

比如切換到roscpp目錄下:

roscd roscpp

比如切換到roscpp的子目錄msg下:

roscd roscpp/msg

ros007

rosls

這個命令更linux下的ls很像,但它允許你在任何位置列出某個功能包的當前目錄或者其子目錄的內容,而不需要在絕對路徑執行ls。

rosls的用法是:

rosls [功能包名稱[/子目錄]]

比如列出roscpp目錄下的內容:

rosls roscpp

比如列出roscpp的子目錄msg下的內容:

rosls roscpp/msg

ros008

同時它們都支持Tab補全,非常方便

參考:

ROS官方wiki

ROS筆記(5) ROS架構

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章