/Unscented-Kalman-Filter-with-LiDAR-and-Radar

Fused noisy LiDAR and Radar sensor measurements to estimate the states of multiple cars on highway using Unscented Kalman Filter(UKF).

Primary LanguageC++MIT LicenseMIT

Unscented Kalman Filter with LiDAR and Radar

License GitHub Issues Contributions welcome

🛰️ Harnessing the power of the Unscented Kalman Filter (UKF) for precision tracking of vehicles on a highway using a fusion of noisy LiDAR and Radar sensor measurements.


Project Details

This initiative aims to improve vehicular tracking by synergizing data from LiDAR, which primarily offers high-resolution spatial information, and Radar, known for its velocity detection capabilities even in challenging weather conditions.

Key Components:

  1. Dynamic Scene Rendering: Utilizing highway.h, the simulation crafts a highway scenario with three auxiliary traffic vehicles and an ego car. The entire visualization pivots around the ego vehicle, establishing a relative coordinate system.

  2. Algorithmic Insight: The Unscented Kalman Filter (UKF) is employed due to its robustness in handling non-linear process and measurement functions, inherent to vehicular movements and sensor fusion.

  3. CTRV Model: Vehicles, unlike other entities, follow the Constant Turn Rate and Velocity (CTRV) model. This ensures a more accurate representation of real-world vehicular dynamics.

  4. Data Visualization:

    • LiDAR Data: Represented by red spheres showcasing precise (x,y) positional detections.
    • Radar Data: Illustrated by purple lines, they exhibit the magnitude of velocity in the detected direction.
    • Predictions: Green spheres, hovering over cars, extrapolate future positions based on current state estimations.
  5. Accuracy Metrics: Root Mean Squared Error (RMSE) values, calculated in real-time, offer insights into the (x,y) positional and (Vx, Vy) velocity accuracies of our UKF predictions.


Algorithm Performance and Tuning

Parameter tuning in UKF is imperative for optimal performance. Several parameters, including the state vector x_, covariance matrix P_, longitudinal acceleration noise std_a_, and yaw acceleration noise std_yawdd_, underwent rigorous testing. The chosen set consistently ensures that RMSE values remain within stipulated thresholds, underscoring the system's reliability.


Build Requirements

  • cmake >= 3.5
  • 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
  • PCL (Point Cloud Library) 1.2
    • Vital for processing and visualizing point cloud data from LiDAR.

Build & Execution Instructions

git clone https://github.com/ayushgoel24/Unscented-Kalman-Filter-with-LiDAR-and-Radar
cd Unscented-Kalman-Filter-with-LiDAR-and-Radar
mkdir build && cd build
cmake .. && make
./ukf_highway

Contributions and Feedback

We value community-driven enhancements. Whether it's algorithmic refinements, performance tuning, or any other improvements, please refer to our Contribution Guidelines and be part of this revolutionary project.


License

Distributed under the MIT License. Consult the LICENSE.md file for detailed permissions and restrictions.


Driven by the spirit of open-source collaboration and the pursuit of precision. Thank you for joining us on this journey! Safe and informed driving ahead! 🚗🛰️🌍