Rosanswers logo

Seeing as ROS2 will be using DDS as its middleware of choice, I was wondering if it would also support content filtered topic subscriptions next to the normal (ROS1) topic subscriptions.

Being able to filter messages on topics by content is a very powerful capability (especially with writer-side filtering), making bus-like topologies much more feasible in ROS applications without requiring each node to implement some kind of filtering mechanism itself.

Is this something that will be supported through the 'standard' ROS2-DDS API (I did not find anything in the design docs, but perhaps I've missed it), or will this require node implementors to bypass the API and reach into the underlying DDS implementation (if possible)?

The RTI community site has an example here.

Originally posted by gvdhoorn on ROS Answers with karma: 86574 on 2015-05-26

Post score: 2

Original comments

Comment by ahendrix on 2015-05-26:
I haven't heard any discussion about this. You may want to bring it up on the ros 2 sig mailing list.


1 Answer 1


Rosanswers logo

For future reference, this moved to the ros-sig-ng-ros list, specifically here: content-based topic subscriptions?.

Following was the answer by Dirk Thomas:

content-based subscriptions are a really interesting feature.

The current ROS 2 prototype only uses it internally to implement request/reply on top of publish/subscribe in OpenSplice (ref).

The current RMW interface does not offer an API for specifying a filter criteria though. But since the feature would be pretty useful it might be added in the future to allow custom filters as well.

We would need to ensure that it is possible to specify the filter criteria in a vendor agnostic way.

Originally posted by gvdhoorn with karma: 86574 on 2015-06-16

This answer was ACCEPTED on the original site

Post score: 1


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.