Skip to content

Medkit (ros2_medkit), diagnostics for ROS 2 robots

A sealed black robot whose shoulder status light has gone red

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

6 faults it caused, grouped under it

1 cause.

In one request, with its symptoms under it.

In action

It got stuck. Then it fixed itself.

Medkit knows every part

  • 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

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.
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 rosbagIncludedIncluded
One open API (SOVD, ISO 17978)IncludedIncluded
Runs on ROS 2 robotsIncludedIncluded
Bridges beyond ROS 2Not includedIncluded
Updates over the airNot includedIncluded
End-of-line testingNot includedIncluded
Support with an SLANot includedIncluded
The Medkit Box, a white DIN-rail unit with a green base

Medkit Box

Medkit on its own hardware, for PLC lines.

Hardware + license

See the Box →

Integration with your stack

We build a new bridge or connect Medkit to your stack.

Per project

Talk to us →

Common questions.