diploma

МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Пензенский государственный технологический университет»
(ПензГТУ)


ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

ПензГТУ 1.09.03.02.06.ПЗ

к выпускной квалификационной работе на тему:

Алгоритмическое и программное обеспечение управлением беспилотным

летательным аппаратом


ВКР разработал студент группы 12ИС1б

Гребенников Никита Александрович
(фамилия, имя, отчество)

(подпись, дата)

"Пояснительная записка и все материалы ВКР проверены"
Руководитель проекта: Пискаев Кирилл Юрьевич, cтарший преподаватель кафедры ИТС
(фамилия, имя, отчество, должность)

ПензГТУ
(место работы)

Оценка руководителя – «________________________» _________________________________
(подпись, дата)

"ВКР допустить к защите в ГЭК"
Заведующий кафедрой "Информационные технологии и
системы"
______________________М.Ю. Михеев

Дата защиты ____________________2016 г.

"ВКР защищена с оценкой" «_______________________»

протокол № _________ от «______» _______________________ 2016 г.

Секретарь ГЭК ___________ О.М.Шарунова
г. Пенза





Перечень терминов и сокращений
ИС – информационная система
БПЛА – беспилотный летательный аппарат
ШИМ – Широтно-импульсный модулятор
ПО – программное обеспечение
GNU – GNU Not Unix
BSD – Berkeley Software Distribution
GPL – General Public License
APM – ArduPilot Mega
GPS – Global Po
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
· ВВЕДЕНИЕ
Цель данной выпускной квалификационной работы заключается в анализе и разработке алгоритмов и программного обеспечения управления беспилотным летательным аппаратом (БПЛА). В нахождение наилучшей оптимизации и балансировки ресурсов, включенных в данную работу, используя методы корпоративной информационной системы.
Для достижения заданной цели были поставлены следующие задачи:
Анализ предметной области;
Анализ готовых моделей БПЛА;
Анализ существующих патентов и лицензий ИС БПЛА;
Анализ технических требований к информационной системе БПЛА;
Анализ рынка компонентов ИС БПЛА;
Построение диаграмм
Разработка диаграмм UML.
Реализации графических компонентов управления
На сегодняшний день, беспилотные летательные аппараты активно применяются в:
Аэросъемке.
Доставке.
Тушении пожаров.
Охранных целях.
Развлекательной области.
Исходя из этих данных, можно сделать вывод, что БПЛА актуальны и имеют отличные перспективы в развитии технологического прогресса будущего.
В первом разделе квалификационной работе проведен анализ области информационных систем (ИС) управления БПЛА на сегодняшний день. В рамках анализа предметной области, также был проведён анализ патентов, свидетельств, лицензий и других правоохранительных документов. Выдвинуты предполагаемые технические требования к разрабатываемой ИС, а так же проведён анализ рынка компонентов. Во втором разделе проводится анализ и разработка моделей к ИС управления БПЛА.
В рамках второго раздела проведён анализ моделей разрабатываемых ИС управления, разработаны модели проектируемой ИС управления в виде UML диаграмм.
В третьем разделе осуществлена техническая реализация графических компонентов ИС управления БПЛА. В рамках данной квалификационной работы был разработан интерфейс для обмена данными между контроллером БПЛА и станцией сбора данных и управления.
1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
1.1 Общие сведения
В данном разделе представлено описание характеристик, состава, элементов интерфейса БПЛА и его программных аналогов. Так же произведен анализ патентов и составлены технические требования к информационной системе.
1.2 Структура, состав и функции систем управления БПЛА
В общем виде система управления БПЛА включает в себя 3 основных компонента для взаимодействия: Наземная станция, БПЛА, оператор.
Наземная станция, как правило, программное обеспечение, которое взаимодействует с БПЛА через беспроводную телеметрию. Она отображает данные в режиме реального времени и может служить в качестве «Виртуальной кабины», показывая многие из тех же инструментов, которые вы бы видели, если бы летели на реальном самолете.
Несмотря на многообразие моделеи
·, все они имеют свои недостатки: возможности, сложность использования или высокую себестоимость. Системы данного типа можно разделить на два вида: а. Коммерческие; б. Любительские.
Коммерческие системы в большинстве своем не массовые и являются проектами с закрытым кодом. Любительские же напротив, направлены на совместную работу с пользователями и располагают открытым кодом.
Проблема любительских проектов в том, что они относительно просты и направлены на определенный тип летательного аппарата. Что значительно ограничивает их функционал и дальнейшее дописывание или переписывание, в таких проекта, влечет за собой массу ошибок и трудно читаемый код.
Предлагаемый в данной работе проект, направлен на создание универсальной системы контроля и автопилотирования, применяемой ко всем существующим типам летательных аппаратов: к самолетам, вертолетам и мультироторным системам.
Разрабатываемая система будет осуществлять работу с беспилотными летательными аппаратами. Основное отличие беспилотного летательного аппарата от пилотируемого заключается в замене экипажа воздушного судна аппаратурным комплексом, включающим автопилот, управляемый по радиосвязи. Исходя из этого, важно предоставлять наиболее существенную и релевантную информацию о состоянии полета. Комплекс мониторинга должен разрабатываться как целостная система, состоящая из ряда подсистем и включающая в себя:
а) станцию управления, в которой расположено рабочее место оператора и программные приложения, обеспечивающие контроль оператором работы всего комплекса;
б) беспилотный летательный аппарат, несущий аппаратуру полезной нагрузки различного типа;
в) систему связи, обеспечивающую передачу управляющих команд со станции управления на борт БПЛА, а также передачу полезной информации с борта БПЛА на наземную станцию управления в режиме реального времени;
г) дополнительное оборудование, предназначенное для технической поддержки проводимых исследований.
Основное внимание данной работы будет направленно на осуществление графического информирования оператора наземной станции.
Для дальнейшего понимания специфики полета, представлен следующий рисунок, наглядно демонстрирующий основные компоненты частей самолета (рис. 1).

Рисунок 1 – устройство самолета.
Беспилотный летательный аппарат не следует путать с авиамоделью или с «дроном», как это часто делается в средствах массовой информации.
Радиоуправляемые модели самолетов используется только для спорта и должны постоянно оставаться в поле зрения оператора. Оператор радиоуправляемых моделей обычно ограничивается управлением модели на этапе набора высоты или снижения и поворотами модели в воздушном пространстве .
Дрон имеет возможность вылетать из поля зрения оператора, но имеет «нулевой» искусственный интеллект, лишь на время запуска в предварительно запрограммированной миссии и возврата на базу. Таким образом из-за ошибок в изначальном программировании миссии, а также ошибок наведения дрона, часто возникают ошибки в конечном результате (например отсутствие участка местности на сшивках аэрофотоснимков).
БПЛА, в свою очередь, имеют большую степень автоматизации искусственного интеллекта. Они имеют возможность «общения» с оператором, находящимся на наземной станции управления и могут передавать на нее данные, такие как оптические или тепловизионные изображения местности, вместе с первичной информацией о положении БПЛА – высота, курс, скорость, крен и т.д. Также БПЛА имеют возможность передачи на наземную станцию управления пакета служебных данных, охватывающий такие аспекты, как количество топлива, температура компонентов, например, двигателя или электроники. При возникновении неисправности в любой из подсистем или компонентов, БПЛА могут быть разработаны автоматически принимаемые корректирующие меры и / или предупреждение оператора. В случае, например, нарушения радиосвязи между БПЛА и наземной станцией управления, БПЛА может быть запрограммирован на поиск радиолуча и повторное установление контакта или переключиться на другую частотную полосу.
Панель оперативной индикации позволяет контролировать все важные параметры, для анализа функционирования и исправности бортовых систем, позволяет просматривать логи полета (в том числе и в режиме реального времени), анализировать поведение беспилотного летательного аппарата и бортовой аппаратуры в полете, при необходимости оперативной корректировки параметров используется встроенное программное обеспечение (рис. 2).

Рисунок 2 – Пример интерфейса контроля БПЛА
Общими показателями, необходимыми для отображения пилотирования, можно считать следующие:
1. Воздушная скорость измеряется в узлах (knots), милях в час (mp/h), км в час (km/h).
2. Количество оборотов винта и количество оборотов двигателя (прямая корреляция).
3. Высота (барометрическая, над уровнем моря) измеряется в футах или метрах.
4. Скороподъемность м/с, футы в минуту.
5. Датчик скольжения.
6. Авиагоризонт углы наклона, в градусах.
7. Компас (классическии
· или в виде ленты).
8. Остаток мощности двигателя.
9. Аварии
·ные сообщения (отказ генератора, аварии
·ныи
· остаток топлива и т. п.).
Большинство проектов направлены на работу с единичными платформами, поэтому будет рационально разрабатывать систему, работающую на кроссплатформенной основе. В результате этого исходный текст будет компилироваться в приложениях для Windows, Linux или Mac OS X.
Существенной частью любого автопилотного проекта является часть, обычно называемая инерциальной навигационной системой, или INS. В большинстве любительских проектов INS как таковой нет - есть некие её фрагменты, более или менее работающие.
Для того чтобы выполнять любые функции управления, нужно чётко представлять:
а. место нахождения объекта управления по отношению к некоей начальной точке;
б. ориентацию объекта по отношению к сторонам света;
в. скорость и направление движения объекта в трёхмерном пространстве (вертолёты и мультироторы могут летать любой стороной, в отличие от самолётов, потому ориентация не всегда совпадает с направлением движения);
г. скорость вращения объекта в трёхмерном пространстве.
Задачей INS является обработка информации с множества датчиков, которая в итоге сводится к набору чисел, описывающих вышеуказанные данные. Источников первичной информации может быть несколько. В минимальном варианте таковыми являются:
3 гироскопа, определяющие скорость вращения системы по трем осям;
3 акселерометра, позволяющие, помимо прочего, оценивать направление к центру Земли;
трёхосевой магнитный компас, позволяющий путём использования магнитной модели Земли точно знать ориентацию модели, а также корректировать значения гироскопов;
барометр, позволяющий путём измерения атмосферного давления вычислять высоту объекта над уровнем моря или точкой старта;
приёмник системы спутникового позиционирования GPS, дающий абсолютные координаты объекта в трёхмерном пространстве, а также данные о скорости и направлении движения.
Дополнительно могут также использоваться и другие источники информации:
ультразвуковой датчик высоты, аналогичный парктроникам автомобилей, дающий значения абсолютной высоты над уровнем поверхности Земли на малых высотах;
лазерные высотомеры, используемые для той же цели;
датчик воздушной скорости, которая при наличии ветра может отличаться от скорости, измеряемой системой GPS;
видеокамеры системы распознавания образов, позволяющие осуществлять точную привязку к точке местности;
радиомаяки и другие датчики.
1.3 Аналоги ПО систем управления БПЛА
1.3.1 Mission planner
Mission planner (MP) является свободным проектом, бесплатным, с открытым кодом. Чаще всего приложение используется для конфигурации и настройки коптеров, но оно также работает с планерами и роверами.
Вот несколько параметров, которые способно выполнять данное по:
1. Загружать прошивку (программное обеспечение) в автопилот (АРМ Px4 ...)
2. Настраивание и конфигурирование аппарата для оптимальной производительности.
3. Планирование, сохранение и загрузка автономных миссий в автопилот.
4. Возможность скачивания и анализа журналов миссий, созданных автопилотом.
5. Отображение полета летательного аппарата.
6. Контролирование состояния автопилота во время работы.
7. Документирование записей с телеметрии, содержащиеся в журнале автопилота.
8. Просматривание и анализирование журналов телеметрии.
[ Cкачайте файл, чтобы посмотреть картинку ]
Рисунок 3 – Mission Planner
Mission planner в отличие от его «конкурента» (QGroundControl) является Windows only и направлен на работу с под платформу Windows.


1.3.2 OpenPilot GCS
Как и Mission Planner, OpenPilot является открытым. Проект направлен на работу автопилота с любым типом беспилотников – самолетов, вертолетов и других аппаратов вертикального взлета и посадки.
Opent Pilot является кроссплатформенной. Один и тот же исходный текст компилируется в приложения для Windows, Linux или Mac OS X.
Преимуществами данной системы являются её модульность и гибкость настроек. Имеется несколько рабочих пространств, каждое из которых содержит набор так называемых гаджетов. Любой гаджет выполняет свою функцию и не зависит от остальных. Пользователь может создать новое рабочее пространство (или несколько) и разместить на нём в произвольном порядке нужные ему гаджеты с приборами, настройками, графиками, логами и прочим, выбираемые из предложенного списка. Ну а программист, заинтересованный в создании нового специфического инструмента для GCS, может легко добавить его, совершенно не затрагивая уже написанный код, а просто подключив свой гаджет к системе. Всё построено на основе системы uavobjects.
[ Cкачайте файл, чтобы посмотреть картинку ]
Рисунок 4 - OpenPilot GCS
Среди двух других аналогов это ПО имеет наименьшую репутацию среди пользователей.
1.3.3 QGroundControl
QGroundControl является управляемой пользователем единицей/ наземным манипуляционным ПО для микро воздушных транспортных средств. В основном разработан, как программное обеспечение наземной станции под PIXHAWK. Но, в настоящие время, превратилось в приложение с открытым кодом.
Задача проекта состоит в создании блока управления с интерфейсом для автономного вычислительного робота. В случае, когда устройство не способно работать автономно, например во время испытаний систем, и если джойстика или пульта дистанционного управления не достаточно, система должна быть способна работать в режиме реального времени и перенастраивать конфигурации, исходя из текущей ситуации.
Особенности:
1. Multi-MAV поддержка
2. Поддержка нескольких систем (несколько протоколов, несколько автопилотов / проектов)
3. 2D движущая карта (Google Спутник / Карты, OpenStreetMap, Yahoo Спутник / Карты)
4. Планирование миссии (путь, статус системы)
5. Тюнинг и калибровка контроллера
6. Поддержка поворотного и неподвижного крыла (самолеты, вертолеты, коаксиальные и 4-х моторные конструкции)
7. Дистанционное управление с помощью ручки
8. Голос / аудио (протестирован на Linux, Mac)
Проект являет кроссплатформенным. Внешний вид и полностью настраиваемый (CSS-стили). Поддерживает PC/Mac.
Рисунок 5 – QgroundControl
В целом проект зарекомендовал себя с наилучшей стороны и имеет большую популярность среди пользователей. QGroundControl в отличие от его «конкурента» (Mission planner) является кроссплатформенным и направлен на работу с такими платформами как Mac/Windows/Linux.
1.4 Анализ патентов, свидетельств, лицензий и других правоохранительных документов
В ходе патентного поиска был произведен разбор свыше 50 патентов и выбраны наиболее значимые патенты за 2012-2015 гг.
Ниже приведен список этих патентов (табл. 1).
Таблица 1 – Список просмотренных патентов
Код патента
Обладатель
Дата публикации

1. Unmanned aerial system drone situational awareness flight safety and tracking system

US 20150260824 A1 Original Assignee
Chester Charles Malveaux
Sep 17, 2015


2. Display of terrain along flight paths

Продолжение таблицы 1
WO 2015031238 A1 ApplicantInsitu, Inc.
A Subsidiary Of The Boeing Company
Mar 5, 2015

3. Amusement system based on unmanned aerial vehicle technology and head movement capture technology

CN 204406207 U Applicant

·
·
·
Jun 17, 2015

4. UAV deployment and control system

US 20150321758 A1 Original Assignee
Christopher S
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
Apr 1, 2015

7. Multi-channel image display method supporting video superposition for ground control station of unmanned aerial vehicle

CN 104394387 A Applicant

·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
Mar 4, 2015

8. Method and device for controlling and monitoring the surrounding areas of an unmanned aerial vehicle (uav)

US 20140257596 A1 Original Assignee
Prox Dynamics As
Sep 11, 2014

9. Ground station control system for universal unmanned aerial vehicle

CN 104503460 A Applicant

·
·
·
·
·
·
Apr 8, 2015


Продолжение таблицы 1
10. Unmanned plane projection displaying method, unmanned plane projection displaying system and unmanned plane projection displaying device

CN 104702871 A Applicant

·
·
·
·
·
·
·
·
Jun 10, 2015

11. Electron flying instruments system of unmanned plane ground satellite station 

CN 204515875 U Applicant

·
·
·
·
·
·
·
·
·
·
·
·
Jul 29, 2015

12. User interface for displaying internal state of autonomous driving system 

US 8352110 B1 Original Assignee
Google Inc.
Jan 8, 2013

13. Mission planning interface for accessing
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·

Sep 24, 2014

17. Aerial photography imaging and controlling device 

CN 103955228 A Applicant

·
·
·
·
·
·
Jul 30, 2014

18. Universal ground monitoring system for unmanned aerial vehicle 



Окончание таблицы 1
CN 104460474 A Applicant

·
·
·
·
·
·
Ma
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·nal Assignee
David Wagreich
Nov 6, 2014

1.5 Требования к разрабатываемому интерфейсу
Исходя из целей, поставленных при разработке данной ИС, были выведены основные технические требования.
Система должна иметь:
1. Настройку и конфигурирование аппарата° для оптимальной производительности.
2. Планировать, сохранять и загружать автономные миссии в автопилот с простого ввода точки пути точку и нажмите на Google или других карт.
3. Скачать и анализировать журналы миссии, созданные вашим автопилоте.
4. Отображать полет аппарата на ПК.
5. Контролировать состояние автопилота во время работы.
6. Документировать записи с телеметрии, содержащиеся в журнале автопилота.
7. Просматривать и анализировать журналы телеметрии.
8. Осуществлять просмотр в FPV (Вид от первого лица)
Разрабатываемая модель должна быть практичной и в дальнейшем легка в модернизации.
Иметь читабельный структурированный код, во избежания дальнейших проблем с пониманием.
1.6 Выводы по разделу
В данном разделе квалификационной работы были рассмотрены общие сведения о разрабатываемой ИС интерфейса БПЛА. Были рассмотрены и проанализированы основные аналоги разрабатываемого комплекса. Так же были рассмотрены и проанализированы патенты, свидетельства, лицензии и другие правоохранительные документы, относящиеся к выбранной области. В подразделе 1.4 были выведены основные технические требования к разраб. ИС. 2. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
2.1 Общие сведения
Перед началом разработки собственного интерфейса и алгоритмов к ним необходимо провести анализ моделей-конкурентов. После чего следует разработать требования к разрабатываемому БПЛА и только после этого приступать к разработке собственной модели БПЛА.
В подразделе 2.2 осуществлена разработка моделей “as-is”. В подразделе 2.3 была проведена разработка следующих моделей для проектируемого БПЛА:
Диаграмма вариантов использования;
Диаграмма активности;
Диаграмма состояний;
Диаграмма развертывания
Диаграмма коммуникации
В подразделе 2.4 написаны основные выводы по разделу.
2.2 Разработка моделей “as-is” ИС
Из анализа, проведенного в разделе 1, была составлена диаграмма вариантов использование. В данной диаграмме отображены основные варианты использования интерфейса направленного на мониторинг БПЛА. Диаграмма описывает систему связей между пользователем, летательным аппаратом, интерфейсом, т.е передачу информационных данных между ними.

Рисунок – Диаграмма вариантов использования
Актер «Интерфейс» содержит в себе алгоритмы автопилотирования, для избегания аварийных ситуаций в некоторых случая и также для полета неким курсом заданным пользователем без его собственного управления полетом в дальнейшем. Интерфейс принимает данные от БПЛА и отправляй в след ему команды, если они были заложены в ожидание программы. В свою очередь БПЛА отправляет данные с датчиков на интерфейс, что позволит пользователю вести мониторинг происходящего на борту устройства. Также «Интерфейс» содержит навигационную структуру в виде карт, которые облегчат ориентировочное положения полетного аппарата. В свою очередь пользователю предоставляется возможность управлять БПЛА, осуществлять вкл/устройства, некоторых его функций, анализировать происходящее, суммировать результаты работы аппарата. Если пользователь является «продвинутым», то у него есть возможность просмотра логов программы для глубоко анализа ситуаций и работы программы.
В разработке таких структур чаще всего учувствуют несколько разработчиков и как правило они распределены на отдельные категории разработки. При разработке систем управления БПЛА происходит тоже самое. Для понимания данного процесса была составлена диаграмма коммуникаций.

Рисунок – Диаграмма коммуникаций
Как правило, такая система разделена на «Программных инженеров» и «Технических инженеров».
Программный инженер при составлении спецификаций на свою программу является зависимым от типа оборудования и регламентаций к программному обеспечению. В свою очередь технический инженер, как правило, не имеет нужды в сильной необходимости в изучении регламентаций на программное обеспечений, и направлен в прежнюю очередь на техническую сторону вопроса.
Современные системы БПЛА имеют сходную структуру, приведенную в диаграмме развертывания, ниже.
13 EMBED PowerPoint.Slide.12 1415
Рисунок – Диаграмма развертывания

2.3 Разработка моделей “to-be” информационной системы
На основе разработанных требований к проектируемой информационной системе и анализе была осуществлена разработка ряда диаграмм (Диаграмма состояний, диаграмма активности).

Рисунок – Диаграмма активностей
В диаграмме активности был описан общий алгоритм работы будущей программы. Начало происходит с проверки на поступления данных интерфейсу. В случае, если к программе не поступают данные от клиента, то сервер находится в ожидании приема/бездействует. Если данные поступили от клиента, то полагается их прием, далее распределение их в надлежащем формате, обработка их в соответствие с алгоритмами описанными внутри программы, дальнейшему распределению классам Paint и затем уже предоставить графическую реализацию происходящего.

Рисунок – Диаграмма состояний
В диаграмме состояний главным состоянием является запуск TCP сервера, при его запуске осуществляется прием данных по TCP каналу их передача классам графических объектов. При Видео-потоке осуществляется прием данных видео-формата, ее буферизацию и вывод изображения.
2.4 Выводы по разделу
. В данном разделе квалификационной работы была осуществлена разработка моделей “as-is” интерфейса БПЛА. Была разработана модель Use-Case средствами языка UML данной ИС. На основе разработанных моделей “as-is” был создан список программных модулей для разрабатываемого устройства и перечень необходимого функционала для каждого модуля. После чего на основе разработанных требований для разрабатываемого устройства была осуществлена разработка следующих моделей “to-be”:
Диаграмма вариантов использования;
Диаграмма активности;
Диаграмма состояний;
Диаграмма развертывания
Диаграмма коммуникации
Таким образом, были осуществлены анализ и разработка моделей и требований информационной системы контроля и алгоритмизации интерфейса БПЛА, способствующий мониторингу за оным. Всё это необходимо для перехода к самой разработке управления ИС. 3 ТЕХНИЧЕСКОЕ РЕШЕНИЕ
3.1 Общие сведения
Как уже говорилось ранее, интерфейс позволяет пользователю более детально получать информацию о происходящем, а также снимать необходимость нахождения пользователя на борту летательного аппарата. Именно по этим двум ключевым причинам создания таких интерфейсов является актуальной работой. Для того чтобы такой интерфейс был успешным он должен включаться в себя основную информацию о ЛА, происхождении вокруг него, алгоритмах его действия, характеристиках.
В рамках данной квалификационной работы был создан интерфейс позволяющий получать наиболее необходимую информацию в надлежащем зрительном формате.
Рисунок – Интерфейс БПЛА

Интерфейс программы состоит из следующих элементов:
1. Tcp сервер
2. Видео-поток
3. Индикатор угла поворота и вертикальной скорости
4. Индикатор скорости
5. Индикатор высоты
6. Индикатор путевой скорости
7. Индикатор абсолютной высоты
8. Индикатор направления поворота
9. Компас
10. Отображение времени
Каждый элемент имеет свой собственный класс и методы, которые описывают работу данного содержания. Диаграмма классов была приведена в приложении.
Запуск программы осуществляется путем нажатия кнопки “Start Server”. После чего, в нашем случае, данные поступают из Flightgear, распределяются по классам графических объектов и обрабатываются соответствующим образом.
3.2 Flightgear
Flightgear – это авиасимулятор, созданный международной группой добровольцев, и сделанный бесплатным с открытым кодом GPL программным обеспечением.
Это симулятор был выбран, фактически, по двум критериям:
1) Он бесплатный
2) Он достаточно реалистичный
Как и любой авиасимулятор, данный симулятор позволит извлекать данные в реальном времени из него и производить симуляцию действия программы, т.е. тестировать программу без нужды использования железа. Следовательно, не будет нужды в использовании реального оборудования, достаточно будет лишь извлечь данные из Flightgear.
[ Cкачайте файл, чтобы посмотреть картинку ]
Рисунок – Flightgear
Перед тем как запускать данный симулятор, требуется выбрать модель самолета. Программа предоставляет на выбор уже внутревложенные модели, либо возможность импортирования своих моделей из вне.

Рисунок – Выбор модели самолета
Для того чтобы взять данные из программы требуется настроить процесс вывода информации из FG(Flightgear). Чтобы это сделать перед началом запуска симуляции выбрать в Advanced options->Input/Output настройки протокола, который в данной программе имеет формал XML.

Рисунок – Настройка параметров вывода данных
Программа так же предлагает уже прописанные XML файлы с выводом определенных характеристик.

Рисунок – Xml протоколы
Исходники файлов находятся в категории C:\FlightGear\data\Protocol.
Рисунок – Расположение протоколов
Для того чтобы работать с данными файлами требуется определенная вида программа, в рамках данной работы была использована EditiX 2010.
Рисунок - EditiX 2010
Структура вывода единичного параметра
Приложение

1
float
%.2f
/orientation/roll-deg

Поле отвечает за обозначение объекта в структуре. Поле присваивает переменной тип. Поле способствует выбору кол-ва знаков после запятой и формату значения. Поле / отвечает за выбор директории, где находится данный параметр. В приложении roll-deg – это угол поворота.
Для того чтобы узнать какие параметры может передавать тот или иной летательный аппарат необходимо во время работы самой программы пойти следующим путем Debug -> Internal Properties (как показано на рисунке).
Рисунок – Параметры полета
Таким образом возможно будет прописать в XML файл параметры, которые FG будет передавать с определенной частотой по TCP каналу каждый раз, когда симуляция находится в активном режиме.

3.3 TCP канал связи
Для того чтобы дать возможность посылать Flightgear данные на саму программу, требуется создать канал связи между ними. Такую связь более рационально осуществить по TCP протоколу. TCP связь работает по принципу клиент -> сервер и наоборот. В нашем случае клиентом будет являться FG, который будет отправлять данные на сервер, а сервером будет являться программа в которой будет вложен сервер. Следовательно, запуск сервера в самой программе сопутствует началу работы интерфейса.
Элементами, принадлежающие серверу, являются Textbox, button “Start Server”.

Рисунок – Элементы TCP server
Нажатие на Start Server приводит к запуску сервера и приему данных от FlightGear. Данные которые поступают от него отображаются в TextBox.
В коде программы данная часть выделена регионом “ TcpServer”.
Структура кода разделена на 4 метода:
TcpServerRun
TcpHandler
updateUI
bStartServer_Click_1
TcpServerRun метод является основным методом этого кода и отвечает за запуск всех отдельных методов вместе и выглядит следующем образом:
Приложение
private void TcpServerRun()
{
TcpListener tcpListener = new TcpListener(IPAddress.Any, 2200);
//IPEndPoint.IPEndPoint tcpListener = new IPEndPoint(IPAddress.Any, 5004);
tcpListener.Start();
updateUI("Listening");
while (true)
{
TcpClient client = tcpListener.AcceptTcpClient();
updateUI("Connected");
Thread tcpHandlerThread = new Thread(new ParameterizedThreadStart(tcpHandler));
tcpHandlerThread.Start(client);
}
}
TcpHandler метод, который работает с клиентом сервера и обрабатывает данные пришедшие ему из. Он выглядит следующим образом:


Приложение
private void tcpHandler(object client)
{
String rxstring;

byte[] datalength = new byte[1024];
TcpClient mClient = (TcpClient)client;
NetworkStream stream = mClient.GetStream();
while (true) {
byte[] message = new byte[1024];
//string[] maindata = { "0", "0", "0", "0", "0", "0", "0" };
stream.Read(message, 0, message.Length);
rxstring = Encoding.ASCII.GetString(message);
maindata = rxstring.Split('\n','\r');
maindata[0] = String.Join("\r", maindata[0].Split('V', '='));
maindata[1] = String.Join("\r", maindata[1].Split('H', '='));
maindata[2] = String.Join("\r", maindata[2].Split('A', '='));
maindata[3] = String.Join("\r", maindata[3].Split('R', '='));
maindata[4] = String.Join("\r", maindata[4].Split('P', '='));
maindata[5] = String.Join("\r", maindata[5].Split('B', '='));
maindata[6] = String.Join("\r", maindata[6].Split('E', '='));
rxstring = String.Join(" \n",maindata);
updateUI(rxstring);
Invalidate();

}

}
updateUI метод носит в себе характеристику обновления информации в TextBox. Выглядит следующим образом:
Приложение
private void updateUI(string s)
{
Func del = delegate()
{
textBox8.AppendText('\r' + s + System.Environment.NewLine);
return 0;
};
Invoke(del);
}
bStartServer_Click_1 метод способствует запуску сервера. Выглядит следующим образом.
Приложение
private void bStartServer_Click_1(object sender, EventArgs e)
{
Thread tcpServerRunThread = new Thread(new ThreadStart(TcpServerRun));
tcpServerRunThread.Start();
}



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

Рисунок – Панель видео-отображения

3.5 Графические детали
3.5.1 Индикатор угла поворота и вертикальной скорости
3.5.2 Индикатор скорости
3.5.3 Индикатор высоты
3.5.4 Индикатор путевой скорости
3.5.5 Индикатор абсолютной высоты
3.5.6 Компас
3.5.7 Индикатор направления поворота
3.5.6 Отображение времени
3.6 Математическое обеспечение разрабатываемого ПО
Для того чтобы графические элементы вели себя определенным образом, необходимо написать математические алгоритмы действия отдельных элементов графической структуры. В частности, наша программа включает элементы подверженные повороту и перемещению.
Реализация данных структур включает две основных зависимости:
Во-первых, вращение PaintEventArgs системы координат происходит вокруг верхнего левого угла области рисования.
Во-вторых, нанесение изображения корректируется смещением по осям, в частности для изображения картины, как если бы оно было повернуто вокруг заданной пользователем точки.
[ Cкачайте файл, чтобы посмотреть картинку ]
Рисунок – Зависимости
Для более глубоко понимания данного процесса был приведен пример работы данных изменений.

Следующий рисунок включает геометрические объяснение.
Рисунок – Геометрическое представление
G0 является определенным пользователем центром вращения.
G1 является позиция G0 после шага.
Целью является определить переход G1G0 и применить соответствующее смещение, чтобы применить точку поворота.
Таким образом:
Приложение
[ Cкачайте файл, чтобы посмотреть картинку ]
[ Cкачайте файл, чтобы посмотреть картинку ]
deltaX = (float)(d * (Math.Cos(alpha - beta) - Math.Cos(alpha)* Math.Cos(alpha + beta) - Math.Sin(alpha) * Math.Sin(alpha+ beta)));
deltaY = (float)(d * (Math.Sin(beta - alpha) + Math.Sin(alpha)* Math.Cos(alpha + beta) - Math.Cos(alpha) * Math.Sin(alpha + beta)));
Параметры, которые были использованы при написание алгоритмов:
"pe": Область рисования, в которой будет отображаться изображение
"img": Изображение, которое будет отображаться
"alpha": Угол поворота в радианах
"ptImg": Расположение верхнего левого угла изображения
"ptRot": Расположение точки вращения
"scaleFactor": Коэффициент увеличения изображения

3.7 Тестирование

3.8 Выводы по разделу



ЗАКЛЮЧЕНИЕ


В рамках выпускного квалификационного проекта необходимо было провести анализ и разработку информационной системы БПЛА. Анализ предметной области показал присутствие некоторого количества аналогов разрабатываемой информационной системы.
В рамках проектирования выпускной квалификационной работы было необходимо разработать ряд диаграмм проектируемой системы на языке UML. Были разработаны следующие диаграммы: диаграмма вариантов использования, диаграмма активности, диаграмма состояний, диаграмма развертывания, диаграмма Ишикавы, Диаграмма бизнес-процессов Ericson-Penker, диаграмма бизнес-процессов, диаграмма связей, диаграмма Ганта. Также был разработан макет рабочего приложения.
По итогам выпускной квалификационной работы можно сделать вывод, что задачи выпускной квалификационной работы выполнены полностью. Был проведен анализ предметной области. Были разработаны и проанализированы UML диаграммы, было проведено экономическое основание эффективности разрабатываемой системы.
В дальнейшем будет разработана система функционирования. Увеличение функциональности и стабильности работы системы.





















ПРИЛОЖЕНИЕ 1.
Диаграмма вариантов использования (use case diagram)









13 PAGE \* MERGEFORMAT 14615


13 PAGE \* MERGEFORMAT 142715








































































Приложенные файлы

  • doc 18241192
    Размер файла: 4 MB Загрузок: 0

Добавить комментарий