kriswiner/MPU9250

Gyro drift related to sensor movement

Opened this issue · 7 comments

Hello Kris,

I am playing with MPU9250 and your library (BTW thanks much for your great effort).
Generally it works well however I experience a weird thing.. I will speak about raw gyro/accel data only in the next: they seems to be correct, startup calibration works e.t.c. so when I am turning board on various edges I see 1g on one axis and 0g on another two, gyros seems to report correct angular speed in degrees/s on all 3 axes..
However I noticed strange thing in raw gyro data:
When I am moving the sensor (in straight move) e.g. along Y axis, I see a drift in X axis gyro output (and similar with another two axes). The drift is positive when moving one direction vs. negative for opposite direction. The drift looks not be related to acceleration (it seems to be rather related to velocity (?) or related change of acceleration (?) )
So let's say when I am moving whole board to left (along sensor's Y axis) in straight direction by cca 0.2m/s, I see up to 10deg/s drift of X axis gyro..
What could be a reason? A defective MPU9250? Haven't you seen that before?

Thanks much
Richard

I have one unit only at the moment (purchased locally however origin is in China for sure). This "crosstalk" between accelerometer and gyro seems to be fairly high and I think it draws the device unusable for any a bit more precision task. I will try to obtain another one and check..
Thank you for the answer.

I see much less gyro drift than1dps per minute (device running in the desk, occasional moves).. Of course now I am not speaking about effect I described above.
I am trying to make an attitude indicator for aircraft. Have used Madgwick filter and it seems it performs well when trying to move/rotate the device in hands (magnetometer is calibrated by your routine (lazy 8-ths)) and results are stored into serial EEPROM and read/used on each startup, gyros/accelerometers are calibrated on each startup ).
However when I tested the device in car, it reacts on car's turns (turn pure on Z axis) besides correct heading change also as a roll/tilt(X axis) and on acceleration/braking as a change of pitch (Y axis)
When I tested the device in aircraft, it almost doesn't indicate tilt(roll) in proper turn (turn with acceleration forces towards device bottom)..
On ground in hands the reaction is correct on first view (with the exception I am getting roll indicated when moving the device left/right without tilt)..
OK, I suppose the filter is not tuned for the purpose (slow changes) and probably more advanced fusion algorithm should be used here however I supposed it will work better. I think the reason is could be that "gyro drift with move" effect I observe?

I don't think the problem is based on magnetometer disturbance. It will cause just incorrect heading indication. I tried also version of filter without magnetometer input and I see about the same..

Plus if used in an aircraft or any vehicle where
inertial forces approach or exceed gravity, all
IMYU-based orientation estimation is fubar.

Please, could you explain above? What is IMYU?
For sure MEMS gyro/accelometer based IMUs are used to cotrol UAV-s, quadrocopters, RC helicopters, and those sensors (probably higher grade ones) are used in some commercial aircraft attitude indicators where probably extended Kalman filter with fusion of GPS and/or airspeed data (instead of magnetometer) is used.