<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";
        color:black;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:10.0pt;
        margin-left:.5in;
        line-height:115%;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";
        color:black;}
span.EmailStyle22
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle23
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:143931872;
        mso-list-type:hybrid;
        mso-list-template-ids:1261046954 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1
        {mso-list-id:1934850490;
        mso-list-type:hybrid;
        mso-list-template-ids:1708837144 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l1:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>><Hello Jan. Thanks for the feedback and the interest in the project! ><<br><br><o:p></o:p></p><p class=MsoNormal>I am interested in your project since I like the way you do things. It is professional. I think what you need is first, a set of tools which makes your system more ergonomic, and second, a community (like ROS) of people which use and improve your system. In my opinion, the second comes naturally after completing the first. <o:p></o:p></p><p class=MsoNormal><br>>< <a href="http://www.rock-robotics.org/stable/documentation/about/others.html">http://www.rock-robotics.org/stable/documentation/about/others.html</a>><<br><br><o:p></o:p></p><p class=MsoNormal>Nice comparison site. I have a comment about the first point of your comparison. The cost of the connection based model is a big number of connections. If I got it right you can use Roby to have graphical representation of your system (The components and their connections i.e. the connection graph). <o:p></o:p></p><p class=MsoNormal>Have you thought of some graphical tools to assist you with creating this connection graph (like Matlab-Simulink)? Or do you find that not necessary.<br><br><o:p></o:p></p><p class=MsoNormal>>< On that front, it might be of interest for you that we are currently helping MARUM to run a new AUV (and in the future, all their systems) using Rock. The drivers and control software will be released as open source. ><<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>When do you think you will finish that code? It is just to have an idea when you will start releasing reusable components on your website (which helps to make Rock more attractive).<o:p></o:p></p><p class=MsoNormal><br>>< [snip new module creation examples]<br>In practice, component creation is a process that will take 2% of the overall development time. It is, as you point out, very important to attract new users (and we are interested in comments on how to improve it), but has very little effect on the overall development times. ><<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I would like to stress out that attracting users is what makes the system live. If the potential users are lost in the complexity they will decide to abandon (unless they have motivation - such as big community - tutorials - a set of working systems … However, all that comes from the community which might not be created in the first place due the complexity). Of course, this does not concern professional users which are used to complexity and their focus is the technical specifications.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>An idea for improving Rock and at the same time attract the users is to create a game made only using Rock components (The “game of Rock”). The game should use the maximum of reusable components (ex Vizkit for visualization). The best game might be one with moving vehicles/robots since it is close to the robot context. It can be a manual fight - with joystick/keyboard interfacing components. We could also imagine a fight between algorithms if the purpose is to create autonomous competing vehicles… <o:p></o:p></p><p class=MsoNormal> <br><br><o:p></o:p></p><p class=MsoNormal>><I would also add: the developer of a node can anytime add a new topic. If not careful (or -- in case of reusing nodes, if he/she does not know about your system), the new topic name might clash with an existing one and boom. Additionally, having explicit connections allows disconnecting dataflow and reconnecting it. The first one is important for safety reasons, as one can isolate a rogue component from the rest of the system. The second one is the cornerstone of behavior switching in Rock (we switch behaviors by starting/stopping new components and rewiring the connections). ><<br><br><o:p></o:p></p><p class=MsoNormal>That is why I am interested in your system.<o:p></o:p></p><p class=MsoNormal><br>><<o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span style='font-family:Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Do you have a simulator?<o:p></o:p></p><p class=MsoNormal>As Thomas mentioned, we have our own simulator that just got released as open source. However, while it kind-a works for underwater applications, it is not ideal. We did look pretty hard for a good open source underwater simulator, but never found one. Would you have any pointer in that respect?<br>><<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I have found many open simulators but still didn’t test any of them. <o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo3'><![if !supportLists]><span style='font-size:12.0pt;line-height:115%;font-family:"Times New Roman","serif"'><span style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span style='font-size:12.0pt;line-height:115%;font-family:"Times New Roman","serif"'>uMVS : MOOS 2D simulator. I think there are others but I don’t know if they are open source (like M. E. West, T. R. Collins, J. R. Bogle, A. Melim and M. Novitzky, "An Overview Of Autonomous Underwater Vehicle Systems And Sensors At Georgie Tech".). <o:p></o:p></span></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo3'><![if !supportLists]><span style='font-size:12.0pt;line-height:115%;font-family:"Times New Roman","serif"'><span style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span style='font-size:12.0pt;line-height:115%;font-family:"Times New Roman","serif"'>UWsim: developed by IRSLab (Jaume-I University, Castellón).<o:p></o:p></span></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo3'><![if !supportLists]><span style='font-size:12.0pt;line-height:115%;font-family:"Times New Roman","serif"'><span style='mso-list:Ignore'>3.<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span style='font-size:12.0pt;line-height:115%;font-family:"Times New Roman","serif"'>MORSE: 3D Simulator from the LAAS - France (Bullet physical engine based) (<a href="http://www.openrobots.org/morse/doc/stable/morse.html">http://www.openrobots.org/morse/doc/stable/morse.html</a>). It is multi-purpose. It might be interesting to collaborate with them to make one simulator for all the environments. <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Ciao,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.5pt;font-family:Consolas'>-----------------------------------------------------------------<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.5pt;font-family:Consolas'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.5pt;font-family:Consolas'>Jan SLIWKA<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Dr. Eng. Contractor at ETD CMRE</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Software engineering, algorithms, robotics<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>web: <a href="http://www.jan-sliwka.net/">www.jan-sliwka.net</a><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'> Sylvain Joyeux [mailto:sylvain.joyeux@dfki.de] <br><b>Sent:</b> Friday, September 14, 2012 9:14 AM<br><b>To:</b> Jan Sliwka<br><b>Cc:</b> 'Thomas Roehr'; rock-dev@dfki.de<br><b>Subject:</b> Re: [Rock-dev] Fwd: RE: Avalon's Middleware<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Hello Jan. Thanks for the feedback and the interest in the project !<br><br>On 08/17/2012 02:03 PM, Jan Sliwka wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal>I would like first to talk about the context. You know, you’re facing the famous ROS and my question would be: what are the points in which you are equal and those where you surpass ROS. <o:p></o:p></p></blockquote><p class=MsoNormal><a href="http://www.rock-robotics.org/stable/documentation/about/index.html">http://www.rock-robotics.org/stable/documentation/about/index.html</a><br><a href="http://www.rock-robotics.org/stable/documentation/about/others.html">http://www.rock-robotics.org/stable/documentation/about/others.html</a><br><br><br><o:p></o:p></p><p class=MsoNormal>I would say that first; your strong point might be the AUV world. Currently, there are very few components related to the AUV in ROS. I think the second strong point is the use of Orocos which enable better control of the application (more suitable for fine control when resources are lacking). However, the cost of better control is higher complexity. <o:p></o:p></p><p class=MsoNormal>On that front, it might be of interest for you that we are currently helping MARUM to run a new AUV (and in the future, all their systems) using Rock. The drivers and control software will be released as open source.<br><br>[snip new module creation examples]<br>In practice, component creation is a process that will take 2% of the overall development time. It is, as you point out, very important to attract new users (and we are interested in comments on how to improve it), but has very little effect on the overall development times.<br><br><o:p></o:p></p><p class=MsoNormal>ROS runs a parameter server which you can initialize using a “.yaml” file. The parameters are accessible through the functions “setParam/getParam. The difference with Rock is that the server is centralized but you handle one config per component which is maybe better. <o:p></o:p></p><p class=MsoNormal>You also have access to parameters directly on the components through the property interface (for e.g. change parameters at runtime).<br><br><o:p></o:p></p><p class=MsoNormal>The components are naturally connected through topic names. The connection graph can be even remapped using ROS remapping capability. However, this is not necessarily good since the connection graph is not necessarily defined in a single file. In the case of Rock all the interconnections are visible in the same file. <o:p></o:p></p><p class=MsoNormal>I would also add: the developer of a node can anytime add a new topic. If not careful (or -- in case of reusing nodes, if he/she does not know about your system), the new topic name might clash with an existing one and boom. Additionally, having explicit connections allows to disconnect dataflow and reconnect it. The first one is important for safety reasons, as one can isolate a rogue component from the rest of the system. The second one is the cornerstone of behaviour switching in Rock (we switch behaviours by starting/stopping new components and rewiring the connections).<br><br><o:p></o:p></p><p class=MsoNormal>I personally find ROS more ergonomic but Rock having more potential. To be honest I still didn’t use Rock but it is the impression I have from reading the documentation.<o:p></o:p></p><p class=MsoNormal>I have some questions with regards to the modules you offer:<o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span style='font-family:Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>What is the list of communication devices you handle: Serial/I2C/CAN/Bluetooth?<o:p></o:p></p><p class=MsoNormal>Depends on what you mean by "handle".<br><br>The base class for all our device drivers can handle serial and bluetooth (since bluetooth is seen as a network device on linux). There is a dedicated CAN component for CAN devices. On top of that, for underwater systems, we have drivers for the schilling DTS.<br><br><br><o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span style='font-family:Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Do you have a simulator?<o:p></o:p></p><p class=MsoNormal>As Thomas mentioned, we have our own simulator that just got released as open source. However, while it kind-a works for underwater applications, it is not ideal. We did look pretty hard for a good open source underwater simulator, but never found one. Would you have any pointer in that respect ?<br><br><br><o:p></o:p></p><pre>-- <o:p></o:p></pre><pre>Sylvain Joyeux (Dr.Ing.)<o:p></o:p></pre><pre>Senior Researcher<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>Space & Security Robotics<o:p></o:p></pre><pre>Underwater Robotics<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>!!! Achtung, neue Telefonnummer!!!<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>Standort Bremen:<o:p></o:p></pre><pre>DFKI GmbH<o:p></o:p></pre><pre>Robotics Innovation Center<o:p></o:p></pre><pre>Robert-Hooke-Straße 5<o:p></o:p></pre><pre>28359 Bremen, Germany<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>Phone: +49 (0)421 178-454136<o:p></o:p></pre><pre>Fax: +49 (0)421 218-454150<o:p></o:p></pre><pre>E-Mail: <a href="mailto:robotik@dfki.de">robotik@dfki.de</a><o:p></o:p></pre><pre><o:p> </o:p></pre><pre>Weitere Informationen: <a href="http://www.dfki.de/robotik">http://www.dfki.de/robotik</a><o:p></o:p></pre><pre>-----------------------------------------------------------------------<o:p></o:p></pre><pre>Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH<o:p></o:p></pre><pre>Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern<o:p></o:p></pre><pre>Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster<o:p></o:p></pre><pre>(Vorsitzender) Dr. Walter Olthoff<o:p></o:p></pre><pre>Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes<o:p></o:p></pre><pre>Amtsgericht Kaiserslautern, HRB 2313<o:p></o:p></pre><pre>Sitz der Gesellschaft: Kaiserslautern (HRB 2313)<o:p></o:p></pre><pre>USt-Id.Nr.: DE 148646973<o:p></o:p></pre><pre>Steuernummer: 19/673/0060/3<o:p></o:p></pre><pre>----------------------------------------------------------------------- <o:p></o:p></pre></div> <BR/><BR>
<HR><Font face=arial size=2 color=black><I>
*** PRIVILEGED AND CONFIDENTIAL ***<BR>
<BR>Centre for Maritime Research and Experimentation (CMRE, formerly NURC)<BR><BR>
The information contained in this e-mail message (including any attached files)<BR>
is intended for the use of the addressee(s) only and is privileged information.<BR>
The information should neither be posted to the Internet, nor published in any<BR>
other public domain, without the express permission of the sender. If you are<BR>
not the intended recipient(s) or the recipient's representative, you are hereby<BR>
notified that any use, disclosure, copying or distribution of this communication<BR>
is prohibited. If you have received this communication in error please notify us<BR>
immediately at postmaster@cmre.nato.int and remove this message from <BR>
your system.
</I>
</font><HR>
</body></html>