# sumitrajapure1308/drdo-uav-enginetwin architecture

> Architecture diagram of the GitHub repository sumitrajapure1308/drdo-uav-enginetwin, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sumitrajapure1308/drdo-uav-enginetwin
- Repository: https://github.com/sumitrajapure1308/drdo-uav-enginetwin

## Overview

AeroTwin-MALE is a real-time digital-twin and health-monitoring system for MALE UAV piston engines. Its principal workflow streams engine telemetry through a FastAPI service, synchronizes a physics-based engine model, evaluates health and faults, and presents live status and mission-reliability information in the Ground Control Station (GCS). Operators can issue mission and fault commands; recorded or uploaded flight data can also be analyzed into maintenance advisories and debrief reports. The README documents additional AI, sensor-redundancy, and fleet capabilities; the sampled excerpts do not establish all of their runtime wiring.

Main entry points: [`src/api/server.py`](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/api/server.py) (FastAPI Service), [`src/cli.py`](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/cli.py) (Batch Analysis CLI), [`src/core/digital_twin_engine.py`](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/core/digital_twin_engine.py) (Twin Synchronizer), [`web/js/app.js`](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/web/js/app.js) (GCS Dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ingest["Telemetry and Simulation"]
  node_sim["Mission Simulator"]
  node_recorder["Mission Recorder"]
  node_state["Telemetry and State<br/>[state.py]"]
  node_can["SocketCAN Bridge"]
  node_store[("Recorded Missions")]
end

subgraph group_twin["Digital Twin"]
  node_twin["Twin Synchronizer"]
  node_physics["Engine Physics Models"]
  node_fusion["Sensor Fusion EKF<br/>[sensor_fusion.py]"]
end

subgraph group_health["Health and Prognostics"]
  node_redundancy["Sensor Redundancy"]
  node_faults["Fault Detector<br/>[fault_detector.py]"]
  node_healthmon["Health Monitor<br/>[health_monitor.py]"]
  node_hybrid["Hybrid AI Detector<br/>[hybrid_detector.py]"]
  node_rul["RUL Estimator<br/>[rul_estimator.py]"]
  node_xai["XAI Explainer<br/>[xai_explainer.py]"]
  node_advisory["Maintenance Advisories<br/>[advisory_engine.py]"]
end

subgraph group_operations["Mission Operations"]
  node_reliability["Mission Reliability"]
  node_report["Mission Reports"]
  node_fleet["Federated Fleet Learning<br/>[federated_fleet.py]"]
end

subgraph group_interfaces["Operator Interfaces"]
  node_api["FastAPI Service<br/>[server.py]"]
  node_dashboard["GCS Dashboard<br/>[app.js]"]
  node_cli["Batch Analysis CLI<br/>[cli.py]"]
end

node_operator(("GCS Operator"))
node_engine(("Engine Sensors / FADEC"))

node_engine -.->|"sends frames"| node_can
node_can -.->|"supplies telemetry"| node_api
node_operator -->|"uses"| node_dashboard
node_dashboard -->|"streams and commands"| node_api
node_api -->|"streams state"| node_dashboard
node_api -->|"steps simulator"| node_sim
node_sim -->|"produces frames"| node_state
node_api -->|"synchronizes frame"| node_twin
node_twin -->|"evaluates models"| node_physics
node_api -->|"updates filter"| node_fusion
node_api -->|"checks sensor channels"| node_redundancy
node_api -->|"evaluates health"| node_healthmon
node_api -->|"detects faults"| node_faults
node_api -->|"runs AI detection"| node_hybrid
node_api -->|"estimates life"| node_rul
node_api -->|"explains results"| node_xai
node_api -->|"assesses recovery"| node_reliability
node_api -->|"records mission"| node_recorder
node_recorder -->|"writes recordings"| node_store
node_api -->|"generates debrief"| node_report
node_cli -->|"synchronizes frames"| node_twin
node_cli -->|"evaluates health"| node_healthmon
node_cli -->|"detects faults"| node_faults
node_cli -->|"runs AI detection"| node_hybrid
node_cli -->|"estimates life"| node_rul
node_cli -->|"explains results"| node_xai
node_cli -->|"generates advisories"| node_advisory
node_cli -->|"generates debrief"| node_report
node_fleet -.->|"shares fleet models"| node_hybrid

click node_api "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/api/server.py"
click node_dashboard "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/web/js/app.js"
click node_cli "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/cli.py"
click node_sim "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/simulation/mission_simulator.py"
click node_recorder "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/simulation/mission_recorder.py"
click node_state "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/core/state.py"
click node_can "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/core/socketcan_bridge.py"
click node_twin "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/core/digital_twin_engine.py"
click node_physics "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/physics/thermodynamic_cycle.py"
click node_fusion "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/core/sensor_fusion.py"
click node_redundancy "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/health/sensor_redundancy.py"
click node_faults "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/diagnostics/fault_detector.py"
click node_healthmon "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/health/health_monitor.py"
click node_hybrid "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/ai_ml/hybrid_detector.py"
click node_rul "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/ai_ml/rul_estimator.py"
click node_xai "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/diagnostics/xai_explainer.py"
click node_advisory "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/ai_ml/advisory_engine.py"
click node_reliability "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/health/mission_reliability_enhancer.py"
click node_report "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/reports/report_generator.py"
click node_fleet "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/ai_ml/federated_fleet.py"
click node_store "https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/simulation/mission_recorder.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_sim,node_recorder,node_state,node_can,node_store toneBlue
class node_twin,node_physics,node_fusion toneAmber
class node_redundancy,node_faults,node_healthmon,node_hybrid,node_rul,node_xai,node_advisory toneMint
class node_reliability,node_report,node_fleet toneRose
class node_api,node_dashboard,node_cli,node_operator,node_engine toneIndigo
```

## Components

### Telemetry and Simulation

- [Mission Simulator](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/simulation/mission_simulator.py): `src/simulation/mission_simulator.py`
- [Mission Recorder](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/simulation/mission_recorder.py): `src/simulation/mission_recorder.py`
- [Telemetry and State](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/core/state.py): `src/core/state.py`
- [SocketCAN Bridge](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/core/socketcan_bridge.py): `src/core/socketcan_bridge.py`
- [Recorded Missions](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/simulation/mission_recorder.py): `src/simulation/mission_recorder.py`

### Digital Twin

- [Twin Synchronizer](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/core/digital_twin_engine.py): `src/core/digital_twin_engine.py`
- [Engine Physics Models](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/physics/thermodynamic_cycle.py): `src/physics/thermodynamic_cycle.py`
- [Sensor Fusion EKF](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/core/sensor_fusion.py): `src/core/sensor_fusion.py`

### Health and Prognostics

- [Sensor Redundancy](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/health/sensor_redundancy.py): `src/health/sensor_redundancy.py`
- [Fault Detector](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/diagnostics/fault_detector.py): `src/diagnostics/fault_detector.py`
- [Health Monitor](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/health/health_monitor.py): `src/health/health_monitor.py`
- [Hybrid AI Detector](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/ai_ml/hybrid_detector.py): `src/ai_ml/hybrid_detector.py`
- [RUL Estimator](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/ai_ml/rul_estimator.py): `src/ai_ml/rul_estimator.py`
- [XAI Explainer](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/diagnostics/xai_explainer.py): `src/diagnostics/xai_explainer.py`
- [Maintenance Advisories](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/ai_ml/advisory_engine.py): `src/ai_ml/advisory_engine.py`

### Mission Operations

- [Mission Reliability](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/health/mission_reliability_enhancer.py): `src/health/mission_reliability_enhancer.py`
- [Mission Reports](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/reports/report_generator.py): `src/reports/report_generator.py`
- [Federated Fleet Learning](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/ai_ml/federated_fleet.py): `src/ai_ml/federated_fleet.py`

### Operator Interfaces

- [FastAPI Service](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/api/server.py): `src/api/server.py`
- [GCS Dashboard](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/web/js/app.js): `web/js/app.js`
- [Batch Analysis CLI](https://github.com/sumitrajapure1308/drdo-uav-enginetwin/blob/main/src/cli.py): `src/cli.py`

### Other components

- **GCS Operator**
- **Engine Sensors / FADEC**

## Connections

- Engine Sensors / FADEC → SocketCAN Bridge: sends frames
- SocketCAN Bridge → FastAPI Service: supplies telemetry
- GCS Operator → GCS Dashboard: uses
- GCS Dashboard → FastAPI Service: streams and commands
- FastAPI Service → GCS Dashboard: streams state
- FastAPI Service → Mission Simulator: steps simulator
- Mission Simulator → Telemetry and State: produces frames
- FastAPI Service → Twin Synchronizer: synchronizes frame
- Twin Synchronizer → Engine Physics Models: evaluates models
- FastAPI Service → Sensor Fusion EKF: updates filter
- FastAPI Service → Sensor Redundancy: checks sensor channels
- FastAPI Service → Health Monitor: evaluates health
- FastAPI Service → Fault Detector: detects faults
- FastAPI Service → Hybrid AI Detector: runs AI detection
- FastAPI Service → RUL Estimator: estimates life
- FastAPI Service → XAI Explainer: explains results
- FastAPI Service → Mission Reliability: assesses recovery
- FastAPI Service → Mission Recorder: records mission
- Mission Recorder → Recorded Missions: writes recordings
- FastAPI Service → Mission Reports: generates debrief
- Batch Analysis CLI → Twin Synchronizer: synchronizes frames
- Batch Analysis CLI → Health Monitor: evaluates health
- Batch Analysis CLI → Fault Detector: detects faults
- Batch Analysis CLI → Hybrid AI Detector: runs AI detection
- Batch Analysis CLI → RUL Estimator: estimates life
- Batch Analysis CLI → XAI Explainer: explains results
- Batch Analysis CLI → Maintenance Advisories: generates advisories
- Batch Analysis CLI → Mission Reports: generates debrief
- Federated Fleet Learning → Hybrid AI Detector: shares fleet models
