Skip to content

ETH-PBL/WakeLoc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eco-WakeLoc: An Energy-Neutral and Cooperative UWB Real-Time Locating System

Eco-WakeLoc is an energy-neutral cooperative ultra-wideband (UWB) real-time locating system (RTLS) that combines wake-up radio (WuR) technology with energy harvesting to achieve centimeter-level indoor localization while maintaining energy neutrality. The system activates anchor nodes only on demand, eliminating constant energy consumption while achieving high positioning accuracy through cooperative localization protocols.

An in-depth analysis of the system can be found here: TODO (arXiv)

Indoor localization systems face a fundamental trade-off between energy efficiency and responsiveness. Traditional real-time locating system (RTLS) either require continuously powered infrastructure, limiting their scalability, or are limited by their responsiveness. This work introduces Eco-WakeLoc, an energy-neutral cooperative ultra-wideband (UWB) localization system that exploits ultra-low power wake-up radio (WuR) and energy harvesting. By activating anchor nodes only on demand, the system eliminates constant energy consumption while achieving centimeter-level positioning accuracy. Eco-WakeLoc employs cooperative localization: active tags initiate ranging exchanges, while passive tags opportunistically reuse these messages for time difference of arrival (TDOA) positioning. This reduces coordination overhead and improves scalability. A novel energy-aware scheduling algorithm based on additive-increase/multiplicative-decrease (AIMD) dynamically adjusts localization rates according to the harvested energy, maximizing the performance of the whole sensor network while ensuring long-term energy neutrality. A comprehensive evaluation demonstrates centimeter-level accuracy: active tags achieve 21.89 cm average localization error using Levenberg-Marquardt trilateration, and passive tags reach 25.70 cm through cooperative TDOA – all whilst consuming as little as 3.22 mJ per localization for active tags, 951 µJ for passive tags, and 353 µJ for anchors. Real-world deployment on a quadruped robot with nine anchors confirms practical feasibility, achieving 43 cm average accuracy in dynamic indoor environments. Year-long energy-aware simulations show up to 589 localizations per tag per day under high-light conditions are achievable, with most nodes retaining over 75% battery capacity after one year. Eco-WakeLoc demonstrates that high-accuracy indoor localization can be achieved at scale without continuous infrastructure operation, combining energy neutrality, cooperative positioning, and adaptive scheduling to enable maintenance-free deployments suitable for large-scale Internet of Things applications.

If you use Eco-WakeLoc in an academic or industrial context, please cite the following publication:

@misc{cortesi25_wakeloc,
  title          = {WakeLoc: An Ultra-Low Power, Accurate and Scalable On-Demand RTLS using Wake-Up Radios},
  author         = {Silvano Cortesi and Christian Vogt and Michele Magno},
  year           = 2025,
  doi            = {10.48550/arXiv.2504.20545},
  url            = {https://doi.org/10.48550/arXiv.2504.20545},
  eprint         = {2504.20545},
  archiveprefix  = {arXiv},
  primaryclass   = {cs.NI}
}

Hardware

  • Anchor and Tag Nodes:
    • UWB Transceiver: Qorvo DWM3000 for centimeter-level ranging
    • Wake-up Radio: WakeMod (6.9 µW idle consumption, -72.6 dBm sensitivity)
    • Microcontroller: STM32U535 ARM Cortex-M33 with FPU
    • Energy Harvesting: e-peas AEM10900 boost converter with MPPT
    • Battery: 35 mAh LiPo

Repository Structure

├── 01_hardware/                                # Hardware design files (Horizon 2.7.1+ required)
│   ├── fabrication_output/                     # Gerber files and assembly documentation
│   └── pool/                                   # Component libraries and 3D models
├── 02_firmware/                                # Embedded firmware (coming soon)
├── 03_data/                                    # Data processing and analysis
│   ├── indoor_harvesting_dataset/              # Real-world solar harvesting measurements
│   ├── preprocessed_indoor_harvesting_dataset/ # Processed harvesting data
│   └── solar_measurements/                     # Hardware characterization scripts
├── 04_simulation/                              # Rust simulation framework
│   └── src/bin/                                # Simulation executables
│       ├── simulate.rs                         # Main simulation runner
│       ├── tuning_aimd.rs                      # AIMD parameter tuning
│       └── tuning_constantrate.rs              # Constant-rate parameter tuning
└── 05_simulation_results/                      # Simulation results and analysis
    └── analyse_and_plot.py                     # Results visualization and analysis 

Prerequisites

  • Rust: 1.89.0 or later
  • Python Environment: uv 0.8.22 (for data processing)
  • Hardware Design: Horizon 2.7.1 or later (for PCB design)
  • Wake-up Radio: WakeMod integration

Getting Started

1. Data Download and Preprocessing

Download the indoor harvesting dataset and preprocess it for simulation:

# Download dataset (instructions in 03_data/indoor_harvesting_dataset/)
# Preprocess the harvesting data
cd 03_data/indoor_harvesting_dataset/
bash download_dataset.bash

2. Data Preprocessing

Process the raw harvesting measurements by applying the solar model:

cd 03_data/preprocessed_indoor_harvesting_dataset/
uv run preprocess_indoor_harvesting_dataset.py

3. Run Simulations

Main Simulation

cd 04_simulation/
cargo run --bin simulate --release

Parameter Tuning

To reconstruct parameter tuning, use:

For AIMD algorithm parameter optimization

cargo run --bin tuning_aimd --release

For constant-rate baseline tuning

cargo run --bin tuning_constantrate --release

4. Analysis and Visualization

Analyze simulation results and generate plots:

cd 05_simulation_results/
uv run analyse_and_plot.py

And for solar model

cd 03_data/solar_measurements
uv run solar_characterization_and_plot.py

System Architecture

Localization Protocols

WakeLoc Protocol: Combines Two-Way Ranging (TWR) and Time Difference of Arrival (TDOA):

  1. Active Localization: Tags initiate TWR with multiple anchors for precise positioning
  2. Passive Localization: Other tags overhear TWR messages and perform TDOA calculations
  3. Cooperative Scheduling: Reduces communication overhead through message reuse

Energy Management

AIMD-Based Scheduling:

  • Additive Increase: Gradually increases localization frequency when energy is abundant
  • Multiplicative Decrease: Rapidly reduces activity when energy is scarce
  • Energy Awareness: Adapts to real-time harvesting conditions and battery state

Data and Results

The repository includes comprehensive simulation results demonstrating:

  • Energy Neutrality: Year-long simulations showing sustainable operation
  • Localization Performance: Statistical analysis of positioning accuracy
  • Algorithm Comparison: AIMD vs. constant-rate scheduling performance
  • Hardware Validation: Real-world deployment results and characterization data

Simulation results are stored in SQLite databases within 05_simulation_results/ according to previously described processing.

Hardware Design

Complete hardware design files are provided in 01_hardware/:

  • PCB Design: Full schematic and layout files (Horizon 2.7.1)
  • Fabrication Files: Gerber files, drill files, and assembly drawings
  • Component Libraries: Custom footprints and 3D models
  • Bill of Materials: Complete component specifications and sourcing information

The hardware design integrates WakeMod wake-up radio modules for ultra-low power operation and Qorvo DWM3000 UWB transceivers for precise ranging.

Acknowledgments

This work was conducted at the D-ITET Center for Project-Based Learning, ETH Zürich.

For questions and support, please contact: silvano.cortesi@pbl.ee.ethz.ch

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published