This is a fork of kfax frozen at the state it is presented in a AER1517 lecture. This fork is not actively developed and only updated as it is used in lectures Go to the upstream https://github.com/Hs293Go/kfax for active development
KFAX is a small state estimation library for JAX.
At this point it is little more than an example library in the spirit of jax.example_libraries.stax
and friends.
Its goal to facilitate quick prototyping of Extended Kalman Filters (EKF) for systems, exploiting automatic differentiation offered by JAX to sidestep derivation of Jacobians of the state and observation models.
Despite the infancy of this library several limitations are already identified
- Not speed at this moment.
- Evaluation of autodiff'ed Jacobian is still more expensive than analytical Jacobians
- jax's JIT is competitive with MATLAB/Julia's JIT, but they are not rigorously benchmarked against each other
- Minimal support for IEKF, i.e. EKF with states that live on a manifold and innovation/update laws that comply with operations on manifolds
The primary dependency is jax itself. Visit https://jax.readthedocs.io/en/latest/installation.html for detailed instructions
cd
to the repository directory and run
pip install -e .