Green Vigilance
A Python-first UAV/UGV simulation baseline for early crop-disease detection: scenario comparison, EKF and WLS estimation, and reproducible visual outputs.
Scope: a Python migration and reconstruction of a UAV/UGV precision-agriculture system originally explored for early crop-disease detection. The current work is a reproducible simulation baseline, not a production-ready field robot.
My contribution: the Python baseline is published in my GitHub repository. The context of the original system is not stated.

1 Overview
The simulation compares scenario configurations, estimates UAV and UGV localization error, assigns ground targets from a disease heatmap, and produces visual outputs and summary reports that can be regenerated from YAML inputs.
2 Architecture
- Scenario YAML config
- UAV unicycle dynamics + EKF
- Camera / frustum observation
- Disease heatmap
- UGV target assignment
- Noisy localization + WLS estimate
- Summary JSON, CSV/Markdown, figures
3 Key features
| Feature | Description |
|---|---|
| Scenario coverage | Baseline, high-noise and extreme-uncertainty scenarios, defined as reproducible YAML configurations |
| Deterministic UAV path | The UAV follows a deterministic 30% coverage path, for repeatable comparisons between scenario settings |
| Target assignment | Disease heatmaps drive UGV target assignment for ground-level inspection candidates |
| Static outputs | Static 2D and 3D outputs for trajectories, observations and scenario interpretation |
| Reports | Scenario summaries and comparison reports exported as structured files and Markdown tables |
| Tests and CI | pytest test coverage and GitHub Actions CI for regression checks of the Python baseline |
4 Scenario results
| Scenario | Observed leaves | UAV RMSE | UGV WLS RMSE |
|---|---|---|---|
| baseline | 2711 | 0.463 m | 0.536 m |
| high_noise | 1866 | 1.580 m | 0.941 m |
| extreme_uncertainty | 1228 | 1.825 m | 1.568 m |
The validation is qualitative at this stage: exact numerical equivalence with the earlier MATLAB implementation and its report has not been formally validated.
5 Generated outputs

