Сценарии использования¶
Конкретные задачи, которые решают в Аэрозвено: кто решает, что нужно получить, какие шаги пройти в интерфейсе или API и что получится. Большинство случаев разобраны на встроенных демо-сценариях: их можно открыть на стартовом экране и повторить.
Откуда числа
Числа ниже — прогоны планировщика и валидатора текущего выпуска на демо-сценариях 29.09.2026
(зерно 42, ветер — из сценария, без прогноза). Рельеф в этих прогонах не подключён, поэтому
в каждом плане есть предупреждение TERRAIN_UNKNOWN, а в отчёте — G2-04. У вас числа могут
немного отличаться, если включён прогноз ветра или изменён лимит времени.
Демо-сценарии¶
Все демо-сценарии синтетические: районы условные, площадки и парк придуманы для проверки правил.
| ID | Что проверяет | Участки | Парк | Особенность |
|---|---|---|---|---|
| s01 | один борт, участок 1×1 км | 1 RGB, GSD 3 см | Gemini | эталон арифметики: высота 153 м, выше 150 м — предупреждение ИВП |
| s02 | бесполётная зона в невыпуклом участке | 1 RGB, GSD 5 см | Gemini | обход зоны 0–500 м |
| s03 | несколько площадок | 1 RGB, GSD 3 см | 3 × Gemini | две площадки на противоположных концах |
| s04 | разнотипный парк на большом полигоне | 1 RGB, GSD 5 см | 201, Gemini, 801 | основную работу должен взять самолёт 201 |
| s05 | разные типы съёмки | RGB (3 см) и ИК (15 см) | Gemini + камера, 801 + тепловизор | совместимость нагрузки |
| s06 | ветер 8 м/с | как s01 | Gemini | снос и дополнительные вылеты |
| s07 | граничный запас хода | 1 RGB, ≈ 8 км² | Gemini, площадка далеко | много вылетов |
| s08 | недостижимый GSD | 1 RGB, GSD 0,5 см | 201 | ожидаемая ошибка GSD_UNREACHABLE |
| s09 | ветер 11 м/с выше предела части парка | 1 RGB, GSD 5 см | 201, Gemini, 801 | в расчёте остаётся только 201 |
| s10 | выбытие борта | большой полигон | 201, Gemini, 801 | пересчёт после отказа |
| s11 | парк из 10 бортов | 4 участка: RGB, ИК, мультиспектр | 3 модели, 10 бортов, 3 площадки | демо стартового экрана |
| s12 | парк из 20 бортов | 6 участков | 20 бортов, 4 площадки | масштабирование |
| s13 | самолёт с взлётно-посадочной полосой | 1 RGB, GSD 5 см | Penguin B | полоса 600 × 30 м |
1. Один участок, один борт¶
Кто: оператор съёмки, который впервые открывает сервис. Цель: получить маршрут ПАФС для поля 1×1 км с GSD 3 см и выгрузить его в KML.
Шаги в интерфейсе:
- «Сценарии» → строка s01 → «Открыть».
- «Область съёмки и парк»: проверьте участок (RGB, GSD 3 см), борт
gemini-01и площадку. - «Рассчитать».
- «План полётов»: галсы на карте, диаграмма Ганта, «Протокол решений».
- «Отчёт валидатора» → «Экспорт» → KML.
Результат: высота съёмки 153 м (из GSD и камеры), один вылет, время работ 00:27:38, покрытие 100 %. План допущен; предупреждение G1-05 — высота выше 150 м, нужно разрешение на ИВП. Интерфейс предлагает ослабить GSD до значения, при котором высота будет не выше 150 м.
2. Несколько площадок и выбор, откуда лететь¶
Кто: руководитель работ с двумя точками базирования. Цель: распределить полосу ≈ 3×1 км между тремя бортами на двух площадках.
Шаги: откройте s03; на экране «Область съёмки и парк» в разделе «Площадки» видны «ВПП запад» и «ВПП восток»; у каждого борта — домашняя площадка. Нажмите «Рассчитать».
Результат (критерий «время работ»): три борта, три вылета, время работ 00:13:08, суммарный налёт 00:38:30, покрытие 100 %. Между вылетами борт может сесть на ближайшую подходящую площадку, если так короче подлёт к следующим галсам. Валидатор допускает план и предупреждает о сближении бортов в воздухе (G7-01) — его можно убрать разведением по высоте или времени (случай 16).
3. Выбор критерия: время работ или суммарный налёт¶
Кто: руководитель, который решает, что дороже — простой бригады или моторесурс. Цель: сравнить два плана на одном сценарии.
Шаги: откройте s03 и рассчитайте дважды: с критерием «Время работ» и «Налёт» (переключатель в блоке «Критерий оптимизации»). Для полной картины откройте «Мультикритериальный анализ».
| Критерий | Время работ | Суммарный налёт | Бортов | Вылетов |
|---|---|---|---|---|
Время работ (makespan) |
00:13:08 | 00:38:30 | 3 | 3 |
Суммарный налёт (total_flight_time) |
00:18:07 | 00:35:26 | 2 | 2 |
Результат: по критерию «время работ» бригада заканчивает на 27 % раньше, но суммарный налёт на
9 % больше и занят третий борт. Через API —
поле objective запроса POST /api/plans.
4. Бесполётная зона внутри участка¶
Кто: оператор, у которого в районе работ есть запретный объект. Цель: снять невыпуклый участок в обход зоны 0–500 м.
Шаги: откройте s02; на экране «Воздушное пространство и БПЗ» видна зона с высотным слоем и буфером 25 м. Рассчитайте план.
Результат: галсы режутся по зоне с буфером, перелёты обходят её по кратчайшему пути вокруг контура. Покрытие доступной части — 99,96 %, время работ 00:17:19, заходов в зону нет (G1-01).
Известный дефект выпуска
Сейчас валидатор не допускает план s02 по проверке G6-05 (поперечное перекрытие с учётом ветра на коротких галсах у зоны). Сам маршрут в зону не заходит; дефект в работе.
5. Граница разрешённого воздушного пространства¶
Кто: оператор, которому согласовали только часть неба. Цель: убедиться, что съёмка и развороты не выходят за границу.
Шаги: на экране «Воздушное пространство и БПЗ» задайте контур разрешённого пространства (вершины, азимуты, длины сторон). Площадки должны быть внутри — площадка снаружи помечается предупреждением.
Результат: часть участка за границей не снимается (TASK_OUTSIDE_AIRSPACE), развороты
выносятся или укорачивают галсы, чтобы не выйти наружу. Перелёты границу не обходят — если
перелёт вышел за неё, план получит нарушение, а валидатор — G1-02 (см.
Правила).
6. Разнотипный парк на большом полигоне¶
Кто: подрядчик с самолётом и мультироторами. Цель: снять крупный полигон так, чтобы каждый борт делал то, что у него получается лучше.
Шаги: откройте s04 (самолёт 201, Gemini, 801 на одной площадке) и рассчитайте.
Результат: полигон режется на полосы пропорционально производительности бортов; самолёт с запасом хода 180 мин берёт основную работу, мультироторы — ближние полосы. На стенде план допущен, время работ ≈ 27:22:43 — это многодневная работа, видно по диаграмме Ганта.
7. Разные типы съёмки на одном районе¶
Кто: агроном, которому нужны RGB и ИК. Цель: снять два перекрывающихся участка разными камерами.
Шаги: откройте s05: участок RGB с GSD 3 см и участок ИК с GSD 15 см; Gemini с камерой и 801 с тепловизором. Рассчитайте.
Результат: каждый участок назначается только бортам с подходящей установленной нагрузкой
(проверка G5-01). Если нагрузки нет ни у одного борта, галсы уходят в нераспределённые с причиной
no_compatible_payload, а в карточке борта — «Нагрузка не подходит ни к одному участку».
8. Сильный ветер¶
Кто: оператор в ветреный день. Цель: понять, сколько вылетов займёт тот же участок при ветре 8 м/с.
Шаги: откройте s06 (участок как в s01, ветер 8 м/с с запада). Рассчитайте и сравните с s01.
| Сценарий | Ветер | Вылетов | Время работ | Налёт |
|---|---|---|---|---|
| s01 | 0 | 1 | 00:27:38 | 00:27:38 |
| s06 | 8 м/с | 3 | 01:36:23 | 01:16:23 |
Результат: снос сужает шаг галсов (галсов становится больше), путевая скорость против ветра падает — работа не помещается в один вылет. Время работ больше налёта на два оборота между вылетами (по 10 мин).
9. Ветер выше предела части парка¶
Кто: оператор, у которого часть бортов не летает в такой ветер. Цель: узнать, кто может работать при 11 м/с.
Шаги: откройте s09 (201, Gemini, 801; ветер 11 м/с). В карточках Gemini и 801 — предупреждение «борт выбывает по ветру». Рассчитайте.
Результат: в расчёт идёт только самолёт 201 (предел 12 м/с), высота для его камеры при GSD 5 см — 388 м. Время работ 00:52:05, один вылет. Причина исключения остальных — в «Протоколе решений», раздел «Борта вне расчёта».
10. Много вылетов: граничный запас хода¶
Кто: оператор, у которого площадка далеко от участка. Цель: увидеть, как работа нарезается на вылеты.
Шаги: откройте s07 (Gemini, участок ≈ 8 км², площадка на удалении). Рассчитайте.
Результат: каждый вылет укладывается в 40 мин × (1 − 20 %), между вылетами — оборот на площадке.
Длинный галс, не влезающий в вылет, делится. На стенде план допущен, время работ ≈ 18:49:01.
Угол галсов сильно влияет на число вылетов при дальнем подлёте — поэтому планировщик уточняет его
целыми планами (см. Правила).
11. Недостижимое требование к качеству¶
Кто: заказчик, который просит GSD 0,5 см. Цель: узнать заранее, выполнимо ли это.
Шаги: откройте s08 и нажмите «Рассчитать».
Результат: расчёт сразу отклоняется с кодом GSD_UNREACHABLE: высота для такого GSD ниже
минимальной безопасной высоты борта. Что делать: ослабить GSD, сменить нагрузку или борт.
12. Выбытие борта и пересчёт¶
Кто: руководитель работ, у которого борт сломался в поле. Цель: перераспределить оставшиеся галсы на остальные борты.
Шаги в интерфейсе: откройте s10, рассчитайте, на экране «План полётов» нажмите кнопку с молнией у выбывшего борта — «смоделировать выбытие» — и подтвердите пересчёт.
Через API:
curl -sS -X POST "$BASE/api/plans/$PLAN_ID/replan" -H 'content-type: application/json' \
-d '{"exclude_uav_ids":["gemini-01"]}'
Результат: новый план (новый planId) без выбывшего борта; его галсы распределены между
остальными.
13. Большой парк¶
Кто: оператор, у которого 10–20 бортов и несколько площадок. Цель: получить план за разумное время.
Шаги: на стартовом экране выберите «Демо-сценарий» (s11: 10 бортов трёх моделей, 4 участка RGB, ИК и мультиспектр, 3 площадки) или откройте s12 (20 бортов, 6 участков).
Результат: участки назначаются по совместимости нагрузки, внутри — по производительности групп бортов. При больше чем 4 участках угол подбирается быстрой оценкой без уточнения целыми планами — это ограничивает время расчёта. Панель бортов и «Загрузка бортов» в протоколе показывают, кто сколько летает.
14. Самолёт с взлётно-посадочной полосой¶
Кто: оператор самолётного БВС с разбегом. Цель: спланировать работы с полосы.
Шаги: откройте s13 (Penguin B, полоса 600 × 30 м). На экране «Область съёмки и парк» у площадки есть блок «Полоса»: длина и курс в обе стороны, ширина, покрытие. Торцы можно двигать мышью.
Результат: один вылет, время работ 00:27:43. Направление взлёта и посадки выбирается по
ветру; если полоса короче потребной (45 м разбег, 150 м пробег у Penguin B), борт в расчёт не
идёт (RUNWAY_TOO_SHORT). Разбег, набор по курсу полосы и заход по глиссаде 3° строятся, когда
на сервере включён расчётный профиль; на публичном стенде он выключен.
15. Рельеф¶
Кто: оператор в холмистой местности. Цель: не подойти к земле ближе безопасного.
Как работает: если к стенду подключена цифровая модель рельефа, галс идёт на постоянной высоте
над землёй, а перелёт, возврат и заход поднимаются целиком, если запас над рельефом меньше 50 м.
Валидатор независимо проверяет запас 50 м по всему маршруту (G2-04). Без модели рельефа в плане
предупреждение TERRAIN_UNKNOWN. Подробно — Правила: рельеф.
16. Сближение бортов¶
Кто: руководитель работ, у которого несколько бортов в воздухе одновременно. Цель: убрать опасные сближения.
Шаги: если в отчёте валидатора есть предупреждение G7-01 (ближе 300 м по горизонтали и 50 м по
высоте), поставьте расчёт с разведением — через API поле separation: time (сдвиг бортов по
времени шагом 30 с) или altitude (перелёты k-го борта выше на k × 50 м).
Результат: план без сближений или с их минимумом; способ разведения записан в протоколе решений.
17. Лимит времени расчёта и «остановить и взять лучший»¶
Кто: оператор, которому план нужен прямо сейчас. Цель: не ждать полного перебора.
Шаги: на экране «Область съёмки и парк» в разделе «Расчёт» выберите «Быстро» (до 30 с) вместо «Точно» (до 300 с). Уже идущий расчёт можно остановить кнопкой «Остановить и взять лучший план» в шапке.
Результат: при остановке возвращается лучший найденный к этому моменту план с
предупреждением STOPPED_BY_OPERATOR. Первый план остановка не прерывает. Через API —
time_limit_s (1…1800 с) и POST /api/plans/{id}/stop.
18. Проверка внешнего плана¶
Кто: инженер, у которого план построен в другой системе. Цель: независимо проверить его по тем же 39 правилам.
Шаги: приведите план к формату JSON-плана (см. Работа с файлами) и отправьте вместе со сценарием:
jq -n --slurpfile s scenario.json --slurpfile p external-plan.json '{scenario:$s[0], plan:$p[0]}' \
| curl -sS -X POST "$BASE/api/validate" -H 'content-type: application/json' -d @- \
| jq '.report | {admitted, fails: [.checks[] | select(.status=="fail") | .id]}'
Результат: вердикт admitted, пересчитанные метрики (покрытие, время работ, налёт) рядом с
заявленными и список проверок со статусами. Расхождение заявленных и пересчитанных метрик больше
1 % — отдельная ошибка (G6-04).
19. Импорт файлов организаторов¶
Кто: оператор, которому выдали KML с участками, зонами и препятствиями. Цель: собрать сценарий из файлов без ручного рисования.
Шаги: «Сценарии» → карточка «Импорт проекта» → «Выбрать файлы» — можно выбрать сразу несколько KML/KMZ. В диалоге проверьте роль каждого файла: «Участки съёмки», «Зоны ограничений», «Высотные препятствия». Отметьте флажок данных организаторов, если это их файлы.
Результат: сценарий с участками, зонами (высоты из текста «От земли до … м», «FL…» пересчитаны в высоту над землёй с запасом) и препятствиями как зонами от земли. Отчёт импорта показывает, что пропущено: вырожденные контуры, неразобранные высоты, объекты вне района. Парк, площадка и ветер подставляются по умолчанию — их нужно поправить. Подробно — Работа с файлами.
20. Передача полётных заданий на наземную станцию¶
Кто: оператор, который загружает маршруты в автопилот. Цель: получить файлы по каждому борту.
Шаги: «Экспорт» → отметьте KML и GeoJSON (по умолчанию), при необходимости QGC .plan и CSV →
«Выгрузить». Для печатной документации — карточка «Отчёт PDF» → «Отчёт по плану» или «Отчёт по
борту».
Результат: KML и GeoJSON — один файл на план со слоями сценария и маршрутами по бортам и вылетам,
высоты над землёй (relativeToGround); QGC .plan и путевые точки — по файлу на борт. KML
открывается в Google Earth и QGIS и загружается обратно в Аэрозвено.
21. Работа через чат-ассистента¶
Кто: оператор, которому проще сказать, чем искать поле. Цель: поправить сценарий, пересчитать и понять результат.
Шаги: кнопка «Ассистент» в шапке → «Поставь ветер 7 м/с с запада и рассчитай» → ассистент показывает карточку изменений и карточку оценки с вердиктом валидатора. Затем «Подбери вариант лучше, включая угол галсов» или кнопка «Объяснить отчёт».
Результат: изменения видны как «было → стало», числа — из планировщика и валидатора, а не из текста модели. Прежний сценарий возвращается кнопкой «Вернуть прежний». Подробно — Чат-ассистент.
22. Встраивание в свой контур через API¶
Кто: интегратор. Цель: считать планы из своей системы учёта работ.
Шаги: POST /api/plans со сценарием и заголовком Idempotency-Key → поток
GET /api/plans/{id}/events или опрос → GET /api/plans/{id}/export/kml → POST /api/validate.
Полный пример — Обзор API.
Результат: тот же план, что в интерфейсе; повтор запроса с тем же ключом не ставит расчёт второй раз.