以下是 ESP32 使用 micro-ROS 發送資料到 ROS 2 系統的完整通訊流程圖,並說明每個環節的角色與功能:
📊 ESP32 ➜ ROS 2 通訊流程圖(UART 或 Wi-Fi)
🧠 各環節詳細解說
區塊 | 元件 / 功能 | 備註說明 |
---|---|---|
ESP32 MCU | FreeRTOS + micro-ROS Client | 執行 micro-ROS runtime,透過 C 語言撰寫 ROS 程式 |
rclc Publisher | 建立 std_msgs::msg::Int32 或其他 | 在 app.c 中建立 publisher,定期發布資料 |
XRCE-DDS Client | micro-ROS Runtime 封裝傳輸資料 | 利用 XRCE-DDS 協定,將 ROS 訊息壓縮為輕量封包 |
UART/Wi-Fi | 實體或無線傳輸層 | 使用 serial , UDP , Wi-Fi 根據設定傳送封包 |
micro-ROS Agent | ROS 端的橋接器 | 接收 XRCE-DDS,並轉換成 ROS 2 DDS 訊息 |
Fast DDS | ROS 2 的 DDS 實作 | micro-ROS Agent 預設使用 Fast DDS |
ROS 2 Node | rclpy / rclcpp 節點處理訊息 | 可訂閱 topic,例如 /esp32_pub ,接收 MCU 傳來的資料 |
✅ 實作補充:ESP32 → ROS2 topic 範例
-
ESP32 app.c (micro-ROS Client)
-
ROS 2 主機端接收
🌐 備選通訊方式
傳輸方式 | 優點 | 適用場景 |
---|---|---|
UART | 穩定、低功耗 | 有線串口(如 USB-TTL) |
Wi-Fi | 無需接線、彈性大 | 與 router / PC 溝通 |
UDP | 可跨網段 | 遠端 ROS2 主機 |
如果你有興趣,我也可以補上:
-
ESP32 建立
publisher
的完整 app.c 範例 -
ESP32 透過 Wi-Fi 進行 UDP 傳輸的 micro-ROS 設定方式
-
ROS 2 + Agent Docker 容器接收流程自動化腳本
沒有留言:
張貼留言