ROS2介紹(二)

  • ROS2新技術
  1. Zeroconf:零配置網絡服務規範,用於自動生成可用IP地址的網絡技術,不需要額外的手動配置和專屬的配置服務器。
  2. Protocol Buffers:Google公司開發的一種數據描述語言,類似於XML能夠將結構化數據序列化,可用於數據存儲、通信協議等方面。它不依賴於語言和平臺並且可擴展性極強。
  3. ZeroMQ(and the other MQs):一個簡單好用的傳輸層,相框架一樣的一個socket library,它使的socket編程更加簡單、簡潔和性能更高。
  4. Redis:一個高性能的key-value數據庫。
  5. WebSockets:HTML5開始提供的瀏覽器與服務器間進行全雙工通訊的網絡技術。
  6. DDS(Data Distribution Service):新一代分佈式實時通信中間件技術規範,DDS採用發佈/訂閱體系架構,強調以數據爲中心,提供豐富的Qos服務質量策略,能保障數據進行實時、高效、靈活的分發,可滿足各種分佈式實時通信應用要求,
  7. 多機器人控制,可以同時駕奴多個機器人。
  8. 多平臺應用支持、可以在x86和ARM上跑。
  • ROS2架構
    下面內容參考別人。
    在這裏插入圖片描述
  • DDS是什麼
    DDS(Data Distribution Service)即數據分發服務。它是一個專門爲實時系統設計的數據分發/訂閱標準,目前已成爲分佈式實時系統中數據發佈/訂閱的標準解決方案。
    DDS 的技術核心是以數據爲核心的發佈訂閱模型(Data-Centric Publish-Subscribe ,DCPS),DCPS模型創建了一個“全局數據空間“的概念,所有獨立的應用都可以去訪問。在DDS中,每一個發佈者或者訂閱者都成爲參與者,類似於ROS中節點的概念。每一個參與者都可以使用某種定義好的數據類型來讀寫全局數據空間。好像和ROS1的發佈訂閱差不多,那我們來對比一下兩個模型

在這裏插入圖片描述

  1. DDS中的模型就人性化多了:

  2. 參與者(Domain Participant):一個參與者就是一個容器,對應於一個使用DDS的用戶,任何DDS的用戶都必須通過Participant來訪問全局數據空間。

  3. 發佈者(Publisher):數據發佈的執行者,支持多種數據類型的發佈,可以與多個數據寫入器(DataWriter)相聯,發佈一種或多種主題(Topic)的消息。

  4. 訂閱者(Subscriber):數據訂閱的執行者,支持多種數據類型的訂閱,可以與多個數據讀取器(DataReader)相聯,訂閱一種或多種主題(Topic)的消息。

  5. 數據寫入器(DataWriter):應用向發佈者更新數據的對象,每個數據寫入器對應一個特定的Topic,類似於ROS1中的一個消息發佈者。

  6. 數據讀取器(DataReader):應用從訂閱者讀取數據的對象,每個數據讀取器對應一個特定的Topic,類似於ROS1中的一個消息訂閱者。

  7. 主題(Topic):這個和ROS1中的Topic概念一致

  8. QoS Policy:Quality of Service,質量服務原則,負責數據質量的。QoS是DDS中非常重要的一環,控制了各方面與底層的通訊機制,主要從時間限制、可靠性、持續性、歷史記錄幾個方面,滿足用戶針對不同場景的數據應用需求。

  • ROS2相比於ROS1有所提升:
  1. 實時性增強:數據必須在deadline之前完成更新。
  2. 持續性增強:ROS1儘管存在數據隊列的概念,但是還有很大的侷限,訂閱者無法接收到加入網絡之前的數據;​ DDS可以爲ROS提供數據歷史的服務,就算新加入的節點,也可以獲取發佈的所有歷史數據。
  3. 可靠性增強:通過DDS配置可靠性原則,用戶可以根據需求選擇性能模式(BEST_EFFORT)或者穩定模式(RELIABLE)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章