Skip to content

Overriding QoS Profiles Doesn't Work #802

@Shiyu-Liu

Description

@Shiyu-Liu

Description

rosbag2 recording provides the possibility to override the qos profiles, in order to avoid the compatibility issue when recording the messages. However, this overriding feature is not working as expected.

Expected Behavior

The ros2 bag record command should work with non default qos profile by passing additional arguments on that.

Actual Behavior

Even with the well defined qos overriding profile, the ros2 bag record still get the warning on the different qos profiles and no message is recorded.

To Reproduce

  1. Publish msgs with best effort reliability on the topic /talker:
    ros2 topic pub -r 0.1 --qos-reliability best_effort /talker std_msgs/String "data: Hello World"
  2. Define the qos overriding profile with reliability as best effort in a YAML file (reliability_override.yaml):
    /talker:
    [tab]reliability: best_effort
    [tab]history: keep_all
  3. Record a ros2bag: ros2 bag record -o my_bag /talker --qos-profile-overrides-path reliability_override.yaml
  4. ros2bag warning:
    A new publisher for subscribed topic /talker was found offering RMW_QOS_POLICY_RELIABILITY_BEST_EFFORT, but rosbag already subscribed requesting RMW_QOS_POLICY_RELIABILITY_RELIABLE. Messages from this new publisher will not be recorded.

System (please complete the following information)

  • OS: Ubuntu 20.04
  • ROS 2 Distro: galactic
  • Version: (Installed by default with ros)

Additional context

The procedure is well followed and is referred to Overriding QoS Policies For Recording And Playback

Thanks for anyone who can help me solve this problem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions