Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

ROS 系統通訊機制與

文件組織架構
Topic、Service與 Catkin_ws
目 錄

2 ROS 系統的介紹與教學範例
2-0 教學投影片格式
2-1 ROS 架構設計
2-2 ROS 通訊機制
2-3 ROS 文件組織系統

Leading EDGE COMPUTING adlinktech.com


2-0 操作流程標題(p0) - 對應使用手冊的單元(對應的頁碼)
詳細閱讀將有助於接下來課程的吸收 – 提醒重點
2-0-1. 操作流程目的與簡介
指令: $ export ROS_MASTER=hostname.local - 需要輸入的指令,紅字為需要自行修改的地方

2-0-1-1. 詳細的操作步驟,按鍵類型皆會以
【按鍵】表示(實體按鍵或是
圖形化介面按鍵)

2-10-1-2. 請注意此操作步驟,有些步驟需要
根據實際情況做彈性調整

操作範例圖示

Leading EDGE COMPUTING adlinktech.com


2-1 ROS 架構設計(p26)
簡短複習 ROS 系統的架構
2-1-1. ROS 系統的版本發布 ROS 不是傳統的作業系統

ROS 在系統層中,我們可以得知
應用層
Application
ROS 操作系統並不像傳統的作業系統(如 Linux、
Master
Node
Node Node … Windows)一樣,可直接在電腦硬體上執行,需
要依附上述提及的作業系統,才可以使用。
目前與 ROS 相適性最佳的作業系統為 Ubuntu,
Client Library 並且在 2019 年時,微軟也宣布 Windows 也開
中間層
TCPROS/UDPROS Nodelet API 始支援 ROS。

系統層 Linux、Windows、Ubuntu...

圖 1-1-1 ROS 架構設計圖示

Leading EDGE COMPUTING adlinktech.com


2-2 ROS 通訊機制(p27)
簡短複習 ROS1 系統的通訊機制
2-2-1. ROS 系統的版本發布

Leading EDGE COMPUTING adlinktech.com


2-2 ROS 通訊機制(p28)
簡短複習 ROS1 系統的通訊機制
2-2-2. Service 與 Srv
Service 包含兩個部分的通訊模型 :
Client 與 Server。

• Client 端 : 向 Server 端請求某項服務


• Server端 : 執行 Client 端的請求, 並回傳
Client 端要求的回應

備註 : ROS 還有第三種通訊模式 : actionlib ,因 ROS


的基礎操作中不常使用到,因此這裡將不列出

Leading EDGE COMPUTING adlinktech.com


2-3 ROS 文件組織系統(p29)
ROS1 系統的文件配置介紹
2-3-1. 安裝目錄與工作空間
ROS 系統中,會有兩個資料夾讓我們去使用
安裝目錄資料夾 : 此處將會存放 ROS 系統的核心程式與相依的依賴、標頭檔、程式庫等預設文件檔案
工作空間資料夾 : 此處將會存放開發新專案時,會使用到的各種依賴、程式庫、標頭檔與程式碼等與新專案相關
的各種檔案

安裝目錄資料夾路徑 : /opt/ros 工作空間資料夾路徑 : ../catkin_ws/src


在安裝目錄中,儲放 ROS 系 工作空間可以在任一資料夾目
統啟動的必要程式與程式庫 錄下建立
例如 rqt、rviz、catkin_make 我們所建立的 ROS 專案所有
等相關工具的使用程式 程式碼,皆會存放到此工作空
除非必要,否則將不會去修改 間資料夾,詳細內容請查看下
內部文件內容 一頁

Leading EDGE COMPUTING adlinktech.com


2-3 ROS 文件組織系統(p30)
ROS1 系統的文件配置介紹
2-3-2. 新專案與工作空間 文件組織的架構

在一個標準的 ROS 專案的工作空間中,一定會有三個


資料夾存在 :

build : Build Space, 用來儲存工作空間編譯過程中產


生的暫存訊息與中間文件
devel : Development Space, 用來儲存編譯生成的可
執行文件
src : Source Space, 開發過程中最常用的資料夾, 用
來儲存該專案所有可執行的程式碼文件

通常我們僅會頻繁地修改 src 資料夾裡的內容,build 與


devel 資料夾則可以由 ROS 系統的 catkin_make 工具
來協助產生。

Leading EDGE COMPUTING adlinktech.com


2-3 ROS 文件組織系統(p31)
ROS1 系統的文件配置介紹
2-3-3. Node, Package, Src ROS 專案中會頻繁使用到的文件

在 ROS 系統中,Node 是最小單位的可


執行文件檔案(可使用C、python、java…
等 ROS可支援的程式語言撰寫),透過前
面介紹的通訊模式( Topic & Message,
Service & Srv ),讓每個 Node 都可以互
相傳遞資料。將各個不同的 Node 組合起
來後,便可以形成一個具有單一功能的
package。

Leading EDGE COMPUTING adlinktech.com


2-3 ROS 文件組織系統
ROS1 系統的文件配置介紹
2-3-4. Src 資料夾中的配置
然而若是將所有的 Node 直接全部放入 Package 的資料夾,難免會過於混亂,因為一個 Package 中不會僅存
放 Node 這一種類型檔案,還有 launch 文件檔案、標頭檔案、參數檔案、自定義的 Message 檔案….等等,皆
會存放於 Package 內。因此,ROS 官方有釋放出一個 Package 的資料夾結構標準範例,讓使用者能夠在同一
個標準下,開發一個 ROS 專案,避免因 Package 資料夾結構不同,造成其餘開發者的困擾。

Leading EDGE COMPUTING adlinktech.com


1. action : 存放自定義的 action 文件檔案
2. config : 存放自定義的動態配置文件檔案
3. include : 存放 Package 會使用到的標頭檔案(C)或模組(Python)
4. launch : 存放 launch 文件檔案
5. msg : 存放自定義的 Message 文件檔案
6. scripts : 存放可直接執行的 python 程式碼檔案,或是執行演算方法的程式碼檔案
7. src : 存放需要進行編譯的 C 或 C++ 程式碼檔案,或是直接操作硬體相關的程式碼檔案
8. srv : 存放自定義的 Srv 文件檔案
9. CmakeLists.txt : 使用 catkin_make 編譯功能時,所需要的編譯規則
10. package.xml : 存放會使用到其他 package 的清單

Leading EDGE COMPUTING adlinktech.com


2-3 ROS 文件組織系統(p32)
ROS1 系統的文件配置介紹
2-3-5. ROS 專案的文件配置方式
紅色虛線範圍 : 需要自行手動新增資料夾
黃色虛線範圍 : 透過 catkin_create_pkg 指令,
ROS系統將會協助新增資料夾
綠色虛線範圍 : 透過 catkin_make 指令,ROS
系統將會自動生成,我們不需
要自行新增資料夾

……

Leading EDGE COMPUTING adlinktech.com

You might also like