gopro/gpmf-parser

Processing and synthesizing GRAV entries

time4tea opened this issue · 1 comments

In some cameras there is a GRAV type, but I cannot find any documentation on it, and the stream doesn't seem to indicate how it should be interpreted.

For ACCL/GYRO they seem (unless modified in later revisions) to be stored in z,x,y order - but this doesn't appear to be the same for GRAV.

According to the IMU orientation diagram, looks like it is x, -z, -y ? Is this right? Is this ordering constant across all models?

In terms of calculating GRAV - is this a sensor fusion of the ACCL/GYRO readings? Are you able to share the mechanism? This isn't really my area of expertise, so I don't know if I'm really asking the right questions. I found this: https://github.com/xioTechnologies/Fusion - do you think it might give similar results?

Thanks for any suggestions!

James

The order is consistent whenever it is written across camera models. Your finding of x, -z, -y is correct. I'm not able to share the fusion code, it is a total mystery to me also. I expect the GRAVity vector is likely slightly better than doing your own fusion with ACCL and GYRO, as both ACCL and GYRO streams are down sampled to reduce the size of the payload. Same reason CORI is better than using GRYO to compute your own quaternions for camera orientation.