An environment to train drones to search and find a shipwrecked person lost in the ocean using reinforcement learning.
Project description
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.
Visual Demonstrations
Above: A simulation showing how drones adjust their search pattern over a grid.
Quick Start
Installation
Install DSSE quickly with pip:
pip install DSSE
Outcome
If drone is found | If drone is not found |
---|---|
Basic Env 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],
}
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())
Basic Covarage Usage
from DSSE import CoverageDroneSwarmSearch
env = CoverageDroneSwarmSearch(
grid_size=40,
drone_amount=3,
dispersion_inc=0.1,
vector=(1, 1),
render_mode="human",
)
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={Jorás Oliveira, Pedro Andrade, Ricardo Rodrigues, Renato Laffranchi,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.