Skip to main content

Tests Status 🧪 Docs Deployment 📝 PyPI Release 🚀 License: MIT PettingZoo version dependency GitHub stars

DSSE Icon 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}
}

Metadata

Release files for DSSE 1.1.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for DSSE 1.1.9
File Size Uploaded
dsse-1.1.9.tar.gz 54.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for DSSE 1.1.9
File Interpreter ABI Platform
DSSE-1.1.9-py3-none-any.whl Python 3 none any Details

Total release size: 117.9 kB

Release files / dsse-1.1.9.tar.gz

Download URL dsse-1.1.9.tar.gz
Size 54.7 kB
Tags Source
SHA-256 checksum
How to use checksums
471af6cdcf92c2611c0bede97a6afe6fb3e67e0d44b590ca0f415d130fbdca56
BLAKE2b-256 checksum
How to use checksums
adbe961cb37356b0ad94ee4d6c9d1a0b8998385d14fc92cb64e3f9cedf6250e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.12

Release files / DSSE-1.1.9-py3-none-any.whl

Download URL DSSE-1.1.9-py3-none-any.whl
Size 63.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
431e0a800e89fd8e7a43ecafb306df83217fa685cce2bb377ce64623a0074b2e
BLAKE2b-256 checksum
How to use checksums
944d878ac7f4a0322db84843e0f5396d77bf9cb6f4a705f35b75a879414c624f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.12

Release history Release notifications | RSS feed

This release

1.1.9 This release

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.2.17

2 release files

0.2.16

2 release files

0.2.15

2 release files

0.2.14

2 release files

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2

1 release file

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page