Simultaneous decision and response in a collective system using swarm robotics and collective decision making in a fire evacuation scenario.
sudo apt install cmake libfreeimage-dev libfreeimageplus-dev \
qt5-default freeglut3-dev libxi-dev libxmu-dev liblua5.3-dev \
lua5.3Download the appropriate ARGoS package for your system here and follow the installation instructions. Afterwards continue with these steps. You can optionally execute the following 3 commands, to give the simulator GUI a proper desktop desktop icon:
sudo chmod o+w /usr/local/share/applications/argos3.desktop
echo "Icon=gnome-robots.png" >> /usr/local/share/applications/argos3.desktop
sudo chmod o-w /usr/local/share/applications/argos3.desktopgit clone https://github.com/WoutProvost/simultaneous-decision-and-response
cd simultaneous-decision-and-responsemkdir frames logs build
cd build
cmake ..
makesudo cp src/plot/coldecplot /usr/local/bin
sudo cp ../src/plot/autocomplete.sh /etc/bash_completion.d/coldecplot
sudo cp ../src/plot/coldecplot.desktop /usr/local/share/applications
sudo cp ../src/plot/coldecplot.1 /usr/local/share/man/man1
sudo gzip -f /usr/local/share/man/man1/coldecplot.1sudo cp src/seed/coldecseed /usr/local/bin
sudo cp ../src/seed/autocomplete.sh /etc/bash_completion.d/coldecseed
sudo cp ../src/seed/coldecseed.1 /usr/local/share/man/man1
sudo gzip -f /usr/local/share/man/man1/coldecseed.1argos3 -c ../experiments/fire_evacuation.argos
man coldecplot
man coldecseedcd ../experiments
for f in *.argos; do coldecseed -n 30 "$f"; done
nohup parallel --delay 0.5 argos3 -c {1} ::: *.argos &cd ../logs
for f in *.csv; do coldecplot "$f"; doneController appearance params:
leds_color: Defaults toblack.debug_show_preference: Defaults tofalse.
Controller movement params:
max_velocity: Defaults to10.0.max_heading_angle_for_no_turn: Defaults to10.0.min_heading_angle_for_hard_turn: Defaults to90.0.random_turn_ticks:- A value of
0disables turning to a random direction after a configured amount of ticks. - Defaults to
100.
- A value of
Controller collision_avoidance params:
max_angle_between_heading_and_obstacle: Defaults to5.0.max_obstacle_proximity: Defaults to0.1.
Temperature sensing controller decision_strategy params:
mode:- Mode
pluralityuses the exit with the most votes as long as there is no ex aequo. - Mode
majorityuses the exit with more than 50% of the votes. - Mode
qualityuses the exit with the best average quality as long as there is no ex aequo. - Mode
randomuses the exit of a random neighbor. - Defaults to
none.
- Mode
check_for_fire_criticality:- Doesn't support multiple fires when disabled.
- Defaults to
true.
Gate gripping controller reaction_strategy params:
min_agreement_percentage: Defaults to0.8.min_duration_ticks: Defaults to300.
Loop functions nest params:
size:- The value is a list of 2 widths, one for each dimension, separated by a comma.
- Defaults to
15,15.
Loop functions heatmap params:
tiles_per_meter: Defaults to6.max_temperature:- Maximum of
255, since the grayscale color range and UInt8 range is [0, 255]. - Defaults to
255.
- Maximum of
debug_mode:- Mode
gradientis useful to show the whole temperature range in terms of steps. - Mode
resolutionis useful to show how large the tiles are compared to the robots. - Defaults to
none.
- Mode
debug_use_colors:- The simulation only works with grayscale, so make sure to disable color after debugging.
- Defaults to
false.
Loop functions fire params:
sources: Defaults to1.positionX:- The
Xcan be a number from1to the amount ofsources. - Each source can be controlled independently by its own attribute.
- The value is a list of 2 nest coordinates separated by a comma.
- If the value provided is outside the nest, the source falls back to a random position in the nest.
- For a nest size of e.g. 15 meters along one axis, the valid range is
[-7.5:7.49]and not[-7.5:7.5]. - Defaults to a random position in the nest.
- The
circle_radius: Defaults to3.0.
Loop functions log params:
file: Defaults to../logs/log.csv.disable: Defaults tofalse.
User functions divider params:
enable_horizontal: Defaults totrue.enable_vertical: Defaults tofalse.
sudo rm -rf /usr/local/bin/coldecplot
sudo rm -rf /etc/bash_completion.d/coldecplot
sudo rm -rf /usr/local/share/applications/coldecplot.desktop
sudo rm -rf /usr/local/share/man/man1/coldecplot.1sudo rm -rf /usr/local/bin/coldecseed
sudo rm -rf /etc/bash_completion.d/coldecseed
sudo rm -rf /usr/local/share/man/man1/coldecseed.1