MMWiLoc: A Multi-Sensor Dataset and Robust Device-Free Localization Method Using Commercial Off-The-Shelf Millimeter Wave Wi-Fi Devices
The Data is available at the following link:
https://pan.baidu.com/s/1iYMAeTR7FSUjaYhVwq9ZQg?pwd=pjmv
or
https://drive.google.com/drive/folders/1ao1aB2wNAWePW--nphxJXJFen__ukPFO?usp=sharing
More data and documentation will be added to the repository in the future, but the above link contains the core measurement assets used in the experiments.
This repository contains research code for millimeter-wave WiFi localization, with millimeter-wave radar processing code included as a reference baseline.
The project is organized around two main scripts:
mmwifi_process.pyfor millimeter-wave WiFi localizationradar_process.pyfor radar-based reference processing
Arxiv: https://arxiv.org/pdf/2506.11540
Thanks to the following open-source projects that informed parts of this repository:
- PreSenseRadar/OpenRadar for the radar processing pipeline reference
- seemoo-lab/talon-sector-patterns for the measured mmWiFi sector patterns
The main goal of the repository is to study how localization can be performed from millimeter-wave wireless measurements and compared against radar-style sensing pipelines.
At a high level, the codebase includes:
- a WiFi localization pipeline built around sector sweep measurements and sparse reconstruction
- a radar reference pipeline built around range, angle, Doppler, and tracking
- measurement assets used to model directional behavior
- tracking and evaluation tools for analyzing estimated trajectories
- CSI conversion and parsing helpers for data preparation
The WiFi side of the repository focuses on converting directional millimeter-wave WiFi measurements into angle and position estimates. It uses measured sector patterns from the repository as a sensing dictionary and applies sparse estimation methods to infer likely target directions.
The main implementation lives in mmwifi_process.py.
The radar side provides a conventional mmWave radar processing pipeline for comparison. It includes ADC loading, range processing, beamforming, detection, Doppler estimation, clustering, and target tracking.
The main implementation lives in radar_process.py.
The repository also contains scripts for evaluating localization outputs against ground-truth trajectories or shapes, and for combining metrics across multiple experiments.
Relevant files include:
precision.pycombined_summary.py
Several helper scripts support data preparation and experimentation, including CSI conversion and parsing tools.
Relevant files include:
save_to_h5.pysubwifi_process.pyutil.pyomp.py
mmwifi_process.py— WiFi localization entry pointestimate_meas_matrix.py— measurement matrix estimationradar_process.py— radar reference entry pointprecision.py— evaluation utilitiescombined_summary.py— combined experiment summariessave_to_h5.py— CSI to HDF5 conversionsubwifi_process.py— processed CSI reading helpersutil.py— shared utility functionsstone_tracker.py— Stone Soup-based tracking utilitiesdsp/— radar DSP modulesdataloader/— radar data loading helperstracking/— radar tracking implementationclustering/— clustering helpersprecise_measurements/— measured WiFi sector pattern dataarray_factor/— antenna/array factor reference datalegacy_measurements/— legacy calibration and plotting materialsparser_scripts/— parser examples and support scripts
If starting from the code, begin with:
mmwifi_process.pyradar_process.py
These two scripts define the primary workflows for the repository.