This repository contains the implementation for the UAV Testing Competition, which challenges participants to create and evaluate efficient test scenarios for Unmanned Aerial Vehicles (UAVs).
This project implements a test case generation algorithm using advanced techniques such as Evolution Strategies
, specifically the EE-(1+1) algorithm
, which iteratively evolves solutions to minimize the distance and diversity of the test cases. Additionally, a Fibonacci Spiral Point Selection methodology
is used to optimize the distribution of points, ensuring uniform coverage in testing scenarios.
📦 UAV-Testing-Competition/
├── 📁 docs/ # Documentation
├── 📁 reports/ # Competition Report 2024
├── 📁 snippets/ # Scripts
│ ├── 📄 Dockerfile
│ ├── 📄 requirements.txt
│ ├── 📄 config.py
│ ├── 📄 cli.py
│ ├── 📄 evolution_strategy.py
│ ├── 📄 obstacle_generator.py
│ ├── 📄 fibonacci_spiral.py
│ ├── 📄 manual_testing.py
│ ├── 📄 mission_plan.py
│ ├── 📄 README.md
│ ├── 📄 testcase.py
│ └── 📄 utils.py
│ └── 📁 case_studies/ # Drone mission plans
│ ├── 📄 mission1.yaml
│ ├── 📄 ...
│ └── 📄 missionN.yaml
├── 📄 README.md
└── 📄 LICENSE
To ensure compatibility and reproducibility, this project requires Docker (tested on version 27.3.1). Follow the steps below to set up the environment.
- Clone the Repository
Clone the repository to your local machine:
git clone https://github.com/se-fbk/UAV-Testing-Competition.git
- Build the Docker Image
Navigate to the snippets
directory and build the Docker image:
cd UAV-Testing-Competition/snippets/
docker build -t evolv-1 .
- Run the Docker Container Run the Docker container with the required volumes
xhost +
docker run --env DISPLAY=$DISPLAY \
-v "/tmp/.X11-unix:/tmp/.X11-unix:rw" \
-v "$(pwd):/src/generator" \
-it evolv-1 bash
In the config.py
file, you can modify the parameters used by the generator, such as the length and width of obstacles or the size of the Fibonacci spiral.
To start the generation, use the following command:
python3 cli.py generate [mission] [budget]
For example:
python3 cli.py generate case_studies/mission1.yaml 10
This will execute 10 test cases.
The results will be saved in the automatically generated folder: /snippets/generated-test
.
Name | Affiliation | |
---|---|---|
Pietro Lechthaler | [email protected] | Fondazione Bruno Kessler, Trento, Italy |
Davide Prandi | [email protected] | Fondazione Bruno Kessler, Trento, Italy |
Fitsum Meshesha Kifetew | [email protected] | Fondazione Bruno Kessler, Trento, Italy |