I need to measure yaw/heading/azimuth correctly.

Now, I have done with gyro with very strong filtering and the results are very low yaw drift and even when there is perfect calibration then there is no drift but angle measured is not perfect and if there is to and fro motion then there is a difference in angle from reference point become increases

Now, what will be the effect of using dual gyro even with three gyros? can I have better results by using multigyro. If yes then how and also suggest any research paper, fusion algoritm or math, etc.

Note: My environment is highly influenced by electromagnetic waves. So, there is no option for the magnetometer.


  • \$\begingroup\$ What error is acceptable? (You won't ever get zero). There are a number of ways to compensate for gyro drift without a magnetometer. \$\endgroup\$ Sep 5, 2019 at 11:06
  • \$\begingroup\$ at max 2 degree error will be fine \$\endgroup\$
    – Ans Hafeez
    Sep 5, 2019 at 11:07
  • \$\begingroup\$ Gyro doesn't output angle (degrees), rather rate of change - deg/s; rad/s \$\endgroup\$ Sep 5, 2019 at 11:16
  • \$\begingroup\$ Accelerometer compensation is quite effective. \$\endgroup\$ Sep 5, 2019 at 11:23
  • \$\begingroup\$ @peterSmith Accelerometer compensation for YAW? \$\endgroup\$
    – Ans Hafeez
    Sep 5, 2019 at 11:25

1 Answer 1


While you can fuse the measurements from multiple IMUs on a rigid body to get diminishing returns on state-estimation, there is no way to cancel out the gyro drift doing this alone. Integrating angular velocity to estimate yaw is fraught and yaw estimates will deteriorate within seconds.

Briefly, you can correct for gyro drift by fusing with yaw measurements from a magnetometer. Kalman filter based approaches do this by including the gyro-bias as states to be estimated. What you get is known as an Attitude and Heading Reference System (AHRS). One method for doing this is with the Madgwick Filter - if you're fooling around with Arduino by chance, there are numerous examples/demos online.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.