This repository is to practice writing different types of filters
The code in this directory is heavily inspired/ripped from https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python. It is a great resource for learning more about filters.
The kalman_*
files implement the base Kalman filter in different ways.
The UKF_one_file.py
file takes the UKF code from the rlabbe repository above, and writes it all in one file so it can be easier to see what is happening.
The plot generated by UKF_one_file.py
can be directly compared with the plot generated from UKF_rlabbe.py
.
UKF_one_file.py
and UKF_rlabbe.py
is the direct implementation from the Robot Localization - A Fully Worked Example
section of https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/10-Unscented-Kalman-Filter.ipynb.
UKF.py
contains my own implementation of the UKF and sigma point functions.
sim.py
contains the code to simulate a diff-drive robot in an environment with landmarks while also running a UKF to perform state estimation.
To run the simulation, simply execute the following from the filtering_sandbox/filtering_sandbox
directory:
python3 sim.py
Click on the animation window to make sure it is active.
You can control the robot by pressing the up
, left
, and right
keys.
The gray ellipse is the covariance after the predict stage of the UKF, and the green ellipse is the covariance after the update stage of the UKF.