Skip to content

ISO 17978-3

SOVD for ROS 2: the open diagnostic API standard.

SOVD - Service-Oriented Vehicle Diagnostics, standardised as ISO 17978-3 - is a modern REST/HTTP diagnostic API. It came out of automotive, where a fleet of mixed ECUs needed one way to be diagnosed. The same problem now lives in robotics: every robot, PLC, and vehicle speaks something different.

SOVD gives all of them one diagnostic interface - faults, live values, operations, and configuration over plain HTTP, that any tool or AI agent can call.

SOVD for ROS 2

What SOVD gives you.

One REST surface

Faults, live data, operations, and configuration of every component behind one HTTP API - no bespoke protocol per system.

Structured faults

Faults carry a code, severity, status, and a freeze-frame of the state around them, instead of a wall of log text.

Entity model

Robots, subsystems, PLCs, and ECUs are addressable as a tree of components and apps, so tools and agents navigate them the same way.

Tool and agent ready

Because it is just REST, a web UI, a dashboard, your own scripts, or an AI agent over MCP all read the same diagnostic plane.

GET /api/v1/components/motor_ctrl/faults

HTTP/1.1 200 OK
{
  "items": [{
    "code": "MOTOR_STALL",
    "severity": "CRITICAL",
    "status": { "aggregatedStatus": "CONFIRMED" },
    "snapshot": {
      "commanded_velocity": 0.42,
      "measured_velocity": 0.0,
      "driver_temp_c": 87.3
    }
  }]
}

SOVD for ROS 2

One standard across the stack.

SOVD is not ROS-specific. A production line is rarely one technology: ROS 2 robots over DDS, PLCs over OPC-UA, classic ECUs over UDS/DoIP. SOVD sits in front of all of them and normalises each into the same entity-and-fault model, so the PLC fault and the robot it stranded land in one place.

That is the difference from observability. Observability tells you a metric moved. SOVD is built to act on it: trigger an operation, read a freeze-frame, push a configuration, gate an update on device health.

SOVD for ROS 2

How selfpatch implements SOVD.

ros2_medkit is the open-source (Apache 2.0) SOVD gateway for ROS 2. Point it at your graph and it discovers every node and exposes them as a SOVD API, with a web UI and an MCP adapter, shipped in the official ROS 2 distribution for Jazzy and Humble. Medkit Pro and the Diagnostics Box extend the same gateway to PLCs, ECUs, fleets, and safe OTA.

Explore Medkit

Frequently asked questions.

Deploy selfpatch on your fleet.

Tell us your stack and we will show you which recurring faults it could fix today.

A quadruped robot wading through deep snow on a mountain at sunset, a rescue helicopter overhead