ROS 2 QoS Compatibility for Transient Local Durability
20.5K reputation · 01 Apr 2025, 18:37 UTC
DDS Quality of Service Configuration
In ROS 2, the Data Distribution Service (DDS) layer manages communication through Quality of Service (QoS) profiles. When implementing a system where late-joining subscribers must receive the most recent state updates, the Transient Local durability setting is used on the publisher to store messages for future subscribers.
A design challenge arises when balancing the Reliability and Durability settings across multiple nodes. While a Reliable publisher can connect to a Best Effort subscriber, the interaction between Transient Local durability and different reliability levels can impact how historical data is delivered to new nodes during concurrent request bursts.
Specifically, it is unclear how the Keep Last history depth interacts with Transient Local durability when the subscriber's reliability is set to Best Effort. Does the publisher still guarantee the delivery of the last N samples to a Best Effort subscriber upon connection, or does the reliability mismatch override the durability guarantee?