【ROS實踐入門(二)ROS文件概念和工作空間】

【ROS實踐學習入門系列(二)ROS文件概念和工作空間】

本內容經官網實例以及一些參考書總結而成,歡迎留言評論交流~

聯繫方式:ziyuanw#foxmail.com(#換成@)

一、ROS文件系統級別

在ROS設計的架構中,經過發展,目前被設計爲三個部分,各自代表三個層級。

文件系統級:後面以小海龜案例中文件組成來說明ROS內部構成,文件夾結構,以及實現功能必要核心文件。

計算圖級:體現進程與系統之間通信。

社區級:開發者之間互相共享代碼、問題。

1.ROS文件系統級:

①功能包(package):ROS中的最小結構單位,包含ROS運行時的進程(節點),配置文件。

②功能包清單(package manifest):提供關於功能包的許可,依賴關係,編譯標誌等信息,包清單爲package.xml文件管理。

③元功能包(metapackage):將多個功能包組合在一起成爲元功能包。

④元功能包清單(metapackage manifest):類似第二個同樣有package.xml,但存在一個XML格式導出標記。結構也稍有不同。

⑤消息類型(message(msg)type):一個進程發送到其他進程的信息被稱爲消息。ROS中有許多標準類型消息。存儲在*.msg文件。

⑥服務類型(service(srv)type):服務說明存儲在*.srv文件中。

二、工作空間

還是先看一下上篇博客中分析小海龜案例:

打開ubuntu終端,輸入:

$roscd turtlesim

切換至ROS官方案例的turtlesim文件夾下。(這裏可以直觀感受一下cdroscd的區別,roscd可以在配置好的ROS工作空間中,頂層目錄切換至它下面的任意存在的文件目錄;但是從底層級往高層文件目錄切換就要一步一步切換了,或者給出絕對路徑)

查看turtlesim的文件結構:(之前的版本里面還有一個src文件放着.cpp源程序)

 

images裏面放着各種小海龜的圖片每次打開小海龜外觀都不一樣。

1.工作空間創建

下列操作方法只適用於ROS Groovy及後期版本,對於ROS Fuerte及早期版本請選擇rosbuild。

下面開始創建一個名爲:catkin_ws的工作空間,幷包含一個空src目錄。

打開一個新的終端,我這裏直接在家目錄下創建了。可以自己根據需求任意自行選擇目錄。

  • (mkdir -p 檢測catkin_ws/src是否存在,不存在目錄則創建。)
$ mkdir -p ~/catkin_ws/src

即這個工作空間是空的。

  • (catkin_make可以簡單的理解爲cmake的ros版本集成形式。該命令在catkin 工作空間中是一個非常方便的工具。)

進入catkin_ws下進行編譯catkin_make:

$ cd ~/catkin_ws/
$ catkin_make

完成編譯後,查看一下當前目錄多出'build'和'devel'這兩個文件夾。'src'中多出了一個CMakeLists.txt文件。在'devel'文件夾裏面你可以看到幾個setup.*sh文件。source這些文件中的任何一個都可以將當前工作空間設置在ROS工作環境的最頂層,(.catkin_workspace爲隱藏文件,僅標記catkin工作區的位置以進行工具集成)。更多請參考catkin文檔。

每次自己建立完成一個catkin工作空間後使其生效就需要:接下來首先source一下新生成的setup.*sh文件:

$ source devel/setup.bash

同樣,roscd 可以在當前catkin_ws內跳轉任意一個文件目錄,而cd命令只能在給出絕對路徑或相對路徑時才能跳轉。

要想保證工作空間已配置正確,需確保ROS_PACKAGE_PATH環境變量包含你的工作空間目錄,採用以下命令查看:

$ echo $ROS_PACKAGE_PATH 
輸出顯示:
/home/<youruser>/catkin_ws/src:/opt/ros/melodic/share:/opt/ros/melodic/stacks

到此你的工作環境已經搭建完成,接下來可以繼續學習ROS常用命令與節點等操作。

 

上一篇:【ROS實踐入門(一)ROS簡介與安裝方法】

下一篇:【ROS實踐入門(三)小海龜案例主題與節點交互】

 

參考資料:

【1】ROS官網:http://wiki.ros.org/cn

【2】ROS機器人高效編程

【3】機器人操作系統ROS淺析

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