# GPS-Denied Drone Landing Simulation ArduPilot + ROS 2 + Gazebo (ARG) simulation for landing on a moving platform. ## Quick Start (2 Terminals) **Terminal 1 - Gazebo:** ```bash ./scripts/run_ardupilot_sim.sh runway ``` **Terminal 2 - Controller:** ```bash ./scripts/run_ardupilot_controller.sh ``` ## World Options ```bash ./scripts/run_ardupilot_sim.sh runway # Default ./scripts/run_ardupilot_sim.sh warehouse # Indoor ./scripts/run_ardupilot_sim.sh custom # Custom landing pad ./scripts/run_ardupilot_sim.sh my_world # gazebo/worlds/my_world.sdf ``` ## Installation ```bash ./setup/install_ubuntu.sh ./setup/install_ardupilot.sh source ~/.bashrc ``` ## Project Structure ``` simulation/ ├── config.py ├── src/ │ └── drone_controller.py # Your algorithm ├── scripts/ │ ├── run_ardupilot_sim.sh │ └── run_ardupilot_controller.sh ├── gazebo/ │ ├── worlds/ # Your worlds │ └── models/ # Your models ├── setup/ └── docs/ ``` ## 3-Phase Mission | Phase | Action | |-------|--------| | SEARCH | Find QR code on rover | | COMMAND | Send commands to rover | | LAND | Land on rover | ## Documentation - [Installation](docs/installation.md) - [ArduPilot Guide](docs/ardupilot.md) - [Drone Controller](docs/drone_guide.md) - [Custom Worlds](docs/gazebo_worlds.md) - [Blender Models](docs/blender_models.md) - [Architecture](docs/architecture.md)