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

Allow updating already sent static transforms #705

Closed
wants to merge 1 commit into from

Conversation

Timple
Copy link

@Timple Timple commented Aug 23, 2024

Fixes #704

@clalancette
Copy link
Contributor

So the big reason we put #634 in was because tf2_ros and tf2_ros_py had different semantics here. #634 was an attempt to make them the same.

I don't have time right now to take a look at this, but whatever we do here we need to make sure that both C++ and Python have the same behavior.

@Timple
Copy link
Author

Timple commented Aug 23, 2024

Yes, this is the same behavior. In c++ the overwrite happens here:

@clalancette
Copy link
Contributor

I will also make the argument that updating a static transform is....odd. If it can change, why is it a static transform?

@Timple
Copy link
Author

Timple commented Aug 23, 2024

Well, it used to work and it works in c++ 🙂

But imagine a tool connected to an arm. The tool can be at the tip of the arm or at the toolwall. This rarely changes and it's convenient for late joiners to know the state.

@sloretz
Copy link
Contributor

sloretz commented Sep 6, 2024

Thank you for the PR! This one got discussed in the triage meeting today 🧇 . The response was the C++ publisher should not allow changes to static transforms either. Of course this can be worked around by deleting and recreating the publisher, but it makes the intent clear that static transforms are expected to be immutable.

I'll close this PR for now, and update #704 to make the C++ API forbid changing the transforms too.

@sloretz sloretz closed this Sep 6, 2024
@scott-robotics
Copy link

Changing static transforms is useful. Consider an online extrinsic calibration which can update static transforms every so often. These are not time-sensitive transforms, we just need the most recent, but they need to be updated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[tf2_ros] Static transforms cannot be overwritten
4 participants