FKIE Message Filters
Improved filters for processing ROS messages
FKIE Message Filters Documentation

The fkie_message_filters library is a replacement for the ROS message_filters package. It is written in modern C++ and more type-safe than the original version.

The data flow is modeled with a pipeline metaphor, where data always flows from a source to a sink. A filter is both source and sink for data, possibly with different data types. For integration with ROS, the library provides a number of subscribers and publishers which act as sources or sinks of the data flow.

Generally, the pipeline processing is executed by nested calls to receive and send functions. The library is thread-safe and exception-safe, but you are expected to handle your own exceptions in your callbacks. Exceptions which propagate through the library will abort processing for the message that caused the exception, and if not caught eventually by a preceding filter in the pipeline, terminate the program.

You can implement your own filter logic with fkie_message_filters::UserFilter and fkie_message_filters::SimpleUserFilter.