Udacity Self-Driving Car Engineer Nanodegree Program
This project utilizes an extended kalman filter to estimate the state of a moving object of interest with noisy lidar and radar measurements. Maintaining low RMSE values is the main focus of this project, as any object tracking software would be useless in the real-world if it is not accurate.
Running the code requires connecting to the Udacity CarND Term 2 Simulator, which can be downloaded here.
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 the uWebSocketIO Starter Guide page in the classroom within the EKF Project lesson for the required version and installation scripts.
Once the install for uWebSocketIO is complete, the main program can be built and run by executing in the Linux bash:
$ git clone https://github.com/briansfma/CarND-Extended-Kalman-Filter-Project
$ cd CarND-Extended-Kalman-Filter-Project
$ mkdir build
$ cd build
$ cmake ..
$ make
$ ./ExtendedKF
If it is not running already, launch the project.
$ cd CarND-Extended-Kalman-Filter-Project
$ cd build
$ ./ExtendedKF
When ExtendedKF
has initialized successfully, it will output to terminal
Listening to port 4567
Launch the simulator term2_sim.exe
. Select "Project 1/2: EKF and UKF" from the menu. Upon successful connection to the simulator, ExtendedKF
will output to terminal
Connected!!!
Click the "Start" button and the simulator will run. ExtendedKF
will begin outputting x
(position) and P
(covariance) values to the terminal. The error values will be outputted to the simulation screen itself under "RMSE". Green triangular markers denote where the Kalman Filter believes the object is.
For reference, the project rubric requires RMSE values equal to or less than [.11, .11, 0.52, 0.52]. This code should perform consistently to the example image across multiple situations.
- 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