Skip to content

Packages related to gathering, viewing, and analyzing diagnostics data from robots.

License

Notifications You must be signed in to change notification settings

ros/diagnostics

Repository files navigation

Test diagnostics Lint diagnostics ROS2 Humble ROS2 Iron ROS2 Jazzy ROS2 Rolling

Overview

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:

Collecting diagnostic data

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.

Aggregation

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.

Visualization

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.

Target Distribution

Workflow

New features are to be developed in custom branches and then merged into the ros2 branch.

From there, the changes are backported to the other branches.

Backport Tooling

This tool has proven to be useful: backport

Use this command to port a given PR of PR_NUMBER to the other branches:

backport --pr PR_NUMBER -b ros2-humble ros2-iron ros2-jazzy

Versioning and Releases

  • (X.0.0) We use the major version number to indicate a breaking change.
  • (0.Y.0) The minor version number is used to differentiate between different ROS distributions:
    • x.0.z: Humble Hawksbill
    • x.1.z: Iron Irwini
    • x.2.z: Jazzy Jalisco
    • x.3.z: Rolling Ridley
    • Future releases (Kilted Kaiju 05/25) will get x.3.z and Rolling will be incremented accordingly.
  • (0.0.Z) The patch version number is used for changes in the current ROS distribution that do not affect the API.

Buildfarm Statuses

diagnostic_aggregator

H I J R
src, ubuntu Humble Iron Jazzy Rolling
src, rhel Humble Iron Jazzy Rolling
bin, ubuntu, amd64 Humble Iron Jazzy Rolling
bin, ubuntu, arm64 Humble Iron Jazzy Rolling
bin, rhel Humble Iron Jazzy Rolling

diagnostic_common_diagnostics

H I J R
src, ubuntu Humble Iron Jazzy Rolling
src, rhel Humble Iron Jazzy Rolling
bin, ubuntu, amd64 Humble Iron Jazzy Rolling
bin, ubuntu, arm64 Humble Iron Jazzy Rolling
bin, rhel Humble Iron Jazzy Rolling

diagnostic_updater

H I J R
src, ubuntu Humble Iron Jazzy Rolling
src, rhel Humble Iron Jazzy Rolling
bin, ubuntu, amd64 Humble Iron Jazzy Rolling
bin, ubuntu, arm64 Humble Iron Jazzy Rolling
bin, rhel Humble Iron Jazzy Rolling

self_test

H I J R
src, ubuntu Humble Iron Jazzy Rolling
src, rhel Humble Iron Jazzy Rolling
bin, ubuntu, amd64 Humble Iron Jazzy Rolling
bin, ubuntu, arm64 Humble Iron Jazzy Rolling
bin, rhel Humble Iron Jazzy Rolling

License

The source code is released under a BSD 3-Clause license.