Quale algoritmo dovrei usare per la geolocalizzazione wifi?


16

School Use Pickup Use Case (aggiornamento)

Potrebbe essere utile entrare in un caso d'uso più concreto invece dell'esempio di cortile originale di seguito. Le forze dell'ordine locali hanno iniziato a reprimere l'uso degli SMS e dei telefoni cellulari nelle zone scolastiche. Ciò presenta un problema per i genitori che raccolgono i bambini dopo una funzione di scuola media. Anche per coloro che ostentano la legge, la torre cellulare diventa rapidamente sovraccarica quando centinaia di bambini chiamano i loro genitori contemporaneamente. Il campus è grande, con copertura wifi. Sembra che dovrebbe essere possibile scrivere un'app mobile che consenta all'utente di un telefono cellulare di inviare un messaggio di testo contenente un elenco di livelli di potenza del segnale wifi a un servizio web. Il servizio Web creerebbe quindi una correzione della posizione e invierebbe il messaggio al dispositivo di navigazione di bordo del genitore. Il genitore avrebbe quindi guidato nella posizione corretta nel campus.

Backyard Use Case (originale) Quando porto il mio laptop nel mio cortile e scelgo "Visualizza reti disponibili", vedo un elenco dei miei 4 vicini. Mentre cammino, la potenza del segnale relativo dei miei vicini cambia.

Vorrei stare con il mio laptop in luoghi noti nel mio cortile, fare clic sulla mappa e raccogliere punti con 4 diverse intensità del segnale.

Dopo aver raccolto molti (ma non troppi) questi punti di calibrazione, vorrei quindi scrivere un programma che rileva 4 livelli di potenza del segnale wifi e stima una posizione sotto forma di un'ellisse di errore. I segnali potrebbero essere misurati utilizzando un dispositivo diverso da quello utilizzato per raccogliere i punti di calibrazione originali.

Quale algoritmo dovrei usare?

Non voglio disturbare i miei vicini chiedendo loro se posso entrare e controllare la posizione esatta del loro router.

Posso presumere, tuttavia, la posizione dei router dei miei vicini non cambia.



4
penso che voglia solo fare triangolazioni, non sulle spalle ...
Marinheiro,

Nessun piggybacking: solo la forza del segnale, che è legale su misura, giusto? Non ho intenzione di " cercare su Google
Kirk Kuykendall

Risposte:


6

Sembra che tu non conosca molto bene le posizioni dei segnali, quindi devi prima stimarli e poi, date queste stime, triangolare la tua posizione.

Se si desidera precisione e realismo, prendere in considerazione l'adozione di un modello di verosimiglianza per le intensità del segnale, la ricerca della massima verosimiglianza e la creazione di una mappa con griglia della probabilità di localizzazione calcolata dalle stime della verosimiglianza massima. Il massimo globale sulla griglia identifica la migliore stima della posizione e i contorni (relativi al massimo) forniscono set di confidenza per quella posizione.

Un modello di probabilità generale si ottiene ponendo una formula per l'attenuazione del segnale e consentendo errori. Non andrai molto lontano con una formula completamente generale (con una funzione di attenuazione dipendente dall'angolo e dalla posizione), quindi dovrai semplificare. Ad esempio, potresti considerare una funzione di attenuazione "universale", chiamarla f , in modo che se l'intensità della sorgente in una posizione WiFi x è uguale a a, l'intensità prevista in un'altra posizione y è data da

z (y; x) = af (| y - x |).

Ad esempio, potresti considerare l'attenuazione del quadrato inverso per cui f (t) = 1 / t ^ 2 purché la distanza t sia maggiore di una soglia minima. Come ulteriore semplificazione, potresti prendere la lettura della forza z (y; x) nella posizione y in modo che la sorgente in x differisca dal valore atteso da un errore normalmente distribuito; presumere che tutti gli errori siano indipendenti; e assumere tutti hanno la stessa deviazione standard ( s ). Il contributo alla probabilità logaritmica di una lettura di forza z diventa quindi

L (y, x) = - [(z (y; x) - af (| yx |) ^ 2 / s ^ 2 + ln (s)] / 2.

La probabilità di log da massimizzare è la doppia somma di L (y, x) su tutte le posizioni y e tutte le fonti x . È una funzione delle posizioni sconosciute, delle intensità della sorgente sconosciute e della deviazione standard sconosciuta degli errori. E 'semplice trovare ottimale deviazione standard e intensità sorgente ottimali (prendere derivate parziali, impostare quelli a zero, e risolvere), ma per le funzioni di attenuazione realistiche f ha un problema non lineare per trovare le posizioni. Tuttavia, nel tuo esempio coinvolge solo 13 parametri, quindi dovresti essere in grado di scaricarlo, diciamo, in un ottimizzatore multivariato Newton-Raphson e ottenere rapidamente una buona risposta. (La letteratura statistica è piena di metodi per risolvere questo tipo di equazioni.)

Se si assume inoltre che il secondo dispositivo abbia una sensibilità proporzionalmente maggiore rispetto al dispositivo di raccolta dati, farà poca differenza nel modello che ho proposto (poiché le intensità del segnale entrano in modo moltiplicativo). In effetti, se si lascia che gli errori si ridimensionino con intensità (quindi hanno una deviazione standard a * s * anziché s ) la differenza tra i dispositivi dovrebbe essere irrilevante.

Per mantenere questo semplice, ho saltato alcune delizie statistiche, come il fatto che si tratta di un problema di intervallo di previsione multivariato, non di un intervallo di confidenza. Se la quantità di errore non è grande (ovvero, s è piccola), la differenza non avrà molte conseguenze.


Grazie Bill, sembra fattibile. Con i laptop mi sono appena reso conto che il segnale è sensibile all'orientamento delle antenne. Non sono sicuro se questo è vero con i telefoni cellulari. La correzione della posizione sarebbe abbastanza buona per il caso d'uso della scuola media?
Kirk Kuykendall,

Puoi gestire l'orientamento, ma diventa più complicato e avrebbe bisogno di più letture. Considera invece di utilizzare il segnale massimo tra tutti i possibili orientamenti in ciascun punto. Il caso d'uso della scuola media è una variante interessante in quanto suggerisce di fare del tuo meglio per identificare una volta per tutte le posizioni e i punti di forza del mittente WiFi. Dopodiché è un esercizio di triangolazione. Una delle mie preoccupazioni è che i punti di forza della fonte possono variare, spesso in modo imprevedibile. Questo può davvero rovinare la triangolazione. Prendi in considerazione l'aggiunta di una schermata iniziale per i segnali periferici (bassi) in modo che non rovinino la correzione.
whuber



0

Se stai raccogliendo la posizione con GPS, penso che tu stia esaminando due diversi fattori di errore. uno per i gps e l'altro per la potenza del segnale.


In questo contesto Kirk potrebbe effettivamente verificare le posizioni nel suo cortile in modo indipendente (ad esempio, basta prendere più letture GPS da ogni posizione).
Andy W,

0

Non puoi sfruttare uno dei sistemi di posizionamento WiFi esistenti come Skyhook Wireless o Core Location nell'iOS di Apple? Skyhook ti consente di aggiungere manualmente indirizzi MAC Wi-Fi al loro database, iOS raccoglie automaticamente gli indirizzi MAC Wi-Fi utilizzando iPhone dotati di GPS.


Questa potrebbe non essere una cattiva idea se voleva capire dove si trova. Ma sta cercando di trovare un modo per raccogliere da solo le posizioni delle reti. Inoltre, sta cercando di triangolare la sua posizione in base alla potenza dei segnali WiFi. Non sono sicuro che le soluzioni commerciali lo facciano.
jvangeld,

@jvangeld: per quanto ho capito, Core Location in iOS utilizza la potenza del segnale Wi-Fi per triangolare la posizione. Per il caso di ritiro della scuola menzionato, sarebbe la strada da percorrere.
Ortwin Gentz,

0

Kirk,

Anche se potrei sbagliarmi, penso che tu stia esagerando nel complicare le cose. Anche se per essere onesti, non essendo dalla tua parte del mondo, non so con quali limiti stai lavorando in un campus scolastico.

Mentre la maggior parte dei dispositivi mobili supporta già la triangolazione GPS o Cell tower, per WiFi, SkyHook è la risposta per i seguenti motivi: 1. Il loro database di posizioni WiFi è ENORME. 2. Ogni volta che un'applicazione che utilizza SkyHook viene utilizzata, aggiunge al database reti WiFi appena trovate, con posizione. Quindi più viene utilizzato in un'area, più preciso diventa. Immagino che in una posizione ad alta densità come un campus, se non c'è già una buona copertura, avrà una questione di giorni di uso regolare. 3. Alcuni telefoni utilizzano SkyHook come parte delle loro API di localizzazione, il che significa che sempre più API normali del telefono avranno questo integrato.

Ad essere onesti, a meno che tu non desideri che questo servizio sia disponibile sui laptop (la maggior parte dei nuovi browser ha SkyHook integrato), la maggior parte dei telefoni ora ha il GPS, a cui è possibile accedere tramite le API del telefono nativo, che si tratti di iOS, Android, WP7 o Mora. L'altra opzione sarebbe quella di renderla un'app Web mobile, che utilizzerebbe semplicemente l'API di localizzazione del browser, con accesso comunque a tutti gli strumenti di localizzazione sul telefono.


Pensavo che skyhook avesse raccolto i dati tramite l'armadio. Non riesco a immaginarli mentre guidano sulle strade della scuola, anche se suppongo siano pubblici.
Kirk Kuykendall il

Hai ragione, ma poiché i clienti "espandono" il loro database oltre a guidare la guerra, probabilmente troverai comunque una copertura. Puoi sempre provare caricando Opera sul tuo laptop, andare nel campus con maps.google.com e WiFi abilitati e vedere dove ti mette.
BlinkyBill il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.