Self-Driving Car Engineer Nanodegree Program
The goal of this project is to build an Unscented Kalman Filter using C++ and use it to estimate the state of a moving object of interest with noisy LIDAR and RADAR measurements.
The measurements data is provided in the form of a simulator.
The key metrics are RMSE values for both position and velocity of the tracked object.
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 this concept in the classroom for the required version and installation scripts.
The success metrics for this project are the RMSE values for 2 datasets.
The values shoule be below:
0.09
forP x
,0.10
forP y
,0.40
forV x
,0.30
forV y
.
The folowing table lists the results of both datasets:
RMSE | Dataset 1 | Dataset 2 |
---|---|---|
P x | 0.0979 | 0.1008 |
P y | 0.1208 | 0.1146 |
V x | 0.8136 | 0.9325 |
V y | 0.9955 | 1.0208 |
The code skeleton for this project was provided by udacity on this repo.
The main program in under the src
directory.
.
├── json.hpp
├── main.cpp
├── measurement_package.h
├── tools.cpp
├── tools.h
├── ukf.cpp
└── ukf.h
The main changes were to the folowing files:
ukf.cpp
- initializes the Unscented Kalman filter, calls the predict and update function, defines the predict and update functionstools.cpp
- function to calculate RMSE
- cmake >= 3.5
- All OSes: click here for installation instructions
- make >= 4.1 (Linux, Mac), 3.81 (Windows)
- Linux: make is installed by default on most Linux distros
- Mac: install Xcode command line tools to get make
- Windows: Click here for installation instructions
- gcc/g++ >= 5.4
- Linux: gcc / g++ is installed by default on most Linux distros
- Mac: same deal as make - install Xcode command line tools
- Windows: recommend using MinGW
- Clone this repo.
- Make a build directory:
mkdir build && cd build
- Compile:
cmake .. && make
- On windows, you may need to run:
cmake .. -G "Unix Makefiles" && make
- On windows, you may need to run:
- Run it:
./ExtendedKF