40286fa90c4938bbe355482f992cf3228b4b8fd0
Drone Landing Simulation (GPS-Denied)
Land a drone on a moving platform using only relative sensors (IMU, altimeter, camera).
Quick Start
Standalone (1 Terminal - Any Platform)
source activate.sh
python standalone_simulation.py --pattern circular
Gazebo + ROS 2 (2 Terminals)
Terminal 1:
ros2 launch gazebo/launch/drone_landing.launch.py
Terminal 2:
source activate.sh
python run_gazebo.py --pattern circular
ArduPilot SITL (2 Terminals)
Terminal 1:
gz sim -v4 -r ~/ardupilot_gazebo/worlds/iris_runway.sdf
Terminal 2:
sim_vehicle.py -v ArduCopter -f gazebo-iris --model JSON --console
Installation
# Ubuntu/Debian
./setup/install_ubuntu.sh
# ArduPilot SITL (optional)
./setup/install_ardupilot.sh
# Activate environment
source activate.sh
Files
| File | Description |
|---|---|
standalone_simulation.py |
All-in-one simulation |
run_gazebo.py |
Gazebo controllers |
drone_controller.py |
Your landing algorithm |
camera_viewer.py |
Drone camera window |
config.py |
Configuration |
Sensors
| Sensor | Data |
|---|---|
| IMU | Orientation, angular velocity |
| Altimeter | Altitude, vertical velocity |
| Camera | 320x240 downward image |
| Landing Pad | Relative position (when visible) |
Options
--pattern, -p stationary, linear, circular, square, random
--speed, -s Speed in m/s (default: 0.5)
Documentation
| Document | Description |
|---|---|
| Installation | Setup guide |
| Architecture | System overview |
| ArduPilot | ArduPilot SITL |
| Drone Guide | Algorithm guide |
Description
Languages
Python
66.3%
Shell
25.4%
PowerShell
4.5%
Dockerfile
3.8%