Thanks for your feedback Blaise!

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.

We will take a look at the tools you suggested. The foreign_relay package looks interesting, however we do not know python :) 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?

I will also gladly listen to what other people have to say on this subject. I was hoping that more people would share their experiences and ideas on this matter.

Finally we would like to contribute towards a better solution if possible, multi-master would definitely suit our purposes. 

Gonçalo Cabrita
ISR - University of Coimbra
Portugal



On Tue, Jun 29, 2010 at 5:52 AM, Blaise Gassend <blaise@willowgarage.com> wrote:
Hi Goncalo,

I have done a bit of multi-robot stuff with the PR2. Here are a few
things I learned from the experience:

- Using a single master for all the robots is really bad. If the
wireless has trouble, even functions that are internal to the robot will
suffer because service calls touch the master.

- Avoid sharing high bandwidth many-to-many topics like /tf. If you do
want to share them, make use of relay nodes so that the data only gets
transmitted between robots once.

- While waiting for better multi-master support, you can try out the
foreign_relay package.
https://code.ros.org/svn/wg-ros-pkg/branches/trunk_boxturtle/sandbox/foreign_relay/
The C++ version only works in one direction (I forget which) but should
allow you to rename the topic. The python version works in both
directions. Ask me if you need help.

- Using ROSUDP as a transport is probably a good idea. The relay node in
topic_tools in trunk has an unreliable option that should force UDP to
be used.
https://code.ros.org/svn/ros/stacks/ros/trunk/tools/topic_tools

- Combining foreign_relay and unreliable relay, you should be able to
get any topics you want going back and forth between robots.

- Listen to what other people have to say. I know that a few people have
played with multi-robot stuff. Since multi-master isn't here yet, there
are a bunch of more or less half-baked solutions out there. Find out
what they are, and pick the one you like best until something better
comes along.

Cheers,
Blaise

On Tue, 2010-06-29 at 00:02 +0100, Gonçalo Cabrita wrote:
> Hi everyone!
>
> Here at the university we use groups of simple robots instead of a single, more complex robot, like the PR2. We have currently been taking the first steps into ROS. It became clear that we will need a ROS communication node so that our robots can speak to each other. So here is my question, does anyone have any experience with multiple-robot communication in ROS?
>
> We are considering a communication node based on UDP sockets capable of exchanging ROS msgs.
>
> Does anyone have any thoughts on this matter?
>
> Gonçalo Cabrita
> ISR - University of Coimbra
> Portugal
>
>
> _______________________________________________
> ros-users mailing list
> ros-users@code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users


_______________________________________________
ros-users mailing list
ros-users@code.ros.org
https://code.ros.org/mailman/listinfo/ros-users