[ros-users] A modified ROS core aims to provide scalable and QoS-assuring message delivery by adopting DDS

丁博 bding at msn.com
Tue Sep 2 16:09:14 UTC 2014

Hello everyone! 


We have launched a project to modify the ROS c++
core (both Hydro and Indigo) to use OMG's DDS (Data Distribution Service for
Real-time Systems) as its transportation layer. This project is named micROS
RT, in which RT is short for real-time. An early result of our work can be
found at the bottom of this mail. This is a prototype without comprehensive
testing and just for evaluation and feedback collection. 


The main features of our work include: 

(1) Using DDS to deliver ROS messages, instead of
the built-in message channel in ROS. DDS is a mature middleware standard which
"aims to enable standard which scalable, real-time, dependable,
high-performance and interoperable data exchanges between publishers and

(2) Existing ROS applications (as well as the
existing ROS programming paradigm) need no modification. In other words, our
modification to the ROS core is transparent to the upper-layer applications.
All you have to do is to replace the libroscpp.so in the ROS installation

(3) Providing QoS assurance in the message
delivery process (coming soon). You can set QoS parameters when advertising a
topic using the API we added, for example, transport priority, latency budget,
delivery reliability, etc. 

(4) Interoperable with the official ROS core
(both C++ and Python-based). In virtue of the built-in protocol negotiation
mechanism in ROS, our implementation is interoperable with the official ROS


Feature 3 is not supported yet in this version. It will come in the next two or three weeks. We are testing. 


Installation guides: 

(1) Installing OpenSplice DDS 6.4 community
version (http://www.prismtech.com/opensplice/opensplice-dds-community). 

(2) Please ensure that the DDS environment
variables have been set correctly. Usually, you can achieve this goal by simply
running "source %DDSInstallationPath%/release.com". 

(3) Replace the libroscpp.so in the ROS directory
with the file at the bottom downloaded from the link at the bottom of this

After that, all ROS messages will be switched to
the DDS channel instead of the built-in message channel (i.e. the TCPROS
protocol) in ROS. 

When you ROS application starts, you can see a
prompt “[DDSListener] Ready…” in the console to tell you the DDS has been
successfully started  (only on the subscriber side). 


Frequently asked Questions: 

What is DDS?
Why DDS? 

DDS is short for "Data Distribution Service
for Real-time Systems". It is an Object Management Group's standard for
publish/subscribe middleware standard. It supports high-performance, scalable
and QoS-assuring message delivery. It has been applied into many industry-level

Regarding the question of "Why DDS", we
refer you to a related article (http://design.ros2.org/articles/ros_on_dds.html) discussing the design of ROS 2.0, the planned
next generation of ROS. The reason for us to launch this project is very
simple, i.e., we need QoS features in ROS message delivery processes and we
cannot wait ROS 2.0. 

(2) Can this modified ROS core and the official
ROS core co-exist in a distributed robot system? 

Yes. MicROS RT will automatically select the
transport protocol. If the remote ROS node is using an official core without
DDS support, it will smartly changes to the built-in ROS message channel.
However, obviously, the QoS-assurance in message delivery cannot be supported
in this case. 

(3) Can I specify the preferred transport
protocol in my program? 

Yes, you can choose the preferred transport
protocol (TCPROS, UDPROS or DDS) by using the ros::TransportHints API. Before
we release the source code and the manual, you can contact us for more details. 

(4) Will you provide the source code? 

Yes, we will open the source code in the several
weeks. The prototype we released now is just for collecting feedback. 

(5) Who are you? 

We are the micROS team, an non-profit academic
group which consists of researchers, teachers and students from China. We focus
on the robot software research and practice and hope to contribute to the ROS
community. Any suggestion, feedback or bug reports can send to bding at msn.com Thanks! 


micROS RT 0.14beta, based on ROS Indigo, 64bit
binary distribution (compiled on Ubuntu 14.04LTS 64bit) https://onedrive.live.com/redir?resid=1639AB4151BFD7D6!2267&authkey=!ANeW-e3Rv9qbYds&ithint=file%2csomicROS RT 0.14beta, based on ROS Hydro, 64bit
binary distribution (compiled on Ubuntu 12.04LTS 64bit) 

coming soon... 

micROS RT 0.14beta, source code 

coming soon...

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20140903/df558aef/attachment.html>

More information about the ros-users mailing list