GÖREV KAYDI

GÖREV KAYDI

KAYIT AÇIK

ATILIM UAV · YER KONTROL İSTASYONU

GÖREV KAYDI / DETAY

Arşiv

CANLI · OKUMA MODU

Aviyonik

Yer Kontrol İstasyonu (GCS) Nedir? Mission Planner vs. QGroundControl

Yer Kontrol İstasyonu (GCS) Nedir? Mission Planner vs. QGroundControl

ŞEK. 01

KAYIT KÜNYESİ

Kategori

Aviyonik

TARİH

TÜM KAYITLAR

Sahadaki ilk günümüzü hâlâ hatırlıyoruz. Uçak tezgâhın üzerinde duruyor, pervaneler sökülü; kumandadan arm komutu veriyoruz ve hiçbir şey olmuyor. Motorlar sessiz, LED turuncu yanıp sönüyor, kumandada hiçbir geri bildirim yok. Elimizdeki tek bilgi: "çalışmıyor."

Dizüstü bilgisayarı açtık, telemetri modülünü USB'ye taktık ve ekranın alt köşesinde tek bir satır belirdi: PreArm: Compass not calibrated. Beş saniyelik bir düzeltme. Ama bizi o beş saniyeye getiren şey uçak değil, yerdeki yazılımdı.

Yer kontrol istasyonu (GCS), aracı planlamak, izlemek ve yapılandırmak için yerde çalıştırdığımız yazılımdır. Uçuş kontrolcüsünün (FC) beynine açılan penceredir. Bu yazıda bir GCS'in gerçekte ne yaptığını, Mission Planner ile QGroundControl arasındaki farkları, MAVLink'in bu ilişkideki rolünü ve log analizinin neden pazarlığa kapalı olduğunu ele alıyoruz.

Bir GCS gerçekte ne yapar?

GCS'i "haritaya waypoint bırakmaya yarayan araç" saymak yaygın bir hata. Görev planlama, listedeki maddelerden yalnızca biri:

İşlev

Ne anlama gelir

Ne zaman kullanılır

Görev planlama

Waypoint, geofence ve rally point tanımlayıp bunları araca yüklemek

Uçuştan önce

Parametre yapılandırma

FC üzerindeki yüzlerce parametreyi okumak ve yazmak

Kurulum, tuning

Kalibrasyon

Pusula, ivmeölçer, RC, ESC, batarya

İlk kurulumda ve her saha değişiminde

Firmware yükleme

ArduPilot/PX4'ü bootloader üzerinden FC'ye yazmak

Kart ilk kez çalıştırıldığında ve sürüm yükseltmelerinde

Telemetri izleme

HUD, konum, batarya, GPS, uyarı mesajları

Uçuş sırasında

Log indirme ve analiz

Uçuş sonrası veriyi çekip grafiğe dökmek

Her uçuştan sonra

SITL/HIL bağlantısı

Simüle edilmiş bir araca gerçekmiş gibi bağlanmak

Geliştirme

ArduPilot belgeleri Mission Planner'ın işlevlerini şu başlıklar altında sıralıyor: firmware yükleme, kurulum ve tuning, otonom görev planlama, log indirme ve analiz, bir PC uçuş simülatörüyle hardware-in-the-loop (HIL) simülasyon. QGroundControl ise benzer biçimde beş alana ayrılıyor: Plan, Setup, Fly, Analyze ve gelişmiş araçlar.

SUAS 2026 iş akışımızda GCS, simülasyon ile saha arasında paylaşılan tek arayüz. Simüle araca SITL + Gazebo kurulumumuzda bağlandığımız yazılım, sahada gerçek Pixhawk'a bağlandığımız yazılımla aynı. Bu da "simülasyonda çalışıyordu" ile "sahada çalışmadı" arasındaki mesafeyi epeyce kapatıyor.

MAVLink: GCS ile FC'nin ortak dili

GCS ile uçuş kontrolcüsü birbiriyle MAVLink (Micro Air Vehicle Link) üzerinden konuşur. Resmî tanımıyla MAVLink, dronelarla ve drone bileşenleri arasında haberleşmek için tasarlanmış "çok hafif" bir mesajlaşma protokolüdür. Dar bant genişlikli, gürültülü kanallar için optimize edilmiştir.

Hafif olmak neden önemli? Çünkü çerçeveleme (framing) yükü doğrudan telemetri bütçenizden yiyor. Resmî belgelere göre MAVLink 1 paket başına 8 bayt, MAVLink 2 ise 12 bayt ek yük getiriyor (aradaki fark buna değer: MAVLink 2 daha güvenli ve daha genişletilebilir).

Telemetri linkinizin kaç mesaj taşıyabileceğini kabaca şöyle hesaplarsınız:

  1. Seri porttan geçen efektif bayt hızı (8N1 çerçeveleme: bayt başına 10 bit): byte_rate = baud / 10

  2. Tek bir MAVLink 2 mesajının toplam boyutu: message_size = payload_bytes + 12

  3. Teorik üst sınır: message_rate = byte_rate / message_size

Örnek: klasik 57600 baud'luk bir telemetri modülü ve ATTITUDE mesajı (28 baytlık payload) ile:

byte_rate = 57600 / 10 = 5760 bayt/s

message_size = 28 + 12 = 40 bayt

message_rate = 5760 / 40 = 144 mesaj/s (teorik tavan)

Bu bir tavan, bir vaat değil. Gerçekte tek bir akış değil, aynı anda onlarcasını gönderiyorsunuz (ATTITUDE, GLOBAL_POSITION_INT, SYS_STATUS, RC_CHANNELS...). Üstelik SiK sınıfı modüllerde hava veri hızı, seri port baud'undan bağımsız bir parametredir ve hata düzeltmenin kendi ek yükü vardır; gerçek verim için modülünüzün datasheet'ine bakın. Pratikte bütçeyi ArduPilot'ta elle yönetiyoruz: her akışın Hz cinsinden hızını SRn_* parametreleriyle kısıyoruz.

Linkin kendisi de parametrelerle tanımlanır:

Parametre

Ne anlama gelir

SERIALn_PROTOCOL = 1

MAVLink1

SERIALn_PROTOCOL = 2

MAVLink2 (bunu tercih edin)

SERIALn_BAUD

Port hızı; telemetri modüllerinde tipik olarak 57600

Aynı protokol companion computer tarafında da geçerli: Jetson'dan FC'ye giden hat da MAVLink konuşuyor. Bunu companion computer ve MAVLink rehberimizde ayrıntılı olarak yazmıştık.

Mission Planner vs. QGroundControl

İkisi de açık kaynak (GPLv3) ve ikisi de ArduPilot ile çalışıyor. Fark felsefi.



Mission Planner

QGroundControl

Platform

Windows (ArduPilot'un GCS karşılaştırma sayfası, Mono altında macOS'ta da çalıştırılabildiğini belirtiyor)

Windows 10 (1809+)/11, macOS 13+, Ubuntu 22.04/24.04, Android 9+ (2026 itibarıyla)

Otopilot

ArduPilot odaklı

PX4 ve ArduPilot

Arayüz

Yoğun ve sekmeli; her şey aynı anda görünür

Sade; sizi adım adım yönlendirir

Parametre erişimi

Full Parameter List / Tree üzerinden ham erişim

Parametre arama ve düzenleme; daha filtrelenmiş bir sunum

Log analizi

Dataflash indirme ve yerleşik grafik/analiz araçları

Analyze görünümü: Log Viewer (.bin ve .tlog), Download Logs, MAVLink Inspector

Tablet / saha kullanımı

Zayıf

Android desteği

Öğrenme eğrisi

Dik

Yumuşak

Ne zaman Mission Planner? ArduPilot kullanıyorsanız, parametrelerin derinine ineceksiniz, bir tuning döngüsündeyseniz ve tezgâhta bir Windows makineniz varsa. SUAS 2026 için birincil istasyonumuz Mission Planner; sebebi ham parametre erişimi ve ArduPilot belgelerinin büyük bölümünün doğrudan Mission Planner ekranları üzerinden yazılmış olması.

Ne zaman QGroundControl? Takımda macOS veya Linux kullanan varsa, PX4 ile de çalışıyorsanız, sahada tabletten operasyon yapacaksanız ya da ilk kurulumu takıma yeni katılmış birine devrediyorsanız. Arayüzü çok daha az korkutucu.

İkisini birlikte kullanmakta da sakınca yok; parametreler GCS'te değil FC'de duruyor. Bir programda değiştirdiğiniz ayar diğerinde de görünür.

Log analizi: tlog vs. dataflash

Bir GCS'in en az kullanılan ve en değerli tarafı burası. İki tür log var ve ikisi aynı şey değil:



Telemetri logu (.tlog)

Dataflash logu (.bin)

Nerede oluşur

Yerde; GCS kaydeder

Havada, FC'nin SD kartında

İçerik

Linkten geçen MAVLink mesajları

FC'nin iç durumu; çok daha ayrıntılı

Hız

Telemetri bant genişliğiyle sınırlı

Aracın kendi döngü hızına yakın

Link koparsa

Kaybolur

Etkilenmez

Ne işe yarar

"Operatör ne gördü, ne komut verdi"

"Araç gerçekte ne yaptı"

Kaza sonrası kök neden analizi neredeyse her zaman dataflash logundan çıkar. Tlog ise hikâyenin operatör tarafını anlatır: hangi komut hangi anda gitti, link ne zaman koptu.

Loglamayı yöneten ArduPilot parametreleri:

Parametre

Neyi kontrol eder

LOG_BACKEND_TYPE

0=kapalı, 1=SD kart, 2=MAVLink akışı, 4=kart üstü dataflash

LOG_BITMASK

Hangi kalemlerin loglanacağı

LOG_DISARMED

Arm'ı beklemeden, güç verildiği andan itibaren logla

LOG_FILE_DSRMROT

Disarm sonrası yeni bir log dosyası başlat

LOG_DISARMED, arm olamayan bir aracı teşhis ederken hayat kurtarır; çünkü varsayılan davranış logu ilk arm'da başlatır ve hiç arm olmayan bir uçuş geriye hiçbir kayıt bırakmaz. Not: bu parametreye 3 vermek, aracın hiç arm durumuna geçmediği logları da siler; ne yaptığınızı bilerek kullanın.

Kuralımız basit: her uçuştan sonra dataflash logunu indirin, uçuş iyi geçmiş olsa bile. SD kartlar dolar, log numaraları çakışır ve iki hafta sonra "o uçuşta bir tuhaflık vardı" dediğinizde veri çoktan gitmiş olur.

Alternatifler

APM Planner 2.0: Windows, macOS ve Linux'ta çalışan, GPLv3 lisanslı, daha hafif bir masaüstü seçenek. Mission Planner kadar derine inmiyor ama Linux'ta yerel olarak çalışması bir avantaj.

MAVProxy: komut satırı tabanlı bir GCS. Linux'ta çalışıyor ve Python ile genişletilebiliyor; ArduPilot belgeleri onu özellikle "kod yazan geliştiriciler" için öneriyor. Asıl gücü MAVLink trafiğini çoğaltabilmesi: tek bir seri porta gelen akışı birden fazla istemciye dağıtıyor.

# Connect to the FC, open the console and the map, and also forward the stream over UDP
mavproxy.py --master=/dev/ttyACM0,115200 \
            --out=udp:192.168.1.1:14550 \
            --console --map
# Connect to the FC, open the console and the map, and also forward the stream over UDP
mavproxy.py --master=/dev/ttyACM0,115200 \
            --out=udp:192.168.1.1:14550 \
            --console --map

Bu --out kalıbı bizim için kritik: aynı MAVLink akışını hem Mission Planner'a hem de kendi Python betiğimize aynı anda böyle veriyoruz. Jetson kurulum rehberimizde anlattığımız companion computer'da da işleri böyle yürütüyoruz.

Sık yapılan hatalar

  • Yedeklemeden parametrelerle oynamak. Herhangi bir şeyi değiştirmeden önce parametreleri bir dosyaya kaydedin. Tuning sırasında hangi değeri değiştirdiğinizi unutmak, her şeye sıfırdan başlamak demek.

  • Aynı seri porta iki cihaz asmak. Telemetri modülü ile companion computer aynı SERIALn'i paylaşamaz. Ayrı port, ayrı SERIALn_PROTOCOL, ayrı baud.

  • Baud uyuşmazlığını "bozuk kablo" sanmak. GCS bağlanmıyorsa önce baud hızını kontrol edin; modül çiftinin iki ucu da birbiriyle aynı olmalı.

  • Telemetri akış hızlarını sonuna kadar açmak. SRn_* değerlerini yükseltmek HUD'u akıcı gösterir ama linki doyurur ve kritik anda komutunuz sırada beklemeye başlar.

  • Pusulayı kapalı mekânda kalibre etmek. Metal tezgâh, güç kaynağı ve dizüstü bilgisayar manyetik alanı bozar ve sonucu mahveder. Bunu dışarıda, aracı ellerinizde döndürerek yapın.

  • Kalibrasyon ve motor testlerini pervaneler takılıyken yapmak. ESC kalibrasyonu ve GCS motor testi motorları gerçekten döndürür. Pervaneleri sökün. Dönen bir pervane parmak koparır; bu abartı değil, sahada oluyor. Aynı doğrultuda, LiPo bağlıyken FC'nin USB'sine takarken güç sıralamasına dikkat edin.

  • Sahada firmware güncellemek. Yeni bir sürüm bazı parametreleri sıfırlayabilir ya da yeniden adlandırabilir. Güncellemeler tezgâhta yapılır, ardından tam bir yer testi gelir.

Pratik özet

  1. Tek bir GCS seçin ve tüm takımı onda akıcı hale getirin. ArduPilot kullanıyor ve derin parametre erişimi istiyorsanız Mission Planner; çapraz platform veya tablet desteği gerekiyorsa QGroundControl.

  2. Şunu kullanın: SERIALn_PROTOCOL = 2 (MAVLink 2); telemetri bütçenizi de SRn_* akış hızlarıyla bilinçli biçimde yönetin.

  3. Her uçuştan sonra dataflash logunu indirin: tlog size operatörü, .bin ise aracı anlatır; kök neden neredeyse her zaman .bin'dedir.

  4. Parametrelerinizi yedekleyin ve her yapılandırma değişikliğini tarihiyle birlikte kaydedin.

  5. Her motor/ESC testinde pervaneleri sökün. GCS'ten verilen bir komut gerçek bir motoru döndürür.

©2026 ATILIM UAV TEAM

©2026 ATILIM UAV TEAM