Calculating pitch and roll from XYZ accelerometer data collected from a wildlife collar

48 Views Asked by At

I work with wildlife collars (lions, elephants) which also collect XYZ accelerometer data. From this, I can visualize pitch and roll of the animals in the collar manufacturers web application, but they have not made this data available to download. I can only download the raw XYZ accelerometer data. The manufacturer has specified that the accelerometers are on 2G and has max value of 32 000 and minimum of -32 000. but I am not sure what that refers to.

Ideally, I would like to be able to find a formula that allows me to convert the XYZ data to pitch and roll in Excel, if possible. I have looked at some online tutorials and forums (Arduino) but so far have not been able to find anything that works.

One of the formulas I tried is: roll = atan2(y_Buff , z_Buff) * 57.3; pitch = atan2((- x_Buff) , sqrt(y_Buff * y_Buff + z_Buff * z_Buff)) * 57.3; But the pitch and roll data it returns is very different compared to what I can see in the web-based portal.

For example:

X Y Z Roll from formula Pitch from formula Actual roll Actual pitch
1626 11908 9991 40.00013 95.97879 5.97 -0.01