IRIDIA - Supplementary Information (ISSN: 2684-2041)

Supplementary material for the paper:

Requirements Specification for Swarm Robotics

Towards an integrated automatic design process:from textual specification to code deployment

Darko Bozhinoski and Mauro Birattari (December 2020)

Table of Contents
  1. Abstract
  2. Statistical data
  3. Videos


The specification of missions to be accomplished by robot swarms has been rarely discussed in the literature. Designers of robot swarms do not follow any standardized processes or use any tool to precisely define a mission that must be accomplished. In this paper, we introduce Swarm Mission Language (SML), a textual language that allows swarm designers to specify missions. Based on SML, we define a fully integrated process that starts with the specification of a mission to be accomplished and terminates with the deployment of the robots in the target environment. Using model-driven engineering techniques, the integrated design process automatically transforms a mission specified in SML into a configuration setup for an optimization-based design method. The output is an instance of control software that is eventually deployed on real robots. We demonstrate the applicability of SML and the integrated process on three different missions.

Source Code

In this part we present the implementation of the Swarm Mission Language grammar. To specify a mission, you need to download the Eclipse project . The five subprojects can be imported in Eclipse Version: 2019-12 (4.14.0) with Xtext 2.21.0. An Eclipse plug-in of the Swarm Mission Language Grammar can be built by right-clicking the project called "be.ulb.missionspecification", selecting "Run as", "Eclipse Application". This will spawn a new instance of Eclipse, with the plug-in loaded. In the new instance, create a new Java project, and create a file with extension ".sml", i.e., the extension of Mission Specification files. In the text editor, the Mission Specification Language can be used (including parse error visualisation, ctrl-tab, hierarchy, etc.).

When a mission specification in the editor is saved, the code generation process starts and generates the corresponding artifacts (an ARGOS .xml file and a .cpp file that contains the loopfunctions that measure the performances of the swarm on the mission at hand).

We demonstrate the applicability of the language in 3 different missions. In the demonstration, we use e-puck robot. The best instances of control software for each mission is given as follows.





For each mission, the automatically generated code was ported on real robots. Here, we present the behavior of the robot swarm for each mission on the real robots.