Good morning @terseven

You may want to take a look how the equations are generated. There is an script for calculating the Jacobians and the covariance matrices here: https://github.com/ArduPilot/ardupilot/tree/master/libraries/AP_NavEKF3/derivation . Specifically, you may want to check the method generate_code() in **main.py**. Here you will find the definition of the state space model, and since it is an Extended Kalman filter the linearization.

I am not sure how familiar you are with the theory of Kalman filtering, so if you need to sharpen your knowledge I recommend you the book *Optimal state estimation* by Dan Simon or this course by Gregory Plett.

Still having much to learn about how the Kalman filter of Ardupilot works, in my short experience I have realized that is imperative to read the source code at certain point. The classes NavEKF3 and NavEKF3_core are where almost everything happens. You will find that it is not only an Extended Kalman filter what is inside there. For example, you will find algorithms for compensating the delay between sensors that have different sample rates, and a logic flow that makes the algorithm behaves differently in situations such as if the vehicle is in ground or flying.