- •Аннотация
- •Содержание
- •Введение
- •Глава 1. Исследовательский раздел
- •Научная новизна и актуальность работы
- •Анализ современных методов построения авиационных маршрутов
- •Обзор существующих аналогов
- •4. Бпла delta-m (российская разработка)
- •5. Agisoft Metashape (ранее PhotoScan)
- •Постановка задачи
- •Описание модели взаимодействия пользователей с веб-интерфейсом
- •1. Общая структура интерфейса
- •2. Сценарии взаимодействия
- •Интеграция геопространственных данных в системы управления бпла
- •Перспективные направления исследований
- •Обзор структуры беспилотника
- •1. Входы (куда Pixhawk получает информацию)
- •2. Выходы (куда Pixhawk отправляет команды)
- •Глава 2. Реализация
- •2.1. Техническое задание
- •2.2. Построение ортодромии и локсодромии
- •2.3. Ручной ввод координат и параметров полета
- •1. Механизм ввода координат
- •2. Параметры полета
- •4. Обработка ошибок
- •2.4. Генерация kmz-файлов
- •2.5. Проверка пересечений с запретными зонами
- •1. Клиентская часть (JavaScript):
- •2. Серверная часть (Python/Flask):
- •2.6. Подключение и обзор беспилотника
- •2.7. Сервис высот
- •Глава 3. Испытательный раздел
- •3.1. Тестирование работы алгоритмов для программного комплекса на беспилотнике Holybro x500
- •3.2. Составление тест-кейсов для алгоритмов в совокупности с программным комплексом
- •3.3. Результаты тестирования
- •3.4. Опытная эксплуатация
- •Заключение
- •Список сокращений
- •Список использованных источников
2.7. Сервис высот
Реализованные функции
Интерфейс сервиса высот (рис. 2.7.1)
Рисунок 2.7.1 Интерфейс сервиса высот
Интеграция с DEM-данными Используется растровый файл, который мы добавляем в каталог программы Pycharm (рис. 2.7.2), (data/dem.tif) для получения высотных отметок.
Рисунок 2.7.2 Добавление файла высот
Поддержка WKT-форматов Обработка двух типов объектов:
POINT(lon lat) → POINT(lon lat elevation) #к координатам добавляется высота
LINESTRING(lon1 lat1, lon2 lat2) → LINESTRING(lon1 lat1 elev1, lon2 lat2 elev2) #аналогично
Визуализация границ DEM Возвращает метаданные DEM:
{
"dem_bounds": {
"left": 35.0,
"right": 40.0,
"bottom": 55.0,
"top": 60.0
}
}
Географические преобразования Конвертация координат между системами:
transform('EPSG:4326', dataset.crs, [lon], [lat])
Технологический стек сервиса высот (таб. 2.7.1).
Таблица 2.7.1 Технологический стек сервиса
Компонент |
Технологии |
Назначение |
Серверная часть |
Flаsk, rasterio, Shapely |
Обработка WKT, работа с DEM-данными |
Клиентская часть |
Яндекс.Карты, HTML/JS |
Визуализация точек, ввод WKT |
Данные |
GeoTIFF (.tif) |
Растровая модель рельефа |
Передача данных |
REST API |
Передача WKT и результатов |
Блок-схему алгоритма сервиса высот можно увидеть в приложении 4.
Глава 3. Испытательный раздел
3.1. Тестирование работы алгоритмов для программного комплекса на беспилотнике Holybro x500
Тестирование алгоритмов для программного комплекса проводилось с целью верификации его функциональности, соответствия требованиям технического задания (раздел 2.1) и обеспечения надежности в реальных условиях эксплуатации. Основные этапы и методы тестирования включали:
Цели и задачи тестирования
Проверка корректности работы алгоритмов построения ортодромии и локсодромии, а также дальнейшее использование алгоритмов для программного комплекса на реальном БПЛА.
Оценка точности интеграции геопространственных данных (DEM) и коррекции высоты.
Верификация алгоритмов обхода запретных зон.
Проверка генерации KMZ-файлов и их совместимости с GIS-системами.
Тестирование взаимодействия с БПЛА через протокол MAVLink.
Оценка производительности системы (время расчета маршрутов, обработка ошибок).
Методология тестирования
Модульное тестирование (Python unittest):
Проверка функций расчета координат ортодромии (geod.npts), валидации входных данных, преобразования систем координат.
Интеграционное тестирование:
Проверка взаимодействия пользовательского интерфейса (Yandex Maps API) и серверной части (Flask): передача координат, отображение маршрутов, динамическая коррекция при добавлении запретных зон.
Тестирование интеграции с DEM: корректность поднятия высоты маршрута на основе GeoTIFF.
Системное тестирование:
Проверка полного цикла: от ввода координат до передачи параметров полета на БПЛА через MAVLink.
Использование Беспилотника Holybro X500 для полета по заданному маршруту.
Нагрузочное тестирование:
Измерение времени расчета маршрутов для дистанций 100–1000 км (критерий: ≤3 сек).
Ключевые тестовые сценарии
Построение маршрутов:
Ввод корректных/некорректных координат (например, широта >90°).
Сравнение длины ортодромии и локсодромии для одних и тех же точек.
Обход запретных зон:
Добавление полигона, пересекающего маршрут → проверка автоматической коррекции траектории.
Оценка точности алгоритма (≥90% случаев отсутствия пересечений).
Генерация KMZ-файлов:
Проверка структуры KML и корректности координат в Google Earth.
Обработка ошибок при отсутствии данных (возврат HTTP 400).
Интеграция с БПЛА:
Передача параметров полета (скорость, высота) через MAVLink.
Результаты тестирования
Производительность:
Среднее время расчета маршрута (1000 км) — 2.9 сек.
Точность обхода запретных зон — 90% (на основе 50 тестовых случаев). Чем сложнее фигура, тем больше появляется сложностей с обходом зоны.
Совместимость:
Успешная передача KMZ-файла на беспилотник по USB.
Успешный полет по заданному файлу маршрута.
Успешная интеграция с БПЛА через MAVLINK.
Поддержка DEM-файлов разрешением до 1 м/пиксель (формат GeoTIFF).
Обработка ошибок:
Выявление и исправление проблем с преобразованием координат в WGS84.
Устранение утечек памяти при работе с большими DEM-файлами.
Выводы
Алгоритмы для программного комплекса успешно прошли все этапы тестирования, подтвердив соответствие требованиям технического задания. Наибольшие усилия потребовались для оптимизации алгоритмов обхода запретных зон и интеграции с MAVLink. Результаты демонстрируют готовность системы к применению в реальных сценариях, таких как мониторинг ЧС или сельскохозяйственные работы. Дальнейшие улучшения могут быть направлены на снижение времени расчета для сверхдлинных маршрутов (>1500 км).
