<meta http-equiv="content-type" content="text/html; charset=utf-8"><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">First of all, big thanks to everyone that contributed with ideas and suggestions.<div>
<br></div><div>We finally finished our multi-robot communication ROS node which we now call wifi_comm.<br><br></div><div>As Blaise suggested we used foreign_relay to open a communication channel between robots.</div><div>
<br></div><div>We also took a look at the code Aggeliki from Brown pointed us at from which we took allot of ideas. We ended up integrating not BATMAN but olsrd since we had previous experience with it.</div><div><br></div>
<div>Finally we listened to Brian and we managed to stay away from opaque messages :) We open a foreign_relay for each topic we want to share. We started to right a wifi_comm_node with an opaque msg but we never finished, although we chose to leave the code there.</div>
<div><br></div><div>So to sum things up we start olsrd, we then star the wifi_discovery_node which broadcasts a list of available ips, and then we did a library which we use to open the foreign_relays and exchange data. Along with the code we included an Hello World example. We hope the code is modular and flexible enough so that when roscore-multi-master becomes available we can easily change our node accordingly.</div>
<div><br></div><div>You can find the node at the following link:</div><div><br></div><div><span class="Apple-style-span" style="border-collapse: separate; font-family: arial; font-size: small; "><a href="http://code.google.com/p/isr-uc-ros-pkg/downloads/list">http://code.google.com/p/isr-uc-ros-pkg/downloads/list</a></span></div>
<div><br></div><div>We've just started our google code webpage so it's still quite empty at the time :)</div><div><br></div><div>Thanks,</div><div><br></div><div>Gonçalo Cabrita</div><div>ISR - University of Coimbra</div>
<div>Portugal</div></span></div><br><div class="gmail_quote">On Mon, Jul 12, 2010 at 9:28 PM, Brian Gerkey <span dir="ltr"><<a href="mailto:gerkey@willowgarage.com">gerkey@willowgarage.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
hi Gonçalo,<br>
<br>
I think that in this case, you really want the masters on the robots<br>
to share topic and service registration information.  We've talked<br>
about several ways of doing this, including a kind of NFS-like<br>
"mount," but haven't seriously implemented anything yet.<br>
<br>
I know that the folks at Penn have hacked roscore so that multiple<br>
masters find each other via DNS-SD (aka Bonjour) and then exchange<br>
information about certain publishers and subscribers.<br>
<br>
When the masters communicate, you don't need any relays; nodes<br>
associated with one master connect directly to nodes associated with<br>
another master.<br>
<font color="#888888"><br>
        brian.<br>
</font><div><div></div><div class="h5"><br>
2010/7/12 Gonçalo Cabrita <<a href="mailto:goncabrita@gmail.com">goncabrita@gmail.com</a>>:<br>
> Hi Brian,<br>
> Thanks for your feedback.<br>
> I see what you mean... So is there any other way of doing this? Right now<br>
> this is what we've come up with...<br>
> We use olsr (<a href="http://www.olsr.org/" target="_blank">http://www.olsr.org/</a>) to get to know which robots are in our<br>
> network. This information is published as a msg over ROS. So each robot now<br>
> knows who is online. We then use foreign_relay to send ROS msgs from one<br>
> robot to the other.<br>
> I'm taking care of this part and I though it would be nice if I could write<br>
> up a ROS srv that has as inputs the ip (or ips) of the robot to send a msg<br>
> to and then an opaque msg where you can send anything. The srv would then<br>
> encapsulate the desired msg along with the ip of the sender and publish it<br>
> over foreign_relay. The receiving robot would then get the message and know<br>
> who it came from. I was aiming for a flexible node, easy to use.<br>
> However if we are to use defined types how can we accomplish this? Should we<br>
> open a foreign_relay for each topic we want to use between each 2 robots?<br>
> Thanks for the help,<br>
> Gonçalo Cabrita<br>
> ISR - University of COoimbra<br>
> Portugal<br>
> On Mon, Jul 12, 2010 at 5:57 PM, Brian Gerkey <<a href="mailto:gerkey@willowgarage.com">gerkey@willowgarage.com</a>><br>
> wrote:<br>
>><br>
>> 2010/7/12 Gonçalo Cabrita <<a href="mailto:goncabrita@gmail.com">goncabrita@gmail.com</a>>:<br>
>> > We've been working on our comm node and we have encountered a problem.<br>
>> > We are thinking about creating a ROS msg to send over foreign_relay that<br>
>> > looks like this:<br>
>> > int robot_id<br>
>> > ShapeShifter msg<br>
>> > We would like to know if ShapeShifter can be used to hold any message we<br>
>> > might want to send and if we need an extra field like msg_type or not.<br>
>><br>
>> No, ShapeShifter is not a ROS message.  It's a a C++ class that is<br>
>> used by certain tools to handle messages without knowing their types<br>
>> (and it's a pretty hacky way of doing that).  All ROS messages are<br>
>> explicitly typed when sent over the wire.  If you really want to send<br>
>> an opaque blob of data (not recommended, as you'd be circumventing the<br>
>> ROS marshaling support, and would lose the ability to introspect<br>
>> messages), then you can do something like:<br>
>><br>
>> uint8[] msg<br>
>><br>
>>        brian.<br>
>> _______________________________________________<br>
>> ros-users mailing list<br>
>> <a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
>> <a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
><br>
><br>
> _______________________________________________<br>
> ros-users mailing list<br>
> <a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
> <a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
><br>
><br>
_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
</div></div></blockquote></div><br>