Nodelets Indigo strange behavior

asked 2019-02-20 06:01:57 -0600

arsonist gravatar image

updated 2019-02-20 06:27:03 -0600

I've been having problem with ROS Indigo. I have two variants of just the same code: using nodes and using nodelets. Nodes work without any problems, but I need more performance, which I guess nodelets can provide.

Roscore, nodelet manager and nodelets are started on the same host. If I do not specify ROS_IP or at least ROS_HOSTNAME (=localhost), nodelets exit because of broken bond.

Why does it need IP or hostname if everything is on the same host?

edit retag flag offensive close merge delete


I need more performance, which I guess nodelets can provide.

just an observation: nodelets will only help if the bottleneck in your system is in message passing (ie: you're exchanging large messages where (de)serialisation overhead is taking up most of the CPU resources).

gvdhoorn gravatar imagegvdhoorn ( 2019-02-20 06:11:52 -0600 )edit

It needs IP or host name because the network is the primary method for ROS systems to communicate. Even if you have two nodelets which can pass messages directly, they will still need to access the ros master and possibly other parts of ROS. To do this they need to know the network address.

PeteBlackerThe3rd gravatar imagePeteBlackerThe3rd ( 2019-02-20 10:59:09 -0600 )edit

Also I second @gvdhoorn's comment. Nodelets will not automatically give you better performance, they simply remove one potential bottleneck.

PeteBlackerThe3rd gravatar imagePeteBlackerThe3rd ( 2019-02-20 11:00:18 -0600 )edit

@PeteBlacker, but why do then nodes work without specifying hostname or ip?

arsonist gravatar imagearsonist ( 2019-02-20 11:11:49 -0600 )edit