[ros-users] ROS & DDS

Georg Bartels georg.bartels at cs.uni-bremen.de
Thu Feb 13 12:22:20 UTC 2014


Hi Brian, hi all,

thank you very much for initiating and pursuing this discussion on the
mailing list. I, as a ROS user, appreciate being in the loop, at least
initially, of such design discussions!

I have two questions:
(1) For a researcher using ROS to run experiments on a single robot +
local LAN, what is the __single__ most important advantage of a
middleware switch to, for instance, DDS?

(2) For a maintainer of a client language of ROS (not cpp or python),
what is the overhead of the discussed switch?

Thanks for any response, and keep up the interesting discussion.

Cheers,
Georg.


On 02/13/2014 12:38 PM, Nikolai Ensslen wrote:
> Hi Brian,
> 
> 
> 
> 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.
> 
> 
> 
> 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.
> 
> 
> 
> We'd be happy to contribute to the efforts of adding DDS as a middleware
> choice to ROS.
> 
> 
> 
> Best,
> 
> Nik
> 
> 
> 
> *Von:* ros-users-bounces at lists.ros.org [mailto:
> ros-users-bounces at lists.ros.org] *Im Auftrag von *Daniele Calisi
> *Gesendet:* Donnerstag, 13. Februar 2014 11:26
> *An:* User discussions
> *Betreff:* Re: [ros-users] ROS & DDS
> 
> 
> 
> I agree with Christian Schlegel on the following points:
> 
> - 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.
> 
> - 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 (
> http://openrdk.sf.net), 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.
> 
> 
> 
> On Thu, Feb 13, 2014 at 10:14 AM, Christian Schlegel <schlegel at hs-ulm.de>
> wrote:
> 
> Dear Brian,
> 
>    - 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.
> 
> Let me give some more hints:
> 
>    - 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!
>    - "freedom from choice" instead of "freedom of choice":
> 
> 
>    - 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.
>       - 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
> 
> 
>    - 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"
> 
> http://www.intechopen.com/books/robotic-systems-applications-control-and-programming/robotic-software-systems-from-code-driven-to-model-driven-software-development
> 
> Christian
> 
> 
> 
> 
> Am 12.02.2014 17:56, schrieb Brian Gerkey:
> 
> hi,
> 
> 
> 
> As we work on improving the communications middleware within ROS, one
> 
> of the approaches that has come up repeatedly is DDS (Data
> 
> Distribution Service; http://portals.omg.org/dds/).  There are lots of
> 
> positive aspects of DDS as a middleware, and of course some tradeoffs
> 
> (e.g., in exchange for lots of features in the message transport, the
> 
> API is incredibly verbose; while there are open source
> 
> implementations, there's not the feeling of an active community doing
> 
> development on them).
> 
> 
> 
> We'd like to understand what the level of interest is within the ROS
> 
> community for DDS support.
> 
> 
> 
> So, for those of you who already know something about DDS (especially
> 
> if you have experience using it), here are some questions to start a
> 
> discussion.  Don't feel obliged to answer every question, and also
> 
> feel free to answer questions not asked here.  If you prefer, you can
> 
> reply directly to me, and we'll anonymize your comments before
> 
> potentially sharing them.
> 
> 
> 
> What's your opinion of DDS (good, bad, ugly, other)?  If you like DDS,
> 
> why?  If you don't like it, why not?
> 
> 
> 
> How would you compare DDS to the ROS middleware?
> 
> 
> 
> Do you see others in your field using DDS?  Have you ever wished that
> 
> ROS could "speak DDS"?  Have you already used DDS in combination with
> 
> ROS?
> 
> 
> 
> thanks,
> 
> brian.
> 
> _______________________________________________
> 
> ros-users mailing list
> 
> ros-users at lists.ros.org
> 
> http://lists.ros.org/mailman/listinfo/ros-users
> 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> ros-users mailing list
> ros-users at lists.ros.org
> http://lists.ros.org/mailman/listinfo/ros-users
> 



More information about the ros-users mailing list