Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Adding deadline, liveliness and other QoS to ROS 2 #572
This issue is to start discussing adding of additional QoS to ROS 2. In particular the first two QoS that deem to be really necessary are:
As ROS 2 is C++11/14 it seems natural to implement advanced features alongside the DDS C++11 API described here. While this API is AFAIK not an official DDS standard, or at least I could not find it on the OMG page) Connext Pro and OpenSplice use this exact API.
As most functionality is implemented around the wait-set concept it makes sense to do the same in ROS 2 as the existing callback-based API which is very similar to ROS 1 is not modified.
DDS C++11/14 concept summary:
Everything in DDS is Event-based. Events in DDS are called Conditions.
Everything that has to do with the state of a sample or instance (keyed group).
Everything that is related to events not to a state of a sample.
The user needs to be able to check if a condition did happen. There are two ways to do this:
QOS settings must also be configured, which is the easier thing to do.
Some utility functions like asserting liveliness and translating instance handles to keys and via versa must also be provided on a DataWriter and DataReader level.