ПЕРЕЙТИ ДО ЗМІСТУ
Дистанційна ударна група Альфа
EN SV ВИДАННЯ 2026-Q2 АКТИВНА
НЕТАЄМНО
FSG-A // КЛАСТЕР 2 — АВТОНОМНІСТЬ // 2.2

ДЕРЕВА ПОВЕДІНКИ
ПРАВИЛА РІШЕНЬ ДЛЯ ДРОНІВ

КЛЮЧОВИЙ ВИСНОВОК
Автономний дрон не може використовувати справжній штучний інтелект — затримка занадто висока, обчислень замало, а помилки можуть вбити людей. Натомість ArduPilot виконує дерево рішень із чітко визначеним порядком пріоритетів: перша перевірка — безпека повітряного простору (геозона, мінімальна висота); друга — стан апаратного забезпечення (акумулятор, GPS, посилання); третя — мета місії; остання — оптимізація маршруту. Кожен вузол це умова if-then, перевіряється 50 разів на секунду. Коли умова вищого пріоритету спрацьовує, нижчі перериваються автоматично. Сотні простих правил дають складну поведінку — без ризику того, що нейромережа помилиться через неочікувані вхідні дані. Реалізація: параметри failsafe ArduPilot + Lua-скрипти для додаткових правил. Валідація: кожне правило має детермінований результат, який можна перевірити в SITL перед льотом.

Практична реалізація використовує вбудовану систему failsafe ArduPilot у поєднанні з Lua-скриптами для логіки, специфічної для місії. Кожен вузол в ієрархії оцінює свою умову і передає успіх або невдачу вгору. Кореневий вузол приймає остаточне рішення, яку дію дрон виконує в будь-який момент. Ця архітектура відображає, як працюють військові командні структури: нижчі рівні обробляють рутинні рішення, ескалюючи незвичайні ситуації до вищого авторитету.

Ієрархія пріоритетів — безпека над місією

Дерево поведінки Fischer 26 має чотири рівні пріоритету (від найвищого до найнижчого):

  1. ВИЖИВАННЯ (найвищий): перевірити критичну відмову обладнання, катастрофічну втрату живлення, відмову IMU. Якщо так → негайне припинення або аварійна посадка. Ніщо не переважає це.
  2. БЕЗПЕКА: перевірити рівень акумулятора < 20%, геозабор порушений, втрата радіозв\'язку > 30 секунд. Якщо так → RTL (повернення додому) або посадка в поточній позиції.
  3. ОБОРОНА: перевірити вхідну загрозу (ворожий дрон у зоні 500 м). Якщо так → ухильний маневр або активація РЕБ-глушника.
  4. МІСІЯ (найнижчий): виконувати ISR-кружляння, ретрансляцію, стеження за ціллю. Лише якщо всі вищі пріоритети задоволені.

Ключовий принцип: місія НІКОЛИ не переважає безпеку. Дрон, що виконує ISR-кружляння і досягає 20% акумулятора, негайно перериває місію і повертається — навіть якщо ціль ще не підтверджена. Втрата дрона коштує €3 000 і тижні заміни. Невиконана ISR-місія коштує інформацію, яку можна зібрати наступним вильотом через 3 години.

Як працюють дерева поведінки

Кожен вузол у дереві — це проста перевірка: "чи ця умова вірна?" Якщо так: виконати дію цього вузла. Якщо ні: перейти до наступного вузла. Дерево перевіряється зверху вниз, 50 разів на секунду (20 мс цикл). Перший вузол, що повертає "так", визначає поведінку дрона. Це означає, що вузли виживання (зверху) завжди перевіряються першими — навіть якщо місійний вузол "активний", вузол виживання може перервати його за 20 мс.

Lua-скрипти — розширення поведінки за межі failsafe

ArduPilot дозволяє Lua-скрипти, що виконуються на польотному контролері. Ці скрипти можуть зчитувати телеметрію, змінювати параметри і навіть переключати режими польоту. Для Fischer 26: Lua-скрипт перевіряє IFF heartbeat від Lisa 26 кожні 5 секунд. Якщо heartbeat відсутній 30 секунд (Lisa 26 втрачена або скомпрометована): дрон входить у автономний режим із заздалегідь завантаженим маршрутом повернення. Цей рівень поведінки неможливий з самими параметрами failsafe — потрібна програмна логіка.

Приклад: поведінка при втраті зв\'язку

01
0–5 СЕКУНД БЕЗ ЗВ\'ЯЗКУ
Дрон продовжує поточну задачу. Короткі обриви нормальні в РЕБ-середовищі. Ніякої реакції.
02
5–30 СЕКУНД
Дрон піднімається на 50 м (покращує LOS до GCS). Продовжує місію, але готовий до RTL.
03
30–60 СЕКУНД
Дрон припиняє місію. Входить у RTL. Летить до домашньої точки на безпечній висоті.
04
> 60 СЕКУНД (під час RTL)
Якщо зв\'язок досі не відновлено при прибутті до домашньої точки: автономна посадка. SD-карта зберігає всі дані місії для офлайн-розбору.
ПРОСТОЮ МОВОЮ: ПРАВИЛА ПОВЕДІНКИ ДРОНА
Дрон слідує простим правилам, перевіреним 50 разів на секунду. Перше: чи я збираюсь розбитися? (Якщо так: аварійна посадка.) Друге: чи безпечно продовжувати? (Якщо ні: повертатися додому.) Третє: чи є загроза? (Якщо так: ухилятися.) Четверте: виконувати місію. Безпека завжди на першому місці. Місія на останньому. Дрон ніколи не ризикує собою заради фотографії — він може зробити ту саму фотографію через 3 години при наступному вильоті.

Пов'язані розділи

Двигун рішень L1/L2/L3
Взаємодія людини та автономії
Координація рою

← Частина Об\'єднання сенсорів EKF3

ArduPilot Lua-скрипт — приклад

-- Fischer 26 IFF Heartbeat Monitor (Lua script for ArduPilot)
-- Runs on Pixhawk 6C, checks Lisa 26 heartbeat every 5 seconds

local HEARTBEAT_TIMEOUT_MS = 30000  -- 30 seconds
local last_heartbeat = millis()

function update()
    -- Check if Lisa 26 sent heartbeat via MAVLink
    local hb = mavlink:receive_chan(0)
    if hb and hb:get_type() == "HEARTBEAT" then
        last_heartbeat = millis()
    end
    
    -- If no heartbeat for 30 seconds: enter autonomous RTL
    if millis() - last_heartbeat > HEARTBEAT_TIMEOUT_MS then
        gcs:send_text(4, "IFF LOST: entering autonomous RTL")
        vehicle:set_mode(11)  -- RTL mode
    end
    
    return update, 5000  -- Check every 5 seconds
end

return update, 5000

Джерела

Документація Lua-скриптів ArduPilot. Теорія дерев поведінки (Colledanchise & Ögren, 2018). Конфігурація failsafe ArduPilot. Публічні звіти про українські автономні дронові операції 2022–2025 (ISW, RUSI).