Добавил:
ИВТ (советую зайти в "Несортированное")rnПИН МАГА Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Баранов_В_С_Пояснительная_записка.docx
Скачиваний:
45
Добавлен:
03.07.2025
Размер:
9.83 Mб
Скачать

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 км).