sgalkin / CarND-T2P2

Udacity CarND Unscented Kalman Filter Project

Home Page:https://www.udacity.com/drive

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unscented Kalman Filter Project

Udacity - Self-Driving Car NanoDegree CircleCI

This project implements Unscented 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

./UnscentedKF [-R] [-L]
  • -R - use only radar measurements
  • -L - use only laser measurements
  • default - use both types of measurement

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

  • JSON for Modern C++ - JSON parser
  • Catch2 - Unit-testing framework
  • ProgramOptions.hxx - Single-header program options parsing library for C++11
  • Eigen - C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms

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

  • Experiment more with Kalman filter state initialization. Eg. use truncated normal distribution with 0 mean to speed, turn rate, and acceleration
  • Add more unit/functional tests

About

Udacity CarND Unscented Kalman Filter Project

https://www.udacity.com/drive


Languages

Language:C++ 98.7%Language:C 1.1%Language:CMake 0.2%Language:Shell 0.0%