This project consists in the implementation of a extented Kalman filter in C++. Extended Kalman Filter (EKF) is a nonlinear version of the Kalman Filter, which is an algorithm that uses a series of measurements observed over time and help us to track the position of objects.
The process is as follows. We predict the position of the object after a period of time ฮt, and then we compare that prediction with what the sensor (Radar or Lidar) measurement provides. The Kalman filter will put more weight on either the predicted location or the measured location depending on the uncertainty of each value. The flow can be seen in this diagram:
This project involves the 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.
Once requirements are fullfield, you can run the code following the next steps:
- mkdir build
- cd build
- cmake ..
- make
- ./ExtendedKF
- cmake >= 3.5
- All OSes: click here for installation instructions
- make >= 4.1
- 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
- Clone this repo.
- Make a build directory:
mkdir build && cd build
- Compile:
cmake .. && make
- On windows, you may need to run:
cmake .. -G "Unix Makefiles" && make
- On windows, you may need to run:
- Run it:
./ExtendedKF
This code is intented to follow the Google's C++ style guide.