Open msmcconnell opened 4 years ago
I believe @JWhitleyWork originally wrote that code, so he might be able to elaborate on it.
Unfortunately, I did not write the code, I'm just a lowly maintainer. I'll look into this a bit further, though, and see if I can figure out what's going on.
I have noticed that the orientation in the sensor_msgs/Imu output is being negated and the roll/pitch values are not being used to match the INSPVA log definition.
In the above code snippet from novatel_gps.cpp you can see that the pitch and azimuth values are negated. Additionally, in the tf library roll corresponds to rotation around the x axis while pitch corresponds to rotation around the y axis. However in the INSPVA doc you can see that the roll is actually coming from the vehicle frame Y-axis and the pitch is coming from the vehicle frame X-axis.
It seems like this code might be trying to make the imu match the ROS convention of X being forward and Y being to the right, but I'm not sure how the -Z value is coming into play. Could someone elaborate on the motivation here?