The diagnostics system collects information about hardware drivers and robot hardware to make them available to users and operators. The diagnostics system contains tools to collect and analyze this data.
The diagnostics system is build around the /diagnostics
topic. The topic is used for diagnostic_msgs/DiagnosticArray
messages.
It contains information about the device names, status, and values.
It contains the following packages:
diagnostic_aggregator
: Aggregates diagnostic messages from different sources into a single message.diagnostic_analysis
: Not ported to ROS2 yet #contributions-welcomediagnostic_common_diagnostics
: Predefined nodes for monitoring the Linux and ROS system.diagnostic_updater
: Base classes to publishing custom diagnostic messages for Python and C++.self_test
: Tools to perform self tests on nodes.
At the points of interest, i.e. the hardware drivers, the diagnostic data is collected.
The data must be published on the /diagnostics
topic.
In the diagnostic_updater
package, there are base classes to simplify the creation of diagnostic messages.
The diagnostic_aggregator
package provides tools to aggregate diagnostic messages from different sources into a single message. It has a plugin system to define the aggregation rules.
Outside of this repository, there is rqt_robot_monitor
to visualize diagnostic messages that have been aggregated by the diagnostic_aggregator
.
Diagnostics messages that are not aggregated can be visualized by rqt_runtime_monitor
.
- Rolling Ridley by the
ros2
branch - Humble Hawksbill by the
ros2-humble
branch - Iron Irwini by the
ros2-iron
branch - Jazzy Jalisco by the
ros2-jazzy
branch
The source code is released under a BSD 3-Clause license.