-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
q: diff between rmw and dds QoS functionality? #51
Comments
Correct, the rmw interface offers only a subset of DDS QoS at the moment. Your perusal of the code base led you to the correct files. For the complete set of DDS QoS policies, I generally reference this page, which is categorizes the QoS policies nicely: http://www.opendds.org/qosusages.html As you can see, the DDS QoS space is large and complicated. After some discussion, we decided not to expose the entire QoS space in ROS 2 for now, to keep the API simple and to keep the possibility of supporting a middleware besides DDS. We are adding QoS settings to the rmw API as we discover aspects that are necessary to implement expected behavior (for example, we introduced Durability so that services would work reliably for the "ROS 1" usage pattern). It is still possible to set QoS policies in some DDS implementations outside of ROS 2 and see their effect in ROS 2. For example, in Opensplice there is an xml configuration file in which the user can specify the full QoS space. I believe in our current implementation that configuration is the default behavior, but the settings specified in the ROS 2 API, such as reliability, can override certain values. (Policies not specified in the ROS 2 API are not overridden.) Are there particular QoS policies that you would like to see introduced into the ROS 2 API? I'm guessing the ones you mentioned here are important; I'd be interested to hear more about how they relate to your use cases. |
thanks. that makes sense, i agree it's probably not necessary to expose the entire QoS config matrix. a couple options that would be interesting for use cases i have in mind (and also seem generally valuable):
i haven't used DDS much other than poking around and doing some eval, so these requests are mostly an attempt to map some requirements onto my understanding of DDS functionality (which is likely imperfect!). these are the options that seem most valuable, i wouldn't mind too much whether they are implemented by relying on DDS or some other layer. |
thanks @liamstask, I'm going to close this in favor of a meta-ticket tracking the exposure of additional QoS settings. #115 Feel free to comment there with your wishlist of QoS settings |
I'm trying to determine roughly what the diff is between QoS functionality available via rmw interfaces vs dds itself. From a read through
rmw/{types, qos_profiles, rmw}.h
it looks like there are some diffs:i think there are others as well, but wanted to check to see what is intended/planned.
The text was updated successfully, but these errors were encountered: