3.4 KiB
3.4 KiB
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)
- Kalman Filters Explained: Removing Noise from RSSI Signals (Wouter Bulten)
- BLE Channel Diversity, Weighted Trilateration and Kalman Filtering (PMC)
- Influence of Kalman Filtering on RSSI in Multi-node BLE (ResearchGate 2024)
- Practice of BLE RSSI Measurement for Indoor Positioning (MDPI)