IMU calibration

Hello friends, I wonder if anyone knows a way to calibrate the IMU to provide more accurate data, YAW behaves slope !!!

1 Like

Have you checked vibration and tuned or autotune?

I did a test, I put the Navio + on the floor and leave it still, store data ROLL, PITCH, YAW

behavior ROLL and PITCH is pretty good do not vary, but I YAW not indicate north, changes a lot.

AHRS in the example code, I said this:

// Accel + gyro + mag. 
// Soft and hard iron calibration required for proper function.
imu.getMotion9(&ax, &ay, &az, &gx, &gy, &gz, &mx, &my, &mz);
ahrs.update(ax, ay, az, gx*0.0175, gy*0.0175, gz*0.0175, my, mx, -mz, dt);

but I find information to calibrate,
YAW with this might be better.

picture 1 = ROLL Picture 2= PITCH Picture 3 = YAW

1 Like

The magnetometer needs to be calibrated in order to get stable/correct yaw values. Here is a good resource for calibrating the magnetometer.

Basically you rotate the aircraft to achieve as many different orientations as possible while recording IMU data (make sure you do it away from metal objects). You then apply an ellipsoid fit to the data to determine the hard and soft iron calibration coefficients. Here are the before and after plots from my magnetometer calibration.

1 Like

I assumed this was already done. If this hasn’t been completed Than this would be a good place to start for sure :smile:

I found a little more information, and to that of @larssoltmann
I do a form of calibration, but someone must do, I hope to contribute

1 Like

A post was merged into an existing topic: MPU9250 can’t get heading