Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RosendroUE — Drone Training Simulator

A drone piloting training simulator built with Unreal Engine 5.0, featuring realistic physics via PID controllers, a modular training system, and VR support.


Overview

RosendroUE teaches drone piloting through a series of structured training modules with progressive difficulty. The simulation uses PID (Proportional-Integral-Derivative) control algorithms for realistic flight dynamics — the same control theory used in real-world drone autopilots.


Demo

Screenshots / gameplay GIF coming soon.


Features

Flight Simulation

  • Realistic drone physics driven by PID controllers for thrust, pitch/roll, and yaw
  • Two camera modes: Third-Person View (TPV) and First-Person View (FPV)
  • Mini-map / orthographic overhead view
  • FPV object detection ring system (proximity warning)
  • Environmental wind volume system

Training System

Modular, sequential training path with configurable difficulty:

Module Description
Trigger Fly through designated zones
Hover Maintain altitude for a set duration
Turn Yaw/rotation control exercises
Encircle Follow a circular path around a target
Landing Precision landing within speed constraints

Modules are orchestrated by a Module_Sequencer that controls timing, progression, and tutorial messages.

UI & UX

  • Main menu, pause menu, in-game HUD
  • Tutorial overlay system (title + image + description)
  • Module progress widgets
  • Custom loading screens
  • Joystick indicator, altitude, and speed displays

VR Support

  • OpenXR, OculusVR (Meta), SteamVR, HoloLens
  • 15+ device-specific controller bindings (Valve Knuckles, Vive Tracker, Oculus Touch, etc.)
  • Fixed 90 FPS target for VR comfort

Architecture

The project is primarily Blueprint-driven with C++ for core algorithms.

Drone_Class (abstract)
├── PID controllers (thrust, pitch/roll, yaw)
├── Camera system (TPV / FPV + spring-arm gimbal)
└── Mini_Drone (extended — per-propeller physics)

Base_Module (abstract)
├── Hover_Module
├── Landing_Module
├── Encircle_Module
├── Turn_Module
└── Trigger_Module

Module_Sequencer — orchestrates module order, timing, and tutorial messages
Wind_Volume       — environmental physics volume
PID_FunctionLibrary (C++) — reusable Blueprint-callable PID functions

State machine: LevelState enum — Pre-Level → In Progress → Completed / Failed


Tech Stack

Layer Technology
Engine Unreal Engine 5.0
Language C++ + Blueprints
Rendering Lumen, Nanite, Niagara, ray tracing
Build Unreal Build Tool, IoStore, Oodle Kraken
VR OpenXR, OculusVR, SteamVR
Scripting Python (editor automation)
Diagrams PlantUML

Plugins: ModelingToolsEditorMode, AsyncLoadingScreen, SiriusUtilityNodes, RyHelpfulHelpers, SortPlugin


Project Structure

RosendroUE-main/
├── Source/                  # C++ source (PID controllers, module definition)
├── Content/
│   ├── Characters/Drone/    # Drone blueprint classes
│   ├── Models/              # 3D drone meshes + PBR materials
│   ├── Level_Modules/       # Training module blueprints
│   ├── Levels/              # Maps, game modes, level templates
│   ├── UI/                  # HUD, menus, progress widgets, fonts
│   └── Tests/               # Test levels
├── Config/                  # Engine, input, VR bindings configuration
├── Script/
│   ├── PlantUML/            # Architecture diagrams
│   └── PythonScripts/       # Editor automation scripts
└── Drone_Simulation.uproject

C++ / Blueprint Integration

Core flight algorithms are implemented in C++ and exposed to Blueprints via a function library, keeping the math performant while letting designers tune parameters without recompiling:

// Linear PID — used for thrust and altitude control
float PIDCalculation(float target, float current, float& integral,
                     float& prevError, float Kp, float Ki, float Kd, float dt);

// Rotation-aware PID — handles 360° wrapping for yaw control
float PIDCalculationRotation(float target, float current, float& integral,
                              float& prevError, float Kp, float Ki, float Kd, float dt);

Getting Started

Requirements

  • Unreal Engine 5.0
  • Visual Studio 2019 or 2022 (for C++ compilation)
  • Windows 10/11

Setup

  1. Clone the repository
  2. Right-click Drone_Simulation.uprojectGenerate Visual Studio project files
  3. Open the .sln and build the Development Editor configuration
  4. Open Drone_Simulation.uproject in Unreal Engine 5.0
  5. Open Content/Levels/MainMenu and press Play

Optional: VR

Enable VR in Config/DefaultEngine.ini by setting bStartInVR=True, or launch with the -vr flag.

About

Drone piloting training simulator · UE5 · PID flight physics · VR support

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages