ros2 / rcl

Library to support implementation of language specific ROS Client Libraries.
Apache License 2.0
130 stars 163 forks source link

Fallback content filtering #982

Open fujitatomoya opened 2 years ago

fujitatomoya commented 2 years ago

Feature request

Background

Content Filtering Subscription is new feature introduced in Humble, see Content-Filtering-Subscription Currently Content Filtering Subscription depends on RMW implementation, so that if underlying RMW implementation does not support Content Filtering Subscription interfaces, user application cannot use this feature in ROS 2. This could be problem for the application cz its behavior could not be consistent once RMW implementation is changed. The application can still manage this situation in user space, but this would be burden for user application code. Besides, subscriptions are the endpoints that we use mostly in application.

This has been discussed on https://github.com/ros2/design/pull/282#issuecomment-1055894950

Feature description

We will provide fallback filtering function in rcl or else where that DOES NOT depend on rmw implementation. Fallback filtering will conceal the rmw dependency from user perspective, so that user application can get rid of if rmw does not support code from the user space.

Implementation considerations

Performance

Fallback filtering will be only Reader-Filtering.I It always runs executor to take out the message from rmw, and then de-serialize the message to see what's in the message for filtering. This said that there will be no performance improvement compared to filtering in user application. Reader-Filtering in rmw is different from above, since there is no need to take out the data using executor, besides it does not need to de-serialize the message before filtering. This is achieved by TypeObject in Fast-DDS and TypeCode in RTI Connext DDS.

Tasks

fujitatomoya commented 2 years ago

Some consideration as below, comments and feedback are welcome.

fujitatomoya commented 2 years ago

Development Status Update, the followings are ready for review.

CC: @wjwwood @ivanpauno @MiguelCompany @asorbini @clalancette