Unscented Kalman Filter C++ implementation to estimate the state of a moving object of interest with noisy lidar and radar measurements.
We calculate the root mean squared error of each measurement prediction with the real state position(Px,Py) and velocity(Vx,Vy) of the object.
The NIS "Normalized Innovation Squared" is calculated as well and displayed using a Ipython Jupyter Notebook.
INPUT:
Lidar or radar measurement from sensors on-board:
["sensor_measurement"]
OUTPUT:
UKF estimated positions:
["estimate_x"]
["estimate_y"]
Root mean square errors for positions and velocities using real pose values:
["rmse_x"]
["rmse_y"]
["rmse_vx"]
["rmse_vy"]
- uWebSocketIO
- cmake >= v3.5
- make >= v4.1
- gcc/g++ >= v5.4
- Make a build directory:
mkdir build && cd build
- Compile:
cmake .. && make
- Run:
./UnscentedKF path/to/input.txt path/to/output.txt
.
mkdir build
cd build
cmake -G Xcode ..
[1] "A New Extension of the Kalman Filter to Nonlinear Systems:, S. J. Julier and J. K. Uhlmann, https://www.cs.unc.edu/~welch/kalman/media/pdf/Julier1997_SPIE_KF.pdf
[2] "Unscented Filtering for Spacecraft Attitude Estimation", John L. Crassidis and F. Landis Markley, http://www.acsu.buffalo.edu/~johnc/uf_att.pdf
[3] "The Square-Root Unscented Kalman Filter for State and Parameter-Estimation", Rudolph van der Merwe and Eric A. Wan, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.80.1421&rep=rep1&type=pdf
MIT License Copyright (c) 2017 Alberto Naranjo