Hello,
I'm working on a project to read motorbike roll angle.
I'm evaluating the solution using a fireBeetle ESP32 board connected to an ICM-20948 breakout provided by SparkFun.
I read the data using the Sparkfun's ICM 20948 Arduino Library.
Here is a first roll reading I made with a Galaxy S10+ and the HyperIMU application and the ICM-20948 applying roll angle on table. As you can see in that example, both reading perfectly match.
Now, I execute the same software but mounting both the Galaxy S10+ and the ICM20948 on my motorbike. And now, things are completely different.
As you may know, a motorbike tilts in turn meaning that ICM-20948 body is only viewing a Z axis force increasing as the tight turn, or high speed.
I saw that Z force is used to correct gyro drift and I wonder if my problem doesn't come from that feature but that surprise me a bit to see so much reading error as the ICM-20948 is noticed to be used on drone and a drone behaves exactly like a motorbike in turns.
What is your opinion on that problem, and do you have any idea on a fix?
Best regards,
Alain
There could be multiple reasons for the issue at a high level.
1. Vibration rectification Error, how did you mount the sensor to the bike, see if the problem subsides if you can dampen vibration from the bike. The sensor inside the phone is highly dampened to minimize shocks induced when phones are dropped on the floor. You could also mimic the motion with the engine turn off to see if the root cause is VRE
2. How are you calculating the roll angle? best way to debug issues like this is by going to the source, log the raw data and see if you notice any anomaly. It might be you are dropping data from the sensors or the sensor is clipping, what is the Full scale range for the gyro, make sure you configure it to 2000dps
3. The term you are looking for is Gyro G-Sensitivity, the affect on acceleration perceived by the sensor. look at Ardupilot source code to get the correction equation
4. Percussion: Ideally the sensors should be mounted as close to the Center Of Gravity of the bike, if it is not mounted then they will be moment arm error introduced on the gyro due to centripetal force of the motion. Mimic the motion on the bike this time with a slower rotation to see if the error decreases
Hello OP,
Did you fix the issue or find the root cause? I have a similar problem with my setup (ICM-42605 instead of ICM-20948) and I would appreciate if you shared your solution or findings.
Regards,
Xavier
Hi xhache,
Please consider the solutions provided by Vamshi as well.