Hi!<div><br></div><div>We've been working on our comm node and we have encountered a problem.</div><div><br></div><div>We are thinking about creating a ROS msg that looks like this:</div><div><br></div><div>int robot_id</div>
<div>ShapeShifter msg<br><br><div class="gmail_quote">2010/7/9 Gonçalo Cabrita <span dir="ltr"><<a href="mailto:goncabrita@gmail.com">goncabrita@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hum... I'm not sure that will do the trick :)<br>
<br>
What Pedro is aiming for is a ROS node where robots can dynamically connect to each other. He is using multi-cast so that newcomers can tell other robots that they are there and ready to communicate, so the new IP address is added to the table of addresses of each robot. From there each robot should be able to open a foreign_relay to any robot on the list.<br>

<br>
The idea is that we don't need a list of robots or IPs in advance. Robots can join and leave the network as necessary, in a p2p fashion.<br>
<br>
I believe Pedro's problems are related to multi-threading and how to exactly tweak the foreign_relay node in order to accomplish this goal, however he is more qualified to elaborate on the exact problems he has encountered :)<br>

<br>
Another option (I think!) would be to have the multi-cast thingie on a node which would open and close the foreign_relay nodes from within the code as needed, as opposite to running the foreign_relay code from within the same node in multiple threads.<br>

<br>
Is there a way to accomplish this last idea?<br>
<font color="#888888"><br>
Gonçalo Cabrita<br>
</font><div class="im">ISR - University of Coimbra<br>
Portugal<br>
<br>
</div><div><div></div><div class="h5">On Jul 8, 2010, at 11:06 PM, Blaise Gassend wrote:<br>
<br>
> You can launch any number of foreign relays from a launch file. Here is<br>
> a line from one launch file I was working with:<br>
><br>
> <node name="trigger_foreign_relay" pkg="foreign_relay" type="foreign_relay.py" args="sub /trigger $(env FOREIGN_MASTER)" respawn="true"/><br>
><br>
> If I recall, I had to tweak foreign_relay to make this work. The foreign relay here should do the trick:<br>
> <a href="https://code.ros.org/svn/wg-ros-pkg/trunk/stacks/dance_demo/foreign_relay" target="_blank">https://code.ros.org/svn/wg-ros-pkg/trunk/stacks/dance_demo/foreign_relay</a><br>
><br>
> On Thu, 2010-07-08 at 15:56 +0100, Pedro Sousa wrote:<br>
>> Hello everyone<br>
>><br>
>><br>
>> I am working with Gonçalo with ROS and our mobile platform (Roombas<br>
>> and Eeepc on top) and I am following this conversation about<br>
>> multi-robot communication. Like Blaise said the foreign_relay_node was<br>
>> a great way of sharing information between robots. However, this<br>
>> approach is good when the initialisation of the node is made directly<br>
>> on the console or giving the parameters inside the code.<br>
>><br>
>><br>
>> I was trying to go a bit further and make it for multi robot. However,<br>
>> it wasn't easy for me and with some "bad hacks" I was able to<br>
>> advertise a certain node of one robot on others (two) robots.<br>
>><br>
>><br>
>> Anyone have already made something similar? If not, how is the correct<br>
>> way of doing so?<br>
>><br>
>><br>
>><br>
>><br>
>> Regards,<br>
>><br>
>><br>
>> Pedro Sousa<br>
>> ISR - University of Coimbra<br>
>> Portugal<br>
>><br>
>><br>
>><br>
>><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>
<br>
</div></div></blockquote></div><br></div>