.. _namespace_message_filters: Namespace message_filters ========================= Synchronizes up to 9 messages by their rates with upsampling via zero-order-hold. .. contents:: Contents :local: :backlinks: none Detailed Description -------------------- LatestTime policy synchronizes up to 9 incoming channels by the rates they are received. The callback with all the messages will be triggered whenever the fastest message is received. The slower messages will be repeated at the rate of the fastest message and will be updated whenever a new one is received. This is essentially an upsampling of slower messages using a zero-order hold (no interpolation). USAGE Example usage would be: typedef LatestTime latest_policy; Synchronizer sync_policies(latest_policy(), caminfo_sub, limage_sub, rimage_sub); sync_policies.registerCallback(callback); May also take an instance of a ``rclcpp::Clock::SharedPtr`` from ``rclpp::Node::get_clock()`` to use the node's time source (e.g. sim time) as in: typedef LatestTime latest_policy; Synchronizer sync_policies(latest_policy(node->get_clock()), caminfo_sub, limage_sub, rimage_sub); sync_policies.registerCallback(callback); The callback is then of the form: void callback(const sensor_msgs::CameraInfo::ConstPtr&, const sensor_msgs::Image::ConstPtr&, const sensor_msgs::Image::ConstPtr&); Namespaces ---------- - :ref:`namespace_message_filters__message_traits` - :ref:`namespace_message_filters__sync_policies` Classes ------- - :ref:`exhale_struct_structmessage__filters_1_1Chain_1_1FilterInfo` - :ref:`exhale_struct_structmessage__filters_1_1Chain_1_1NullDeleter` - :ref:`exhale_struct_structmessage__filters_1_1DefaultMessageCreator` - :ref:`exhale_struct_structmessage__filters_1_1message__type` - :ref:`exhale_struct_structmessage__filters_1_1message__type_3_01M_00_01false_01_4` - :ref:`exhale_struct_structmessage__filters_1_1message__type_3_01M_00_01true_01_4` - :ref:`exhale_struct_structmessage__filters_1_1mp__count` - :ref:`exhale_struct_structmessage__filters_1_1mp__count_3_01L_3_01T_8_8_8_01_4_00_01V_01_4` - :ref:`exhale_struct_structmessage__filters_1_1mp__plus` - :ref:`exhale_struct_structmessage__filters_1_1mp__plus_3_01T1_00_01T_8_8_8_01_4` - :ref:`exhale_struct_structmessage__filters_1_1mp__plus_3_4` - :ref:`exhale_struct_structmessage__filters_1_1NullFilter` - :ref:`exhale_struct_structmessage__filters_1_1NullType` - :ref:`exhale_struct_structmessage__filters_1_1ParameterAdapter` - :ref:`exhale_struct_structmessage__filters_1_1ParameterAdapter_3_01const_01M_01_6_01_4` - :ref:`exhale_struct_structmessage__filters_1_1ParameterAdapter_3_01const_01MessageEvent_3_01M_01_4_01_6_01_4` - :ref:`exhale_struct_structmessage__filters_1_1ParameterAdapter_3_01const_01MessageEvent_3_01M_01const_01_4_01_6_01_4` - :ref:`exhale_struct_structmessage__filters_1_1ParameterAdapter_3_01const_01std_1_1shared__ptr_3_01M_01_4_01_6_01_4` - :ref:`exhale_struct_structmessage__filters_1_1ParameterAdapter_3_01const_01std_1_1shared__ptr_3_01M_01const_01_4_01_6_01_4` - :ref:`exhale_struct_structmessage__filters_1_1ParameterAdapter_3_01std_1_1shared__ptr_3_01M_01_4_01_4` - :ref:`exhale_struct_structmessage__filters_1_1ParameterAdapter_3_01std_1_1shared__ptr_3_01M_01const_01_4_01_4` - :ref:`exhale_struct_structmessage__filters_1_1PolicyBase` - :ref:`exhale_class_classmessage__filters_1_1Cache` - :ref:`exhale_class_classmessage__filters_1_1CallbackHelper1` - :ref:`exhale_class_classmessage__filters_1_1CallbackHelper1T` - :ref:`exhale_class_classmessage__filters_1_1CallbackHelper9` - :ref:`exhale_class_classmessage__filters_1_1CallbackHelper9T` - :ref:`exhale_class_classmessage__filters_1_1Chain` - :ref:`exhale_class_classmessage__filters_1_1ChainBase` - :ref:`exhale_class_classmessage__filters_1_1Connection` - :ref:`exhale_class_classmessage__filters_1_1MessageEvent` - :ref:`exhale_class_classmessage__filters_1_1noncopyable` - :ref:`exhale_class_classmessage__filters_1_1PassThrough` - :ref:`exhale_class_classmessage__filters_1_1Signal1` - :ref:`exhale_class_classmessage__filters_1_1Signal9` - :ref:`exhale_class_classmessage__filters_1_1SimpleFilter` - :ref:`exhale_class_classmessage__filters_1_1Subscriber` - :ref:`exhale_class_classmessage__filters_1_1SubscriberBase` - :ref:`exhale_class_classmessage__filters_1_1Synchronizer` - :ref:`exhale_class_classmessage__filters_1_1TimeSequencer` - :ref:`exhale_class_classmessage__filters_1_1TimeSequencer_1_1MessageSort` - :ref:`exhale_class_classmessage__filters_1_1TimeSynchronizer` Typedefs -------- - :ref:`exhale_typedef_namespacemessage__filters_1adfaa2f04caf3f93a28f432a259f49b43` - :ref:`exhale_typedef_namespacemessage__filters_1a71dd0726968b2a60d613a06d26c1c2ef` - :ref:`exhale_typedef_namespacemessage__filters_1a92666bbcdf8e86d53d376417e7f14a32` - :ref:`exhale_typedef_namespacemessage__filters_1ac098e2bb591d882de1e9345073d0f4e9` - :ref:`exhale_typedef_namespacemessage__filters_1ac200f47e35ffd6d2b7f258e7f6399d61` - :ref:`exhale_typedef_namespacemessage__filters_1a866238acc3f59cbb33d12f1e1217146c`