In this project a Kalman Kilter is used to estimate the state of a moving object of interest with noisy lidar and radar measurements. RMSE values are lower than a specified tolerance.
- mkdir build
- cd build
- cmake ..
- make
- ./ExtendedKF
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"]
- 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
- 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
-
Update package list:
sudo apt update
-
Install Eigen3:
sudo apt install libeigen3-dev
-
Verify installation:
pkg-config --modversion eigen3
Eigen headers are installed in /usr/include/eigen3/
.
-
Include Eigen headers in your C++ files:
#include <Eigen/Dense>
-
When compiling, add this flag:
-I/usr/include/eigen3
-
If using CMake, add to your CMakeLists.txt:
find_package(Eigen3 3.3 REQUIRED NO_MODULE) target_link_libraries(your_target_name Eigen3::Eigen)
After following these steps, Eigen will be available system-wide, eliminating the need to include it in your source directory.
To integrate Eigen into your existing project, update your CMakeLists.txt: