Introduction
ros2_medkit
Modern, SOVD-compatible diagnostics for ROS 2 robots, built around an entity tree (Area / Component / Function / App) for runtime discovery, health modeling, and troubleshooting.
What is ros2_medkit?
ros2_medkit provides modern diagnostics for ROS 2–based systems.
Instead of hardcoding knowledge about every node, topic, or ECU, ros2_medkit models a robot as a diagnostic entity tree:
Entity |
Description |
Example |
|---|---|---|
Area |
Physical or logical domain |
|
Component |
Hardware or software component within an area |
|
Function |
Capability provided by one or more components |
|
App |
Deployable software unit |
node, container, process |
The goal is to make this tree compatible with the SOVD (Service-Oriented Vehicle Diagnostics) model, so the same concepts can be used across robots, vehicles, and other embedded systems.
Packages
ros2_medkit consists of several ROS 2 packages:
- ros2_medkit_gateway
The main HTTP gateway node. Discovers ROS 2 entities and exposes them via REST API.
- ros2_medkit_serialization
Runtime JSON ↔ ROS 2 message serialization library using dynmsg. Enables native message handling without compile-time type dependencies.
- ros2_medkit_fault_manager
Stores and manages fault lifecycle. Provides ROS 2 services for fault operations.
- ros2_medkit_fault_reporter
Client library for reporting faults from your ROS 2 nodes.
- ros2_medkit_diagnostic_bridge
Bridge node that converts standard ROS 2
/diagnosticsmessages to fault manager faults.- ros2_medkit_msgs
Message and service definitions for fault management.
Next Steps
Installation — Install ros2_medkit
Getting Started — Hands-on tutorial
Tutorials — Deep-dive guides
Architecture — Architecture documentation
Community
💬 Discord: Join our server
🐛 Issues: Report bugs
💡 Discussions: GitHub Discussions