Rilocalizzazione grossolana
La rilocalizzazione grossolana è una funzionalità che consente la localizzazione su larga scala fornendo una risposta approssimativa ma veloce a queste domande:
- Dove si trova il dispositivo?
- Quale contenuto devo osservare?
La risposta non è precisa. È in questo formato: si è vicini a questi ancoraggi. Provare a individuarne uno.
La rilocalizzazione grossolana funziona contrassegnando ancoraggi con varie letture dei sensori sul dispositivo che vengono usate in seguito per l'esecuzione rapida di query. Per gli scenari esterni, i dati del sensore sono in genere la posizione GPS (Global Positioning System) del dispositivo. Quando il GPS non è disponibile o inaffidabile, come quando sei al chiuso, i dati del sensore sono costituiti dai punti di accesso Wi-Fi e dai beacon Bluetooth in gamma. I dati dei sensori raccolti contribuiscono a mantenere un indice spaziale usato da Ancoraggi nello spazio di Azure per determinare rapidamente quali ancoraggi sono vicini al dispositivo.
Quando usare la rilocalizzazione grossolana
Se stai pianificando di gestire ancoraggi in uno spazio più grande di un campo da tennis, probabilmente trarrai vantaggio dall'indicizzazione spaziale di rilocalizzazione grossolana.
La ricerca rapida degli ancoraggi abilitati dalla rilocalizzazione grossolana è progettata per semplificare lo sviluppo di applicazioni supportate da raccolte su scala mondiale, ad esempio milioni di ancoraggi con distribuzione geografica. La complessità dell'indicizzazione spaziale è tutta nascosta, quindi è possibile concentrarsi sulla logica dell'applicazione. Tutte le operazioni difficili vengono eseguite in background da Ancoraggi nello spazio di Azure.
Uso della rilocalizzazione grossolana
Ecco il flusso di lavoro tipico per creare ed eseguire query su Ancoraggi nello spazio di Azure con rilocalizzazione grossolana:
- Creare e configurare un provider di impronte digitali del sensore per raccogliere i dati del sensore desiderati.
- Avviare una sessione di Ancoraggi nello spazio di Azure e creare gli ancoraggi. Poiché l'impronta digitale del sensore è abilitata, gli ancoraggi vengono indicizzati in modo spaziale tramite rilocalizzazione grossolana.
- Eseguire query sugli ancoraggi circostanti usando la rilocalizzazione grossolana tramite i criteri di ricerca dedicati nella sessione ancoraggi nello spazio.
È possibile fare riferimento a una di queste esercitazioni per configurare la rilocalizzazione grossolana nell'applicazione:
- Rilocalizzazione grossolana in Unity
- Rilocalizzazione grossolana in Objective-C
- Rilocalizzazione grossolana in Swift
- Rilocalizzazione grossolana in Java
- Rilocalizzazione grossolana in C++/NDK
- Rilocalizzazione grossolana in C++/WinRT
Sensori e piattaforme
Disponibilità della piattaforma
I tipi di sensori seguenti possono essere usati insieme alla rilocazione grossolana (vedere i dettagli nella tabella seguente):
- Posizione GPS: latitudine, longitudine, altitudine
- Livello di segnale dei punti di accesso Wi-Fi nell'intervallo
- Potenza del segnale dei beacon Bluetooth nell'intervallo
Questa tabella riepiloga la disponibilità dei dati del sensore sulle piattaforme supportate e fornisce informazioni da tenere presenti:
HoloLens | Android | iOS | |
---|---|---|---|
GPS | No1 | Sì4 | Sì6, 7 |
Wi-Fi | Sì2 | Sì5 | Sì7 |
Fari BLE | Sì3 | Sì3 | Sì3, 7 |
1 Un dispositivo GPS esterno può essere associato a HoloLens. Gestire l'evento UpdatedSensorFingerprintRequired per inviare letture GeoLocation se si usa HoloLens con un localizzatore GPS esterno.
2 Supportato a una velocità di circa un'analisi ogni 3 secondi.
3 Limitato a Eddystone e iBeacon.
4 Supportato tramite le API LocationManager (GPS e NETWORK).
5 A partire dal livello API 28, le analisi Wi-Fi vengono limitate a quattro chiamate ogni 2 minuti. A partire da Android 10, è possibile disabilitare questa limitazione dal menu Impostazioni sviluppatore. Per altre informazioni, vedere la documentazione di Android.
6 Supportato direttamente tramite iOS.
7 Supportato indirettamente tramite le API CLLocationManager .
Quale sensore abilitare
La scelta del sensore dipende dall'applicazione che si sta sviluppando e dalla piattaforma. Questo diagramma fornisce un punto di partenza per determinare quale combinazione di sensori è possibile abilitare, a seconda dello scenario di localizzazione:
Le sezioni seguenti forniscono maggiori informazioni sui vantaggi e sulle limitazioni di ogni tipo di sensore.
GPS
GPS è l'opzione go-to per scenari esterni. Quando si usa GPS nell'applicazione, tenere presente che le letture fornite dall'hardware sono in genere:
- Asincrona e bassa frequenza (minore di 1 Hz).
- Non affidabile/rumoroso (in media, deviazione standard di 7 m).
In generale, sia il sistema operativo del dispositivo che gli ancoraggi nello spazio eseguiranno alcuni filtri ed estrapolazione del segnale GPS non elaborato nel tentativo di attenuare questi problemi. Questa elaborazione aggiuntiva richiede tempo per la convergenza, quindi, per ottenere risultati ottimali, è consigliabile provare a:
- Creare un provider di impronte digitali del sensore il prima possibile nell'applicazione.
- Mantenere attivo il provider di impronte digitali del sensore tra più sessioni.
- Condividere il provider di impronte digitali del sensore tra più sessioni.
I dispositivi GPS di livello consumer sono in genere imprecisi. Uno studio di Zandenbergen e Barintune (2011) segnala che l'accuratezza mediana dei telefoni cellulari che hanno assistito GPS (A-GPS) è di circa 7 metri. Questo è un valore piuttosto grande da ignorare! Per tenere conto di questi errori di misurazione, il servizio considera gli ancoraggi come distribuzioni di probabilità nello spazio GPS. Quindi un ancoraggio è l'area dello spazio che più probabilmente (con più del 95% di attendibilità) contiene la sua vera posizione GPS sconosciuta.
Lo stesso ragionamento si applica quando si esegue una query tramite GPS. Il dispositivo è rappresentato come un'altra area di confidenza spaziale intorno alla sua vera posizione GPS sconosciuta. L'individuazione degli ancoraggi nelle vicinanze si traduce nella ricerca degli ancoraggi con aree di attendibilità sufficientemente vicine all'area di attendibilità del dispositivo, come illustrato di seguito:
Wi-Fi
In HoloLens e Android, la potenza del segnale Wi-Fi può essere un buon modo per abilitare la rilocalizzazione grossolana di interni. Il vantaggio è la potenziale disponibilità immediata dei punti di accesso Wi-Fi (comuni negli spazi di ufficio e nei centri commerciali, ad esempio) senza alcuna configurazione aggiuntiva necessaria.
Nota
iOS non fornisce un'API per la lettura della potenza del segnale Wi-Fi, quindi non può essere usata per la rilocalizzazione grossolana abilitata tramite Wi-Fi.
Quando si usa Wi-Fi nell'applicazione, tenere presente che le letture fornite dall'hardware sono in genere:
- Asincrona e bassa frequenza (minore di 0,1 Hz).
- Potenzialmente limitata a livello di sistema operativo.
- Inaffidabile/rumoroso (in media, deviazione standard di 3 dBm).
Gli ancoraggi nello spazio tenteranno di creare una mappa filtrata della forza del segnale Wi-Fi durante una sessione nel tentativo di attenuare questi problemi. Per ottenere risultati ottimali, provare a:
- Creare la sessione prima di posizionare il primo ancoraggio.
- Mantenere attiva la sessione il più a lungo possibile. Ovvero, creare tutti gli ancoraggi e le query in una sessione.
Beacon Bluetooth
Un'attenta distribuzione dei beacon Bluetooth è una buona soluzione per scenari di rilocalizzazione grossolana su larga scala, in cui il GPS è assente o impreciso. È anche l'unico metodo indoor supportato su tutte e tre le piattaforme.
I beacon sono in genere dispositivi versatili in cui è possibile configurare tutti gli elementi, inclusi gli UUID e gli indirizzi MAC. Gli ancoraggi nello spazio di Azure prevedono che i beacon vengano identificati in modo univoco dagli UUID. Se non si garantisce questa univocità, probabilmente si otterranno risultati non corretti. Per ottenere risultati ottimali:
- Assegnare UUID univoci ai beacon.
- Distribuire i beacon in modo da coprire lo spazio in modo uniforme e in modo che almeno tre beacon siano raggiungibili da qualsiasi punto nello spazio.
- Passare l'elenco di UUID beacon univoci al provider di impronte digitali del sensore.
I segnali radio come quelli del Bluetooth sono influenzati da ostacoli e possono interferire con altri segnali radio. Quindi può essere difficile indovinare se lo spazio è coperto uniformemente. Per garantire una migliore esperienza dei clienti, è consigliabile testare manualmente la copertura dei beacon. È possibile eseguire un test camminando intorno allo spazio con i dispositivi candidati e un'applicazione che mostra Bluetooth in gamma. Mentre si testa la copertura, assicurarsi di poter raggiungere almeno tre beacon da qualsiasi posizione strategica nello spazio. La presenza di troppi beacon può comportare un'interferenza maggiore tra loro e non migliorerà necessariamente l'accuratezza della rilocalizzazione grossolana.
I beacon Bluetooth coprono in genere 80 metri se non sono presenti ostacoli nello spazio. Quindi, per uno spazio che non ha grandi ostacoli, è possibile distribuire beacon in un modello griglia ogni 40 metri.
Un beacon che sta esaurendo la batteria influirà sui risultati, quindi assicurati di monitorare periodicamente la distribuzione per batterie basse o non caricate.
Gli ancoraggi nello spazio di Azure tengono traccia solo dei beacon Bluetooth presenti nell'elenco di UUID di prossimità dei beacon noti. Ma i beacon dannosi programmati per avere consentiti UUID elencati possono influire negativamente sulla qualità del servizio. Si otterranno quindi i migliori risultati in spazi curati in cui è possibile controllare la distribuzione di beacon.
Accuratezza del sensore
L'accuratezza del segnale GPS, sia durante la creazione dell'ancoraggio che durante le query, ha un'influenza significativa sul set di ancoraggi restituiti. Al contrario, le query basate su Wi-Fi/beacon considereranno tutti gli ancoraggi che hanno almeno un punto di accesso/beacon in comune con la query. In tal senso, il risultato di una query basata su Wi-Fi/beacons è determinato principalmente dall'intervallo fisico dei punti di accesso/ beacon e ostacoli ambientali. Questa tabella stima lo spazio di ricerca previsto per ogni tipo di sensore:
Sensore | Raggio dello spazio di ricerca (approssimativo) | Dettagli |
---|---|---|
GPS | Da 20 m a 30 m | Determinato dall'incertezza GPS, tra gli altri fattori. I numeri segnalati sono stimati per l'accuratezza GPS mediano dei telefoni cellulari con A-GPS: 7 metri. |
Wi-Fi | Da 50 m a 100 m | Determinato dall'intervallo dei punti di accesso wireless. Dipende dalla frequenza, dalla forza del trasmettitore, dalle ostruzioni fisiche, dalle interferenze e così via. |
Fari BLE | 70 m | Determinato dall'intervallo del beacon. Dipende dalla frequenza, dalla forza di trasmissione, dalle ostruzioni fisiche, dall'interferenza e così via. |