Buzz: An extensible programming language for heterogeneous swarm robotics

We present Buzz, a novel programming language for heterogeneous robot swarms. Buzz advocates a compositional approach, offering primitives to define swarm behaviors both from the perspective of the single robot and of the overall swarm. Single-robot primitives include robot-specific instructions and manipulation of neighborhood data. Swarm-based primitives allow for the dynamic management of robot teams, and for sharing information globally across the swarm. Self-organization stems from the completely decentralized mechanisms upon which the Buzz run-time platform is based. The language can be extended to add new primitives (thus supporting heterogeneous robot swarms), and its run-time platform is designed to be laid on top of other frameworks, such as the Robot Operating System. We showcase the capabilities of Buzz by providing code examples, and analyze scalability and robustness of the run-time platform through realistic simulated experiments with representative swarm algorithms.

[1]  Eliseo Ferrante,et al.  Swarm robotics: a review from the swarm engineering perspective , 2013, Swarm Intelligence.

[2]  Francesco Mondada,et al.  The marXbot, a miniature mobile robot opening new perspectives for the collective-robotic research , 2010, 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[3]  Morgan Quigley,et al.  ROS: an open-source Robot Operating System , 2009, ICRA 2009.

[4]  Seth Copen Goldstein,et al.  A Language for Large Ensembles of Independently Executing Nodes , 2009, ICLP.

[5]  Eliseo Ferrante,et al.  A self-adaptive communication strategy for flocking in stationary and non-stationary environments , 2013, Natural Computing.

[6]  James McLurkin,et al.  Speaking Swarmish: Human-Robot Interface Design for Large Swarms of Autonomous Mobile Robots , 2006, AAAI Spring Symposium: To Boldly Go Where No Human-Robot Team Has Gone Before.

[7]  Jean-Christophe Baillie,et al.  URBI: towards a universal robotic low-level programming language , 2005, 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[8]  Kenneth P. Birman,et al.  Exploiting virtual synchrony in distributed systems , 1987, SOSP '87.

[9]  Marco Dorigo,et al.  Adaptation and Awareness in Robot Ensembles: Scenarios and Algorithms , 2015, The ASCENS Approach.

[10]  Carlo Pinciroli,et al.  A Tuple Space for Data Sharing in Robot Swarms , 2016, EAI Endorsed Trans. Collab. Comput..

[11]  George K. I. Mann,et al.  An Ultrasonic and Vision-Based Relative Positioning Sensor for Multirobot Localization , 2015, IEEE Sensors Journal.

[12]  Roberto Ierusalimschy,et al.  The Implementation of Lua 5.0 , 2005, J. Univers. Comput. Sci..

[13]  Anders Lyhne Christensen,et al.  SWARMORPH: Morphogenesis with Self-Assembling Robots , 2012, Morphogenetic Engineering, Toward Programmable Complex Systems.

[14]  Gerardo Beni,et al.  From Swarm Intelligence to Swarm Robotics , 2004, Swarm Robotics.

[15]  Radhika Nagpal,et al.  Programmable self-assembly using biologically-inspired multiagent control , 2002, AAMAS '02.

[16]  P.-P. Grasse La reconstruction du nid et les coordinations interindividuelles chezBellicositermes natalensis etCubitermes sp. la théorie de la stigmergie: Essai d'interprétation du comportement des termites constructeurs , 1959, Insectes Sociaux.

[17]  Carlo Ghezzi,et al.  Team-level programming of drone sensor networks , 2014, SenSys.

[18]  Jacob Beal,et al.  Composable continuous-space programs for robotic swarms , 2010, Neural Computing and Applications.

[19]  Luca Mottola,et al.  Programming wireless sensor networks , 2011, ACM Comput. Surv..

[20]  Mauro Birattari,et al.  Self-organized task allocation to sequentially interdependent tasks in swarm robotics , 2012, Autonomous Agents and Multi-Agent Systems.

[21]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[22]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[23]  Jacob Beal,et al.  Protelis: practical aggregate programming , 2015, SAC.

[24]  William M. Spears,et al.  Distributed, Physics-Based Control of Swarms of Vehicles , 2004 .

[25]  Jacob Beal,et al.  Organizing the Aggregate: Languages for Spatial Computing , 2012, ArXiv.

[26]  Radhika Nagpal,et al.  A Catalog of Biologically-Inspired Primitives for Engineering Self-Organization , 2003, Engineering Self-Organising Systems.

[27]  Carlo Pinciroli,et al.  Buzz: An Extensible Programming Language for Self-Organizing Heterogeneous Robot Swarms , 2015, ArXiv.

[28]  Kasper Støy,et al.  Using Situated Communication in Distributed Autonomous Mobile Robotics , 2001, SCAI.

[29]  Radhika Nagpal,et al.  Kilobot: A low cost scalable robot system for collective behaviors , 2012, 2012 IEEE International Conference on Robotics and Automation.

[30]  Karthik Dantu,et al.  Programming micro-aerial vehicle swarms with karma , 2011, SenSys.

[31]  Francesco Mondada,et al.  The e-puck, a Robot Designed for Education in Engineering , 2009 .

[32]  Eliseo Ferrante,et al.  ARGoS: a modular, parallel, multi-engine simulator for multi-robot systems , 2012, Swarm Intelligence.

[33]  Márk Jelasity,et al.  Gossip-based aggregation in large dynamic networks , 2005, TOCS.