awav / kalman-filters

Implementation of Kalman Filters - EKF and UKF

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Kalman Filter Implementations

This repository has two implementations of kalman filters:

  • Extended Kalman Filter in ekf subdirectory
  • Unscented Kalman Filter in ukf subdirectory

EKF filter in action:

alt text

UKF filter in action:

alt text

Compile

These Kalman Filters work with Udacity car simulator. Follow instructions to install simulator on your local machine.

  • Install dependencies:

    • macOS:
    $ ./install-mac.sh
    • Ubuntu:
    $ ./install-ubuntu.sh
  • Compile both EKF and UKF:

$ cmake .
$ make
  • Compile either EKF or UKF:
$ KALMAN_FILTER_DIRECTORY=ukf
$ cd $KALMAN_FILER_DIRECTORY
$ cmake .
$ make

After these steps you will have binary files of UKF and EKF filters:

$ ls -al ukf/ ekf/ | grep '.*kf'
ekf/:
-rwxrwxr-x 1 artemav artemav 1163632 May 31 23:24 ekf
ukf/:
-rwxrwxr-x 1 artemav artemav 1580016 May 31 22:41 ukf

Run

  1. Run either EKF or UKF filter:
$ ./ukf/ukf
Listening to port 4567
  1. Run simulator:
$ ./term2_sim_linux/term2_sim.x86_64
Set current directory to /home/artemav/code/kalman_filters
Found path: /home/artemav/code/kalman_filters/term2_sim_linux/term2_sim.x86_64
Mono path[0] = '/home/artemav/code/kalman_filters/term2_sim_linux/term2_sim_Data/Managed'
Mono path[1] = '/home/artemav/code/kalman_filters/term2_sim_linux/term2_sim_Data/Mono'
Mono config path = '/home/artemav/code/kalman_filters/term2_sim_linux/term2_sim_Data/Mono/etc'
displaymanager : xrandr version warning. 1.5
client has 4 screens
displaymanager screen (0)(DP-0): 3840 x 2160
Using libudev for joystick management

Importing game controller configs

About

Implementation of Kalman Filters - EKF and UKF


Languages

Language:C++ 98.5%Language:C 1.2%Language:CMake 0.2%Language:Python 0.0%Language:Shell 0.0%