Problem reading accurate motorbike tilt angle

Hello,

I try to reading motorbike tilt angle and I experiment a problem I also have with MPU-6050 in fact.

These chip seem to work well on desktop but using it on vehicle seem to be a challenge.

As ICM-20948 seems to be usable on drone, I though it was dedicated to give accurate tilt angle but it seems to be more complicated than it appears.

First, I tested it on my desktop, applying the same movements to my Samsung S10+ (embedding a LSM6DSO) and the ICM-20948 breakout.

The result is this one

https://i.imgur.com/JcEMZF8.png

as you can see, the waveforms perfectly match.

Here, I did the same mounting both devices on my motorbike.

https://i.imgur.com/31Up0us.png

Between 547 and 807, I really was in stable turn, with the same tilt angle as given by my S10+. But the ICM-20948 was seriously drifting to 0 and the offset accumulated at 807 seems to appear at 911.

Between 1639 and 1925, I was accelerating as the turn decreases. S10+ gives an understandable value from my S10, but the ICM-20948 dramatically drift to 0, probably while the z accel increases.

I guess the problem could come from the pitch drift correction made with the g acceleration. And as on motorbike, as well as on drone, a turn cause the g acceleration to increase, maybe this algorithm causes the pitch reading to be false.

I hope I was clear enough, do you have an idea about the problem and how to solve it?

Is there a way to maybe deactivate the automatic correction made by the DMP?


Using Sparkfun ICM 20948 v 1.2.7 library and Example7_DMP_Quat6_EulerAngles.ino sketch running on ESP32 FireBeetle, no filter enable.

It could be a few different things; this is quite a long read, but our best suggestion is to take some time and go read through this thread https://github.com/sparkfun/SparkFun_IC … /issues/40 and see if any of the suggestions made might help you (using ex9 instead, calibrating out the ‘motion’ and ‘no motion’ modes mentioned from the chip manufacturer, etc.

Best of luck!