Files
RDC_Simulation/README.md
2026-01-01 00:59:44 +00:00

2.5 KiB

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

  1. Run python standalone_simulation.py
  2. Watch the drone land automatically
  3. Edit drone_controller.py to implement your own algorithm
  4. Test: python standalone_simulation.py --pattern circular