This Project is the sixth task (Project 1 of Term 2) of the Udacity Self-Driving Car Nanodegree program. The main goal of the project is to apply Extended Kalman Filter to estimate the state of a moving object of interest with noisy lidar and radar measurements using C++. Passing the project requires obtaining RMSE values that are lower that the tolerance outlined in the project rubric.
The project was created with the Udacity Starter Code.
This project involves the Term 2 Simulator which can be downloaded here.
Once the install for uWebSocketIO is complete, the main program can be built and run by doing the following from the project top directory.
mkdir build
cd build
cmake ..
make
./ExtendedKF
Tips for setting up your environment can be found here.
-
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
-
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.
- 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
- Run Term 2 Simulator and then
Project 1/2: EKF and UKF
It is asked that RMSE should be less than or equal to the values [.11, .11, 0.52, 0.52].
The RMSE that I get are as following:
Input | RMSE |
---|---|
px | 0.0973 |
py | 0.0855 |
vx | 0.4513 |
vy | 0.4399 |