1. 程式人生 > >ROS初探:(一)ROS架構

ROS初探:(一)ROS架構

-c 獨立 put 網絡 配置 只有一個 依賴庫 請求 linux

一.ROS架構

ROS架構上分為三個層級:


  • 計算圖級(Computation Graph level):體現進程與系統的關系,描述系統怎麽運行。

  • 文件系統級(Filesystem level):組織構建程序文件。

  • 社區級(Community level):開源社區,共享知識、算法和代碼等。


1.1 計算圖級


計算圖級包含:節點、節點管理器、參數服務器、消息、服務、主題和消息記錄包。

  • 節點(node):主要的計算執行進程,可自行創建節點,加入網絡。

  • 節點管理器(master):是節點通信的基礎,用於節點的註冊、查找。

  • 參數服務器(parameter server):屬於節點管理器的一部分,將數據存放在系統關鍵位置,節點可以獲取這些數據來配置、改變自己的狀態。

  • 消息(message):具有各種類型,節點間溝通傳輸的信息數據。

  • 主題(topic):一類消息的集合,節點可以發布、訂閱主題。發布者和訂閱者之間相互解耦,不知對方的存在。

  • 服務(service):區別於主題,服務用於節點直接向節點交互,獲得請求或應答。

  • 消息記錄包(bag):保存回放消息數據的文件格式。


  ROS創建一個網絡(Computation Network)來進行計算,該網絡連接了系統中的所有進程(節點),如下圖所示:

技術分享圖片

1.2 文件系統級


技術分享圖片

  功能包(package):一種特定結構的文件、文件夾的組合。ROS中各種軟件的組織方式,包含節點、配置文件、ROS依賴庫、第三方軟件及其它任何邏輯構成。

  元功能包(Metapackage):只有一個文件(package.xml)的特殊包,將多個具有某些功能的包組織在一起形成邏輯包。

1.3 社區級


開源社區級,通過獨立的網絡社區分享軟件、知識,包含如下幾部分:

  • 發行版:可獨立安裝、類似於Linux。

  • 軟件庫:聯網的代碼存儲庫,不同機構可以發布。

  • ROS Wiki:論壇,可貢獻自己的文件。

  • Bug提交系統

  • 郵件列表:交流軟件更新等各種問題。

  • 博客:發布一些定期更新、新聞。

  • ROS問答

ROS初探:(一)ROS架構