资讯

Has anyone written a custom I²C transport for micro-ROS (or any MCU ROS stack)?

ROS Discourse·2026/9/11 08:51:54🔗 原文

📋总体概括

某初创嵌入式团队在论坛发帖询问:主流MCU端ROS协议栈均原生不支持I²C传输——micro-ROS仅支持UART/UDP/CAN-FD,zenoh-pico支持串口/UDP/TCP,Cyphal支持CAN/串口。团队因STM32板卡位于GMSL相机链路之后、链路本身隧道化了I²C通道,希望让板卡通过I²C作为ROS节点通信,以省去额外布线。micro-ROS提供自定义传输API(open/close/write/read钩子加set_custom_transport),理论上可自行实现I²C传输层,团队想知道是否已有现成实现可复用。

关键信息

  • 主流MCU ROS协议栈均不支持I²C:micro-ROS、zenoh-pico、Cyphal的官方传输层均无此项
  • micro-ROS开放自定义传输API(open/close/write/read钩子+set_custom_transport),技术上可自写I²C传输层
  • 团队动因:STM32板卡位于GMSL相机链路后,链路已隧道化I²C通道,复用可零布线成本
  • 本质是工程权衡问题:复用既有GMSL隧道I²C通道 vs 自行实现并维护非标准传输层

🔥犀利点评

这事的关键不是「能不能写」,而是「值不值得写」。I²C主从架构天生不适合点对点ROS节点通信:从机无法主动发起传输,意味着DDS/序列化层要啃延迟、超时和流控的硬骨头,调试时示波器插线能把人逼疯。省的那几根线是明面收益,隐形成本是团队永久背上一个非标准传输层的维护债。真要复用GMSL的I²C隧道,更务实的做法可能是板卡上跑简单固件、把ROS节点放主机侧,而不是硬把完整ROS栈塞进I²C后面。

本文由本站自动聚合,以下为原始来源:前往 ROS Discourse 阅读全文