Coordonare descentralizată pentru un roi de cvadricoptere
Olanda
Un runtime pentru experimente de inteligență colectivă, în care fiecare agent decide dintr-o hartă locală de percepție și nimic nu deține o vedere globală. Reglat în simulare, apoi zburat pe cvadricoptere Crazyflie.
Situația
Un roi nu are coordonator. Fiecare unitate vede o fracțiune din situație și trebuie să aleagă o acțiune care nu intră în coliziune cu ce aleg vecinii în aceeași clipă, pornind de la informație deja ușor învechită. Întrebarea de cercetare era dacă un comportament reglat în simulare supraviețuiește contactului cu hardware real.
Ce am construit
Runtime-ul
Agenții, controlerele, mediile și loggerele sunt procese independente care schimbă stare printr-un canal Redis. Un experiment e o configurare JSON, nu o modificare de cod, așa că o rulare e reproductibilă, iar părțile ei se reutilizează între experimente.
Percepție locală
Fiecare agent își construiește o hartă 84x84 a ceea ce percepe, cu sine în centru, din pozițiile vecinilor și din punctele de interes publicate de mediu. Harta e redusă la o grilă 3x3, iar celula cu scorul cel mai mare devine una dintre cele nouă acțiuni discrete. Niciun agent nu deține imaginea globală.
De la simulare la hardware
Parametrii au fost reglați pe agenți virtuali, apoi aceeași configurare a condus cinci cvadricoptere Crazyflie prin radio, într-un laborator. Schimbarea implementării agentului a fost singura modificare, fiindcă controlerul nu știa niciodată ce fel de agent conduce.
Ce a contat
Faptul că am ținut controlerul neștiutor dacă conduce un agent simulat sau unul fizic e ce a făcut transferul ieftin. Interfața a fost experimentul: dacă ar fi știut, fiecare parametru reglat în simulare ar fi trebuit reglat din nou pe hardware.
Rezultat
Cinci cvadricoptere au menținut traiectorii fără coliziuni sub puncte de interes rotative, urmând în laborator comportamentul observat în simulare. Framework-ul și lucrarea sunt publice.