welcom ! Handel home

2025年2月6日 星期四

ROS 2 中介軟體抽象層的影響評估

 

ROS 2 中介軟體抽象層(Middleware Abstraction Layer, RMW)的影響評估

ROS 2 中,中介軟體抽象層(RMW, ROS Middleware Abstraction Layer) 是 ROS 2 與底層通訊系統(DDS, Data Distribution Service)之間的橋樑。
這一層的設計 提供了靈活性、可擴展性、性能優化與安全性,對機器人系統的整體表現影響深遠。


📌 1️⃣ RMW 在 ROS 2 架構中的角色

在 ROS 2 通訊架構 中,RMW 是關鍵的一層:

diff
+-------------------------------------------------+ | 應用層(應用開發者編寫的節點) | | e.g. Navigation Stack, MoveIt!, Perception | +-------------------------------------------------+ | ROS 2 通訊層(rclcpp, rclpy) | | e.g. ROS 2 Topics, Services, Actions | +-------------------------------------------------+ | **中介軟體抽象層(RMW, ROS Middleware)** | | 提供不同 DDS 實現的適配層(FastDDS, CycloneDDS)| +-------------------------------------------------+ | **底層 DDS 通訊(Data Distribution Service)**| | DDS(eProsima FastDDS, CycloneDDS, RTI Connext) | +-------------------------------------------------+ | 網路傳輸層(UDP, TCP, SHM) | +-------------------------------------------------+

🔹 RMW 讓 ROS 2 能夠支持不同的 DDS 廠商,不必依賴單一通訊協議。


📌 2️⃣ RMW 對 ROS 2 的影響

🔹 (1) 提供通訊靈活性

  • 支持不同的 DDS 實現
    • ROS 2 可以使用 不同 DDS(Fast DDS、Cyclone DDS、Connext DDS) 來優化通訊性能。
    • 不同 DDS 針對不同應用場景進行優化(如延遲敏感應用、低帶寬應用)。
  • 支持不同傳輸模式
    • 共享內存(SHM, Shared Memory) 用於 本機通訊(低延遲)。
    • UDP 通訊 用於 分散式機器人網路

🔹 影響: ✅ 開發者可根據需求選擇最合適的 DDS,提高 ROS 2 通訊性能


🔹 (2) 影響通訊性能(延遲與吞吐量)

RMW 不同的 DDS 實現方式影響了延遲與吞吐量

RMW 實現特點適用場景
Fast DDS(預設)低延遲、高吞吐量、可配置性強一般 ROS 2 應用
Cyclone DDS低 CPU 使用率,適合低功耗設備嵌入式、邊緣運算
Connext DDS(RTI)超高可靠性,適用於工業級應用醫療、自動駕駛
Gurum DDS商業 DDS,針對實時應用優化軍用、航空

🔹 影響: ✅ 高效能系統可以選擇 Fast DDS,而 工業應用則適合 Connext DDS


🔹 (3) 支持 QoS(Quality of Service)

RMW 提供 QoS(品質服務),讓 ROS 2 可以針對不同的應用場景 優化通訊

QoS 參數影響
Reliability(可靠性)RELIABLE(保證傳輸) vs. BEST_EFFORT(低延遲)
Durability(持久性)TRANSIENT_LOCAL(歷史訊息存儲) vs. VOLATILE(即時)
History(歷史訊息數量)KEEP_LAST(N)(存 N 筆訊息) vs. KEEP_ALL(存所有訊息)

🔹 影響: ✅ 導航(Navigation)應用可能需要低延遲(BEST_EFFORT
控制系統(Control)則需要高可靠性(RELIABLE


🔹 (4) 改善安全性

  • ROS 1 沒有內建安全機制
  • ROS 2 RMW 支援 DDS-Security(TLS 加密、身份驗證)
    xml
    <dds> <security> <encryption>enabled</encryption> </security> </dds>

🔹 影響: ✅ 適用於醫療機器人、自動駕駛等高安全需求應用。


📌 3️⃣ RMW 影響的關鍵應用場景

(1) 無人機與自動駕駛

需求

  • 低延遲、高可靠性
  • 多機通訊 RMW 影響
  • 選擇 Fast DDS 或 Connext DDS,提供低延遲與 QoS 保證
  • 使用 RELIABLE + KEEP_LAST(N) 設定,確保導航資訊不丟失

(2) 邊緣運算(Edge Computing)

需求

  • 低功耗、高效能
  • 本機通訊優化 RMW 影響
  • 選擇 Cyclone DDS(較低 CPU 使用率)
  • 使用 SHM(共享記憶體) 模式 來降低本機通訊延遲

(3) 工業自動化與醫療機器人

需求

  • 高可靠性、加密安全性
  • 數據長時間存儲 RMW 影響
  • 選擇 Connext DDS(支援 DDS-Security)
  • 使用 TRANSIENT_LOCAL 儲存歷史數據

📌 4️⃣ RMW 影響的優勢與挑戰

✅ 優勢

  1. 靈活性高:開發者可根據需求選擇不同 DDS。
  2. 高效能:QoS 配置可優化延遲、可靠性、吞吐量。
  3. 分散式系統支援:無需 ROS Master,適合多機系統。
  4. 安全性增強:支援 DDS-Security,適合工業與醫療應用。

❌ 挑戰

  1. 開發者需要學習 DDS 概念,不如 ROS 1 直覺。
  2. 不同 DDS 實現的行為不同,需要測試最佳配置。
  3. RMW 切換可能會影響系統整合,如 Cyclone DDS 與 Fast DDS 的 rmw_qos_profile 設定不同。

📌 5️⃣ 總結:RMW 在 ROS 2 中的重要性

提供靈活的 DDS 選擇(Fast DDS, Cyclone DDS, Connext DDS)
影響 ROS 2 通訊效能(延遲、吞吐量、QoS)
增強 ROS 2 的分散式架構與安全性
允許針對不同應用場景進行最佳化(自動駕駛、醫療、工業 4.0)

如果你的機器人應用需要

  • 高效能 → 選擇 Fast DDS
  • 低功耗 → 選擇 Cyclone DDS
  • 高安全性 → 選擇 Connext DDS

🚀 你是否需要幫助選擇最適合的 RMW?

  • 需要 優化 ROS 2 延遲與吞吐量
  • 需要 設定 QoS 參數 來改善通訊品質?
  • 需要 選擇適合的 DDS

沒有留言: