-
Notifications
You must be signed in to change notification settings - Fork 112
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
Frame orientations got wrong in 2.2.1 #93
Comments
Hi @peci1 @kubelvla, according to the documentation (and it makes sense) the coordinate system specification (ENU, NED, or NWU) only applies to orientation and linear velocity messages (position messages are in ECEF coordinate frame). For your issue, which message type is affected? Are you sure that the IMU frame is correctly oriented in your /tf (it could have been set wrongly to compensate for the wrong conversion in the ROS messages)? Which is the |
Thanks for the explanation, Francis. I see that you wanted to correct the behavior of the driver according to the specs, but can't there be much more people affected? I assume everybody needed to compensate for the previous "wrong" behavior, and now that it is corrected, all the compensations will give wrong results. Or am I missing a point? What about providing a parameter that would switch between the old and new behavior? This way people could still use this driver without messing with their own code. Otherwise, here is some debugging info from our robot: With 2.2.0, the local_frame doesn't matter. With 2.0.0, we use NWU (I didn't have time to test if changing it with this version has any effect, but I assume it does). I'm not sure about the physical orientation of the IMU, I know they maybe put it there reversed when upgrading the robot. But that should be compensated in the TF tree. The following was run with the robot standing still on flat ground:
|
Well, the thing is that the default leads to no compensation and I expect that most people didn't bother with this parameter. For you problem, the /tf states that the imu is upside down in the robot, with the cable pointing toward the back. From the linear acceleration, it's clearly not the case (it should be pointing upwards since it measures the difference wrt free fall). |
Ok, we checked the real axes on robot by tilting it and corrected our compensation code for the new axes. However, we do not fully understand the rationale of publishing data in two different frames. Then you get into trouble like the messages on topic |
Hi @fcolas , nice to meet you again at least virtually =) @kubelvla might also want to cheer in :)
What's the rationale of commit 651ee in version 2.2.1?
It broke our poor old Nifti robot, who now thinks that pitch is roll and vice versa... Should we change some configuration? I tried all values of
frame_local
, but it seems to no longer have any effect.With version 2.1.0 and 2.2.0, everything works as it used to...
Thanks for any help ;)
Martin Pecka from CTU in Prague
The text was updated successfully, but these errors were encountered: