LIVE_DEMO

Autonomous Drone Fleet

Multi-agent autonomous drone fleet platform with live airspace deconfliction, BVLOS-ready mission planning, and run-tracked observability.

// AUTONOMOUS_DRONE_FLEET
▶INNOVATION_BRIEF

What We Built

Our agentic mission-planning platform ingests live commercial-air-traffic data via OpenSky Network, enabling autonomous drone fleet operations with real-time decision-making across specialist agents

Live Airspace Ingestion

OpenSky Network ADS-B feed cached every 60 seconds via a per-minute WP cron. SF Bay bounding box covers SFO and OAK commercial traffic with high refresh density.

  • OpenSky Network REST API
  • ADS-B State Vectors
  • SF Bay Bounding Box
  • 60s Refresh Cadence

Agentic Mission Decisioning

Groq llama-3.3-70b-versatile orchestrates Mission Commander, Deconfliction Analyst, and Geofence Auditor roles. Each decision runs in its own PHP request — Action Scheduler dispatches one job per drone with atomic counter increments per outcome.

  • Groq Llama 3.3 70B Versatile
  • Three Specialist Roles
  • Action Scheduler 3.9.3
  • Per-Decision PHP Isolation

Run-Tracked Observability

Every mission gets a UUID run_id, persistent row in prod_drone_mission_runs, and a live status REST endpoint. Zero silent failures — every queue, decision, and finalize event is observable through /drone-mission/status?run_id=X.

  • Persistent Run Tracking
  • UUID Per Mission
  • Status REST Endpoint
  • Errors-JSON Audit Trail
▶LIVE_DEMO

Mission Cockpit

Trigger a mission — a 4-drone simulated fleet flies the San Francisco Bay area while live commercial air traffic streams in the background. Three specialist agents make routing, deconfliction, and geofence decisions in real time. Watch every decision land in the ticker below.

idle0/4 drones · 0 decisions
UAV-001idle
Inspection
Bay Bridge structural scan
400
ft agl
0
decisions
—
conf
UAV-002idle
Delivery
Treasure Island to Embarcadero package run
350
ft agl
0
decisions
—
conf
UAV-003idle
Surveillance
SF Marina perimeter sweep
300
ft agl
0
decisions
—
conf
UAV-004idle
Survey
Golden Gate Park aerial mapping
380
ft agl
0
decisions
—
conf
SF Bay37.4–37.9°N · 122.2–122.6°W
Agent Decisions (0)
Awaiting mission trigger…
▶AGENT_ROSTER

Three Specialist Agents Per Decision

MISSION COMMANDER_AGENT

Mission Commander

Plans the route from launch to recovery against current airspace state. Holds the mission objective and trades off speed, fuel, and risk tolerance.

Inputs
  • Mission objective
  • Current drone state
  • OpenSky air traffic snapshot
Outputs
  • Updated waypoint list
  • Cruise-altitude decision
  • Confidence score
DECONFLICTION ANALYST_AGENT

Deconfliction Analyst

Reviews Mission Commander's route against live ADS-B traffic and other fleet drones. Flags potential conflicts and proposes lateral or vertical separation.

Inputs
  • Proposed route
  • OpenSky state vectors
  • Other fleet drone positions
Outputs
  • Conflict list
  • Suggested separation maneuver
  • Risk rating
GEOFENCE AUDITOR_AGENT

Geofence Auditor

Validates the final route against FAA Class B airspace boundaries, no-fly zones, and altitude ceilings. Cleared routes get a compliance stamp; violations get blocked.

Inputs
  • Final route
  • Class B airspace polygons
  • Altitude ceiling rules
Outputs
  • Compliance verdict
  • Violation list (if any)
  • Audit log entry
▶PIPELINE_ARCHITECTURE

System Architecture

Live air-traffic ingestion feeds a rolling cache. Mission triggers fan out to per-drone agent decisions via Action Scheduler. Run state aggregates atomically into a single observable record — surfaced via REST and polled live by the cockpit UI.

OpenSky Network
Live ADS-B
Airspace Cache
prod_drone_airspace_snapshot
Mission Runner
Action Scheduler
Agent Chain
Groq llama-3.3-70b
Mission Cockpit
Live Polling UI
01 · INGEST

Per-minute cron pulls OpenSky /states/all for SF Bay bounding box; caches state vectors.

02 · TRIGGER

User clicks Run Mission; trigger endpoint returns run_id and HTTP 202 in under 500ms.

03 · DISPATCH

Action Scheduler kickoff schedules one decision action per drone with a 2-second stagger.

04 · DECIDE

Each decision action runs Mission Commander, Deconfliction Analyst, and Geofence Auditor in its own PHP request.

05 · FINALIZE

When all drones complete, the finalize hook stamps finished_at and computes the terminal status.

06 · OBSERVE

Frontend polls /drone-mission/status every 2 seconds; the ticker renders decisions live until terminal status.

▶API_REFERENCE

Mission Runner Endpoints

Three public REST endpoints expose the mission lifecycle. All endpoints return JSON. Trigger returns 202 with a run_id immediately and processes asynchronously.

POST/drone-mission/trigger

Schedule a new mission run. Returns immediately with run_id; processing runs asynchronously via Action Scheduler.

{ "success": true, "run_id": "<uuid>", "status": "queued" }
GET/drone-mission/status?run_id=X

Read the current state of a mission run. Includes status, drone counters, decisions array, and errors.

{ "run_id": "...", "status": "running", "drones_completed": 2, "decisions_json": [...] }
GET/drone-mission/runs

List recent mission runs. Default limit 30, maximum 100.

[ { "run_id": "...", "status": "completed", ... } ]
▶ANSWER_ENGINE

Frequently Asked

QWhat is autonomous drone mission planning?
A

Autonomous drone mission planning involves generating, validating, and executing drone flight plans without manual input, using real-time airspace data and regulatory constraints, a key aspect of our autonomous drone fleet platform

QHow does drone airspace deconfliction work?
QWhat is BVLOS strategic deconfliction?

Built with the same architecture we deploy for clients.

This platform demonstrates agentic decisioning, async run-tracking, and zero-silent-failure observability — the same patterns we apply to enterprise engagements.