Skip to content

ros/diagnostics

Repository files navigation

ROS2 Rolling ROS2 Lyrical ROS2 Kilted ROS2 Jazzy ROS2 Humble Test diagnostics Lint diagnostics

Build farm jobs:

Rolling Lyrical Kilted Jazzy Humble
dev
bin

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 built 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:

Quick start

To use these packages, install them using apt install ros-$ROS_DISTRO-diagnostics.

Typical data flow

graph LR
    H[diagnostic_updater] --> D([/diagnostics])
    C[diagnostic_common</br>_diagnostics] --> D
    D --> A[diagnostic_aggregator]
    D --> R[rqt_runtime_monitor]
    A --> DA([/diagnostics_agg])
    DA --> RM[rqt_robot_monitor]
    DA --> RL[diagnostic_remote_logging]
    
    classDef default fill:#fec,stroke:#000;
    style H fill:#fdd
    style A fill:#fdd
    style D fill:#9f9
    style DA fill:#9ee
    style RM fill:#ddd
    style R fill:#ddd
Loading

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.

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.

Contributions

Contributions are always welcome. Including but not limited to issues with the PR welcome 💞 label.

New features are to be developed in custom branches and PRs should target the ros2 branch.

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

Target Distribution

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.2.z: Jazzy Jalisco
    • x.3.z: Kilted Kaiju
    • x.4.z: Lyrical Luth
    • x.5.z: Rolling Ridley
    • (Future releases will receive x.5.z and rolling will then be x.6.z)
  • (0.0.Z) The patch version number is used for changes in the current ROS distribution that do not affect the API.

License

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

About

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

Topics

Resources

License

Stars

Watchers

Forks

Contributors