Ros2_medkit: API-first diagnostics for ROS 2

When a robot breaks in the field, we often end up SSH-ing and checking “what is actually running” with the ROS CLI. It works, but it does not scale.

We are building ros2_medkit, an open-source layer that exposes a running ROS 2 system via a diagnostics-oriented REST API.

The idea

ros2_medkit translates ROS concepts (nodes, topics, services, actions, params) into a stable entity tree: Area / Component / Function / App.
This shape is inspired by SOVD (Service-Oriented Vehicle Diagnostics), an ISO automotive standard. We borrow the model and API style and adapt it to ROS 2 so it is easy to integrate, and stays compatible with other SOVD servers.

What works today

ROS 2 Gateway (REST over the ROS graph)

  • Runtime discovery of nodes and topics
  • Areas derived mostly from namespaces
  • REST endpoints to read topics, publish topics, call services/actions, and read/set params

Fault Manager

  • Central fault aggregation node
  • Report, query, and clear faults
  • Faults aggregated by fault_code

Repos

Demo videos

About “selfpatch”

If you are wondering what the selfpatch GitHub org is: it is just a code space where we keep building blocks towards a future self-healing workflow for robots.

Let me know what you think.

9 Likes

@mjcarroll @gbiggs What do you think? Might be the next piece of puzzle to fit into the whole ROS productization area we’re fighting for :slight_smile:

Interesting fact to give some context - Bartosz used to work in Spyrosoft on e-bikes in 2022 :slight_smile:

Fingers crossed @bburda !

CC @Mariusz_Szczepanik @slci

2 Likes