diagnostic_aggregator contains the tools to aggregate and analyze robot diagnostics on an active robot. It uses the Aggregator class as to aggregate and process data. The aggregator tool loads diagnostic Analyzers as plug-ins. These analyzers can perform basic diagnostics analysis, such as testing when things are stale, or having known errors. Analyzers are subclasses of Analyzer. AnalyzerGroup and GenericAnalyzer are two of these subclasses. The Aggregator should be run on a robot, and is typically launched in the robot's launch file. Viewing of this aggregated diagnostics is done with the Robot Monitor, in the robot_monitor package.
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.
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.
Nodes:
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.
Subscribes to:
Publishes to:
Reads the following parameters from the parameter server
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.
Reads the following parameters from the parameter server