Help · Guide

ROS 2 diagnostics in a browser

ROS 2 robots report the health of their parts on /diagnostics (diagnostic_msgs/DiagnosticArray). It’s useful data, but ros2 topic echo isn’t something an operator can read. This guide puts it on one page.

What Styri does with /diagnostics

Run it

$ docker run --rm --network host ghcr.io/styri-dev/styri-core:v0.3.1

Open http://<robot-ip>:8080. Diagnostics appear automatically if your robot publishes /diagnostics. If it uses another name, map it in a styri.yaml with diagnostics: {topic: /your/diagnostics}.

Read the CPU temperature from /diagnostics

cpu_temperature: topic: /diagnostics status_name: cpu # which diagnostics entry key: temp # which key in that entry warn_above: 75 fault_above: 85

Both names match case-insensitively and by part of the name, so cpu finds an entry called “CPU Monitor” and temp finds “Temperature”. To check it:

$ docker run --rm --network host -v "$PWD/styri.yaml:/etc/styri/styri.yaml:ro" ghcr.io/styri-dev/styri-core:v0.3.1 styri check

styri check shows whether the entry and key were found, with the value it read. If not, it says which is missing, and the Topics tab shows the names to use.

Styri Core is read-only: it subscribes to /diagnostics and never publishes to the robot.

Try it free

Styri Core is free and open source. One command.

$ docker run --rm --network host ghcr.io/styri-dev/styri-core:v0.3.1

Rather have it running on your robots this week? We’ll set it up remotely for a fixed price. See Styri Setup →