Skip to content

Implementation of several popular Kalman filter nonlinear variants intended for robotics systems and vehicle state estimation, including Extended Kalman Filter, Unscented Kalman Filter, Error State EKF, Invariant EKF, Square Root EKF, Cubature KF.

Notifications You must be signed in to change notification settings

jiangjingxue/kalman_variants

Repository files navigation

kalman_variants - a selective set of Nonlinear Kalman Filter Variants

Package Summary

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

Status

  • Maintainer Status: Active
  • Maintainer(s): Jingxue Jiang
  • Author(s): Jingxue Jiang

Installation

Download the source via git clone

cd <your directory>
git clone https://github.com/jiangjingxue/kalman_filter_variants.git
python setup.py install

Basic Use

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()

Debug

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=.

About

Implementation of several popular Kalman filter nonlinear variants intended for robotics systems and vehicle state estimation, including Extended Kalman Filter, Unscented Kalman Filter, Error State EKF, Invariant EKF, Square Root EKF, Cubature KF.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages