# Gazebo Simulation Guide ## Quick Start (2 Terminals) **Terminal 1 - Gazebo:** ```bash ros2 launch gazebo/launch/drone_landing.launch.py ``` **Terminal 2 - Controllers:** ```bash source activate.sh python run_gazebo.py --pattern circular ``` ## Command Options ```bash python run_gazebo.py --pattern circular --speed 0.5 Options: --pattern, -p stationary, linear, circular, square, random --speed, -s Rover speed in m/s (default: 0.5) --amplitude, -a Movement radius (default: 2.0) --no-rover Disable rover controller ``` ## View Camera ```bash python camera_viewer.py --topic /drone/camera ``` ## Sensors | Sensor | Description | |--------|-------------| | IMU | Orientation, angular velocity | | Altimeter | Altitude, vertical velocity | | Velocity | Estimated velocity (x, y, z) | | Camera | Downward-facing image | | Landing Pad | Relative position | ## ROS 2 Topics | Topic | Direction | |-------|-----------| | `/cmd_vel` | Your commands → Drone | | `/drone/telemetry` | Sensors → You | | `/drone/camera` | Camera → You | | `/rover/telemetry` | Rover position | ## Headless Mode (WSL2) ```bash # Server only (no GUI) ign gazebo -s gazebo/worlds/drone_landing.sdf ``` ## Troubleshooting **Drone falls:** - Check `run_gazebo.py` is running - Check topic: `ros2 topic echo /drone/cmd_vel` **Rover doesn't move:** - Check topic: `ros2 topic echo /rover/cmd_vel` **Model not found:** ```bash export GZ_SIM_RESOURCE_PATH=$PWD/gazebo/models:$GZ_SIM_RESOURCE_PATH ```