diagnostic_aggregator Documentation



diagnostic_aggregator aggregates and performs basic analysis on the diagnostics of a robot. This package consists of the base node, or aggregator, and several analyzers to collect and process diagnostics data.

Code API

The Aggregator class loads "analyzers" which perform analysis on the incoming diagnostics data. Each analyzer is initialized according to the private parameters of the Aggregator. The aggregator will publish the diagnostic_msgs/DiagnosticArray message on the /diagnostics_agg topic at 1 Hz.


The Aggregator will create analyzers to store and process the diagnostic data. Each analyzer inherits from the pure virtual base class '''Analyzer'''. Analyzers should be in packages that depend directly on "pluginlib" and "diagnostic_aggregator".

See Analyzer for more information on the base class.


generic_analyzer holds the GenericAnalyzer class, which is the most basic of the Analyzer's. It is used by the diagnostic_aggregator/Aggregator to store, process and republish diagnostics data. The GenericAnalyzer is loaded by the pluginlib as a Analyzer plugin. It is the most basic of all Analyzer's.


analyzer_group holds the AnalyzerGroup class, which can hold a group of diagnostic analyzers. These "sub-analyzers" are loaded in the same way that the Aggregator loads analyzers.



  • aggregator_node
  • analyzer_loader


aggregator_node subscribes to "/diagnostics" and publishes an aggregated set of data to "/diagnostics_agg". The aggregator will load diagnostic analyzers (like the GenericAnalyzer above) as plugins. The analyzers are specified in the launch file as private parameters in the "~analyzers" namespace.

ROS topics

Subscribes to:

  • "/diagnostics": [diagnostics_msgs/DiagnosticArray]

Publishes to:

  • "/diagnostics_agg": [diagnostics_msgs/DiagnosticArray]

ROS parameters

Reads the following parameters from the parameter server

  • "~pub_rate" : double [optional] Rate that output diagnostics published
  • "~base_path" : double [optional] Prepended to all analyzed output
  • "~analyzers" : {} Configuration for loading analyzers


analyzer_loader loads diagnostic analyzers and verifies that they have initialized. It is used as a unit or regression test to verify that analyzer parameters work.

ROS parameters

Reads the following parameters from the parameter server

  • "~analyzers" : {} Configuration for loading and testing analyzers

Author(s): Kevin Watts, Brice Rebsamen
autogenerated on Tue Nov 15 2022 03:17:14