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

When using manual data and non 'odom' world reference frame name, race condition results in incorrect transform. #820

Open
tgreier opened this issue Jun 22, 2023 · 2 comments

Comments

@tgreier
Copy link
Contributor

tgreier commented Jun 22, 2023

datumCallback(request, response);

In our configuration, we use a manual datum and our world reference frame name is 'map' (not the default world_frame_id of 'odom'.
This results in an incorrect transform (cartesian -> world) being generated by navsat_transform.

This is a bit of a race condition because if our odometry callback is invoked before the transformCallback timer callback, then the world_frame_id is properly set, and the correct transform will be published.

@ayrton04
Copy link
Collaborator

Would it not make sense to have logic to force the transform computation to wait until the odometry callback has fired?

@tgreier
Copy link
Contributor Author

tgreier commented Jun 26, 2023

@ayrton04 Yes, I thought about that. But that change seemed to be a fairly major alteration to how the manual datum is handled. I am happy to take a shot at changing the logic if you think that is the better solution.
I updated Pull Request #821 to wait for odom message before setting manual datum. Could you please review?

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

No branches or pull requests

2 participants