Files
RDC_Simulation/docs/architecture.md

2.5 KiB

Architecture

System Overview

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│ Gazebo          │◄───►│ ArduPilot SITL  │◄───►│ Controller      │
│ (Physics)       │JSON │ (Flight Ctrl)   │MAV  │ (Your Logic)    │
└─────────────────┘     └─────────────────┘     └─────────────────┘
        │                                               │
        ▼                                               ▼
  ~/ardupilot_gazebo                          src/drone_controller.py

Terminal Layout

Terminal 1:

./scripts/run_ardupilot_sim.sh
    │
    ▼
Gazebo + ArduPilot Plugin

Terminal 2:

./scripts/run_ardupilot_controller.sh
    │
    ├── ArduPilot SITL (background)
    │
    └── run_ardupilot.py
            │
            └── src/drone_controller.py

Data Flow

Gazebo ◄─── JSON/UDP ───► SITL ◄─── MAVLink ───► Controller
  │                         │                        │
  │ Physics                 │ Flight control         │ Your logic
  │ Sensors                 │ EKF                    │ 3-phase mission
  │ Rendering               │ Stabilization          │ QR detection
  ▼                         ▼                        ▼
 Display              Attitude/Position          Commands

Key Files

File Purpose
src/drone_controller.py 3-phase mission logic
scripts/run_ardupilot.py MAVLink interface
src/mavlink_bridge.py MAVLink utilities
src/gazebo_bridge.py Gazebo ROS bridge
config.py Configuration

3-Phase Mission

┌────────┐    QR Found    ┌─────────┐    Timeout    ┌──────┐
│ SEARCH │───────────────►│ COMMAND │──────────────►│ LAND │
└────────┘                └─────────┘               └──────┘
     │                         │                        │
     ▼                         ▼                        ▼
  Detect QR              Send to rover           Track & descend