Files
RDC_Simulation/docs/architecture.md

2.7 KiB

Architecture Overview

Operation Modes

1. Standalone (Any Platform, 1 Terminal)

python standalone_simulation.py --pattern circular
┌────────────────────────────────────────┐
│      standalone_simulation.py          │
│  PyBullet Physics + Camera + Controllers│
└────────────────────────────────────────┘

2. Gazebo + ROS 2 (2 Terminals)

Terminal 1:

ros2 launch gazebo/launch/drone_landing.launch.py

Terminal 2:

python run_gazebo.py --pattern circular
Terminal 1                    Terminal 2
┌───────────────────┐        ┌───────────────────┐
│ Gazebo + Bridge   │◄──────►│ run_gazebo.py     │
│ (Physics)         │  ROS   │ + Controllers     │
└───────────────────┘        └───────────────────┘

3. ArduPilot SITL + Gazebo (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
Terminal 1                    Terminal 2
┌───────────────────┐        ┌───────────────────┐
│ Gazebo +          │◄──────►│ ArduPilot SITL    │
│ ArduPilot Plugin  │  JSON  │ + MAVProxy        │
└───────────────────┘  UDP   └───────────────────┘

Key features:

  • Full ArduPilot flight controller
  • EKF, stabilization, failsafes
  • MAVLink protocol
  • Compatible with QGroundControl, Mission Planner

Key Components

Component Description
standalone_simulation.py All-in-one PyBullet simulation
run_gazebo.py Gazebo bridge + controllers
drone_controller.py Your landing algorithm
camera_viewer.py Camera display window

ROS 2 Topics (Gazebo Mode)

Topic Direction Description
/drone/telemetry Sensor data (JSON)
/cmd_vel Velocity commands
/drone/camera Camera images

Sensors

Sensor Data
IMU orientation, angular_velocity
Altimeter altitude, vertical_velocity
Velocity x, y, z (m/s)
Camera 320x240 image
Landing Pad relative_x, relative_y (when visible)