I'm curious, speaking non technical, is there a way to add easing to the motions. Ease out as a motion starts and then ease in as the motion stops. Or is it just a smoothness value. Sort of natural head movement. If there is no easing, could there be.
What, like a softening? So damp all the movement?
Mathemetically sure, you could just implement some "maximum" movement adjustment in the code so that the tracker never reports more than X amount of movement in a given period - but you'd just be introducing lag artificially, which is not a good thing at all. Unless I've misunderstood you?
Have you tried the exponential axis option? I assume that doesn't work for you?
I would guess the result would be something like this:
http://www.raspberrypi.org/living-with-lag/
your vision on the screen wouldn't do what your brain was expecting causing a lot of confusion.
float xDriftComp =-0.75;
float yDriftComp =-0.01;
float zDriftComp = 0.01;
X/Y/Z 99.05 26.89 -16.35 -0.04 0.01 -0.02
X/Y/Z 98.53 28.28 -15.19 -0.04 0.01 -0.02
X/Y/Z 99.28 27.13 -13.82 -0.04 0.01 -0.02
X/Y/Z 97.50 28.52 -12.66 -0.04 0.01 -0.02
X/Y/Z 96.98 28.74 -10.12 -0.04 0.01 -0.02
Code:X/Y/Z 99.05 26.89 -16.35 -0.04 0.01 -0.02 X/Y/Z 98.53 28.28 -15.19 -0.04 0.01 -0.02 X/Y/Z 99.28 27.13 -13.82 -0.04 0.01 -0.02 X/Y/Z 97.50 28.52 -12.66 -0.04 0.01 -0.02 X/Y/Z 96.98 28.74 -10.12 -0.04 0.01 -0.02
Should all the numbers trend over time toward zero, and how close is 'good enough'?
Crikey, not bad for about a tenner!With extra hardware (magnetometer) we could get closer to zero but those drift numbers are very goodAnything in the hundreths is excellent.
The yaw range is -32767 to +32767 so having a yaw drift of 0.04 per second equates to less than 1 degree per hour
Rob
With extra hardware (magnetometer) we could get closer to zero but those drift numbers are very goodAnything in the hundreths is excellent.
The yaw range is -32767 to +32767 so having a yaw drift of 0.04 per second equates to less than 1 degree per hour
Rob
So now if I plug the device in and after letting the device sit motionless for about 30 mins, these are the kind of numbers being spat out of the serial monitor:Code:X/Y/Z 99.05 26.89 -16.35 -0.04 0.01 -0.02 X/Y/Z 98.53 28.28 -15.19 -0.04 0.01 -0.02 X/Y/Z 99.28 27.13 -13.82 -0.04 0.01 -0.02 X/Y/Z 97.50 28.52 -12.66 -0.04 0.01 -0.02 X/Y/Z 96.98 28.74 -10.12 -0.04 0.01 -0.02
Should all the numbers trend over time toward zero, and how close is 'good enough'?
With extra hardware (magnetometer) we could get closer to zero but those drift numbers are very goodAnything in the hundreths is excellent.
The yaw range is -32767 to +32767 so having a yaw drift of 0.04 per second equates to less than 1 degree per hour
Rob
Be very happy with your MPU Rod after 30 minutes of the same test my ones yaw drift reads between 0.06 and 0.07
I would agree with Pocketmoon and Brumster that the yaw drift has been sorted to a good enough level.
The question now should be why does it take so long to settle the MPU down?
Is it due the the chip warming up or the fact the current library is messing up important values every reset?
I keep forgetting that these IMUs actually contain mechanical vibrating elements - like any mechanism, nothing's 'perfect' I guess. I think they might possibly benefit from a few hours use and a bit of shaking up to bed them in a bit before proper calibration too. Could be me just being bonkers though!
Currently experimenting with a larger buffersize and smaller deadzones for the initial one-time calibration, and and extra decimal place for the X/Y/Z Driftcomp adjustment.
I would agree with Pocketmoon and Brumster that the yaw drift has been sorted to a good enough level.
The question now should be why does it take so long to settle the MPU down?
Is it due the the chip warming up or the fact the current library is messing up important values every reset?
Just did the test again and got a yaw drift of 0.16![]()
Just did the test again and got a yaw drift of 0.16![]()
That's still goodJust not epic.