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 ska jag observera?

Svaret är inte exakt. Den är i det här formuläret: Du är nära dessa fästpunkter. Försök att 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. I utomhusscenarier är sensordata vanligtvis enhetens GPS-position (Global Positioning System). När GPS är otillgängligt eller otillförlitligt, till exempel när du är inomhus, består sensordata av Wi-Fi-åtkomstpunkter och Bluetooth-sändare inom räckhåll. Insamlade sensordata bidrar till att upprätthålla ett spatialt index som används av Azure Spatial Anchors för att snabbt avgöra vilka fästpunkter som är nära din enhet.

När du ska använda grov omlokalisering

Om du planerar att hantera fler än 35 rumsliga fästpunkter i ett utrymme som är större än en områdesbana kan du förmodligen dra nytta av grov omlokalisering av rumslig indexering.

Den snabba sökning av fästpunkter som aktiveras av 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 spatial 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 köra frågor mot Azure Spatial Anchors 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ästpunkter. Eftersom sensorfingring är aktiverat indexeras fästpunkter rumsligt genom grov omlokalisering.
  3. Fråga kring kringliggande fästpunkter genom att använda grov omlokalisering via de dedikerade sökvillkoren i Spatial Anchors sessionen.

Du kan gå till någon av dessa självstudier för att konfigurera grov omlokalisering i ditt program:

Sensorer och plattformar

Plattformstillgänglighet

Du kan skicka dessa typer av sensordata till fästpunktstjänsten:

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

I den här tabellen sammanfattas 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 Nej1 Ja2 Ja3
Wi-Fi Ja4 Ja5 No
BLE-sändare Ja6 Ja6 Ja6

1 En extern GPS-enhet kan associeras med HoloLens. Hantera händelsen UpdatedSensorPrintRequired för att skicka GeoLocation-avläsningar om du använder HoloLens med en extern GPS-spårare.
2 Stöds via LocationManager-API:er (både GPS och NETWORK).
3 Stöds via API:er för CLLocationManager.
4 Stöds med en hastighet på cirka en genomsökning var tredje sekund.
5 Från och med API-nivå 28 begränsas Wi-Fi till fyra anrop varannan 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 Begränsat till Eddystone och iBeacon.

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 som visar aktiverade sensorer för olika scenarier.

Följande avsnitt innehåller 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/brus (i genomsnitt 7 m standardavvikelse).

I allmänhet kommer både enhetens operativsystem och Spatial Anchors att utföra viss filtrering och extrapolering av DEN råa GPS-signalen i ett försök att åtgärda 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 att:

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

GPS-enheter i konsumentklass är vanligtvis inexakta. En studie av Zandéen och Barbantal (2011) rapporterar att medianprecisionen för mobiltelefoner som har assisterad 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åttfel behandlar tjänsten fästpunkter som sannolikhetsfördelningar i GPS-utrymmet. En fästpunkt är alltså den region av utrymme som 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 kring den sanna, okända GPS-positionen. Identifiering av närliggande fästpunkter innebär att hitta fästpunkter med konfidensregioner som är tillräckligt nära enhetens konfidensregion, som du ser här:

Diagram som visar hur du hittar fästpunktskandidater med hjälp av GPS.

Wi-Fi

På HoloLens och Android kan Wi-Fi signalstyrka vara ett bra sätt att aktivera grov omlokalisering av inomhus. Fördelen är den potentiella omedelbara tillgängligheten Wi-Fi åtkomstpunkter (t.ex. vanliga i kontors- och shoppingcenter) utan att det behövs någon extra konfiguration.

Anteckning

iOS tillhandahåller inte något API för läsning Wi-Fi signalstyrka, så det kan inte användas för grov omlokalisering som aktiveras 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änsat på operativsystemnivå.
  • Otillförlitlig/brus (i genomsnitt 3 dBm standardavvikelse).

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

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

Bluetooth-sändare

Noggrann distribution av Bluetooth-sändare är en bra lösning för storskaliga scenarier för grov omlokalisering av inomhus, där GPS saknas eller är felaktig. 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 UID:er och MAC-adresser. Azure Spatial Anchors förväntar sig att sändare identifieras unikt av sina UID:er. Om du inte ser till att detta är unikt får du förmodligen felaktiga resultat. För bästa resultat:

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

Radiosignaler som de Bluetooth påverkas av hinder och kan störa andra radiosignaler. Därför kan det 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 för dina sändare manuellt. Du kan utföra ett test genom att gå runt i utrymmet med kandidatenheter och ett program som visar Bluetooth i intervallet. Kontrollera att du kan nå minst tre sändare från valfri strategisk position i ditt utrymme när du testar täckningen. Att ha för många sändare kan resultera i mer interferens mellan dem och förbättrar inte nödvändigtvis noggrannheten för grov omlokalisering.

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

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

Azure Spatial Anchors spårar endast Bluetooth-sändare som finns i listan med kända-beacon proximity UUIDs. Men skadliga sändare som programmerats att ha tillåtna UID:er kan påverka tjänstens kvalitet negativt. Därför får du de bästa resultaten i curated spaces där du kan styra distributionen av sändare.

Sensorprecision

Precisionen för GPS-signalen, både när fästpunkten skapas och under frågor, har en betydande inverkan på uppsättningen returnerade fästpunkter. Frågor som baseras på Wi-Fi/beacons överväger däremot alla fästpunkter som har minst en åtkomstpunkt/-beacon som är gemensam för frågan. I det avseendet bestäms resultatet av en fråga som baseras på Wi-Fi/beacons huvudsakligen av det fysiska intervallet för åtkomstpunkter/sändare och miljöfaktorer. I den här tabellen beräknas det förväntade sökutrymmet för varje sensortyp:

Sensor Sökområdesradie (ungefärlig) Information
GPS 20 m till 30 m Bestäms av GPS-osäkerheten, bland andra faktorer. De rapporterade talen beräknas för medianen för GPS-precision för mobiltelefoner med A-GPS: 7 meter.
Wi-Fi 50 m till 100 m Bestäms av intervallet för de trådlösa åtkomstpunkterna. Beror på frekvensen, sändarstyrkan, fysiska hinder, interferens och så vidare.
BLE-sändare 70 m Bestäms av intervallet för -sändaren. Beror på frekvens, överföringsstyrka, fysiska hinder, interferens och så vidare.