SHAHEEN is an advanced autonomous drone-based solution engineered for the automated inspection of airport runways. Designed to enhance aviation safety at King Khalid International Airport (KKIA), the system uses intelligent flight logic to detect Foreign Object Debris (FOD) and manage biological threats such as bird flocks in real time.
The project is built on the PX4 + Gazebo + MAVSDK stack and follows the engineering methodology of the Unmanned Systems Bootcamp reference project (PX4-Sim-Starter).
The repository is organized by capability rather than by version. The current
system lives at the top level; the initial iteration is archived under legacy/
for provenance.
SHAHEEN/
├── flight/ # Canonical MAVSDK mission controller
│ └── shaheen_mission.py
├── simulation/ # Gazebo simulation assets
│ ├── worlds/ # Airport world (SHAHEEN_World.sdf)
│ └── models/ # Custom 3D models (drone, sensors, FOD, wildlife, scenery)
├── docs/ # Technical documentation and media
│ ├── README.md # Canonical technical guide
│ ├── presentations/ # Project presentations (PDF)
│ └── media/ # Screenshots and captures
├── legacy/ # Archived earlier iteration (SHAHEEN V.1)
│ └── SHAHEEN_V.1/
└── README.md # This file
Follow these steps to initialize the environment and execute the inspection mission.
From the repository root, expose the custom models and world to the Gazebo resource path so the simulation engine can locate the airport assets:
export GZ_SIM_RESOURCE_PATH=$PWD/simulation/models:$PWD/simulation/worldsNavigate to your PX4-Autopilot directory to initialize the flight stack, load
the custom KKIA airport world, and spawn the drone:
PX4_SYS_AUTOSTART=4001 \
PX4_GZ_MODEL_POSE="0,-0.06,0.20,0.01,0,0.13" \
PX4_GZ_WORLD=SHAHEEN_World \
PX4_SIM_MODEL=gz_x500_x \
./build/px4_sitl_default/bin/px4Once the simulation is stable, open a new terminal, return to the repository root, and run the Python control script to begin the autonomous inspection:
python3 flight/shaheen_mission.pySee docs/README.md for the full technical guide,
dependencies, and troubleshooting.
flight/shaheen_mission.pyis the standalone MAVSDK mission. The full Phase 3 ROS 2 pipeline (YOLOv8n perception + mission supervisor + Gazebo/PX4/MAVSDK) lives inros2_ws/.
- Intelligent Flight Logic: Uses
MAVSDKandPX4for precise mission execution across a 10-waypoint runway scan. - Asynchronous Processing: Uses Python's
asyncioto manage telemetry and mission tasks concurrently. - Safety Protocols: Automated Return to Launch (RTL) triggered by low battery or tower abort orders.
- Real-time Monitoring: Supports integration with QGroundControl for live telemetry and flight-path visualization.
| Phase | Technology | Status |
|---|---|---|
| Phase 1-2 | MAVSDK / PX4 / Gazebo | Runway inspection & FOD/bird simulation |
| Phase 3 | ROS 2 (Humble) + YOLOv8n | Camera-driven detection — implemented in ros2_ws/ |
| Future | Swarm + Micro-XRCE-DDS | Multi-drone coordinated coverage |
- Developer: Eng. Mohammed S. Alajmi
- Affiliation: Tuwaiq Academy
This project follows open-source automation standards to ensure compatibility with future smart-airport infrastructures.