I have been using an MPU6050 (3 axis gyro, 3 axis accel, built in motion filter called DMP) on a car axle to measure axle angle when driving. On a long banked corner (2 degrees) the sensor reads 0 degrees while moving (~40km/hr), but when stopped it reads correctly (2 degrees). The physical axle angle is the same though in both scenarios.
I believe the lateral force from going through the corner is affecting the sensors interpretation of which way gravity is, and is adjusting the roll angles accordingly. See image;
Can anyone comment on how this might be solved?
- Using a sensor with a magnetometer?
- Using a sensor with a different filter?
- Is this solveable at all or just an inherent factor of MEMS sensors?
Time is a critical factor at the moment in my project.
Thanks in advance for your input
Edit 1: I've come across this thread where the OP seemed to have the same issue with MPU6050 and went to the BNO055 with some luck but had calibration issues. Then said the problem was solved with MPU9250 and RTIMULib (open source filter) in the last post. I wonder if adding in a magnetometer helped as it gives a fixed 3D reference point which is not affected by acceleration forces. Or perhaps he tweaked the algorithms in RTIMULib to get his desired output. I have yet to delve into the motion-fusion/filter algorithms. To date I have just been letting the MPU6050 do that internally in the DMP. Any thoughts on these potential solutions?