Green Vigilance — UAV/UGV Precision Agriculture Simulation

Python-first UAV/UGV simulation baseline for early crop disease detection, scenario comparison, EKF/WLS estimation, and reproducible visual outputs.

Status: Reproducible simulation baseline

Green Vigilance is a Python migration and reconstruction of a UAV/UGV precision-agriculture system originally explored for early crop disease detection. The current work focuses on a reproducible simulation baseline rather than a production-ready field robot.

The simulation compares scenario configurations, estimates UAV and UGV localization error, assigns ground targets from a disease heatmap, and generates visual outputs and summary reports that can be regenerated from YAML inputs.

Green Vigilance 3D baseline simulation scene
3D simulation output for the baseline UAV/UGV scenario.

Technical Stack

Python NumPy PyYAML Matplotlib pytest GitHub Actions CI YAML scenarios

Architecture

The pipeline starts from a scenario YAML configuration, then runs UAV unicycle dynamics with EKF estimation, camera/frustum observation, disease heatmap generation, UGV target assignment, noisy UGV localization with a WLS estimate, and finally summary JSON, comparison CSV/Markdown, and figure outputs.

Pipeline: scenario YAML config → UAV unicycle dynamics + EKF → camera/frustum observation → disease heatmap → UGV target assignment → noisy localization + WLS estimate → summary JSON + comparison CSV/Markdown + figures.

Key Features

Scenario Coverage

Baseline, high-noise, and extreme-uncertainty scenarios are defined as reproducible YAML configurations.

Deterministic UAV Path

The UAV follows a deterministic 30% coverage path, supporting repeatable comparisons between scenario settings.

Target Assignment

Disease heatmaps drive UGV target assignment for ground-level inspection candidates.

Static Outputs

The simulation generates static 2D and 3D outputs for trajectories, observations, and scenario interpretation.

Reports

Scenario summaries and comparison reports are exported as structured files and Markdown tables.

Tests & CI

pytest-based test coverage and GitHub Actions CI support regression checks for the Python baseline.

Scenario Results

baseline

2711Observed leaves

0.463 mUAV RMSE

0.536 mUGV WLS RMSE

high_noise

1866Observed leaves

1.580 mUAV RMSE

0.941 mUGV WLS RMSE

extreme_uncertainty

1228Observed leaves

1.825 mUAV RMSE

1.568 mUGV WLS RMSE

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/report implementation has not been formally validated.

Resources

Source code and the local report are available below.

View Repository Open Project Report