ROS入門筆記(六): ROS系統架構
1 ROS系統架構
1.1 文件系統(重點)
1.2 計算圖
1.3 開源社區
1 ROS系統架構
1.1 文件系統(重點)
3)功能包(Package):功能包是ROS中軟件組織的基本形式。一個功能包具有用於創建ROS程序的最小結構和最少內容。它可以包含ROS運行的進程(節點)、配置文件等;
6)服務類型(Service):服務類型定義了ROS服務器/客戶端通信模型下的請求與應答數據類型,可以使用ROS系統提供的服務類型,也可以使用.srv文件在功能包的srv文件夾中進行定義。
1.2 計算圖
計算圖是ROS在點對點網絡里整合並處理數據的過程。基本計算圖概念是 節點, 主機, 參數服務器, 消息, 服務, 話題, 和 數據包,它們通過不同的方式提供數據給圖層。
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中再現情景,便於算法的反復調試。