Plan to port more DDS QoS to ROS2

Is there an official plan to port more DDS QoS to ROS2?
If not, shall we start listing the useful DDS QoS, the candidates to be ported to ROS2?

I will start :smiley:
TransportPriority, LatencyBudget, and Liveliness: useful for real time applications.
OwnershipStrength: useful for software redundancy.

3 Likes

Hi @huschen

One of the advantages of Fast DDS is you can configure the QoS in an XML file, so for example, setting the transport priority is trivial, even if it is not exposed.

But is also true that it would be very easy to expose these QoS.

There is no plan to do it, neither plan to don’t do it. It is a matter of creating a PR of the QoS you want to expose and follow the process to get that PR accepted, as in any other ROS feature.

Are you interested in one in particular?

2 Likes

Thank you so much Jaime. Very very helpful :smiley:
The QoS I am interested in particular are TransportPriority and OwnershipStrength.

I guess if creating a PR to expose more DDS QoS to ROS2, we need to add them for all supported DDS implementations?

Right,

Not all the implementations support all the QoS. In the case any implementation does not support the feature, then you should ignore the setting for that one.

(silently) ignoring is not necessarily the best way to go about this.

Perhaps a (fatal) error might be more appropriate.

As a user I’d rather have my application fail (hard), then it silently plodding along with my nodes not getting the QoS they specified.

QoS is configured for a reason on those participants. If something’s not supported, it’s likely the node won’t function properly.

3 Likes

I agree, that is what I was trying to say.

Here is some feeback from Apex.AI regarding porting new DDS QOS:

  • OwnershipStrength: this one will be useful for configuring redundant systems and its behavior is pretty well defined.
  • Liveliness: is already supported
  • TransportPriority and LatencyBudget: The exact behavior could be more implementation dependent. For the moment we are fine setting these QoS by using the DDS APIs. There was some discussion on adding these for use in configuring other network level QOS (like 5G QOS or TSN) in a previous Middleware WG. If that idea gets more traction it could be interesting to add these as ROS QoS.
3 Likes