Skip to main content

WHACO — Warranted Hierarchical Autonomous Cooperative Operations

Resource-aware distributed autonomy governor for energy-constrained multi-agent drone systems.

Developed by Blackridge Autonomy LLC.

PyPI Python CI

Overview

WHACO is a bolt-on throttle governor that sits downstream of any route planner and selects from 8 discrete thrust modes based on wind alignment, fuel pressure, distance to goal, and look-ahead conditions.

Core Capabilities

Capability Description
8-Mode Throttle Governor State-dependent thrust selection for energy-constrained operations
15 microsecond per-step budget Real-time capable on embedded hardware
Online Adaptive Thresholds Diagonal CMA-ES tunes 5 governor thresholds in-flight
3D Wind-Aware Full 3D wind alignment with gravity penalty modeling
PX4 Compatible Designed for MAVLink companion integration at 50 Hz

Mode Table

ID Mode Thrust Purpose
0 RIDE 20% Downwind glide
1 SPRINT 85% Aggressive push against headwind
2 CRUISE 55% Steady-state default
3 CONSERVE 30% Fuel preservation
4 PUNCH 100% Terminal/stall override
5 BOOST 75% Moderate push
6 BRAKE 40% Controlled deceleration
7 STABILIZE 55% Post-anomaly stabilization

Installation

pip install blackridge-whaco

Optional dependency groups:

pip install blackridge-whaco[viz]   # + matplotlib
pip install blackridge-whaco[dev]   # + matplotlib, ruff, coverage
pip install blackridge-whaco[all]   # everything

Quick Start

from blackridge_governor import Governor

gov = Governor(fuel_budget=4.0)
thrust, mode_id, mode_name = gov.step(
    wind_x=-3.0, wind_y=0.5,
    fuel_remaining=2.8, dist_to_goal=45.0,
    groundspeed=6.2, throttle_pct=0.55,
)
print(f"Mode: {mode_name}, Thrust: {thrust:.0%}")
# Mode: SPRINT, Thrust: 85%

Adaptive Governor (Online Threshold Tuning)

from blackridge_governor import AdaptiveGovernor

agov = AdaptiveGovernor(fuel_budget=4.0, eval_window=50)

for step in range(1000):
    metrics = {
        "survival_rate": 0.95,
        "fuel_efficiency": 0.7,
        "connectivity": 0.5,
        "mission_progress": step / 1000.0,
    }
    thrust, mode_id, mode_name = agov.step(
        swarm_metrics=metrics,
        wind_x=-2.0, fuel_remaining=3.0,
        dist_to_goal=50.0, groundspeed=6.0,
    )

Architecture

┌──────────────────────────────────┐
│  Governor (per-agent, 15us)      │
│  8-mode throttle selection       │
│  Fuel pressure model             │
│  Stall detection override        │
│  3D wind alignment               │
└──────────────────────────────────┘

┌──────────────────────────────────┐
│  AdaptiveThresholdController     │
│  Diagonal CMA-ES, eval_window    │
│  Rate-limited, CDO-locked        │
│  Safety revert on degradation    │
└──────────────────────────────────┘

Testing

# SDK smoke test
python -m blackridge_governor.demo --quick

# Adaptive thresholds tests
python -m blackridge_governor.adaptive_thresholds

API Reference

Governor(fuel_budget=4.0, thresholds=None)

Core throttle governor. Call .step() each tick to get (thrust_frac, mode_id, mode_name).

Key parameters for .step():

  • wind_x, wind_y, wind_z — Wind vector (m/s)
  • fuel_remaining — Current fuel level
  • dist_to_goal — Distance to goal (meters)
  • groundspeed — Current ground speed (m/s)
  • has_wind_cov — True for EKF2 wind, False for groundspeed proxy

AdaptiveGovernor(fuel_budget=4.0, eval_window=50)

Governor wrapper with online CMA-ES threshold adaptation. Pass swarm_metrics dict to .step() for in-flight tuning.

AdaptiveThresholdController(eval_window=50, ...)

Standalone threshold controller using diagonal CMA-ES with safety constraints (rate limiting, CDO lock, degradation revert).

License

Proprietary. Copyright (c) 2026 Blackridge Autonomy LLC. All rights reserved.

See LICENSE for details. For licensing inquiries: contact@blackridgeautonomy.com

Metadata

Release files for blackridge-whaco 1.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for blackridge-whaco 1.2.1
File Size Uploaded
blackridge_whaco-1.2.1.tar.gz 15.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for blackridge-whaco 1.2.1
File Interpreter ABI Platform
blackridge_whaco-1.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 32.2 kB

Release files / blackridge_whaco-1.2.1.tar.gz

Download URL blackridge_whaco-1.2.1.tar.gz
Size 15.9 kB
Tags Source
SHA-256 checksum
How to use checksums
abba3702a76360f5534cc7b0692e186503d624a1729a58ca1e9c50b066f1e095
BLAKE2b-256 checksum
How to use checksums
d4d00409718addb943bf85b89de935a0bba4d58ea6aef6bb6498e10400b9aba8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Release files / blackridge_whaco-1.2.1-py3-none-any.whl

Download URL blackridge_whaco-1.2.1-py3-none-any.whl
Size 16.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3ec8f61beb48ef573c9ba21f2b6af548c142a09f36d24c7cd4af31d24a4ad108
BLAKE2b-256 checksum
How to use checksums
8c0323ea80fe5c732b15b08d03e06080d7f58f05d0565272b4756ef7ad6cdc62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Release history Release notifications | RSS feed

This release

1.2.1 This release

2 release files

1.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page