Closed authaldo closed 3 months ago
https://github.com/ros2/rosbag2/pull/1648 may be related.
Thanks for bringing this up, a conversion to the python equivalent would indeed be enough to fix this issue.
PR is merged, feel free to reopen the issue if the feature is not complete or you miss something
Description
In ROS2 iron and lower the TopicMetadata structure offered the available QoS profiles as string, thus, allowing the user to check e.g. for certain settings. In my case I am mostly interested in identifying topics with 'transient local' durability as these have to be treated differently in the post processing of rosbags.
With Jazzy the TopicMetadata structure now returns the python binded equivalent of
std::vector<rclcpp::QoS>
(introduced in abdc408). An overview of the python QoS structure can be found here while the pybind implementation is located here. As far as I can tell this binding only offers setters to create QoS structures with certain settings. Hence, the request to extend the binding with the corresponding getters in order to allow users a better interaction with the QoS structure.Alternate ways I considered: TopicMetadata offers a comparison method but after digging into the implementation it turns out that this comparison considers everything except the offered QoS profiles.
Related Issues
No related issues (as far as I can tell).
Completion Criteria
Addition of some getter functions for accessing the QoS settings. As a concrete example I would like to be able to check whether the durability setting of the offered QoS profile is set to 'transient local'. However, accessing the remaining settings is of course desired as well.
Implementation Notes / Suggestions
The rclpy equivalent of the QoS structure may be helpful as reference.
Testing Notes / Suggestions