/CarND-Extended-Kalman-Filter-Project

Self-Driving Car Nanodegree Program Starter Code for the Extended Kalman Filter Project

Primary LanguageC++MIT LicenseMIT

Extended Kalman Filter Project

C++ implementation of an Extended Kalman Filter, fusing LIDAR and Radar sensors together to estimate a moving object's state.

This filter is designed to work with Udacity's CarND Term 2 Simulator which can be downloaded here.

State Vector

This EKF implementation uses a 4-dimensional state vector composed of 2D position and 2D velocity.

Simulator Protocol

To communicate with the simulator we're using uWebSocketIO.

Inputs

["sensor_measurement"] => the measurement that the simulator observed (either lidar or radar) as well as the ground truth

Outputs

["estimate_x"] <= kalman filter estimated position x

["estimate_y"] <= kalman filter estimated position y

["rmse_x"] <= x position root mean squared error with respect to ground truth

["rmse_y"] <= y position root mean squared error with respect to ground truth

["rmse_vx"] <= x velocity root mean squared error with respect to ground truth

["rmse_vy"] <= y velocity root mean squared error with respect to ground truth

Build and Run Instructions

This has been tested on Linux, but should be able to run on OS X and Windows as well.

  1. First run install-linux.sh or install-mac.sh to install uWebSocketIO and its dependencies.
  2. mkdir build
  3. cd build
  4. cmake ..
  5. make
  6. ./ExtendedKF

At this point, you can start the simulator.


Other Important Dependencies