Files
Claude-Test-App/RSSI-Stabilisierung.md

68 lines
3.4 KiB
Markdown

# RSSI-Stabilisierung für BLE Indoor Positioning
## Aktuelles Problem
Die RSSI-Werte der einzelnen Beacons schwanken stark, obwohl bereits ein Kalman-Filter (Q=1.0, R=50.0) und eine Ausreißer-Erkennung (20 dBm) im Einsatz sind.
## Empfohlene Filter-Pipeline
```
Roher RSSI
→ Stufe 1: Median-Filter (Fenster 5-7 Werte) — eliminiert Ausreißer automatisch
→ Stufe 2: Kalman-Filter (Q=0.1, R=3-5) — glättet auf vorgereinigten Daten
→ Gefilterter RSSI
```
Die Literatur zeigt, dass Median + Kalman zusammen 50-70% weniger Schwankung erzeugen als Kalman allein.
## Maßnahmen nach Priorität
### Hoch (Quick Wins)
| Maßnahme | Aufwand | Erwartete Verbesserung |
|----------|---------|----------------------|
| **Kalman-Parameter anpassen** (Q=0.5, R=10.0 statt Q=1.0, R=50.0) | 5 Min | 30-40% stabileres RSSI |
| **Median-Vorfilter** (Sliding Window, Fenster=5) vor dem Kalman-Filter | 1-2 Std | 50-70% weniger Ausreißer |
| **ESP32 Advertising Interval** auf 20-30ms senken | 30 Min | Mehr Datenpunkte für Aggregation |
### Mittel
| Maßnahme | Aufwand | Erwartete Verbesserung |
|----------|---------|----------------------|
| **ESP32 TX Power** auf 0 oder -3 dBm (weniger Multipath-Reflexionen) | 15 Min | 10-20% weniger Multipath |
| **Empirische R-Kalibrierung** (60s Roh-RSSI bei 1m loggen, Varianz = R) | 30 Min | Optimale Kalman-Parameter |
| **ScanFilter auf UUID** setzen (weniger CPU-Last durch irrelevante Geräte) | 15 Min | Weniger Overhead |
| **Adaptiver Kalman-Filter** (R dynamisch aus letzten N Messungen berechnen) | 3-4 Std | 15-25% bessere Dynamik |
### Niedrig (für Bachelorarbeit erwähnenswert)
| Maßnahme | Aufwand | Erwartete Verbesserung |
|----------|---------|----------------------|
| **Sensor Fusion mit IMU** (Accelerometer + Gyroskop, Pedestrian Dead Reckoning) | 2-3 Tage | 25-30% bessere Position |
| **Partikel-Filter** auf Positionsebene | 1-2 Tage | 15-24% bessere Position |
| **Machine Learning** (Fingerprinting mit Random Forest) | Mehrere Tage | Situationsabhängig |
## Kalman-Parameter Tuning
| Szenario | Q (Process Noise) | R (Measurement Noise) |
|----------|-------------------|----------------------|
| Aktuell (suboptimal) | 1.0 | 50.0 |
| Quick Fix (ohne Median) | 0.5 | 10.0 |
| Mit Median-Vorfilter | 0.1 | 3.0 - 5.0 |
**R empirisch bestimmen:** Smartphone 1m vor Beacon halten, 60s Roh-RSSI loggen, Varianz berechnen = R. Typische BLE-Varianz: 4-25 dBm².
## Hardware-Empfehlungen (ESP32)
- **Advertising Interval**: 20-30ms (statt Standard 100ms) → mehr Messpunkte
- **TX Power**: 0 dBm oder -3 dBm (reicht für 3.5x4.5m Raum, reduziert Wandreflexionen)
- **Channel Map**: `ADV_CHNL_ALL` — alle 3 Advertising-Kanäle nutzen (minimiert frequenzspezifisches Fading)
## Quellen
- [Improved BLE Indoor Localization with Kalman-Based Fusion (PMC)](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5461075/)
- [Kalman Filters Explained: Removing Noise from RSSI Signals (Wouter Bulten)](https://www.wouterbulten.nl/posts/kalman-filters-explained-removing-noise-from-rssi-signals/)
- [BLE Channel Diversity, Weighted Trilateration and Kalman Filtering (PMC)](https://pmc.ncbi.nlm.nih.gov/articles/PMC5750706/)
- [Influence of Kalman Filtering on RSSI in Multi-node BLE (ResearchGate 2024)](https://www.researchgate.net/publication/383239178)
- [Practice of BLE RSSI Measurement for Indoor Positioning (MDPI)](https://www.mdpi.com/1424-8220/21/15/5181)