ОФЛАЙН
ПРОЦЕС РОЗБОРУ
СПЕЦИФІКАЦІЇ РОЗБОРУ
Коли застосовується офлайн-розбір
Офлайн-розбір застосовується до будь-якої місії, де дрон літає без передачі даних у реальному часі. Три поширені сценарії: оптоволоконні FPV-дрони (нульове РЧ-випромінювання, неможливо заглушити, але немає живої телеметрії), глибокі ISR-місії, де Fischer 26 летить РЧ-тихим, щоб уникнути виявлення ворогом, і підводні місії AUV, де радіо просто не може проникнути крізь воду.
У всіх випадках Jetson дрона продовжує виконувати AI-інференцію на борту і зберігає все на microSD-карту. Розбір відбувається після того, як дрон фізично повернеться.
Покроковий процес
lisa26-extract --input /media/sd0 --output ./mission-$(date +%Y%m%d-%H%M). Інструмент вилучає три файли: відео (.mp4, H.265), журнал телеметрії (.tlog з барометричною висотою, IMU-орієнтацією, даними оптичного потоку) і журнал AI-виявлень (.jsonl з кожним виявленням YOLOv8 і часовою міткою). Вилучення займає ~30 секунд на 1-годинну місію.lisa26-debrief --mission ./mission-20260413-1430. Інструмент показує відео-лінію з AI-виявленнями, накладеними як рамки. Кожне виявлення має оцінку впевненості. Оператор прокручує лінію, підтверджуючи справжні цілі (клік ✓) і відхиляючи помилкові спрацьовування (клік ✗). Оператор може додавати ручні анотації з вільнотекстовими примітками.lisa26-inject --mission ./mission-20260413-1430 --confirmed-only. Кожне виявлення позначається тегом "mode": "offline_debrief", оригінальною часовою міткою спостереження і невизначеністю позиції. Карта COP оновлюється. Аналіз паттернів виконується проти всіх історичних даних. Якщо виявлено повторюваний паттерн (наприклад, нічний колонний конвой постачання), Lisa 26 генерує рекомендацію L2 для наступного оперативного циклу.Конвеєр обробки даних розбору
Офлайн-розбір слідує суворому чотириетапному конвеєру, розробленому для вилучення максимальної розвідки з даних SD-карти, зберігаючи ланцюг зберігання. Етап 1: розшифрування LUKS з файлом ключа оператора — без ключа немає доступу до даних, навіть якщо SD-карту захопив ворог і повернув. Етап 2: парсинг журналу AI-виявлень — файл JSONL містить кожне виявлення YOLOv8 з часовою міткою, класом, впевненістю, координатами рамки і оцінною позицією EKF3 дрона на момент виявлення. Сортування за впевненістю виділяє найякісніші спостереження.
Етап 3: вилучення мініатюр — кожне виявлення містить обрізану JPEG-мініатюру цілі в момент максимальної впевненості. Ці мініатюри є основним розвідпродуктом: досить малі для передачі через низькосмугову MANET (10 КБ кожна), досить деталізовані для людської перевірки AI-класифікації.
Етап 4: експорт CSV для імпорту в Lisa 26 COP — структуровані дані об'єднуються у базу даних бригади з ретроактивною часовою міткою, тож аналіз паттернів правильно впорядковує події відносно спостережень дронів у реальному часі, що відбувалися протягом того ж періоду.
Збереження даних і безпека
Дані розбору зберігаються у базі даних PostgreSQL Lisa 26 для аналізу паттернів. Період зберігання: 90 днів для сирих журналів виявлень, безстроково для агрегованої статистики (частоти успішних ударів, розподіли впевненості виявлення, тривалість місій). Після 90 днів сирі журнали архівуються в зашифроване зовнішнє сховище і очищаються з активної бази даних для збереження продуктивності запитів.
Якщо батальйонний ноутбук піддається ризику захоплення, жорсткий диск зашифровано LUKS, і ключ знищується — той самий принцип, що й шифрування SD-карти дрона. Жодні розвіддані не переживають фізичне захоплення будь-якого обладнання Lisa 26.
Процес офлайн-розбору гарантує, що РЧ-тихі місії — де дрон випромінює нульову радіоенергію, щоб уникнути виявлення — все одно вносять розвідку в бригадну картину. Без офлайн-можливостей одноразові ISR-дрони, які летять у тиші, втрачали б усі зібрані дані при знищенні. Підхід з офлайн SD-картою зберігає розвідку з кожної місії незалежно від того, чи дрон повертається, чи його відновлюють з поля.
← Частина Архітектура Lisa 26
Реалізація
#!/bin/bash
# Lisa 26 Offline Debrief — Process SD Card After RF-Silent Mission
# Run on battalion laptop after drone recovery
set -e
SD_DEVICE="/dev/sdb1"
MOUNT="/mnt/sd_debrief"
KEY_FILE="$1" # Operator provides LUKS key file as argument
if [ -z "$KEY_FILE" ]; then
echo "Usage: debrief.sh /path/to/luks.key"
exit 1
fi
# Step 1: Unlock LUKS-encrypted SD card
echo "[1/4] Unlocking SD card"
sudo cryptsetup luksOpen "$SD_DEVICE" sd_data --key-file "$KEY_FILE"
sudo mkdir -p "$MOUNT"
sudo mount /dev/mapper/sd_data "$MOUNT"
# Step 2: Parse AI detection log
echo "[2/4] Parsing detections"
python3 << 'PYTHON'
import json, csv
with open("/mnt/sd_debrief/detections.jsonl") as f:
detections = [json.loads(line) for line in f]
print(f"Total detections: {len(detections)}")
print(f"Classes: {set(d['class'] for d in detections)}")
# Sort by confidence, show top 10
top = sorted(detections, key=lambda d: -d['confidence'])[:10]
for d in top:
print(f" {d['class']:10s} conf={d['confidence']:.0%} mgrs={d['mgrs']} t={d['timestamp']}")
# Export for Lisa 26 COP import
with open("/tmp/debrief_import.csv", "w") as f:
w = csv.writer(f)
w.writerow(["class","confidence","mgrs","timestamp"])
for d in detections:
w.writerow([d["class"], d["confidence"], d["mgrs"], d["timestamp"]])
PYTHON
# Step 3: Extract thumbnails
echo "[3/4] Extracting thumbnails"
mkdir -p /tmp/debrief_thumbs
cp "$MOUNT"/thumbnails/*.jpg /tmp/debrief_thumbs/
echo " $(ls /tmp/debrief_thumbs/ | wc -l) thumbnails extracted"
# Step 4: Cleanup
echo "[4/4] Securing SD card"
sudo umount "$MOUNT"
sudo cryptsetup luksClose sd_data
echo "=== DEBRIEF COMPLETE — import /tmp/debrief_import.csv to Lisa 26 ==="
Пов'язані розділи
Джерела
Документація режиму AHRS ArduPilot (ardupilot.org, 2024). Публікація ORB-SLAM3: Campos та ін., IEEE Transactions on Robotics (2021). Технічний опис барометричного сенсора тиску BMP390 (Bosch, 2023). Специфікація стиснення H.265/HEVC (ITU-T, 2013).