welcom ! Handel home

2025年4月16日 星期三

ROS 2 和 micro-ROS 通訊架構

以下是 ROS 2 和 micro-ROS 通訊架構的文字描述和 Markdown 圖示:

文字描述:

整個通訊架構的核心是 ROS 2 網路,它基於 DDS(Data Distribution Service)中介層。在這個 ROS 2 網路中,運行著各種 ROS 2 節點,它們可以發布主題 (Topics)、訂閱主題、提供和使用服務 (Services),以及執行動作 (Actions)。

當我們引入 micro-ROS 時,Arduino 微控制器上的應用程式會成為一個 micro-ROS Client。這個 Client 本身並不直接參與 DDS 通訊,而是透過一個在更強大的電腦上運行的 micro-ROS Agent 作為橋樑。

micro-ROS Client 和 Agent 之間使用特定的通訊方式進行資料交換,常見的方式包括序列埠 (Serial/UART) 或網路協定 (UDP/TCP)。Client 將其 ROS 2 操作(例如發布訊息到某個主題)封裝成 Agent 可以理解的格式,並透過選定的傳輸方式發送給 Agent。

micro-ROS Agent 接收到來自 Client 的請求後,會將其轉換為標準的 ROS 2 DDS 通訊,並將其發布到 ROS 2 網路中。同樣地,當 ROS 2 網路中有與 micro-ROS Client 訂閱的主題相關的訊息時,Agent 會接收到這些訊息,並將其轉換為 Client 可以理解的格式,再透過相同的傳輸方式發送給 Client。

因此,micro-ROS Agent 本質上是一個協調者和轉換器,它使得資源受限的微控制器能夠間接地參與到功能完善的 ROS 2 生態系統中。

Markdown 架構圖:

Markdown
graph LR
    subgraph ROS 2 Network
        ROS2Node1 -- DDS --> ROS2Node2
        ROS2Node1 -- DDS --> ROS2Agent
        ROS2Agent -- DDS --> ROS2Node2
    end

    subgraph micro-ROS System
        ArduinoClient -- Serial/UDP --> ROS2Agent
    end

    %%ROS2Agent -- Bridges Communication --> ArduinoClient
    %%ROS2Agent -- Bridges Communication --> ROS2Network

[text show]
    [ROS2Node1] <--DDS--> [ROS2Node2]
                   |
                   v
              [ROS2Agent] <--Serial/UDP--> [ArduinoClient]


圖示說明:

  • ROS 2 Network 子圖: 代表標準的 ROS 2 環境。
    • ROS2Node1ROS2Node2 是典型的 ROS 2 節點,它們之間直接透過 DDS 進行通訊。
    • ROS2Agent 在這個網路中也作為一個 ROS 2 節點存在,它可以與其他標準 ROS 2 節點進行 DDS 通訊。
  • micro-ROS System 子圖: 代表包含 Arduino 和 micro-ROS Agent 的部分。
    • ArduinoClient 代表運行在 Arduino 微控制器上的 micro-ROS Client 程式。
    • ArduinoClient -- Serial/UDP --> ROS2Agent 表示 Arduino Client 使用序列埠或 UDP 等通訊方式與 micro-ROS Agent 進行通訊。
  • 連接箭頭:
    • ROS2Agent -- Bridges Communication --> ArduinoClient 強調 Agent 作為 Client 和 ROS 2 網路之間的通訊橋樑。
    • ROS2Agent -- Bridges Communication --> ROS2Network 同樣強調 Agent 在 ROS 2 網路中的角色。

總結:

micro-ROS 的通訊架構是一種代理模式,微控制器上的 Client 並不直接參與底層的 DDS 通訊,而是依賴於運行在更強大電腦上的 Agent 來作為其在 ROS 2 網路中的代表。Agent 負責處理與 ROS 2 網路的通訊細節,並將資料轉換成 Client 可以理解的格式,反之亦然。這種架構使得資源受限的微控制器也能夠安全且有效地融入 ROS 2 生態系統。

沒有留言: