Experimental results for the color segregation multi-robot task implemented on real and simulated Kilobots using P colonies and Finite State Machines
Description
In this record we present an example use of a symbolic robot control model designed to control a swarm of real and simulated robots (in a distributed manner) using the free and open-source Lulu P colony simulator (https://github.com/andrei91ro/lulu_pcol_sim). The robots used in this experiment are Kilobots. This color segregation example considers a group of leader and follower robots and three posible target states: RED, GREEN, BLUE. The leaders always emit a single type of message (color) and color themselves using a single color. The followers receive messages and if the received color corresponds to their current color (or they are in the initial state), the followers hold their position, keep the RGB LED set to that color and emit the corresponding message. If the followers receive two different types of messages, they will move at random, until they receive messages from of a single type. The second control model, that is included here for comparison purposes, uses the concept of State-full Event-driven Finite State Machine (FSM) and the structure of this model is presented in 'fsm_diagram.png''. Details regarding the functioning of the P colony simulator (Lulu) and of the associated robot controller (Lulu_kilobot) can be found in: A. G. Florea, C. Buiu. Membrane Computing for Distributed Control of Robotic Swarms: Emerging Research and Opportunities, IGI Global, USA, ISBN13: 9781522522805, DOI: 10.4018/978-1-5225-2280-5, 2017 Included in this dataset are: * video files, sets of 10 experiments, grouped by the following six categories: a) using 16 real kilobots controlled using a P colony based model (video_kilobot_lulu_) b) using 16 real kilobots controlled using a FSM based model (video_kilobot_fsm_) c) using 16 simulated kilobots controlled using a P colony based model (video_kilombo_lulu_) d) using 16 simulated kilobots controlled using a FSM based model (video_kilombo_fsm_) e) using 50 simulated kilobots controlled using a P colony based model (video_kilombo_lulu_50_robots) f) using 50 simulated kilobots controlled using a FSM based model (video_kilombo_fsm_50_robots) * experiment data, for each experiment, for each of the previous six categories, grouped in a single ZIP archive (csv_data_and_R_script.zip) * The GNU R source file that can be used to process the experiment data, inside csv_data_and_R_script.zip
Files
Steps to reproduce
All of the required software mentioned bellow is free and open-source. The main software tool used for this controller is the Lulu Pswarm / P colony simulator, available at [1]. This is a Python script required to read the Lulu input files. For the Kilobot, a special version of Lulu has been written in pure C and is available at [2]. This version of the P colony simulator is included in a C version of the P colony based Kilobot controller, available at [3]. Instructions for building a Kilobot application using the P colony controller are provided at [3]. The Event-driven Finite State Machine controller, also written in C, is available at [4]. The Kilobots were simulated using the Kilombo simulator [5], that allows for the same code to be run on both real and simulated robots. The tags used for position, rotation and identification recording of each robot are AprilTags [6] The statistical software R [7] is required In order to re-process the experiment data and see statistically relevant graphics. After installing R, simply unpack the (csv_data_and_R_script.zip) ZIP archive. After this step, open a terminal and go to the folder csv_data_and_R_script that was extracted from the archive. Afterwards, in this folder start R and issue the following command: source("exec.r", print=TRUE) For viewing results obtained from 50 robot tests issue the command: source("exec_50_robots.r", print=TRUE) You will be prompted to press ENTER before moving on to the next important statistical result. [1] https://github.com/andrei91ro/lulu_pcol_sim [2] https://github.com/andrei91ro/lulu_c [3] https://github.com/andrei91ro/lulu_kilobot_c [4] https://github.com/andrei91ro/fsm_kilobot_c [5] https://github.com/JIC-CSB/kilombo [6] https://april.eecs.umich.edu/software/apriltag.html [7] https://www.r-project.org/