68 lines
3.4 KiB
Markdown
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)
|