2b01f636fef45aa89a82e2bcbf945ff25ddea860
Drone Landing Simulation (GPS-Denied)
A GPS-denied drone landing simulation using relative sensors (IMU, altimeter, camera, landing pad detection) with PyBullet and Gazebo simulators.
Quick Start
# Install (choose your platform)
./setup/install_ubuntu.sh # Ubuntu/Debian
./setup/install_arch.sh # Arch Linux
./setup/install_macos.sh # macOS
.\setup\install_windows.ps1 # Windows (PowerShell)
# Activate and run
source activate.sh # Linux/macOS
. .\activate.ps1 # Windows
python standalone_simulation.py --pattern circular --speed 0.3
Platform Compatibility
| Feature | Ubuntu | Arch | macOS | Windows |
|---|---|---|---|---|
| Standalone | ✅ | ✅ | ✅ | ✅ |
| ROS 2 | ✅ | ⚠️ | ❌ | ❌ |
| Gazebo | ✅ | ⚠️ | ❌ | ❌ |
All platforms support standalone mode - no ROS 2 required!
Files
| File | Description |
|---|---|
standalone_simulation.py |
All-in-one simulation (no ROS 2) |
simulation_host.py |
PyBullet simulator (ROS 2 mode) |
ros_bridge.py |
UDP ↔ ROS 2 bridge |
gazebo_bridge.py |
Gazebo ↔ ROS 2 bridge |
controllers.py |
Runs drone + rover controllers |
drone_controller.py |
Drone landing logic (edit this) |
rover_controller.py |
Moving landing pad |
Controller Options
python standalone_simulation.py --help
Options:
--pattern, -p stationary, linear, circular, square
--speed, -s Speed in m/s (default: 0.5)
--amplitude, -a Amplitude in meters (default: 2.0)
GPS-Denied Sensors
| Sensor | Data |
|---|---|
| IMU | Orientation, angular velocity |
| Altimeter | Altitude, vertical velocity |
| Velocity | Estimated horizontal velocity |
| Camera | 320x240 downward-facing image |
| Landing Pad | Relative position when visible |
Documentation
| Document | Description |
|---|---|
| Installation | All platform setup guides |
| Architecture | System components |
| Protocol | Sensor data formats |
| Drone Guide | Landing algorithm guide |
| PyBullet | PyBullet setup |
| Gazebo | Gazebo setup (Linux) |
Getting Started
- Run
python standalone_simulation.py - Watch the drone land automatically
- Edit
drone_controller.pyto implement your own algorithm - Test:
python standalone_simulation.py --pattern circular
Description
Languages
Python
66.3%
Shell
25.4%
PowerShell
4.5%
Dockerfile
3.8%