[ros-users] Multi-robot communication

Blaise Gassend blaise at willowgarage.com
Tue Jun 29 16:06:45 UTC 2010


Hi Goncalo,

> We have never considered using a single master. The idea is to have
> each robot running its own roscore, so that robots can join or leave
> (or crash!) at will thus providing a more robust group of robots.

I brought that one up because it is the first thing I tried, and it was
terrible. The first three robots went well, but when I brought up the
fourth, the Wifi got saturated and everything became horrible.

> We will take a look at the tools you suggested. The foreign_relay
> package looks interesting, however we do not know python :) 

You shouldn't need to know python. The foreign_relay tool pretty much
works as it is. Just bring up the node, and packets will start getting
relayed. A few things that came to mind since yesterday:

The Python foreign_relay tool would better be called cross_register. It
copies a subscription or publication from one master to another. This is
significant because if there are many subscribers on a robot different
from the publishing robot, the message will be sent between robots
multiple times.

The C++ foreign_relay really does a relay. I.e., it subscribes to the
topic on one master (the foreign one if I recall), and then publishes
each message on the local master. The first message gets lost because it
is used to extract type information, and the advertizement on the local
master is done after the first message arrives.

In either case, you have to specify full topic paths with a leading / or
it will not manage to match the topic.

> Still we are probably going to explore this solution first. At a first
> glance we could't understand exactly how ROSUDP could be used to solve
> the communication problem, could you please elaborate?

You mentioned doing UDP socket-based inter-robot communication between
robots. I was just pointing out that you can get the benefits of UDP
from within ROS.

When you get network interruptions, UDP is really helpful as you don't
get stale data queuing up. 

Cheers,
Blaise






More information about the ros-users mailing list