Karthik Soma · Vivek Shankar Vardharajan · Heiko Hamann · Giovanni Beltrame
École Polytechnique de Montréal · MISTLab · University of Konstanz
Scalability is often assumed to be an inherent property of decentralized robot swarms, but practical constraints such as movement congestion and communication conflicts can drastically affect it. This work studies the effects of congestion in a binary collective decision-making task, where a swarm of Khepera IV robots must collectively identify the higher-quality of two sampling zones. We evaluate three decision-making strategies — Honey Bee inspired, Stigmergy based, and Division of Labor — deployed with up to 150 robots in a physics-based ARGoS3 simulation. Our results show that applying Division of Labor coupled with versioned local communication helps to scale the system by minimizing congestion.
arXiv preprint: 2307.08568 Slides: slides/congestion.pdf
@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}
}ARGoS3 can be installed from binaries — see the official website. To build from source:
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 asciidocgit clone https://github.com/ilpincy/argos3.git argos3
cd argos3 && mkdir build_simulator && cd build_simulator
cmake ../src && make && sudo make installcd Buzz && mkdir build && cd build
cmake ../src && sudo make install && sudo ldconfiggit clone https://github.com/ilpincy/argos3-kheperaiv.git
cd argos3-kheperaiv && mkdir build_sim && cd build_sim
cmake -DCMAKE_BUILD_TYPE=Release ../src && make && sudo make installcd loop_fun_src/
mkdir build && cd build/
cmake .. && makeThe compiled library will be at loop_fun_src/build/libDDM_khepera_loop_function.so.
Run from the repo root:
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/ DivisionOfLabor.bzzAll .argos files use relative paths and must be run from the repo root:
argos3 -c DDMkhepera_HoneyBee.argos # Honey Bee inspired
argos3 -c DDMkhepera_stigmergy_divisonoflabor.argos # Division of Labor
argos3 -c DDMkhepera_stigmergy.argos # Stigmergy<loop_functions library="loop_fun_src/build/libDDM_khepera_loop_function.so"
label="LABEL NAME"
robots="120"
dir="data_files/"
seed="SEED NUMBER"
rab_range="1.2"
rab_range_beacon="1.2"
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"/>Jupyter notebooks for analyzing experiment output are in data_processing/:
| Notebook | Strategy |
|---|---|
data_processing/HoneyBee.ipynb |
Honey Bee |
data_processing/Stigmergy.ipynb |
Stigmergy |
data_processing/DivisionOfLabor.ipynb |
Division of Labor |
The paper identifies several open directions:
- Congestion-aware initialization — placing robots to reduce initial crowding near zone boundaries
- Congestion-aware collision avoidance — adapting obstacle avoidance to account for swarm density
- Dynamic state-machine switching — allowing robots to switch between decision-making strategies based on observed congestion levels
- Broader swarm tasks — the findings are expected to transfer to foraging, task allocation, and collective construction scenarios
The docker/ folder provides scripts for building and running the simulation inside a container.
Build the image:
docker/build.shOpen an interactive shell with X11 forwarding for the ARGoS GUI:
docker/run.shThen run the experiments from inside the container:
argos3 -c DDMkhepera_HoneyBee.argos # Honey Bee inspired
argos3 -c DDMkhepera_stigmergy_divisonoflabor.argos # Division of Labor
argos3 -c DDMkhepera_stigmergy.argos # Stigmergy