2026-01-04 00:42:40 +00:00
2026-01-04 00:42:40 +00:00
2026-01-04 00:24:46 +00:00
2026-01-04 00:42:40 +00:00
2026-01-04 00:24:46 +00:00
2026-01-04 00:24:46 +00:00
2026-01-04 00:24:46 +00:00
2025-12-31 23:50:26 +00:00
2026-01-04 00:24:46 +00:00
2026-01-02 07:53:44 +00:00
2026-01-04 00:24:46 +00:00
2026-01-04 00:24:46 +00:00
2026-01-04 00:24:46 +00:00
2026-01-02 06:50:31 +00:00
2026-01-04 00:24:46 +00:00
2026-01-01 01:08:30 +00:00
2026-01-01 01:08:30 +00:00
2026-01-02 07:07:51 +00:00
2026-01-02 07:07:51 +00:00

Drone Landing Simulation (GPS-Denied)

A GPS-denied drone landing simulation with multiple backends. Land a drone on a moving platform using only relative sensors (IMU, altimeter, camera).

Quick Start

Standalone Mode (No ROS 2 - Any Platform)

source activate.sh
python standalone_simulation.py --pattern circular --speed 0.3

Gazebo + ROS 2 (Linux/WSL2)

Terminal 1:

ros2 launch gazebo/launch/drone_landing.launch.py

Terminal 2:

source activate.sh
python run_gazebo.py --pattern circular
python camera_viewer.py  # Optional: view camera feed

ArduPilot SITL (Realistic Flight Controller)

Terminal 1:

source ~/ardu_ws/install/setup.bash
ros2 launch ardupilot_gz_bringup iris_runway.launch.py

Terminal 2:

mavproxy.py --console --map --master=:14550

Installation

# Ubuntu/Debian (includes ROS 2 + Gazebo)
./setup/install_ubuntu.sh

# With ArduPilot SITL
./setup/install_ardupilot.sh

# Activate environment
source activate.sh
Platform Install Script
Ubuntu/Debian ./setup/install_ubuntu.sh
ArduPilot SITL ./setup/install_ardupilot.sh
Arch Linux ./setup/install_arch.sh
macOS ./setup/install_macos.sh
Windows .\setup\install_windows.ps1

Files

File Description
standalone_simulation.py All-in-one (no ROS 2)
run_gazebo.py Gazebo controllers
run_ardupilot.py ArduPilot launcher
camera_viewer.py Drone camera window
drone_controller.py Your landing algorithm
config.py Configuration

Sensors Available

Sensor Data
IMU Orientation (roll, pitch, yaw), angular velocity
Altimeter Altitude, vertical velocity
Velocity Estimated velocity (x, y, z)
Camera Downward-facing image
Landing Pad Relative position when visible

Configuration

Edit config.py to customize:

  • Drone/rover positions
  • Controller gains (Kp, Kd)
  • Camera settings
  • Landing thresholds

Command Line Options

# Movement patterns
--pattern, -p   stationary, linear, circular, square, random
--speed, -s     Speed in m/s (default: 0.5)
--amplitude, -a Amplitude in meters (default: 2.0)

Documentation

Document Description
Installation Full setup guide
Architecture System overview
ArduPilot ArduPilot SITL guide
Gazebo Gazebo guide
Description
No description provided
Readme 632 KiB
Languages
Python 66.3%
Shell 25.4%
PowerShell 4.5%
Dockerfile 3.8%