<div><br></div><div>Mixing processes and platforms is exactly what we've been pushing towards for a while. We had good motivation in that direction - our CTO would get antsy and more than a little frustrated when the engineers rolled out long schedules everytime he considered porting to a new robot. So I had a robot core developing with a custom libplugin manager (much like the nodelet manager) and a 'topic' style multithreaded sigslots library for communications. <br>
</div><div><br></div><div>The nodelets is nice though, the roslaunch features are great and it collapses our redundancy in the data structures back to the single ros msg style format as well as removing the need for the sigslots. I can't think of anything we'd really need, except perhaps an easy way to sometimes extend/customise our own nodelet managers - which I don't think would be too hard after having a look at the nodelets code.</div>
<div><br></div><div>Cheers,</div><div>Daniel.</div><div><br></div>On 20 August 2010 12:02, Radu Bogdan Rusu <span dir="ltr"><<a href="mailto:rusu@willowgarage.com">rusu@willowgarage.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Daniel,<br>
<br>
Nodelets are single process (usually multi-threaded), and you're right - the publish/subscribe intra-process<br>
optimization was implemented to get them to use the same ROS API mechanisms (in addition to other requests). The nice<br>
thing about the entire design is that you can easily split your nodelet modules into different processes and on<br>
different machines without changing anything in your code, simply by passing them to different nodelet managers.<br>
<br>
Cheers,<br>
Radu.<br>
<div><div class="h5"><br>
On 08/19/2010 05:55 PM, Daniel Stonier wrote:<br>
><br>
> Been playing around with nodelets and have a curiosity. I understand<br>
> that their design was driven by the need to pass objects by handles<br>
> (pointers) across messaging rather than full copies.<br>
><br>
> Recently however, one of the willow garage guys (Josh maybe? I can't<br>
> remember) pointed me to try some tests a little while ago with node<br>
> handles. If carefully passing and publishing a boost pointer, then a<br>
> subscriber in the same process will simply receive that pointer and<br>
> bypass all the tcp/ip layers. Was this implemented recently as a result<br>
> of the work on nodelets? If not, are there any important differences<br>
> between this and nodelets communication mechanisms?<br>
><br>
> Actually, I still like the nodelets. Being able to drop your libraries<br>
> containing nodelets onto the nodelet manager via roslaunch file is<br>
> awesome. You can put together an interrupt driven control system<br>
> designed entirely from libraries and xml without the need to even<br>
> program any binaries in most cases. Awesome.<br>
><br>
> --<br>
> Phone : +82-10-5400-3296 (010-5400-3296)<br>
> Home: <a href="http://snorriheim.dnsdojo.com/" target="_blank">http://snorriheim.dnsdojo.com/</a><br>
> Yujin Robot: <a href="http://www.yujinrobot.com/" target="_blank">http://www.yujinrobot.com/</a><br>
> Embedded Control Libraries: <a href="http://snorriheim.dnsdojo.com/redmine/wiki/ecl" target="_blank">http://snorriheim.dnsdojo.com/redmine/wiki/ecl</a><br>
><br>
><br>
><br>
</div></div>> _______________________________________________<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>
<font color="#888888"><br>
--<br>
| Radu Bogdan Rusu | <a href="http://rbrusu.com/" target="_blank">http://rbrusu.com/</a><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>
</font></blockquote><br><br clear="all"><br>-- <br>Phone : +82-10-5400-3296 (010-5400-3296)<br>Home: <a href="http://snorriheim.dnsdojo.com/">http://snorriheim.dnsdojo.com/</a><br>Yujin Robot: <a href="http://www.yujinrobot.com/">http://www.yujinrobot.com/</a><br>
Embedded Control Libraries: <a href="http://snorriheim.dnsdojo.com/redmine/wiki/ecl">http://snorriheim.dnsdojo.com/redmine/wiki/ecl</a><br>