Description
Description
rosbag2 currently has the ability to automatically detect the QoS of publishers and set itself up to successfully receive data from them. It looks like this went in via the following issue: #125 . Also, it looks like the core code that implements this is here and here.
This is a great capability that has applicability outside of rosbag2. At least the following two other use cases have come up:
- When using the ros1_bridge, it would be nice if the QoS could be auto-detected across the bridge.
- When using RViz2, it would be nice if the user didn't have to specify the QoS settings when subscribing to topics.
There may be other uses.
The idea here would be to take that Rosbag2QoS
class (and any supporting infrastructure), rename it, and move it into a more central location (probably rclcpp
, though we may want to consider putting it in the rcl
layer so other client libraries have access to it).
Related Issues
Completion Criteria
- Move the
Rosbag2QoS
class to a central location - Move the tests (as appropriate) for
Rosbag2QoS
to a central location - Refactor rosbag2 to use the new class
Testing Notes / Suggestions
Unit tests already exist for this, so making sure those unit tests continue to run. Also making sure that rosbag2 continues to operate as expected.