DSSE


NameDSSE JSON
Version 1.1.7 PyPI version JSON
download
home_pageNone
SummaryThe 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.
upload_time2024-05-02 18:43:14
maintainerNone
docs_urlNone
authorLuis Filipe Carrete, Manuel Castanares, Enrico Damiani, Leonardo Malta
requires_python>=3.10.5
licenseMIT License
keywords reinforcement learning ai sar multi agent reinforcement learning
VCS
bugtrack_url
requirements numpy gymnasium pygame pettingzoo matplotlib pytest numba wheel GDAL opendrift
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Tests Status 🧪](https://github.com/pfeinsper/drone-swarm-search/actions/workflows/env.yml/badge.svg)](https://github.com/pfeinsper/drone-swarm-search/actions/workflows/env.yml)
[![Docs Deployment 📝](https://github.com/pfeinsper/drone-swarm-search/actions/workflows/deploy.yml/badge.svg?branch=vitepress_docs)](https://github.com/pfeinsper/drone-swarm-search/actions/workflows/deploy.yml)
[![PyPI Release 🚀](https://badge.fury.io/py/DSSE.svg)](https://badge.fury.io/py/DSSE)
[![License: MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg?style=flat)](https://github.com/pfeinsper/drone-swarm-search/blob/main/LICENSE)
[![PettingZoo version dependency](https://img.shields.io/badge/PettingZoo-v1.22.3-blue)]()
![GitHub stars](https://img.shields.io/github/stars/pfeinsper/drone-swarm-search)

# <img src="https://github.com/pfeinsper/drone-swarm-search/blob/main/docs/public/pics/drone.svg" alt="DSSE Icon" width="45" height="25"> Drone Swarm Search Environment (DSSE)

Welcome to the official GitHub repository for the Drone Swarm Search Environment (DSSE). This project is dedicated to providing a comprehensive simulation environment designed to develop, test, and refine drone swarm search strategies. Here, researchers and developers can access a versatile platform that supports a wide range of drone swarm simulations, enabling the exploration of complex behaviors and interactions within dynamic, real-world scenarios.


## 📚 Documentation Links

- **[Documentation Site](https://pfeinsper.github.io/drone-swarm-search/)**: 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](https://github.com/pfeinsper/drone-swarm-search-algorithms)**: 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](https://pypi.org/project/DSSE/)**: Visit the PyPI page for DSSE to download the latest release, view release histories, and read additional installation instructions.

## 🎥 Visual Demonstrations
<p align="center">
    <img src="https://raw.github.com/PFE-Embraer/drone-swarm-search/env-cleanup/docs/gifs/render_with_grid_gradient.gif" width="400" height="400" align="center">
    <br>
    <em>Above: A simulation showing how drones adjust their search pattern over a grid.</em>
</p>

## ⚡Quick Start

### ⚙️ Installation
Install DSSE quickly with pip:
```bash
pip install DSSE
````

## 🎯 Outcome

| If target is found       | If target is not found   |
:-------------------------:|:-------------------------:
| ![](https://raw.githubusercontent.com/PFE-Embraer/drone-swarm-search/main/docs/public/pics/victory_render.png)     | ![](https://raw.github.com/PFE-Embraer/drone-swarm-search/main/docs/public/pics/fail_render.png) |


## 🛠️ Basic Env Usage
```python
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 Coverage Usage
```python
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](https://github.com/pfeinsper/drone-swarm-search/issues).

## 📖 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}
}
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "DSSE",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10.5",
    "maintainer_email": null,
    "keywords": "Reinforcement Learning, AI, SAR, Multi Agent Reinforcement Learning",
    "author": "Luis Filipe Carrete, Manuel Castanares, Enrico Damiani, Leonardo Malta",
    "author_email": "Ricardo Ribeiro Rodrigues <ricardorr7@al.insper.edu.br>, Renato Laffranchi Falc\u00e3o <renatolf1@al.insper.edu.br>, Pedro Henrique Britto Arag\u00e3o Andrade <pedroa3@al.insper.edu.br>, Jor\u00e1s Oliveira <jorascco@al.insper.edu.br>, Fabricio Barth <fabriciojb@insper.edu.br>",
    "download_url": "https://files.pythonhosted.org/packages/40/a6/d5712a4c134db759529ce07797a0a452ee32b4db236ca9a00591872e1ab0/dsse-1.1.7.tar.gz",
    "platform": null,
    "description": "[![Tests Status \ud83e\uddea](https://github.com/pfeinsper/drone-swarm-search/actions/workflows/env.yml/badge.svg)](https://github.com/pfeinsper/drone-swarm-search/actions/workflows/env.yml)\n[![Docs Deployment \ud83d\udcdd](https://github.com/pfeinsper/drone-swarm-search/actions/workflows/deploy.yml/badge.svg?branch=vitepress_docs)](https://github.com/pfeinsper/drone-swarm-search/actions/workflows/deploy.yml)\n[![PyPI Release \ud83d\ude80](https://badge.fury.io/py/DSSE.svg)](https://badge.fury.io/py/DSSE)\n[![License: MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg?style=flat)](https://github.com/pfeinsper/drone-swarm-search/blob/main/LICENSE)\n[![PettingZoo version dependency](https://img.shields.io/badge/PettingZoo-v1.22.3-blue)]()\n![GitHub stars](https://img.shields.io/github/stars/pfeinsper/drone-swarm-search)\n\n# <img src=\"https://github.com/pfeinsper/drone-swarm-search/blob/main/docs/public/pics/drone.svg\" alt=\"DSSE Icon\" width=\"45\" height=\"25\"> Drone Swarm Search Environment (DSSE)\n\nWelcome to the official GitHub repository for the Drone Swarm Search Environment (DSSE). This project is dedicated to providing a comprehensive simulation environment designed to develop, test, and refine drone swarm search strategies. Here, researchers and developers can access a versatile platform that supports a wide range of drone swarm simulations, enabling the exploration of complex behaviors and interactions within dynamic, real-world scenarios.\n\n\n## \ud83d\udcda Documentation Links\n\n- **[Documentation Site](https://pfeinsper.github.io/drone-swarm-search/)**: 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.\n\n- **[Algorithm Details](https://github.com/pfeinsper/drone-swarm-search-algorithms)**: 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.\n\n- **[PyPI Repository](https://pypi.org/project/DSSE/)**: Visit the PyPI page for DSSE to download the latest release, view release histories, and read additional installation instructions.\n\n## \ud83c\udfa5 Visual Demonstrations\n<p align=\"center\">\n    <img src=\"https://raw.github.com/PFE-Embraer/drone-swarm-search/env-cleanup/docs/gifs/render_with_grid_gradient.gif\" width=\"400\" height=\"400\" align=\"center\">\n    <br>\n    <em>Above: A simulation showing how drones adjust their search pattern over a grid.</em>\n</p>\n\n## \u26a1Quick Start\n\n### \u2699\ufe0f Installation\nInstall DSSE quickly with pip:\n```bash\npip install DSSE\n````\n\n## \ud83c\udfaf Outcome\n\n| If target is found       | If target is not found   |\n:-------------------------:|:-------------------------:\n| ![](https://raw.githubusercontent.com/PFE-Embraer/drone-swarm-search/main/docs/public/pics/victory_render.png)     | ![](https://raw.github.com/PFE-Embraer/drone-swarm-search/main/docs/public/pics/fail_render.png) |\n\n\n## \ud83d\udee0\ufe0f Basic Env Usage\n```python\nfrom DSSE import DroneSwarmSearch\n\nenv = DroneSwarmSearch(\n    grid_size=40,\n    render_mode=\"human\",\n    render_grid=True,\n    render_gradient=True,\n    vector=(1, 1),\n    timestep_limit=300,\n    person_amount=4,\n    dispersion_inc=0.05,\n    person_initial_position=(15, 15),\n    drone_amount=2,\n    drone_speed=10,\n    probability_of_detection=0.9,\n    pre_render_time=0,\n)\n\n\ndef random_policy(obs, agents):\n    actions = {}\n    for agent in agents:\n        actions[agent] = env.action_space(agent).sample()\n    return actions\n\n\nopt = {\n    \"drones_positions\": [(10, 5), (10, 10)],\n    \"person_pod_multipliers\": [0.1, 0.4, 0.5, 1.2],\n}\nobservations, info = env.reset(options=opt)\n\nrewards = 0\ndone = False\nwhile not done:\n    actions = random_policy(observations, env.get_agents())\n    observations, rewards, terminations, truncations, infos = env.step(actions)\n    done = any(terminations.values()) or any(truncations.values())\n```\n\n## \ud83d\udee0\ufe0f Basic Coverage Usage\n```python\nfrom DSSE import CoverageDroneSwarmSearch\n\nenv = CoverageDroneSwarmSearch(\n    grid_size=40,\n    drone_amount=3,\n    dispersion_inc=0.1,\n    vector=(1, 1),\n    render_mode=\"human\",\n)\n\nopt = {\n    \"drones_positions\": [(0, 10), (10, 10), (20, 10)],\n}\nobs, info = env.reset(options=opt)\n\nstep = 0\nwhile env.agents:\n    step += 1\n    actions = {agent: env.action_space(agent).sample() for agent in env.agents}\n    observations, rewards, terminations, truncations, infos = env.step(actions)\n\nprint(infos[\"drone0\"])\n```\n\n## \ud83c\udd98 Support\n\nIf you encounter any issues or have questions, please file an issue on our [GitHub issues page](https://github.com/pfeinsper/drone-swarm-search/issues).\n\n## \ud83d\udcd6 How to cite this work\n\nIf you use this package, please consider citing it with this piece of BibTeX:\n\n```\n@misc{castanares2023dsse,\n      title={DSSE: a drone swarm search environment}, \n      author={Manuel Castanares, Luis F. S. Carrete, Enrico F. Damiani, Leonardo D. M. de Abreu, Jos\u00e9 Fernando B. Brancalion and Fabr\u00edcio J. Barth},\n      year={2024},\n      eprint={2307.06240},\n      archivePrefix={arXiv},\n      primaryClass={cs.LG},\n      doi={https://doi.org/10.48550/arXiv.2307.06240}\n}\n```\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "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.",
    "version": "1.1.7",
    "project_urls": {
        "Bug Report": "https://github.com/pfeinsper/drone-swarm-search/issues/",
        "Documentation": "https://pfeinsper.github.io/drone-swarm-search/",
        "Download": "https://github.com/pfeinsper/drone-swarm-search/archive/refs/tags/1.1.7.tar.gz",
        "Homepage": "https://pfeinsper.github.io/drone-swarm-search/",
        "Repository": "https://github.com/pfeinsper/drone-swarm-search/"
    },
    "split_keywords": [
        "reinforcement learning",
        " ai",
        " sar",
        " multi agent reinforcement learning"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "81c326cf8ceb633a5a3700b8bc8c2154fabe911a31f152302c34fcf8a281472d",
                "md5": "a03ec9d8abcf431b647fc6426f62e8a7",
                "sha256": "d708ea34d6c05c8252055eb24024378d51a67536353763517723c1411485523b"
            },
            "downloads": -1,
            "filename": "DSSE-1.1.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a03ec9d8abcf431b647fc6426f62e8a7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10.5",
            "size": 57433,
            "upload_time": "2024-05-02T18:43:12",
            "upload_time_iso_8601": "2024-05-02T18:43:12.935253Z",
            "url": "https://files.pythonhosted.org/packages/81/c3/26cf8ceb633a5a3700b8bc8c2154fabe911a31f152302c34fcf8a281472d/DSSE-1.1.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "40a6d5712a4c134db759529ce07797a0a452ee32b4db236ca9a00591872e1ab0",
                "md5": "4499ed1a169de3ed1fa08a245bcb50b0",
                "sha256": "fb83334c54ef8863165c24e093d27c3017edecc063d7cf178f69924093e1ce2f"
            },
            "downloads": -1,
            "filename": "dsse-1.1.7.tar.gz",
            "has_sig": false,
            "md5_digest": "4499ed1a169de3ed1fa08a245bcb50b0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10.5",
            "size": 52082,
            "upload_time": "2024-05-02T18:43:14",
            "upload_time_iso_8601": "2024-05-02T18:43:14.987703Z",
            "url": "https://files.pythonhosted.org/packages/40/a6/d5712a4c134db759529ce07797a0a452ee32b4db236ca9a00591872e1ab0/dsse-1.1.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-02 18:43:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pfeinsper",
    "github_project": "drone-swarm-search",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.23.1"
                ]
            ]
        },
        {
            "name": "gymnasium",
            "specs": [
                [
                    ">=",
                    "0.27.1"
                ]
            ]
        },
        {
            "name": "pygame",
            "specs": [
                [
                    ">=",
                    "2.3.0"
                ]
            ]
        },
        {
            "name": "pettingzoo",
            "specs": [
                [
                    ">=",
                    "1.22.3"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    ">=",
                    "3.7.0"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "8.0.0"
                ]
            ]
        },
        {
            "name": "numba",
            "specs": [
                [
                    ">=",
                    "0.59.0"
                ]
            ]
        },
        {
            "name": "wheel",
            "specs": []
        },
        {
            "name": "GDAL",
            "specs": [
                [
                    "==",
                    "3.4.1"
                ]
            ]
        },
        {
            "name": "opendrift",
            "specs": []
        }
    ],
    "lcname": "dsse"
}
        
Elapsed time: 0.24830s