ROS入門筆記(六):ROS系統架構


ROS入門筆記(六): ROS系統架構

1 ROS系統架構
    1.1 文件系統(重點)
    1.2 計算圖
    1.3 開源社區

1 ROS系統架構

 

1.1 文件系統(重點)

文件系統:主要指在硬盤里能看到的ROS目錄和文件:

 

1)元功能包(Meta Packages):組織多個用於同一目的功能包。
2)元功能包清單(Meta Packages):類似於功能包清單,不同之處在於元功能包清單中可能會包含運行時需要依賴的功能包或者聲明一些引用的標簽。

3)功能包(Package):功能包是ROS中軟件組織的基本形式。一個功能包具有用於創建ROS程序的最小結構和最少內容。它可以包含ROS運行的進程(節點)、配置文件等;

4)功能包清單(Package manifest):記錄功能包的基本信息,包含作者信息、許可信息、依賴選項、編譯標志等。
5)消息類型(Message):消息是ROS節點之間發布/訂閱的通信信息,可以使用ROS系統提供的消息類型,也可以使用.msg文件在功能包的msg文件夾下自定義需要的消息類型。

注:消息類型的說明存儲在對應功能包的msg文件夾下。

6)服務類型(Service):服務類型定義了ROS服務器/客戶端通信模型下的請求與應答數據類型,可以使用ROS系統提供的服務類型,也可以使用.srv文件在功能包的srv文件夾中進行定義。

注:服務描述說明存儲在對應功能包的src文件夾下

7)代碼(Code):放置功能包節點源代碼的文件夾。

1.2 計算圖

計算圖是ROS在點對點網絡里整合並處理數據的過程。基本計算圖概念是 節點, 主機, 參數服務器, 消息, 服務, 話題, 和 數據包,它們通過不同的方式提供數據給圖層。

這些概念是在ros_comm庫里實現的。

 

1)節點(Node)—節點是執行任務的進程,也稱為軟件模塊。

注:在ROS中,最小的進程單元就是節點( node)。一個軟件包里可以有多個可執行文件, 可執行文件在運行之后就成了一個進程(process), 這個進程在ROS中就叫做節點 。

2)節點管理器(ROS Master)—管理者角色,統籌管理節點,保證節點的正常運行。

注:當ROS程序啟動時, 第一步首先啟動master, 由節點管理器處理依次啟動node 。

作用:

通過RPC提供登記列表及對其他計算圖表的查找功能,幫助節點間互相查找,建立連接,進行點對點的通信

控制中心,提供參數服務器,管理全局參數

3)參數服務器(Parameter Server)—參數服務器是節點存儲參數的地方、 用於配置參數, 全局共享參數。 參
數服務器使用互聯網傳輸, 在節點管理器中運行, 實現整個通信過程。 參數服務器維護着一個數據字典, 字典里存儲着各種參數和配置。

4)消息(Message)—消息在ROS中,是一種數據類型,節點之間通過消息來互相通信。消息類型有ROS標准類型和基於標准消息開發的自定義類型兩種。

6)主題(Topic)—異步通信機制,傳輸消息(Message)

主題:指節點發布的消息的去處。節點可以發布消息到話題,也可以訂閱話題以接收消息。當一個節點發送數據時,我們就說該節點正在向主題發布消息。節點可以通過訂閱某個主題,接受來自其他節點的消息。

發布/訂閱:多對多的傳輸方式

 

6)服務(Service)—同步通信機制,傳輸請求/應答數據,基於C/S模型

當你需要直接與節點通信並獲得應答時,將無法通過主題實現,從而需要服務。此外,服務必須有唯一的名稱。當一個節點提供某個服務時,所有的節點都可以通過使用ROS客戶端編寫的代碼與它通信。

 

請求/應答:一對多的傳輸模式

7)消息記錄包(bag)—是一種用於保存和回放ROS消息數據的文件格式。消息記錄包是一種用於存儲數據的重要機制,它可以幫助記錄一些難以收集的傳感器數據,然后通過反復回放數據進行算法的性能開發和測試。ROS創建的消息記錄包文件以*.bag為擴展名,通過播放、停止、后退操作該文件,可以像實時會話一樣在ROS中再現情景,便於算法的反復調試。

1.3 開源社區

ROS開源社區的概念主要是ROS資源,其能夠通過獨立的網絡社區分享軟件和知識。

 

1)發行版(Distribution):ROS發行版包括一系列帶有版本號、可以直接安裝的功能包。
2)軟件源(Repository):ROS依賴於共享網絡上的開源代碼,不同的組織機構可以開發或者共享自己的機器人軟件。
3)ROS wiki:記錄ROS信息文檔的主要論壇。
4)郵件列表(Mailing list):交流ROS更新的主要渠道,同時也可以交流ROS開發的各種疑問。
5)ROS Answers:咨詢ROS相關問題的網站。
6)博客(Blog):發布ROS社區中的新聞、圖片、視頻(http://www.ros.org/news)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM