##This is theTroubleshooting page for some component
##This page should probably be called ComponentName/Troubleshooting
##Please add errors and solutions as show below.

No troubleshooting tips have been added for this package/stack.

<<TableOfContents(3)>>

== Errors from diagnostic_aggregator ==

=== Error: Analyzer fails to load ===

The `aggregator_node` loads diagnostic analyzers to collect and analyze diagnostics. These are loaded as plugins. If they fail to load, you may see:
 * An error in the `robot_monitor`, describing the initialization failure.
 * An error in the ROS console, saying "Analyzer failed to load", or "Analyzer failed to initialize"

Analyzers are loaded at startup by the `aggregator_node`. Check your robot's launch file for a node in package `diagnostic_aggregator`, type `aggregator_node'.
{{{
<node pkg="diagnostic_aggregator" type="aggregator_node"
      name="diagnostic_aggregator" >
  <rosparam command="load" 
            file="$(find some_pkg)/my_analyzers.yaml" />
</node>
}}}
The first thing to do is check the "some_pkg/my_analyzers.yaml" file and make sure it loads. Make a new launch file "analyzer_load_test.launch"
{{{
<launch>
  <test pkg="diagnostic_aggregator" type="analyzer_loader"
        name="analyzer_load_test" >
    <rosparam command="load" test-name="load_test"
              file="$(find some_pkg)/my_analyzers.yaml" />
  </node>
</launch>
}}}
Use [[rostest]] to launch it.
{{{
rostest analyzer_load_test.launch
}}}
If that passes, you should be OK, and you may have discovered a bug in the `aggregator_node`.

If that doens't pass, use [[rospack]] to find all diagnostic analyzer plugins.
{{{
$ rospack plugins --attrib=plugin diagnostic_aggregator
}}}
Compare the list from rospack with the YAML configuration file of the aggregator. The YAML file should look like this:
{{{
analyzers:
  motors:
    type: GenericAnalyzer
    path: Motors
    startswith: EtherCAT
  power:
    type: GenericAnalyzer
    path: Power System
    contains: Battery
}}}
Each parameter `type` gives a different class of analyzer to load. Make sure every value for `type` is a valid plugin.
{{{
$ rospack plugins --attrib=plugin diagnostic_aggregator | grep GenericAnalyzer
}}}

Make sure that all the plugins are built. Check the packages and dependencies and use [[rosmake]] to rebuild if necessary.

Check the dependencies of the plugin packages. Each package containing plugins should depend directly on [[pluginlib]] and [[diagnostic_aggregator]].