This project implements a Kalman filter to estimate the state of a moving object of interest with noisy lidar and radar measurements.
Implementation requires obtaining RMSE values that are lower that the tolerance outlined in the specification.
./ExtendedKF
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, clang- 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
uWebSocketIO
== v0.13.0- Ubuntu/Debian: the repository includes
install-ubuntu.sh
that can be used to set up and installuWebSocketIO
- Mac: the repository includes
install-mac.sh
that can be used to set up and installuWebSocketIO
- Windows: use either Docker, VMware, or even Windows 10 Bash on Ubuntu
- Ubuntu/Debian: the repository includes
JSON for Modern C++
- JSON parserCatch2
- Unit-testing framework
- Clone this repo.
mkdir build
cd build
cmake .. -G "Unix Makefiles"
make
make test
- optional
The project uses uWebSocketIO
request-response protocol to communicate in
communicating with the simulator.
INPUT: values provided by the simulator to the c++ program
["sensor_measurement"] => the measurement that the simulator observed (either lidar or radar)
OUTPUT: values provided by the c++ program to the simulator
["estimate_x"] <= Kalman filter estimated position x
["estimate_y"] <= Kalman filter estimated position y
["rmse_x"]
["rmse_y"]
["rmse_vx"]
["rmse_vy"]
- Implement program options to filter measurements
- Experiment more with Kalman filter state initialization. Eg. use truncated normal distribution with 0 mean to initialize speed
- Add more unit/functional tests