December 8, 2017

I wanted to share with the ROS community the proposal we made
yesterday afternoon to other DDS vendors, the OMG MARS Taskforce and
the XRCE evaluation team on a possible way forward.

Before articulating the proposal let me give some context.

As a result of the XRCE standardisation process we need to select one
of the proposals (our proposal is available here). On the ROS mailing list we have discussed few
aspects of the protocol and @gbiggs provides
here above a good
and independent analysis on the two proposals with Erik and myself
clarifying a few points
here and here
respectively. Thus if you have not read those I suggest you do before
continuing reading things.

With reference to
@gbiggs analysis, we
have one proposal (ours) that is perceived as being slightly more
complex but that supports peer-to-peer as well as client-to-broker and
is more suited for constrained environments. The other (RTIandCo)
which appears to be simpler but only supports client-to-broker and
carries more overhead.

If along with this information, we take into account that we (ADLINK):

have made available our XRCE implementation as Open Source under
Apache 2 as part of the project zenoh.io, and

are going to release a C++ broker by the end of the year (we
already have a Swift and a Scala broker implemented – some folks have
seen these in actions at various demonstrations), and

are committed to make zenoh.io the XRCE
reference implementation, both in terms of standards as well as
quality

Now that the context is given I can enunciate the proposal I made to
other vendors, task force & co:

Adopt our proposal and join forces, around the newly established
open source project (zenoh), to accelerate the establishment of the
XRCE standard in constrained environments.

The advantages of my proposal are several:

End-users such as the ROS community would get access to an
implementation of the standard much more quickly – essentially now.

Other DDS vendors could have immediately constrained connectivity
by simply integrating their DDS implementation on the
zenoh.io broker.

We would have an open source implementation of XRCE supported by
all DDS vendors, which means no interoperability issues, faster
evolution, and faster adoption.

We would have a protocol that can do peer-to-peer as well as
brokered communication, which is good for some use cases – most
notably in robotics.

We would have a protocol that could be deployed down to the
sensors. Imagine for a moment having ROS-enabled sensors talking XRCE
via low-power protocols or anything else that suits them.

As the one protocol everyone uses and supports is open-source we
would facilitate adoption immensely.

Collaboration can bring us much more further away than
competition. What has made humans excel is our ability to collaborate
not so much that to compete… Thus, why not in this case?

I am looking forward to hear comments from the ROS community. Please speak-up.