A fantastic interactive introduction to Kalman filters can be found on the following repo:
https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Pyt...
It explains them from first principles and provides the intuitive rationale for them but doesn't shy away from the math when it feels the student should be ready for it.