close

Вход

Забыли?

вход по аккаунту

Штреблев Кирилл Иванович. Устройство для определения местонахождения и параметров движущегося транспортного средства

код для вставки
5
Содержание
Введение ................................................................................................................... 7
1 Анализ структуры системы удаленного контроля движущегося транспортного
средства ..................................................................................................................... 9
1.1 Классификация телеметрических систем ....................................................... 12
1.2 Области применения телеметрических систем .............................................. 14
1.3 Систематизация методов, способов и технических средств определения
местонахождения движущегося транспортного средства .................................... 17
1.4 Выводы по главе ............................................................................................... 43
2
Разработка
алгоритма
определения
местонахождения
движущегося
транспортного средства ......................................................................................... 45
2.1 Алгоритм на основе фильтра Калмана ............................................................ 46
2.2 Алгоритм на основе GeoHash .......................................................................... 50
2.3 Алгоритм определения местоположения движущегося транспортного
средства ................................................................................................................... 51
3
Разработка
устройства
определения
геолокационных
параметров
движущегося транспортного средства .................................................................. 54
3.1 Разработка электрической структурной и электрической функциональной
схем устройства определения местонахождения движущегося транспортного
средства ................................................................................................................... 54
3.2 Разработка устройства и программного обеспечения .................................... 55
3.3 Разработка методики использования устройства ............................................ 79
Заключение ............................................................................................................. 81
Список используемых источников ........................................................................ 83
Приложение А ........................................................................................................ 87
Приложение Б ......................................................................................................... 88
Приложение В......................................................................................................... 90
Приложение Г ......................................................................................................... 93
6
Приложение Д......................................................................................................... 97
Приложение Е… .... …………………………………………………………………99
7
Введение
Слежение за местоположением транспортного средства и такими
параметрами, как скорость, ускорение способствует решению сразу несколько
задач, например, уменьшение расхода топлива, предотвращение аварийных
ситуаций, улучшение качества перевозки пассажиров за счет стиля вождения.
Если скорость и ускорение транспортного средства можно измерить при помощи
датчиков, встроенных в транспортное средство, то определить местоположение
невозможно без задействования навигационных систем. Каждая из таких систем
имеет свои недостатки, зависящие от условий эксплуатации, в некоторых
условиях связь с навигационными системами может быть недостаточной для
определения местонахождения или вовсе отсутствовать, что вызывает потерю
данных о передвижении транспортного средства.
Актуальность темы обуславливается тем, что потребители навигационных
систем ставят задачу перед разработчиками определять местонахождения
транспортных средств в случаях, когда соединение с спутниковыми системами
невозможно.
Целью
является
повышение
эксплуатационной
достоверности
существующих систем геопозиционирования, за счёт устранения потерь
геолокационных данных при отсутствии связи с навигационными системами.
Эта цель достигается в результате решения следующих задач:
 провести анализ структуры системы удаленного контроля объектов;
 систематизировать
способы,
методы
и
технические
средства
определения местонахождения контролируемых объектов;
 разработать алгоритм определения местонахождения движущегося
объекта;
 реализовать устройство определения местонахождения и параметров
движущегося транспортного средства.
8
Объектом исследования являются методы и средства определения
местоположения и параметров движущегося транспортного средства.
Предметом
исследования
является
алгоритм
определения
местоположения движущегося транспортного средства.
Практическая полезность заключается в:
1. использование алгоритма определения местонахождения движущегося
транспортного средства при проектировании систем контроля объектов,
позволяющего уменьшить расхождение координат устройства с реальным
местонахождением, в периоды потери связи с геолокационными системами;
2. использование схем электрической структурной и электрической
функциональной при разработке систем удаленного контроля объектов.
Научная новизна состоит в:
1. использование
параметров
магнитных
полей
позволяет
усовершенствовать общедоступные алгоритмы, для снижения расхождения
координат от реального местонахождения транспортного средства;
2. методике, которая позволяет использовать устройство и программное
обеспечение для определения местонахождения и параметров движущегося
транспортного средства.
По результатам исследования опубликованы статьи:
1. Штреблев К.И.
Анализ
основных
паттернов
проектирования
приложений под Android / К.И. Штреблев // Перспективы развития науки в
современном мире / Сборник статей по материалам IX международной научнопрактической конференции (16 июня 2018г., г. Уфа). / – Уфа: Изд. Дендра, 2018.
– С. 90-95
2. Штреблев К.И. Систематизация способов, методов и технических
средств определения местоположения движущихся объектов / К.И. Штребелв //
Инновации в науке и практике / Сборник статей по материалам IX
международной научно-практической конференции (23 июня 2018г., г. Барнаул).
В 3 ч. Ч.1 / – Уфа: Изд. Дендра, 2018. – С. 205-208
9
1 Анализ структуры системы удаленного контроля движущегося
транспортного средства
Научная деятельность постоянно развивается, открывая новые ветви
исследования, одна из таких ветвей занимается решением задач контроля и
управления объектами на расстоянии, это телемеханика.
Согласно [1] телемеханика (от теле… и механика), область науки и
техники, предметом которой является разработка методов и технических
средств передачи и приема информации (сигналов) с целью управления и
контроля на расстоянии. Телемеханика отличается от других областей науки и
техники, связанных с передачей информации на расстояние (телефония,
телеграфия,
телевидение
и
др.),
рядом
специфических
особенностей,
важнейшие из которых [1], [2]:
1. передача сигналов с постоянной и переменной составляющими, и
очень медленно меняющихся данных;
2. необходимость высокой точности передачи измеряемых величин;
3. необходимость
большого
запаздывания
сигналов,
возможность
передачи данных в режиме реального времени;
4. высокая надежность передачи команд управления;
5. высокая степень автоматизации процессов сбора и использования
информации;
6. централизованность переработки информации.
Таким образом можно сделать вывод о том, что контроля объектов
недостаточно только оборудования на самом объекте, так как необходимо передать
полученные данные, обработать и преобразовать в удобочитаемый для конечного
пользователя вид. Таким образом возникает необходимость создать систему,
которая объединяет несколько технологий, достаточных для решения поставленных
задач. Все необходимые технологии для решения таких задач объединяются в
понятии «телеметрия», а системы называют «телеметрическими».
10
Согласно [4] телеметрия − это область науки и техники, занимающаяся
вопросами разработки и эксплуатации комплекса автоматизированных средств,
обеспечивающих получение, преобразование, передачу по каналу связи, прием,
обработку и регистрацию измерительной информации и информации о событиях с
целью контроля на расстоянии состояния и функционирования технических и
биологических систем различных объектов и изучения явлений природы.
Из определения становится понятно, что телеметрии необходим:
1. объект контроля, параметры которого будут измеряться;
2. датчики, измеряющие физические параметры;
3. приёмник, устройство или совокупность устройств, осуществляющих
сбор, и обработку данных от датчиков, а также в некоторых случаях имеет
возможность отправлять данные на блок управления;
4. блок управления необходим для задач, в которых необходимо
управлением объектом контроля;
5. линия связи − это совокупность программно-аппаратных средств,
которые обеспечивают передачу пакетов информации с телеметрическими
сигналами на расстояние и их прием.
То есть телеметрическая система − это совокупность объекта контроля,
датчиков, блока управления, приёмника и линии связи. В такой системе сбор
информации
с
объекта
контроля
осуществляется
снятием
физических
параметров при помощи датчиков и отправкой их по каналу связи на приёмник,
где информация будет обработана и выдана конечному пользователю, а на
основе полученной информации приёмник или пользователь отправит команду
блоку управления.
Информация, которая передаётся от объекта включает в себя результаты
измерения
некоторых
физических
параметров,
отражающих
состояния
контролируемых объектов, некоторых явлений или событий, а также дынные,
обеспечивающие работу наземных средств телеметрических систем. Вся
информация, поступающую с объектов контроля делится на три группы:
11
1. состояние физических процессов контролируемого объекта;
2. состояние окружающей среды;
3. медико-биологические параметры живого организма.
Вышеописанные являются лишь набором параметров, из-за того, что
контроль
всех
параметров
будет
достаточно
сложен
в
реализации
телеметрической системы, пользователь ограничивается лишь часть параметров
удовлетворяющих для решения поставленной задачи. Все параметры имеют
разный характер изменения, который привязан ко времени, поэтому их моно
делить на два вида:
1. функциональные;
2. сигнальные.
Так как все параметры изменяются во времени, возможно разделение
видов на подвиды.
Первый вид представляет собой непрерывные функции, которые
разделяют по временни:
1. медленно меняющиеся (спектр частот от нуля до 20 – 50 Гц), к ним
можно
отнести
тепмпературу,
давление,
скорость
потока
жидких
и
газообразных тел, линейные и центростремительные ускорения.
2. быстро меняющиеся (спектр частот до 2…3 кГц и более), к ним
можно отнести всевозможные акустические шумы, вибрации.
Второму виду характерены скачкообразные изменения во времени,
поэтому данному подвиду больше характерна двоичная модель, 0 – ничего не
происходит, 1 – что то происходит.
Все види информации указанные выше передаются по линии связи.
Линия связи включает в себя множество каналов, которые сожержат только
один вход и выход, таким образом обеспечивая передачу большего количества
информации на одной несущей частоте.
Результатом анализа литературных источников [1-5] является обобщенная
структурная схема телеметрической системы, изображенная на Рисунке 1.1.
12
Данная схема достаточная для создания любой телеметрической системы, в том
числе и системы по контролю движущегося транспортного средства. Сама
схема состоит из трех основных частей:
1. источник данных, в гнашем случае это датчик, измеряющий параметры
контролируемого объекта и преобразующий их в электрический сигнал;
2. канал связи, который зависит от способа передачи данных;
3. приемное устройство, которое принимает электрические сигналы и
восстанавливает полученные данные.
Рисунок 1.1 – Обобщенная структура телеметрической системы
1.1 Классификация телеметрических систем
Телематические
системы,
как
и
любые
другие
системы
можно
классифицировать по разным признакам. Если классифицировать по назначению,
то все телематические системы можно разбить на три большие группы [4]:
1. оперативные, являются составной частью системы телеуправления, как
информационное звено, то есть все данные, полученные от датчиков, будут
обрабатываться и на основе результата будет сформирована команда управления;
13
2. регистрирующие, своего рода журналы, собирают всю приходящую
информацию, как правило такие системы нуждаются в линии связи с большой
пропускной способностью;
3. комбинированные, объединяющее оперативные и регистрирующие
системы, большинство телекоммуникационных систем относятся к этому типу.
Если классифифировать по зависимости от области применения, получим
большой список, равный существующим областям деятельности человека,
например, контроль производственных процессов, научная деятельность или
состояние больного человека.
Классифицировать можно по принципам измерения параметров, в этом
случае получим системы:
1. телесигнализации, в таких системах скорость передачи играет не
большую раль, так как все параметры сводятся к выбору «0» или «1»;
2. телеизмерений, дают возможность характер изменений параметров
привязанных ко времени и учитывая точность, такие системы нуждаются в
высокой пропускной способности линии связи, так как передаётся большое
количество параметров.
Классификация по типу применяемых каналов даёт системы [4]:
1. с проводным каналом;
2. с радиоканалом;
3. с оптическим каналом.
По принципу использования выделяют системы [4]:
1. с собственным каналом;
2. с совмещенным каналом.
Если использовать как критерий классификации спобоб передачи данных,
то получим следующие системы:
1. аналоговые;
2. цифровые.
14
Классификация по пропускной способности телеметрические системы
деляться на системы:
1. малой информативности, частота параметров Fm = [ 5,15 ] Гц , а сумма
полезных полос частот всех каналов Fсум = [300, 500 ] Гц ;
2. средней
информативности,
используются
для
передачи
широкополосной информации, в этом случае Fm = [ 100,2000 ] Гц и F сум= 5000 Гц ;
3. высокая
информативность
имеет
параметры
Fm = [ 100,2000 ] Гц и
F сум= [ 4000,20000 ] Гц .
Последний параметр классификации – способ обслуживания, здесь
выделяют две системы:
1. адаптивные, Адаптивные системы отличаются большей гибкостью,
так как имееют множество настраиваемых параметров, но разработка и
дальнейшая поддержка таких систем очень сложная;
2. не адаптивные.
1.2 Области применения телеметрических систем
Исходя из определения становится ясно, что телеметрические системы
можно успешно применять в большинстве сфер деятельности человека, при
этом масштабы самой системы будут ограничиваться двумя параметрами:
1. количество получаемых параметров;
2. финансовыми возможностями человека.
Если рассматривать основные сферы человеческой деятельности, то
можно выделить следующие:
Сельское хозяйство. Слежение за состоянием окружающей среды, почвы.
Автоматизация работы хранилищ. Мониторинг болезней и вредителей.
Водоснабжение и водоотведение. Оценка качества воды, скорости водного
потока, определение прорывов в трубах.
Медицина. В этой сфере принято применять термин не телеметрия, а
биометрия. Необходима за контролем состояния поциентов.
15
Оборонная промышленность. Включает в себя много отраслей и почти во
всех можно и нужно использовать телеметрию. При запуске летательных
аппаратов или ракет необходимо контролировать множество параметров,
например, уровень топлива, данные о внешней среде, уровне сигнала и времени
его распространения.
Транспортная отрсль, грузо и пасажиро транспартировки. Помогает
узнать параметры скорости и ускорения, положения в пространстве, уровне
изношенности некоторых деталей. Так же играет не маловажную роль в
автопилотировании и защите транспортных средств от несанкционированного
использования. Помогает реализовать такую систему, как безопасное вождение.
Даёт возможность дистанционно изменять маршрут водителей.
Энергетика. Проводится наблюдение за энергосбережением, позволяет
проводить профилактические мероприятия.
Исследование дикой природы. В данном случае телеметрические системы
используют для изучения животных, места обитаний, рацион, повадки. Чаще
всего животных оснащают датчиками ГНСС
(Глобальная спутниковая
навигационная система), для слежения перемещения, а иногда для изучения
путей мигрирования. Так же используются фото и видео камеры с датчиками
движения, которые работают только если реагируют на появление объектов. В
случае с рыбами используются гидроакустические аппараты, позволяющие
оценивать пространственного распределения рыбы.
Розничная торговля. Позволяет автоматизировать часть работ с подсчётом
прибыли и количестве товаров имеющихся на складах. RFID (радиочастотная
идентификация) широко используется для пометки товаров, что упрощает учёт
и предотвращения краж товаров. Такие бирки чаще всего пассивные, то есть
что бы получить информацию, необходимо поднести считывающее устройство,
менее используются RFID активные, то есть имеющие возможность постоянно
транслировать информацию в пространство.
16
Правоохранительная деятельность. Телеметрия является неотъемлемой
частью этой отрасли, так как помогает следить за соблюдением ПДД,
всевозможные сигнализации и охранные устройства. Помогает следить за
людьми на испытаном сроке после досрочного освобождения. Телеметрия
позволяет передавать связывать камеры, установленные на улицах или в
помещениях, что позволяет обрабатывать большой объем информации и
помогает оперативнее реагировать на возникающие нарушения.
Умные дома. Для повышения комфорта, люди используют телеметрию
создавая умные дома, то есть системы, которые могут распознавать разные
заранее заложенные в них ситуации, происходящие в помещении, что позволяет
реагировать
на
них.
Есть
системы
более
масштабные,
собирающие
информацию с нескольких умных домов. Умный дом обычно включает в себя
разные системы, наиболее распространенные системы контролируют:
1.
отопление;
2.
вентиляцию и кондиционирование;
3.
охранно-пожарную сигнализацию;
4.
разграничение доступа к помещениям;
5.
обнаружение протечек воды и утечек газа;
6.
видеонаблюдение;
7.
освещение;
8.
механизацию
здания
(открытие / закрытие
ворот,
шлагбаумов,
электроподогрев ступеней и т. п.), управление с одного места аудио-,
видеотехникой, домашним кинотеатром.
Центр обработки данных (далее − ЦОД). ЦОД это автономное здание, где
размещаются серверы для сбора, обработки и хранения данных, которые
соединяются с внешним миром каналами связи, чаще всего связана с
глобальной сетью Интернет. Такой центр состоит из следующих элементов:
1. информационная
инфраструктура,
контролирует
серверное
оборудование, обеспечивает весь функционал для работы с информацей;
17
2. телекоммуникационная
инфраструктура,
обеспечивает
всех
внутренних элементов ЦОД, контролирует обмен данными с пользователями;
3. инженерная инфраструктура, управляет кондиционированием, так как
параметры влажность и температура влияют на износ оборудования,
контролирует охранно-пожарные системы и системы пожаротушения.
Телеметрические системы широко используются при бурении (как
наклонных, так и горизонтальных), в системах глобального позиционирования.
Из вышесказанного становится видно, что применение систем телеметрии
довольно обширна и охватывают почти все сферы деятельности человека и
собирают самую разную информацию. Причем системы, которые решают
схожие задачи в одной сфере могут существенно различаться. При реализации
любой системы существуют такие задачи, которые невозможно решить
полностью, одной из таких задач является точное определение текущей
геолокации движущегося объекта.
1.3 Систематизация методов, способов и технических средств определения
местонахождения движущегося транспортного средства
Согласно [5] местонахождение (местоположение) − конкретное место
размещения объекта, например, символа в строке или станции в сети.
Геолокация − это процесс определения местоположения какого-либо
объекта, скорость и направление движения. Для определения геолокационных
параметров используют различные системы геопозиционирования.
Под системами геопозиционирования чаще всего понимают спутниковые
системы, помогающие определить геолокационных параметров устройства, но
это не всегда возможно или погрешность очень велика, поэтому для
уменьшения погрешности и восполнения пробелов при получении параметров
геолокации
используют
триангуляцию.
Точность
последние годы вырос.
данные
данного
с
вышек
способа
мобильной
определения
связи
применяя
параметров
за
18
Существуют способы определения геолокационных параметров и другими
способами, например, связывать устройства, использующие другие устройства
для выхода в интернет, с полученным IP адресом. Устройства предоставляющее
выход в интернет, как правило работают через сервера WHOIS, которые хранят
информацию о адресе устройства по IP или MAC адресу, UUID и прочие данные
позволяющие
идентифицировать
устройство,
геолокационные
параметры
которого уже известна.
Из вышесказанного следует, что все современные геолокационные
системы можно разбить на 2 большие группы:
1. глобальные спутниковые системы;
2. системы на базе инфраструктуры сотовых сетей и сетей интернет.
1.3.1 Спутниковые системы
Глобальная навигационная спутниковая система или ГНСС − это
навигационная
спутниковая
система,
предназначенная
для
определения
пространственных координат, составляющих вектора скорости движения и
поправки часов потребителя ГНСС в любой точке на поверхности Земли,
акватории Мирового океана, воздушного и околоземного космического
пространства [6].
Согласно [6] потребитель ГНСС − это объект навигации, решающий
навигационную задачу посредством приема и обработки радионавигационных
сигналов ГНСС от навигационных космических аппаратов ГНСС.
Исходя из определения ГНСС следует, что потребитель ГНСС (далее −
устройство) можно узнать не только текущее местоположение устройства, но и
текущее мировое время, вектор скорости и скорость устройства. Теперь можно
расширить
понятие
геолокации,
сделав
объединяющим следующие параметры:
1. вектор скорости;
2. скорость;
его
универсальным,
то
есть
19
3. мировое время.
Принцип работы ГНСС основывается на измерении расстояния от
спутников (положение которых известно с большой точностью) до приёмной
части, установленной на устройстве. Для увеличения скорости обработки данных
используются
альманахи,
это
специальные
таблицы
с
данными
о
местоположении всех спутников ГНСС, устройство постоянно обновляет
альманах. Обновление происходит через спутники, которые не только передают
данные о расстоянии до них, но и весь альманах. Приёмная часть устройства
зная альманах и текущее расстояние до нескольких спутников вычисляет
текущее местоположение пользуясь простейшими геометрическими формулами.
Определение расстояния до спутника сложная задача, так как существует
много факторов, которое сложно прогназировать, влияющих на время преодоления
радиовлной расстояния до приёмной части устройства. Упрощением решения столь
сложной задачи, стало привязка к глобальному (мировому) времени, каждый
спутник оснащен атомными часами имеющими малое отклонение от реального
времени. Каждый сигнал спутника это сигнал точного времени, установленного на
нём. Приёмник такого сигнала синхронизирует время с установленным на
устройстве, в последующие интервалы получения сигналов будет учитываться
задержка между текущем временем и полученным от спутника. Имея полученную
информацию о задержках приёмник вычисляет координаты устройства, а
остальные параметры как скорость, ускорение, азимут и т. п. можно вычеслить
основываясь на временных задержках, которое будет связывать несколько точек,
рошедших устройством.
В [7] определяются основные элементы ГНСС (в рамках магистерской
диссертации достаточно три основных компонента):
1. спутниковая геодезическая сеть, это сеть геодезических пунктов,
фундаментально закреплённых на поверхности Земли, координаты которых
определяются на основе математической обработки выполненных на них
навигационных спутниковых измерений;
20
2. навигационная
аппаратура
потребителя,
это
аппаратура,
предназначенная для приёма и обработки радионавигационных сигналов
навигационных
космических
аппаратов
ГНСС
с
целью
определения
пространственных координат, составляющих скорости движения и поправки
часов потребителя ГНСС;
3. навигационный космический аппарат,
это космический аппарат,
имеющий на борту аппаратуру, предназначенную для формирования и
излучения радионавигационных сигналов ГНСС, необходимых потребителю
ГНСС для определения пространственных координат составляющих скорости
своего движения и поправки часов.
В настоящее время существуют две спутниковые системы, которые имеют
глобальное
покрытие
и
могут
бесперебойно
передавать
информацию
устройствам о их текущих геолокационных параметрах [8]:
1. NAVSTAR;
2. ГЛОНАСС.
1.3.1.1 Система NAVSTAR
Точность измерений с помощью NAVSTAR зависит от конструкции и
класса приёмника, числа и расположения спутников (в реальном времени),
состояния ионосферы и атмосферы Земли (сильной облачности и т. д.), наличия
помех и других факторов. «Бытовые» GPS-приборы, для «гражданских»
пользователей, имеют погрешность измерения в диапазоне от ±3-5 м до ±50 м и
больше (в среднем, реальная точность, при минимальной помехе, если новые
модели, составляет ±5–15 м в плане). Максимально возможная точность
достигает +/- 2-3 метра на горизонтали. По высоте от ±10-50 м до
±100-150 метров. Высотомер будет точнее, если проводить калибровку
цифрового барометра по ближайшей точке с известной точной высотой, (из
обычного атласа, например) на ровном рельефе местности или по известному
атмосферному давлению (если оно не слишком быстро меняется, при перемене
21
погоды). Измерители высокой точности «геодезического класса» точнее на дватри порядка (до сантиметра, в плане и по высоте). Реальная точность измерений
обусловлена различными факторами, например удаленностью от ближайшей
базовой (корректирующей) станции в зоне обслуживания системы, кратностью
(числом повторных измерений / накоплений на точке), соответствующим
контролем качества работ, уровнем подготовки и практическим опытом
специалиста. Такое высокоточное оборудование может применяться только
специализированными организациями, специальными службами и военными.
Качество измерений NAVSTAR ухудшается, если спутники располагаются
на небе плотным пучком или на одной линии и «далеко» – у линии горизонта
(всё это называется «плохая геометрия») и есть помехи сигналу (закрывающие,
отражающие сигнал высотные здания, деревья, крутые горы поблизости). На
дневной стороне Земли (освещённой, в данный момент, Солнцем) после
прохождения через ионосферную плазму, радиосигналы ослабляются и
искажаются на порядок сильнее, чем на ночной. Во время геомагнитной бури,
после мощных солнечных вспышек возможны перебои и длительные перерывы
в работе спутникового навигационного оборудования.
Фактическая точность NAVSTAR зависит от типа приемника и
особенностей сбора и обработки данных. Чем больше каналов (их должно быть
не меньше 8) в навигаторе, тем точнее и быстрее определяются верные
параметры.
При
получении
«вспомогательных данных A-GPS
сервера
местоположения» по сети Интернет (путём пакетной передачи данных, в
телефонах и смартфонах) увеличивается скорость определения координат и
расположения на карте.
Для
повышения
скорости
измерений
рекомендуется
применять
многоканальный (8-и канальный и более), приёмник с внешней антеной.
Должны быть видимы, как минимум, три спутника NAVSTAR. Чем их больше,
тем лучше результат. Необходима, так же, хорошая видимость небосвода
(открытый горизонт). Быстрый, «горячий» (длительностью в первые секунды)
22
или «тёплый старт» (полминуты или минута, по времени) приёмного
устройства возможен, если он содержит актуальный, свежий альманах. В
случае, когда навигатор долго не использовался, приёмник вынужден получать
полный альманах и, при его включении, будет производиться холодный старт
(если прибор с поддержкой AGPS, тогда быстрее − до нескольких секунд). Для
определения только горизонтальных координат (широта / долгота) может быть
достаточно сигналов трёх спутников. Для получения трёхмерных (с высотой)
координат нужны, как минимум, четыре спутника.
1.3.1.2 Система ГЛОНАСС
Спутники ГЛОНАСС непрерывно посылыет данные двух типов [15]:
1. сигнал стандартной точности с частотой 1,6 ГГц;
2. сигнал высокачастотный с частотой 1,2 Ггц.
Поступающая информация с стандартной частотой доступнам всем
потребителям ГНСС на бесплатной основе в любой стране мира и точке
планеты Земля. Точность ГНСС ГЛОНАСС достаточно высока для определения
геолокиции, но её можно повысить используя дополнительные методы
измерений расстояния до спутников, например, дифференциальный метод. Без
дополнительных методов вычисления расстояния до спутников система имеет
следующие погрешности [15]:
1. по оси X (вертикально расположенная ось относительно центра
Земли) 70 м с вероятностью 99,7 %;
2. по оси Y (горизонтально расположенная ось относительно центра
Земли) координат с точностью 50-70 м (вероятность 99,7 %);
3. погрешность времени состовляет 0,7 мкс с вероятностью 99,7 %.
Высоко частотный сигнал используют вооруженные силы и прочие
государственные структуры РФ и использование его является нарушением
закона, но вопрос о предоставлении данного диапозона в общее пользование
еще рассматривается.
23
Как и GPS ГЛОНАСС может определять координаты и по оси Z и
увеличить точность получения точного времени, но для этого необходимо
одновременно получать сигналы минимум от четырёх спутников. При этом
приёмник устройства следя за изменением дальности от обнаруженных
спутников измеряет скорость своего движения, одновременно производя
автоматическую обработку временных меток, содержащихся в радиосигнале
спутника. Принцип расчёта положения спутников не отличается от описанного
в главе 2.1.
ГЛОНАСС использует такие же принципы работы, что и GPS. Не
пислотируемые спутники используют сигналы вернего диапозона частот,
который формируется из нескольких сигналов, сдвигающихся относительно
друг друга на 90 градусов (то есть перпендикулярны друг другу) , такие сигнали
являются фазоманипулированными сигналами состоящими из:
1. узкополосного открытого дальномерного сигнала;
2. дальномерного сигнала высокой точности.
В первом случае сигнал модулируется служебной навигационной
информацией, а сигналы нижнего диапазона используются для передачи только
высокоточного кода, планируется что такие сигналы будут передавать другую
информацию, позволяющая пользователям повысить точность информации при
помощи ионосферной коррекции.
При этом вся служебная информация накладывается на узкополосный
дальномерный сигнал способом инвертирования открытого дальномерного
кода. В этом случае если вся информация зависит от времени, то длина строки
будет равна 2 секунды, а сам сигнал будет передаваться как пакет данных:
1. метка времени передаётся в первых 0,3 секундах;
2. 85 двоичных символов занимают остальное оставшееся время.
Вся информация разбиватеся на 15 строк, исходя из того, что длина одной
строки 2 секунды, то передача всех данных займёт 30 секунд. 15 строк
приравнивают к одному кадру, в одном кадре содержится информация о
24
геолокационных параметрах и части альманаха. Пять полных кадров
объединяют в суперкадр, из частей которого можно восстановить полный
альманах.
Кадр в свою очередь передаёт информацию по каждому навигационному
спутнику, основными пунктами являются:
1.
точность информации;
2.
точное время;
3.
информация о координатах, вектора скорости и скорости на момент
времени начала передачи данных, которые представленны в системе координат
с временем по Гринвичу;
4.
поправки к частотно-временным характеристикам на момент времени
начала передачи сигнала, которые состоят из коэффициента отклонения по
отношению к несущей частоте сигнала и коэффициент отклонения по
отношению к времени отправки сигнала;
5.
время, представляют как кратное число тридцати минутам от начала
текущих суток, к которому привязана информация из пункта 3 и 4.
Альманах содержит не мало информации о системе, например:
1. время актуальности альманаха, то есть время помледнего обновления;
2. параметры орбиты, номер пары несущих частот и поправку к шкале
3. времени сигнала до каждого спутника;
4. часовой пояс каждого спутника.
В ГЛОНАСС не предполагается введение селективного доступа, то есть
излучаемый сигнал не смешивается с искусственно созданными ошибками, что
облегчает математический аппарат, а значит и снижает нагрузку на приёмное
устройство. ГЛОНАСС использует частотное разделение канала, что уменшает
точность определения геолокационных параметров в сравнении с ГНСС. В
случаях
минимальной
солнечной
активности
точность
геолокационных параметров по оси X составояет 20-28 метров.
определения
25
Почти все ГНСС системы схожи в принципах работы, но имеют различия
в точности определения геолокиции. Наприер, ГЛОНАСС имеет меньшую
ошибку на высоких частотах, а NAVSTAR на средних.
1.3.2 Системы на базе инфраструктуры сотовых сетей
На ряду с использованием ГНСС существуют и другие системы
определения геолокационных параметров. Наиболее используемой и точной
являются системы набазе сотовых ситей, такой способ имеет большую
погрешность и в основном используется для снижение ошибок в связке с
ГНСС. На сегодняшний день мобильные сети покрывают большую часть
заселеной суши, но не покрывают водную поверхность (моря и океаны).
Используемые технологии, на которых построены сотовые сети и
мобильный
интернет,
позволяют
решить
проблему
определения
геолокационных параметров устройства. Самый простой способов объединает
пеленгацию, включающую в себя разностнодальномерную, дальномерную и
угловую, и триангуляцию. Например в сетях CDMA используются сигналы
регулирующие мощность передатчиков. В таком подходе, что бы вычислить
координаты устройства необходимо использовать параметры сигналов канала
синхронизации [16] [17]:
1. амплитуда сигнала;
2. время задержки, определить достаточно просто, поскольку моменты
времени, когда сформирован сигнал передаётся в самом сигнале;
3. азимут, определяется изменением фаз принимаемого от устройства
сигнала на решетках антены базоваой станции.
Проблема
в
точности
определения
геолокационных
параметров
заключается в стоимости оборудования и постоянной его доработке, так же
требуется постаянная коррестировка и настройка программного обеспечения,
ведь чем проще метод, тем меньше затрат надо понести оператору
отвечающему за базовые станции.
В то же время сами операторы
26
заинтересованы в усовершенствовании таких систем, для уменьшения затрат и
повышения точности, так как в больших городах такие методы более
востребованы, нежели методы ГНСС, на точность которых влияет большое
количество зданий.
Ниже будут рассмотренны методы определения геолокиции, которые
можно классифицировать по двум признакам:
1. направление сигнала;
2. на
чьей
стороне
будет
обработка
данных
о
определении
геолокационных параметров, то есть непосредственно на устройстве конечного
пользователя или на стороне оператора с использование дополнительного
программного обеспечения и аппаратных компликсов, которые будут входить в
базовые станции.
1.3.2.1 Вычисление координат абонента с помощью E-OTD (Circular E-OTD)
При данном подходе система имеет следующие элементы:
1. мобильная станция;
2. три и более базовых станций;
3. станция измерений.
Время
в
мобильных
станциях
и
станциях
измерений
не
синхранизированы, то есть и там и там разное время. Одна из базовых станций
должна излучить радиосигналы на мобильную станцию и на станцию
измерений, где полученное время сохраняется. Далее возможно два варианта:
1. расчёты производятся на мобильной станции, тогда измерительная
станция присылает своё время мобильной, но тогда измерительная станция
теряет смысл;
2. расчёты производятся на измерительной станции, тогда мобильная
станция должна передать своё текущее время на измерительную станцию.
Эти операции должны быть выполнены минимум три раза, при этом
должны учавствовать минимум три разные базовые станции. Сами операции
27
выполняются относительно быстро, так как если пользователь изменит своё
местоположение, то данные устареют или повыситс погрешность. После
получения всей необходимой информации о времени устройств и их разности
производятся расчёты. При этом предлагается простая система уравнений,
представленная формулами 2.3.1.1 – 2.3.1.3.
R1-r1=v(T1-t1+dt)
(2.3.1.1)
R2-r2=v(T2-t2+dt)
(2.3.1.2)
R3-r3=v(T3-t3+dt)
(2.3.1.3)
где приняты следующие обозначения:
1. Rx – обозначает расстояние между базовой станцией и мобильной
станцией;
2. rx – расстояние между базовой станцией и станцией измерений;
3. Tx – обозначает время поступления сигнала от мобильной станции;
4. tx – обозначает время поступления сигнала на станцию измерения;
5. v – скорость распространения радиоволн;
6. dt – отклонение во времени между мобильной станцией и станцией
измерения.
В трёх уравнениях присутствуют три неизвестные это расстояние между
базовой и мобильной станциями, координаты мобильной станции и отклонения
во времени. Все координаты переводятся в широту и долготу, поэтому R x и rx
принимают вид обычных координат x и y [17].
Observed Time Difference (OTD) или метод на основе разности времени
двух вигналов. Близок к разностнодальному, но отличается тем, что мобильная
станция определяет разницу времени сигналов поступивших от базовых
станций. Первый сигнал принимается от базовой станции, на которую
возложено обслуживание радиочастоты, в области действия которой находится
устройство, а затем такой же сигнал принимается от соседней базовой станции.
Так как расстояния между базовыми станциями постоянны и известны, то
28
применяя триангуляцию возможно получения местоположения устройства, но
придется принять минимум по три сигнала от каждой вышки [18].
Как говорилось ранее, расстояния между вышками ивестны и постоянны,
но мобильное устройство не знает их, поэтому существует два решения данной
проблемы. Первый способ подразумевает в наличии у оператора станции
измерений и данные отправляются туда, после чего результат отправляется
мобильной
станции.
Второй
способ
подразумевает,
что
все
расчёты
производятся на стороне мобильной станции, поэтому базовые станции
передают информацию о своём местоположении мобильной станции. В любом
из случаев данный метод будет эффективен только при нахождении мобильной
станции в радиусе действия трёх вышек.
Существует модификация данного метода, это Enchanced-OTD, который
использует
дополнительный
функционал
для
измерения
относительной
разности времени, что решает проблему скорости определения геолокационных
параметров, тем самым снижая ошибку в конечных результатах.
Из описания данного метода становятся понятны его недостатки из-за
необходимых зтрат на приобритение, настройку и поддержку станции
измерений, которая будет выполнять все необходимые вычисления. Так же
модификации требуют и мобильные станции, что не входит в интересы
конечного пользователя, а начит усложняет использование тких методов.
1.3.2.2 Вычисление координат абонента с помощью UL-TOA
UL-TOA − метод, основанный на измерении времени прибытия сигнала от
мобильной станции до нескольких базовых. Измеряя разницу во времени
поступления сигнала на каждую из БС, можно определить координаты
мобильного терминала. Для работы системы необходимо синхронизировать
время всех БС с помощью атомных часов или GPS (замечу, что в сетях CDMA
синхронизация
значительных
заложена
доработок
изначально).
оборудования
Внедрение
сети,
и
UL-TOA
стоимость
требует
внедрения
29
оценивается как очень высокая. К тому же мало кому понравится, что за ним
следят − контролировать работу системы с мобильного аппарата невозможно.
В системе работают мобильная и три базовые станции. Координаты БС
известны. На каждой БС стоит специальное оборудование, измеряющее время
получения сигнала от мобильной станции, часы на всех БС синхронизированы.
Как только все три БС получают сигнал от мобильной станции (это может быть
любое «телодвижение» МС − попытка позвонить или запрос на доступ к БС),
данные о времени получения сигнала всеми БС поступают в центр измерений,
где и рассчитываются координаты абонента. Для их вычисления необходимо
решить систему (2.3.2).
R1=v*t
R2=v(t+t1)
R3=v(t+t2),
(2.3.2)
где Rx − расстояние от БС до мобильной станции; t − время прохождения
сигнала до «первой» БС; t1 и t2 − разница во времени поступления сигнала на
первую БС и на остальные БС; v − скорость распространения радиоволн. Снова
три неизвестные величины (Rx выражается через x, y): t, x, y. Иногда для
повышения точности задействуют четыре БС, а не три [17], [19].
Метод на основе определения времени прибытия (приема) сигнала от МТ
к БС (Time of Arrival, TOA). При использовании этого метода каждая базовая
станция
должна
быть оснащена
измерительным
блоком,
аналогичным
вышеупомянутому LMU. При этом МТ вместе с запросом определения
местоположения посылает тестовый сигнал, который принимается несколькими
базовыми станциями (оптимально четырьмя и более, минимум тремя) и
передается в LMU. Сравнение времени задержки прихода сигнала позволяет
определить местоположение. В этом варианте также применен разностнодальномерный принцип,
алгоритм
используемому в методе OTD.
триангуляции аналогичен алгоритму,
30
Метод TOA и его модификация UL-TOA (Uplink Time of Arrival)
обеспечивают высокую точность, которая зависит от числа базовых станций,
участвующих в измерении. Отметим, что метод ТОА не требует модернизации
МТ. Однако этот метод значительно сложнее в реализации. Во-первых,
необходимо постоянно синхронизировать внутренние часы каждой БС с
помощью
внешних
высокоточных
сигналов,
например
системы
GPS.
Во-вторых, кроме наличия блока LMU на каждой БС необходимо иметь
программу, которая будет вызывать дополнительные базовые станции и
принудительно выводить их на связь с МТ [19].
1.3.2.3 Однозоновый метод (Cell Geographic Identification, CGI)
Этот метод является наиболее простым. В нем используются уникальный
идентификатор соты − Cell ID и географические координаты ее центра (базовой
станции), которые точно известны. Известен также и радиус соты. В этом
методе местоположение мобильного терминала определяется с точностью до
зоны
обслуживания
той
базовой
станции,
в
которой
этот
терминал
зарегистрирован. При использовании секторных антенн местоположение МТ
может быть определено с точностью до сектора [17].
Значение Cell ID постоянно находится в памяти МТ. При переходе из соты
в соту это значение обновляется. Если абонент запрашивает услугу на базе
определения
местоположения,
соответствующая
программа
пересылает
значение Cell ID вместе с запросом на сервер, обслуживающий данное
приложение [20].
В крупных городах размер соты минимальный, и точность метода может
быть порядка 150 м. В пригородных и сельских районах плотность установки
базовых станций ниже, поэтому и точность метода значительно меньше (до
35 км). Достоинства метода − возможность использования стандартного
оборудования и базовых станций, и мобильных терминалов [17].
31
1.3.2.4 Варианты работы технологии CGI-TA
Одиночная сота, радиус от 150 метров (пикосота) до 35 километров. Сотасектор, сота в сочетании с Timing Advance, сота-сектор в сочетании с Timing
Advance.
Однозоновый
метод
с
временной
коррекцией
(Cell
Geographic
Identification-Time Advance, CGI-TA). Этот вариант предыдущего метода дает
более точные результаты. В нем измеряется задержка между поступлением
начала тайм-слота и сигналом от МТ. В результате в круге (секторе) выделяется
дуга
шириной
около
550 м,
соответствующая
параметрам
временных
интервалов радиоинтерфейса сети GSM. Метод требует доработки ПО базовых
станций, но чрезвычайно эффективен при невысокой плотности расположения
базовых станций [17].
1.3.2.5 Метод сопоставления образов местоположения (Location Pattern
Matching, LPM)
Этот метод разработан в компании U.S. Wireless. Он основан на том, что в
процессе работы передатчика МТ на базовую станцию поступает несколько
сигналов, как "прямых", так и отраженных от зданий, возвышенностей либо
других препятствий. Совокупность параметров этих сигналов (амплитуда,
задержка,
фаза)
представляет
некий
"образ",
который
характерен
для
определенного местоположения МТ в пространстве. Для каждой базовой
станции предварительно создается библиотека "образов". При определении
местоположения принятый "образ" сравнивается с хранимыми и, определив
образ, наиболее близкий к принятому, получают текущие координаты МТ.
Для реализации метода LPM разработана система RadioCamera. Она
устанавливается
на
каждой базовой станции и позволяет определять
местоположение с хорошей точностью. Так, при тестировании в Сиэтле (США)
в 67 % случаев точность составила 61 м. Недостатком метода является
необходимость установки дополнительного блока на каждой базовой станции, а
32
также необходимость предварительного создания библиотеки "образов" для
всей сети. Однако при использовании метода LPM нет необходимости вносить
изменения в уже установленную аппаратуру и ПО базовой станции и сетевой
инфраструктуры. С системой RadioCamera взаимодействуют стандартные МТ.
1.3.3 Датчики, как геолокационная система
В
основном
датчики
использующиеся
в
устройствах
определения
геолокационных параметров используются для корректировки данных, поступающих
с ГНСС-приёмника. Зная предыдущее геолокационные данные, например:
1. скорость движения;
2. курс (азимут) или направление движения (отклонение от истинного
севера);
3. текущее местоположение;
Используя датчики, можно определить текущую скорость и направление
движения. Каждый датчик выдаёт данные с определенными промежутками
времени, то есть возможно появляется возможность определения пройденного
пути относительно предыдущего местоположения, что позволяет вычислить
текущие геолокационные данные.
Исходя из вышесказанного нам потребуется три датчика: акселерометр,
гироскоп, магнитометр.
1.3.3.1 Акселерометр
Акселерометр − прибор, измеряющий проекцию кажущегося ускорения.
Кажущееся ускорение есть ускорение, вызванное равнодействующей силне
гравитационной природы, действующая на массу и равное силе отнесённой к
величине массы. Современные акселерометры позволяют измерять ускорение
сразу в трех плоскостях.
Принцип
Рисунке 1.3.3.1.
действия
простейшего
акселерометра
изображен
на
33
Груз закреплен на пружине. Демпфер подавляет колебания груза. Чем
больше кажущееся ускорение, тем сильнее деформируется пружина, изменаяя
показания прибора.
Рисунок 1.3.3.1 − Принцип действия простейшего акселерометра
Акселерометр различают по:
Виду движения
1. линейный;
2. угловой.
По технологии изготовления:
1. пьезоэлектрические акселерометры;
2. пьезорезистивные акселерометры;
3. акселерометры на переменных конденсаторах.
Пьезорезистивные акселерометры обычно имеют малый диапазон
чувствительности, поэтому они больше подходят для детектирования ударов,
чем определения вибрации. Отличаются широким диапазоном частот (от
нескольких Гц до 30 кГц), при этом частотная характеристика может оставаться
неизменной, что позволяет измерять сигналы большой продолжительности.
Наиболее распространенный тип акселерометра, используемый для
измерения
механической
вибрации
и
ударов
–
пьезоэлектрический
акселерометр. Это определяется качествами, свойственными этому типу
датчиков вибрации.
Основные преимущества пьезоэлектрических акселерометров:
34
1. широкий частотный диапазон;
2. линейная амплитудная характеристика в широком динамическом
диапазоне;
3. возможность при использовании интеграторов, включенных на выход
акселерометра,
получить
сигнал,
пропорциональный
виброскорости
и
виюроперемещению;
4. способность работать в тяжелых окружающих условиях (температура,
влажность);
5. высокая механическая надежность и долговечность ( нет движущихся
частей);
6. отсутствие
необходимости
в
источнике
питания,
т. к.
пьезоакселерометр является датчиком генераторного типа.
Пьезоэлектрический акселерометр состоит из инерционной массы,
пьезоэлемента и основания, жестко между собой соединенными, и закрытого
корпуса. Пьезоэлемент из поляризованной пьезокерамики или пьезокристалла
выполняет роль пружины, соединяющей массу с основанием. В силу своей
инертности при воздействии вибрации на основание пьезоакселерометра,
инерционная масса отстает в своем движении от основания, это вызывает
деформацию пьезоэлемента и возникновение на его обкладках заряда,
пропорционального ускорению.
Акселерометры
на
переменных
конденсаторах
–
продукт
самых
современных технологий. Они отличаются высокой чувствительностью, узкой
полосой
пропускания
(от
15
до
3 кГц)
и
отличной
температурной
стабильностью. Погрешность чувствительности в полном температурном
диапазоне до 1800С не превышает 1.5 %. Акселерометры этого типа отлично
подходят для измерения низкочастотной вибрации, движения и фиксированного
ускорения, однако их стоимость ввиду новизны препятствует широкому
распространению.
35
Рисунок 1.3.3.2 − Основной принцип работы пьезоэлектрических
акселерометров
Рисунок 1.3.3.3 − Основной принцип работы акселерометров на переменных
конденсаторах
36
Существуют определенные требования к установке акселерометров при
диагностировании объекта контроля. Эти требования включают в себя
следующее:
1. акселерометр должен воспроизводить, насколько это возможно,
движение испытуемой конструкции в месте установки датчика;
2. установка акселерометра должна влиять на колебания конструкции в
минимальной, насколько это возможно, степени;
3. отношение сигнала с выхода акселерометра к воспринимаемым им
колебаниям не должно быть искажено влиянием собственной резонансной
частоты установленного акселерометра.
Для реализации указанных принципов необходимо выполнить следующие
требования:
1. акселерометр и его крепление должны быть максимально жесткими и
твердыми, а поверхность крепления – максимально чистой;
2. само крепление должно вносить минимальные искажения в движение
конструкции, для чего рекомендуется использование симметричных креплений;
3. масса акселерометра вместе с устройством крепления должна быть
мала в сравнении с динамической массой конструкции.
Поверхность, на которую устанавливается датчик, должна быть проверена
на гладкость и наличие загрязнений и, если необходимо, подвергнута
дополнительной шлифовке.
Акселерометр можно использовать для определения ускорения тела и для
определения угла наклона (в качестве инклинометра). Данные акселерометра
довольно сложно интерпретировать. Допустим он показывает ускорение по
оси X. Тело может двигаться с ускорением вдоль оси X, может быть наклонено
и это проекция g на ось X. В этом простейшем случае мы можем посмотреть на
значение ускорения вдоль оси Z, но обычно ситуация сложнее. Но главная
проблема в том, что акселерометр показывает только относительные ускорения,
которые никак нельзя связать с картой и GPS координатами.
37
Еще одна проблема − акселерометры имеют собственный шум. Для
подавления таких шумов можно использовать различные методы, но некоторые
методы могут добавлять ошибки или снизить время реакции датчика:
1. метод скользящего окна;
2. фильтр низких частот;
3. медианный фильтр.
Чаще используют фильтр Калмана, но для этого нужно знать дисперсию
ошибки. Во встраиваемых системах можно узнать, что за акселерометр
используется и в его техническом описании найти это значение, но при
использовании алгоритма на разных устройствах необходимо самим подсчитать
дисперсию, добавив шаг калибрации в код или подобрать такое значение, при
котором большинство устройств будут выдавать приближенный к реальности
результат [21].
1.3.3.2 Гироскоп
Гироскоп − быстро вращающееся симметричное твёрдое тело, ось
вращения которого (ось симметрии) может изменять своё направление в
пространстве.
Основные типы гироскопов по количеству степеней свободы:
1. двухстепенные,
2. трехстепенные.
Основные два типа гироскопов по принципу действия:
1. механические гироскопы,
2. оптические гироскопы.
Также проводятся исследования по созданию ядерных гироскопов,
использующих ЯМР для отслеживания изменения спина атомных ядер.
Вибрационные гироскопы − устройства, сохраняющие поворачивающие
или сохраняющие направление своих колебаний при повороте основания
пропорционально угловой скорости (ДУС − датчики угловой скорости) или углу
38
поворота основания (интегрирующие гироскопы). Этот тип гироскопов
является намного более простым и дешёвым при сопоставимой точности по
сравнению с роторными гироскопами. В англоязычной литературе также
употребляется термин «Кориолисовы вибрационные гироскопы», хотя принцип
их действия основан на эффекте действия силы Кориолиса, как и у роторных
гироскопов [22].
Например, микромеханические вибрационные гироскопы применяются в
системе измерения наклона электрического самоката Сегвей. Система состоит
из пяти вибрационных гироскопов, чьи данные обрабатываются двумя
микропроцессорами.
Подобные
типы
микрогироскопов
используются
в
мобильных
устройствах, в частности, в мультикоптерах, фотоаппаратах и видеокамерах
(для управления стабилизацией изображения), в смартфонах и т. д.
Принцип работы
Два подвешенных грузика вибрируют на плоскости в MEMS-гироскопе с
частотой ωr.
При повороте гироскопа возникает Кориолисово ускорение равное
a → c = − 2 ( v → × Ω → ), где v − скорость и Ω − угловая частота поворота
гироскопа. Горизонтальная скорость колеблющегося грузика получается как:
X i p ω r cos ⁡ ( ω r t ), а положение грузика в плоскости − X i p sin ⁡ ( ω r t ) .
Внеплоскостное движение y o p , вызываемое поворотом гироскопа равно:
y o p = F c k o p = 2 m Ω X i p ω r cos ⁡ ( ω r t ) k o p
где: m − масса колеблющегося грузика.
k
o
p
−
коэффициент
жёсткости
пружины
в
направлении,
перпендикулярном плоскости.
Ω − величина поворота в плоскости перпендикулярно движению
колеблющегося грузика.
Такие гироскопы делятся на:
1. пьезоэлектрические гироскопы;
39
2. твёрдотельные волновые гироскопы;
3. камертонные гироскопы;
4. вибрационные
роторные гироскопы (в том числе динамически
настраиваемые гироскопы);
5. МЭМС-гироскопы.
Оптические гироскопы делятся на лазерные (активные оптические)
гироскопы,
пассивные
оптические
гироскопы,
волоконно-оптические
и
интегрально-оптические (ВОГи ИОГ). Принцип действия основан на эффекте
Саньяка, открытом в 1913 году. Теоретически он объясняется с помощью СТО.
Согласно СТО скорость света постоянна в любой инерциальной системе
отсчёта. В то время как в неинерциальной системе она может отличаться от c.
При посылке луча света в направлении вращения прибора и против
направления вращения разница во времени прихода лучей (определяемая
интерферометром) позволяет найти разницу оптических путей лучей в
инерциальной системе отсчёта, и, следовательно, величину углового поворота
прибора
за
время
прохождения
луча.
Величина
эффекта
прямо
пропорциональна угловой скорости вращения интерферометра и площади,
охватываемой путём распространения световых волн в интерферометре:
Δt= 4SΩc2,
где Δ t − разность времён прихода лучей, выпущенных в разных направлениях,
S − площадь контура, Ω − угловая скорость вращения гироскопа. Так как
величина Δ t очень мала, то её прямое измерение с помощью пассивных
интерферометров возможно только в волоконно-оптических гироскопах с
длиной волокна 500-1000 м. Во вращающемся кольцевом интерферометре
лазерного гироскопа можно измерить фазовый сдвиг встречных волн, равный:
Δφ= 8πSΩλc,
где λ − длина волны. [22]
Зная начальное положение устройства в пространстве можно найти
текущее положение, проинтегрировав показания гироскопа. Это очень точный и
40
быстрый датчик, однако при интегрировании растёт ошибка и показания
постепенно изменяются.
1.3.3.3 Магнитометр
Магнитометр − прибор для измерения характеристик магнитного поля и
магнитных свойств веществ (магнитных материалов). Есть 2 особенности
магнитометров это:
1. реакция на любой сильный источник магнитного поля;
2. обладает магнитным отклонением, т. е. уголом между условным
сервером и истинным севером (направлением вдоль меридиана на север).
Национальное
агентство
геопространственной
разведки
(NGA)
предоставляет файл с данными о магнитном поле, который обновляется каждые
5 лет.
Магнитостатические
магнитометры
основаны
на
измерении
механических моментов, действующих на чувствительный элемент прибора
(например,
небольшой постоянный
магнит) в измеряемом
поле.
При
воздействии внешнего поля, не совпадающего с направлением поля этого
постоянного магнита, чувствительный магнит испытывает вращающий момент,
зависящий от напряжённости внешнего измеряемого поля и ориентации поля
измерительного магнита и внешнего поля. Измерительный магнит подвешен на
упругой для кручения подвеске, по степени закручивания, с учётом ориентации
прибора, определяют внешнее поле H.
Момент
на
чувствительном
(индикаторном)
магните
выражается
векторным произведением:
J = [ M, H],
где M − магнитный момент индикаторного магнита.
Возникающий механический момент J в магнитометрах различной
конструкции уравновешивается разными способами:
41
1. моментом кручения упругой подвески (обычно в чувствительных
магнитометрах
изготовленных
из
кварцевой
нити
(магнитометры
и
универсальные магнитные вариометры на кварцевой растяжке обладают
чувствительностью до ~1 нТ);
2. моментом в рычажной системе, уравновешиваемой силой тяжести
(магнитные весы с чувствительностью ~ 10 − 15 нТ);
3. моментом, действующим на вспомогательный эталонный постоянный
магнит,
установленный
вспомогательного
в
нужном
магнитов
в
положении
(оси
положении
индикаторного
равновесия
и
взаимно
перпендикулярны). В упругой подвеске индикаторные магниты имеют
собственную частоту вращательных колебаний, зависящую от упругости
подвески, напряженности внешнего поля. При этом измеряют периоды этих
колебаний, что позволяет определить напряжённость магнитного поля
(абсолютный метод Гаусса).
Основное применение магнитостатических магнитометров
измерение
направления и абсолютной величины напряжённости геомагнитного поля,
градиента поля, а также магнитных свойств веществ.
Индукционные магнитометры основаны на явлении электромагнитной
индукции − возникновении эдс в измерительной катушке при изменении
проходящего сквозь её контур магнитного потока Θ. Изменение потока в
катушке может быть связано:
1. с изменением величины или направления измеряемого поля во времени
(примеры − индукционные вариометры, флюксметры). Простейший флюксметр
(веберметр) представляет собой баллистический гальванометр, действующий в сильно
переуспокоенном
режиме
магнитоэлектрические
(G
~
10 – 4 вб/деление);
широко
применяются
веберметры с G ~ 10 – 6 вб/деление, фотоэлектрические
веберметры с G ~ 10 – 8 вб/деление и другие.
2. с периодическим изменением положения (вращением, колебанием)
измерительной катушки в измеряемом поле; простейшие тесламетры с
42
катушкой на валу синхронного двигателя обладают G ~ 10 – 8 Тл. У наиболее
чувствительных вибрационных магнитометров G ~ 0,1 – 1 нТ.
3. с изменением магнитного сопротивления измерительной катушки, что
достигается
периодическим
изменением
магнитной
проницаемости
пермаллоевого сердечника (он периодически намагничивается до насыщения
вспомогательным переменным полем возбуждения); действующие по этому
принципу ферромодуляционные магнитометры имеют G ~ 0,2-1 нТ.
Индукционные магнитометры применяются для измерения земного и
космических магнитных полей, технических полей, в магнитобиологии и т. д.
1. Вибрационный магнитометр
2. Флюксметр
3. Феррозондовый магнитометр.
4. Квантовые магнитометры
Приборы, основанные на свободной прецессии магнитных моментов ядер
или электронов во внешнем магнитном поле и других квантовых эффектах
(ядерном магнитном резонансе, электронном парамагнитном резонансе). Для
наблюдения
зависимости
частоты
Ω
прецессии
магнитных
моментов
микрочастиц от напряжённости H i измеряемого поля ( Ω = γ × H i , где
γ − магнитомеханическое отношение) необходимо создать макроскопический
магнитный
момент
ансамбля
микрочастиц
(ядер
или
электронов).
В зависимости от способа создания макроскопического магнитного момента и
метода
детектирования
сигнала
различают:
протонные
магнитометры
(свободной прецессии, с динамической поляризацией и с синхронной
поляризацией),
резонансные
магнитометры
(электронные
и
ядерные),
магнитометры с оптической накачкой и др. Квантовые магнитометры
применяются для измерения напряжённости слабых магнитных полей (в том
числе геомагнитного и магнитного поля в космическом пространстве), в
геологоразведке, в магнитохимии (G до 10-5 – 10-7 нТ). Значительно меньшую
43
чувствительность (G ~ 10 – 5 Т) имеют квантовые магнитометры для измерения
сильных магнитных полей.
1. Протонный магнитометр.
2. Гелиевый магнитометр.
3. Магнетометр Оверхаузера.
4. Атомный магнитометр на щелочный металлах с оптической накачкой.
5. Атомный магнитометр, свободный от спин-обменного уширения
(SERF-магнитометр)
6. СКВИД (англ.SQUID).
Чувствительность квантового магнитометра G определяется следующим
соотношением:
G=kΓ/γSn
где k − константа, Γ − ширина спектральной линии, γ − гиромагнитное
отношение и S n − отношение сигнал / шум. Чувствительность не зависит от
ларморовой частоты. Магнитометры Оверхаузера, ларморова частота которых
равна 0.042 Гц/нТ, цезиевый и гелиевый-4 магнитометры с 3.5 Гц/нТ и 28 Гц/нТ,
соответственно, имеют одинаковую чувствительность [23].
1.4 Выводы по главе
Результатами
анализа
литературных
источников
структурных
и
функциональных схем систем удаленного контроля объектов была получена
обобщенная структура (Рисунок 1.1) и классификация геолокационных систем.
Наибольшая проблема в телематических системах является определение
геолокационных данных движущихся объектов. Для изучения этой проблемы
была решена задача систематизации способов, методов и технических средств
определения
местоположения
объекта,
результатами
классификация геолокационных систем:
1.
глобальные спутниковые системы:
1.1.
NAVSTAR;
которой
является
44
1.2.
ГЛОНАСС;
2.
системы на базе инфраструктуры сотовых сетей и сетей интернет:
2.1.
E-OTD;
2.2.
UL-TOA;
2.3.
CGI;
2.4.
CGI-TA;
2.5.
LPM;
3.
датчики.
Каждый из методов имеет свои недостатки в зависимости от условий, в
которых эксплуатируют устройство определения местоположения движущегося
объекта. Таким образом, для повышения качества получения данных о
геолокационных параметрах
необходимо
оптимизировать
алгоритмы определения местоположения объекта.
существующие
45
2 Разработка алгоритма определения местонахождения движущегося
транспортного средства
Существующие алгоритмы определения местоположения в основном
стараются устранить ошибку полученных данных от приёмника ГНСС используя
акселерометр и гироскоп, что даёт ошибку при вычислении азимута. Примером
такого алгоритма является [25].
Системы
определяющие
геолокационные
параметры
при
помощи
датчиков подвержены ошибкам, которые будут накапливаться со временем.
Например, датчики в сумме своей погрешности и внешнего воздействия могут
показывать данные далеко от реальных, поэтому применяются различные
алгоритмы фильтрации и объединение таких данных с данными из более
достоверных источников.
Алгоритмы для таких систем пишутся исходя из конкретных задач. Для
определения вектора поворота чаще всего используют алгоритм Себастиана
Мажвика и виртуальный сенсор Rotation Vector.
Алгоритм Мажвика для определения поворота устройства объединяет данные
акселерометра и гироскопа. В первую очередь алгоритм создавался для систем,
имеющих низкие вычислительные способности. За производительность приходится
платить «неудобными» инициализирующими параметрами, а именно [24]:
1. частота поступающей информации с датчиков;
2. коэффициент
усиления
(подбирается
под
каждое
устройство
индивидуально).
Еще одним недостатком является время инициализации фильтра, которое
зависит от коэффициента усиления. Имеет реализации почти для любой
платформы в открытом доступе.
В отличие от предыдущего алгоритма виртуальный сенсор Rotation Vector
использует данные акселерометра, гироскопа и магнитометра, что позволяет
повысить точность расчётов. Чаще всего такой виртуальный сенсор уже
46
включён в программное обеспечение устройства, что упрощает реализацию
конечного устройства.
В качестве алгоритма, объединяющего данные о геолокационных параметрах
от разных источников, используется фильтр Калмана, который помогает
предсказать будущее местоположение имея данные о текущих геолокационных
данных.
2.1 Алгоритм на основе фильтра Калмана
Согласно [26] фильтр Калмана − эффективный рекурсивный фильтр,
оценивающий вектор состояния динамической системы, используя ряд
неполных и зашумленных измерений. Назван в честь Рудольфа Калмана.
Фильтр Калмана широко используется в инженерных и эконометрических
приложениях: от радаров и систем технического зрения до оценок параметров
макроэкономических моделей. Калмановская фильтрация является важной
частью теории управления, играет большую роль в создании систем
управления. Совместно с линейно-квадратичным регулятором фильтр Калмана
позволяет решить задачу линейно-квадратичного гауссовского управления.
Фильтр Калмана и линейно-квадратичный регулятор − возможное решение
большинства фундаментальных задач в теории управления [26].
В большинстве приложений размерность вектора состояния объекта
превосходит размерность вектора данных наблюдения. И при этом фильтр
Калмана позволяет оценивать полное внутреннее состояние объекта.
Фильтр Калмана предназначен для рекурсивного дооценивания вектора
состояния априорно известной динамической системы, то есть для расчёта
текущего состояния системы необходимо знать текущее измерение, а также
предыдущее состояние самого фильтра. Таким образом, фильтр Калмана,
подобно другим рекурсивным фильтрам, реализован во временном, а не в
частотном представлении, но в отличие от других подобных фильтров,
оперирует не только оценками состояния, а ещё и оценками неопределенности
47
(плотности распределения) вектора состояния, опираясь на формулу Байеса
условной вероятности.
Алгоритм работает в два этапа. На этапе прогнозирования фильтр
Калмана экстраполирует значения переменных состояния, а также их
неопределенности. На втором этапе, по данным измерения (полученного с
некоторой погрешностью), результат экстраполяции уточняется. Благодаря
пошаговой природе алгоритма, он может в реальном времени отслеживать
состояние объекта (без заглядывания вперед, используя только текущие замеры
и информацию о предыдущем состоянии и его неопределенности).
Бытует ошибочное мнение, что для правильной работы фильтра Калмана
якобы требуется гауссовское распределение входных данных. В исходной
работе Калмана результаты о минимуме ковариации фильтра были получены на
базе ортогональных проекций, без предположений о гауссовости ошибок
измерений. Затем просто было показано, что для специального случая
распределения ошибок по Гауссу фильтр дает точную оценку условной
вероятности распределения состояния системы.
Наглядный пример возможностей фильтра − получение оптимальных,
непрерывно обновляемых оценок положения и скорости некоторого объекта по
результатам временного ряда неточных измерений его местоположения.
Например, в радиолокации стоит задача сопровождения цели, определения её
местоположения, скорости и ускорения, при этом результаты измерений
поступают постепенно и сильно зашумлены. Фильтр Калмана использует
вероятностную модель динамики цели, задающую тип вероятного движения
объекта, что позволяет снизить воздействие шума и получить хорошие оценки
положения объекта в настоящий, будущий или прошедший момент времени.
Матрицы в текущем решении основываются на законе равномерного
движения, только в матричной форме (т. к. у нас 2 направления − восток и
север). В такой форме довольно легко расширить фильтр, чтоб он учитывал и
ускорение вверх, но пока в этом нет необходимости. А можно наоборот разбить
48
фильтр на 2 или 3 для каждого направления. Почти ничего не изменится, только
размеры матриц уменьшатся.
Параметры фильтра:
1. вектор состояния системы (2.1.1), где X и Y
координаты, а X’ и Y’ −
скорости;
(2.1.1)
2. матрица эволюции системы (2.1.2);
(2.1.2)
3. матрица управления;
(2.1.3)
4. вектор управления.
(2.1.4)
Это наши проекции ускорений в абсолютной системе координат.
Впринципе можно добавить ускорения в состояние системы, а матрицу и вектор
управления сделать 0. Но так будет больше похоже на формулу закона
равноускоренного движения.
Матрица измерений
(2.1.5)
Это матрица, помогающая привести все измерения к единой системе.
К примеру, мы же не можем напрямую приравнять вольты к градусам цельсия,
это не будет иметь смысла. Матрица H как раз является связующим звеном
49
между вольтами и градусами цельсия. В нашем случае она равна единичной
матрице, потому что никаких преобразований делать не нужно.
Здесь есть варианты вида этой матрицы. Если ГНСС-приемник
предоставляет информацию о скорости (основываясь на эффекте Допплера), то
эта матрица будет единичной. Если же GPS-приемник предоставляет только
координаты, то матрица примет такой вид 2.1.6.
(2.1.6)
Второй вариант показывает лучший результат при кратковременной
потере ГНСС сигнала, потому что на вектор состояния не влияет последняя
полученная от приёмника скорость.
Ковариационная матрица шума измерений 2.1.7.
(2.1.7)
Если ГНСС приемник не предоставляет информацию о скорости объекта.
В противном случае 2.1.8.
(2.1.8)
Все эти значения можно получить разными способами. Можно разобрать
NMEA сообщение и использовать компонент HDOP, можно использовать класс
Location и метод getAccuracy(). Чтобы получить скорость в нашей системе
координат необходимо получить направление. Это либо компонент course в
NMEA сообщении, либо bearing из объекта Location. Здесь применяется
допущение (хотя на самом деле вроде так и есть), что скорость X’ никак не
влияет на координату X, потому что получаются они разными способами. Так
же координата Y и скорость Y’ никак не влияют на скорости и координаты X.
Ковариационная матрица шума процесса 2.1.9, при формировании
которой сделано допущение, что ошибка акселерометра при оси Х никак не
влияет на ошибку по оси Y [27].
50
(2.1.9)
2.2 Алгоритм на основе GeoHash
GeoHash
−
общедоступный
метод
геокодирования,
при
котором
привычные координаты заменяются на строку, длина которой зависит от
необходимой точности. Например, воспользовавшись Яндекс картами можно
узнать координаты города Орёл 52.970371 (широта), 36.063837 (долгота), а если
преобразуем их в GeoHash, то получим строку uc3tkduyu2cf.
Принцип работы очень прост. Вся планета принимается за сферу и
делится сеткой, каждая полученная ячейка получает свой идентификационный
номер. Соответственно каждой ячейке будет соответствовать целый ряд
координат, которыми можно будет заполнить всю ячейку. Для увеличения
точности, то есть уменьшение области, в которую будет входить меньшее
количества точек, процедуру повторяют с получившимися ячейками, что влияет
на длину строки. Максимальная длина составляет 12 символов, то есть ячейка
будет на столько маленькой, что в неё поместится только одна координата.
GeoHash удобно использовать для кластеризации, то есть объединения
точек в одну, что позволяет за раз отобразить большое количество маркеров на
карте. Но в контексте решаемой задачи данная технология поможет снизить
поток ошибочных координат, отдаваемых GPS. Раз 12 символов позволяет
описать область, в которую помещается только 1 точка, то оптимальным
вариантом будет длина строки 8 символов. Так же упрощается сравнение
51
координат, так как если GPS приёмник выдал 3 и более координат и их хеши
совпадут, то скорее всего эта точка точная и её следует обработать.
2.3 Алгоритм определения местоположения движущегося транспортного
средства
Исходя из вышеизложенного материала и общедоступных алгоритмов
определения геолокационных параметров, определяющие основные параметры
при помощи ГНСС-приёмника, сотовой сети и датчиков (акселерометра и
гироскопа),
можно
составить
обобщенный
алгоритм
определения
геолокационных параметров, который изображен на Рисунке 2.3.1.
Предлагается в данный алгоритм добавить использование магнитометра.
Плюсами данного решения будут:
1. более точное определение вектора вращения системы;
2. определение курса (азимута) более точного, по сравнению с ГНССприёмником, для которого необходимо постоянное движение.
В полученном алгоритме данные от ГНСС-приёмника, сотовой связи и
данные от датчиков получаются асинхронно с заданным интервалами времени.
Геолокационные данные от сотовых сетей и ГНСС-приёмника будут иметь более
высокий приоритет, так как они имеют меньшую погрешность, от этих
геолокационных систем будут получены данные о текущем местоположении и
приблизительной скорости. От датчиков, как видно из схемы, будут получаться
данные о векторе поворота устройства, векторе ускорения, векторе скорости и
азимуте. При объединении данных получим матрицу состояния системы и на
основе алгоритма Калмана будет возможно оценить следующее предполагаемое
местоположение, так же данный фильтр будет срезать всплески в получаемых
данных. На выходе фильтра Калмана будет матрица с предполагаемыми
координатами и скоростью перемещения устройства. Полученные координаты
будут передаваться на вход фильтра на основе GeoHash, где исходя из
52
погрешности определения координат будут объединяться точки в одну, что
уменьшит чувствительность к выбросам датчиков.
Рисунок 2.3.1 − Обобщенный алгоритм определения местоположения
53
Рисунок 2.3.2 − Алгоритм определения геолокационных параметров с
применением датчиков
54
3 Разработка устройства определения геолокационных параметров
движущегося транспортного средства
3.1 Разработка электрической структурной и электрической
функциональной схем устройства определения местонахождения
движущегося транспортного средства
Исходя из полученного алгоритма, изображенного на Рисунок 2.3.2 можно
выявить
основные
элементы
устройства
геолокационных
параметров
движущегося транспортного средства. Для реализации устройства необходимо
три датчика (акселерометр, магнитометр, гироскоп), арифметико-логические
устройство, реализующее вычисления:
1. матрицы поворота системы;
2. вектор вращения системы;
3. азимут;
4. вычисления на основе алгоритма Калмана;
5. вычисления на основе алгоритма GeoHash.
Таким образом получим схему, изображенную в Приложении Б на
Рисунке П1. Здесь в роли арифметико-логического устройства выступает
микроконтроллер, который будет обрабатывать данные, получаемые от датчиков,
работать с модулем внешней памяти и передавать данные по каналу интернет.
В ходе анализа электрической структурной схемы и предложенного
алгоритма была разработана эликтрическая функциональная схема устройства
определения местонахождения движущегося транспортного средства была
разработана функциональная схема, изображенная в Приложении Б на
Рисунке П2. Микропроцессор будет в равные промежутки времени обращаться
к датчикам и ГНСС-приёмнику, после чего обрабатывать полученные данные.
Результаты обработки, а именно геолокационные данные, будут сохранены на
внешний носитель, в равные промежутки времени микропроцессор будет
55
изымать данные с внешнего носителя и передавать их при помощи передатчика
по каналу интернет на удаленный пункт контроля.
3.2 Разработка устройства и программного обеспечения
В ходе анализа уже существующих устройств и технического задания,
изложенного в Приложении А был сделан вывод, что устройство определения
местонахождения движущегося транспортного средства может быть выполнено
на
серийно
выпускаемых
смартфонах
поддерживающих
необходимый
функционал, описанный в алгоритме изображенном на Рисунок 2.3.2. Выбор
серийно выпускаемых устройств обуславливается следующими факторами:
1. поддержкой оригинальной операционной системы (далее ОС);
2. набор
инструментов
предоставляемый
разработчиками
ОС,
облегчающих реализацию алгоритма;
3. исключается проблема совместимости с комплектующими устройств.
Исходя из полученного алгоритма определения местонахождения был
разработан алгоритм работы программы, изображенный в Приложении Г на
Рисунок П10 и Рисунок П11. Таким образом следует выбрать ОС и язык
программирования, так как у каждой ОС есть родной (далее нативный) язык
программирования, который позволяет использовать меньше ресурсов устройства.
Выбор среды разработки чаще всего привязана к ОС (справедливо для
популярных разработчиков программного обеспечения), так, например, у
Windows это Visual Studio, у MacOS это X-code.
Из вышесказанного можно выделить следующие этапы реализации:
1. выбор операционной системы;
2. выбор языка программирования и среды разработки;
3. выбор паттерна проектирования;
4. изучение основных API и работа с ними;
5. тестирование полученной программы.
56
3.2.1 Выбор устройства определения местонахождения движущегося
транспортного средства
Устройство определения местонахождения движущегося транспортного
средства ограничивается условием поддержки ОС Android и аппаратнопрограммной поддержки ГНСС-приёмника, сотовой связи, акселерометра,
магнитометра и гироскопа. Анализируя источники [40], [41] и используя
формулу 3.6.1 получим время наработки на отказ, а именно 7240 часов, что
соответствует условию расширенного технического задания (Приложение А).
(3.6.1)
По данным Яндекс Маркета самый бюджетный вариант смартфона
удовлетворяющего поставленным требованиям имеет аккумулятор 2250 мА/ч.
Для того, чтобы выяснить время автономной работы устройства необходимо
узнать
расход
батареи
приложением
определения
местонахождения
движущегося транспортного средства, потребление ОС и экрана, воспользуемся
встроенными инструментами в Android. Таким образом получим:
1. 59 мА/ч потребляет приложение;
2. 163 мА/ч потребляет экран;
3. 249 мA/ч потребляет ОС.
Суммарное потребление без учета сторонних приложений получается
471 мА/ч, что при температуре от +5 до +20 градусов позволит 4.8 часов
автономно работать устройству. Если пользователь не будет использовать экран
это позволит повысить автономность работы до 7.3 часа.
Диапазон температуры в котором можно использовать устройство
ограничивается температурным диапазоном аккумуляторов, для литий-ионных
это -20 до +50, но при этом теряется ёмкость аккумулятора, и температурным
диапазоном работы SIM карты, которая составляет от 0 до +30 градусов,
существуют SIM карты способные работать при температуре от -40 до
+50 градусов, но за это придется доплачивать.
57
Таким образом было выявлено, что устройства на ОС Android имеют
наработку на отказ 7240 часов, автономность работы от 4.8 до 7.3 часов и
температурный диапазон от 0 до +30 градусов. То есть даже самый бюджетный
вариант смартфона имеющий ГНСС-приёмник, сотовую связь и датчики
(акселерометр, магнитометр и гироскоп) будет удовлетворять расширенному
техническому заданию.
3.2.2 Выбор операционной системы
Операционная
система
−
совокупность
системных
программ,
предназначенная для обеспечения определенного уровня эффективности
системы обработки информации за счет автоматизированного управления ее
работой и предоставляемого пользователю определенного набора услуг [28].
Каждый разработчик ОС предоставляет разработчикам программного
обеспечения (далее ПО) набор API, который упрощает разработку ПО под ОС и
гарантирует стабильность работы.
Программный интерфейс приложения (англ. application programming interface,
API) − набор определенных интерфейсов, посредством которых приложение
общается с операционной системой или с другими программами [29].
Так как изначально было оговорено, что устройство с разработанным ПО
будет портативное, и каждый смог им пользоваться, то наилучшим вариантом
является
рассмотрение
мобильных
телефонов
на
роль
устройства.
В современном мире смартфон является обыденностью, тем более вне
зависимости от ценовой категории самые простейшие модели имеют
необходимый набор функционала и датчиков.
Можно выделить несколько основных факторов по которым можно
выбрать наиболее подходящую ОС для разработки программы:
1. популярность;
2. доступность для разработки (платная или бесплатная);
3. поддержка ОС и API;
58
4. порог вхождения в нативный язык.
Все языки будут рассмотрены в рамках оговоренных выше критериев.
Если ОС занимает первое место в рамках критерия он получает +2 балла,
второе +1 и третье 0. По результатам сложения баллов, язык, получивший
наибольшее количество баллов, будет выбран, как основная ОС для разработки
программы.
3.2.2.1 Популярность ОС
На сегодняшний день на рынке мобильных ОС существует множество
вариантов
мобильных
версий,
но
наиболее
продаваемые
по
данным
статистического агентства Statcounter на май 2018г. являются [30]:
1. Android − 76.53 % (2018г.), 72.68 % (2017г.), 68.84 % (2016г.);
2. iOS − 18.97 % (2018г.), 19.32 % (2017г.), 18.63 % (2016г.);
3. Windows 10 Mobile − 0.49 % (2018г.), 0.92 % (2017г.), 1.85 % (2016г.).
Как видно из статистики доля Android устройств в продажах наибольшая
и продолжает расти. Доля iOS регулярно изменяется, если взять статистку
большего диапазона, то увидим, что в феврале 2013 года доля проданных
устройств составляла 27.21 %. Windows Mobile постоянно теряет.
3.2.2.2 Доступность разработки
Все представленные ОС имеют свои ограничения на разработку.
Некоторые только в цене, другие зависят от ОС, на которой создаётся
программный продукт.
Android. Разработка программного обеспечения является бесплатным.
Google предлагает официальная среду разработки Android Studio, являющаяся
IntelliJ IDEA от JetBrains (основанная Петербургскими программистами) с
установленным набором необходимых плагинов. Разрабатывать можно на
любой из популярных desktop (настольных) платформ (Linux, Windows,
MacOS). Единственный разовый платёж необходимый для возможности
59
публикации приложений на Google Play (официальный сайт приложений
Google) это 25 $, но существуют и бесплатные маркеты, например, очень
популярный ресурс Amazon.
iOS. Писать код под данную ОС можно на любой платформе, а вот собрать
готовое приложение для устройства получится только имея X-code на desktop ОС.
X-code закрытый программный продукт, который можно использовать только на
MacOS, устройства с данный ОС относительно дорогие, а установка не
лицензионной версии может привести к утечке персональных данных необходимых
для регистрации аккаунта, как для ОС, так и для аккаунта разработчика, к которому
прилагается платный сертификат, который приходится пользователю в 100 $
ежегодно. Из вышесказанного следует, что разработка ПО для данной мобильной
ОС является не самым дешёвым вариантом.
Windows 10 Mobile. Для разработки под данную платформу можно
использовать Visual Studio, который имеет бесплатную версию Community
Edition и платные версии Professional и Enterprise, на который дополнительно
необходимо установить (возможно выбрать при установке данного продукта)
Windows 10 SDK. Собрать приложение можно только на desktop ОС Windows.
Если использовать для публикаций приложений Windows Market и при этом не
пользоваться платными продуктами Visual Studio, то придется платить
регистрационный сбор в размере 99 $ ежегодно. Имеется поблажка для
студентов, они не платят регистрационный сбор, но имеются ограничение на 5
бесплатных публикаций для всех пользователей, за каждое приложение сверх
лимита придётся платить 19,99 $, но также, как и в случае с Android'ом можно
опубликовать приложение на бесплатных ресурсах.
Делая вывод о доступности разработки, можно сказать, что Android в
отличие от остальных конкурентов относительно бесплатный и не зависит от
платформы на которой будет собираться приложение. В то же время Windows 10
Mobile
доступнее
для
разработчика,
чем
iOS,
по
популярности и дешевизны desktop Windows нежели MacOS.
причине
большей
60
3.2.2.3 Поддержка
На сегодняшний день Google разрабатывает новую операционную
систему на собственном языке Dart представленном в 2011 году, который
должен был стать заменой JavaScript. Язык не стал популярным в следствии
недостатка
документации
и
должной
поддержки,
преимущественно
используется для внутренних нужд компании. Самим Google прекращении
поддержки Android не говорится, тем более на Google I/O 2015 была
анонсирована новая ветвь развития ОС в лице Android Things, которая
разработана для IoT (Internet of Things, в переводе Интернет Вещей).
Apple не заявляет о прекращении поддержки iOS.
Microsoft заявила о прекращении разработки Windows Mobile и
последующей поддержке. Так же будет ликвидирован и Mobile Market. Полное
прекращение поддержки будет в 2019 году.
Делая вывод о поддержке продуктов, становится ясно, что iOS и Android
продолжают поддерживаться и развиваться, в отличие от Windows 10 Mobile,
разработка которого прекращена, а поддержка закончится в 2019 году.
3.2.2.4 Порог вхождения в нативный язык
Нативные языки для ОС:
1. Android – Java;
2. iOS – Objective-C;
3. Windows Mobile – C#.
Следует оговорить что порог вхождения является абстрактным понятием,
которое складывается из множества переменных таких как: популярность
языка; количество и качество документации; наличие сообществ, которые могут
помочь в решении разных задач; синтаксис языка (некоторые языки почти
копируют синтаксис друг друга, что позволяет быстро освоиться в новом
языке); среда разработки тоже является немаловажным фактором. В рамках
61
данной главы определим, что порог вхождения будет иметь следующую
условную градацию:
1. большой;
2. средний;
3. низкий.
На текущую градацию будет влиять только популярность языка, что
обуславливает быстрое освоение языка, достаточное количество документации
и развитость сообществ, помогающих в решении самых разных задач.
Популярность языков постоянно меняется под влиянием появления новых
задач и языков программирования. Таким образом был составлен рейтинг PYPL
(PopularitY of Programming Languages) совместно с GitHub. Данный рейтинг
остновывается на количестве поисковых запросов документации в поисковом
гиганте Google. По этим данным была составлена таблица 3.2.2.4.1.
Таблица 3.2.2.4.1 − Популярность языков программирования
№ ОС
2017г., %
2016г., %
Рост, %
1 Java
22,7
23,9
-1,2
2 Objective-C
3,7
4,7
-1
3 C#
8,2
8,8
-0,6
Из таблицы 3.2.2.4.1 видно, что Java является лидером по популярности,
затем C# и замыкает тройку Objective-C.
3.2.2.5 Выводы по подглаве
Выводы по главе представлены в таблице 3.2.5.1, исходя из результатов
которой видно, что оптимальным вариантом ОС для реализации программы
является Android.
62
Таблица 3.2.2.5.1 — Сравнение мобильных ОС.
№
Критерий
Android
iOS
Windows 10
Mobile
1
Популярность
2
1
0
2
Доступность для
разработчика
2
0
1
3
Поддержка ОС и API
2
1
0
4
Порог вхождения в
нативный язык
2
0
1
Итого:
8
2
2
3.2.3 Выбор языка программирования и среды разработки
Android
основан
разработанной
на
Google.
ядре
Linux
Это
даёт
и
Java
виртуальной
возможность
машине,
использовать
кроссплатформенные фреймворки.
3.2.3.1 Кроссплатформенные решения
Фреймворки способны создать условно кроссплатформенное приложение
для разных ОС, в том числе и мобильных. Наиболее популярными являются:
Xamarin, Cordova, PhoneGap, Unity, Qt. Каждый из фреймворков базируется на
разных языках программирования:
1. Xamarin и Unity – C#;
2. Cordova и PhoneGap – JavaScript;
3. Qt – C++.
Фрэймворки имеют свои плюсы и минусы, чаще всего это обусловлено
плагинами, которые позволяют обратиться к определенным API ОС. Но каждый
из них использует язык отличный от нативного для описания GUI
(графического интерфейса) и прочих вычислений, а обращение к ОС
происходит путём связки языка платформы с нативными API мобильной ОС
при
помощи
программных
интерфейсов,
что
снижает
общую
63
производительность приложения, но может помочь в разработке программисту,
не знающему нативный язык.
В Android помимо Java виртуальной машины имеется и Mono виртуальная
машина, позволяющая эффективно использовать программы на C#. Это
позволяет довольно эффективно использовать ресурсы устройства для создания
ресурсоёмких приложений на не нативном языке.
Cordova и PhoneGap используют JavaScript, что накладывает ряд
ограничений, так как данный язык не компилируется, а интерпретируется
браузером. Это однопоточный язык с возможностью отложенного выполнения,
что решает проблему однопоточности, но такое решение является менее
эффективным.
Qt
использует
C++,
что
является
большим
плюсом,
но
кроссплаформенность поддерживать на таком низкоуровневом языке довольно
сложно. Маленькое сообщество делает эту платформу почти непригодной для
мобильной разработки.
Все предложенные платформы могут быть использованы для реализации
алгоритма. Однако нативные языки показывают лучшие результаты нежели
другие, поэтому лучше использовать их. Процесс отладки кода может быть так
же затруднён, если использовать такие платформы.
Плюсами таких платформ являются:
1. готовые связки с нативными элементами;
2. сохранение времени по сравнению с разработкой под каждую
платформу.
Минусы использования платформ для разработки приложений:
1. объём приложения будет гораздо выше, нежели у нативного, за счёт не
достающих библиотек, которые будут добавлены в ходе компиляции;
2. производительность всегда будет ниже;
64
3. закрытость кода может быть большой проблемой, так как если автор
плагина для нативных API сделает ошибку, то придётся ждать неопределенное
время до её решения;
4. обновление
элементов
нативной
платформы
то
же
является
проблемой, так как такие платформы получают её гораздо позже в силу
необходимости создания совместимости ненативного языка с нативным.
3.2.3.2 Выводы по подглаве
Исходя из плюсов и минусов кроссплатформенных решений следует
вывод о том, что лучше использовать нативные языки программирования и
рекомендованные разработчиком ОС среды разработки, так как это не вызовет
необъяснимых
ошибок.
Поэтому
что
бы
получить
наилучшую
производительность, последние версии API и минимум изначальных ошибок в
коде будет использоваться нативный язык для Android − Java, а в качестве среды
разработки
Android
Studio
рекомендованный
Google
для
разработки
приложений под выбранную ОС.
3.2.4 Выбор паттерна проектирования программной реализации алгоритма
Программирование, как и любой другой процесс создания чего-либо
усложняется
в
ходе
его
популяризации,
что
создаёт
необходимость
продумывания архитектуры, чем, к сожалению, пренебрегают даже опытные
программисты, что влечет за собой неприятные последствия.
Основными задачами, которые должна решать архитектура являются:
1. масштабируемость − возможность расширять функционал программы;
2. сопровождаемость − быстрое изменение части программы после
завершения разработки всех функций;
3. надёжность − повышение стабильности работы программы;
4. слои − разделение программы на условные блоки, в зависимости от
ответственности блока.
65
3.2.4.1 Систематизация существующих паттернов проектирования
программного обеспечения
Для упрощения разработки архитектуры были придуманы паттерны
проектирования программ. Основными паттернами для мобильных приложений
и не только являются:
1. MVC (Model View Controller)
2. MVP (Model View Presenter)
3. MVVM (Model View View-Model)
4. MVI (Model View Interface)
5. Clean Architecture
Все вышеперечисленные паттерны будут включать в себя такие общие
понятия как Model и View. View – это GUI (графический интерфейс), который
будет отображаться на экране пользователя, а Model − это модель с некоторыми
переменными и функциями, влияющими на отображение View.
3.2.4.1.1 MVC
Паттерн MVC имеет два варианта реализации:
1. supervising controller – контроллер супервизор;
2. passive view – пассивное представление.
Здесь под Controller'ом подразумевается некоторый блок, который будет
управлять View в зависимости от ответа Model, содержащей всю логику
программы.
Первый вариант паттерна изображен на рисунке 3.2.4.1.1.1. Данный метод
плохо масштабируется из-за большого числа связей, а также слабое разделение
ответственности делает этот паттерн пригодным только для небольших
проектов.
Второй вариант паттерна MVC изображен на рисунке 3.2.3.1.1.2. Как
видно из рисунка разделение ответственности более чёткое, что делает его
более легким для поддержки за счёт уменьшение связей [32].
66
Рисунок 3.2.4.1.1.1 − Паттерн MVC Supervising Controller
Рисунок 3.2.4.1.1.2 − Паттерн MVC Passive View
3.2.4.1.2 MVP
Идея данного паттерна в большинстве своем совпадает с MVC, но вместо
Controller теперь Presenter. Отличия лишь в том, что View закрыт для Presenter'а
за интерфейсом, что помогает избежать лишних ошибок и делает код чище. Так
же и имеются недостатки в виде увеличения количества шаблонного кода
(интерфейсов), которые так же нуждаются в поддержке [33], [34].
67
Рисунок 3.4.1.2.1 − Паттерн MVP
3.2.4.1.3 MVVM
Паттрен MVVM (Рисунок 3.2.4.1.3.1) предлагает разделить View и Model
дополнительным блоком View-Model. View-Model это класс, который связывает
переменные содержащиеся в View со своими, соответственно, если поменять
связанную переменную в View-Model, то отображение её в View тоже
поменяется. Такой подход увеличивает количество кода, но при этом упрощает
тестирование, что повышает конечную устойчивость конечного продукта к
непредвиденным ошибкам, и повышает чистоту кода в блоке Model [34].
Рисунок 3.2.4.1.3.1 − Паттерн MVVM
68
3.2.4.1.4 MVI
Паттерн MVI предлагает воспринимать все действия как поток, который
создаётся
в
момент
появления
источника
информации
и
обнуляется
(закрывается, уничтожается) при поступлении такой информации получателем.
То есть каждое действие пользователя с View или HTTP запрос к серверу − это
отдельные потоки. Данный паттерн предлагает принцип многопоточности и
параллельного программирования, который очень удобен для увеличения
производительности программы.
3.2.4.1.5 Clean Architecture
Данный паттерн проектирования самый большой и включает в себя MVP.
Как и предыдущие методы предлагает разбиение приложения на слои,
только их количество отличается. В [35] Fernando Cejas говорит об упрощенном
понимании взаимодействия слоёв (Рисунок 3.2.4.1.5.1). Слои строго соблюдают
главное правило Dependency Rule (правило зависимости), говорящее, что имена
сущностей (классов, функций, переменных), объявленных в одном слое, не
должны встречаться в коде других слоев. Благодаря этому правилу становиться
проще поддерживать код приложения, так как изменения внешних слоёв не
повлияет на внутренние.
Разберем более подробно слои:
1. Presentation Layer − это уровень UI (пользовательский интерфейс),
представленный MVP;
2. Data Layer – содержит обратную связь с локальным хранилищем
устройства и внешним миром (интернет).
3. Domain Layer – содержит обычные объекты, которые связанны с
Presentation Layer и Data Layer при помощи логики приложения (Interactors) и
интерфейсов ввода и вывода (Boundaries).
69
Рисунок 3.2.4.1.5.1 − Изначальная версия Clean Architecture.
Позже данная схема претерпела изменения (Рисунок 3.2.4.1.5.2) и была
описана в [36] «Дядюшкой Бобом» (Uncle Bob). Теперь схема была
представлена в виде диаграммы, что позволило чётко описать зависимости
между слоями и выделить ядро программы. В отличие от [35] в [36] стало
больше слоёв: Frameworks & Drivers, Interface Adapters, Application Business
Rules, Enterprise Business Rules.
Слои Clean Architecture были изменены слои, рассмотрим их от внешнего
к внутреннему:
1. Frameworks & Drivers – содержит в себе UI, локальное хранилище
устройства, связь с интернетом, прочие внешние фреймворки;
2. Interface Adapters – включает в себя связи между предыдущим слоем и
следующим;
3. Application Business Rules – реализует всю логику приложения;
4. Enterprise Business Rules – бизнес-логика.
Взаимодействие между слоями осуществляется с помощью Boundaries,
оговоренных выше, о чём говорят два интерфейса Use Case Output Port и Use
Case Input Port. Причем зависимости Presenter и Controller с Use Cases
изображены в соответствии с принципом инверсии зависимостей, входящих в
70
пятёрку принципов объектно ориентированного программирования (SOLID),
который говорит о зависимости деталей от абстракций. Поэтому интерфейсы
Output Port и Input Port находятся в слое Use Cases, а Repository и Controller
реализую их.
Рисунок 3.2.4.1.5.2 − Слои программы согласно Clean Architectures
3.2.4.2 Обоснование выбора паттернов проектирования
Что бы не допустить чрезмерного усложнения архитектуры, а в
дальнейшем и кода программы, следует выделить информацию, которая будет
использоваться в приложении. Как говорилось в главе 3 приложение будет
использовать данные GPS и показания датчиков, а также использовать
локальное хранилище для ведения статистики.
Наиболее подходящими паттернами будут MVVM и Clean Architecture.
MVVM позволит снизить количество кода в Model.
71
Clean Architecture была выбрана, так как наиболее полно описывает
взаимодействие
слоёв
приложения.
Данный
паттерн
необходимо
оптимизировать под наше приложение, так как некоторые модули будут
отсутствовать.
3.2.4.2.1 Адаптация Clean Architecture
Адаптация выбранного паттерна заключается в удаление не используемых
блоков, поэтому изменению подвергнутся только два слоя: Frameworks &
Drivers и Interface Adapters.
Frameworks & Drivers безграничный слой в котором можно оставить:
1. UI, без него программа для пользователя будет бесполезна;
2. локальное хранилище (Local Storage) будет использоваться для
сохранения данных, что бы в последующем можно было анализировать
результаты работы программы;
3. GPS данные, так как они будут опорными.
Interface Adapters согласно MVP будет содержать Presenter и Gateways
(является тем же что и Repositories, различие только в написании), так как
Controller был добавлен под влиянием библиотеки Ruby On Rails и не актуален
для Android.
Результат адаптации изображены на Рисунке 3.2.4.2.1.1.
Для упрощения понимания связей между слоями необходимо изобразить
каждый компоненты в виде блочной схемы изображая уровень зависимостей
начиная от внешнего слоя и заканчивая внутренним. Получим схему,
изображенную на Рисунке 3.2.3.2.1.2.
Если объединить полученную блочную схему к схеме, изображенной на
Рисунке 3.2.4.1.5.1, то получим новую схему (Рисунок 3.2.4.2.1.3). Теперь, если
установить взаимосвязи между слоями, станет проще придерживаться паттерна
при написании кода.
72
Рисунок 3.2.4.2.1.1 − Адаптированная версия Clean Architecture
Рисунок 3.2.4.2.1.2 − Блочная схема Clean Architecture.
73
Рисунок 3.2.4.2.1.3 − Гибрид схемы Clean Architecture
Взаимосвязи можно описать следующим образом. Пользователь через UI
посылает событие в Presenter, после чего оно передаётся в Use Cases и
обрабатывается, далее на основе результата Use Cases делает запрос в Gateways,
который получает данные на основании запроса из вне (в нашем случае Local
Storage, данные сенсоров, GPS). Ответ отправляется в Gateways, где
обрабатывается и на основе ответа создаются соответствующие Entities,
передающиеся в Use Cases, где принимается какой-то результат на основе
логики
и
Entities,
результат
передаётся
в
Presenter,
который
меняет
соответствующие переменные и отображает результат в UI.
3.2.4.2.2 Объединение паттернов Clean Architecture и MVVM
Полученный паттерн необходимо объединить с MVVM паттерном, чтобы
в результате получить необходимый нам паттерн и продумывания необходимого
архитектурного решения для будущего приложения. Результатом объединения
паттернов изображен на Рисунке 3.4.2.2.1.
После объединения паттернов, связи слоёв и блоков не изменятся, за
исключением небольших изменений в Presentation Layer. С добавлением блока
74
View-Model Presenter будет изменять переменные View-Model, который в свою
очередь будет изменять отображение UI.
Рисунок 3.2.4.2.2.1 − Результат объединения паттернов
3.2.5 Систематизация API Android необходимого для реализации
оптимизационного алгоритма
Android имеет множество API для решения различных задач. Необходимо
определить необходимые для реализации алгоритма и выделить основные
моменты использования.
Следую из алгоритма нам понадобится API для работы с акселерометром,
магнитометром и гироскопом, а также ГНСС. Необходимо получить следующие
параметры:
1. от
ГНСС
необходимо
получить
данные
о
местоположении,
погрешности и скорости перемещения устройства;
2. от акселерометра текущее линейное ускорение устройства;
3. от магнитометра текущую ориентацию устройства в пространстве;
4. от гироскопа текущее центростремительное ускорение устройства.
75
3.2.5.1 API Location
API Location в Android предоставляет большой функционал, в рамках
реализации алгоритма в качестве провайдера данных о геолокационных данных
устройства будет использован только ГНСС.
Для начала работы с API основному классу необходимо реализовать
интерфейс LocationListener, который потребует реализовать четыре функции [38]:
onLocationChanged − вызывается при изменении местоположения,
передаёт класс Location, в котором хранятся все параметры по скорости
перемещения,
местоположению
пользователя,
погрешность
определение
координат;
onProviderEnabled − срабатывает при добавлении провайдера, передаёт
имя провайдера;
onProviderDisabled – срабатывает при отключении провайдера, передаёт
имя провайдера;
onStatusChanged – срабатывает при невозможности провайдером получить
данные о местоположении пользователя или при начале получения данных от
провайдера при долгом периоде недоступности.
Что бы получать данные необходимо подписаться на рассылку данных
делается это в два этапа:
•
вызов системного сервиса LocationManager;
•
у полученного сервиса вызвать метод requestLocationUpdates, данный
метод принимает имя провайдера, минимальная задержка получения координат
в
миллисекундах,
минимальное
изменение
дистанции,
и
слушатель
(LocationListener).
После срабатывания onLocationChanged из класса Location можно
получить координаты путём вызова функций getLatitude и getLongitude (широта
и долгота соответственно), координаты будут возвращены в double, где целое
число будет означать минуты, а дробная часть секунды. Скорость получаем
вызовом getSpeed (скорость будет выражается в м/c).
76
3.2.5.2 API Sensors
API Sensor имеет сенсоры распределенные по классам [39]:
1. Motion Sensor – эти датчики измеряют ускорение и силы вращения
вдоль трёх осей, эта категория датчиков включает в себя акселерометр, датчик
силы тяжести, гироскоп и виртуальный датчик вектора поворота;
2. Environmental sensors – датчики этой категории измеряют параметры
окружающей среды: температура воздуха, давление, освещенность, влажность
− включает в себя барометр, фотометр и термометр;
3. Position Sensors – эта категория измеряет физическое положение
устройства, включает в себя такие датчики как сенсор поворота и магнетометр.
Для получения данных с сенсоров необходимо реализовать интерфейс
SensorEventListener. Согласно [38] содержит всего 2 метода:
onSensorChanged − вызывается при изменении показания датчика,
передаёт класс SensorEvent (содержит данные о датчике и его показаний);
onAccuracyChanged − вызывается при изменении погрешности датчика,
возвращает класс Sensor (класс хранящий все данные о датчике) и
целочисленное значение погрешности.
Исходя из алгоритма, нам понадобятся датчики категорий Motion Sensor и
Position Sensor. Необходимо вызвать системный сервис SensorManager, и при
помощи него подписаться на рассылку показаний датчиков ссылаясь на нашу
реализацию интерфейса. Делается это в три этапа [38]:
1. осуществляем
вызов
системного
сервиса
вызвав
функцию
getSystemService в Model, которой необходимо передать идентификатор сервиса
необходимого нам;
mSensorManager = getSystemService(ID_SENSOR);
2. получаем из сервиса класс необходимого нам датчика вызовом метода
getDefaultSensor, который принимает тип сенсора;
mSensor = mSensorManager.getDefaultSensor(TYPE_SENSOR);
77
3. регистрируем реализацию интерфейса на получение изменений
датчика вызовом метода у полученного сервиса registerListener, передавая
реализацию интерфейса, класс датчика и задержку получения данных о
изменении.
mSensorManager.registerListener
(RE_INTERFACE,
SENSOR_CLASS,
SENSOR_DELAY);
Задержка получения изменений влияет на скорость получения данных, в
API Sensor нет чёткого времени отклика датчиков, но существует четыре
градации скорости:
1. SENSOR_DELAY_FASTER – получение данных настолько быстро,
насколько возможно;
2. SENSOR_DELAY_GAME – задержка достаточная для игр;
3. SENSOR_DELAY_NORMAL – задержка (по умолчанию) подходящая
для изменнеия ориентации экрана;
4. SENSOR_DELAY_UI – задержка, подходящая для пользовательского
интерфейса.
3.2.6 Результаты программной реализации алгоритма
В
ходе
реализации
полученного
алгоритма
на
основе
серийно
выпускаемых устройств под управлением ОС Android была создана программа,
для версии ОС KitKat (API 19) и выше. В качестве языка программирования
был выбран Java версии 1.8, а в качестве паттерна проектирования были
выбраны Clean Architecture и MVVM.
При реализации алгоритма использовались следующие API операционной
системы Android:
1. Location;
2. Sensors;
3. Google Maps.
78
Последние API необходимы только для визуализации полученных
результатов определения местоположения устройства в виде отображения
текущего местоположения пользователя с учётом ошибки и отображение
пройденного пути. В место Google Maps можно использовать другие
библиотеки картографии, например, MapBox, OpenLayers, HeroMap.
В приложении имеется всего один экран (Приложение В, Рисунок П3), на
котором отображается карта и нижняя панель. Нижняя панель подвижная и
отображает информацию о текущей скорости, азимуте и координатах, а также
имеет checkbox, которые позволяют скрывать / показывать информацию о
пройденном пути на карте. Карта отображает текущее местоположение с учётом
ошибки и пройденный путь в трёх вариантах:
1. путь определенный при помощи только ГНСС;
2. путь определенный при помощи ГНСС в связке с показаниями
датчиков и фильтром Калмана;
3. путь определенный с помощью методов описанных в предыдущем
пункте и с применением фильтра на основе GeoHash.
При определении геолокационных параметрах устройства с ним нельзя
взаимодействовать, так как на него будут воздействовать дополнительные силы,
таким образом изменение ориентации устройства вызовет дополнительные
всплески в показаниях датчиков, что увеличит ошибку в расчётах. Поэтому
разница определения геолокационных данных при помощи датчиков заметна
при передвижении человека пешком и при передвижении на автотранспорте
(Приложение В Рисунок П4).
Датчики
обладают
собственной
погрешностью
измерения,
что
обусловлено их чувствительностью и обладание собственным шумом, для этого
был использован фильтр Калмана, который сглаживает показания. При
длительной работе ошибки накапливаются, уменьшая точность определения
геолокационных параметров. Относительно точно определять местоположение
устройства при помощи датчиков зная изначальные координаты устройства
79
возможно в среднем не более одной минуты, что отражено в Приложение Г на
Рисунок П8 и Рисунок П9. Так же из анализа графиков представленных в
Приложении Г можно сделать вывод о том что на отметке в 60 секунд при
отсутствии связи с геолокационными системами реализованный алгоритм
имеет расхождение в 53.9 метра, в то время как аналог имеет расхождение в
286 метров, более наглядно можно увидеть в Приложении В на Рисунок П4 и
Рисунок П5, время может увеличиваться или уменьшаться в зависимости от
характера движения.
Из вышеперечисленного можно выявить следующие недостатки в
реализации алгоритма:
1. инерционность фильтров, резкая смена направления движения фильтр
Калмана принимает как всплеск (ошибку), который сглаживается, что влияет на
конечный результат;
2. при определении геолокационных параметров при помощи датчиков
имеет постоянное отклонение (заметно в Приложении В, Рисунок П5), что
говорит о возможно неверной настройке фильтра Калмана;
3. медленное ускорение акселерометр может не уловить;
4. короткий интервал вычисления геолокационных данных по датчикам;
5. измеряемая скорость стремиться к нулю, но никогда не будет ему
равно, из-за погрешности датчиков.
Исходный код программы доступен для ознакомления в репозитории
BitBacket (https://bitbucket.org/kirill_shtreblev/tracker/src).
3.3 Разработка методики использования устройства
Методика использования устройства определения местонахождения и
параметров транспортного средства основывается на использовании самого
устройства, которое привязывается к транспортному средству, и оригинального
программного обеспечения, установленного на устройство.
Методика эксплуатации устройства состоит из нескольких шагов:
80
1. эксплуатация конкретного портативного устройства зависит от
производителя и описывается в документации к прилагаемому к устройству;
2. зарядку аккумулятора устройства необходимо производить при
помощи зарядного устройства через розетку, если в транспортном средстве не
имеется таковой, то необходимо воспользоваться преобразователем для
последующей зарядки от разъема прикуривателя;
3. в случаях неисправности устройства и наличия гарантии обратиться к
дистрибьютору у которого было закуплено устройство, если срок гарантийного
обслуживания истек необходимо обратиться в ремонтный центр для ремонта
устройства, в случаях невозможности ремонта заменить устройство на
эквивалентное.
Методика эксплуатации приложения определения местонахождения и
параметров движущегося транспортного средства:
1. запустить приложение;
2. дать согласие на доступ к внутренней памяти устройства и на
определение местонахождения, если этого не сделать приложение не будет
работать;
3. не начинать движение, пока не определяться геолокационные
параметры, при этом необходимо находиться на открытом пространстве,
индикацией
успешного
определения
местонахождения
будет
условное
обозначение на карте, в виде красной точки;
4. если приложение не запускается, или не выполняет свои функции, то
есть не определяет местонахождение устройства или параметры движения,
сообщить о неполадке разработчику.
81
Заключение
Результатами
анализа
литературных
источников
структурных
и
функциональных схем систем удаленного контроля объектов была получена
обобщенная структура (Рисунок 1.1) и классификация геолокационных систем.
Наибольшая проблема в телематических системах является определение
геолокационных данных движущихся объектов. Для изучения этой проблемы
была решена задача систематизации способов, методов и технических средств
определения
местоположения
объекта,
результатами
которой
является
классификация геолокационных систем:
1. глобальные спутниковые системы;
2. системы на базе инфраструктуры сотовых сетей и сетей интернет;
3. датчики.
В ходе разработки алгоритма определения местонахождения движущегося
транспортного средства было предложено усовершенствование алгоритма
путем
дополнения
характеристиках
рассмотренного
магнитных
алгоритма
полей.
Сделан
введением
данных
вывод
том,
о
о
что
усовершенствованный алгоритм позволяет снизить погрешность измерения
ориентации системы в пространстве и увеличить точность определения
азимута.
Получен
алгоритм
определения
геолокационных
параметров
устройства представлен на Рисунок 2.3.2.
В
ходе
реализации
полученного
алгоритма
на
основе
серийно
выпускаемых устройств под управлением ОС Android была создана программа,
для версии ОС KitKat (API 19) и выше. Устройство должно поддерживать
ГНСС-приёмник, сотовую связь и датчики: акселерометр, магнетометр и
гироскоп. Реализация имеет недостатки, а именно:
1. инерционность фильтров, резкая смена направления движения фильтр
Калмана принимает как всплеск (ошибку), который сглаживается, что влияет на
конечный результат;
82
2. при определении геолокационных параметров при помощи датчиков
имеет постоянное отклонение от реальных координат, что говорит о возможно
неверной настройке фильтра Калмана;
3. медленное ускорение акселерометр может не уловить;
4. короткий интервал вычисления геолокационных данных по датчикам;
5. измеряемая скорость стремиться к нулю, но никогда не будет ему
равно, из-за погрешности датчиков.
Для устранения вышеперечисленных недостатков требуется дальнейшее
исследование проблем, связанных с определением геолокационных параметров,
что подтверждает актуальность темы.
83
Список используемых источников
1. Горюнов А.Г. Телеконтроль и телеуправление: учебное пособие /
Ливинцов С.Н., Чурсин Ю.А. — Томск: Изд-во Томского политехнического
университета, 2010.
2. Тутевич В.Н. Телемеханика. Учебное пособие для вузов. — М.:
Высшая школа, 1985.
3. Телеметрические системы в бурении: учебное пособие / Акбулатов
Т.О., Левинсон Л.М., Мавлютов М.Р., Самигуллин В.Х. — Уфимский
государственный нефтяной технический университет, Уфа, 1999 г.
4. Современная телеметрия в теории и на практике. Учебный курс. /
Назаров А.В., Козырев Г.И., Шитов И.В., Обрученков В.П., Древин А.В.,
Краскин В.Б., Кудряков С.Г., Петров А.И., Соколов С.М., Якимов В.Л.,
Лоскутов А.И. — Спб.: Наука и Техника, 2007.
5. Л.М. Невдяев. Телекоммуникационные технологии. Англо русский
толковый словарь справочник. Под редакцией Ю.М. Горностаева — М., 2002.
6. ГОСТ Р 52928-2008. Система спутниковая навигационная глобальная
— М.: Стандартформ, 2008. — 12с.
7. ГОСТ Р 53864-2010. Глобальная навигационная спутниковая система.
Сети
геодезические
спутниковые.
Термины
и
определения
—
М.:
Стандартформ, 2011. — 6с.
8. Яценков В.С. Основы спутниковой навигации. — М.: Горячая линияТелеком, 2005.
9.
Соловьев Ю.А. Системы спутниковой навигации. — М.: Эко-Трендз,
2000.
10. Спутниковые системы мониторинга. Анализ, синтез и управление. —
М.: Изд-во МАИ, 2000.
11. Липкин И.А. Спутниковые навигационные системы. — М.: Вузовская
книга, 2001.
84
12. Глобальная спутниковая радионавигационная система ГЛОНАСС /
Под ред. В.Н. Харисова, А.И. Перова, В.А. Болдина. — М.: ИПРЖР, 1998.
13. Козловский Е. Искусство позиционирования // Вокруг света. — М.:
2006.
14. Петрова А.М. GPS: Все, что Вы хотели знать, но боялись спросить.
Неофициальное пособие по глобальной системе местоопределения. –
Бук-
Пресс и К, 2005 г.
15. Перов А.И. ГЛОНАСС. Принципы построения и функционирования. /
Харисов В.Н. – М.: Радиотехника, 2010.
16. Громаков Ю.А. Технологии определения местоположения в системах
сотовой связи GSM и UMTS. / Северин А.В., Шевцов В.А. — М.: Эко-Трендз,
2005.
17. Нефедов А. Мобильное позиционирование [Электронный ресурс]. Режим доступа: http://old.computerra.ru/198563/ – Дата доступа: 02.02.2018.
18. Алексей Н. Скажи мне свой сотовый, и я скажу, где ты [Электронный
ресурс]. — Режим доступа: https://www.osp.ru/pcworld/2008/01/4796658 — Дата
доступа: 03.02.2018.
19. Методы определения местоположения [Электронный ресурс]. —
Режим
доступа:
https://studopedia.su/16_34203_metodi-opredeleniya-
mestopolozheniya.html – Дата доступа: 05.02.2018.
20. Дворкина
Н.Б.,
Намиот
Д.Е.,
Дворкин
Б.А.
Мобильные
навигационные сервисы и применение технологии OpenCellID для определения
местоположения
[Электронный
ресурс].
—
Режим
доступа:
http://geomatica.ru/clauses/31/ — Дата доступа: 04.02.2018.
21. Акселерометры
[Электронный
ресурс].
—
Режим
доступа:
https://studfiles.net/preview/6163892/page:2/ — Дата доступа: 21.03.2018.
22. Гироскопические
устройства [Электронный ресурс].
доступа: http://poznayka.org/s21142t1.html – Дата доступа: 22.03.2018.
— Режим
85
23. Магнетометр
[Электронный
ресурс].
—
Режим
доступа:
https://howlingpixel.com/wikiru/%D0%9C%D0%B0%D0%B3%D0%BD%D0%B8%D1%82%D0%BE%D0%BC
%D0%B5%D1%82%D1%80 – Дата доступа: 23.03.2018.
24. Sebastian O.H. Madgwick An efficient orientation filter for inertial and
inertial/magnetic sensor arrays [Электронный ресурс]. – Режим доступа: http://xio.co.uk/res/doc/madgwick_internal_report.pdf – Дата доступа: 21.03.2018.
25. mad-location-manager [Электронный ресурс] — Режим доступа:
https://github.com/maddevsio/mad-location-manager — Дата доступа: 22.03.2018
26. Фильтр
Калмана
[Электронный
ресурс].
—
Режим
доступа:
http://poivs.tsput.ru/ru/Math/ProbabilityAndStatistics/ProbabilityTheory/RandomPro
cesses/KalmanFilter — Дата доступа: 22.03.2018.
27. Tips
&
Tricks
[Электронный
ресурс]
—
Режим
доступа:
http://geohash.org/site/tips.html — Дата доступа: 23.03.2018.
28. ГОСТ 15971-90. Системы обработки информации. Термины и
определения. — М.: Стандартформ, 1992. — 14с.
29. ГОСТ Р 54456-2011. Телевидение вещательное цифровое. Домашняя
мультимедийная
платформа.
Класс 1.0.
Основные
параметры.
— М.:
Стандартформ, 2012. — 40с.
30. Официальный сайт Statcounter [Электронный ресурс] – Режим
доступа:
http://gs.statcounter.com/os-market-share/mobile/worldwide
–
Дата
доступа: 01.07.2018.
31. Паттерны проектирования. / Фримен Э., Фримен Э., Сьерра К., Бейтс
Б. – СПб.: Питер, 2011.
32. Приемы
объектно-ориентированного
проектирования.
Паттерны
проектирования. / Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. – СПб.: Питер,
2015.
86
33. Федоров А. Шаблоны проектирования при разработке под Android.
Часть 2 — MVP и Unit tests. Путь Джедая [Электронный ресурс] – Режим
доступа: https://habr.com/post/131446/ – Дата доступа: 01.05.2018.
34. Валюх А. Использование шаблона MVVM (Model-View-ViewModel) в
Android. [Элекстронный ресурс] – Режим доступа: https://dataart.ru/news/ispol–
zovanie-shablona-mvvm-model-view-viewmodel-v-android
Дата
доступа:
01.05.2018.
35. Fernando Cejas. Architecting Android...The clean way? [Электронный
ресурс] – Режим доступа: https://fernandocejas.com/2014/09/03/architectingandroid-the-clean-way/ – Дата доступа: 02.05.2018.
36. Uncle Bob. The Clean Architecture. [Электронный ресурс] – Режим
доступа: https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html
– Дата доступа: 02.05.2018.
37. Чирвон В. Заблуждения Clean Architecture. [Электронный ресурс] –
Режим доступа: https://habr.com/company/mobileup/blog/335382/ – Дата доступа:
02.05.2018.
38. Sensors
Overview
[Электронный
ресурс]
–
Режим
доступа:
–
https://developer.android.com/guide/topics/sensors/sensors_overview
Дата
доступа: 03.05.2018.
39. SensorEventListener
[Электронный
ресурс]
–
Режим
доступа:
https://developer.android.com/reference/android/hardware/SensorEventListener
–
Дата доступа: 03.05.2018.
40.
доступа:
Smartphone by Manufacturer Report [Электронный ресурс] — Режим
http://www.fixya.com/reports/phone-manufacturers
–
Дата
доступа:
03.05.2018
41.
Smart Phone reliability: Apple iPhones with fewest failures, and major
Android manufacturers not far behind. [Электронный ресурс] — Режим доступа:
https://www.squaretrade.com/cell-phone-comparison-study-nov-10 – Дата доступа:
03.05.2018
87
Приложение А
Расширенное техническое задание на разработку устройсва определения
местонахождения движущегося транспортного средства
1 Наименование изделия
Устройство определения местонахождения движущегося транспортного
средства
2 Назначение и область применения
Устройство предназначено для определения местонахождения, скорости и
направления движения транспортного средства.
3 Требования к устройству
Устройство должно быть портативным. Автономность работы должна
составлять не менее 4х часов. Устройство должно осуществлять передачу
информации о определяемых параметрах на удалённый пульт мониторинга
транспортных средств.
4 Показатели назначения изделия
Устройство должно обеспечивать определение параметров указанных в
п.2 в условиях отсутствия связи с геолокационными системами.
5 Требования надежности
Средняя наработка на отказ, не менее 5000ч. Средний срок службы не
менее 1 года.
Среднее время автономной работы не менее 4х часов.
6 Требования безопасности
Изделие должно предусматривать работу без применения специальных
мер безопасности.
7 Условия эксплуатации
Температура в интервале: 0 до +30
88
Приложение Б
Схемы электрические структурная и функциональная
Рисунок П1 − Схема электрическая структурная
89
Рисунок П2 − Схема электрическая функциональная
90
Приложение В
Основной вид программы определения местонахождения движущегося
(а)
(б)
Рисунок П3 – Основной экран программы
91
(а)
(б)
Рисунок П4 – Определение геолокации (а) при движении пешком, (б) при
движении автотранспортного средства.
92
(а)
(б)
Рисунок П5 – Ошибка определения геолокации при помощи датчиков
(а) при перемещении пешком, (б) при перемещении на автотранспорте.
93
Приложение Г
Результаты реализации алгоритма определения местонахождения транспортного средства
Рисунок П6 − Расхождение широты при получении ГНСС-приёмника данных от 4х спутников
94
Рисунок П7 − Расхождение долготы при получении ГНСС-приёмника данных от 4х спутников
95
Рисунок П8 − Расхождение широты при потере сигнала с спутниками
96
Рисунок П9 − Расхождение долготы при потере сигнала с спутниками
97
Приложение Д
Блок схема работы приложения
Рисунок П10 − Алгоритм работы приложения
98
Рисунок П11 − Алгоритм работы процесса определения геолокационных параметров
99
Приложение Е
Рисунок П12 − Справка о публикации статьи
100
Рисунок П13 − Справка о публикации статьи
Рисунок П13 — Справка о публикации статьи
1/--страниц
Пожаловаться на содержимое документа