Предисловие или «Если у нас есть Wi-Fi, а давайте позиционировать с помощью него!»
Сейчас геопозиционирование на базе технологии GPS использует каждый, у кого есть смартфон. Но как только человек входит в здание, GPS перестаёт работать (хотя смартфон и показывает координату, но уже со значительно меньшей точностью). С одной стороны, не очень-то и хотелось, с другой, а почему бы и нет, прикладные задачи для этого имеются.
Но если посмотреть на то, что нам предлагает рынок, пока не видно адекватного решения, готового предложить потребителю одновременно недорогое и достаточно точное решение.
В данной статье постараюсь рассмотреть технические аспекты (не касаясь прикладной применимости) позиционирования на базе технологии Wi-Fi (именно эта технология наиболее распространена внутри помещений и подходит для решения этой задачи) и проанализировать причины неудач при реализации.
На первый взгляд
На первый взгляд (и только!) инфраструктура Wi-Fi очень хорошо подходит для позиционирования внутри помещений: в ней есть достаточное количество точек с известными координатами (имеются ввиду точки доступа Wi-Fi, далее просто ТД), у каждого смартфона внутри есть Wi-Fi адаптер (Клиент). Теперь можно вычислить расстояние между ТД и Клиентом и рассчитать местоположение Клиента с помощью трилатерации.
Для решения задачи трилатерации необходимо иметь замеры как минимум от трех точек с известными координатами. Чтобы вычислить расстояние замеряется уровень сигнала Клиента на ТД, а точнее его затухание (эти данные мы можем получить от Wi-Fi инфраструктуры, это входит в рамки стандарта IEEE 802.11). Затухание преобразуется в расстояние по формуле распространения сигнала в открытом пространстве (FSPL – free space path loss). Далее мы набираем необходимое количество замеров. Если расстояние от одной ТД известно, то вокруг неё можно описать окружность известного радиуса. Если известно расстояние от двух ТД, то определяемое местоположение будет расположено на пересечении двух окружностей. Наличие третьего замера определяет точку на пересечении трех окружностей.
И вот теперь мы можем расположить Wi-Fi клиента на плоскости. Задача ясна, реализация понятна. Многие производители взялись за реализацию (в общем-то правильно стали делать я считаю). Но к сожалению, пока в данном решении остаётся очень много вопросов.
Основные вопросы
1. Увеличение количества ТД более чем в два раза по сравнению с их обычным количеством.
2. Плохая точность позиционирования даже в идеальных условиях (порядка 10 метров). И кардинально ухудшающаяся точность в случае хотя бы небольшого игнорирования части требований.
3. Непредсказуемая частота обновления данных о позиции Wi-Fi клиента.
Требования к позиционированию Wi-Fi
• Между тремя ТД и Клиентом желательна прямая видимость;
• Клиент должен хорошо слышать не менее трех ТД (а не одну, чего обычно достаточно);
• Слышать «хорошо», это -75dBm и более, а это не просто «хорошо», это очень уверенно;
• Точки доступа должны расставляться по периметру здания и в шахматном порядке;
• Wi-Fi клиент не должен быть уж очень молчаливым.
Почему выдвигаются такие жесткие требования и что нам грозит, если мы эти жесткие требования не удовлетворим?
Между тремя ТД и Клиентом желательна прямая видимость
Пожалуй, основной проблемой, с которой пришлось столкнуться разработчикам алгоритмов позиционирования внутри помещений, это большое количество отражений сигнала. Это злейший враг всех систем позиционирования, которые основаны на замере времени распространения или затухании сигнала.
А что же, к примеру, GPS? В технологии GPS мы имеем дело с сигналом без переотражений, со спутниками, находящимся в прямой видимости. Это нам позволяет добиться очень хорошей точности позиционирования. Как только в GPS приходится иметь дело с переотраженным сигналом, точность позиционирования катастрофически падает.
Почему так происходит? Потому что мы фактически замеряем длину пути сигнала (посредством подсчета временной задержки или затухания сигнала) и если он отражается, то пусть становится длиннее реального расстояния. В случае Wi-Fi внутри помещения мы всегда имеем дело с переотражениями. Более того, все основные технологии стандартов IEEE 802.11n, 802.11ac (MIMO, MRC, BF) используют в своей основе именно этот эффект, без которого работают хуже.
Для трилатерации же это очень плохо, длинна пути измеряется с большой погрешностью, увеличивая тем самым общую погрешность позиционирования.
Прямая видимость может минимизировать переотражения и, следовательно, уменьшить погрешность. Поэтому и есть рекомендация расставлять точки доступа в прямой видимости.
К чему приводит такое требование? Такое требование приводит к значительному увеличению ТД, так как в рамках обычного покрытия нам достаточно одной точки доступа на 3-5 помещений (точки доступа хорошо «пробивают» одну/две некапитальные стены).
Клиент должен хорошо слышать не менее трех ТД (а не одну, чего обычно достаточно)
Обычному Клиенту достаточно сигнала от одной точки доступа, это очевидно.
Для позиционирования же необходим хороший уровень сигнала от трех – четырех ТД.
Слышать «хорошо», это -75dBm и более, а это не просто «хорошо», это очень уверенно
Возьмем официальное руководство Ciscо, в котором говорится, что для того, чтобы точность позиционирования была порядка 10м в 90% случаев, Wi-Fi клиент должен «слышать» как минимум три точки доступа с уровнем сигнала не хуже -75dBm. Почему именно -75dBm и что будет, если сигнал будет хуже?
Основополагающую роль в том, что значение именно -75dBm, с моей точки зрения, имеет природа затухания сигнала (тот самый FSPL). Сигнал затухает не с линейной, а с
Критичную роль играет то, что точность приёмника Wi-Fi совсем небольшая, ноль знаков после запятой (уровень сигнала измеряется в dBm), а точность замера мощности в данном случае имеет определяющую роль для погрешности измерения расстояния.
Для примера можно привести в пример технологию GPS, в которой приходится использовать атомные часты, которые обеспечивают точность замера времени распространения сигнала до седьмого знака после запятой (измеряемого в секундах). Седьмой знак после запятой – это погрешность порядка 30 метров на замер.
Предположим, чтобы добиться приемлемой точности позиционирования, для технологии Wi-Fi погрешность на 1dBm должна составлять не более 10 метров.
Чтобы рассчитать погрешность измерений в метрах на 1 dBm, возьму формулу FSPL и представлю для наглядности в виде графика.
Формулу распространения сигнала для частоты 2.4ГГц в упрощенном виде можно представить следующим образом:
FSPL = 32.4 + (20log10(2,400)) + (20log10(x)), где х – расстояние в км.
FSPL = 100dB + 20log10(x)
На первом метре уровень сигнала падает на 40dB, то есть погрешность не более 2,5см на один dB. На втором метре падение уже на 6dB (погрешность уже 16 см на dB), на третьем – на 3.5dB (погрешность 30 см на dB).
На нижеследующем графике по оси Х показаны значения FSPL, а по оси Y показаны значения погрешности в метрах на 1 dBm.
![image](https://habrastorage.org/files/c21/558/018/c21558018434424e98b69a560cc42a9c.png)
Погрешность в 10м соответствует затуханию сигнала в 80dBm. Причем далее погрешность начинает резко увеличиваться.
Возьмем современную ТД со встроенными антеннами (5dBi), оценим мощность её передатчика в современных условиях в 12mW(11dBm) и вычислим эффективную изотропную излучаемую мощность (EIRP) из которой вычтем наш FSPL.
EIRP-FSPL=11dBm+5dBi-80dB=-64dBm.
Это и есть искомый уровень сигнала, требуемый для обеспечения приемлемой точности позиционирования. Напомню, что общие рекомендации Cisco — 75dBm.
Учитывая то, что мой расчет весьма приблизительный, в целом значения очень схожи. При этом основная идея состоит не в вычислении конкретного значения (есть очень много переменных, влияющих на это значение), а в понимании того, что при дальнейшем затухании сигнала точность позиционирования падает очень резко.
Наверняка сразу возникает следующий вопрос, а сколько это вообще, -75dBm (или -64dBm), много или мало?
Скорость работы WiFi (модуляция, которая используется) в первую очередь зависит от показателя SNR (сигнал/шум), а не только от уровня сигнала. В целом можно прикинуть уровень шума внутри зданий порядка -95 – -90dBm (офисное помещение с несколькими арендаторами). Высоким скорости (модуляции MCS 5 – MCS 7 (64 QAM)) требуют значений SNR от 20 и выше. Это значит, что уровень сигнала должен быть не менее –75 – -70dBm.
То есть другими словами, сигнал -75dBm – это «уверенный» сигнал, который обеспечивает высокие скорости передачи.
И, наконец, основной вывод в том, что таких сигналов для позиционирования нужно как минимум три, хотя в условиях обычного покрытия достаточно одного, что неминуемо влияет на общее количество ТД.
Точки доступа должны расставляться по периметру здания и в шахматном порядке
Погрешность трилатерации зависит так же от того, как расположены измерители (ТД). На измерителе есть информация только о расстоянии до объекта. Рисуя окружности, лучше всего, чтобы они были распределены равномерно по поверхности, а также находились в том числе на периметре.
В случае технологии GPS все эти вопросы элегантно решаются равномерным распределением спутников на орбите Земли.
Если для Wi-Fi расставлять точки доступа равномерно внутри здания не так необычно (хотя иногда очень удобно расставить три точки доступа на одной прямой в коридоре, что противопоказано для позиционирования), то по периметру их обычно никто не расставляет, скорее наоборот, стараются этого избежать, так как покрытие подавляющего большинства офисных точек доступа имеет круговую диаграмму направленности и расположение ТД на периметре приводит к неполному использованию покрытия точки доступа и выходу сигнала за пределы здания.
Частота показаний
Если мы имеем дело со специализированными системами позиционирования, то они заботятся о частоте замеров. GPS спутники постоянно передают сигнал, добиваясь позиционирования в реальном времени (совсем с небольшой задержкой, достаточной, к примеру, для навигаторов).
Инфраструктура Wi-Fi не предназначена для решения задачи позиционирования и поэтому постоянной передачи пакетов с равными интервалами не происходит. Системам позиционирования Wi-Fi приходится работать с тем траффиком, который есть. Чем больше траффика, тем лучше, для позиционирования. А вот для Wi-Fi все обстоит как раз наоборот. Всю свою сознательную жизнь сообщество Wi-Fi работает над задачей уменьшением времени пребывания в эфире Клиента в первую очередь для увеличения общей пропускной способности Wi-Fi, во-вторых для увеличения времени жизни мобильных устройств. В результате системам позиционирования Wi-Fi приходится работать с пакетами, которые идут с непредсказуемыми и чаще всего достаточно большими интервалами.
Но даже если Клиент передал пакет, этот пакет еще надо детектировать всеми необходимыми точками доступа, что не так-то просто для Wi-Fi. Попробую пояснить на примере.
Предположим клиент отправил пакет на 1-м канале диапазона 2.4ГГц. Он находится в зоне видимости трех точек доступа, по стандарту они работают на 1-м, 6-м и 11-м каналах и если не передают сигнал, то должны слушать. Первая точка первый канал, вторая – шестой, третья – 11-й. Первая точка доступа получила данный сигнал и замерила его мощность. Вторая и третья точки доступа не слышали этого пакета, так как слушали, соответственно, шестой и 11-й каналы!
Все это приводит к тому, что частота обновления позиции непредсказуемая и в ряде случаев очень большая, может достигать несколько десятков секунд, а иногда и минут.
Есть разные пути решения этого вопроса. Обычная точка доступа небольшую часть своего времени тратит на мониторинг смежных каналов. Но так как время это небольшое и обходить приходится много каналов, то вероятность «поймать» такой пакет все равно небольшая.
Так же для решения этой задачи используют дополнительное радио на ТД, работающее в режиме мониторинга, которое использует все своё время исключительно на мониторинг и не обслуживает клиентов. Но даже несмотря на это, есть вероятность не услышать требуемый пакет: в диапазоне 2.4 ГГц нужно слушать 3 канала (последовательно) и 16 каналов в 5ГГц. Задача чуть упрощается, если мы отслеживаем местоположение подключенных устройств, если же стоит задача отследить положение всех известных устройств, то надо будет обходить еще неиспользуемые канала (к примеру, все 13-ть каналов в диапазоне 2.4ГГц).
Выводы такие: без применения специальных модулей мониторинга и даже вместе с ними, может наблюдаться проблема с частотой обновления позиции.
Общие выводы
Требования к хорошему позиционированию по большей части противоречат требованиям к оптимальному покрытию.
Это приводит к увеличению точек доступа не менее чем в два раза, а также к удорожанию самих ТД (необходимы дополнительные модули). В результате это приводит к увеличению бюджета на Wi-Fi инфраструктуру в два и более раз. При том, что в результате точность позиционирования не превышает 10 метров, а частота обновлений все равно получается достаточно непредсказуемое, то эти решения, мягко говоря, спорные и реализуются либо в выделенных зонах, либо с несоблюдением всех необходимых требований с известным результатом.
Но технологии не стоят на месте и в следующей статься я хотел бы попробовать подробно проанализировать попытки решения вышеупомянутых проблем, а конкретно:
— реализацию технологии AoA (angle-of-arrival) в Wi-Fi на примере Cisco Hyperlocation;
— попытка увеличения частоты обновлений позиции с испольованием выделенного модуля мониторинга на примере Cisco FastLocation.