LISA 26
БРИГАДНА AI СИСТЕМА ПРИЙНЯТТЯ РІШЕНЬ
Чому бригадний рівень
Дронова група взводу бачить 2-5 дронів над 2 км² протягом 30 хвилин. Бригадна дронова мережа бачить 50-150 дронів над 500 км² протягом тижнів. Різниця не лише в масштабі — вона якісна. Проявляються патерни: та сама колона о 03:00 на маршруті M05 три ночі поспіль. Той самий дрон-спостерігач у квадраті PA 1234 5678 щодня перед артобстрілом. Дані одного взводу — це шум. Агреговані дані бригади — це розвідка. Lisa 26 існує, щоб трансформувати дані дронових сенсорів у бригадну розвідку і спускати дієві рішення до взводу, який їх потребує, менш ніж за 60 секунд.
Чотирирівнева архітектура
LISA 26 — ЧОТИРИ РІВНІ
Потік даних — знизу вгору
Кожен дрон генерує дані. FPV з Jetson Orin Nano запускає YOLOv8 на 30 FPS і видає події виявлення: обмежувальна рамка, клас (техніка/особа/дрон), довіра (0-1), часова мітка, орієнтація дрона, параметри камери. Платформа ISR Fischer 26 видає те саме плюс метадані STANAG 4609 KLV у кожному відеокадрі. UGV видає хмари точок LiDAR та карти перешкод. Усі дані течуть вгору через MANET mesh:
Дрон → Взводний термінал (локальна COP, 2-5 дронів) → Ротний тактичний (об'єднані COP взводів) → Батальйон (об'єднані COP рот + розподіл ресурсів) → Штаб бригади (повна картина + аналіз патернів + зовнішня розвідка). Кожен рівень додає цінність: взвод дедуплікує власні виявлення, рота корелює між взводами, батальйон ідентифікує міжротні патерни, бригада об'єднує з OSINT/HUMINT і генерує стратегічні оцінки загроз.
Потік даних — зверху вниз
Розвідка тече вниз так само швидко, як виявлення течуть вгору. Бригада ідентифікує патерн: ворожа артилерійська батарея перепозиціонується кожні 6 годин, завжди вздовж маршруту E10. Ця оцінка штовхається до всіх батальйонних вузлів. Батальйон виділяє виліт Fischer 26 ISR для моніторингу маршруту E10 під час передбачуваного вікна. Рота отримує потік Fischer 26 і попередньо позиціонує групи FPV. Взвод отримує рекомендацію L2: "Очікується колона техніки в квадраті PA 2345 6789, часове вікно 02:00-04:00, рекомендована позиція засідки 300 м на південь". Командир взводу затверджує. Група FPV готова. Загальний час поширення рішення від аналізу бригади до готовності взводу: менше 5 хвилин через MANET push.
Повноваження на прийняття рішень — ROE за рівнем
| Дія | Повноваження | Рівень Lisa 26 | Доступний час | Рівень |
|---|---|---|---|---|
| Завдання ISR-спостереження | Батальйон S2 | Н/З (пасивний) | Години | Батальйон |
| Зміна частотного плану | Бригада S6 | Н/З (інфраструктура) | Години | Бригада |
| Перерозподіл дронових ресурсів | Командир батальйону | L2 рекомендує | Хвилини | Батальйон |
| FPV удар по техніці | Командир взводу | L2 рекомендує | 2-5 хв | Взвод |
| FPV удар по особовому складу | Командир роти | L2 рекомендує | 5-15 хв | Рота |
| Контр-БПЛА перехоплювач | Командир групи (попередньо делеговано) | L3 автономно | <10 с | Взвод |
Три рівні повноважень (L1/L2/L3) налаштовані в Lisa 26 через правила залучення (ROE). L1 — попередження (Lisa 26 відображає виявлення, але жодних дій не потрібно). L2 — рекомендація (Lisa 26 пропонує ураження, солдат затверджує або відхиляє). L3 — автономний (Lisa 26 діє самостійно, лише для самооборони проти вхідних загроз з менше ніж 10 секунд до удару). L3 завжди вимикаємий.
Математика виявлення (доведено)
YOLOv8n класифікує зображення 640×640 пікселів на Jetson Orin Nano з затримкою виведення ~15 мс при використанні FP16 TensorRT оптимізації. Для Fischer 26 ISR платформи, що летить на висоті 400 м з камерою 1080p, кожен піксель покриває приблизно 3,1 см на землі в надирі. Це означає, що техніка розміром 6 м (танк Т-72) має приблизно 193×193 пікселів у кадрі — достатньо для надійної класифікації моделлю, тренованою на шведських/східноєвропейських фордонах.
Конвертація координат пікселя в MGRS використовує орієнтацію дрона (roll, pitch, yaw з EKF3) плюс барометричну висоту. Математична точність: ±3 м CEP при висоті 400 м і куті нахилу до 30°. За межами 30° похибка зростає експоненційно — доктрина Fischer 26 обмежує нахил камери до ±25° для утримання CEP нижче 5 м.
Математика злиття — дедуплікація між дронами
Кілька дронів бачать ту саму ціль. Як зрозуміти, що це одна ціль, а не три? Lisa 26 використовує просторово-часову дедуплікацію: два виявлення вважаються однією ціллю, якщо їхні MGRS координати знаходяться в межах 50 м АБО їхні часові мітки знаходяться в межах 3 секунд одна від одної. Якщо обидва критерії виконані, виявлення об'єднуються в єдину ціль з об'єднаною впевненістю.
Формула об'єднання впевненості використовує теорію Демпстера-Шафера (STANAG 2022 Збройні сили Швеції):
# Два джерела з довірою a та b
# Об'єднана довіра m₁₂ = 1 − (1 − a) × (1 − b)
# Приклад: радар дає 70%, камера дає 65%
m_combined = 1 - (1 - 0.70) * (1 - 0.65)
# = 1 - 0.30 × 0.35
# = 1 - 0.105
# = 0.895 (89.5%)
# Для N джерел ітеративно:
def fuse_multiple(confidences):
result = 0.0
for c in confidences:
result = 1 - (1 - result) * (1 - c)
return result
# 5 джерел по 60% кожне:
fuse_multiple([0.6, 0.6, 0.6, 0.6, 0.6])
# = 0.9898 (98.98%)
Кожне джерело зважується за надійністю джерела (källtillförlitlighet A-F) та достовірністю інформації (informationsriktighet 1-6) за Збройні сили Швеції STANAG 2022. Джерело A1 (повністю надійне + підтверджене) отримує вагу 1.0, джерело F6 (невідоме + неможливо оцінити) отримує вагу 0.25.
Математичне виведення — чому чотири рівні, а не три або п\'ять
Чотирирівнева ієрархія (Бригада → Батальйон → Рота → Взвод) не є конвенцією, успадкованою від військової командної структури. Це результат оптимізації смуги пропускання/затримки/fan-out, яка розпадається по-різному при трьох і п\'яти рівнях. Повне чотирикрокове виведення опубліковано в англійській версії цієї сторінки.
Стисло: смуга пропускання Silvus StreamCaster на вузол ~15 Мбіт/с, затримка hop\'у 8 мс, практичний fan-out 8–12 пірів. Трирівневий дизайн (Бригада → Батальйон → Взвод) провалюється по смузі пропускання — батальйонний агрегатор перевантажується 60+ взводними терміналами × 5 дронів. П\'ятирівневий дизайн (який включав би дивізіонний рівень) додає 16 мс затримки на кожен додатковий рівень і не відповідає шведській структурі бригади. Чотирирівневий дизайн проходить усі три умови — смугу пропускання на вузол (0,1–1 Мбіт/с у межах бюджету 15 Мбіт/с), загальну затримку (3 hops = 24 мс у межах бюджету 500 мс), організаційну відповідність шведській бригаді.
Опрацьований приклад — площа покриття бригади проти взводу
Взвод FPV ефективно покриває ~2 км² протягом 30 хв за один виліт (0,25 км² середнє по часу). Бригадна дронова мережа (60 FPV + 8 Fischer 26 посмінно) покриває ~830 км² безперервно — співвідношення 3320×. Саме тому аналіз патернів («та сама колона о 03:00 три ночі поспіль») виникає лише на рівні бригади: взвод бачить свою зону раз на 4 години і не може виявити патерн; бригада бачить ту саму зону кожні 5 хвилин протягом 72 годин, і патерн стає статистично виявлюваним протягом 3 випадків.
Опрацьований приклад — бригадна впевненість проти взводної
Один дрон із впевненістю 70 %: нижче порогу L2 (85 %) → жодної рекомендації удару. Три незалежні бригадні дрони, кожен 70 %: C_fused = 1 − 0,3³ = 97,3 % → поріг перетнуто з добрим запасом. П\'ять дронів при 70 %: 99,76 % (спад віддачі — 3 є «коліном кривої»). Планувальник покриття Lisa 26 тому явно виділяє 3+ незалежних спостерігачів на кожну високопріоритетну цільову зону, щоб перетнути поріг 85 % із запасом, а не покладатися на окремі спостереження 70 %, які змушують командира взводу робити ручні оцінки.
Чому архітектура є операційно важливою
Чотири оперативні рішення залежать від того, чи архітектура виведена з перших принципів. Розмір закупівлі: загальна вартість розгортання (~€45 000–80 000) домінується кількістю апаратних вузлів на рівень. Стійкість до відмов: втрата одного батальйонного вузла ізолює 9–15 взводів при чотирьох рівнях, проти 15–25 взводів при трьох. Стійкість до РЕБ: під активним глушінням пропускна здатність Silvus знижується до ~5 Мбіт/с на вузол; чотири рівні все ще підходять (0,1–1 Мбіт/с на вузол), три — руйнуються. Масштабування понад бригадний рівень: кожен додатковий рівень додає 16 мс round-trip — інтеграція дивізійного рівня має бути подієвою, а не ієрархічною, якщо цикл < 200 мс.
Формули пропускної здатності та злиття перевірені в provable_claims.py під DS_FUSION_2 та DS_FUSION_3.
Аналіз патернів — бригадна розвідка
PostgreSQL з PostGIS на рівні штабу бригади зберігає всі виявлення протягом 90 днів. Нічні запити знаходять патерни:
- Часові патерни: "Виявлення в квадраті X відбуваються щодня між 14:00-16:00"
- Просторові патерни: "Техніка проходить через перехрестя Y щоп'ятниці"
- Типові патерни: "Після спостереження БПЛА в зоні Z артобстріл слідує протягом 30-90 хвилин"
- Асоціативні патерни: "Коли бачимо танкер палива + MBT разом, це передує наступу протягом 4-8 годин"
Ці патерни не доступні жодному окремому взводу. Вони з'являються лише при агрегації бригадного рівня. Lisa 26 автоматично запускає ці запити щоночі і push-повідомляє виявлені патерни відповідним рівням наступного ранку.
Ефекти на рівні бригади — що Lisa 26 змінює
Без Lisa 26: командир бригади отримує розвідку від S2 раз на 12-24 години. Ворог рухається швидше. До моменту, коли командир отримує картину, ворог уже перемістився.
З Lisa 26: командир бригади має living COP, що оновлюється щосекунди. Ворожий рух виявляється протягом хвилин. Lisa 26 виявляє відхилення від встановлених патернів і попереджає. Скорочення циклу OODA з 12-24 годин до 5-15 хвилин трансформує бригаду з реактивної на проактивну.
Важливо: Lisa 26 не замінює штабних офіцерів. Вона замінює повільний ручний процес збору даних. Штабні офіцери все ще аналізують, інтерпретують і приймають рішення. Lisa 26 надає їм кращі, свіжіші вхідні дані, щоб працювати з.
Чому це існує — місія FSG-A
FSG-A Fjärrstridsgrupp Alfa (Швеція) присвячений побудові відкритого коду військових дронових систем для шведської оборони і союзних операцій. Lisa 26 — це наш флагманський проєкт: бригадна AI дронова система без vendor lock-in, без пропрієтарних залежностей, без обмежень на модифікації.
Збройні сили Швеції може завантажити код, змінити його, розгорнути його, ділитися ним із союзниками — все без запиту дозволу чи сплати ліцензійного збору. Те саме стосується Hemvärnet, норвезьких збройних сил, фінських збройних сил, українських ЗСУ, Ізраїлю, Тайваню, Польщі або будь-кого іншого, хто знаходить його корисним.
Open-source — кожен компонент форкабельний
| Компонент | Ліцензія | Призначення |
|---|---|---|
| Lisa 26 код (цей проєкт) | CC BY-SA 4.0 | Двигун прийняття рішень, веб-COP, термінал |
| ArduPilot | GPL v3 | Польотний контролер |
| YOLOv8 | AGPL 3.0 | Класифікатор цілей |
| PostgreSQL + PostGIS | PostgreSQL License | База даних |
| Linux (Ubuntu) | GPL | Операційна система |
| Python stdlib | PSF | Основна мова |
| ORB-SLAM3 | GPL v3 | Візуальна навігація |
| TAK Server | Apache 2.0 | NATO interop |
Жодна залежність не є пропрієтарною. Жодна не може бути відкликана виробником. Жодна не вимагає ліцензійних зборів. Це навмисний вибір архітектури — військові системи не можуть залежати від комерційних продавців, які можуть знятися з ринку.
Апаратне забезпечення — вартість за рівнем
| Рівень | Апаратне забезпечення | Оператори | Вартість |
|---|---|---|---|
| Штаб бригади | Dell PowerEdge R250 × 2 (HA failover) + PostgreSQL | 5 | €12 000 |
| Батальйон | Dell R250 у Pelican case | 3 | €5 000 |
| Рота | Getac B360 Ubuntu 22.04 | 2 | €3 500 |
| Взвод | Samsung Galaxy Tab Active 4 Pro + Termux | 1 | €800 |
Повний бригадний комплект: 1 штаб + 3 батальйони + 9 рот + 27 взводів = €12 000 + 3×€5 000 + 9×€3 500 + 27×€800 = €80 100. Плюс Silvus StreamCaster MANET радіо (~€3 000 за вузол × 40 вузлів = €120 000). Загалом ~€200 000 для бригадної інфраструктури БЕЗ дронів.
Вимоги до пропускної здатності (обчислено)
Типовий дрон Fischer 26 в ISR місії генерує:
- Відеопотік 1080p H.265: ~2 Мбіт/с (безперервно)
- YOLOv8 події виявлення: ~5 кбіт/с (при ~20 подій/хв)
- Телеметрія MAVLink: ~50 кбіт/с
- STANAG 4609 KLV метадані: ~100 кбіт/с
Загалом на Fischer 26: ~2,2 Мбіт/с. Для 5 Fischer 26 + 50 FPV (лише телеметрія + виявлення): 50 × 55 кбіт/с = 2,75 Мбіт/с. Загальна пропускна здатність бригадного рівня: ~13-15 Мбіт/с. Silvus StreamCaster MANET з 140 МГц радіо і OFDM модуляцією забезпечує до 50 Мбіт/с в одному mesh — достатньо для повного бригадного трафіку.
Ланцюг затримок (оцінено)
Від камери до бригадного COP — оціночна затримка базована на бенчмарках компонентів (не виміряна в польових умовах):
| Крок | Затримка |
|---|---|
| Захоплення кадру (IMX477) | 5 мс |
| YOLOv8n інференс (Jetson Orin Nano) | 15 мс |
| Пікселі→MGRS перетворення | 2 мс |
| Серіалізація Cursor-on-Target | 1 мс |
| AES-256 шифрування | 1 мс |
| MANET передача (3 hops) | 24 мс |
| Запис PostgreSQL/SQLite | 5 мс |
| WebSocket push до клієнтів | 3 мс |
| РАЗОМ сенсор→COP | ~56 мс |
Додатковий час на людський огляд у L2 робочому процесі додає 5-60 секунд залежно від ROE. Для автономного L3 (перехоплювач ППО): повний ланцюг виявлення→рішення→виконання менше 1 секунди. Реальні цифри залежать від навантаження системи та якості мережі — обов'язково вимірюється в польовій валідації.
Операція без GPS
Ворог глушить GPS. Lisa 26 та Fischer 26 повинні продовжувати працювати. Дизайн GPS-denial операції:
- Візуальна навігація: ORB-SLAM3 обробляє потік камери Fischer 26 і генерує відносну позицію без GPS. Точність ±50 м над 30 хвилин польоту в добре-текстурованій місцевості.
- Інерційна навігація: Дрейф IMU ±1% дистанції (типово ICM-42688). Ефективний протягом ~5 хвилин до накопичення помилки.
- Барометрична висота: Висота незалежна від GPS. Точність ±3 м.
- MANET-базовані координати: Інші дрони з GPS можуть передавати свої позиції як опорні точки. Fischer 26 триангулює свою позицію від трьох або більше опорних дронів.
Комбінування всіх чотирьох через EKF3 ArduPilot дає стабільне позиціонування навіть під час повного відключення GPS на 30+ хвилин. Lisa 26 залишається функціональною, оскільки всі розрахунки використовують відносні координати MANET mesh, а не абсолютні GPS координати.
Інтеграція зі шведським C2
Збройні сили Швеції використовує кілька C2 систем:
- SITAWARE (Systematic A/S) — командно-боєва система, широко розгорнута в ЗС Швеції
- FMV SLB (Slagfältsledningssystem) — шведська система управління полем бою
- TAK (Team Awareness Kit) — NATO-стандарт для tactical awareness
- NATO Link 16 — таємна тактична даталінк
Lisa 26 надає адаптери для всіх чотирьох через fischer26_sdk.py (клас C2Adapter). Імплементуючі агенції пишуть конкретні реалізації для своїх специфічних версій і конфігурацій. Adapter-патерн ізолює Lisa 26 ядро від змін у зовнішніх системах.
Що Збройні сили Швеції отримує
- Повна кодова база (4 300+ рядків Python) готова до форка
- Не-пропрієтарна архітектура — жодного vendor lock-in
- Відкритий SDK для адаптації до шведських сенсорів, радіо, C2 та ROE
- Математичні докази для кожної заяви в самотестах
- Вбудована AAR логіка (After Action Review) в базу даних
- STANAG 2022 відповідність (Збройні сили Швеції інформаційна оцінка)
- CC BY-SA 4.0 ліцензія — без зборів, без обмежень на модифікації
- Шлях до TRL 6 — 18-24 місяці, ~€510 000 для повної польової валідації
Що Збройні сили Швеції НЕ отримує від FSG-A: фізичні прототипи, натреновані моделі YOLOv8 для шведських сцен, години польоту, контракти підтримки, сертифікацію. Усе це має бути побудоване/проведене самим Збройні сили Швеції або FMV.
Пов'язані розділи
Implementation
# Lisa 26 мінімальна схема PostgreSQL
import psycopg2
conn = psycopg2.connect("host=localhost dbname=lisa26 user=lisa26")
cur = conn.cursor()
cur.execute("""
CREATE TABLE IF NOT EXISTS detections (
id SERIAL PRIMARY KEY,
drone_id VARCHAR(32) NOT NULL,
timestamp TIMESTAMPTZ DEFAULT NOW(),
class VARCHAR(16) NOT NULL,
confidence FLOAT NOT NULL,
mgrs VARCHAR(15),
geom GEOMETRY(POINT, 4326),
tier VARCHAR(16) DEFAULT 'platoon',
fused_confidence FLOAT,
status VARCHAR(16) DEFAULT 'active'
);
CREATE INDEX IF NOT EXISTS idx_detections_geom ON detections USING GIST(geom);
CREATE INDEX IF NOT EXISTS idx_detections_time ON detections(timestamp);
""")
def insert_detection(drone_id, cls, conf, lat, lon, mgrs_str):
cur.execute("""
INSERT INTO detections (drone_id, class, confidence, mgrs, geom)
VALUES (%s, %s, %s, %s, ST_SetSRID(ST_MakePoint(%s, %s), 4326))
RETURNING id
""", (drone_id, cls, conf, mgrs_str, lon, lat))
conn.commit()
return cur.fetchone()[0]
# Аналіз патернів: те саме місце, той самий час, 3+ дні
def find_patterns(min_occurrences=3, time_window_hours=2, radius_m=200):
cur.execute("""
SELECT mgrs, COUNT(*) as cnt,
AVG(EXTRACT(HOUR FROM timestamp)) as avg_hour
FROM detections
WHERE timestamp > NOW() - INTERVAL '7 days'
GROUP BY mgrs
HAVING COUNT(*) >= %s
ORDER BY cnt DESC
""", (min_occurrences,))
return cur.fetchall()
Джерела
ArduPilot EKF3 документація. NVIDIA Jetson Orin Nano Super datasheet. Silvus Technologies StreamCaster специфікації. NATO STANAG 4609 Ed.4. NATO APP-6D символіка. YOLOv8 від Ultralytics. PostgreSQL + PostGIS документація. TAK Server документація. Аналіз української системи Delta (відкриті джерела). Теорія доказів Демпстера-Шафера (Shafer, 1976). FSG-A математична верифікація: python3 lisa26-proof.py (15 тестів, усі проходять).