This repository simulates coordinated aerial and ground coverage of a spatial field using a centralized, asynchronous autoregressive multi-fidelity Gaussian Process (GP). Aerial robots collect LOW-fidelity observations, ground robots collect HIGH-fidelity observations, and one estimator produces the HIGH-field posterior used by both coverage controllers.
The implemented model is
where
- One central estimator, owned by the coupled simulation, rather than a GP per robot.
- Asynchronous LOW/HIGH observation scheduling and batched GP updates that are separate from controller and numerical-integration rates.
- HIGH-field posterior mean and variance for aerial target construction.
- Posterior-derived density for ground coverage.
- HEDAC aerial coverage with Dubins aircraft and Lloyd or MPC ground coverage with unicycle robots.
- Deterministic configurations, tests, evaluation scripts, and saved visual summaries.
The project requires Python 3.10 or newer. uv is the recommended dependency manager.
git clone <repository-url>
cd air_ground_coverage
uv syncAlternatively, install the package and its dependencies with pip:
pip install -e .Run a short deterministic smoke simulation:
uv run python examples/run_multifidelity.py \
--config configs/multifidelity_smoke.yaml \
--no-plotRun the full coupled scenario and save its final-state figure:
uv run python examples/run_multifidelity.py \
--config configs/multifidelity.yamlThe full configuration controls the fixed random seed, event periods, GP
hyperparameters, robot models, and output path. Its default final-state figure
is written to output/multifidelity_final_state.png.
configs/multifidelity.yaml is the canonical self-contained configuration.
The estimator is selected explicitly:
estimator_mode: multifidelity
multifidelity:
rho: 0.8
gp_update_period: 1.0
aerial_sensor_period: 0.5
ground_sensor_period: 0.1The complete, leaf-by-leaf reference—including units, valid ranges, and
runtime effects—is in
docs/multifidelity_config_reference.md.
- Aerial and ground sensors collect area-uniform samples in their configured fields of view.
- The simulation timestamps and submits observations to the central estimator.
- On scheduled estimator updates, the GP fits the joint LOW/HIGH observation model and publishes a versioned HIGH-field posterior.
- The aerial controller receives an interest-plus-uncertainty target density derived from that posterior.
- The ground controller receives a posterior-derived importance density.
- HEDAC and the ground controller advance the robot states at their configured rates.
This ordering permits a HIGH-fidelity ground observation to change the posterior, aerial target density, and subsequent aerial command or trajectory.
equations for the fields, sensors, multi-fidelity GP, densities, controllers, dynamics, scheduling, and metrics, with an equation-to-code map.
- Mathematical formulation (PDF): typeset implemented equations for the fields, sensors, multi-fidelity GP, densities, controllers, dynamics, scheduling, and metrics. The source and build details remain in the repository.
- Multi-fidelity configuration reference: detailed documentation for every parameter in the canonical configuration.
configs/ Canonical and smoke multi-fidelity configurations
docs/ Mathematical reference, configuration guide, status, and figures
evaluation/ Reproducible evaluation entry points
examples/ Coupled simulation CLI and standalone plot scripts
src/ Simulation, estimator, density, sensors, and controllers
tests/ Deterministic unit, integration, and behavioral tests
Run the deterministic test suite with:
uv run pytestMilestone plots are generated by standalone scripts in examples/ and saved
under docs/assets/. The exact commands and interpretation of each artifact
are recorded in
docs/multifidelity_gp_status.md.