sf_core is a 3D sensor fusion and tracking engine built in Rust, specifically designed for processing data from the MAN TruckScenes dataset. The project aims to provide high-performance, safe, and efficient sensor fusion capabilities for Advanced Driver Assistance Systems (ADAS) and autonomous driving applications.
This repository contains the core logic for tracking and fusing data from various sensors (like radar, camera, and lidar) based on ego-vehicle kinematics and ground truth inputs. Features include:
- Extended Kalman Filter (EKF)-based object tracking.
- Modular sensor parsers and data structures (ego kinematics, camera, radar).
- Evaluation metrics and dataset loaders tailored for TruckScenes.
The src/ directory is organized into the following key modules:
dataset/: Parsers for ego kinematics, ground truth data, radar binaries, and token databases.eval/: Tools for metric calculation and ground truth verification.math/: Core math utilities including matrix operations, cholesky decomposition, and coordinate transformations (usingnalgebra).sensors/: Implementations of sensor models and parsers (ego, camera, radar).tracker/: The core tracking engine, featuring EKFs, object lifecycle management, bipartite matching logic, and spawning heuristics.
- Rust Toolchain (edition 2024 or later)
cargo(package manager)
To build the project:
cargo build --releaseContinuous Integration (CI) is set up via GitHub Actions. To run tests and linter locally:
cargo test
cargo clippy -- -D warnings
cargo fmt --all -- --checkThis engine is built to ingest and process the MAN TruckScenes dataset. Ensure your data paths and token databases are correctly configured when running the tracker.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.