You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
why we need add_analyzer_node in the very 1st place? #670
It is a relay that reads its own parameters and pushes them to another node. The filter heuristic, keeping any key whose sibling has .path, is fragile. It adds a binary and a README section for what is one CLI line. And it makes the aggregator's dynamic-reload behavior look like it requires a helper, when it does not.
I'd pick one of:
Keep the aggregator's parameter-callback reload, delete this node, and document ros2 param load plus a launch snippet using an OnProcessStart handler or RegisterEventHandler to sequence it.
Make the aggregator itself accept a list of extra analyzer YAML files or a dedicated add_analyzers service, so the client side is trivial and the "does this parameter belong to an analyzer" logic lives in one place.
I know we (@Timple, @MartinCornelis2) needed this in ROS1 and thus ported it over to ROS2 at some point.
We like to keep analyzers together with a driver in our launch-files, such that for different robot configurations you can decide to load a driver or not and automatically load the diagnostic analyzer for that driver as well.
In ROS1, loading to the analyzers parameter would overwrite the current list of analyzers however, which is why there was an add_analyzer to dymamically extend the list of active analyzers.
But testing now in Jazzy, it seems that loading a single analyzer to /diagnostics/analyzers extends the list already! So maybe the need for this node is gone indeed.
Activity
MCFurry commentedon Oct 26, 2026
Hmm you might have a point here...
I know we (@Timple, @MartinCornelis2) needed this in ROS1 and thus ported it over to ROS2 at some point.
We like to keep analyzers together with a driver in our launch-files, such that for different robot configurations you can decide to load a driver or not and automatically load the diagnostic analyzer for that driver as well.
In ROS1, loading to the
analyzersparameter would overwrite the current list of analyzers however, which is why there was an add_analyzer to dymamically extend the list of active analyzers.But testing now in Jazzy, it seems that loading a single analyzer to
/diagnostics/analyzersextends the list already! So maybe the need for this node is gone indeed.MCFurry commentedon Oct 26, 2026
The only culprit I found so far:
One can easily replace:
With:
Except that the
allow_substs="true"part doesn't work like this...