
Medkit (ros2_medkit), diagnostics for ROS 2 robots






My shoulder motor overheated to 105.5 °C.
I’ve saved a snapshot and the rosbag.
My shoulder motor overheated to 105.5 °C.
I’ve saved a snapshot and the rosbag.
Medkit is the diagnostic stack for your robots. It runs on board, finds every part by itself and turns each failure into a clear fault, with a recording of that moment. All on one standard API.
Diagnostics
Stop digging. Ask the robot.
Without Medkit
$ ros2 launch robot_bringup bringup.launch.py
160+ log lines.
19 faults from 15 nodes. Which one broke it?
With Medkit
$ curl robot:8080/api/v1/faults
Lidar not connected
/urg_node
1 cause.
In one request, with its symptoms under it.
In action
It got stuck. Then it fixed itself.
Medkit knows every part
Medkit Finds every node
GET /apps → 15 apps
- Medkit on the robot
- Platform in the cloud
- Medic AI in Platform
Less data
Keep the fault. Not the whole day.
Without Medkit
1.5 TB
the whole day
With Medkit
414 MB
only what matters
One API
Everything your robots need, built in.
$
All 12 ready
Maps the whole robot by itself: every node, and what each one is part of.
GET /apps
Every failure as a clear fault, live, with its snapshot and rosbag.
GET /faults
Pull rosbags off the robot. Push files onto it, like calibration or firmware.
GET /apps/urg_node/bulk-data/rosbags
Read any topic as it changes, or publish to it, with no ROS 2 on your side.
GET /apps/urg_node/data/scan
Read and change any node’s parameters while it runs, or reset them.
PUT /apps/urg_node/configurations/ip_address
Call the robot’s services and actions, like docking, and follow them to the end.
POST /apps/docking_server/operations/dock_robot/executions
See whether each part is up, and start, restart or shut it down.
PUT /apps/urg_node/status/restart
Get told the moment a value changes or crosses a limit.
POST /apps/urg_node/triggers
Upload diagnostic scripts and run them on the robot when you need them.
POST /apps/urg_node/scripts/self_test/executions
Hold a part so no one else changes it while you work. It frees itself in time.
POST /apps/urg_node/locks
Read any node’s logs over the API, filtered by level.
GET /apps/urg_node/logs
Decide who may look, who may act and who may change settings.
POST /auth/token
Finds every node
Maps the whole robot by itself: every node, and what each one is part of.
GET /apps
All of it, from one install.
Who it’s for.
Robot makers
Ship robots that explain themselves.
“I can debug a field failure from my desk.”
Integrators
One API, whoever built the robot.
“Every failure on site reaches me with its rosbag.”
Operators
See what broke, the moment it does.
“I don’t have to press anything. It’s already recorded.”
How to install.
An official ROS 2 package. Run it natively, or on top in its own container.
Plans.
| Plans. | Medkit Free to start Open source, Apache 2.0 Install it | Medkit ProCommercial Per robot Volume pricing Talk to us |
|---|---|---|
| Every fault with its snapshot and rosbag | Included | Included |
| One open API (SOVD, ISO 17978) | Included | Included |
| Runs on ROS 2 robots | Included | Included |
| Bridges beyond ROS 2 | Not included | Included |
| Updates over the air | Not included | Included |
| End-of-line testing | Not included | Included |
| Support with an SLA | Not included | Included |
Extras
Compare all features →
Integration with your stack
We build a new bridge or connect Medkit to your stack.
Per project
Talk to us →Common questions.
Medkit, published as ros2_medkit, is an open-source diagnostics gateway for ROS 2. It runs on your robot, finds every node by itself and turns each failure into a clear fault, with a snapshot and a rosbag, on one REST API.
Jazzy, Humble and Lyrical, on Ubuntu 24.04, 22.04 and 26.04. Install it with apt, Docker or from source.
No. It listens to what your robot already publishes: error logs, failed actions and /diagnostics. For more control, report faults from your own nodes with the FaultReporter client.
diagnostic_updater publishes status on /diagnostics from the nodes you instrument. Medkit can read /diagnostics too, adds faults from logs and failed actions, keeps a snapshot and a rosbag of each, and serves it all on one REST API.
Yes. Its REST API follows SOVD (ISO 17978), the diagnostics standard from the automotive world. Read about SOVD for ROS 2 →
Medkit is the open-source core. The comparison shows what Medkit Pro and the Diagnostics Box add. Compare products →