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 callback_group_stereo_
: