[Documentation] [TitleIndex] [WordIndex


The diagnostics system is designed to collect information from hardware drivers and robot hardware to users and operators for analysis, troubleshooting, and logging. The diagnostics stack contains tools for collecting, publishing, analyzing and viewing diagnostics data.

The diagnostics toolchain is built around the /diagnostics topic. On this topic, hardware drivers and devices publish diagnostic_msgs/DiagnosticArray messages with the device names, status and specific data points.

The diagnostic_updater and self_test packages allow nodes to collect and publish diagnostics data. The diagnostic_aggregator can categorize and analyze diagnostics at runtime. Operators and developers can view the diagnostics data using the rqt_robot_monitor package. The diagnostic_analysis package can convert diagnostics logs to CSV files for examination and after-the-fact analysis.

Collecting and Publishing

To collect and publish diagnostics data, nodes can use tools in the diagnostic_updater package. The updater allows nodes, especially hardware drivers, to collect and publish diagnostics data. Using the tools in the updated package, drivers can monitor frequency and connection status. The self_test package uses the diagnostic_updater to perform a self test on a driver, using a special service call.

Analysis and Aggregation

The diagnostic_aggregator package contains tools for categorizing and analyzing diagnostics at runtime. Using a plug-in model, a diagnostic aggregator can be configured for different types of robots to allow simple analysis of diagnostics. It is easy to summarize hundreds of diagnostic items into just a few categories. The diagnostic aggregator plug-ins can allow developers to give users easy to understand messages for common problems.


The rqt_robot_monitor package contains the robot_monitor tool which displays the processed data from a diagnostic_aggregator in graphical form.

For robots without a diagnostic_aggregator, the rqt_runtime_monitor package contains a simple monitor that displays data from the /diagnostics topic.

Off-Board Analysis

The tools in diagnostic_analysis allow users to convert diagnostics bag files into one or more CSV files for plotting or viewing with off-the-shelf spreadsheet software. The export_csv.py tool allows the bag file to be converted into several CSV files, with each diagnostic status name made into its own file.

Further information

Further information will be found in the REP #107: Diagnostic System for Robots Running ROS.

2024-06-22 13:09