###OVERIVEW
ekf-slam algorithm is referred from here and motion model is odometry model.
I have use matplotlib for visualization. It a C++ wrapper header file for python matplotlib. So you need to have python matplotlib installed to run the visualization.
If you find problems to wrap python in the C++ code. You can use the networked version. It used websocket to establish communication between EKF and data visualization. You have to install related modules (Websocket).