Спутниковая навигация
Александр Бессонов
Станислав Шишко
Сергей Рожков
Высокие технологии подготовили и совершили прорыв в еще одной области человеческих знаний — навигации. Речь идет об ССРНС (Сетевых спутниковых радионавигационных системах), точнее, об американской GPS NAVSTAR (Global Positioning System Navigation Satellite with Time And Ranging). Программа GPS NAVSTAR разработана и осуществлена фирмой Rockwell, к 1993 году система была выведена на проектную мощность. GPS NAVSTAR состоит из космического сегмента (24 искусственных спутника земли, или ИСЗ, на околоземных орбитах), наземного сегмента (станции слежения) и аппаратуры потребителя (GPS-приемники). Орбиты ИСЗ NAVSTAR расположены таким образом, что, имея GPS-приемник, почти на всей территории Земли (~ до 80-х градусов широт) и в течение всех 24 часов можно определить собственное местоположение. GPS-приемники характеризуются крайне малыми габаритами (одноплатные монокристальные схемы, низкопрофильные пассивные ВЧ-антенны), низким энергопотреблением (~1Вт) и невысокой стоимостью (300 - 700 долл.). Для передачи данных от ИСЗ используется шумоподобный сигнал малой мощности. В основу определения координат положен метод триангуляции. Используя специальный алгоритм, GPS-приемник выбирает несколько ИСЗ, пригодных для вычисления своего местоположения в двух- или трехмерной системе координат. Измеряя задержку сигналов, GPS-приемник вычисляет расстояния до каждого из ИСЗ и решает геометрическую задачу, определяя собственное положение как точку пересечения сфер с соответствующими радиусами. Для режима 2D-навигации достаточно устойчивого приема сигналов от 3 ИСЗ, ошибка обычно не превышает 100 метров.
Схематическое изображение спутников GPS-NAVSTAR
Типичный GPS-приемник делает решение раз в секунду, имеет интерфейс для связи с внешними устройствами (как правило, RS232), и работает по стандартному протоколу (NMEA-0183). Чаще всего получаемая от GPS-приемника информация содержит данные о местоположении (координаты в какой-либо геометрической проекции), скорость, курс и время. Особый интерес представляет построение диспетчерских систем на базе GPS, позволяющих контролировать из единого центра (диспетчерский пункт — ДП) перемещение подвижных объектов (ПО) в рамках определенной территории. Наиболее распространенная схема представляет собой систему локальной радиосвязи для передачи данных ПО — ДП и программное обеспечение ДП, предназначенное для оперативного отображения обстановки.
Навигационные системы
Для построения полноценного функционального комплекса одной аппаратуры, естественно, недостаточно (спутников, GPS-приемников, радиостанций и т.д). Контроль ПО осуществляется с помощью компьютерной программы — навигационной системы. При этом навигационные системы можно классифицировать по следующим признакам:
w мобильная — система, устанавливаемая на ПО. В ее задачи чаще всего входит отображение местоположения объекта на электронной карте, решение простейших навигационных задач (поиск пути) и, возможно, сбор и обработка информации реального времени (перекрестки, пробки, светофоры…);
w диспетчерская — система, обслуживающая обычно 2 или более ПО (до 1-2 тысяч). В ее задачи входит постоянное слежение за всеми контролируемыми ПО, регистрация информации движения, контроль (например, задача вхождения в заданный район, соблюдение расписания и т.п.)
GPS-приемник фирмы Rockwell (конечное исполнение с ЖК-дисплеем)
В зависимости от поставленных задач система может быть дополнена такими функциями, как контроль за незапланированным передвижением ПО (угон, нападение).
Навигационные системы можно также разделить в зависимости от решаемых задач на следующие классы:
w наземные — системы данного класса отличаются отсутствием общепринятых стандартов и большим разнообразием функций. Например, инкассаторская служба может использовать такой вариант системы, который следит за графиком движения, целостностью передающей аппаратуры и самого автомобиля, а также обеспечивает своевременное предупреждение о всякого рода инцидентах и имеет возможность перехвата управления автомобилем (блокирование колес, двигателя, дверей). С другой стороны, система, установленная в автобусном парке, помогает диспетчеру контролировать загруженность маршрутов и точность соблюдения графика;
w морские — на данный вид навигационных систем существует множество международных стандартов, более того, большинство портов мира не принимают корабли, не оснащенные навигационными системами. Однако в зависимости от решаемых задач и здесь возможна вариативность поддерживаемых функций. Пограничная служба, например, за исключением системы слежения и опознавания, должна иметь в своем распоряжении набор мощных алгоритмов, помогающих перехватывать корабль противника, осуществлять различные маневры и т.п. Далее, в любом варианте система должна уметь на основе электронной карты решать задачу безопасности — автоматически указывать штурману опасные места;
w авиационные — системы данного класса обычно отличает невысокое качество электронных карт наряду с повышенными средствами безопасности и резко увеличенной скоростью реакции на различные события.
военное исполнение
Практически навигационные системы оцениваются по следующим важным параметрам:
1. Количество ПО, обслуживаемых системой (данный параметр обычно зависит от аппаратуры и физических ограничений радиосвязи).
2. Количество электронных карт и их форматов, распознаваемых системой. Карты могут поставляться с системой, быть жестко “зашиты” в ней или легко добавляться в систему после приобретения у поставщика.
Качество отображаемой информации и скорость ее обработки. Система ни в каких случаях не должна терять информацию, приходящую от ПО, и обязана жестко ее фиксировать. Таким образом, желательно, чтобы все остальные ее функции, в частности одна из самых ресурсоемких — отображение карты, были отделены и независимы от функции приема и регистрации данных.
бескорпусное исполнение (входящее в состав инструментария разработчика)
4. Диспетчерская система обязана в любой момент по указанию диспетчера связаться с любым ПО, получить все данные о нем или задействовать один из его датчиков.
5. Мобильный вариант системы должен быть “совместимым” со всеми городскими (или районными) информационными службами, для того чтобы иметь возможность получать оперативную информацию.
Картография
Независимо от класса и решаемых задач в основе любой навигационной системы лежит электронная картография.
Электронная карта — представление бумажной карты внутри компьютера. Перевод бумажной карты в ее электронный вариант — очень трудоемкая и длительная операция, однако, однажды проведенная, она дает множество преимуществ:
w современные носители информации позволяют на одном небольшом компакт-диске сосредоточить картографическую информацию морей и портов всего мира, объединив в себе более 5000 бумажных карт. При этом поиск, естественно, ускоряется в сотни раз;
w решение задач безопасности намного упрощается и легко реализуется автоматически — штурману больше не надо раскладывать на столе большие бумажные карты и выискивать все опасности, лежащие по курсу, — за него это с легкостью сделает компьютер;
w электронные карты хранятся обычно в векторном виде, что дает возможность плавно изменять масштаб карты (электронная лупа);
w современные навигационные системы способны отображать на экране более одной карты, облегчая работу штурману или диспетчеру.
карта C-MAP (норвежская компания, распространяющая картографическую информацию)
Система обязательно должна использовать карты, хранимые в векторном виде, так как хранение растрового образа (то есть матрицы цветов) связано с огромными затратами оперативной и внешней памяти, невозможностью масштабирования и зачастую большой неточностью навигации. С другой стороны, векторные карты свободны от большинства этих недостатков: они небольшие, хорошо организованы, легко масштабируются и обладают высокой точностью. Точность дигитайзера (прибора, используемого для перевода карт из бумажного вида в электронный) меньше 1/100 миллиметра. Это значит, что на карте какого-либо фиксированного масштаба ошибка не превосходит 1/1000 от ее масштаба.
Еще одним преимуществом векторных карт является то, что, будучи отображенными на векторном дисплее или отпечатанными на графопостроителе, плоттере или лазерном принтере, они ничем не отличаются от своих бумажных оригиналов.
Однако за такую гибкость векторных карт приходится платить немалую цену: большинство современных компьютеров, доступных широкому потребителю, не справляются с растеризацией большого объема данных, хранящегося обычно в электронных картах. Поэтому эффективность той или иной навигационной системы напрямую зависит от ее способности быстро справляться с такими объемами векторной информации.
система с несколькими загруженными картами и следящая за несколькими целями. Окно Список наблюдаемых объектов выполнено в виде расширения (причем написано на Delphi, тогда как все остальные части системы — на Си++). Можно использовать как иллюстрацию модульности системы и абстрагирования от средств разработки
Скорость отображения информации на самом деле очень важна для навигационных систем, в особенности для диспетчерского варианта. Более того, так как электронная карта зачастую представлена в виде небольшого “окна” на экране, система должна обеспечивать возможность ее плавной и быстрой прокрутки.
Также необходимо обеспечить высокую точность отображаемых данных. Таким образом, существует по меньшей мере три фактора, характеризующих систему отображения электронных карт: полнота информации, точность и скорость ее отображения.
При реализации любой навигационной системы должен быть найден баланс между этими параметрами (исходя, естественно, из поставленных задач).
Прием и обработка данных
Если бы навигационные системы ограничивались только картографией, они были бы не более чем игрушкой. Самой важной частью любой такой системы является работа с различными устройствами с целью установления двусторонней связи между системой и ПО. Среди таких устройств может быть GPS-модем, различные РЛС, дифференциальная станция и т.п.
Как уже было сказано, данная функция считается самой важной частью навигационной системы и, как следствие, одним из ее узких мест. Главное правило гласит: информация, поступающая с ПО, не должна быть утеряна. Для этого принимается комплекс мер на двух уровнях: аппаратном и программном. Аппаратура связи гарантирует, что при данных погодных и других условиях информация, посланная в эфир ПО, будет принята без искажений в том случае, если это вообще возможно. Программные средства, в свою очередь, гарантируют сохранность принятых данных. При этом принятая информация должна быть отображена, зафиксирована, и, возможно, каким-либо образом обработана (например, решена задача безопасности).
В этой категории можно отметить ряд систем, которые изначально предназначены для работы с каким-либо определенным типом оборудования. Зачастую при необходимости расширить возможности по поддержке аппаратуры, разработчики сталкиваются с тем, что без серьезного изменения структуры программы это сделать невозможно. Таким образом, становится ясно, что выиграет та система, которая будет изолирована от блока приема и обработки информации, предоставляя плацдарм для последующих усовершенствований.
Структура и логика работы навигационной системы1
Последние исследования в области операционных систем, развитие сети Internet и появление различных CASE-средств, основанных на повторном использовании кода, довольно хорошо зарекомендовали практику модульного построения программ.
Рис. 1
Применяя к навигационной системе модульный принцип построения программ, получаем следующую структуру (см. рис. 1). Система состоит их следующих частей:
w оболочка. Обеспечивает пользовательский интерфейс системы и предоставляет возможность любому расширению дополнять его. Также она содержит код управления окнами, содержащими картографическую информацию, и отображает на них ПО;
w ядро. Обеспечивает связь между любыми компонентами системы, как существующими, так и теми, которые будут разработаны в будущем. Это реализуется при помощи двух механизмов — сервисов и интерфейсов. Сервис можно рассматривать как шлюз, гарантирующий доставку данных от одного модуля к другому, а идея интерфейсов позаимствована из COM (Component Object Model). Рассмотрим пример: оболочка знает, что в системе должен существовать объект каталога карт, в противном случае система не способна отображать картографическую информацию. Она вызывает стандартный сервис каталога карт, и ядро доставляет этот вызов тому модулю, который его действительно содержит. Также модули могут, однажды воспользовавшись сервисом объекта, получить прямой доступ к нему через один или несколько его интерфейсов. Формат интерфейсов также жестко указывается ядром, что, однако, не уменьшает их универсальности (на рисунке прерывистые стрелки обозначают передачу данных через сервисы);
w диспетчер расширений. Система изначально спроектирована так, что ее расширение не приведет к изменению кода какого-либо из существующих компонентов, в особенности ядра. Это достигается за счет использования диспетчера расширений.
Расширение — загружаемый исполняемый модуль, способный интегрироваться в среду навигационной системы и выполняющий какую-либо функцию. При этом система построена таким образом, что новое расширение может взаимодействовать с любым из имеющихся компонентов или полностью переопределить его функцию. Все части системы (за исключением оболочки и ядра) построены в виде расширений, и их интерфейсы строго стандартизированы.
Картографический модуль
Данный модуль состоит из двух частей, одна из которых (растеризатор) обрабатывает структуру электронных карт и конвертирует информацию из векторного вида в растровый. Другая часть (каталог) ведет разбор атрибутов картографических объектов, обеспечивая их правильное отображение.
Растеризатор содержит в себе несколько объектов. Главный из них — объект каталога карт. На нем лежат функции хранения и подбора электронных карт. Каждая карта в каталоге представляется объектом карта. В ее функции входит пересчет координат, поиск объектов и открытие видов карты. Вид карты занимается растеризацией векторной информации. Для того чтобы данная неприоритетная задача не прерывала более важных операций, таких, как прием и обработка данных, она реализована в параллельном потоке. Для рисования картографических объектов вид карты вызывает каталог.
Такая структура позволяет с легкостью добавлять новый формат карты и расширять список отображаемых объектов без изменения существующего кода.
Диспетчер целей
Диспетчер целей представляет собой сервер базы данных, содержащей информацию о ПО. Любой модуль навигационной системы может получить доступ к этой информации и уведомление о ее изменении. Источниками информации являются устройства связи с ПО. Учитывая, что существует множество различных типов оборудования, оправдывает себя система загружаемых драйверов источников. Имея унифицированный интерфейс, они позволяют единообразно работать практически со всей имеющейся на рынке аппаратурой данного класса. Сервер предусматривает одновременное обращение к нему множества клиентов, автоматически синхронизируя их запросы.
Рис. 2
Данная структура позволяет легко реализовать сетевую модель обработки данных ПО (см. рис. 2). Наличие централизованного сервера дает возможность устанавливать источники данных и вести слежение за ПО одновременно на нескольких компьютерах.
|
|
1 В данном разделе авторы описывают структуру системы, разработанной ими в течение последнего года. Авторы не претендуют на оригинальность каких-либо технических или конструктивных решений. |
|