EMAP is a planning framework developed in the scope of the master's thesis titled 'Using Artificial Evolution for Planning in Self-Organizing Robot Systems'. It intends to solve the multi-agent programming contest of 2018.
EMAP requires ROS melodic and Python 3. The following is a step-by-step guide to install all necessary components to run EMAP.
Under Ubuntu, install ROS melodic according to the official ROS installation guide.
In arch-based systems, ROS can be installed from the AUR repository. You need an AUR package manager like yay:
yay -S ros-melodic-ros-base
After installing ROS, initialize it by
sudo rosdep init
rosdep update
You might want to add the global ROS workspace to your bashrc:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
EMAP is implemented with python3 and the following python3 packages have to be installed, e.g. by using pip. In Ubuntu, the packages can be installed by
sudo pip3 install scipy, networkx
Arch-based systems use python3 as a default and the necessary packages can be installed by using
sudo pip install scipy, networkx
Copy the contents from https://github.com/graphhopper/graphhopper to the third-party/graphopper folder. The zip containing the massim simulation server in the folder my_mapc/third_party has to be unpacked. After that, in the my_mapc folder, run
catkin_make
The massim server can be started within the my_mapc folder by running
bash ./massim.sh
There are two options for starting the server. Option 0 starts the simulation for one team. The server then expects only a team A. The evolutionary and randomized versions of EMAP for this configuration can be started by running
bash ./emap_evolution.sh
or
bash ./emap_random_a.sh
Option 1 in the massim configuration starts a competition and the server expects two teams, i.e. team A and team B. If you want to run a competition between the randomized and the evolutionary version of EMAP, the following two scripts have to be run in separate terminals:
bash ./emap_evolution.sh
and
bash ./emap_random.sh
The plots shown in the thesis' evaluation chapter can be reproduced by running
python3 ./evaluate.py
in the my_mapc folder. This will generate the plots in the my_mapc/plots folder and produce latex-formatted output for the statistics presented in the tables in the thesis.