Skip to content

ARSControl/air_ground_coverage

 
 

Repository files navigation

Multi-Fidelity Air–Ground Coverage

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

$$ f_H(q) = \rho f_L(q) + \delta(q), $$

where $f_L$ is the LOW-fidelity latent field, $\delta$ is an independent discrepancy GP, and $\rho$ is the configurable fidelity-correlation parameter. The estimator uses Cholesky-based linear solves with adaptive jitter and publishes the most recent valid posterior if an update fails.

Features

  • 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.

Installation

The project requires Python 3.10 or newer. uv is the recommended dependency manager.

git clone <repository-url>
cd air_ground_coverage
uv sync

Alternatively, install the package and its dependencies with pip:

pip install -e .

Quick start

Run a short deterministic smoke simulation:

uv run python examples/run_multifidelity.py \
  --config configs/multifidelity_smoke.yaml \
  --no-plot

Run the full coupled scenario and save its final-state figure:

uv run python examples/run_multifidelity.py \
  --config configs/multifidelity.yaml

The 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.

Configuration

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.1

The complete, leaf-by-leaf reference—including units, valid ranges, and runtime effects—is in docs/multifidelity_config_reference.md.

How the coupled loop works

  1. Aerial and ground sensors collect area-uniform samples in their configured fields of view.
  2. The simulation timestamps and submits observations to the central estimator.
  3. On scheduled estimator updates, the GP fits the joint LOW/HIGH observation model and publishes a versioned HIGH-field posterior.
  4. The aerial controller receives an interest-plus-uncertainty target density derived from that posterior.
  5. The ground controller receives a posterior-derived importance density.
  6. 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.

Documentation

equations for the fields, sensors, multi-fidelity GP, densities, controllers, dynamics, scheduling, and metrics, with an equation-to-code map.

Repository layout

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

Validation and reproducible figures

Run the deterministic test suite with:

uv run pytest

Milestone 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.

About

From Global Exploration to Local Coverage: A Hierarchical Air-Ground Multi-Robot Framework with Gaussian Process Fusion

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%