Grov omlokalisering

Grov omlokalisering är en funktion som möjliggör storskalig lokalisering genom att ge ett ungefärligt men snabbt svar på dessa frågor:

  • Var är min enhet nu?
  • Vilket innehåll bör jag observera?

Svaret är inte exakt. Det är i det här formuläret: Du är nära dessa fästpunkter. Försök hitta en av dem.

Grov omlokalisering fungerar genom att tagga fästpunkter med olika sensoravläsningar på enheten som senare används för snabba frågor. För utomhusscenarier är sensordata vanligtvis enhetens GPS-position (Global Positioning System). När GPS inte är tillgänglig eller otillförlitlig, som när du är inomhus, består sensordata av Wi-Fi-åtkomstpunkter och Bluetooth-fyrar inom räckhåll. De insamlade sensordata bidrar till att upprätthålla ett rumsligt index som används av Azure Spatial Anchors för att snabbt avgöra vilka fästpunkter som ligger nära enheten.

När du ska använda grov omlokalisering

Om du planerar att hantera fästpunkter i ett utrymme som är större än en tennisbana kommer du förmodligen att ha nytta av grov omlokalisering av rumslig indexering.

Den snabba sökningen av fästpunkter som aktiveras genom grov omlokalisering är utformad för att förenkla utvecklingen av program som backas upp av världsskaliga samlingar av till exempel miljontals geo-distribuerade fästpunkter. Komplexiteten i rumslig indexering är dold, så du kan fokusera på din programlogik. Allt svårt arbete utförs i bakgrunden av Azure Spatial Anchors.

Använda grov omlokalisering

Här är det vanliga arbetsflödet för att skapa och fråga Azure Spatial Anchors med grov omlokalisering:

  1. Skapa och konfigurera en sensor fingeravtrycksprovider för att samla in de sensordata som du vill ha.
  2. Starta en Azure Spatial Anchors-session och skapa fästpunkterna. Eftersom sensor fingeravtryck är aktiverat indexeras fästpunkterna rumsligt genom grov omlokalisering.
  3. Fråga omgivande fästpunkter med hjälp av grov omlokalisering via de dedikerade sökvillkoren i Spatial Anchors-sessionen.

Du kan läsa någon av de här självstudierna för att konfigurera grov omlokalisering i ditt program:

Sensorer och plattformar

Plattformstillgänglighet

Följande typer av sensorer kan användas tillsammans med grov omlokalisering (se information i tabellen nedan):

  • GPS-position: latitud, longitud, höjd
  • Signalstyrka för Wi-Fi-åtkomstpunkter inom räckhåll
  • Signalstyrka för Bluetooth-fyrar inom räckhåll

Den här tabellen sammanfattar tillgängligheten för sensordata på plattformar som stöds och innehåller information som du bör känna till:

HoloLens Android iOS
GPS Nr1 Ja4 Ja6, 7
Wi-Fi Ja2 Ja5 Ja7
BLE-fyrar Ja3 Ja3 Ja3, 7

1 En extern GPS-enhet kan associeras med HoloLens. Hantera händelsen UpdatedSensorFingerprintRequired för att skicka GeoLocation-avläsningar om du använder HoloLens med en extern GPS-tracker.
2 Stöds med en hastighet av cirka en genomsökning var 3:e sekund.
3 Begränsat till Eddystone och iBeacon.
4 Stöds via LocationManager-API :er (både GPS och NÄTVERK).
5 Från och med API-nivå 28 begränsas Wi-Fi-genomsökningar till fyra anrop var 2:e minut. Från och med Android 10 kan du inaktivera den här begränsningen från menyn Inställningar för utvecklare . Mer information finns i Android-dokumentationen.
6 Stöds direkt via iOS.
7 Stöds indirekt via CLLocationManager-API :er.

Vilken sensor som ska aktiveras

Valet av sensor beror på vilket program du utvecklar och plattformen. Det här diagrammet ger en startpunkt för att avgöra vilken kombination av sensorer du kan aktivera, beroende på lokaliseringsscenariot:

Diagram that shows enabled sensors for various scenarios.

I följande avsnitt får du mer information om fördelarna och begränsningarna för varje sensortyp.

GPS

GPS är alternativet för utomhusscenarier. När du använder GPS i ditt program bör du tänka på att de avläsningar som tillhandahålls av maskinvaran vanligtvis är:

  • Asynkron och låg frekvens (mindre än 1 Hz).
  • Otillförlitlig/bullrig (i genomsnitt 7 m standardavvikelse).

I allmänhet gör både enhetens operativsystem och Spatial Anchors viss filtrering och extrapolering av den råa GPS-signalen i ett försök att minimera dessa problem. Den här extra bearbetningen kräver tid för konvergens, så för bästa resultat bör du försöka:

  • Skapa en sensor fingeravtrycksprovider så tidigt som möjligt i ditt program.
  • Håll sensorns fingeravtrycksprovider vid liv mellan flera sessioner.
  • Dela sensorns fingeravtrycksprovider mellan flera sessioner.

GPS-enheter i konsumentklass är vanligtvis oprecisa. En studie av Zandenbergen och Barbeau (2011) rapporterar att mediannoggrannheten hos mobiltelefoner som har assisterat GPS (A-GPS) är cirka 7 meter. Det är ett ganska stort värde att ignorera! För att ta hänsyn till dessa mätfel behandlar tjänsten fästpunkter som sannolikhetsfördelningar i GPS-utrymme. Så en fästpunkt är den region i rymden som mest sannolikt (med mer än 95% konfidens) innehåller sin sanna, okända GPS-position.

Samma resonemang gäller när du frågar med hjälp av GPS. Enheten representeras som en annan rumslig konfidensregion runt dess sanna, okända GPS-position. Att upptäcka närliggande fästpunkter innebär att hitta fästpunkterna med konfidensregioner nära enhetens konfidensregion, vilket illustreras här:

Diagram that illustrates finding anchor candidates by using GPS.

Wi-Fi

På HoloLens och Android kan Wi-Fi-signalstyrkan vara ett bra sätt att möjliggöra omlokalisering inomhus. Fördelen är den potentiella omedelbara tillgängligheten för Wi-Fi-åtkomstpunkter (vanliga i kontorsutrymmen och köpcentra, till exempel) utan extra installation.

Kommentar

iOS tillhandahåller inte något API för att läsa Wi-Fi-signalstyrka, så det kan inte användas för grov omlokalisering aktiverat via Wi-Fi.

När du använder Wi-Fi i ditt program bör du tänka på att de avläsningar som tillhandahålls av maskinvaran vanligtvis är:

  • Asynkron och låg frekvens (mindre än 0,1 Hz).
  • Potentiellt begränsad på OS-nivå.
  • Otillförlitlig/bullrig (i genomsnitt 3 dBm standardavvikelse).

Spatial Anchors försöker skapa en filtrerad karta över Wi-Fi-signalstyrkan under en session i ett försök att åtgärda dessa problem. För bästa resultat, försök att:

  • Skapa sessionen i god tid innan du placerar den första fästpunkten.
  • Håll sessionen vid liv så länge som möjligt. (Det vill: skapa alla fästpunkter och frågor i en session.)

Bluetooth-fyrar

Noggrann distribution av Bluetooth-fyrar är en bra lösning för storskaliga omlokaliseringsscenarier för grov inomhusmiljö, där GPS saknas eller är felaktigt. Det är också den enda inomhusmetoden som stöds på alla tre plattformarna.

Beacons är vanligtvis mångsidiga enheter där allt kan konfigureras, inklusive UUID:er och MAC-adresser. Azure Spatial Anchors förväntar sig att beacons identifieras unikt av deras UUID: er. Om du inte ser till att det här är unikt får du förmodligen felaktiga resultat. För bästa resultat:

  • Tilldela unika UUID:er till dina beacons.
  • Distribuera fyrar på ett sätt som täcker ditt utrymme på ett enhetligt sätt och så att minst tre fyrar kan nås från valfri plats i rymden.
  • Skicka listan över unika beacon-UUID:er till sensorns fingeravtrycksprovider.

Radiosignaler som bluetooth påverkas av hinder och kan störa andra radiosignaler. Så det kan vara svårt att gissa om ditt utrymme är enhetligt täckt. För att garantera en bättre kundupplevelse rekommenderar vi att du testar täckningen av dina fyrar manuellt. Du kan göra ett test genom att gå runt i ditt utrymme med kandidatenheter och ett program som visar Bluetooth inom räckhåll. När du testar täckningen ser du till att du kan nå minst tre fyrar från valfri strategisk position i ditt utrymme. Att ha för många fyrar kan leda till mer interferens mellan dem och förbättrar inte nödvändigtvis noggrannheten för grov omlokalisering.

Bluetooth-fyrar täcker vanligtvis 80 meter om inga hinder finns i utrymmet. Så för ett utrymme som inte har några stora hinder kan du distribuera fyrar i ett rutnätsmönster var 40:e meter.

En fyr som får slut på batteri påverkar resultatet, så se till att övervaka distributionen regelbundet för låga eller oladdade batterier.

Azure Spatial Anchors spårar endast Bluetooth-fyrar som finns i listan med kända UUID:er för beacon-närhet. Men skadliga beacons programmerade för att ha tillåtna UUID:er kan påverka tjänstens kvalitet negativt. Så du får bästa resultat i utvalda utrymmen där du kan styra distributionen av beacon.

Sensornoggrannhet

Gps-signalens noggrannhet, både när fästpunkten skapas och under frågor, har en betydande inverkan på uppsättningen returnerade fästpunkter. Frågor baserade på Wi-Fi/beacons tar däremot hänsyn till alla fästpunkter som har minst en åtkomstpunkt/beacon gemensamt med frågan. I den meningen bestäms resultatet av en fråga som baseras på Wi-Fi/beacons främst av det fysiska intervallet för åtkomstpunkterna/fyrarna och miljöhinder. Den här tabellen uppskattar det förväntade sökutrymmet för varje sensortyp:

Sensor Sökutrymmesradie (ungefärlig) Details
GPS 20 m till 30 m Bestäms av GPS osäkerhet, bland andra faktorer. De rapporterade siffrorna uppskattas för medianen GPS noggrannhet mobiltelefoner med A-GPS: 7 meter.
Wi-Fi 50 till 100 m Bestäms av räckvidden för de trådlösa åtkomstpunkterna. Beror på frekvens, sändare styrka, fysiska hinder, interferens och så vidare.
BLE-fyrar 70 m Bestäms av fyrens räckvidd. Beror på frekvens, överföringsstyrka, fysiska hinder, interferens och så vidare.