What are the differences between running a nodelet standalone and running the same nodelet alone in a manager?
I'm starting to write a new node(let) and initially wrote my launch file to start that nodelet 'standalone'. However I noticed that messages from the rosconsole macros (ROS_INFO()
, ROS_ERROR
and the like -- and there is no difference if I use the nodelet wrapper versions, i.e. NODELET_INFO()
etc.) were not showing up. I tried initially mucking around with logger levels but that didn't seem to have an effect. Then I tried starting a nodelet manager and loading my nodelet into the manager. Then the messages appeared.
I'd been (mistakenly I suppose) assuming that for all intents and purposes running a nodelet 'standalone' and running a single nodelet within a nodelet manager were equivalent but it seems that this isn't the case, at least for the output of the rosconsole logging macros.
So my question is, is what I've observed expected behaviour and are there any other differences to be aware of when running a nodelet 'standalone'? Aside from requiring one less <node>
tag in a launch file is there any advantage of using the standalone method as opposed to loading a single node into a nodelet manager?