martedì 4 novembre 2014

Trilaterazione 2D con beacon


L'algoritmo di trilaterazione e' una tecnica che permette di individuare la posizione di un punto sconosciuto conosciuto le distanze dello stesso da punti quotati. La versione 3D e' alla base del posizionamento GPS ma quello che mi interessa e' la sua versione 2D per cercare di poter fare posizionamento indoor mediante antenne WiFi o beacons

Su questo argomento esiste una vasta letterature ingegneristica con risultati che vanno da ottimi a pessimi.

Nell'immagine viene riportato il metodo di calcolo (non ricordo la fonte)
Per semplicita' uno dei punti di riferimento e' in (0,0) mentre un altro e' sull'asse X (d,0). Il terzo punto e' in (i,j) mentre le distanze del punto incognito sono  rispettivamente R1, R2 ed R3



Per la prova ho usato tre beacons. Ho quindi realizzato una curva di taratura (per quanto possibile) che mi convertisse il valore di RSSI in metri

La prova e' stata effettuata creando una griglia regolare di 5x5 m e 3x3 m ed effettuando misure su alcuni nodi. In blu sono riportati i valori reali ed in rosso le posizioni calcolate
Importante: per ogni posizione e' stato preso il valore istantaneo di RSSI senza effettuare medie  di lunga durata perche' il tentativo era di tracciare il percorso di una persona in movimento

Risultati griglia 5x5

Risultati griglia 3x3 m

E' evidente che la prova ha avuto un esito decisamente negativo. L'algoritmo di calcolo di trilaterazione funziona, cio' che difetta e' la stabilita' del segnale dei beacons e l'impossibilita' di avere una legge affidabile per convertire i valori di RSSI in distanze