-
Notifications
You must be signed in to change notification settings - Fork 114
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
Understanding ORIN/ORIO/MTRX for parsing ACCL/GYRO #165
Comments
The original GPMF camera, HERO5, used ZXY without reporting any metadata on the orientation. We have since attempted to preserve this. However, hardware engineering kept moving the IMU, so the actual orientation changes between camera models. So a camera with ORIN and ORIO has recorded the stored orientation, but also noting the preferred output orientation (to match HERO5.) If you are building your own parser, use ORIN to know the way the raw data is stored. If you are using gpmf-parser to extract developed output, ORIO is the way it is presented. So if you use gpmf-parser as is, all GoPro cameras will output ZXY, no matter the orientation of the IMU in the camera. MTRX can be ignored as redundant, it reflects the same orientation change as ORIN to ORIO. It was never used as intended to store orientation calibration. In later cameras, as the CPU performance improved, all the orientation corrections and calibrations are applied to the ACCL and GRYO data, so these cameras only have a ORIN for completeness. |
Thank you. That is really useful! Just to check one last detail - you say later cameras will correct ACCL orientation... but they still have an ORIN? So does this mean that the ORIN needs to be ignored, as the translation has already been applied? Not quite sure I completely.follow that last bit. Thank you for the clarifications! |
They will have ORIN for completeness, so the orientation is documented. It doesn't need to be ignored, but it is passive. Only when you have a different ORIO does the orientation get processed. |
Hiya - I'm just trying to understand parsing ACCL and GYRO in a way that is compatible across device versions.
I guess I have two questions:
Thank you!
The text was updated successfully, but these errors were encountered: