# ТЗ по прототипу АРМ оператора БПЛА
[TOC]
# Оперативная информация
* Доска задач: https://trello.com/b/uMMlwtXh/%D0%B0%D1%80%D0%BC-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0-%D0%BD%D1%81%D1%83
* Хранилище: https://disk.yandex.ru/d/V8qk_XE9lboBBw
* База знаний: https://hackmd.io/@Deffy/HJRopyk25/edit
* Репозиторий: https://github.com/Metafiz/uav-ground-control-station
# Список незакрытых вопросов
*
# Перечень терминов и сокращений
* API – интерфейс прикладного программирования
* АРМ – автоматизированное рабочее место
* БД – база данных
* БПЛА – беспилотный летательный аппарат
* ИС – информационная система
* ЛВС – локальная вычислительная сеть (также LAN)
* НСУ – наземная станция управления
* ПДУ – пульт дистанционного управления БПЛА
* ПК – полётный контроллер (автопилот)
* ПО – программное обеспечение
* СУБД – система управления базами данных
* ТЗ – техническое задание
* WP – way point: целевая (маршрутная) точка (геоточка)
* Система - ПО системы АРМ оператора НСУ
* Миссия - полётное задание
* ARM - ARMING, "снятие с предохранителя", выставляет относительную высоту в 0
* DISARM - "установка на предохранитель"
* SNR
* ПВД - датчик приемника воздушного давления, трубка Пито
# Требования к ПО системы
ПО системы АРМ оператора НСУ должно быть кросс-платформенным и выполняться на компьютерах с ОС Windows и Linux актуальных версий.
Система должна быть защищена от несанкционированного доступа с помощью механизма аутентификации (ввода логина и пароля пользователя).
# Функциональные требования
## Подготовка БПЛА к запуску
1. Минимальная необходимая подготовка
* Подключение к ПК
* Калибровка компаса
* Калибровка датчика ПВД
2. Определение параметров:
* статус подключения к ПК
* высота
* количество спутников
* текущие GPS координаты
* уровня сигнала от ПДУ - RC
* уровень сигнала с наземной станцией - RSSI
* воздушная скорость
* наземная скорость - GS
* заряд батареи(вольты)
* потребление батареи (амперы)
* полетный режим
* курс (0-360)
* тангаж
* крен
* рысканье
* статус ARM/DISARM
* расстояние до земли SNR, м
* уровень газа - Throttle, %
Значение каждого параметра считывается с ПК и отображается в интерфейсе АРМ в текстовом или графическом виде согласно макетам:


## Формирование и загрузка полётного задания
Полётное задание представляет собой последовательность целевых точек (WP) маршрута, а также их параметры и действия БПЛА в момент достижения этих точек.
Перечень функций:
1. Реализовать подключение провайдера интерактивной карты - Яндекс.Карты и режимов его работы: схема, спутник, гибрид.
> Не войдет в рамки прототипа:
> * другие провайдеры карт (Google Maps, OpenStreetMap, Maps.me).
> * оффлайн доступ к картам
2. Расположение WP на карте: широта, долгота, высота. На каждый WP можно навесить одну команду.
Список команд WP и их параметры:
* взлёт - takeoff (угол тангажа)
* посадка - land
* изменение скорости - do_change_speed (режим: air/ground speed, скорость м/с, % газа)
* выброс парашюта - do_parachute (флаги: enable, release)
3. Автоматическая проверка параметров WP.
5. Загрузка полётного задания в ПК БПЛА. Контроль загрузки – проверка корректности записи всех WP (путём считывания из ПК и сравнения с данными, введёнными оператором).
6. Импорт и экспорт полетного задания в формате json. Формат файла соответствует экспортированному файлу json миссии ПО Mission Planner или аналогичного.
Макет:

## В процессе полета
1. Отслеживание параметров полета в реальном времени в режиме read-only:
* статус подключения к ПК
* высота
* количество спутников
* текущие GPS координаты
* уровня сигнала от ПДУ - RC
* уровень сигнала с наземной станцией - RSSI
* воздушная скорость
* наземная скорость - GS
* заряд батареи(вольты)
* потребление батареи (амперы)
* полетный режим
* курс (0-360)
* тангаж
* крен
* рысканье
* статус ARM/DISARM
* расстояние до земли SNR, м
* уровень газа - Throttle, %