A modular UAV flight controller simulator written in Ada.
This project is an ongoing effort to design and implement a flight-control software stack using Ada's strong typing, package system, and reliability-focused language features.
The long-term goal is to evolve this codebase into a realistic flight controller simulator with navigation, guidance, telemetry, power management, propulsion control, sensor simulation, and autonomous flight capabilities.
- Flight mode management
- State transitions
- Flight status reporting
Supported modes:
- Standby
- Takeoff
- Hover
- Cruise
- Landing
- Battery percentage tracking
- Battery health classification
Battery states:
- Normal
- Low
- Critical
- Dead
- Flying state detection
- Motor running detection
- Menu-driven control
- Input validation
- Exception handling
modules/
├── power/
│ ├── Battery.ads
│ └── Battery.adb
│
├── propulsion/
│ ├── Motors.ads
│ └── Motors.adb
│
└── flight_controller/
├── Flight_Modes.ads
└── Flight_Modes.adb
src/
└── main.adb
The project follows a package-oriented architecture where each subsystem owns its behavior and exposes a clean public interface.
- Drone state records
- Aircraft status modeling
- System-wide type definitions
- IMU simulation
- GPS simulation
- Magnetometer simulation
- Barometer simulation
- Position estimation
- Waypoint navigation
- Route planning
- PID controllers
- Altitude hold
- Heading hold
- Autonomous flight modes
- Flight logging
- Ground station communication
- Real-time status reporting
- Mission execution engine
- Return-to-home functionality
- Autonomous mission profiles
- Flight dynamics
- Environmental effects
- Sensor noise modeling
Ada is widely used in safety-critical and high-reliability systems where correctness, maintainability, and robustness are essential.
This project serves as a practical environment for learning:
- Strong typing
- Modular software design
- State-machine architecture
- Embedded-system development
- Aerospace-oriented software engineering
- GNAT
- Alire
alr buildalr run🚧 Early Development
The current focus is building a clean and scalable architecture that can grow into a complete UAV flight-controller simulation platform.
Lokesh (ThirstyMelon)
Learning Ada, embedded systems, avionics software architecture, and flight-control systems.