finds.dev← search

// the find

mithi/fusion-ukf

★ 301 · C++ · MIT · updated Jun 2020

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →