IMU Bias, Noise, and Drift
A robot can estimate its heading by adding up gyroscope readings over time, and its position by adding up accelerometer readings twice. Every small error gets added up too, so the estimate drifts. This is why an IMU alone cannot navigate for long.
How errors grow
Integrating a gyroscope with constant bias \(b_g\) and white noise of density \(\sigma_g\) gives a heading error that grows two ways:
The bias part grows in a straight line. The noise part is a random walk that grows like \(\sqrt{t}\). For the accelerometer, a bias \(b_a\) is integrated twice, so position error grows with the square of time:
What to notice
With bias at zero, the runs spread out in a fan that widens slowly, the random walk. Add bias and every run tilts away in the same direction. In the position plot, even an accelerometer bias of 0.01 m/s², about one thousandth of gravity, causes about 18 m of error after one minute.
Real systems fight drift by estimating the bias while the robot stands still, and by correcting with other sensors: wheel odometry, GPS, a magnetometer, or a camera.