All Projects → EEA-sensors → parallel-non-linear-gaussian-smoothers

EEA-sensors / parallel-non-linear-gaussian-smoothers

Licence: MIT license
Companion code in JAX for the paper Parallel Iterated Extended and Sigma-Point Kalman Smoothers.

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to parallel-non-linear-gaussian-smoothers

pyUKF
Unscented kalman filter (UKF) library in python that supports multiple measurement updates
Stars: ✭ 52 (+205.88%)
Mutual labels:  unscented-kalman-filter, kalman-filter
CarND-Extended-Kalman-Filter-P6
Self Driving Car Project 6 - Sensor Fusion(Extended Kalman Filter)
Stars: ✭ 24 (+41.18%)
Mutual labels:  kalman-filter, extended-kalman-filters
sensor-fusion
Filters: KF, EKF, UKF || Process Models: CV, CTRV || Measurement Models: Radar, Lidar
Stars: ✭ 96 (+464.71%)
Mutual labels:  unscented-kalman-filter, kalman-filter
fusion-ekf
An extended Kalman Filter implementation in C++ for fusing lidar and radar sensor measurements.
Stars: ✭ 113 (+564.71%)
Mutual labels:  kalman-filter, extended-kalman-filters
go-estimate
State estimation and filtering algorithms in Go
Stars: ✭ 98 (+476.47%)
Mutual labels:  unscented-kalman-filter, kalman-filter
Embedded UKF Library
A compact Unscented Kalman Filter (UKF) library for Teensy4/Arduino system (or any real time embedded system in general)
Stars: ✭ 31 (+82.35%)
Mutual labels:  unscented-kalman-filter, kalman-filter
Self-Driving-Car-NanoDegree-Udacity
This repository contains code and writeups for projects and labs completed as a part of UDACITY's first of it's kind self driving car nanodegree program.
Stars: ✭ 29 (+70.59%)
Mutual labels:  unscented-kalman-filter, extended-kalman-filters
dbot
Depth-Based Bayesian Object Tracking Library
Stars: ✭ 62 (+264.71%)
Mutual labels:  kalman-filter
tsa4
R code for Time Series Analysis and Its Applications, Ed 4
Stars: ✭ 108 (+535.29%)
Mutual labels:  kalman-filter
graphsignal
Graphsignal Python agent
Stars: ✭ 158 (+829.41%)
Mutual labels:  jax
ips2ra
In-place Parallel Super Scalar Radix Sort (IPS²Ra)
Stars: ✭ 22 (+29.41%)
Mutual labels:  parallel
hp2p
Heavy Peer To Peer: a MPI based benchmark for network diagnostic
Stars: ✭ 17 (+0%)
Mutual labels:  parallel
sf-pkg
Generic Sensor Fusion Package for ROS
Stars: ✭ 28 (+64.71%)
Mutual labels:  kalman-filter
snmpman
Easy massive SNMP-agent simulation with the use of simple YAML files
Stars: ✭ 28 (+64.71%)
Mutual labels:  parallel
Pitch-Tracking
Pitch tracking in real-time with the Kalman filter
Stars: ✭ 78 (+358.82%)
Mutual labels:  kalman-filter
MatlabProgressBar
This MATLAB class provides a smart progress bar like tqdm in the command window and is optimized for progress information in simple iterations or large frameworks with full support of parallel parfor loops provided by the MATLAB Parallel Computing Toolbox.
Stars: ✭ 44 (+158.82%)
Mutual labels:  parallel
t8code
Parallel algorithms and data structures for tree-based AMR with arbitrary element shapes.
Stars: ✭ 37 (+117.65%)
Mutual labels:  parallel
cuda-swift
Parallel Computing Library for Linux and macOS & NVIDIA CUDA Wrapper
Stars: ✭ 79 (+364.71%)
Mutual labels:  parallel
nemesyst
Generalised and highly customisable, hybrid-parallelism, database based, deep learning framework.
Stars: ✭ 17 (+0%)
Mutual labels:  parallel
WAND-PIC
WAND-PIC
Stars: ✭ 20 (+17.65%)
Mutual labels:  parallel

Parallel Iterated Extended and Sigma-Point Kalman Smoothers

Companion code in JAX for the paper Parallel Iterated Extended and Sigma-Point Kalman Smoothers [2].

What is it?

This is an implementation of parallelized Extended and Sigma-Points Bayesian Filters and Smoothers with CPU/GPU/TPU support coded using JAX primitives, in particular associative scan.

Supported features

  • Extended Kalman Filtering and Smoothing
  • Cubature Kalman Filtering and Smoothing
  • Iterated versions of the above

Installation

Manually install the dependencies jax and jaxlib, and for examples only matplotlib, numba, tqdm

Example

from parsmooth.parallel import ieks
from parsmooth.utils import MVNormalParameters

initial_guess = MVNormalParameters(...)
data = ...
Q = ...  # transition noise covariance matrix
R = ...  # observation error covariance matrix

def transition_function(x):
  ...
  return next_x
  
def observation_function(x):
  ...
  return obs
  
iterated_smoothed_trajectories = ieks(initial_guess, 
                                      data, 
                                      transition_function, 
                                      Q, 
                                      observation_function, 
                                      R, 
                                      n_iter=100)  # runs the parallel IEKS 100 times.

For more examples, see the notebooks.

Acknowlegments

This JAX-based code was created by Adrien Corenflos to implement the original idea by Fatemeh Yaghoobi [2] who provided the initial code for the parallelized extended Kalman filter in pure Python. The sequential cubature filtering code was adapted from some original code by Zheng Zhao.

References

[1] S. Särkkä and A. F. García-Fernández. Temporal Parallelization of Bayesian Smoothers. In: IEEE Transactions on Automatic Control 2020.

[2] F. Yaghoobi and A. Corenflos and S. Hassan and S. Särkkä. Parallel Iterated Extended and Sigma-Points Kalman Smoothers. To appear in Proceedings of IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). (arXiv)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].