一.ROS架構 ROS架構上分為三個層級: 計算圖級(Computation Graph level):體現進程與系統的關係,描述系統怎麼運行。 文件系統級(Filesystem level):組織構建程式文件。 社區級(Community level):開源社區,共用知識、演算法和代碼等。 1.1 ...
一.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問答