Implementation of UKF on a CTRV (Constant Turn Rate and Velocity) process model for object tracking. The UKF is a powerful technique for performing recursive nonlinear estimations. Compared to Extended Kalman filter, UKF uses a derivative-free approach. UKF is also more accurate than the Extended Kalman Filter and has an equivalent computational complexity.
EKF implimentation of a similar project
- Clone this repo and cd into it.
mkdir build && cd build
cmake ..
make
- Run :
./UnscentedKF
Note: This project requires the Udacity open source simulator : Udacity term 2 sim
-
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
The make file runs without any errors. The RMSE for dataset 1 is as follows :
Input MSE px 0.0701 py 0.0839 vx 0.3446 vy 0.2293 The RMSE for same dataset running EKF :
Input MSE px 0.0974 py 0.0855 vx 0.4517 vy 0.4404 NIS (normalized innovation squared) was used for optimizing the noise parameters. NIS of liadar and radar measurements visualized:
- finish control flow
- achieve acceptable rmse