Ett programmeringsspråk för robotsvärmar

En av de mer fascinerande sevärdheterna på en höstkväll är stararnas flockningsbeteende när de lunkar och sveper in i extraordinära demonstrationer av aerodynamisk synkronisering.





Det visar sig att dessa komplexa uppvisningar kommer till som ett resultat av en enkel uppsättning regler som styr hur fåglarna flyger relativt varandra. Denna flockning har faktiskt varit relativt enkel att simulera på dator i många år.

Men det har aldrig upprepats med flygande robotar eller markbaserade för den delen, av två anledningar. Först för att ingen har byggt robotar med samma smidighet och snabbhet. Men även med mindre smidiga robotar är uppgiften knepig på grund av den andra anledningen: det finns inget enkelt sätt att kontrollera en sådan flock.

Den första faktorn förändras snabbt. Billiga, kapabla robotar – flygande eller på annat sätt – har orsakat en explosion av intresse för flockar och svärmar. Många forskare, hobbyister och konstnärer experimenterar med dessa maskiner och hoppas kunna studera och utnyttja och det svärmande beteende de genererar.



Dessa grupper tycker alla att det är en utmaning att kontrollera ett stort antal identiska robotar. Och i avsaknad av ett etablerat programmeringsspråk måste de ta itu med samma problem på samma sätt. Med andra ord, de uppfinner hjulet på nytt.

Idag säger Carlo Pinciroli vid Ecole Polytechnique de Montreal i Kanada och några kompisar att de har utvecklat ett programmeringsspråk för just detta ändamål. Vi presenterar Buzz, ett nytt programmeringsspråk för heterogena robotsvärmar, säger de.

Det finns två motsatta metoder för att kontrollera en svärm. Den första är en bottom-up-metod där varje robot styrs individuellt. Det är användbart för att finjustera interaktionen mellan specifika robotar, men det blir allt svårare att hantera när storleken på svärmen ökar.



Den motsatta metoden är en uppifrån och ner-strategi där svärmen kontrolleras som en helhet. Det är mycket mer effektivt för stora svärmar men tillåter inte finjustering av individuella robotbeteenden.

Pinciroli och co säger att deras nya språk tillåter båda metoderna. Vi tror att ett språk för robotsvärmar måste kombinera både bottom-up och top-down primitiver, så att utvecklaren kan välja den mest bekväma abstraktionsnivån för att uttrycka en svärmalgoritm, säger de.

De säger att Buzz också låter kommandon kombineras på intuitiva sätt med förutsägbara resultat som gör det relativt enkelt att använda. Den är också skalbar och kan därför användas effektivt i svärmar av varierande storlek.



De fortsätter med att visa olika exempel på hur språket fungerar i praktiken och leder till ett självorganiserat beteende med hjälp av relativt enkla regler, precis som riktiga svärmar och flockar.

Det är intressant arbete som har kraften att bli en teknisk förstärkare. Pinciroli och co säger att frånvaron av ett standardiserat programmeringsspråk för svärmar är ett betydande hinder för framtida framsteg eftersom det inte finns något enkelt sätt för forskare att dela sitt arbete och bygga vidare på varandras genombrott.

Vi tror att en av de viktigaste aspekterna av Buzz är dess potential att bli en möjliggörare för framtida forskning om verkliga, komplexa svärmrobotsystem, säger teamet.



Och de har ambitiösa planer för framtiden. Till exempel vill de skapa ett bibliotek med välkända svärmbeteenden som kommer att bli byggstenar för andras framtida arbete.

Intressanta grejer som kan göra att de extraordinära flockarna man ser kommande höstkvällar kanske inte alls är starar.

Ref: arxiv.org/abs/1507.05946 : Buzz: Ett utbyggbart programmeringsspråk för självorganiserande heterogena robotsvärmar

Dölj