Why am I seeing multiple PIDs while running nodelet

asked 2018-06-05 01:09:05 -0500

jlin gravatar image

I'm new to nodelet and experimenting an example shown in the GitHub repository here. I ran the nodelet using the launch file sample_nodelet_all.launch. This launch file starts a nodelet manager and loads two nodelet classes into the manager. I was under the impression that nodelets should live inside a single process. But when I list the process using 'ps' I see three processes instead. One for nodelet manager, and one for each loaded classes.

My ROS environment is Kinetics and I intend to use zero-copy pub-sub provided by nodelet. Thanks for any help.

edit retag flag offensive close merge delete



All the real processing is inside the manager process, and I think the other processes are for loading and and unloading the nodelet from the manager. Having the loader be the same name as the as the nodelet running in the manager is confusing, any topics and services are with the manager.

lucasw gravatar imagelucasw ( 2018-06-05 15:13:33 -0500 )edit

If the example were to be extended to have subscribers and publishers it should be more clear.

lucasw gravatar imagelucasw ( 2018-06-05 15:14:14 -0500 )edit

Thanks. The document for Nodelet is actually pretty thin on ROS wiki and can be augmented with more concrete coding example.

jlin gravatar imagejlin ( 2018-06-05 15:19:25 -0500 )edit

I see one reason for the loader having the same name as a standalone node would have doing the same job: running a new loader instance or a non-nodelet node with the same name will cause the original loader to unload the nodelet and the new node to launch properly.

lucasw gravatar imagelucasw ( 2018-06-05 16:06:57 -0500 )edit