<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="Generator" content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@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:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
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;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Vorformatiert Zchn";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLVorformatiertZchn
        {mso-style-name:"HTML Vorformatiert Zchn";
        mso-style-priority:99;
        mso-style-link:"HTML Vorformatiert";
        font-family:Consolas;
        mso-fareast-language:DE;}
span.E-MailFormatvorlage20
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.E-MailFormatvorlage21
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:649556294;
        mso-list-template-ids:-1557077898;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1
        {mso-list-id:701788495;
        mso-list-template-ids:1800806442;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style></head><body lang="DE" link="blue" vlink="purple"><div class="WordSection1"><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Hi Brian,</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span></p><p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">as you know from our recent conversations, at Synapticon we’re absolutely in favour of putting ROS onto any of the mature middleware options available and DDS is the most promising candidate. Christian and Daniel (forwarded by Nick) gave great summaries to which we can’t add much. We think making ROS supporting or using DDS would finally enable ROS to gain the traction it deserves in industrial/product applications. </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span></p><p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">However we also think it makes sense not to replace the traditional ROS middleware but to just add DDS spec to it, maybe replacing some elements that make sense after some time. Backwards compatibility is important and there are some things ROS middleware is obviously good at that DDS can’t provide, e.g. messaging or streaming larger amounts of data. </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span></p><p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">We‘d be happy to contribute to the efforts of adding DDS as a middleware choice to ROS.</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span></p><p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Best,</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Nik</span></p><p class="MsoNormal"><a name="_MailEndCompose"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span></a></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">Von:</span></b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""> <a href="mailto:ros-users-bounces@lists.ros.org">ros-users-bounces@lists.ros.org</a> [mailto:<a href="mailto:ros-users-bounces@lists.ros.org">ros-users-bounces@lists.ros.org</a>] <b>Im Auftrag von </b>Daniele Calisi<br>
<b>Gesendet:</b> Donnerstag, 13. Februar 2014 11:26<br><b>An:</b> User discussions<br><b>Betreff:</b> Re: [ros-users] ROS & DDS</span></p><p class="MsoNormal"> </p><div><p class="MsoNormal">I agree with Christian Schlegel on the following points:</p>
<div><p class="MsoNormal">- Configuring DDS is very complex and the effort makes sense only for big projects. I personally have an experience with DDS used in robotics and it has often be a pain to configure everything in such a way that it works as expected. If you are not a DDS expert, you can easily have configurations that perform worse than using whatever middleware.</p>
</div><div><p class="MsoNormal">- Let's write an abstraction layer, this is the best solution, because we are not sure how ROS middleware can perform with respect to DDS for specific robotic applications (and I see using ROS middleware much more simple for those who are just beginning with robotics, e.g., students). Moreover, we are not sure about what the future has to offer, what if we discover that a new-born middleware is better than everything for robotics and embedded systems? I personally did this for our framework OpenRDK (<a href="http://openrdk.sf.net">http://openrdk.sf.net</a>), and, although the abstraction was not complete and sometimes requires some hacks, I was able to use OpenRDK own middleware, ROS middleware, DDS or even KDE D-Bus or HTTP, depending on the application.</p>
</div></div><div><p class="MsoNormal" style="margin-bottom:12.0pt"> </p><div><p class="MsoNormal">On Thu, Feb 13, 2014 at 10:14 AM, Christian Schlegel <<a href="mailto:schlegel@hs-ulm.de" target="_blank">schlegel@hs-ulm.de</a>> wrote:</p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm"><div><div><p class="MsoNormal">Dear Brian,</p><ul type="disc"><li class="MsoNormal" style>DDS definitely is a very interesting candidate. If it comes to QoS, it is the most standardized and most advanced approach. In particular, due to the high degree of standardization, different implementations of the DDS standard can smoothly interact.</li>
</ul><p>Let me give some more hints:</p><ul type="disc"><li class="MsoNormal" style>I have been wondering for a long time why robotics more or less ignored so far existing middleware standards and often comes up with solutions ignoring the achievements in the scientific community of distributed / middleware systems. That is in particular interesting since in robotics, we need the most advanced middleware systems (scalability across different H/W and OS platforms ranging from embedded to full-scale systems, QoS, partly even realtime etc.). The DDS standard deals with many of these things!</li>
<li class="MsoNormal" style>"freedom from choice" instead of "freedom of choice":</li></ul><ul type="disc"><ul type="circle"><li class="MsoNormal" style>it will be decisive not just to migrate to DDS (or any other middleware) and then present the complexity of DDS ("freedom of choice") to the robotics user (configuring DDS is complex  but that is because DDS is powerful). We need to have an abstraction layer (execution container) that comprises "robotics communication patterns" ("freedom from choice") like query (request / response) and push (publish / subscribe). These provide stable interfaces to the robotics experts but can be mapped onto whatever middleware that is appropriate. Going beyond state-of-the-art would introduce QoS attributes with such communication patterns and mapping them with QoS will most likely consider DDS a very good candidate.</li>
<li class="MsoNormal" style>this way, you separate the "robotics communication patterns" from the middleware and ignoring that separation unfortunately has a long tradition in robotics: for very good reasons, you should not expose the complexity of CORBA, zeroMQ, ACE, ACE/TAO, DDS to the robotics user but should have framework experts that once do these mappings</li>
</ul></ul><ul type="disc"><li class="MsoNormal" style>If you are interested in such communication patterns (and how they can be mapped onto different middleware systems, but right now still without QoS), you might want have a look at the "SmartSoft communication patterns"</li>
</ul><p class="MsoNormal"><a href="http://www.intechopen.com/books/robotic-systems-applications-control-and-programming/robotic-software-systems-from-code-driven-to-model-driven-software-development" target="_blank">http://www.intechopen.com/books/robotic-systems-applications-control-and-programming/robotic-software-systems-from-code-driven-to-model-driven-software-development</a><br>
<br>Christian</p><div><p class="MsoNormal"><br><br><br>Am 12.02.2014 17:56, schrieb Brian Gerkey:</p></div></div><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><pre>hi,</pre><pre> </pre><pre>As we work on improving the communications middleware within ROS, one</pre>
<pre>of the approaches that has come up repeatedly is DDS (Data</pre><pre>Distribution Service; <a href="http://portals.omg.org/dds/" target="_blank">http://portals.omg.org/dds/</a>).  There are lots of</pre><pre>positive aspects of DDS as a middleware, and of course some tradeoffs</pre>
<pre>(e.g., in exchange for lots of features in the message transport, the</pre><pre>API is incredibly verbose; while there are open source</pre><pre>implementations, there's not the feeling of an active community doing</pre>
<pre>development on them).</pre><pre> </pre><pre>We'd like to understand what the level of interest is within the ROS</pre><pre>community for DDS support.</pre><pre> </pre><pre>So, for those of you who already know something about DDS (especially</pre>
<pre>if you have experience using it), here are some questions to start a</pre><pre>discussion.  Don't feel obliged to answer every question, and also</pre><pre>feel free to answer questions not asked here.  If you prefer, you can</pre>
<pre>reply directly to me, and we'll anonymize your comments before</pre><pre>potentially sharing them.</pre><pre> </pre><pre>What's your opinion of DDS (good, bad, ugly, other)?  If you like DDS,</pre><pre>why?  If you don't like it, why not?</pre>
<pre> </pre><pre>How would you compare DDS to the ROS middleware?</pre><pre> </pre><pre>Do you see others in your field using DDS?  Have you ever wished that</pre><pre>ROS could "speak DDS"?  Have you already used DDS in combination with</pre>
<pre>ROS?</pre><pre> </pre><pre>thanks,</pre><pre>brian.</pre><pre>_______________________________________________</pre><pre>ros-users mailing list</pre><pre><a href="mailto:ros-users@lists.ros.org" target="_blank">ros-users@lists.ros.org</a></pre>
<pre><a href="http://lists.ros.org/mailman/listinfo/ros-users" target="_blank">http://lists.ros.org/mailman/listinfo/ros-users</a></pre><pre> </pre></blockquote><p class="MsoNormal"><br><br><br></p><pre>-- </pre><pre>Prof. Dr. Christian Schlegel</pre>
<pre>Prodekan, Studiendekan Master IS</pre><pre>Fakultät Informatik</pre><pre>Hochschule Ulm</pre><pre> </pre><pre>Tel.: 0731 / 50-28242</pre><pre> </pre><pre><a href="http://www.hs-ulm.de/schlegel" target="_blank">http://www.hs-ulm.de/schlegel</a></pre>
<pre><a href="http://www.servicerobotik-ulm.de/" target="_blank">http://www.servicerobotik-ulm.de/</a></pre><pre><a href="http://www.zafh-servicerobotik.de/" target="_blank">http://www.zafh-servicerobotik.de/</a> (Sprecher)</pre>
<pre><a href="http://www.youtube.com/user/roboticsathsulm" target="_blank">http://www.youtube.com/user/roboticsathsulm</a></pre><pre><a href="http://smart-robotics.sourceforge.net/" target="_blank">http://smart-robotics.sourceforge.net/</a></pre>
<pre><a href="http://www.joser.org/" target="_blank">http://www.joser.org/</a></pre></div><p class="MsoNormal" style="margin-bottom:12.0pt"><br>_______________________________________________<br>ros-users mailing list<br>
<a href="mailto:ros-users@lists.ros.org">ros-users@lists.ros.org</a><br><a href="http://lists.ros.org/mailman/listinfo/ros-users" target="_blank">http://lists.ros.org/mailman/listinfo/ros-users</a></p></blockquote></div><p class="MsoNormal">
<br><br clear="all"></p><div><p class="MsoNormal"> </p></div><p class="MsoNormal">-- </p><div><p class="MsoNormal">Daniele "MadMage" Calisi<br><i>"Your limit is always a bit beyond"</i></p></div></div>
</div></body></html>