This code needs Python 2.7. Since it relies on Gambit 15, you need to build Gambit from source as well as its Python extension.
abm_analysis.py
: This script generates CSV files with simulation results (simulate_and_store
produces files in the format of*_experiment_results.csv
) and then performs statistical analysis and writes its results tometrics.csv
. Itsrun_parallel_simulations
function is used in multiple scripts for running IMPACT+ simulations. Themetrics.csv
includes, per scenario:- Mean evacuation time.
- Standard deviation of evacuation time.
- Minimum evacuation time.
- Maximum evacuation time.
- Post-Hoc pairwise Dunn's test, against the other scenarios.
abm_gamemodel.py
: This script contains thegenerate_game_model
function, that uses Gambit to return a game-theoretic model of the robot-survivor interaction. It is used by theabm_runner.py
script.abm_runner.py
: This is the script called within the Netlogo IMPACT+ simulation, for providing a decision for the robot interacting with a survivor. In each call to this script, we generate an instance ofAutonomicManagerController
equipped with aTypeAnalyser
instance (seeanalyser.py
) for decisions based on identity inference.abm_sensitivity.py
: This scripts generates the data and plots for the sensitivity analysis of evacuation time as a function of fall length and help factor.
- IDEA robot exploring: Lime green vehicle.
- IDEA robot requesting survivor help: Magenta vehicle.
- Passengers: Black stick figures.
- First responders: Green stick figures.
- Passengers evacuating: Pink stick figures.
- Dead passengers: Grey stick figures.