Skip to content

AleCarminati/ml-faultdetection-epuck

Repository files navigation

Machine Learning-based fault detection in a e-puck swarm

This repository contains the code and the supplementary material for the study: A. Carminati, D. Azzalini, S. Vantini, and F. Amigoni, “A Distributed Approach for Fault Detection in Swarms of Robots,” Proceedings of the 2024 International Conference on Autonomous Agents and Multiagent Systems, 2024.

Installation

The code is tested on the version 3.0.0-beta56 of the ARGoS simulator.

To download this folder, use the following command-line instruction:

git clone --recurse-submodule [email protected]:AleCarminati/ml-faultdetection-epuck.git

Then, by using cd ml-faultdetection-epuck you will enter the newly downloaded folder.

To build the executable, use the following list of commands:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

Configuration

For end users: the main settings of the experiment can be found in the file experiments/fault_detection.argos. Attention: modifying the parameters of the robots and the environment could invalidate the performances of the fault detection algorithm.

For developers: the parameters of the fault detection algorithm can be found in the file config.ini. Modify them only if you know what you are doing!

Run

Single fault

To run the experiment, from the terminal in the root folder write:

argos3 -c experiments/fault_detection.argos

When you modify the code, from the root folder run the command:

./execute.sh

which recompiles the code and then executes the simulation.

To run one experiment for each type of fault, from the root folder run the command:

./execute_all_faults.sh

Multi fault

To run the experiment with more than one faulty robot, from the terminal in the root folder write:

argos3 -c experiments/fault_detection_multifault.argos

When you modify the code, from the root folder run the command:

./execute.sh m

which recompiles the code and then executes the simulation.

Contributing

Before committing any changes, be sure to have installed the pre-commit hooks by running the following command from the root folder:

./bash/setup_pre_commit.sh

The pre-commit hooks contain some automatic checks to improve readability of the code. In particular, it uses the clang package.

Milestones

Commit 19f511f: this version of the software has been used to generate training data and to test the fault detection system when a single robot is fault, obtaining the results that are displayed in the master's thesis.

Commit c503768: this version of the software has been used to test the fault detection system when multiple robots are fault, obtaining the results that are displayed in the master's thesis.

About

Machine Learning-based fault detection in a e-puck swarm.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published