rl_drone_object_search
UAV-based path planning for efficient localization of non-uniformly distributed weeds using prior knowledge: A reinforcement-learning approach
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
Repository
UAV-based path planning for efficient localization of non-uniformly distributed weeds using prior knowledge: A reinforcement-learning approach
Basic Info
- Host: GitHub
- Owner: WUR-ABE
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://doi.org/10.1016/j.compag.2025.110651
- Size: 17.3 MB
Statistics
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
UAV-based path planning for efficient localization of non-uniformly distributed weeds using prior knowledge: A reinforcement-learning approach

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.

Owner
- Name: Wageningen University & Research - Agricultural Biosystems Engineering
- Login: WUR-ABE
- Kind: organization
- Location: Netherlands
- Website: https://www.wur.nl/en/research-results/chair-groups/plant-sciences/agricultural-biosystems-engineering.htm
- Repositories: 1
- Profile: https://github.com/WUR-ABE
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
- actions/checkout v4 composite
- actions/checkout v4 composite
- ${BASE_IMAGE} latest build
- abe latest build
- base latest build
- dev latest build
- openglvnc latest build
- 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 *