FleetCore Components
The FleetCore ecosystem consists of three primary active components that work together to manage drone fleets.
1. Backend Server (Java/Quarkus)
Central coordination server. Manages persistent state and configuration for the entire fleet.
Key Responsibilities:
- Drone Onboarding: Registers new drones and provisions AWS IoT Certificates and Kinesis Video Signaling Channels.
- Mission Orchestration: Uses
FleetCoreLibto generate mission bundles and dispatches them via AWS IoT Jobs. - Data Persistence: Stores telemetry, detection events, and mission history in a PostGIS-enabled PostgreSQL database.
- Auth Proxy: Validates operator JWTs from Cognito and provides a secure REST API for the Desktop client.
Tech Stack:
- Framework: Quarkus
- Database: PostgreSQL + PostGIS
- ORM: MyBatis Plus
- API: REST (OpenAPI/Swagger included)
Database Schema Design
The backend manages a PostGIS-enabled PostgreSQL database. The schema is designed to handle geospatial drone data, mission logs, fleet maintenance, and other required records.
2. Desktop Client (Tauri/React)
The Ground Control Station (GCS) used by operators to plan missions and control drones in real-time.
Key Responsibilities:
- Mission Planning: Geospatial interface for defining survey boundaries and drone home positions.
- Real-time Monitoring: Low-latency WebRTC video feed streamed directly from the active drone.
- Manual Control: Integrated support for gamepads to allow manual override of drone flight.
- Secure Bridge: Uses a Rust-based proxy to safely forward requests to the Server with Cognito identity headers.
Desktop Home Page
Figure 1: Landing page of the client
Desktop GCS Overview
Figure 2: Mission planning screen
Low-Latency Manual Control
Figure 3: [Screenshot W.I.P] Manual drone control interface
Tech Stack:
- Shell: Tauri v2 (Rust)
- Frontend: React + Tailwind CSS
- Streaming: WebRTC (Amazon KVS SDK)
3. Onboard Agent (Python)
The coordinator software of the drone, running on it's companion computer (Raspberry Pi 5).
Key Responsibilities:
- Flight Controller Bridge: Communicates with the PX4 flight stack via MAVSDK.
- Job Consumer: Listens for AWS IoT Jobs, downloads mission bundles from S3, and executes them autonomously.
- State Management: Uses a dedicated State Machine to track the drone's lifecycle.
- Telemetry Provider: Publishes real-time GPS, battery, and health data to AWS IoT Core.
- Video Streamer: Manages GStreamer pipelines to encode camera data and stream it via WebRTC.
Onboard Agent In Simulator
Figure 4: The drone agent controlling a simulated drone in Gazebo Classic