// the find
mithi/fusion-ukf
An unscented Kalman Filter implementation for fusing lidar and radar sensor measurements.
A C++ UKF implementation using the CTRV motion model to fuse lidar and radar measurements, originally built for the Udacity self-driving car nanodegree. It's a well-contained reference implementation for anyone learning sensor fusion or needing a starting point for embedded/robotics work.
- Clean separation of concerns across header files (statepredictor, measurementpredictor, stateupdater) makes the UKF pipeline easy to follow and compare against textbook formulations.
- Includes NIS (Normalized Innovation Squared) output for both radar and lidar, which is genuinely useful for tuning process noise parameters and validating filter consistency.
- Diagrams in the README show the algorithm flow and class interactions, which is more useful for understanding the code than most academic implementations that just dump math.
- CTRV model is a realistic improvement over constant-velocity EKF for objects that turn, and the README explicitly quantifies why this matters for RMSE.
- Eigen is vendored directly into src/ as source files rather than as a proper dependency, and it's an old version (pre-3.3 era). Anyone adapting this will likely hit ABI conflicts if their project already uses a different Eigen version.
- No unit tests despite the feedback folder literally containing a screenshot suggesting to add them. The only validation is running against one dataset and eyeballing the output.
- Hard-coded file I/O with a proprietary text format means you can't feed it real sensor data without writing a converter. There's no ROS node, no standard message format, nothing bridging this to actual hardware.
- Last updated in 2020, tied to Udacity's simulator ecosystem which is no longer actively maintained, so the build instructions requiring gcc-6 specifically may fail on modern distros without additional work.