Дипломная работа: Разработка мобильных решений для позиционирования и навигации внутри помещений

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Разработка мобильных решений для позиционирования и навигации внутри помещений

Введение

На протяжении последних лет позиционирование и навигация внутри помещений становится всё более необходимой и популярной. В мире строится большое количество зданий с огромной площадью и очень сложной структурой. Торговый центры, аэропорты, железнодорожные вокзалы, музеи, офисы компаний, здания университетов чаще всего имеют несколько этажей и немаленькую площадь. Например, торговый центр “Небо”, расположенный по адресу Нижний Новгород, Большая Покровская улица, дом 82, имеет 8 этажей и общую площадь 142 000 м2. Как быстро среднестатистический человек сможет найти нужный магазин в таком торговом центре? А если в нем нет карт этажей и указателей? Это точно займет какое-то время, которое можно было бы потрать на что-нибудь ещё.

К тому же GPS (Global Positioning System), к которому мы так привыкли и который выручает нас в незнакомых городах становится не очень полезным, если ты находишься внутри здания. Причина этого довольно проста, для корректной работы GPS необходимо иметь в прямой видимости несколько спутников, то есть между навигатором и спутником не должно быть каких-либо препятствий. К препятствиям относятся облака, стены, здания и тому подобное.

В настоящее время можно заметить, что всё больше организаций начинают внедрять решения для позиционирования человека внутри помещений, причем не только для навигации.

Многие музеи на основе близости человека к определенным точкам, отображают информацию об экспонате в специальном приложении. Как пример такого музея, можно привести “Замок Святого Ангела” в Риме, который отображает информацию о локации, в которой в данный момент находится человек через приложение “Muzeo Nazionale di Castel Sant'Angelo”.

Позиционирование внутри помещений применяется также в сфере обслуживания. В настоящее время, сеть ресторанов “McDonald's” внедряет специальные локаторы, которые можно взять при заказе еды и поставить на выбранный столик. Официанты с их помощью могут легко находить нужный столик, а посетителям не приходится стоят около кассы в ожидании заказа.

Помимо описанных применений, позиционирование и навигация внутри помещений используется во многих других отраслях и продолжает набирать популярность в настоящее время.

1.Постановка задачи

навигация мобильный позиционирование

Цель данной работы - изучить мобильные решения для позиционирования и навигации внутри помещения, описать преимущества и недостатки каждого метода и предложить алгоритм, улучшающий точность определения позиции. Также, требуется создать приложение, в котором будут реализованы выбранные методы.

1.1 Методы позиционирования и навигации внутри помещений

Для изучения были выбраны 4 технологии: GSM (Global Solutions for Mobile Communication), Wi-Fi, BLE (Bluetooth Low Energy) Beacons и VLC (Visible Light Communication).

В данном исследовании предстоит изучить каждый метод, определить преимущества и недостатки использования каждого метода в рамках сложности настройки, точности определения позиции, энергопотребления, стоимости реализации и применимости для задачи навигации внутри помещения. Для каждой технологии должен быть представлен подробный алгоритм работы с ней, а также реализация этого алгоритма в мобильном приложении. Более того, каждый метод требует улучшения точности позиционирования путем использования дополнительных алгоритмов и сенсоров.

1.2 Мобильное приложение

В рамках проекта нужно создать мобильное приложение на платформе Android, реализующее описанные алгоритмы. Пользователь должен иметь возможность выбрать желаемый тип навигации (GSM, Wi-Fi, BLE Beacons, VLC) и для каждого получить текущее местоположение. Также, если приложение активно, то оно будет отслеживать перемещения пользователя и обновлять информацию на экране.

В приложении необходима карта помещения, внутри которого будет происходить навигация. На карте должны отображаться этажи, комнаты, коридоры, двери, лестницы и другие помещения, присутствующие внутри здания. Также, в приложении нужна возможность выбора желаемой точки назначения и построения оптимального маршрута до неё от текущего местоположения или другой точки, выбранной пользователем.

2.Обзор существующих решений

2.1 Примеры существующих алгоритмов

В данный момент на рынке есть немалое количество решений для позиционирования и навигации внутри помещений. В основном эти решения делятся на два типа:

· Коммерческие проекты. Эти проекты создаются для продажи и настраиваются под конкретные запросы клиентов. Клиентами чаще всего являются крупные проекты или компании, например торговые центры, аэропорты, вокзалы и тому подобное. Более того, данные проекты могут быть недоступны для некоммерческого использования или использования в малых проектах.

· Проекты специфичные для компании. Такие проекты разрабатываются компанией или нанятой командой для самой компании. Они заточены под решение специфичных проблем и чаще всего недоступны для общего доступа.

Также, все решения базируются на какой-то конкретной технологии. Для каждого метода можно привести несколько проектов, которые используют его в своих решениях.

В качестве первого примера, можно привести проект “Google Radar”. Этот проект был создан в 2001 году для навигации в офисах Google. Он основывается на силе сигнала Wi-Fi сетей. Проект был разработан для сотрудников Google и не находится в общем доступе. В настоящее время о судьбе проекта ничего не известно.

В 2005 году группа людей из университетов Америки и при поддержке компании Intel выпустила статью “Accurate GSM Indoor Localization”, в которой описывается их решение по навигации внутри помещений с использование GSM технологий. Согласно статье, они достигли точности в 5 метров в многоэтажных домах. Для получения такой точности они проводили сканирование здания с помощью специального модема и созданной ими программы, а затем на основе этих данных методом K-ближайших соседей определялось текущее местоположение.

Решений, использующих BLE Beacons сейчас намного больше, чем остальных. В качестве примеров хочу выделить Polestar и GoIndoor. Оба проекта предоставляют SDK, возможность настройки карты и сканирования установленных Beacons. Также, с их помощью можно построить маршрут до выбранной точки. Polestar и GoIndoor SDK можно получить по пробной подписке, которая ограничивает использование некоторых функций.

При поддержке Microsoft было разработано решение для позиционирования внутри помещений, основанное на VLC. Принцип позиционирования был расписан в статье “Wearables Can Afford: Light-weight Indoor Positioning with Visible Light”. Главное преимущество данного решения в том, что оно не требует хорошей камеры и процессора от устройства, на котором оно работает.

В конце апреля 2018 года компания Philips представила решение для навигации внутри магазинов, основанное на VLC. Продукт использует лампы Philips и предоставляется самой компанией в крупные учреждения. Открытого доступа к данному продукту и описанию решения в данный момент нет.

2.2 Проблемы в существующих решениях

Каждое описанное решение специализируется на одной технологии, что, уменьшает возможность использования этого решения в других сферах деятельности или при других условиях. Например, решения, основанные на Wi-Fi технологиях, будет невозможно применить в помещениях, где нет или очень мало точек доступа. Поэтому, реализация всех методов в одном приложении расширяет возможности его дальнейшего применения.

Также, многие существующие решения основываются только на данных, полученных от точек доступа или маячков, в зависимости от выбранной технологии. Это будет являться проблемой, если все точки доступа или маячки окажутся вне зоны видимости. К тому же сигнал от передатчиков чаще всего очень нестабильный и может изменяться под влиянием различных факторов.

Рисунок 1. Изменение сигнала Wi-Fi сети в течение 2-х минут

На графике (Рисунок 1) можно заметить, что сигнал Wi-Fi сети может сильно изменяться в течение нескольких секунд и при условии, что приемник сигнала остается неподвижен.

В данной работе будет предложен способ улучшения точности позиционирования на основе датчиков телефона и дополнительных алгоритм. Он позволит уменьшить вероятность некорректного определения местоположения из-за отсутствия или не стабильности сигнала.

3.Технологии позиционирования внутри помещений

В рамках данной работы было изучено 4 метода для позиционирования и навигации внутри помещений. Для каждого метода были выявлены преимущества и недостатки. Далее будет рассмотрен каждый метод в отдельности.

3.1 GSM

“GSM - это наиболее используемая беспроводная технология во всём мире. Она доступна на территории более чем 219 стран и занимает более 90% рынка.” (4G Americans, GSM Global System for Mobile Communications). Это означает, что данная технология доступна и может быть использована практически везде. Также, GSM используется в технологии A-GPS для улучшения времени холодного старта и позволяет использовать GPS без прямой видимости со спутниками, основываясь на уже собранных данных.

Определять местоположения с помощью вышек сотовой связи можно двумя способами. Первый алгоритм основан на предварительном сканировании здания и описан в исследовании “Accurate GSM Indoor Localization”. Второй использует метод, основанный на силе сигнала и местоположении трёх или более вышек.

Первый алгоритм требует наличие специального оборудования с помощью которого нужно проводить предварительное сканирование. Ввиду его отсутствия и невозможности заменить данное оборудование другим, данный алгоритм не был реализован.

Второй алгоритм определения местоположения по вышкам сотовой связи стоит из трех этапов:

· Сканирование вышек, используя Android API (Application programming interface)

· Поиск местоположения каждой вышки в базе данных

· Определение текущего местоположения методом трилатерации. Трилатерация - это метод определения положения путём построения на местности системы смежных треугольников, в которых измеряются длины их сторон.

Данный алгоритм был реализован, но ввиду ограничений, которые будут описаны ниже, он не был использован в итоговой версии приложения.

Во-первых, в Android API есть ограничение доступа к информации о вышках сотовой связи. При тестировании метода было замечено, а позже подтверждено наблюдениями других разработчиков, что получить информацию можно только о той вышке, у которой достаточно сильный сигнал для подключения к ней. Вышки с более слабым сигналом не будут отображаться в результатах сканирования, хотя они могли быть использованы в алгоритме. Также, в будущих версиях обновление данных будет оптимизировано для уменьшения энергопотребления устройства. То есть, сканирование сети будет проводиться намного реже, а информация о вышках будет кэшироваться и может быть неактуальной во время работы алгоритма.

Однако, самой большой проблемой стал поиск подходящей базы данных, содержащей актуальные местоположения вышек. Единой базы, которая бы включала все вышки в Нижнем Новгороде найти не удалось. Большинство из существующих сервисов предоставляют актуальную информацию о вышках в Америке или других странах Европы.

Во время реализации данного метода были протестированы две базы данных, которые предоставляли данные о местоположении вышек в Нижнем Новгороде. Эксперимент заключался в перемещении по городу и активном сканировании ближайших вышек.

Далее данные о вышках отправлялись на сервер и в статистику записывалась информация о существовании этой вышки в базе.

Рисунок 2. Маршрут сканирования сети в Нижнем Новгороде. 2019г.

На карте (Рисунок 2) отображен маршрут, на протяжении которого проводилось сканирование вышек сотовой связи.

Результаты проведенного эксперимента:

· OpenCellId - позиционируется как одна из самых крупных баз данных, содержащих информацию о местоположении вышек сотовой связи в мире. Но проведя эксперимент, было выяснено, что в базе находится только 20% просканированных вышек.

· MyLinkov API - предоставляет собой агрегатор нескольких баз данных. Данный агрегатор, как и базы данных, которые он использует больше не поддерживается, но возможность использовать API всё ещё остается. В результате эксперимента c помощью данного агрегатора удалось определить 50% вышек.

Эксперимент показывает, что в лучшем случае при использовании данного метода можно использовать лишь 50% видимых вышек. Следующий шаг данного алгоритма - трилатерация - требует в качестве входных данных хотя бы 3 вышки с известным местоположением и сигналом. Это значит, что для успешного определения местоположения нужно как минимум 6 доступных вышек. Внутри помещения телефон чаще всего определяет 3-4 вышки сотовой связи, поэтому становится невозможно применить алгоритм трилатерации для определения местоположения.

В связи с плохими результатами, показанными базами данных, были изучены сервисы, предоставляющие возможность определения текущего местоположения по информации, полученной от вышек. Среди таких сервисов были выбраны два: Google Geolocation и Yandex.Locator API, так как они предоставляли самые точные данные о местоположении. В документации заявляется, что Google Geolocation используют данные местоположения и ближайших вышек, которые были собраны со всех пользователей и на их основе определяет текущую позицию. Yandex.Locator не предоставляет информации о способе обработки данных. Оба сервиса принимают список ближайших вышек и их сигнал и возвращают местоположение и точность его определения. Точность определения позиции с их помощью составляет ~30 метров, что так же является плохим показателем.