Correct me if I’m mistaken, but there currently doesn’t seem to be a good way of associating image transport message filters subscriptions to a node’s specific callback group. I’m using image transport message filter to synchronize stereo image topics, while designating the stereo image vs. IMU message subscriptions to mutually exclusive callback groups.
In particular the
image_transport::SubscriberFilter, a child class of
message_filters::SimpleFilter, constructor doesn’t match the the usual
Node::create_subscription function signature, allowing for a
SubscriptionOptionsWithAllocator option to specify which node’s
CallbackGroup to use when spinning.
I’ll first ask if this API was intentional, or just something not yet ported with the recent addition of executors. If the latar, I could try an open a PR to extended
SubscriberFilter::subscribe to take a option argument, but was noticing some TODOs about QoS deprications, and wanted to check first if this API is to be restructured in some other way soon.
Also, after adding filter subscriptions to a specified callback group, would additional changes be required to ensure any synchronization work behind the scenes be computed in same callback group? I’m a bit fuzzy on what thread the registered callback for a respective
message_filters::Synchronizer would be executed under.
As a concrete example using image transport + message filter + callback groups, here are left_sub_ and right_sub_ image subscriptions registered to a synchronizer that should instead be added to