Un langage de programmation pour les essaims de robots

L'un des spectacles les plus fascinants d'une soirée d'automne est le comportement de rassemblement des étourneaux alors qu'ils vacillent et plongent dans des démonstrations extraordinaires de synchronisation aérodynamique.





Il s'avère que ces affichages complexes résultent d'un simple ensemble de règles qui régissent la façon dont les oiseaux volent les uns par rapport aux autres. En effet, ce flocage est relativement simple à simuler sur ordinateur depuis de nombreuses années.

Mais cela n'a jamais été répété avec des robots volants ou terrestres d'ailleurs, pour deux raisons. D'abord parce que personne n'a construit de robots avec la même agilité et la même vitesse. Mais même avec des robots moins agiles, la tâche est délicate à cause de la deuxième raison : il n'y a pas de moyen facile de contrôler un tel troupeau.

Le premier facteur évolue rapidement. Des robots bon marché et capables, volant ou non, ont provoqué une explosion d'intérêt pour les troupeaux et les essaims. De nombreux chercheurs, amateurs et artistes expérimentent ces machines et espèrent étudier et exploiter le comportement d'essaimage qu'elles génèrent.



Ces groupes constatent tous que le contrôle d'un grand nombre de robots identiques est un défi. Et en l'absence d'un langage de programmation établi, ils doivent aborder les mêmes problèmes de la même manière. En d'autres termes, ils réinventent la roue.

Aujourd'hui, Carlo Pinciroli à l'Ecole Polytechnique de Montréal au Canada et quelques amis disent avoir développé un langage de programmation dans ce but précis. Nous présentons Buzz, un nouveau langage de programmation pour les essaims de robots hétérogènes, disent-ils.

Il existe deux approches opposées pour contrôler un essaim. La première est une méthode ascendante dans laquelle chaque robot est contrôlé individuellement. C'est utile pour affiner l'interaction entre des robots spécifiques, mais devient de plus en plus difficile à gérer à mesure que la taille de l'essaim augmente.



La méthode opposée est une approche descendante dans laquelle l'essaim est contrôlé dans son ensemble. C'est beaucoup plus efficace pour les grands essaims, mais cela ne permet pas d'affiner les comportements individuels des robots.

Pinciroli et co disent que leur nouveau langage permet les deux méthodes. Nous pensons qu'un langage pour les essaims de robots doit combiner des primitives ascendantes et descendantes, permettant au développeur de choisir le niveau d'abstraction le plus confortable pour exprimer un algorithme d'essaim, disent-ils.

Ils disent que Buzz permet également de combiner des commandes de manière intuitive avec des résultats prévisibles qui le rendent relativement facile à utiliser. Il est également évolutif et peut donc être utilisé efficacement dans des essaims de tailles différentes.



Ils montrent ensuite divers exemples de la façon dont la langue fonctionne dans la pratique et conduit à un comportement auto-organisé utilisant des règles relativement simples, tout comme de vrais essaims et troupeaux.

C'est un travail intéressant qui a le pouvoir de devenir un amplificateur de technologie. Pinciroli et co disent que l'absence d'un langage de programmation standardisé pour les essaims est un obstacle important aux progrès futurs car il n'y a pas de moyen facile pour les chercheurs de partager leur travail et de s'appuyer sur les percées des autres.

Nous pensons que l'un des aspects les plus importants de Buzz est son potentiel à devenir un catalyseur pour la recherche future sur les systèmes robotiques en essaim complexes du monde réel, déclare l'équipe.



Et ils ont des projets ambitieux pour l'avenir. Par exemple, ils veulent créer une bibliothèque de comportements d'essaim bien connus qui deviendront des éléments de base pour le travail futur des autres.

Des choses intéressantes qui peuvent signifier que les troupeaux extraordinaires que vous voyez lors des futures soirées d'automne ne sont peut-être pas du tout des étourneaux.

Réf : arxiv.org/abs/1507.05946 : Buzz : un langage de programmation extensible pour les essaims de robots hétérogènes auto-organisés

cacher