The Drone Swarm Search project provides an environment for SAR missions built on PettingZoo, where agents, represented by drones, are tasked with locating targets identified as shipwrecked individuals.
Project description
Drone Swarm Search Environment (DSSE)
Welcome to the official GitHub repository for the Drone Swarm Search Environment (DSSE). This project offers a comprehensive simulation platform designed for developing, testing, and refining search strategies using drone swarms. Researchers and developers will find a versatile toolset supporting a broad spectrum of simulations, which facilitates the exploration of complex drone behaviors and interactions in dynamic, real-world scenarios.
In this repository, we have implemented two distinct types of environments. The first is a dynamic environment that simulates maritime search and rescue operations for shipwreck survivors. It models the movement of individuals in the sea using a dynamic probability matrix, with the objective for drones being to locate and identify these individuals. The second is a environment utilizing the Lagrangian particle simulation from the open-source Opendrift library, which incorporates real-world ocean and wind data to create a probability matrix for drone SAR tasks. In this scenario, drones are tasked with covering the full search area within the lowest time possible, while prioritizing higher probability areas.
📚 Documentation Links
-
Documentation Site: Access comprehensive documentation including tutorials, and usage examples for the Drone Swarm Search Environment (DSSE). Ideal for users seeking detailed information about the project's capabilities and how to integrate them into their own applications.
-
Algorithm Details: Explore in-depth discussions and source code for the algorithms powering the DSSE. This section is perfect for developers interested in the technical underpinnings and enhancements of the search algorithms.
-
PyPI Repository: Visit the PyPI page for DSSE to download the latest release, view release histories, and read additional installation instructions.
DSSE - Search Environment
🎥 Visual Demonstrations
Above: A simulation showing how drones adjust their search pattern over a grid.
🎯 Outcome
If target is found | If target is not found |
---|---|
⚡ Quick Start
⚙️ Installation
Quickly install DSSE using pip:
pip install DSSE
🛠️ Basic Env Search Usage
from DSSE import DroneSwarmSearch
env = DroneSwarmSearch(
grid_size=40,
render_mode="human",
render_grid=True,
render_gradient=True,
vector=(1, 1),
timestep_limit=300,
person_amount=4,
dispersion_inc=0.05,
person_initial_position=(15, 15),
drone_amount=2,
drone_speed=10,
probability_of_detection=0.9,
pre_render_time=0,
)
def random_policy(obs, agents):
actions = {}
for agent in agents:
actions[agent] = env.action_space(agent).sample()
return actions
opt = {
"drones_positions": [(10, 5), (10, 10)],
"person_pod_multipliers": [0.1, 0.4, 0.5, 1.2],
"vector": (0.3, 0.3),
}
observations, info = env.reset(options=opt)
rewards = 0
done = False
while not done:
actions = random_policy(observations, env.get_agents())
observations, rewards, terminations, truncations, infos = env.step(actions)
done = any(terminations.values()) or any(truncations.values())
DSSE - Coverage Environment
🎥 Visual Demonstrations
Above: A simulation showing how drones adjust their search pattern over a grid.
⚡ Quick Start
⚙️ Installation
Install DSSE with coverage support using pip:
pip install DSSE[coverage]
🛠️ Basic Coverage Usage
from DSSE import CoverageDroneSwarmSearch
env = CoverageDroneSwarmSearch(
drone_amount=3,
render_mode="human",
disaster_position=(-24.04, -46.17), # (lat, long)
pre_render_time=10, # hours to simulate
)
opt = {
"drones_positions": [(0, 10), (10, 10), (20, 10)],
}
obs, info = env.reset(options=opt)
step = 0
while env.agents:
step += 1
actions = {agent: env.action_space(agent).sample() for agent in env.agents}
observations, rewards, terminations, truncations, infos = env.step(actions)
print(infos["drone0"])
🆘 Support
If you encounter any issues or have questions, please file an issue on our GitHub issues page.
📖 How to cite this work
If you use this package, please consider citing it with this piece of BibTeX:
@misc{castanares2023dsse,
title={DSSE: a drone swarm search environment},
author={Manuel Castanares, Luis F. S. Carrete, Enrico F. Damiani, Leonardo D. M. de Abreu, José Fernando B. Brancalion and Fabrício J. Barth},
year={2024},
eprint={2307.06240},
archivePrefix={arXiv},
primaryClass={cs.LG},
doi={https://doi.org/10.48550/arXiv.2307.06240}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file dsse-1.1.9.tar.gz
.
File metadata
- Download URL: dsse-1.1.9.tar.gz
- Upload date:
- Size: 54.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 471af6cdcf92c2611c0bede97a6afe6fb3e67e0d44b590ca0f415d130fbdca56 |
|
MD5 | a9f8076bf5ce053fbffc5b691fcaa221 |
|
BLAKE2b-256 | adbe961cb37356b0ad94ee4d6c9d1a0b8998385d14fc92cb64e3f9cedf6250e2 |
File details
Details for the file DSSE-1.1.9-py3-none-any.whl
.
File metadata
- Download URL: DSSE-1.1.9-py3-none-any.whl
- Upload date:
- Size: 63.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 431e0a800e89fd8e7a43ecafb306df83217fa685cce2bb377ce64623a0074b2e |
|
MD5 | 914d42feea2dc2bc4ea8eb94404ff423 |
|
BLAKE2b-256 | 944d878ac7f4a0322db84843e0f5396d77bf9cb6f4a705f35b75a879414c624f |