Ask Your Question
1

What are the differences between running a nodelet standalone and running the same nodelet alone in a manager?

asked 2011-08-02 09:45:24 -0500

updated 2011-08-02 10:00:17 -0500

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?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
1

answered 2011-08-03 13:50:25 -0500

tfoote gravatar image

There should be no difference. The "standalone" mode simple creates a manager in the local process and loads the Nodelet into that manager, instead of making the request remotely. If you can create simple test case for the logger appearing vs not between the two modes file a ticket and I'll look at it.

edit flag offensive delete link more

Comments

Patrick Bouffard gravatar image Patrick Bouffard  ( 2011-08-03 16:33:20 -0500 )edit
0

answered 2011-08-02 09:56:34 -0500

arebgun gravatar image

There are nodelet-aware wrappers for rosconsole macros that you should use inside nodelets (see this page for details). Basically, replace all your ROS_* with NODELET_*.

edit flag offensive delete link more

Comments

It doesn't seem to matter whether I use the ROS_* or NODELET_* versions, I see the same result. I'll edit my question to clarify that.
Patrick Bouffard gravatar image Patrick Bouffard  ( 2011-08-02 09:58:58 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2011-08-02 09:45:24 -0500

Seen: 1,926 times

Last updated: Aug 03 '11