资讯

Why we did not extend /diagnostics?

ROS Discourse·2026/9/4 10:09:43🔗 原文

📋总体概括

团队花一年为ROS 2构建诊断层ros2_medkit,并在论坛详细解释为何不选择扩展原生的diagnostic_msgs、diagnostic_updater和聚合器。核心论点:/diagnostics提供的是状态信息,而故障是可查询、可执行操作的数据模型,二者有本质区别,无法通过添加字段或上下文从前者推导出后者。文章并列展示了消息定义以便讨论,这一讨论直指ROS 2诊断体系15年未升级的短板。

关键信息

  • 团队耗时一年构建ROS 2诊断层ros2_medkit,此前已在论坛发帖讨论ROS 2诊断的缺失
  • 最常见的问题是为何不扩展diagnostic_msgs、diagnostic_updater和聚合器,ROSCon审稿人也问过
  • 核心论点:状态是信息,故障是可查询、可操作的数据模型,后者无法由前者加字段推导得出
  • 现有/diagnostics话题基于REP 107,由Tully Foote于2010年11月撰写,已服役约15年
  • 文章并列展示新旧消息定义,公开接受社区对具体设计的质疑与辩论

🔥犀利点评

这个问题问得好也答得诚实:ROS 2诊断体系沿用2010年的REP 107,十五年了还在用「字符串状态+KV对」凑合,本质是把机器人当服务器监控。状态和故障模型的区别确实是架构级的——故障需要生命周期、溯源、查询和动作绑定,塞字段解决不了。但也要警惕:另起炉灶的ros2_medkit能否进入ROS发行版主流、被生态采纳,比技术论证正确与否更关键。诊断这种基础设施,赢家从来是生态位而非设计美。

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