An enterprise-grade Ground Control Station (GCS) and real-time Digital Twin flight simulator featuring dynamic waypoint path generation, dual-layer active airspace geofencing (DGCA compliance), physics telemetry simulation, and an interactive 3D web dashboard.
Garuda Aero GCS is a distributed, full-stack aerospace flight control and mission planning platform engineered to solve real-world airspace compliance and autonomous navigation challenges for Unmanned Aerial Vehicles (UAVs).
With the rapid expansion of commercial drone operations across India, airspace safety under Directorate General of Civil Aviation (DGCA) regulations has become paramount. Garuda Aero GCS provides an autonomous safety barrier that continuously guards against restricted no-fly zone incursionsโspecifically safeguarding the approach corridors of Jaipur International Airport (JAI sector) through a high-frequency Virtual Wall & Auto-RTH Failsafe Engine.
The system pairs a high-frequency Spring Boot 3.3.4 (Java 17) simulation engine with a glassmorphism Ground Control Station (GCS) HUD built with Leaflet.js, Esri World Imagery, and reactive REST telemetry streams.
- ๐บ๏ธ Interactive Waypoint Flight Planner: Drag-and-drop / click-to-plot GPS flight paths directly on high-resolution satellite imagery (Esri World Imagery) and street cartography.
- ๐ก๏ธ Dual-Layer Active Geofencing & Virtual Wall (DGCA Compliance):
- Level 1 (Pre-Flight Planner Guard): Instant client-side Haversine validation that prevents plotting waypoints inside restricted airport no-fly zones (Jaipur International Airport - JAI 1500m buffer).
- Level 2 (In-Flight Autonomous Virtual Wall): Real-time server-side collision avoidance that actively brakes the drone at restricted perimeters and engages automatic Return-To-Home (RTH) trajectory override.
- โก Real-Time Physics & Telemetry Engine (1000ms Ticker): Continuous spherical Haversine distance interpolation, ground speed dynamics, climb/descent rates, true bearing calculation, synthetic 3D attitude (pitch/roll), and multi-variable 6S LiPo battery discharge modeling.
- ๐ธ Animated 3D Quadcopter Visualizer: Custom SVG drone avatar featuring active spinning rotor discs, pulsing beacon LEDs, directional radar heading cones, and live particle flight trails.
- ๐ Aerospace Ground Control HUD: Dark-theme glassmorphism operations dashboard with digital airspeed gauges, altitude meters, heading compasses, and real-time safety alert feeds.
- ๐พ Relational MySQL Persistence: Full JPA/Hibernate data layer recording drone fleet states, compiled missions, waypoints, and time-series telemetry logs.
The platform follows a clean, decoupled 3-tier enterprise architecture:
- GCS Web Client (HUD): Responsive browser dashboard providing map rendering, 3D drone animation, mission planning, and 1000ms polling for live telemetry.
- Spring Boot 3.3.4 Engine: Multi-threaded backend handling REST controllers, task scheduling (
@Scheduled), spherical trigonometry physics calculation, and the DGCA safety rule engine. - Data Persistence & Airspace Data: MySQL 8.0 relational database persisting fleet profiles, mission waypoints, time-series telemetry logs, and airspace violation alerts.
Garuda Aero GCS models the regulatory airspace framework defined by the Ministry of Civil Aviation (MoCA) & DGCA India:
| Airspace Zone | Definition in Garuda GCS | System Action |
|---|---|---|
| ๐ด Red Zone (Prohibited) | 1500m radial buffer centered on Jaipur International Airport Runway (26.8286ยฐ N, 75.8056ยฐ E) | Zero Tolerance: Waypoint placement rejected. In-flight entry triggers instantaneous Virtual Wall brake and forces autonomous Return-To-Home (RTH). |
| ๐ก Yellow Zone (Controlled) | 6000m perimeter around operational aerodrome | Warning advisory logged; altitude strictly capped at 120 meters (400 ft) AGL. |
| ๐ข Green Zone (Permitted) | Unrestricted airspace outside airport buffer corridors | Free flight permitted up to maximum legal ceiling with active battery health monitoring. |
| Layer | Technologies | Description |
|---|---|---|
| Backend Core | Java 17+, Spring Boot 3.3.4, Spring Web | Enterprise application framework & REST API controllers |
| Persistence & ORM | Spring Data JPA, Hibernate 6.5, MySQL 8.0, HikariCP | Relational data persistence, connection pooling & transactional consistency |
| Simulation Engine | Spring @Scheduled Task Scheduler |
1000ms high-frequency physics loop, kinematics, & battery drain simulation |
| Geospatial Math | Spherical Trigonometry (Haversine & Azimuth Bearing) | Great-circle distance interpolation & directional bearing calculations |
| Frontend HUD | HTML5, Modern CSS3, JavaScript (ES6+), FontAwesome 6 | Glassmorphism dark aerospace operations dashboard |
| Cartography | Leaflet.js 1.9.4, Esri World Imagery, CartoDB Dark | High-resolution satellite tiles, vector polygons & waypoint polylines |
| Build & Tooling | Apache Maven, Git & GitHub | Dependency management, build automation & version control |
garuda-aero-gcs/
โโโ assets/
โ โโโ garuda-preview.svg # GCS Telemetry HUD preview graphic
โ โโโ architecture.svg # Distributed system architecture diagram
โโโ pom.xml # Maven dependencies & build definitions
โโโ src/
โ โโโ main/
โ โโโ java/com/drone/simulation/
โ โ โโโ DroneSimulationApplication.java # Spring Boot Main Entry Point
โ โ โ
โ โ โโโ controller/ # REST API Endpoints
โ โ โ โโโ DroneController.java # /api/drones (Fleet management)
โ โ โ โโโ MissionController.java # /api/missions (Flight plans)
โ โ โ โโโ TelemetryController.java # /api/telemetry (Live telemetry feed)
โ โ โ โโโ FlightAlertController.java # /api/alerts (Safety violations)
โ โ โ โโโ DashboardController.java # /api/dashboard (Aggregated stats)
โ โ โ
โ โ โโโ model/ # JPA Entities & Domain Models
โ โ โ โโโ Drone.java # Fleet registry & physical specs
โ โ โ โโโ Mission.java # Flight plans & lifecycle states
โ โ โ โโโ Waypoint.java # Sequence GPS coordinates & altitudes
โ โ โ โโโ TelemetryLog.java # Time-series blackbox flight logs
โ โ โ โโโ FlightAlert.java # Safety rule violation incident logs
โ โ โ โโโ DroneStatus.java # Enums: IDLE, IN_FLIGHT, RTH, etc.
โ โ โ
โ โ โโโ repository/ # Spring Data JPA Repositories
โ โ โ โโโ DroneRepository.java
โ โ โ โโโ MissionRepository.java
โ โ โ โโโ WaypointRepository.java
โ โ โ โโโ TelemetryLogRepository.java
โ โ โ โโโ FlightAlertRepository.java
โ โ โ
โ โ โโโ service/ # Core Business Logic & Simulation
โ โ โ โโโ TelemetrySimulatorService.java # 1-sec physics engine & coordinate math
โ โ โ โโโ AlertRuleEngineService.java # Hard virtual wall & safety triggers
โ โ โ โโโ DroneService.java # Fleet operations & battery recharge
โ โ โ โโโ MissionService.java # Mission planning & lifecycle management
โ โ โ
โ โ โโโ dto/ # Data Transfer Objects
โ โ โโโ MissionCreateRequest.java
โ โ โโโ WaypointDto.java
โ โ โโโ DroneTelemetryResponse.java
โ โ โโโ DashboardStatsDto.java
โ โ
โ โโโ resources/
โ โโโ application.properties # MySQL database & server configurations
โ โโโ static/ # Web Ground Control Station Frontend
โ โโโ index.html # GCS Dashboard UI
โ โโโ css/style.css # Modern aerospace dark styling
โ โโโ js/app.js # Map engine, 3D drone visuals & polling
โโโ LICENSE # MIT License
โโโ README.md # Comprehensive project documentation
Ensure you have the following installed on your development workstation:
- Java Development Kit (JDK 17+) (Oracle JDK or Eclipse Temurin)
- Apache Maven 3.8+ (Optional if using IDE bundled Maven)
- MySQL Community Server 8.0+
- IntelliJ IDEA (Community or Ultimate) / VS Code / Eclipse
Launch MySQL Workbench or run from your terminal:
CREATE DATABASE drone_simulation_db;Verify or edit src/main/resources/application.properties with your local MySQL credentials:
spring.datasource.url=jdbc:mysql://localhost:3306/drone_simulation_db?createDatabaseIfNotExist=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=YOUR_MYSQL_PASSWORD
# Auto DDL update
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=false# Clone the repository
git clone https://github.com/Atulkumar5772/Garuda-Aero-GCS.git
cd Garuda-Aero-GCS
# Compile & run Spring Boot
mvn clean spring-boot:run- Open IntelliJ IDEA โ File โ Open โ select the
Garuda-Aero-GCSdirectory. - Wait for Maven to import dependencies from
pom.xml. - Locate
src/main/java/com/drone/simulation/DroneSimulationApplication.java. - Right-click and select Run 'DroneSimulationApplication'.
Open your browser and navigate to:
http://localhost:8080
- Fleet Selection: On the left sidebar, select a registered drone (e.g., Garuda Quad-Alpha). Verify battery state and specifications.
- Waypoint Planning: Click "Plan Mission" on the operations panel.
- Plotting Route: Click anywhere on the map in the permitted green corridor to drop waypoints. Try clicking inside the red circle around Jaipur Airport to observe the DGCA Geofence Pre-Flight Validator reject the waypoint.
- Mission Compilation: Name your flight mission and click "Save & Compile Mission".
- Takeoff & Live Telemetry: Click "Launch Mission". Watch the 3D quadcopter rotate towards the target azimuth bearing, spin its rotors, and report real-time altitude, ground speed, and battery consumption every 1000ms.
- Failsafe Testing: Trigger "RTH (Return to Home)" at any point to observe the drone autonomously reverse course back to takeoff coordinates.
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/drones |
Fetch all registered drones in the fleet |
POST |
/api/drones |
Register a new drone with custom speed/altitude specs |
POST |
/api/drones/{id}/recharge |
Initiate fast dock battery recharge to 100% |
GET |
/api/missions |
List all planned & historical flight missions |
POST |
/api/missions |
Validate, compile, and persist a new mission with waypoints |
POST |
/api/missions/{id}/start |
Launch real-time flight simulation for a mission |
POST |
/api/missions/{id}/pause |
Pause flight in mid-air (Hover mode) |
POST |
/api/missions/{id}/resume |
Resume autonomous flight towards current waypoint |
POST |
/api/missions/{id}/rth |
Trigger manual Return-To-Home (RTH) failsafe |
POST |
/api/missions/{id}/abort |
Emergency abort mission and disarm drone |
GET |
/api/telemetry/live |
Stream real-time GPS, altitude, speed, attitude & battery data |
GET |
/api/alerts |
Retrieve active safety & airspace violation alerts |
POST |
/api/alerts/acknowledge-all |
Clear and acknowledge active alert feed |
Developing Garuda Aero GCS provided in-depth engineering experience in:
- Enterprise Spring Boot 3 Architecture: Designing modular, production-ready micro-services with separation of concerns across Controllers, Services, Repositories, and DTOs.
-
High-Frequency Scheduled Tasks: Managing real-time multithreaded simulation loops using Spring
@Scheduledat 1000ms fixed-rate intervals without blocking REST request threads. -
Geospatial Spherical Trigonometry: Implementing mathematical formulas from scratch in Java:
- Haversine Formula: Calculating great-circle arc distances over Earth's curved ellipsoidal surface.
-
Forward Azimuth Bearing: Calculating continuous dynamic heading angles (
$0^\circ - 360^\circ$ ) between coordinates.
-
Relational Data Modeling & ORM: Managing complex
@OneToManyentity relationships between Drones, Missions, and Waypoints with cascading operations. - Airspace Safety & DGCA Compliance: Translating Indian civil aviation regulations into algorithmic boundary checks and autonomous fail-safe triggers.
- MAVLink v2 Protocol Integration: Direct serial/UDP telemetry bridge for physical ArduPilot & PX4 hardware flight controllers.
- CesiumJS 3D Photogrammetry Globe: Upgrading map viewport to 3D digital elevation models (DEM) for terrain collision detection.
- Dynamic AI Obstacle Avoidance: Real-time path re-planning around moving airspace obstacles using A* / Dijkstra pathfinding.
- Multi-UAV Swarm Coordination: Fleet-wide collision avoidance meshes for concurrent multi-drone delivery operations.
This project is licensed under the MIT License. See the LICENSE file for complete details.