https://github.com/jeija/espargos-wifi-channelcharting
Channel Charting demo for ESPARGOS datasets, related to paper "ESPARGOS: Phase-Coherent WiFi CSI Datasets for Wireless Sensing Research"
https://github.com/jeija/espargos-wifi-channelcharting
angle-of-arrival channel-charting channel-state-information localization mimo mimo-ofdm positioning wifi
Last synced: 19 days ago
JSON representation
Channel Charting demo for ESPARGOS datasets, related to paper "ESPARGOS: Phase-Coherent WiFi CSI Datasets for Wireless Sensing Research"
- Host: GitHub
- URL: https://github.com/jeija/espargos-wifi-channelcharting
- Owner: Jeija
- Created: 2024-08-23T12:36:00.000Z (8 months ago)
- Default Branch: master
- Last Pushed: 2024-08-31T08:26:46.000Z (8 months ago)
- Last Synced: 2025-03-28T21:36:34.281Z (about 1 month ago)
- Topics: angle-of-arrival, channel-charting, channel-state-information, localization, mimo, mimo-ofdm, positioning, wifi
- Language: Jupyter Notebook
- Homepage:
- Size: 40.8 MB
- Stars: 13
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Channel Charting with WiFi CSI Datasets generated by ESPARGOS
This repository demonstrates how to apply Channel Charting to WiFi Channel State Information datasets captured with [ESPARGOS](https://espargos.net/).
The Jupyter Notebook `TripletNeuralNetwork.ipynb` is also the source code for the results presented in the paper
> [Florian Euchner, Stephan ten Brink: "ESPARGOS: Phase-Coherent WiFi CSI Datasets for Wireless Sensing Research"](https://arxiv.org/abs/2408.16377)
In that paper, we present ESPARGOS datasets, which is a collection of publicly available WiFi Channel State Information datasets with large numbers of phase-synchronous MIMO antennas.
We consider [Channel Charting](https://channelcharting.github.io/) as one potential application of these datasets.
The advantage of ESPARGOS over our previous [DICHASUS](https://dichasus.inue.uni-stuttgart.de/) datasets is that ESPARGOS works with standard WiFi devices and is realtime-capable, making it very easy to transfer research results into practical applications.**Objective of Channel Charting**: Perform absolute or at least relative localization of the transmitter.
## Summary and Results
### Siamese Neural Network-based "Augmented" Channel Charting applied to [`espargos-0001`](https://espargos.net/datasets/data/espargos-0001/): `SiameseNeuralNetwork.ipynb`
* Four distributed 4 × 2 ESPARGOS antenna arrays, dominant LoS path
* ["AoA-Augmented Channel Charting"](https://github.com/Jeija/ToA-AoA-Augmented-ChannelCharting/): Siamese Neural Network-based Channel Charting (with fused CSI-based / timestamp-based dissimilarity metric) is augmented by classical triangulation
Training Animation
Top View Map
Typ. Performance
![]()
![]()
CT
0.99
TW
0.99
KS
0.10
MAE
0.13m
CEP
0.12m
CT = Continuity, TW = Trustworthiness, KS = Kruskal Stress, MAE = Mean Absolute Error, CEP = Circular Error Probable
### Triplet Neural Network-based Channel Charting applied to [`espargos-0002`](https://espargos.net/datasets/data/espargos-0002/): `TripletNeuralNetwork.ipynb`
* One large 8 × 4 ESPARGOS antenna array
* Metal wall to ensure NLoS propagation in large parts of measurement area (whenever robot is behind wall from point of view of antenna array)
* Triplet Neural Network learns channel chart based on CSI data and timestamps
* No augmentation with model-based approach: The channel chart coordinates can be arbitrarily translated / rotated / scaled / flipped (affine transformation) compared to the true physical coordinates.
Training Animation
Top View Map
Typ. Performance
![]()
![]()
CT
0.96
TW
0.96
KS
0.20
MAE*
0.44m
CEP*
0.42m
CT = Continuity, TW = Trustworthiness, KS = Kruskal Stress, MAE = Mean Absolute Error, CEP = Circular Error Probable
\* = after optimal affine transformation from Channel Chart coordinates to physical coordinates is applied
### Prerequisites
Our code is based on Python, TensorFlow, NumPy, SciPy and Matplotlib.
Source files are provided as Jupyter Notebooks, which can be opened directly here on GitHub or using e.g. [https://jupyter.org/](JupyterLab).We run our Channel Charting experiments on a JupyterHub server with NVMe storage, AMD EPYC 7262 8-Core Processor, 64GB RAM, and a NVIDIA GeForce RTX 4080 GPU for accelerating TensorFlow.
All indications of computation times are measured on this system.
It should also be possible to run our notebooks on less performant systems.### Citation
```
@inproceedings{euchner2024espargos,
author = {Euchner, Florian and ten Brink, Stephan},
title = {{ESPARGOS: Phase-Coherent WiFi CSI Datasets for Wireless Sensing Research}},
booktitle = {Kleinheubacher Tagung},
year = {2024}
}
```### Other Resources
* [Christoph Studer's Channel Charting Website](https://channelcharting.github.io/)
* [Original ESPARGOS Introduction Paper](https://ieeexplore.ieee.org/abstract/document/10104556)
* [ESPARGOS Website](https://espargos.net/)
* [Our tutorial on dissimilarity metric-based Channel Charting](https://dichasus.inue.uni-stuttgart.de/tutorials/tutorial/dissimilarity-metric-channelcharting/)
* [Our tutorial on Triplet Neural Network-based Channel Charting](https://dichasus.inue.uni-stuttgart.de/tutorials/tutorial/channelcharting/)
* [Good recent paper on joint ToA / AoA-based localization](https://arxiv.org/pdf/2207.08512.pdf)
* [Other paper doing something similar to WiFi-based Channel Charting, but calling it "WiCluster"](https://arxiv.org/abs/2107.01002)