-
Notifications
You must be signed in to change notification settings - Fork 904
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
Fix odometry msgs with child frame other than baseLink #728
Fix odometry msgs with child frame other than baseLink #728
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Moving the conversation from #726 over here. First, thank you for the PR and the conversation in the original ticket. I get what you're attempting to do here (and it's clever), but I can't help feeling that we're abusing the frame IDs in messages a bit. It also changes the filter behaviour: if you enable differential mode on a Moreover, anyone who has their transform tree set up such that the Having said that, I like having this as a solution to pose data being measured from a sensor that is onboard the vehicle and reported in a frame that does not align with the robot's world frame. I wonder if it makes sense to gate the behaviour behind a parameter that is only relevant for Just for my own curiosity, what happens if you don't use your code change, but change the |
I think adding a parameter would be a reasonable move given what you describe above on differential mode. |
Sorry for the delay. I agree with you both, There might be use cases that break with this patch; thus, a gating parameter is a good approach. Since the PR solves a similar problem with @ayrton04 I changed the |
Never apologise to me for taking a long time to respond! I am notorious for it here. I am really happy about this PR, as it enables the package to support a use case that it didn't support previously. I like In any case, thank you for the PR! |
Zero rush, just checking in on this. Will you be willing/able to add the parameter in question? |
Yes, sure. I'm happy to finish it as we agreed. I just have an urgent paper deadline ahead for next week monday :) |
Aiming at writing easy-to-read code for better maintainability, I could set the child_frame parameter in the pose-callback functions, i. e.
The last point yields that the newly introduced parameter also changes the child frame without enabling Implementing the new behavior only for What do you think about this? |
I implemented the proposal and compared the behavior with the parameter enabled and disabled.
I found a bug in my previous implementation: it always interpreted the pose from Now, the parameter |
FYI: I posted a related question on stackoverflow regarding the interpretation of the child_frame. No one seems to know the answer. So I took the freedom to link this pull request there since it basically creates the answer "You're free to choose." :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR! Just a couple things I want to iron out.
The debian based pipeline failed with the following error message:
This seems to be no bug related to this PR. Can you look into it or maybe just restart this particular pipeline? |
We don't have the ability to restart jobs on the ROS build farm. It would likely just get kicked off again in a bit, but we can force its hand by just closing and re-opening your PR. |
OK, merging this. I don't suppose you have a ROS 2 workspace? It would be good to get this change in there. I can also manually pull the change over. |
Thank you for the PR! |
Unfortunately, I don't yet. Thanks a lot to you as well. We're happy to use the software in our cars :) |
I would be happy to port this over to ros2 branches as well. |
Any news on a ros2 port? |
Actually, I do have a compiling version but I got side-tracked by other projects recently. I will test my modifications when I have time and keep you posted. |
…d to ros2 rolling
This PR addresses #726
It fixes the bug that ignores the child frame of odometry messages. This is relevant for processing odometry messages in differential mode (since there, it computes the differential in the child frame, hence it needs to know its name) and odometry poses in relative mode.