Closed
Description
Feature Request
- Detect QoS for topics in order to subscribe to all topics correctly
- Record QoS of topics in the bag
- Playback bags with recorded QoS
- Option to override the recorded QoS with a different profile on playback (e.g. recorded a BEST_EFFORT, but want to play back as RELIABLE)
Original issue report:
as the title says. When publishing topics with unreliable qos, the bag does not record any data on this topic as it expects a reliable connection - meaning all subscribers are spawned as reliable.
Work tracking
Tracking in-progress to-do list here
QoS storage in metadata
- QoS equality operators Add equality operators for QoS profile rclcpp#1032
- QoS YAML serialization Add QoS to metadata (re-do #330) #335
- QoS field add to metadata Add QoS to metadata (re-do #330) #335
- Query and store qos for a given topic at subscription time Query offered QoS profiles for a topic and store in metadata #333
Testing robustness
- Run tests on all rmw implementations
- Fix small ament bug gmock - Don't pass FALSE value to ament_add_test when SKIP_TEST is not provided ament/ament_cmake#236
- Run the rosbag2_transport tests on all rmw impls Test all RMW implementations for rosbag2_transport #349
Record with correct QoS
- Allow the GenericPublisher and GenericSubscription to receive and use a QoS profile Allow GenericPublisher / GenericSubscription to take a QoS profile (re-do #337) #340
- Utilize queried qos to create subscription (if all offered profiles the same)
- Initial implementation Subscribe to topics using the common offered QoS #343
- disable tests because not working on cyclone Disable adaptive qos subscription for now #348
- More holistic implementation Intelligently subscribe to topics according to their QoS profiles #355
Playback with correct QoS
- Read saved QoS profiles from bag metadata into TopicMetadata Read serialized qos profiles out of the metadata #359
- Expose YAML metadata to the Player Expose BaseReaderInterface's BagMetadata #377
- Provide adaptive QoS logic for publishing Move qos utilities to their own compilation unit #379
- Use adaptive QoS to create publisher for playback Adaptive playback qos based on recorded metadata #364
Explicit profile overrides
- Let user provide override QoS file to CLI for recording WIP: Set default QoS Profile - Record #341
- Let user provide override QoS file to CLI for playback Override QoS Profiles in CLI - Playback #356
- Enable explicit per-topic qos profile override for recording Add QoS Profile override to CLI #347
- Enable explicit per-topic qos profile override for playback QoS Profile Overrides - Player #353
- ros2bag refactoring Refactor utility functions in ros2bag #358