Skip to content

Repository files navigation

Congestion and Scalability in Robot Swarms: a Study on Collective Decision Making

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


Simulations


Citation

@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}
}

Installation

ARGoS3

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 asciidoc
git clone https://github.com/ilpincy/argos3.git argos3
cd argos3 && mkdir build_simulator && cd build_simulator
cmake ../src && make && sudo make install

Buzz

cd Buzz && mkdir build && cd build
cmake ../src && sudo make install && sudo ldconfig

ARGoS3 Khepera IV plugin

git 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 install

Loop function

cd loop_fun_src/
mkdir build && cd build/
cmake .. && make

The compiled library will be at loop_fun_src/build/libDDM_khepera_loop_function.so.

Buzz scripts

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.bzz

Running Experiments

All .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

Key loop function parameters

<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"/>

Data Processing

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

Future Work

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

Docker

The docker/ folder provides scripts for building and running the simulation inside a container.

Build the image:

docker/build.sh

Open an interactive shell with X11 forwarding for the ARGoS GUI:

docker/run.sh

Then 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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages