Environment setup, algorithm docu and boilerplate code provided by Udacity under https://github.com/udacity/CarND-Extended-Kalman-Filter-Project. Improvements where made to:
- src/FusionEKF.cpp
- src/FusionEKF.h
- src/kalman_filter.cpp
- src/kalman_filter.h
- src/tools.cpp
In FusionEKF.cpp, initialized the Kalman Filter, prepared the Q and F matrices for the prediction step, and called the radar and lidar update functions. In kalman_filter.cpp, filled out the Predict(), Update(), and UpdateEKF() functions. In tools.cpp, filled the functions that calculate root mean squared error (RMSE) and the Jacobian matrix.
Objective is implementing a kalman filter in C++ to estimate the state of a moving object of interest with noisy lidar and radar measurements. Passing the project requires obtaining RMSE values that are lower than the tolerance outlined in the project rubric, pls see https://review.udacity.com/#!/rubrics/748/view
This project involves the Term 2 Simulator which can be downloaded here: https://github.com/udacity/self-driving-car-sim/releases. A server package uWebSocketIO is setting up a connection from the C++ program to the simulator, which acts as the host.
Basic Build Instructions
- Clone this repo.
- Make a build directory: mkdir build && cd build
- Compile: cmake .. && make
- Run it: ./ExtendedKF
- Run and start the simulator
Lidar measurements are red circles, radar measurements are blue circles with an arrow pointing in the direction of the observed angle, and estimation markers are green triangles.
The results Dataset 1 are:
The results Dataset 2 are: