Skip to content

Implemented sensor fusion algorithm using an extended Kalman filter that tracks nearby moving objects using RADAR and LIDAR measurements.

License

Notifications You must be signed in to change notification settings

wlsmith42/Extended-Kalman-Filters

Repository files navigation

Extended Kalman Filter Project


Udacity - Self-Driving Car NanoDegree

The goals / steps of this project are the following:

  • Implement Extended Kalman Filter prediction and measurement update equations in C++
  • Use Sensor Fusion to combine data from LIDAR and RADAR to track a bicycle traveling around a vehicle
  • Minimize Root Mean Squared Error of the filter's predictions

In this project I utilized a kalman filter to estimate the state of a moving object of interest with noisy lidar and radar measurements. Passing this project requires obtaining RMSE values that are less than or equal to the values [.11, .11, 0.52, 0.52].


Reflection

Setup

This project involves the Term 2 Simulator which can be downloaded here

This repository includes two files that can be used to set up and install uWebSocketIO for either Linux or Mac systems. For windows you can use either Docker, VMware, or even Windows 10 Bash on Ubuntu to install uWebSocketIO. Please see the uWebSocketIO Starter Guide page in the classroom within the EKF Project lesson for the required version and installation scripts.

Project Files

The main files of this program (located in the src directory) are:

  • FusionEKF.cpp - initializes the filter, calls the predict function, calls the update function
  • kalman_filter.cpp - defines the predict function, the update function for lidar, and the update function for radar
  • tools.cpp - function to calculate RMSE and the Jacobian matrix
  • main.cpp - communicates with the Term 2 Simulator receiving data measurements, calls a function to run the Kalman filter, calls a function to calculate RMSE

Results

Lidar measurements are red circles, radar measurements are blue circles with an arrow pointing in the direction of the observed angle, and estimation markers are green triangles. The videos below shows what the simulator looks like when a c++ script is using its Kalman filter to track the object. The simulator provides the script the measured data (either lidar or radar), and the script feeds back the measured estimation marker, and RMSE values from its Kalman filter.


Dataset 1:

alt text


Dataset 2:

alt text


Other Important Dependencies

Basic Build Instructions

  1. Clone this repo.
  2. Make a build directory: mkdir build && cd build
  3. Compile: cmake .. && make
    • On windows, you may need to run: cmake .. -G "Unix Makefiles" && make
  4. Run it: ./ExtendedKF

About

Implemented sensor fusion algorithm using an extended Kalman filter that tracks nearby moving objects using RADAR and LIDAR measurements.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages