kriswiner / MPU9250

Arduino sketches for MPU9250 9DoF with AHRS sensor fusion
1.03k stars 471 forks source link

MPU9250 Pitch Roll 'Crosstalk' #297

Open craigcst opened 6 years ago

craigcst commented 6 years ago

When reading the IMU angle outputs the roll and pitch values are not independent of each other, but they are also not the exact same. Whereas the pitch value IS independent. Any ideas why this 'cross talk' between pitch and roll may be occurring?

Im Using a MEGA2650 with a MPU9250 on SPI.

Thanks

craigcst commented 6 years ago

** YAW value is independant

kriswiner commented 6 years ago

Did you calibrate your MPU9250? How do you know?

Are you using the proper NED order in the Madgwick/Mahony fusion filter?

Are you running the fusion filter at high enough rate?

On Fri, Jul 13, 2018 at 8:48 AM, craigcst notifications@github.com wrote:

** YAW value is independant

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/kriswiner/MPU9250/issues/297#issuecomment-404873302, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1qkcDV9kSAT3v_muLaaiLgFhk13cnks5uGMFagaJpZM4VPHA0 .

bampi2k commented 5 years ago

Hello @kriswiner , I seem to be fighting the same problem. (I figured that I might be giving the parameters to the quaternion update wrong but just cant get them in the right order/sign) Using:

  1. the latest library from this thread.
  2. STM32 'BluePill' from for the processing
  3. MPU-92/65 breakout board with the MPU9250 on it.

The way the breakout board is mounted, (positive X in pointing to the forward of the device); The sensor is mounted with components facing up.

My deduction of NED for the sensor was: Acc = +X(North), -Y(East), -Z(Down) Gyro = +X, -Y, -Z Mag = +Y, - X, +Z

5f23c912-68af-4215-a89e-d98d381a60fd

And I am getting the following symptoms:

  1. There seems to be a coupling between 2axis... roll-> Yaw and Pitch -> Yaw
  2. Value updates are slow and they settle very slowly.

And yes... I have tried a lot of the NED combinations. Nothing seems tp help.

Could you re-direct me to some resources which tell how to determine the correct input order to the IMU to Madgwick?

kriswiner commented 5 years ago

Orientation is correct.

Could be two things:

1) poor calibration

2) insufficient fusion rate

I suspect both, but the blue pill is slow like an AVR MCU.

If you run with the accel/gyro sample rates at 200 Hz and mag rate at 100 Hz fou will need a fusion rate (dependent only on the MCU processor speed) of > 1 kHz and preferably >> 1 kHz to get low latency and high accuracy.

What is the fusion rate you are seeing?

Maybe try one of these https://www.tindie.com/products/TleraCorp/ladybug-stm32l432-development-board/ ?

On Sun, Dec 30, 2018 at 8:01 PM bampi2k notifications@github.com wrote:

Hello @kriswiner https://github.com/kriswiner , I seem to be fighting the same problem. (I figured that I might be giving the parameters to the quaternion update wrong but just cant get them in the right order/sign) Using:

  1. the latest library from this thread.
  2. STM32 'BluePill' from for the processing
  3. MPU-92/65 breakout board with the MPU9250 on it.

The way the breakout board is mounted, (positive X in pointing to the forward of the device); The sensor is mounted with components facing up.

My deduction of NED for the sensor was: Acc = +X(North), -Y(East), -Z(Down) Gyro = +X, -Y, -Z Mag = +Y, - X, +Z

[image: 5f23c912-68af-4215-a89e-d98d381a60fd] https://user-images.githubusercontent.com/14966369/50554283-dc9b9400-0cdd-11e9-86dc-9312e4fb7053.jpg

And I am getting the following symptoms:

  1. There seems to be a coupling between 2axis... roll-> Yaw and Pitch -> Yaw
  2. Value updates are slow and they settle very slowly.

And yes... I have tried a lot of the NED combinations. Nothing seems tp help.

Could you re-direct me to some resources which tell how to determine the correct input order to the IMU to Madgwick?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kriswiner/MPU9250/issues/297#issuecomment-450605900, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1quyd7eiKF4LVAKIbhGLgHdR7Mvpiks5u-YwagaJpZM4VPHA0 .

bampi2k commented 5 years ago

Hi @kriswiner ,

Fusion Rate is between 430Hz to 730Hz.

My Function call looks like: MadgwickQuaternionUpdate(myIMU.ax, -myIMU.ay, -myIMU.az, myIMU.gx*DEG_TO_RAD, -myIMU.gy*DEG_TO_RAD, -myIMU.gz*DEG_TO_RAD, myIMU.my, -myIMU.mx, myIMU.mz,myIMU.deltat);

and then a SerialMonitor log of me just rocking the device on table edge only in the Pitch direction. Notice the drift in Yaw after the operation?

Yaw, Pitch, Roll: 66.01, 0.18, -178.11 rate = 490.86 Hz Yaw, Pitch, Roll: 66.00, 0.41, -178.13 rate = 735.19 Hz Yaw, Pitch, Roll: 65.98, 0.73, -178.16 rate = 490.14 Hz Yaw, Pitch, Roll: 65.96, 1.01, -178.21 rate = 734.32 Hz Yaw, Pitch, Roll: 65.94, 1.38, -178.26 rate = 490.20 Hz Yaw, Pitch, Roll: 65.92, 1.66, -178.29 rate = 664.34 Hz Yaw, Pitch, Roll: 65.89, 1.96, -178.31 rate = 664.12 Hz Yaw, Pitch, Roll: 65.86, 2.38, -178.34 rate = 488.40 Hz Yaw, Pitch, Roll: 65.84, 2.75, -178.36 rate = 733.57 Hz Yaw, Pitch, Roll: 65.81, 3.28, -178.39 rate = 439.03 Hz Yaw, Pitch, Roll: 65.78, 3.84, -178.40 rate = 556.92 Hz Yaw, Pitch, Roll: 65.76, 4.29, -178.43 rate = 733.25 Hz Yaw, Pitch, Roll: 65.73, 4.86, -178.48 rate = 488.76 Hz Yaw, Pitch, Roll: 65.71, 5.35, -178.51 rate = 732.17 Hz Yaw, Pitch, Roll: 65.68, 5.95, -178.53 rate = 488.22 Hz Yaw, Pitch, Roll: 65.65, 6.45, -178.54 rate = 731.96 Hz Yaw, Pitch, Roll: 65.62, 7.07, -178.55 rate = 488.94 Hz Yaw, Pitch, Roll: 65.60, 7.58, -178.56 rate = 732.17 Hz Yaw, Pitch, Roll: 65.57, 8.21, -178.57 rate = 489.18 Hz Yaw, Pitch, Roll: 65.55, 8.74, -178.57 rate = 733.57 Hz Yaw, Pitch, Roll: 65.54, 9.38, -178.58 rate = 489.18 Hz Yaw, Pitch, Roll: 65.52, 9.91, -178.59 rate = 731.96 Hz Yaw, Pitch, Roll: 65.52, 10.56, -178.62 rate = 487.98 Hz Yaw, Pitch, Roll: 65.51, 11.09, -178.65 rate = 732.71 Hz Yaw, Pitch, Roll: 65.51, 11.73, -178.72 rate = 488.70 Hz Yaw, Pitch, Roll: 65.50, 12.25, -178.78 rate = 734.65 Hz Yaw, Pitch, Roll: 65.46, 12.87, -178.85 rate = 359.24 Hz Yaw, Pitch, Roll: 65.42, 13.38, -178.88 rate = 733.78 Hz Yaw, Pitch, Roll: 65.36, 13.98, -178.88 rate = 487.63 Hz Yaw, Pitch, Roll: 65.31, 14.48, -178.87 rate = 730.03 Hz Yaw, Pitch, Roll: 65.24, 15.08, -178.85 rate = 489.48 Hz Yaw, Pitch, Roll: 65.19, 15.59, -178.84 rate = 733.35 Hz Yaw, Pitch, Roll: 65.14, 16.21, -178.83 rate = 488.88 Hz Yaw, Pitch, Roll: 65.09, 16.72, -178.83 rate = 731.10 Hz Yaw, Pitch, Roll: 65.03, 17.33, -178.82 rate = 487.80 Hz Yaw, Pitch, Roll: 64.98, 17.84, -178.80 rate = 733.03 Hz Yaw, Pitch, Roll: 64.92, 18.43, -178.76 rate = 489.54 Hz Yaw, Pitch, Roll: 64.87, 18.93, -178.76 rate = 730.46 Hz Yaw, Pitch, Roll: 64.81, 19.52, -178.74 rate = 487.51 Hz Yaw, Pitch, Roll: 64.74, 20.01, -178.67 rate = 730.46 Hz Yaw, Pitch, Roll: 64.65, 20.59, -178.53 rate = 488.58 Hz Yaw, Pitch, Roll: 64.58, 21.07, -178.39 rate = 730.67 Hz Yaw, Pitch, Roll: 64.53, 21.66, -178.27 rate = 489.48 Hz Yaw, Pitch, Roll: 64.52, 22.11, -178.23 rate = 483.40 Hz Yaw, Pitch, Roll: 64.53, 22.72, -178.21 rate = 489.12 Hz Yaw, Pitch, Roll: 64.54, 23.16, -178.20 rate = 661.27 Hz Yaw, Pitch, Roll: 64.55, 23.60, -178.18 rate = 665.78 Hz Yaw, Pitch, Roll: 64.56, 24.19, -178.13 rate = 489.12 Hz Yaw, Pitch, Roll: 64.56, 24.68, -178.07 rate = 731.31 Hz Yaw, Pitch, Roll: 64.58, 25.27, -178.04 rate = 488.46 Hz Yaw, Pitch, Roll: 64.61, 25.75, -178.02 rate = 733.03 Hz Yaw, Pitch, Roll: 64.62, 26.34, -177.97 rate = 488.70 Hz Yaw, Pitch, Roll: 64.63, 26.83, -177.92 rate = 731.31 Hz Yaw, Pitch, Roll: 64.64, 27.41, -177.84 rate = 487.86 Hz Yaw, Pitch, Roll: 64.65, 27.89, -177.77 rate = 731.85 Hz Yaw, Pitch, Roll: 64.66, 28.49, -177.67 rate = 488.34 Hz Yaw, Pitch, Roll: 64.69, 28.99, -177.61 rate = 731.31 Hz Yaw, Pitch, Roll: 64.75, 29.61, -177.55 rate = 488.82 Hz Yaw, Pitch, Roll: 64.80, 30.13, -177.51 rate = 731.10 Hz Yaw, Pitch, Roll: 64.86, 30.76, -177.44 rate = 486.44 Hz Yaw, Pitch, Roll: 64.91, 31.30, -177.39 rate = 567.46 Hz Yaw, Pitch, Roll: 64.96, 31.92, -177.31 rate = 485.26 Hz Yaw, Pitch, Roll: 65.00, 32.44, -177.25 rate = 726.74 Hz Yaw, Pitch, Roll: 65.05, 33.06, -177.17 rate = 486.44 Hz Yaw, Pitch, Roll: 65.09, 33.52, -177.11 rate = 658.44 Hz Yaw, Pitch, Roll: 65.15, 34.14, -177.02 rate = 484.50 Hz Yaw, Pitch, Roll: 65.20, 34.66, -176.95 rate = 726.96 Hz Yaw, Pitch, Roll: 65.25, 35.27, -176.85 rate = 485.67 Hz Yaw, Pitch, Roll: 65.30, 35.78, -176.78 rate = 726.32 Hz Yaw, Pitch, Roll: 65.36, 36.40, -176.68 rate = 487.03 Hz Yaw, Pitch, Roll: 65.42, 36.91, -176.61 rate = 727.27 Hz Yaw, Pitch, Roll: 65.48, 37.52, -176.50 rate = 485.32 Hz Yaw, Pitch, Roll: 65.54, 38.04, -176.39 rate = 730.25 Hz Yaw, Pitch, Roll: 65.63, 38.68, -176.29 rate = 484.67 Hz Yaw, Pitch, Roll: 65.70, 39.20, -176.18 rate = 725.06 Hz Yaw, Pitch, Roll: 65.81, 39.82, -176.05 rate = 485.79 Hz Yaw, Pitch, Roll: 65.92, 40.33, -175.97 rate = 726.53 Hz Yaw, Pitch, Roll: 66.03, 40.89, -175.89 rate = 262.64 Hz Yaw, Pitch, Roll: 66.11, 41.36, -175.81 rate = 726.22 Hz Yaw, Pitch, Roll: 66.19, 41.91, -175.68 rate = 483.03 Hz Yaw, Pitch, Roll: 66.28, 42.35, -175.61 rate = 725.06 Hz Yaw, Pitch, Roll: 66.37, 42.90, -175.46 rate = 483.68 Hz Yaw, Pitch, Roll: 66.45, 43.36, -175.35 rate = 722.65 Hz Yaw, Pitch, Roll: 66.56, 43.92, -175.18 rate = 484.91 Hz Yaw, Pitch, Roll: 66.68, 44.39, -175.08 rate = 724.53 Hz Yaw, Pitch, Roll: 66.88, 44.96, -175.00 rate = 486.03 Hz Yaw, Pitch, Roll: 67.04, 45.38, -174.93 rate = 658.11 Hz Yaw, Pitch, Roll: 67.16, 45.78, -174.81 rate = 655.95 Hz Yaw, Pitch, Roll: 67.26, 46.23, -174.59 rate = 401.07 Hz Yaw, Pitch, Roll: 67.32, 46.61, -174.34 rate = 724.32 Hz Yaw, Pitch, Roll: 67.36, 47.02, -173.99 rate = 483.62 Hz Yaw, Pitch, Roll: 67.42, 47.31, -173.71 rate = 725.16 Hz Yaw, Pitch, Roll: 67.53, 47.61, -173.42 rate = 484.32 Hz Yaw, Pitch, Roll: 67.65, 47.81, -173.24 rate = 655.42 Hz Yaw, Pitch, Roll: 67.79, 47.98, -173.09 rate = 654.99 Hz Yaw, Pitch, Roll: 67.99, 48.13, -172.92 rate = 262.81 Hz Yaw, Pitch, Roll: 68.16, 48.22, -172.77 rate = 727.80 Hz Yaw, Pitch, Roll: 68.36, 48.24, -172.61 rate = 485.20 Hz Yaw, Pitch, Roll: 68.52, 48.22, -172.51 rate = 657.79 Hz Yaw, Pitch, Roll: 68.71, 48.19, -172.46 rate = 656.60 Hz Yaw, Pitch, Roll: 68.95, 48.13, -172.40 rate = 404.09 Hz Yaw, Pitch, Roll: 69.18, 48.09, -172.35 rate = 725.79 Hz Yaw, Pitch, Roll: 69.46, 48.02, -172.27 rate = 486.80 Hz Yaw, Pitch, Roll: 69.70, 47.95, -172.20 rate = 727.91 Hz Yaw, Pitch, Roll: 69.98, 47.87, -172.10 rate = 486.97 Hz Yaw, Pitch, Roll: 70.22, 47.80, -172.00 rate = 727.27 Hz Yaw, Pitch, Roll: 70.55, 47.74, -171.91 rate = 486.85 Hz Yaw, Pitch, Roll: 70.85, 47.67, -171.83 rate = 727.27 Hz Yaw, Pitch, Roll: 71.21, 47.59, -171.73 rate = 485.02 Hz Yaw, Pitch, Roll: 71.48, 47.48, -171.67 rate = 657.68 Hz Yaw, Pitch, Roll: 71.76, 47.31, -171.63 rate = 655.85 Hz Yaw, Pitch, Roll: 72.11, 47.01, -171.59 rate = 402.85 Hz Yaw, Pitch, Roll: 72.44, 46.69, -171.57 rate = 567.94 Hz Yaw, Pitch, Roll: 72.82, 46.26, -171.55 rate = 485.44 Hz Yaw, Pitch, Roll: 73.12, 45.85, -171.53 rate = 728.23 Hz Yaw, Pitch, Roll: 73.53, 45.27, -171.56 rate = 485.73 Hz Yaw, Pitch, Roll: 73.88, 44.80, -171.67 rate = 657.68 Hz Yaw, Pitch, Roll: 74.27, 44.31, -171.84 rate = 659.63 Hz Yaw, Pitch, Roll: 74.78, 43.61, -172.09 rate = 486.38 Hz Yaw, Pitch, Roll: 75.19, 43.01, -172.28 rate = 728.44 Hz Yaw, Pitch, Roll: 75.66, 42.24, -172.51 rate = 486.68 Hz Yaw, Pitch, Roll: 76.03, 41.59, -172.68 rate = 725.48 Hz Yaw, Pitch, Roll: 76.39, 40.84, -172.84 rate = 404.15 Hz Yaw, Pitch, Roll: 76.70, 40.13, -172.98 rate = 726.11 Hz Yaw, Pitch, Roll: 77.06, 39.25, -173.14 rate = 487.39 Hz Yaw, Pitch, Roll: 77.34, 38.51, -173.26 rate = 728.01 Hz Yaw, Pitch, Roll: 77.69, 37.62, -173.42 rate = 485.14 Hz Yaw, Pitch, Roll: 77.94, 36.97, -173.55 rate = 656.38 Hz Yaw, Pitch, Roll: 78.19, 36.32, -173.69 rate = 656.38 Hz Yaw, Pitch, Roll: 78.58, 35.34, -173.91 rate = 434.55 Hz Yaw, Pitch, Roll: 78.91, 34.35, -174.07 rate = 555.12 Hz Yaw, Pitch, Roll: 79.14, 33.61, -174.17 rate = 726.96 Hz Yaw, Pitch, Roll: 79.41, 32.71, -174.30 rate = 485.14 Hz Yaw, Pitch, Roll: 79.63, 31.97, -174.40 rate = 728.76 Hz Yaw, Pitch, Roll: 79.86, 31.17, -174.52 rate = 403.01 Hz Yaw, Pitch, Roll: 80.07, 30.44, -174.62 rate = 728.33 Hz Yaw, Pitch, Roll: 80.31, 29.56, -174.72 rate = 485.20 Hz Yaw, Pitch, Roll: 80.50, 28.83, -174.82 rate = 734.54 Hz Yaw, Pitch, Roll: 80.74, 27.98, -174.95 rate = 488.64 Hz Yaw, Pitch, Roll: 80.95, 27.29, -175.09 rate = 731.64 Hz Yaw, Pitch, Roll: 81.19, 26.47, -175.25 rate = 488.64 Hz Yaw, Pitch, Roll: 81.37, 25.79, -175.37 rate = 730.89 Hz Yaw, Pitch, Roll: 81.57, 24.98, -175.50 rate = 487.63 Hz Yaw, Pitch, Roll: 81.72, 24.32, -175.60 rate = 731.74 Hz Yaw, Pitch, Roll: 81.90, 23.55, -175.70 rate = 488.34 Hz Yaw, Pitch, Roll: 82.03, 22.92, -175.78 rate = 733.14 Hz Yaw, Pitch, Roll: 82.21, 22.12, -175.89 rate = 438.69 Hz Yaw, Pitch, Roll: 82.38, 21.35, -176.00 rate = 556.85 Hz Yaw, Pitch, Roll: 82.50, 20.80, -176.09 rate = 731.85 Hz Yaw, Pitch, Roll: 82.64, 20.15, -176.19 rate = 489.00 Hz Yaw, Pitch, Roll: 82.75, 19.62, -176.27 rate = 732.17 Hz Yaw, Pitch, Roll: 82.87, 19.00, -176.35 rate = 487.21 Hz Yaw, Pitch, Roll: 82.96, 18.50, -176.42 rate = 731.85 Hz Yaw, Pitch, Roll: 83.07, 17.91, -176.49 rate = 488.46 Hz Yaw, Pitch, Roll: 83.15, 17.42, -176.55 rate = 730.99 Hz Yaw, Pitch, Roll: 83.23, 16.84, -176.61 rate = 488.04 Hz Yaw, Pitch, Roll: 83.31, 16.37, -176.66 rate = 732.17 Hz Yaw, Pitch, Roll: 83.40, 15.81, -176.76 rate = 487.45 Hz Yaw, Pitch, Roll: 83.47, 15.41, -176.83 rate = 662.80 Hz Yaw, Pitch, Roll: 83.53, 15.02, -176.90 rate = 663.02 Hz Yaw, Pitch, Roll: 83.59, 14.48, -176.97 rate = 488.52 Hz Yaw, Pitch, Roll: 83.63, 14.10, -177.01 rate = 661.59 Hz Yaw, Pitch, Roll: 83.66, 13.73, -177.03 rate = 662.80 Hz Yaw, Pitch, Roll: 83.71, 13.15, -177.07 rate = 437.83 Hz Yaw, Pitch, Roll: 83.76, 12.60, -177.12 rate = 556.30 Hz Yaw, Pitch, Roll: 83.80, 12.19, -177.15 rate = 732.06 Hz Yaw, Pitch, Roll: 83.84, 11.69, -177.21 rate = 489.12 Hz Yaw, Pitch, Roll: 83.88, 11.28, -177.25 rate = 732.49 Hz Yaw, Pitch, Roll: 83.93, 10.77, -177.34 rate = 488.28 Hz Yaw, Pitch, Roll: 83.95, 10.36, -177.39 rate = 731.96 Hz Yaw, Pitch, Roll: 83.96, 9.87, -177.42 rate = 487.09 Hz Yaw, Pitch, Roll: 83.97, 9.46, -177.44 rate = 733.03 Hz Yaw, Pitch, Roll: 83.98, 8.96, -177.48 rate = 488.82 Hz Yaw, Pitch, Roll: 83.98, 8.56, -177.51 rate = 733.78 Hz Yaw, Pitch, Roll: 83.98, 8.06, -177.54 rate = 487.92 Hz Yaw, Pitch, Roll: 83.97, 7.65, -177.56 rate = 733.03 Hz Yaw, Pitch, Roll: 83.96, 7.16, -177.58 rate = 490.02 Hz Yaw, Pitch, Roll: 83.95, 6.75, -177.60 rate = 731.85 Hz Yaw, Pitch, Roll: 83.93, 6.26, -177.64 rate = 489.00 Hz Yaw, Pitch, Roll: 83.92, 5.86, -177.66 rate = 732.82 Hz Yaw, Pitch, Roll: 83.87, 5.40, -177.68 rate = 360.01 Hz Yaw, Pitch, Roll: 83.82, 5.02, -177.69 rate = 732.39 Hz Yaw, Pitch, Roll: 83.77, 4.59, -177.70 rate = 490.32 Hz Yaw, Pitch, Roll: 83.72, 4.24, -177.71 rate = 732.06 Hz Yaw, Pitch, Roll: 83.67, 3.82, -177.72 rate = 488.52 Hz Yaw, Pitch, Roll: 83.62, 3.48, -177.74 rate = 731.96 Hz Yaw, Pitch, Roll: 83.55, 3.09, -177.75 rate = 489.48 Hz Yaw, Pitch, Roll: 83.50, 2.77, -177.77 rate = 734.21 Hz Yaw, Pitch, Roll: 83.42, 2.39, -177.78 rate = 490.80 Hz Yaw, Pitch, Roll: 83.36, 2.09, -177.79 rate = 732.60 Hz Yaw, Pitch, Roll: 83.28, 1.75, -177.78 rate = 490.32 Hz Yaw, Pitch, Roll: 83.21, 1.48, -177.76 rate = 732.92 Hz Yaw, Pitch, Roll: 83.13, 1.10, -177.76 rate = 488.22 Hz Yaw, Pitch, Roll: 83.07, 0.80, -177.76 rate = 734.11 Hz Yaw, Pitch, Roll: 82.98, 0.51, -177.81 rate = 490.80 Hz Yaw, Pitch, Roll: 82.90, 0.29, -177.85 rate = 735.40 Hz Yaw, Pitch, Roll: 82.80, 0.01, -177.86 rate = 490.44 Hz Yaw, Pitch, Roll: 82.68, -0.18, -177.87

Maybe calibration is off??

kriswiner commented 5 years ago

500 Hz is too slow; the odd thing is that the rate varies so much. Are you using the interrupt?

How did you calibrate the sensors?

On Sun, Dec 30, 2018 at 8:49 PM bampi2k notifications@github.com wrote:

Hi @kriswiner https://github.com/kriswiner ,

Fusion Rate is between 430Hz to 730Hz.

My Function call looks like: MadgwickQuaternionUpdate(myIMU.ax, -myIMU.ay, -myIMU.az, myIMU.gxDEG_TO_RAD, -myIMU.gyDEG_TO_RAD, -myIMU.gz*DEG_TO_RAD, myIMU.my, -myIMU.mx, myIMU.mz,myIMU.deltat);

and then a SerialMonitor log of me just rocking the device on table edge only in the Pitch direction. Notice the drift in Yaw after the operation?

Yaw, Pitch, Roll: 66.01, 0.18, -178.11 rate = 490.86 Hz Yaw, Pitch, Roll: 66.00, 0.41, -178.13 rate = 735.19 Hz Yaw, Pitch, Roll: 65.98, 0.73, -178.16 rate = 490.14 Hz Yaw, Pitch, Roll: 65.96, 1.01, -178.21 rate = 734.32 Hz Yaw, Pitch, Roll: 65.94, 1.38, -178.26 rate = 490.20 Hz Yaw, Pitch, Roll: 65.92, 1.66, -178.29 rate = 664.34 Hz Yaw, Pitch, Roll: 65.89, 1.96, -178.31 rate = 664.12 Hz Yaw, Pitch, Roll: 65.86, 2.38, -178.34 rate = 488.40 Hz Yaw, Pitch, Roll: 65.84, 2.75, -178.36 rate = 733.57 Hz Yaw, Pitch, Roll: 65.81, 3.28, -178.39 rate = 439.03 Hz Yaw, Pitch, Roll: 65.78, 3.84, -178.40 rate = 556.92 Hz Yaw, Pitch, Roll: 65.76, 4.29, -178.43 rate = 733.25 Hz Yaw, Pitch, Roll: 65.73, 4.86, -178.48 rate = 488.76 Hz Yaw, Pitch, Roll: 65.71, 5.35, -178.51 rate = 732.17 Hz Yaw, Pitch, Roll: 65.68, 5.95, -178.53 rate = 488.22 Hz Yaw, Pitch, Roll: 65.65, 6.45, -178.54 rate = 731.96 Hz Yaw, Pitch, Roll: 65.62, 7.07, -178.55 rate = 488.94 Hz Yaw, Pitch, Roll: 65.60, 7.58, -178.56 rate = 732.17 Hz Yaw, Pitch, Roll: 65.57, 8.21, -178.57 rate = 489.18 Hz Yaw, Pitch, Roll: 65.55, 8.74, -178.57 rate = 733.57 Hz Yaw, Pitch, Roll: 65.54, 9.38, -178.58 rate = 489.18 Hz Yaw, Pitch, Roll: 65.52, 9.91, -178.59 rate = 731.96 Hz Yaw, Pitch, Roll: 65.52, 10.56, -178.62 rate = 487.98 Hz Yaw, Pitch, Roll: 65.51, 11.09, -178.65 rate = 732.71 Hz Yaw, Pitch, Roll: 65.51, 11.73, -178.72 rate = 488.70 Hz Yaw, Pitch, Roll: 65.50, 12.25, -178.78 rate = 734.65 Hz Yaw, Pitch, Roll: 65.46, 12.87, -178.85 rate = 359.24 Hz Yaw, Pitch, Roll: 65.42, 13.38, -178.88 rate = 733.78 Hz Yaw, Pitch, Roll: 65.36, 13.98, -178.88 rate = 487.63 Hz Yaw, Pitch, Roll: 65.31, 14.48, -178.87 rate = 730.03 Hz Yaw, Pitch, Roll: 65.24, 15.08, -178.85 rate = 489.48 Hz Yaw, Pitch, Roll: 65.19, 15.59, -178.84 rate = 733.35 Hz Yaw, Pitch, Roll: 65.14, 16.21, -178.83 rate = 488.88 Hz Yaw, Pitch, Roll: 65.09, 16.72, -178.83 rate = 731.10 Hz Yaw, Pitch, Roll: 65.03, 17.33, -178.82 rate = 487.80 Hz Yaw, Pitch, Roll: 64.98, 17.84, -178.80 rate = 733.03 Hz Yaw, Pitch, Roll: 64.92, 18.43, -178.76 rate = 489.54 Hz Yaw, Pitch, Roll: 64.87, 18.93, -178.76 rate = 730.46 Hz Yaw, Pitch, Roll: 64.81, 19.52, -178.74 rate = 487.51 Hz Yaw, Pitch, Roll: 64.74, 20.01, -178.67 rate = 730.46 Hz Yaw, Pitch, Roll: 64.65, 20.59, -178.53 rate = 488.58 Hz Yaw, Pitch, Roll: 64.58, 21.07, -178.39 rate = 730.67 Hz Yaw, Pitch, Roll: 64.53, 21.66, -178.27 rate = 489.48 Hz Yaw, Pitch, Roll: 64.52, 22.11, -178.23 rate = 483.40 Hz Yaw, Pitch, Roll: 64.53, 22.72, -178.21 rate = 489.12 Hz Yaw, Pitch, Roll: 64.54, 23.16, -178.20 rate = 661.27 Hz Yaw, Pitch, Roll: 64.55, 23.60, -178.18 rate = 665.78 Hz Yaw, Pitch, Roll: 64.56, 24.19, -178.13 rate = 489.12 Hz Yaw, Pitch, Roll: 64.56, 24.68, -178.07 rate = 731.31 Hz Yaw, Pitch, Roll: 64.58, 25.27, -178.04 rate = 488.46 Hz Yaw, Pitch, Roll: 64.61, 25.75, -178.02 rate = 733.03 Hz Yaw, Pitch, Roll: 64.62, 26.34, -177.97 rate = 488.70 Hz Yaw, Pitch, Roll: 64.63, 26.83, -177.92 rate = 731.31 Hz Yaw, Pitch, Roll: 64.64, 27.41, -177.84 rate = 487.86 Hz Yaw, Pitch, Roll: 64.65, 27.89, -177.77 rate = 731.85 Hz Yaw, Pitch, Roll: 64.66, 28.49, -177.67 rate = 488.34 Hz Yaw, Pitch, Roll: 64.69, 28.99, -177.61 rate = 731.31 Hz Yaw, Pitch, Roll: 64.75, 29.61, -177.55 rate = 488.82 Hz Yaw, Pitch, Roll: 64.80, 30.13, -177.51 rate = 731.10 Hz Yaw, Pitch, Roll: 64.86, 30.76, -177.44 rate = 486.44 Hz Yaw, Pitch, Roll: 64.91, 31.30, -177.39 rate = 567.46 Hz Yaw, Pitch, Roll: 64.96, 31.92, -177.31 rate = 485.26 Hz Yaw, Pitch, Roll: 65.00, 32.44, -177.25 rate = 726.74 Hz Yaw, Pitch, Roll: 65.05, 33.06, -177.17 rate = 486.44 Hz Yaw, Pitch, Roll: 65.09, 33.52, -177.11 rate = 658.44 Hz Yaw, Pitch, Roll: 65.15, 34.14, -177.02 rate = 484.50 Hz Yaw, Pitch, Roll: 65.20, 34.66, -176.95 rate = 726.96 Hz Yaw, Pitch, Roll: 65.25, 35.27, -176.85 rate = 485.67 Hz Yaw, Pitch, Roll: 65.30, 35.78, -176.78 rate = 726.32 Hz Yaw, Pitch, Roll: 65.36, 36.40, -176.68 rate = 487.03 Hz Yaw, Pitch, Roll: 65.42, 36.91, -176.61 rate = 727.27 Hz Yaw, Pitch, Roll: 65.48, 37.52, -176.50 rate = 485.32 Hz Yaw, Pitch, Roll: 65.54, 38.04, -176.39 rate = 730.25 Hz Yaw, Pitch, Roll: 65.63, 38.68, -176.29 rate = 484.67 Hz Yaw, Pitch, Roll: 65.70, 39.20, -176.18 rate = 725.06 Hz Yaw, Pitch, Roll: 65.81, 39.82, -176.05 rate = 485.79 Hz Yaw, Pitch, Roll: 65.92, 40.33, -175.97 rate = 726.53 Hz Yaw, Pitch, Roll: 66.03, 40.89, -175.89 rate = 262.64 Hz Yaw, Pitch, Roll: 66.11, 41.36, -175.81 rate = 726.22 Hz Yaw, Pitch, Roll: 66.19, 41.91, -175.68 rate = 483.03 Hz Yaw, Pitch, Roll: 66.28, 42.35, -175.61 rate = 725.06 Hz Yaw, Pitch, Roll: 66.37, 42.90, -175.46 rate = 483.68 Hz Yaw, Pitch, Roll: 66.45, 43.36, -175.35 rate = 722.65 Hz Yaw, Pitch, Roll: 66.56, 43.92, -175.18 rate = 484.91 Hz Yaw, Pitch, Roll: 66.68, 44.39, -175.08 rate = 724.53 Hz Yaw, Pitch, Roll: 66.88, 44.96, -175.00 rate = 486.03 Hz Yaw, Pitch, Roll: 67.04, 45.38, -174.93 rate = 658.11 Hz Yaw, Pitch, Roll: 67.16, 45.78, -174.81 rate = 655.95 Hz Yaw, Pitch, Roll: 67.26, 46.23, -174.59 rate = 401.07 Hz Yaw, Pitch, Roll: 67.32, 46.61, -174.34 rate = 724.32 Hz Yaw, Pitch, Roll: 67.36, 47.02, -173.99 rate = 483.62 Hz Yaw, Pitch, Roll: 67.42, 47.31, -173.71 rate = 725.16 Hz Yaw, Pitch, Roll: 67.53, 47.61, -173.42 rate = 484.32 Hz Yaw, Pitch, Roll: 67.65, 47.81, -173.24 rate = 655.42 Hz Yaw, Pitch, Roll: 67.79, 47.98, -173.09 rate = 654.99 Hz Yaw, Pitch, Roll: 67.99, 48.13, -172.92 rate = 262.81 Hz Yaw, Pitch, Roll: 68.16, 48.22, -172.77 rate = 727.80 Hz Yaw, Pitch, Roll: 68.36, 48.24, -172.61 rate = 485.20 Hz Yaw, Pitch, Roll: 68.52, 48.22, -172.51 rate = 657.79 Hz Yaw, Pitch, Roll: 68.71, 48.19, -172.46 rate = 656.60 Hz Yaw, Pitch, Roll: 68.95, 48.13, -172.40 rate = 404.09 Hz Yaw, Pitch, Roll: 69.18, 48.09, -172.35 rate = 725.79 Hz Yaw, Pitch, Roll: 69.46, 48.02, -172.27 rate = 486.80 Hz Yaw, Pitch, Roll: 69.70, 47.95, -172.20 rate = 727.91 Hz Yaw, Pitch, Roll: 69.98, 47.87, -172.10 rate = 486.97 Hz Yaw, Pitch, Roll: 70.22, 47.80, -172.00 rate = 727.27 Hz Yaw, Pitch, Roll: 70.55, 47.74, -171.91 rate = 486.85 Hz Yaw, Pitch, Roll: 70.85, 47.67, -171.83 rate = 727.27 Hz Yaw, Pitch, Roll: 71.21, 47.59, -171.73 rate = 485.02 Hz Yaw, Pitch, Roll: 71.48, 47.48, -171.67 rate = 657.68 Hz Yaw, Pitch, Roll: 71.76, 47.31, -171.63 rate = 655.85 Hz Yaw, Pitch, Roll: 72.11, 47.01, -171.59 rate = 402.85 Hz Yaw, Pitch, Roll: 72.44, 46.69, -171.57 rate = 567.94 Hz Yaw, Pitch, Roll: 72.82, 46.26, -171.55 rate = 485.44 Hz Yaw, Pitch, Roll: 73.12, 45.85, -171.53 rate = 728.23 Hz Yaw, Pitch, Roll: 73.53, 45.27, -171.56 rate = 485.73 Hz Yaw, Pitch, Roll: 73.88, 44.80, -171.67 rate = 657.68 Hz Yaw, Pitch, Roll: 74.27, 44.31, -171.84 rate = 659.63 Hz Yaw, Pitch, Roll: 74.78, 43.61, -172.09 rate = 486.38 Hz Yaw, Pitch, Roll: 75.19, 43.01, -172.28 rate = 728.44 Hz Yaw, Pitch, Roll: 75.66, 42.24, -172.51 rate = 486.68 Hz Yaw, Pitch, Roll: 76.03, 41.59, -172.68 rate = 725.48 Hz Yaw, Pitch, Roll: 76.39, 40.84, -172.84 rate = 404.15 Hz Yaw, Pitch, Roll: 76.70, 40.13, -172.98 rate = 726.11 Hz Yaw, Pitch, Roll: 77.06, 39.25, -173.14 rate = 487.39 Hz Yaw, Pitch, Roll: 77.34, 38.51, -173.26 rate = 728.01 Hz Yaw, Pitch, Roll: 77.69, 37.62, -173.42 rate = 485.14 Hz Yaw, Pitch, Roll: 77.94, 36.97, -173.55 rate = 656.38 Hz Yaw, Pitch, Roll: 78.19, 36.32, -173.69 rate = 656.38 Hz Yaw, Pitch, Roll: 78.58, 35.34, -173.91 rate = 434.55 Hz Yaw, Pitch, Roll: 78.91, 34.35, -174.07 rate = 555.12 Hz Yaw, Pitch, Roll: 79.14, 33.61, -174.17 rate = 726.96 Hz Yaw, Pitch, Roll: 79.41, 32.71, -174.30 rate = 485.14 Hz Yaw, Pitch, Roll: 79.63, 31.97, -174.40 rate = 728.76 Hz Yaw, Pitch, Roll: 79.86, 31.17, -174.52 rate = 403.01 Hz Yaw, Pitch, Roll: 80.07, 30.44, -174.62 rate = 728.33 Hz Yaw, Pitch, Roll: 80.31, 29.56, -174.72 rate = 485.20 Hz Yaw, Pitch, Roll: 80.50, 28.83, -174.82 rate = 734.54 Hz Yaw, Pitch, Roll: 80.74, 27.98, -174.95 rate = 488.64 Hz Yaw, Pitch, Roll: 80.95, 27.29, -175.09 rate = 731.64 Hz Yaw, Pitch, Roll: 81.19, 26.47, -175.25 rate = 488.64 Hz Yaw, Pitch, Roll: 81.37, 25.79, -175.37 rate = 730.89 Hz Yaw, Pitch, Roll: 81.57, 24.98, -175.50 rate = 487.63 Hz Yaw, Pitch, Roll: 81.72, 24.32, -175.60 rate = 731.74 Hz Yaw, Pitch, Roll: 81.90, 23.55, -175.70 rate = 488.34 Hz Yaw, Pitch, Roll: 82.03, 22.92, -175.78 rate = 733.14 Hz Yaw, Pitch, Roll: 82.21, 22.12, -175.89 rate = 438.69 Hz Yaw, Pitch, Roll: 82.38, 21.35, -176.00 rate = 556.85 Hz Yaw, Pitch, Roll: 82.50, 20.80, -176.09 rate = 731.85 Hz Yaw, Pitch, Roll: 82.64, 20.15, -176.19 rate = 489.00 Hz Yaw, Pitch, Roll: 82.75, 19.62, -176.27 rate = 732.17 Hz Yaw, Pitch, Roll: 82.87, 19.00, -176.35 rate = 487.21 Hz Yaw, Pitch, Roll: 82.96, 18.50, -176.42 rate = 731.85 Hz Yaw, Pitch, Roll: 83.07, 17.91, -176.49 rate = 488.46 Hz Yaw, Pitch, Roll: 83.15, 17.42, -176.55 rate = 730.99 Hz Yaw, Pitch, Roll: 83.23, 16.84, -176.61 rate = 488.04 Hz Yaw, Pitch, Roll: 83.31, 16.37, -176.66 rate = 732.17 Hz Yaw, Pitch, Roll: 83.40, 15.81, -176.76 rate = 487.45 Hz Yaw, Pitch, Roll: 83.47, 15.41, -176.83 rate = 662.80 Hz Yaw, Pitch, Roll: 83.53, 15.02, -176.90 rate = 663.02 Hz Yaw, Pitch, Roll: 83.59, 14.48, -176.97 rate = 488.52 Hz Yaw, Pitch, Roll: 83.63, 14.10, -177.01 rate = 661.59 Hz Yaw, Pitch, Roll: 83.66, 13.73, -177.03 rate = 662.80 Hz Yaw, Pitch, Roll: 83.71, 13.15, -177.07 rate = 437.83 Hz Yaw, Pitch, Roll: 83.76, 12.60, -177.12 rate = 556.30 Hz Yaw, Pitch, Roll: 83.80, 12.19, -177.15 rate = 732.06 Hz Yaw, Pitch, Roll: 83.84, 11.69, -177.21 rate = 489.12 Hz Yaw, Pitch, Roll: 83.88, 11.28, -177.25 rate = 732.49 Hz Yaw, Pitch, Roll: 83.93, 10.77, -177.34 rate = 488.28 Hz Yaw, Pitch, Roll: 83.95, 10.36, -177.39 rate = 731.96 Hz Yaw, Pitch, Roll: 83.96, 9.87, -177.42 rate = 487.09 Hz Yaw, Pitch, Roll: 83.97, 9.46, -177.44 rate = 733.03 Hz Yaw, Pitch, Roll: 83.98, 8.96, -177.48 rate = 488.82 Hz Yaw, Pitch, Roll: 83.98, 8.56, -177.51 rate = 733.78 Hz Yaw, Pitch, Roll: 83.98, 8.06, -177.54 rate = 487.92 Hz Yaw, Pitch, Roll: 83.97, 7.65, -177.56 rate = 733.03 Hz Yaw, Pitch, Roll: 83.96, 7.16, -177.58 rate = 490.02 Hz Yaw, Pitch, Roll: 83.95, 6.75, -177.60 rate = 731.85 Hz Yaw, Pitch, Roll: 83.93, 6.26, -177.64 rate = 489.00 Hz Yaw, Pitch, Roll: 83.92, 5.86, -177.66 rate = 732.82 Hz Yaw, Pitch, Roll: 83.87, 5.40, -177.68 rate = 360.01 Hz Yaw, Pitch, Roll: 83.82, 5.02, -177.69 rate = 732.39 Hz Yaw, Pitch, Roll: 83.77, 4.59, -177.70 rate = 490.32 Hz Yaw, Pitch, Roll: 83.72, 4.24, -177.71 rate = 732.06 Hz Yaw, Pitch, Roll: 83.67, 3.82, -177.72 rate = 488.52 Hz Yaw, Pitch, Roll: 83.62, 3.48, -177.74 rate = 731.96 Hz Yaw, Pitch, Roll: 83.55, 3.09, -177.75 rate = 489.48 Hz Yaw, Pitch, Roll: 83.50, 2.77, -177.77 rate = 734.21 Hz Yaw, Pitch, Roll: 83.42, 2.39, -177.78 rate = 490.80 Hz Yaw, Pitch, Roll: 83.36, 2.09, -177.79 rate = 732.60 Hz Yaw, Pitch, Roll: 83.28, 1.75, -177.78 rate = 490.32 Hz Yaw, Pitch, Roll: 83.21, 1.48, -177.76 rate = 732.92 Hz Yaw, Pitch, Roll: 83.13, 1.10, -177.76 rate = 488.22 Hz Yaw, Pitch, Roll: 83.07, 0.80, -177.76 rate = 734.11 Hz Yaw, Pitch, Roll: 82.98, 0.51, -177.81 rate = 490.80 Hz Yaw, Pitch, Roll: 82.90, 0.29, -177.85 rate = 735.40 Hz Yaw, Pitch, Roll: 82.80, 0.01, -177.86 rate = 490.44 Hz Yaw, Pitch, Roll: 82.68, -0.18, -177.87

Maybe calibration is off??

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/kriswiner/MPU9250/issues/297#issuecomment-450608104, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1qmuZ7vMToomi0GrOvFK3oiF41h9zks5u-Zd2gaJpZM4VPHA0 .

bampi2k commented 5 years ago

I am using the interrupt. I have some other code running along with the AHRS code. I shall have a closer look into that part. What should be the ideal fusion rate?

As for the calibration, I have calibrated only the magnetometer bias. The typical 'wave in all directions for 20sec method'... Any other calibration procedure?

kriswiner commented 5 years ago

'wave in all directions for 20sec method'.

Probably not good enough. You need to correct for accel and gyro offset bias as well.

best fusion rate is 5x or 10x the sensor sample rate.

On Sat, Jan 5, 2019 at 5:04 PM bampi2k notifications@github.com wrote:

I am using the interrupt. I have some other code running along with the AHRS code. I shall have a closer look into that part. What should be the ideal fusion rate?

As for the calibration, I have calibrated only the magnetometer bias. The typical 'wave in all directions for 20sec method'... Any other calibration procedure?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kriswiner/MPU9250/issues/297#issuecomment-451706193, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1qhRXRuZ_PS64hL6Jc1AvXgo3FwZFks5vAUuGgaJpZM4VPHA0 .