rl_drone_object_search

UAV-based path planning for efficient localization of non-uniformly distributed weeds using prior knowledge: A reinforcement-learning approach

https://github.com/wur-abe/rl_drone_object_search

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.3%) to scientific vocabulary

Keywords

agriculture dqn object-detection reinforcement-learning uav
Last synced: 6 months ago · JSON representation ·

Repository

UAV-based path planning for efficient localization of non-uniformly distributed weeds using prior knowledge: A reinforcement-learning approach

Basic Info
Statistics
  • Stars: 3
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
agriculture dqn object-detection reinforcement-learning uav
Created over 1 year ago · Last pushed 8 months ago
Metadata Files
Readme License Citation

README.md

UAV-based path planning for efficient localization of non-uniformly distributed weeds using prior knowledge: A reinforcement-learning approach

drone-grid-env

UAV-based path planning for efficient localization of non-uniformly distributed weeds using prior knowledge: A reinforcement-learning approach\ Rick van Essen, Eldert van Henten, and Gert Kootstra Paper: https://doi.org/10.1016/j.compag.2025.110651

About

This is the code belonging to the paper 'UAV-based path planning for efficient localization of non-uniformly distributed weeds using prior knowledge: A reinforcement-learning approach'. It contains the simulation environment and the code to train and reproduce the results of the paper.

Installation

Python 3.12 or higher is needed with all dependencies listed in requirements.txt. Install using:

commandline pip install --upgrade pip pip install -e . export DATA_HOME=<<path to orthomosaic folders>> # Only needed when running experiment 5

Additionally, Fields2Cover is needed to calculate the baseline row-by-row flight path. See their website for installation instructions.

Alternatively, you can use the provided dev container.

For experiment 5, the orthomosaics can be downloaded from https://doi.org/10.4121/bbe97051-07df-4934-b634-701d91a2075e.

Usage

Train RL agent

To train the RL agent, you need to define an experiment containing the simulation configuration and the training parameters. The experiments folder contains the configuration files for the experiments done in the paper. Then use the bash script to train:

commandline ./run_trainings <<experiment name>>

Evaluate RL agent

To evaluate a trained RL agent, use the evaluation script. To reproduce the experiments done in the paper, run:

commandline ./run_evaluations <<experiment name>>

Then use create_results_plots.ipynb to reproduce the plots.

Play

To control the drone by keyboard, run:

commandline python3 -m drone_grid_env.utils.play --env_args config_file=<<path to config file>>

Use ASDW to move the drone 1 step in each direction and L to land the drone (when enabled in the configuration file).

Citation

If you find this code usefull, please consider citing our paper: @article{vanEssen2025, author = {van Essen, Rick and van Henten, Eldert and Kootstra, Gert}, title = {{UAV}-based path planning for efficient localization of non-uniformly distributed weeds using prior knowledge: A reinforcement-learning approach}, journal = {Computers and Electronics in Agriculture}, volume = {237}, pages = {110651}, year = {2025}, issn = {0168-1699}, doi = {10.1016/j.compag.2025.110651} }

Funding

This research is part of the research program SYNERGIA, funding was obtained from the Dutch Research Council (NWO grant 17626), IMEC-One Planet and other private parties.

wageningen university logo     synergia logo

Owner

  • Name: Wageningen University & Research - Agricultural Biosystems Engineering
  • Login: WUR-ABE
  • Kind: organization
  • Location: Netherlands

Citation (CITATION.cff)

cff-version: 1.2.0
message: If you use this software, please cite both the article from preferred-citation and the software itself.
authors:
  - family-names: van Essen
    given-names: Rick
    orcid: "https://orcid.org/0000-0002-5177-4271"
  - family-names: van Henten
    given-names: Eldert
    orcid: "https://orcid.org/0000-0002-1623-9855"
  - family-names: Kootstra
    given-names: Gert
    orcid: "https://orcid.org/0000-0002-2579-4324"
title: "UAV-based path planning for efficient localization of non-uniformly distributed weeds using prior knowledge: A reinforcement-learning approach"
version: 1.0.0
url: https://doi.org/10.1016/j.compag.2025.110651
preferred-citation:
  authors:
    - family-names: van Essen
      given-names: Rick
      orcid: "https://orcid.org/0000-0002-5177-4271"
    - family-names: van Henten
      given-names: Eldert
      orcid: "https://orcid.org/0000-0002-1623-9855"
    - family-names: Kootstra
      given-names: Gert
      orcid: "https://orcid.org/0000-0002-2579-4324"
  title: "UAV-based path planning for efficient localization of non-uniformly distributed weeds using prior knowledge: A reinforcement-learning approach"
  journal: "Computers and Electronics in Agriculture"
  volume: 237
  start: 110651
  issn: "0168-1699"
  doi: "10.1016/j.compag.2025.110651"
  type: article
  year: 2025

GitHub Events

Total
  • Watch event: 5
  • Push event: 10
Last Year
  • Watch event: 5
  • Push event: 10

Dependencies

.github/workflows/citation.yml actions
  • actions/checkout v4 composite
.github/workflows/license.yml actions
  • actions/checkout v4 composite
.devcontainer/Dockerfile docker
  • ${BASE_IMAGE} latest build
  • abe latest build
  • base latest build
  • dev latest build
  • openglvnc latest build
pyproject.toml pypi
requirements.txt pypi
  • IProgress *
  • black *
  • codecarbon *
  • decorator ==4.4.2
  • gymnasium *
  • ipywidgets *
  • isort *
  • jupyterlab *
  • lark *
  • lxml *
  • moviepy >=1.0.3,<2.0.0
  • mypy *
  • numpy *
  • opencv-python *
  • pandas *
  • pygame >=2.2.0
  • pylint *
  • pytest *
  • pytest-cov *
  • pyyaml *
  • requests *
  • rl_zoo3 *
  • sb3_contrib *
  • scikit-image *
  • scikit-learn *
  • scipy >=0.14.0
  • seaborn *
  • simplekml *
  • stable_baselines3 *
  • tabulate *
  • tensorboard *
  • torch *
  • tqdm *
  • typed-argument-parser *
  • types-pyyaml *
  • types-tabulate *
  • types-toml *
  • typing_extensions >=4.0.0
  • wandb *