To cite us:
@misc{soma2023congestion,
title={Congestion and Scalability in Robot Swarms: a Study on Collective Decision Making},
author={Karthik Soma and Vivek Shankar Vardharajan and Heiko Hamann and Giovanni Beltrame},
year={2023},
eprint={2307.08568},
archivePrefix={arXiv},
primaryClass={cs.RO}
}
Setting up the simulations for Honey Bee, Stigmergy and Divison of Labor approaches in Argos3 and Buzz.
ARGoS3 Simulator ARGoS3 simulator can also be installed from binaries please refer to the official website for more information: https://www.argos-sim.info/ The instructions below are for installing ARGoS3 from its source. Official code repository: https://github.com/ilpincy/argos3 Dependencies for ARGoS3 can be installed using the following command:
sudo apt-get install cmake libfreeimage-dev libfreeimageplus-dev \
qt5-default freeglut3-dev libxi-dev libxmu-dev liblua5.3-dev \
lua5.3 doxygen graphviz graphviz-dev asciidoc
Installations for Argos3
$ git clone https://github.com/ilpincy/argos3.git argos3
$ cd argos3
$ mkdir build_simulator
$ cd build_simulator
$ cmake ../src
$ make
$ sudo make install
Installations for Buzz
$ cd Buzz
$ mkdir build
$ cd build
$ cmake ../src
$ sudo make install
$ sudo ldconfig
Installations for Khepera V
$ git clone https://github.com/ilpincyargos3-kheperaiv.git
$ mkdir build_sim
$ cd build_sim
$ cmake -DCMAKE_BUILD_TYPE=Release ../src
$ make
$ sudo make install
Building the loop function for ARGoS:
$ cd loop_fun_src/
$ mkdir build
$ cd build/
$ cmake ..
$ make
Building the Buzz scripts:
cd buzz_scripts
bzzc -I includes/ HoneyBee_pm.bzz
bzzc -I includes/ HoneyBee_wpm.bzz
bzzc -I includes/ StigmergyDatabase.bzz
bzzc -I includes/ StigmergyConsensus.bzz
bzzc -I includes/ DivsionOfLabor.bzz
To run the experiments:
argos3 -c DDMkhepera_HoneyBee.argos #Honey Bee inspired approach
argos3 -c DDMkhepera_stigmergy_divisonoflabor.argos # Stigmergy and division of labor
argos3 -c DDMkhepera_stigmergy.argos #Stigmergy approach
Refer to data_processing/HoneyBee.ipynb
for the Honey Bee approach, data_processing/Stigmergy.ipynb
for the Stigmergy approach and data_processing/DivisionOfLabor.ipynb
for the Divison of labor approach.
For examples check the files DDMkhepera_HoneyBee.argos
, DDMkhepera_stigmergy_divisonoflabor.argos
and DDMkhepera_stigmergy.argos
.
<loop_functions library="BINARY_FILE_OF_BUILD_FILE_LOOPFUNCTION"
label="LABEL NAME"
robots = "NUMBER OF ROBOTS"
dir = "DATA FILE OUTPUT DIRECTORY"
seed = "SEED NUMBER"
rab_range = "RANGE OF ROBOTS"
rab_range_beacon = "RANGE OF BEACONS"
rab_data_size = "MESSAGE SIZE IN BYTES"
fill_ratio_white = "ZONE A FILL RATIO"
fill_ratio_black = "ZONE B FILL RATIO"
out_file = "OUTPUT FILE CLASS NAME"/>