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

Publish flange->tool0 on tf_static #20

Open
gavanderhoorn opened this issue May 31, 2023 · 1 comment
Open

Publish flange->tool0 on tf_static #20

gavanderhoorn opened this issue May 31, 2023 · 1 comment
Assignees
Labels
enhancement New feature or request help wanted todo Not an issue, just a TODO
Milestone

Comments

@gavanderhoorn
Copy link
Collaborator

Low-priority, but technically, static transforms (ie: those that do not change over time) should be published on the /tf_static topic.

The QoS of that topic is also supposed to be different, mimicking a ROS 1 'latched' topic (ie: late joiners always receive the last published msg(s), even if they were published in the past). I believe that would be KEEP_ALL and TRANSIENT_LOCAL (but we'd have to check).

In regular ROS 2, this is all handled by the TF BroadCaster class, but we don't have that in RCLC.

To address this issue, we'd need to add an additional publisher, on topic /tf_static, with the correct QoS, and use it to publish flange->tool0 on that publisher alone -- once. (Micro-XRCE-)DDS will then take care of 'republishing' it for us if/when nodes require it.

The main benefit is reduced network traffic and less msg callbacks on the receiving side (as static transforms are only published once).

@gavanderhoorn gavanderhoorn added enhancement New feature or request help wanted todo Not an issue, just a TODO labels May 31, 2023
@gavanderhoorn gavanderhoorn added this to the untargeted milestone May 31, 2023
@gavanderhoorn
Copy link
Collaborator Author

Might be nice to create a sort-of RCLC implementation of the StaticTransformBroadcaster (instead of just adding more publishers and custom QoS settings).

See tf2_ros for the rclcpp implementation. It isn't really a lot of code (in C++ that is).

Refer to include/tf2_ros/qos.hpp for the custom QoS it uses (transient local mostly).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted todo Not an issue, just a TODO
Projects
None yet
Development

No branches or pull requests

2 participants