QGroundControl(QGC) 개발자 가이드

- for Ubuntu(Linux) (4/9)

by 연화유심

Part 4. Communication Flow & Plugin Architecture (통신 흐름 및 플러그인 아키텍처)

이 파트에서는 Ubuntu 환경에서 QGroundControl(QGC)의 MAVLink 통신 구조와 플러그인 아키텍처를 설명합니다. 외부 메시지 흐름(드론 ↔ QGC)과 내부 아키텍처(LinkManager, MAVLinkProtocol 등)를 모두 다루며, 공식 Developer Guide 내용을 반영했습니다.


1) MAVLink 메시지 흐름 (외부 관점)

드론 → QGC: Telemetry, 센서 데이터, 상태 메시지

QGC → 드론: 모드 변경, 미션 업로드, 제어 명령

이러한 흐름은 QGC의 MAVLink Inspector로 실시간 확인 가능하며,

Analyzer로 전송률/손실률을 분석할 수 있습니다.


2) Communication Flow 상세 (내부 관점)

LinkManager: UDP/Serial 연결 관리, Heartbeat 대기

MAVLinkProtocol: 바이트 스트림 → MAVLink 메시지 변환

MultiVehicleManager: Heartbeat 수신 시 Vehicle 객체 생성

ParameterLoader: Vehicle 파라미터 로드

MissionManager: 미션 아이템 요청/관리

VehicleComponents: Setup View UI 연결 (센서, GPS, 카메라 등)


3) 플러그인 아키텍처

FirmwarePlugin: 펌웨어(PX4/ArduPilot)별 동작 정의

AutoPilotPlugin: 파라미터 로딩 및 UI 연동

QGCCorePlugin: 앱 전체 커스터마이징 (Setup View 확장 등)


4) Ubuntu 환경 특징

Serial 장치: `/dev/ttyUSB*`, `/dev/ttyACM*`

권한 문제 해결: `sudo usermod -a -G dialout $USER` 후 재부팅

방화벽 사용 시: `sudo ufw allow 14550/udp` 필요

GStreamer 설치 후 영상 스트리밍 활성화

작가의 이전글QGroundControl(QGC) 개발자 가이드