Coarse relocalization (Простое уточнение расположения)
Простое уточнение расположения — это функция, которая обеспечивает крупномасштабную локализацию, предоставляя приблизительные, но быстрые ответы на следующие вопросы:
- Где находится мое устройство сейчас?
- Какое содержимое я должен видеть?
Ответ не является точным. Он имеет вид: Вы находитесь близко к этим привязкам. Попробуйте найти одну из них.
Простое уточнение расположения выполняется путем пометки привязок показаниями различных датчиков на устройстве, которые затем используются для быстрой отправки запросов. В сценариях применения вне помещений данными датчиков обычно является позиция устройства по GPS (глобальная система позиционирования). Когда данные GPS недоступны или ненадежны, например в помещении, данные датчиков представляют собой данные о точках доступа Wi-Fi и маяках Bluetooth в радиусе действия. Собранные данные датчиков позволяют поддерживать пространственный индекс, используемый пространственными привязками Azure, чтобы быстро определить, какие привязки находятся близко к вашему устройству.
Когда следует использовать простое уточнение расположения
Если вы планируете обрабатывать привязки в пространстве больше, чем теннисный корт, вы, вероятно, выиграете от грубой перелокализации пространственного индексирования.
Быстрый поиск привязок с помощью простого уточнения расположения предназначен для упрощения разработки приложений, использующих глобальные коллекции из миллионов распределенных по всему миру привязок. Алгоритмы пространственного индексирования скрыты, поэтому вы можете сосредоточиться на логике приложения. Все сложные алгоритмы выполняются без вашего участия с помощью пространственных привязок Azure.
Использование простого уточнения расположения
Ниже приведен типичный рабочий процесс создания пространственных привязок Azure и отправки запросов к нем с простым уточнением расположения:
- Создайте и настройте поставщика отпечатков датчика, чтобы собирать нужные данные.
- Запустите сеанс пространственных привязок Azure и создайте привязки. Поскольку создание отпечатков датчика включено, выполняется пространственная индексация привязок с помощью простого уточнения расположения.
- Отправляйте запросы к привязкам поблизости с помощью простого уточнения расположения с использованием специальных критериев поиска в сеансе работы с пространственными привязками.
Вы можете обратиться к одному из этих руководств, чтобы настроить простое уточнение расположения в приложении:
- Повторное размещение в Unity
- Повторное размещение в Objective-C
- Повторное размещение в Swift
- Повторное размещение в Java
- Повторное размещение в C++/NDK
- Повторное размещение в C++/WinRT
Датчики и платформы
Доступность платформы
Следующие типы датчиков можно использовать в сочетании с грубым перемещением (см. подробные сведения в таблице ниже):
- Позиция GPS: широта, долгота, высота
- Уровень сигнала точек доступа Wi-Fi в диапазоне
- Сила сигнала маяков Bluetooth в диапазоне
В этой таблице приводится сводка по доступности данных датчиков на поддерживаемых платформах и предоставляются сведения, о которых следует знать:
HoloLens | Android | iOS | |
---|---|---|---|
GPS | Нет1 | Да4 | Да6, 7 |
Wi-Fi | Да2 | Да5 | Да7 |
Маяки BLE | Да3 | Да3 | Да3, 7 |
1 Внешнее устройство GPS можно связать с HoloLens. Обработайте событие UpdatedSensorFingerprintRequired для отправки считывания GeoLocation, если вы используете HoloLens с внешним gps-трекером.
2 Поддерживается примерно в одну проверку каждые 3 секунды.
3 Ограничено Эддистоуном и iBeacon.
4 Поддерживаемые API LocationManager (как GPS, так и NETWORK).
5 Начиная с уровня API 28 частота Wi-Fi-сканирования снижается до четырех вызовов каждые 2 минуты. Начиная с Android 10 такое снижение можно отключить в меню Параметры разработчика. См. сведения в документации по Android.
6 Поддерживается непосредственно через iOS.
7 Поддерживается косвенно через API CLLocationManager .
Какой датчик включить
Выбор датчика зависит от разрабатываемого приложения и платформы. На этой схеме представлена отправная точка для определения сочетания датчиков, которые можно включить в зависимости от сценария локализации:
Следующие разделы содержат более подробные сведения о преимуществах и ограничениях для каждого типа датчика.
GPS
GPS — это лучший вариант для сценариев работы вне помещений. При использовании GPS в приложении следует помнить, что аппаратура обычно предоставляет следующие показания:
- Асинхронные и с низкой частотой (менее 1 Гц).
- Ненадежные/с помехами (среднее стандартное отклонение 7 м).
Как правило, как ОС устройства, так и пространственные привязки будут выполнять фильтрацию и экстраполяцию необработанного сигнала GPS, пытаясь устранить эти проблемы. Из-за этой дополнительной обработки требуется время для достижения сходимости, поэтому для получения наилучших результатов необходимо выполнить следующие действия.
- Создайте одного поставщика отпечатков датчиков как можно раньше в своем приложении.
- Обеспечьте активность поставщика отпечатков между несколькими сеансами.
- Обеспечьте совместное использование поставщика отпечатков между несколькими сеансами.
Устройства GPS потребительского класса обычно неточные. В исследовании Zandenbergen и Barbeau (2011) сообщается о том, что медианная точность мобильных телефонов с функцией Assisted GPS (A-GPS) составляет около 7 метров. Это слишком большое значение, чтобы его можно было игнорировать! Чтобы учитывать эти ошибки измерения, служба рассматривает привязки как распределения вероятностей в пространстве GPS. Таким образом, привязка — это область пространства, которая, вероятнее всего (с достоверностью более 95 %), содержит истинные неизвестные координаты GPS.
Такая же аргументация применяется при выполнении запроса с помощью GPS. Устройство представляется в виде другой пространственной доверительной области вокруг истинных неизвестных координат GPS. Обнаружение ближайших привязок превращается в поиск привязок с доверительными областями, достаточно близкими к доверительной области устройства, как показано ниже:
Wi-Fi
В HoloLens и Android уровень сигнала Wi-Fi может быть хорошим способом простого уточнения расположения в помещении. Преимущество заключается в потенциальной немедленной доступности точек доступа Wi-Fi (которые часто встречаются, например, в офисных помещениях и торговых центрах) без необходимости дополнительной настройки.
Примечание.
iOS не предоставляет API для чтения уровня сигнала Wi-Fi, поэтому его нельзя использовать для простого уточнения расположения по Wi-Fi.
При использовании Wi-Fi в приложении следует помнить, что аппаратура обычно предоставляет следующие показания:
- Асинхронные и с низкой частотой (менее 0,1 Гц).
- Потенциально регулируемые на уровне ОС.
- Ненадежные/с помехами (среднее стандартное отклонение 3 дБм).
Пространственные привязки попытаются создать отфильтрованную карту уровня сигнала Wi-Fi во время сеанса в попытке устранить эти проблемы. Для получения лучших результатов попробуйте выполнить следующее.
- Заранее создайте сеанс, прежде чем установить первую привязку.
- Поддерживайте сеанс в активном состоянии, пока это возможно. (То есть, создайте все привязки и запрос в одном сеансе.)
Маяки Bluetooth
Внимательное развертывание маяков Bluetooth является хорошим решением для крупномасштабных сценариев простого уточнения расположения в помещениях, когда данные GPS отсутствуют или неточные. Это также единственный метод, поддерживаемый на всех трех платформах.
Маяки обычно являются универсальными устройствами, на которых можно настроить все параметры, включая UUID и MAC-адреса. Пространственные привязки Azure предполагают уникальную идентификацию маяков по уникальным идентификаторам. Если вы не обеспечите такую уникальность, вероятно, вы получите неверные результаты. Для получения наилучших результатов:
- Присвойте вашим маякам уникальные идентификаторы.
- Развертывайте маяки так, чтобы они равномерно покрывали пространство, чтобы как минимум три маяка были доступны из любой точки пространства.
- Передайте список уникальных идентификаторов маяков поставщику отпечатков датчика.
Радиосигналы, такие как сигналы Bluetooth, подвержены влиянию препятствий и могут создавать помехи для других радиосигналов. Поэтому бывает трудно понять, равномерно ли покрыто ваше пространство. Чтобы улучшить пользовательский опыт, рекомендуется вручную протестировать покрытие маяков. Для этого пройдитесь по территории с устройствами-кандидатами и включенным приложением, которое показывает передатчики Bluetooth поблизости. При тестировании покрытия убедитесь, что вы можете связаться по крайней мере с тремя маяками из любой важной точки на территории. Наличие слишком большого количества маяков может привести к увеличению количества помех между ними и не обязательно повысит точность простого уточнения расположения.
Радиус действия маяков Bluetooth обычно составляет 80 метров, если в пространстве отсутствуют препятствия. Таким образом, в пространстве без крупных препятствий можно устанавливать маяки по принципу сетки каждые 40 метров.
Маяк, у которого разрядилась батарея, повлияет на результаты, поэтому обязательно периодически контролируйте систему на предмет разряженных или незаряженных батарей.
Пространственные привязки Azure будут отслеживать только маяки Bluetooth, которые находятся в списке уникальных идентификаторов известных маяков поблизости. Но вредоносные маяки, запрограммированные на наличие разрешенных идентификаторов, могут негативно повлиять на качество услуги. Таким образом, вы получите наилучшие результаты в курируемых помещениях, где вы можете контролировать развертывание маяков.
Точность датчиков
Точность сигнала GPS, как во время создания привязки, так и во время запросов, существенно влияет на набор возвращаемых привязок. В отличие от этого, запросы, основанные на Wi-Fi/маяках, будут рассматривать все привязки, у которых есть как минимум одна точка доступа/маяк, совпадающие с имеющимися в запросе. В этом смысле результат запроса, основанного на Wi-Fi/маяках, определяется главным образом физическим радиусом действия точек доступа/маяков и окружающими препятствиями. В этой таблице приводится ожидаемое пространство поиска для каждого типа датчика:
Sensor | Радиус пространства поиска (приблизительный) | Сведения |
---|---|---|
GPS | от 20 м до 30 м | Определяется по неопределенности данных GPS, помимо прочих факторов. Представленные значения рассчитаны для медианной точности GPS мобильных телефонов с A-GPS: 7 метров. |
Wi-Fi | от 50 м до 100 м | Определяется радиусом действия точек беспроводного доступа. Зависит от частоты, уровня сигнала передатчика, физических препятствий, помех и т. д. |
Маяки BLE | 70 мин | Определяется диапазоном сигналов маяка. Зависит от частоты, уровня передаваемого сигнала, физических препятствий, помех и т. д. |