Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

This is not really a solution. I worked around the same issue last week by ensuring that each of my nodelets stored a unique string identifier coming from the name under which it was launched. e.g. "goo_base" in

<node pkg="nodelet" type="nodelet" name="goo_base" args="load goo/GooNodelet robot_core" output="screen">

We pulled that name from the nodehandle and then simple applied that to the name when adding a task to the diagnostic_updater:

this->diagnostic_updater.add(device_comms::DiagnosticStrings::FirmwareStatus + std::string(" [") + unresolved_name + std::string("]"), this, &GooNodelet::firmwareDiagnostic);

This is not really a solution. I worked around the same issue last week by ensuring that each of my nodelets stored a unique string identifier coming from the name under which it was launched. e.g. "goo_base" in

<node pkg="nodelet" type="nodelet" name="goo_base" args="load goo/GooNodelet robot_core" output="screen">

We pulled that name from the nodehandle and then simple applied that to the name when adding a task to the diagnostic_updater:

this->diagnostic_updater.add(device_comms::DiagnosticStrings::FirmwareStatus + std::string(" this->diagnostic_updater.add("firmware [") + unresolved_name + std::string("]"), this, &GooNodelet::firmwareDiagnostic);

It would be nice if diagnostics pulled that unresolved name directly.