Een programmeertaal voor robotzwermen

Een van de meer fascinerende bezienswaardigheden van een herfstavond is het zwermgedrag van spreeuwen terwijl ze slingeren en duiken in buitengewone demonstraties van aerodynamische synchronisatie.





Het blijkt dat deze complexe vertoningen tot stand komen als resultaat van een eenvoudige set regels die bepalen hoe de vogels ten opzichte van elkaar vliegen. Inderdaad, dit massaal is jarenlang relatief eenvoudig op de computer te simuleren.

Maar het is om twee redenen nooit herhaald met vliegende robots of op de grond gebaseerde robots. Ten eerste omdat niemand robots heeft gebouwd met dezelfde wendbaarheid en snelheid. Maar zelfs met minder wendbare robots is de taak lastig vanwege de tweede reden: er is geen gemakkelijke manier om zo'n kudde te besturen.

De eerste factor verandert snel. Goedkope, capabele robots - vliegend of anderszins - hebben een explosie van interesse in zwermen en zwermen veroorzaakt. Talloze onderzoekers, hobbyisten en kunstenaars experimenteren met deze machines en hopen het zwermgedrag dat ze genereren te bestuderen en te exploiteren.



Deze groepen vinden allemaal dat het besturen van grote aantallen identieke robots een uitdaging is. En bij gebrek aan een gevestigde programmeertaal, moeten ze dezelfde problemen op dezelfde manier aanpakken. Met andere woorden, ze zijn het wiel opnieuw aan het uitvinden.

Vandaag zeggen Carlo Pinciroli van de Ecole Polytechnique de Montreal in Canada en een paar vrienden dat ze voor dit doel een programmeertaal hebben ontwikkeld. We presenteren Buzz, een nieuwe programmeertaal voor heterogene robotzwermen, zeggen ze.

Er zijn twee tegengestelde benaderingen voor het beheersen van een zwerm. De eerste is een bottom-up methode waarbij elke robot afzonderlijk wordt aangestuurd. Dat is handig voor het verfijnen van de interactie tussen specifieke robots, maar wordt steeds moeilijker te beheren naarmate de zwerm groter wordt.



De tegenovergestelde methode is een top-down benadering waarbij de zwerm als geheel wordt gecontroleerd. Dat is veel effectiever voor grote zwermen, maar maakt het niet mogelijk om het individuele robotgedrag te verfijnen.

Pinciroli en co zeggen dat hun nieuwe taal beide methoden toelaat. Wij zijn van mening dat een taal voor robotzwermen zowel bottom-up als top-down primitieven moet combineren, zodat de ontwikkelaar het meest comfortabele abstractieniveau kan kiezen om een ​​zwermalgoritme uit te drukken, zeggen ze.

Ze zeggen dat Buzz het ook mogelijk maakt om commando's op intuïtieve manieren te combineren met voorspelbare resultaten die het relatief eenvoudig te gebruiken maken. Het is ook schaalbaar en kan dus effectief worden gebruikt in zwermen van verschillende groottes.



Vervolgens laten ze verschillende voorbeelden zien van hoe de taal in de praktijk werkt en leidt tot zelfgeorganiseerd gedrag met relatief eenvoudige regels, net als echte zwermen en zwermen.

Dat is interessant werk dat de kracht heeft om een ​​technologische versterker te worden. Pinciroli en co zeggen dat het ontbreken van een gestandaardiseerde programmeertaal voor zwermen een belangrijke belemmering vormt voor toekomstige vooruitgang, omdat er geen gemakkelijke manier is voor onderzoekers om hun werk te delen en voort te bouwen op elkaars doorbraken.

We zijn van mening dat een van de belangrijkste aspecten van Buzz het potentieel is om toekomstig onderzoek naar echte, complexe zwermrobotsystemen mogelijk te maken, aldus het team.



En ze hebben ambitieuze plannen voor de toekomst. Ze willen bijvoorbeeld een bibliotheek creëren van bekende zwermgedragingen die bouwstenen zullen worden voor het toekomstige werk van anderen.

Interessante dingen die kunnen betekenen dat de buitengewone kuddes die je op toekomstige herfstavonden ziet, misschien helemaal geen spreeuwen zijn.

Referentie: arxiv.org/abs/1507.05946 : Buzz: een uitbreidbare programmeertaal voor zelforganiserende heterogene robotzwermen

zich verstoppen