I have recently been to a conference where there was a common tool for everyone, the Kalman filter. The point is that I was a bit shocked when I saw that many people there see some of its steps as black magic.
I decided to write a (yet another) detailed guide about the Kalman filter. In particular, I have tried to be rigorous enough with the math but trying at the same time to explain with plain words what is going on at every single step. Therefore, after reading it, it should be easy (hopefully) to others to understand and implement a Kalman filter in its simplest version, the Discrete Linear one.
An example about how to calibrate the accelerometers or gyroscopes of an IMU is considered as an illustration throughout the guide. In fact, I have written a small Python script and generated some animations in order to be more illustrative. The aim of the example, together with the guide, is to understand why in the following figure, the states of position, velocity and accelerometer's bias converge around the true values.
You can find the guide in the following link from my blog http://dobratech.com/courses/kalman-filtering-for-drones/