ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Unstable communication when using large number of nodes / topics

asked 2011-09-21 04:38:08 -0500

DTelgen gravatar image

updated 2014-01-28 17:10:25 -0500

ngrennan gravatar image

Currently we are working with an 11 man team on a research project where we use ROS electric to control a large number of devices in a grid of multiple robot systems.

For this project we are trying to benchmark the amount of nodes and topics that could be used with a single ROS core. So far we noticed that depending on the design (we tried several) the system becomes unstable / unreliable if we use (for example) over 50 topics.

We are quite new using ROS and are trying to determine if ROS topics could be used as a middleware solution when using multiple robots run on a single ROS core with a large amount of nodes and topics.

Does anyone have any experience using ROS with large amount of nodes / topics?

Are there any benchmark results available?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2011-09-30 02:47:12 -0500

FPape gravatar image

We tested the ros topics with a program that spawns about 500 nodes and just as many topics. They are connected through a tree-like structure.

The first thing we noticed is that after all the nodes and topics have been created, the rosout process often uses a lot of processor time, up to 100%.

Also, when shutting down all the nodes (with Ctrl-C), the roscore seems to think some nodes are still running when looking at the output of the rxgraph program. I confirmed the nodes were not running as they didn't show up in the system monitor. Restarting the roscore solves the problem, but this is not ideal ofcourse.

Has anyone experienced these problems too, or does someone have any idea what we may doing wrong?

(I am an engineer in the same team as DTelgen)

edit flag offensive delete link more


I think one problem you have is caused by starting up/shutting down all nodes at the same time because they all need to register/unregister at the master. Maybe the master cannot handle all connections at the same time. Also, to get rid of dead nodes, you can do a `rosnode cleanup`.
Lorenz gravatar image Lorenz  ( 2011-09-30 06:03:17 -0500 )edit

answered 2011-09-21 05:11:59 -0500

Lorenz gravatar image

updated 2011-09-21 05:13:01 -0500

Starting up the PR2 without any additional nodes such as navigation or perception already creates more than 50 nodes and about 500 topics. There reliability is not an issue at all.

In a multi-robot scenario with just one core reliability of the connections between the different robots will become an issue because topic connections might die if the network goes down temporarily.

edit flag offensive delete link more

Question Tools


Asked: 2011-09-21 04:38:08 -0500

Seen: 820 times

Last updated: Sep 30 '11