Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve QoS settings in RaiBaseNode #336

Open
knicked opened this issue Dec 6, 2024 · 2 comments
Open

Improve QoS settings in RaiBaseNode #336

knicked opened this issue Dec 6, 2024 · 2 comments
Labels
enhancement New feature or request good first issue Good for newcomers ros issue related to ros2

Comments

@knicked
Copy link
Contributor

knicked commented Dec 6, 2024

Is your feature request related to a problem? Please describe.
The current implementation always sets the ReliabilityPolicy to BEST_EFFORT for all subscribers, effectively preventing most heavier messages (like images) from being received. This makes the tools like GetCameraImage, GetObjectPositionsTool fail most of the time when the data is sent through a network.

Describe the solution you'd like
ROS2 jazzy exposes a new ReliabilityPolicy setting: BEST_AVAILABLE, which will select the highest level of service available before creating a subscription or a publisher. We can use it when initializing the RaiBaseNode.

Describe alternatives you've considered

  1. Leave the setting as it is, and let users change it directly in the object like so (this is already possible):
node = RaiBaseNode(node_name="rai_node")
node.qos_profile.reliability = rclpy.qos.ReliabilityPolicy.RELIABLE
  1. Make it possible to choose the setting using the constructor's parameters and keep the current settings as a default value, so the node could be initialized like this:
node = RaiBaseNode(node_name="rai_node", qos_profile=QoSProfile(...))

Additional context
ROS2 humble and below don't have the BEST_AVAILABLE option exposed, so using it would break compatibility with older versions of rclpy.

@knicked knicked added the enhancement New feature or request label Dec 6, 2024
@maciejmajek
Copy link
Member

Can you please do a performance comparison between different QOS?

@boczekbartek boczekbartek added ros issue related to ros2 good first issue Good for newcomers labels Dec 11, 2024
@adamdbrw
Copy link
Member

adamdbrw commented Dec 12, 2024

You can do policy matching as it is done in ros2 bag (record) feature and other ros2 command line tools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers ros issue related to ros2
Projects
None yet
Development

No branches or pull requests

4 participants