Zgrubna ponowna lokalizacja

Coarse relocalization to funkcja, która umożliwia lokalizację na dużą skalę, zapewniając przybliżoną, ale szybką odpowiedź na następujące pytania:

  • Gdzie jest teraz moje urządzenie?
  • Jaka zawartość powinna być obserwowana?

Odpowiedź nie jest dokładna. Jest on w tej formie: jesteś blisko tych kotwic. Spróbuj zlokalizować jeden z nich.

Coarse relocalization działa przez tagowanie kotwic z różnymi odczytami czujników na urządzeniu, które są później używane do szybkiego wykonywania zapytań. W przypadku scenariuszy zewnętrznych dane czujnika są zwykle pozycją GPS (Global Positioning System) urządzenia. Gdy GPS jest niedostępny lub zawodny, jak w pomieszczeniach, dane czujnika składają się z punktów dostępu Wi-Fi i sygnałów nawigacyjnych Bluetooth w zasięgu. Zebrane dane czujnika przyczyniają się do utrzymania indeksu przestrzennego używanego przez usługę Azure Spatial Anchors w celu szybkiego określenia, które kotwice znajdują się blisko urządzenia.

Kiedy należy używać ponownej lokalizacji coarse

Jeśli planujesz obsługiwać kotwice w przestrzeni większej niż kort tenisowy, prawdopodobnie skorzystasz z grubszej relokalizacji indeksowania przestrzennego.

Szybkie wyszukiwanie kotwic włączonych przez coarse relocalization ma na celu uproszczenie tworzenia aplikacji wspieranych przez kolekcje na skalę światową, powiedzmy, miliony kotwic rozproszonych geograficznie. Złożoność indeksowania przestrzennego jest ukryta, więc możesz skoncentrować się na logice aplikacji. Cała trudna praca jest wykonywana w tle przez usługę Azure Spatial Anchors.

Używanie coarse relocalization

Oto typowy przepływ pracy do tworzenia i wykonywania zapytań względem usługi Azure Spatial Anchors z grubszą ponowną lokalizacją:

  1. Utwórz i skonfiguruj dostawcę odcisków palców czujnika w celu zebrania żądanych danych czujnika.
  2. Uruchom sesję usługi Azure Spatial Anchors i utwórz kotwice. Ponieważ włączono odciski palców czujnika, kotwice są indeksowane przestrzennie przez coarse relocalization.
  3. Wykonywanie zapytań dotyczących kotwic przy użyciu coarse relocalization za pomocą dedykowanych kryteriów wyszukiwania w sesji usługi Spatial Anchors.

Możesz zapoznać się z jednym z tych samouczków, aby skonfigurować grubą ponowną lokalizację w aplikacji:

Czujniki i platformy

Dostępność platformy

Następujące typy czujników mogą być używane w połączeniu z grubszą relokacją (zobacz szczegóły w poniższej tabeli):

  • Pozycja GPS: szerokość geograficzna, długość geograficzna, wysokość
  • Siła sygnału punktów dostępu sieci Wi-Fi w zasięgu
  • Siła sygnału bluetooth w zasięgu

Ta tabela zawiera podsumowanie dostępności danych czujników na obsługiwanych platformach i zawiera informacje, o których należy pamiętać:

HoloLens Android iOS
GPS Nr1 Tak4 Tak6, 7
Sieć Wi-Fi Tak2 Tak5 Tak7
Sygnały nawigacyjne BLE Tak3 Tak3 Tak3, 7

1 Zewnętrzne urządzenie GPS może być skojarzone z urządzeniem HoloLens. Obsługa zdarzenia UpdatedSensorFingerprintRequired w celu przesłania odczytów geolokalizacji , jeśli używasz urządzenia HoloLens z zewnętrznym trackerem GPS.
2 Obsługiwane w tempie około jednego skanowania co 3 sekundy.
3 Ograniczone do Eddystone i iBeacon.
4 Obsługiwane za pośrednictwem interfejsów API LocationManager (GPS i NETWORK).
5 Począwszy od poziomu interfejsu API 28, skanowania sieci Wi-Fi są ograniczane do czterech wywołań co 2 minuty. Począwszy od systemu Android 10, możesz wyłączyć tę ograniczanie z menu Ustawienia dewelopera. Aby uzyskać więcej informacji, zobacz dokumentację systemu Android.
6 Obsługiwane bezpośrednio za pośrednictwem systemu iOS.
7 Obsługiwane pośrednio za pośrednictwem interfejsów API CLLocationManager .

Który czujnik ma być włączony

Wybór czujnika zależy od opracowywanej aplikacji i platformy. Ten diagram zawiera punkt wyjścia do określenia, która kombinacja czujników można włączyć, w zależności od scenariusza lokalizacji:

Diagram that shows enabled sensors for various scenarios.

Poniższe sekcje zawierają więcej szczegółowych informacji na temat zalet i ograniczeń poszczególnych typów czujników.

GPS

GPS jest opcją go-to dla scenariuszy na świeżym powietrzu. W przypadku korzystania z gps w aplikacji należy pamiętać, że odczyty dostarczane przez sprzęt są zwykle następujące:

  • Asynchroniczna i niska częstotliwość (mniejsza niż 1 Hz).
  • Zawodne/hałaśliwe (średnio odchylenie standardowe 7 m).

Ogólnie rzecz biorąc, zarówno system operacyjny urządzenia, jak i usługi Spatial Anchors będą wykonywać pewne filtrowanie i ekstrapolację surowego sygnału GPS w celu wyeliminowania tych problemów. To dodatkowe przetwarzanie wymaga czasu na zbieżność, dlatego w celu uzyskania najlepszych wyników należy spróbować wykonać następujące czynności:

  • Utwórz jednego dostawcę odcisków palców czujnika tak szybko, jak to możliwe w aplikacji.
  • Zachowaj kondycję dostawcy odcisków palców czujnika między wieloma sesjami.
  • Udostępnianie dostawcy odcisków palców czujnika między wieloma sesjami.

Urządzenia GPS klasy konsumenckiej są zwykle nieprecyzyjne. Badanie przeprowadzone przez Zandenbergen i Barbeau (2011) donosi, że mediana dokładności telefonów komórkowych, które pomogły GPS (A-GPS) wynosi około 7 metrów. To dość duża wartość do zignorowania! Aby uwzględnić te błędy pomiaru, usługa traktuje kotwice jako rozkłady prawdopodobieństwa w przestrzeni GPS. Kotwica jest więc regionem przestrzeni, która najprawdopodobniej (z ponad 95% ufnością) zawiera swoją prawdziwą, nieznaną pozycję GPS.

To samo rozumowanie ma zastosowanie podczas wykonywania zapytania za pomocą GPS. Urządzenie jest reprezentowane jako kolejny region ufności przestrzennej wokół jego prawdziwej, nieznanej pozycji GPS. Odnajdywanie pobliskich kotwic przekłada się na znalezienie kotwic z regionami ufności wystarczająco blisko regionu ufności urządzenia, jak pokazano poniżej:

Diagram that illustrates finding anchor candidates by using GPS.

Wi-Fi

Na urządzeniach HoloLens i Android siła sygnału sieci Wi-Fi może być dobrym sposobem na włączenie ponownej lokalizacji wewnątrz pomieszczeń. Zaletą jest potencjalna natychmiastowa dostępność punktów dostępu do sieci Wi-Fi (wspólnych w przestrzeniach biurowych i centrach handlowych, na przykład) bez konieczności dodatkowej konfiguracji.

Uwaga

System iOS nie udostępnia interfejsu API do odczytywania siły sygnału sieci Wi-Fi, więc nie można jej używać do coarse relocalization włączonej za pośrednictwem sieci Wi-Fi.

Podczas korzystania z sieci Wi-Fi w aplikacji należy pamiętać, że odczyty dostarczane przez sprzęt są zwykle następujące:

  • Asynchroniczna i niska częstotliwość (mniejsza niż 0,1 Hz).
  • Potencjalnie ograniczane na poziomie systemu operacyjnego.
  • Zawodne/hałaśliwe (średnio odchylenie standardowe 3-dBm).

Usługa Spatial Anchors spróbuje utworzyć przefiltrowaną mapę siły sygnału sieci Wi-Fi podczas sesji w celu rozwiązania tych problemów. Aby uzyskać najlepsze wyniki, spróbuj wykonać:

  • Przed umieszczeniem pierwszej kotwicy utwórz sesję.
  • Zachowaj żywą sesję tak długo, jak to możliwe. (Oznacza to, że należy utworzyć wszystkie kotwice i wykonywać zapytania w jednej sesji).

Sygnały nawigacyjne Bluetooth

Staranne wdrażanie sygnałów nawigacyjnych Bluetooth jest dobrym rozwiązaniem w przypadku scenariuszy ponownej lokalizacji w pomieszczeniach na dużą skalę, gdzie GPS jest nieobecny lub niedokładny. Jest to również jedyna metoda wewnętrzna obsługiwana na wszystkich trzech platformach.

Sygnały nawigacyjne są zazwyczaj wszechstronnymi urządzeniami, na których można skonfigurować wszystkie elementy, w tym identyfikatory UUID i adresy MAC. Usługa Azure Spatial Anchors oczekuje, że sygnały nawigacyjne będą jednoznacznie identyfikowane przez ich identyfikatory UUID. Jeśli nie zapewnisz tej unikatowości, prawdopodobnie otrzymasz nieprawidłowe wyniki. Aby uzyskać najlepsze wyniki:

  • Przypisz unikatowe identyfikatory UUID do sygnałów nawigacyjnych.
  • Wdróż sygnały nawigacyjne w sposób, który pokrywa przestrzeń równomiernie i tak, że co najmniej trzy sygnały nawigacyjne są osiągalne z dowolnego punktu w przestrzeni.
  • Przekaż listę unikatowych identyfikatorów UUID sygnału nawigacyjnego do dostawcy odcisków palców czujnika.

Sygnały radiowe, takie jak bluetooth, są dotknięte przeszkodami i mogą zakłócać inne sygnały radiowe. Trudno więc odgadnąć, czy przestrzeń jest równomiernie pokryta. Aby zagwarantować lepsze środowisko klienta, zalecamy ręczne przetestowanie pokrycia sygnałów nawigacyjnych. Test można przeprowadzić, przechodząc przez poruszanie się po miejscu przy użyciu urządzeń kandydatów i aplikacji, która pokazuje łączność Bluetooth w zasięgu. Podczas testowania pokrycia upewnij się, że możesz dotrzeć do co najmniej trzech sygnałów nawigacyjnych z dowolnej pozycji strategicznej w przestrzeni. Posiadanie zbyt wielu sygnałów nawigacyjnych może spowodować większą interferencję między nimi i niekoniecznie poprawi dokładność grubszej relokalizacji.

Sygnały nawigacyjne Bluetooth zwykle obejmują 80 metrów, jeśli w przestrzeni nie występują żadne przeszkody. Tak więc w przypadku przestrzeni, która nie ma dużych przeszkód, można wdrożyć latarnie w wzorcu siatki co 40 metrów.

Sygnał nawigacyjny, który zabraknie baterii, wpłynie na wyniki, dlatego należy okresowo monitorować wdrożenie pod kątem niskich lub nieładowanych baterii.

Usługa Azure Spatial Anchors będzie śledzić tylko sygnały nawigacyjne Bluetooth znajdujące się na liście znanych identyfikatorów UUID w pobliżu. Jednak złośliwe sygnały nawigacyjne zaprogramowane tak, aby dozwolone identyfikatory UUID mogły negatywnie wpłynąć na jakość usługi. Dzięki temu uzyskasz najlepsze wyniki w wyselekcjonowanych miejscach, w których można kontrolować wdrażanie sygnałów nawigacyjnych.

Dokładność czujnika

Dokładność sygnału GPS, zarówno podczas tworzenia kotwicy, jak i podczas zapytań, ma znaczący wpływ na zestaw zwracanych kotwic. Natomiast zapytania oparte na sieci Wi-Fi/beacon będą uwzględniać wszystkie kotwice, które mają co najmniej jeden punkt dostępu/sygnał nawigacyjny wspólne dla zapytania. W tym sensie wynik zapytania opartego na sieci Wi-Fi/beacon jest określany głównie przez fizyczny zakres punktów dostępu / sygnałów nawigacyjnych i przeszkód środowiskowych. Ta tabela szacuje oczekiwaną przestrzeń wyszukiwania dla każdego typu czujnika:

Czujnik Promień przestrzeni wyszukiwania (przybliżony) Szczegóły
GPS Od 20 m do 30 m Określone przez niepewność GPS, między innymi czynniki. Zgłoszone liczby są szacowane na medianę dokładności GPS telefonów komórkowych z A-GPS: 7 metrów.
Sieć Wi-Fi Od 50 m do 100 m Określony przez zakres punktów dostępu bezprzewodowego. Zależy od częstotliwości, siły nadajnika, przeszkód fizycznych, interferencji itd.
Sygnały nawigacyjne BLE 70 m Określony przez zakres sygnału nawigacyjnego. Zależy od częstotliwości, siły transmisji, przeszkód fizycznych, interferencji itd.