kalman_variants
implements several Kalman filter nonlinear variants with state estimation applications for robot and autonomous systems in mind. The package includes detailed line-by-line annotated code for every implementation of the kalman filter variant. You will also have free access to an implementation guide at Kalman_filter_variants/doc/Kalman_Implementation_Guide_For_Dummies.pdf to go along with the code to accelerate your learning.
At the moment, this package implements
- Extended Kalman Filter (EKF) w/ landmark-localization tutorial
- Error State Extended Kalman Filter (ESEKF)
- Unscented Kalman Filter (UKF)
Moreover, it implements the following vehicle motion model in both discrete and continuous formulations
- Kinematic Bicycle Model
- Kinematic Differential Drive Model
- Kinematic Ackermann Model
- Dynamic Bicycle Model
- Maintainer Status: Active
- Maintainer(s): Jingxue Jiang
- Author(s): Jingxue Jiang
Download the source via git clone
cd <your directory>
git clone https://github.com/jiangjingxue/kalman_filter_variants.git
python setup.py install
First, import the filters and helper functions.
import numpy as np
from kalman_variants.ekf import EKFLocalization
from kalman_variants.common import AddictdeNoise
Create the filter
my_ekf = EKFLocalization()
if you encounter following issue when importing the package
ModuleNotFoundError: No module named 'kalman_variants'
Set PYTHONPATH
environment variable in root project directory (Unix)
export PYTHONPATH=.
For Windows, use
set PYTHONPATH=.