Skip to content

sgalkin/CarND-T2P1

 
 

Repository files navigation

Extended Kalman Filter Project

Udacity - Self-Driving Car NanoDegree CircleCI

This project implements a Kalman filter to estimate the state of a moving object of interest with noisy lidar and radar measurements.

Implementation requires obtaining RMSE values that are lower that the tolerance outlined in the specification.


Usage

./ExtendedKF

Dependencies

Runtime

Tools

Libraries not included into the project

  • uWebSocketIO == v0.13.0
    • Ubuntu/Debian: the repository includes install-ubuntu.sh that can be used to set up and install uWebSocketIO
    • Mac: the repository includes install-mac.sh that can be used to set up and install uWebSocketIO
    • Windows: use either Docker, VMware, or even Windows 10 Bash on Ubuntu

Libraries included into the project

Build

  1. Clone this repo.
  2. mkdir build
  3. cd build
  4. cmake .. -G "Unix Makefiles"
  5. make
  6. make test - optional

Protocol

The project uses uWebSocketIO request-response protocol to communicate in communicating with the simulator.

INPUT: values provided by the simulator to the c++ program

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

OUTPUT: values provided by the c++ program to the simulator

["estimate_x"] <= Kalman filter estimated position x
["estimate_y"] <= Kalman filter estimated position y
["rmse_x"]
["rmse_y"]
["rmse_vx"]
["rmse_vy"]

TODOs

  • Implement program options to filter measurements
  • Experiment more with Kalman filter state initialization. Eg. use truncated normal distribution with 0 mean to initialize speed
  • Add more unit/functional tests

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.7%
  • C 1.1%
  • Other 0.2%