@clalancette I have also made use of DDS’s transport_priority QoS in multiple commerical products for some of the same reasons as @anamud, plus a few others. I wanted to add another vote here for the usefulness of that particular QoS policy, but also comment on the ability to access features provided by DDS that are very useful for more specific and advanced use-cases that are more common in commercial and industrial settings (See also my recent writeup on partition QOS here: https://github.com/ros2/design/issues/261) .
I’ve weighed in a couple of times on some discussions around the interface to the DDS APIs, knowing that while the end users of the robotic systems may not want to, or don’t care about, the implementation details of transport and middleware configurations, the system developers who are creating platforms for these users (such as Ericsson in this case, and my company as well) very much do.
Perhaps rather than pose the burden on the RMW layer itself, such that all middleware integrators would have to implement this feature, there could be a ROS2 DDS API abstraction layer, which allows applications to access all standard DDS features if they are running on top of a DDS-based RMW implementation (of which I would argue most systems will). This would prevent them from writing vendor specific code, at the expense of writing DDS-specific code, but I would argue that, in general, two robots running on different families of RMW implementations (such as DDS vs OPCUA) won’t be able to communicate directly without a bridge layer if one is using DDS and the other something else, so there is no real penalty there. If the features in the DDS layer find enough use, perhaps they could eventually be elevated out of the DDS API layer into RMW, if it makes sense.
Perhaps this would be a good topic for the Middleware Working Group that I recently saw a post about? I would love to find a way to have deeper discussions on these DDS/QoS related topics, and would be happy to provide resources to tackle some of these issues.
Curious to hear your thoughts.