Originally Posted by Daemon
What happens if you move it in two axes at once, and return on a different path?
Let's say the whole range of movement is represented by X-Y
coordinates where front and center is 0,0 and lower right is 10,-10
then try this path. Straight from 0,0 to 10,-10, then to 10,0 and back to 0,0.
Try that route a couple times in a row. I know it sounds a little
odd, but it's not uncommon to move/rotate head diagonally while flying.
This is what happens if I look up and right simultaneously: pan will drift 5-20dgr, depending on how much I look up (see attached graph). Pitch has no problem whatsoever, as expected. The amount of drift is directly related to the pitch angle, the higher the pitch angle, the less sensitive the gyro is to the panning motion. If you look straight up or down, you can turn around all you want without the gyro reading anything, since the gyro axis is now reading roll and not yaw.
So as it is at the moment, the geometric drift becomes quite significant for pitch angles > +/-20 dgrs. Below that it's not too bad compared to other sources of drift.
There is one solution to this problem though, which is to simply multiply gyro sensitivity with a value that is a function of pitch (and roll) angle. This should compensate the drift for pitch angles upto 60-70 dgr ish. Above that there is not much that can be done apart from adding another gyro...
I will try to implement the geometric drift compensation (hey I need to trademark that term: GDC®
) when it gets warmer so I can think straight...