Roadmap

This document outlines the proposed development roadmap for ros2_medkit. The plan is subject to change based on community feedback and project priorities.

For the latest status, see the GitHub Milestones.

Strategy

Developer-first, then system-wide.

The project follows a phased approach that prioritizes developer experience:

  1. Start with Apps (ROS 2 nodes) — The level closest to developers. Provide tooling that makes their daily work easier: discovering nodes, reading data, checking faults.

  2. Expand to full system — Once app-level features are solid, extend coverage to Components, Areas, and system-wide operations.

  3. API coverage first, quality later — The initial goal is to cover the entire standard API surface using available ROS 2 capabilities. This enables early integration with real projects and compliance validation. Code hardening and production-ready implementations will follow in later phases.

Milestones

MS1: Full Discovery & Data Access

Goal: Provide a complete view of the ROS 2 system and enable basic data operations.

Developers can discover all running nodes, explore the entity hierarchy, and read/write diagnostic data. This milestone establishes the foundation for all subsequent features.

Standard API coverage:

  • Discovery (11 endpoints) — version info, entity collections, hierarchy navigation

  • Data (5 endpoints) — data categories, groups, read/write operations

MS1 on GitHub

MS2: App Observability

Goal: Enable developers to monitor application health and diagnose issues.

With observability features, developers can check fault codes, browse logs, and monitor the lifecycle state of their nodes — essential for debugging and troubleshooting.

Standard API coverage:

  • Faults (4 endpoints) — list, inspect, and clear diagnostic faults

  • Logs (5 endpoints) — browse and configure application logs

  • Lifecycle (6 endpoints) — status, start, restart, shutdown operations

MS2 on GitHub

MS3: Configuration & Control

Goal: Allow developers to configure and control running applications.

This milestone brings configuration management (backed by ROS 2 parameters) and operation execution, giving developers runtime control over their nodes.

Standard API coverage:

  • Configuration (5 endpoints) — read/write configuration values

  • Operations (7 endpoints) — define, execute, and monitor operations

  • Modes (3 endpoints) — entity operating modes

MS3 on GitHub

MS4: Automation & Subscriptions

Goal: Enable automated workflows and reactive data collection.

Developers can set up scripts for automated diagnostics, subscribe to data changes, and define triggers for event-driven workflows.

Standard API coverage:

  • Scripts (8 endpoints) — upload, execute, and manage diagnostic scripts

  • Subscriptions (8 endpoints) — cyclic data subscriptions and triggers

  • Datasets (4 endpoints) — dynamic data lists for subscription

MS4 on GitHub

MS5: Fleet & Advanced Features

Goal: Complete SOVD API coverage with fleet-oriented and advanced features.

The final milestone adds capabilities for fleet management, bulk data transfer, software updates, and authentication — completing the standard specification coverage.

Standard API coverage:

  • Bulk Data (5 endpoints) — large data transfers

  • Communication Logs (5 endpoints) — protocol-level logging

  • Clear Data (5 endpoints) — cache and learned data management

  • Updates (4 endpoints) — software update management

  • Auth (2 endpoints) — authorization and token management

MS5 on GitHub

Future Directions

After achieving full standard API coverage, the project will focus on:

Code Hardening

Replace initial implementations with production-ready code. Remove workarounds and refactor into smaller, well-tested packages.

Additional Diagnostic Protocols

Extend support to other diagnostic standards relevant to robotics and embedded systems.

Transport Protocols

Add support for alternative transport mechanisms beyond HTTP/REST.

We welcome community input on prioritization. Feel free to open an issue or join the discussion on GitHub!