SVÄRMS-
SAMORDNING
Varför svärmar — klarspråk
En FPV-drönare med en granat slår ett mål. En FPV kostar 400 euro. Tio FPV kostar 4 000 euro och kan slå tio mål simultant. Fienden måste försvara sig mot alla tio på en gång — tio gånger fler hot för tio gånger priset av en enda drönare. Matematiken är övertygande: en svärmattack överväldigar varje punktförsvar.
Men tio osamordnade drönare är kaos. Tre kan flyga mot samma mål (slösar två drönare). Två kan kollidera i luften. Fem kan lämna den östra flanken helt otäckt. Samordning förvandlar tio enskilda vapen till en integrerad styrka — varje mål täcks av exakt en drönare, kollisioner undviks, och varje sektor har ISR-täckning. Lisa 26 tillhandahåller denna samordning genom realtidsuppgiftsallokering baserad på varje drönares position, batteriläge och sensorkapacitet.
Hur drönare kommunicerar med varandra
Varje drönare i svärmen sänder sin position och status till alla andra drönare via meshnätverket (MANET 300 MHz militärband eller LTE). Varje drönare vet var alla andra drönare befinner sig. Detta kallas "delad situationsmedvetenhet" — samma princip som ligger bakom COP:en på Lisa 26-surfplattan, men på drönarnivå istället för operatörsnivå.
Drönarna behöver ingen central kontroller som berättar för var och en vad den ska göra. Istället använder de konsensusalgoritmer — varje drönare föreslår vad den borde göra, och svärmen enas om den bästa tilldelningen. Om drönare 3 förstörs fördelas dess uppgift automatiskt bland de överlevande. Ingen mänsklig intervention krävs i designen — svärmen är avsedd att anpassa sig inom sekunder (designmål, inte validerat i fält).
När en drönare förstörs detekterar de kvarvarande drönarna dess frånvaro (inga fler statussändningar) och omfördelar automatiskt dess tilldelade område eller mål bland sig själva. Ingen mänsklig intervention behövs — detta sker inom 5–10 sekunder efter förlusten. Svärmen degraderar gracefully: förlust av en drönare av tio reducerar täckningen med 10 procent men eliminerar den inte. Förlust av fem av tio haltar svärmen men de kvarvarande fem fortsätter att operera koordinerat.
Uppgiftsallokering — vem gör vad
Lisa 26 delar upp målområdet i sektorer. Varje drönare tilldelas sektorer baserat på närhet, bränsleläge och sensorkapacitet. Algoritmen säkerställer att varje sektor täcks av minst en drönare och att inga två drönare flyger mot samma mål om det inte är avsiktligt (vissa mål kan kräva dubbla insatser för garanterad verkan).
Allokeringen uppdateras kontinuerligt. Om vinden driver drönare 5 längre österut än planerat skiftar dess sektorer österut och drönare 4 expanderar västerut för att kompensera. Svärmen anpassar sig i realtid utan att någon människa behöver justera manuellt. Lisa 26 loggar alla allokeringsändringar för erfarenhetsåterföring efter uppdraget.
Resursoptimering under begränsningar
Den ungerska algoritmen löser tilldelningsproblemet optimalt i O(n³) tid: givet N drönare och N sektorer hittar den tilldelningen som minimerar total reseavstånd. Lisa 26 kör denna beräkning på bataljonsservern och distribuerar sektortilldelningarna till varje drönare via MANET. Beräkningstiden: under 50 millisekunder för 20 drönare och 20 sektorer — snabbare än svärmen kan flyga en meter.
Den praktiska gränsen för svärmstorlek är inte beräkningsmässig utan mänskligt kognitiv. Offentligt rapporterad ukrainsk operativ erfarenhet indikerar att en operatör effektivt kan hantera maximalt 3 drönare med 75 procents bekräftelsefrekvens på AI-rekommendationer. En drönargruppchef som hanterar 10 drönare behöver 3 operatörer med Lisa 26 som samordnande intelligens — systemet fördelar uppgifter mellan operatörer och deras respektive drönare automatiskt. Över 20 drönare kräver företagsnivåsamordning med dedikerad svärmledare som inte själv flyger utan enbart övervakar COP:en.
Svärmparametrar
SVÄRMKOORDINATION — DESIGNPARAMETRAR
Implementering
# Swarm Coordination - Boid-like behavior with role assignment
import numpy as np
class SwarmDrone:
def __init__(self, drone_id, role="FOLLOWER"):
self.id = drone_id
self.role = role
self.position = np.zeros(3)
self.velocity = np.zeros(3)
def update(self, neighbors, leader_pos, target=None):
sep = np.zeros(3)
for n in neighbors:
diff = self.position - n.position
d = np.linalg.norm(diff)
if 0 < d < 25.0:
sep += diff / d
coh = np.zeros(3)
if self.role == "FOLLOWER" and leader_pos is not None:
coh = (leader_pos - self.position) * 0.1
goal = np.zeros(3)
if self.role == "ATTACK" and target is not None:
goal = (target - self.position) * 0.5
self.velocity = sep * 2.0 + coh + goal
self.velocity = np.clip(self.velocity, -20, 20)
swarm = [SwarmDrone(i) for i in range(8)]
swarm[0].role = "LEADER"
print(f"Swarm of {len(swarm)}, leader: {swarm[0].id}")
Uppgiftsallokeringsalgoritm
Den ungerska algoritmen implementerad i Lisa 26 optimerar drönare-till-sektor-tilldelning genom att beräkna en kostnadsmatris baserad på avstånd, batteriförbrukning och sensorlämplighet. Matrisen löses optimalt på brigadserverns CPU inom millisekunder. Tilldelningen omberäknas var 30:e sekund eller vid förlust av en nod — vilket som inträffar först. Resultatet är att svärmen alltid opererar med optimal resursfördelning oavsett dynamiska förändringar i operationsmiljön.
Källor
FOI forskning om autonoma drönarsvärmar (Peter Bennesved, 2025). ArduPilot svärmläge dokumentation. "Cooperative Multi-Robot Systems" (Parker, MIT Press, 2023). ExpressLRS meshnätverksprotokoll (expresslrs.org).