micro-ROS

定義

micro-ROS 讓記憶體以 KB 為單位、沒有完整作業系統的微控制器(如 STM32、ESP32),也能參與 ROS2 系統的通訊——完整 DDS 對這類硬體的資源需求過重,micro-ROS 用輕量傳輸層搭配一個中介角色 micro-ROS Agent 解決這個問題。

關鍵特性

  • 用戶端與 Agent 分離:微控制器上執行輕量的 micro-ROS 用戶端,只處理序列化與傳輸;有完整運算資源的機器執行 Agent,負責轉譯成正常 DDS 通訊,對其他一般節點完全透明。
  • 編譯期靜態記憶體配置:不使用動態記憶體配置(mallocnew),所有訊息緩衝區大小在編譯期就固定下來,用犧牲彈性換取行為可預測性,這對即時控制迴路是必要的。
  • API 概念對應一般節點rclc(micro-ROS 的 C 用戶端函式庫)的 publisher、timer、executor 概念,跟 rclpy/rclcpp 是對應的,只是資源管理更明確、手動。

使用情境

  • 機器人底層需要嚴格即時性保證的控制邏輯(馬達驅動、編碼器讀取),通常跑在微控制器上,用 micro-ROS 跟上層系統溝通。

延伸閱讀