- PVSM.RU - https://www.pvsm.ru -
Геолокация внутри помещений на основе 4 [1]]) показали, что для эффективного использования BLE навигации требуется комплексное решение, включающее как маячки, так и качественно написанный софт. Пример такого решения от известного вендора сетевого оборудования и будет подвергнут анализу в данной статье. Заинтересовавшихся читателей приглашаю под кат.
Решение Aruba Meridian появилось около двух лет назад (см. [3 [2]]), однако его активное продвижение на отечественном рынке началось сравнительно недавно. От множества других решений для BLE навигации данный вариант отличается прежде всего интеграцией маячков, карт и приложения для смартфонов под единой управляющей платформой Meridian Editor в облаке (подробнее в [3 [2]]). Кроме того, разработка приложения максимально упрощена и может быть реализована в web-редакторе, без необходимости пользоваться SDK (в случаях, когда нет особых требований к кастомизации приложения). Наконец, возможно взаимодействие маячков с Wi-Fi от Aruba (при наличии в точках доступа BLE модуля). Всё вышеперечисленное сподвигло заказать демокомплект (Evaluation Kit) для проведения полноценного тестирования.
Рис. 1. Внешний вид маячка Aruba Beacons LS-BT-20.
Демокомплект представляет собой небольшую коробочку с пятью маячками (см. рис. 1, USB-устройство не является частью маячка) и лицензию для доступа к облаку Meridian сроком на 90 дней. Тестирование решения началось для нас с предоставления карты помещения для специалистов Aruba: загрузка карты напрямую в облако своими силами невозможна, требуется её предварительная обработка специалистами вендора. Важно отметить, что для каждого этажа здания требуется своя карта, подлежащая отдельному лицензированию.
После загрузки обработанной карты этажа в облако настала очередь конфигурации маячков. И здесь хотелось бы сделать большое отступление и поговорить о BLE навигации как таковой. Часть уважаемой аудитории наверняка представляет, хотя бы в общих чертах, как работает BLE навигация, однако не хотелось бы отсылать тех, кто с ней не знаком, в путешествие по просторам Интернета. А потому совершим техническо-исторически экскурс.
Стандарт BLE-Bluetooth Low Energy появился летом 2010 года, когда ряд наработок под общим названием Wibree был интегрирован в Core Specification стандарта Bluetooth версии 4.0. Первым массовым появлением BLE 4.0 на рынке стал выход IPhone 4S в 2011 году, а с 2012 года его поддержка быстро стала общепринятой. Устройства, поддерживающие стандарт BLE, могу работать в двух режимах: connecting mode и advertising mode [6 [3]]. Connecting mode представляет собой соединение точка-точка, тогда как advertising mode использует Generic Access Profile (GAP) для широковещательной отправки т.н. advertising packets, формат которых представлен ниже. BLE маячки, как правило, работают именно в режиме advertising mode.
Рисунок 2. Формат BLE advertising packet.
В чистом виде BLE advertising packet не применяются, они служат основой для построения различных реализаций стандарта (псевдо-стандартов). В настоящее время имеются три наиболее популярных реализации [5 [4],7 [5]]:
Далее нас будет интересовать iBeacon, поскольку именно он используется в решении от Aruba. При этом позиция вендора состоит в том, что решение Meridian, хоть и является реализацией iBeacon, не взаимодействует с iBeacon-совместимыми устройствами других производителей. Как уже было указано выше, iBeacon определяет единственный тип advertising packet, имеющий следующий формат (см. рис. 3) [6 [3]].
Рисунок 3. Структура iBeacon frame.
В данном фрейме наиболее интересны четыре поля:
Содержимое этих 4 полей непосредственно используется программной частью решения. «Слушающее» Bluetooth эфир приложение принимает фрейм, считывает UUID и Major/Minor номера, после чего обращается к облачной базе данных для поиска ассоциированной с указанными значениями информации о маячке. Значение в поле TX Power сравниваются с измеренным значением мощности принятого Bluetooth сигнала, что позволяет определить приближённое расстояние от маячка до смартфона.
Первоначальная настройка маячков Aruba производится при помощи специального приложения Beacons App, которое доступно только на iOS (издержки использования iBeacon). Необходимо «разбудить» маячок, физически разместить его в нужном месте, после чего привязать его к данной точке карты в приложении. UUID задан производителем, Major/Minor номера задаются при конфигурации, а TX Power зависит от режима функционирования маячка.
Маячки Aruba могут работать как в режиме навигации (Blue Dot), так и в режиме посылки уведомлений (Proximity). С точки зрения маячка изменение режима работы влияет только на TX Power, т.к. в режиме навигации оно остаётся на заданном производителем уровне (ниже будут показаны результаты его измерений), а в режиме уведомлений мощность можно настраивать, регулируя тем самым максимальный радиус приёма уведомлений.
Рис. 4. Интерфейс настройки маячков. Режим навигации и режим уведомлений.
Итогом настройки маячка служит запись в облачной базе данных Meridian, связывающая UUID, Major/Minor номера с картой помещения, координатами на ней и режимом работы маячка.
После настройки всех 5 маячков демокомплекта в режим навигации и расстановки на карте отметок (placemark) необходимо было собрать приложение для смартфона в том же Meridian Editor и сгенерировать ссылку для его скачивания, что заняло не более получаса. Первыми тестовыми устройствами стали IPhone 4S и IPhone 6S и на них навигация работала без проблем. Точка перемещалась по карте вслед за смартфоном, маршруты строились-в общем, решение делало именно то, что от него ожидалось.
Рис. 5. Пример режима навигации Blue Dot и построения маршрута.
Пришло время проверить работоспособность решения на Android устройствах. Были использованы Sony Z1 Compact, Samsung Galaxy S8, Xiaomi Mi 4c, Digma Optima — устройства разных ценовых диапазонов, возраста и возможностей. Результаты оказались достаточно неожиданными: качество навигации стало хуже по сравнению с IPhone обоих моделей, хоть и отличалось от модели к модели, более новые устройства справлялись лучше. Отмечу, что на тот момент мы не углублялись в нюансы работы маячков и ещё не знали, что в данном решении используется iBeacon. Именно зависимость качества навигации от используемого мобильного устройства сподвигла «копать глубже».
Возникла идея провести серию тестов на Z1 Compact и IPhone 4S для выяснения причины, по которой устройства взаимодействуют с маячками настолько по-разному. Во-первых, была измерена мощность принимаемого Bluetooth сигнала. В таблице 1 даны результаты измерений для одной из офисных локаций. Схожие данные были получены и в других местах: устройства принимали физический сигнал одинаково эффективно.
Таблица 1. Результаты измерений мощности принимаемого устройствами сигнала.
Стало ясно, что проблема связана не с физическим уровнем. Возникло предположение, что Android устройства не вполне корректно декодируют полученный сигнал. Соответственно, были установлены сторонние приложения для сканирования Bluetooth эфира: Beacon Scanner и nRF Connect. Результаты их использования приведены на рис. 6 и показывают, что в принципе устройство вполне способно декодировать iBeacon протокол, равно как и достаточно точно определять расстояние до маячков.
Рис. 6. Результаты декодирования принятого BLE сигнала в приложениях
Bluetooth Scanner и nRF Connect.
В попытке узнать что-то ещё полезное мы изучили трассу сигнального обмена смартфона с маячками в Wireshark (рис. 7). К сожалению, никаких дополнительных сведений это не дало.
Рис. 7. Трассировка сигнального обмена Sony Z1 Compact c маячками.
Обнаружилось, что Wireshark может декодировать iBeacon протокол, но в настоящее время некорректно определяет Major/Minor номера, а UUID получил прибавку в виде двух цифр в старших разрядах, по-видимому, из-за неверно заданных границ полей фрейма. Возможно представители сообщества, имеющие опыт тонкой подстройки Wireshark, подскажут, как скорректировать полученные результаты.
Комплекс проведённых тестов убедил нас в том, что в настоящий момент проблема разного качества навигации на устройствах с iOS и Android OS лежит прежде всего в плоскости софта и нюансов поддержки iBeacon протокола в Android. К похожим выводам пришло и официальное сообщество Aruba [6].
Триангуляция при использовании Meridian происходит непосредственно на устройстве [8 [6]], а соответственно существенно зависит как от софта Meridian, так и от драйверов для Bluetooth адаптера. Любые проблемы хотя бы в одном из этих компонентов, либо в их взаимодействии приводят к сильному снижению качества навигации на конкретном устройстве, что мы и наблюдали.
Надеюсь, что не утомил читателя «копанием во внутренностях» маячков Aruba. Отмечу, что в целом решение оставило у нас приятное впечатление, подарив также много забавных моментов. Особенно запомнились расстановка отметок на карте офиса и последующее прокладывание маршрута от электрощитка «Не влезай, убьёт !» до цветов в главной комнате одного из департаментов.
Достаточно интересными оказались функции сбора статистики в Meridian Editor: согласно политике конфиденциальности, решение не может собирать и передавать координаты пользователей в облако, однако запоминает наиболее часто прокладываемые маршруты, марки и ОС пользовательских устройств.
Детального тестирования заслуживала бы кастомизация приложения с помощью SDK и/или встраивание элементов навигационного софта Meridian в сторонние приложения, но это требует подключения квалифицированных программистов (ваш покорный слуга-сетевик) и в случае реализации достойна отдельной статьи.
Благодарю всех читателей за внимание, надеюсь на обратную связь в комментариях в виде интересных вопросов, пожеланий и споров.
Список литературы
Автор: Bezrukov-Oberon
Источник [9]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/geolokatsiya/277359
Ссылки в тексте:
[1] 4: https://habrahabr.ru/post/278689/
[2] 3: https://habrahabr.ru/company/muk/blog/314770/
[3] 6: https://os.mbed.com/blog/entry/BLE-Beacons-URIBeacon-AltBeacons-iBeacon/
[4] 5: https://habrahabr.ru/post/278443/
[5] 7: https://www.silabs.com/community/blog.entry.html/2016/04/25/bluetooth_ble_beacon-IGMb
[6] официальное сообщество Aruba: http://community.arubanetworks.com/t5/Location-Services/bd-p/Mobile-Engagement
[7] Опыт выбора и заказа iBeacon: https://habrahabr.ru/post/220875/
[8] iBeacon: Руководство к действию: https://habrahabr.ru/post/226037/
[9] Источник: https://habrahabr.ru/post/353134/?utm_campaign=353134
Нажмите здесь для печати.