GÖREV KAYDI

GÖREV KAYDI

KAYIT AÇIK

ATILIM UAV · YER KONTROL İSTASYONU

GÖREV KAYDI / DETAY

Arşiv

CANLI · OKUMA MODU

Aviyonik

Uçuş Kontrolcüsü Seçimi: Pixhawk Ailesi, ArduPilot vs PX4

Uçuş Kontrolcüsü Seçimi: Pixhawk Ailesi, ArduPilot vs PX4

Harmonik notch filtresi öncesi ve sonrası titreşim spektrumu

FIG. 01

KAYIT KÜNYESİ

Kategori

Aviyonik

TARİH

TÜM KAYITLAR

SUAS 2026 hava aracımızı kurarken verdiğimiz ilk kalıcı karar uçuş kontrolcüsü oldu. Kâğıt üzerinde basit görünüyor: bir kart seç, yazılımı yükle, uç. Sonra ArduPilot'ın desteklenen kartlar listesini açıyorsunuz; onlarca isim çıkıyor, her biri "Pixhawk uyumlu" olduğunu iddia ediyor, fiyatlar arasında kat kat fark var ve forumda birileri size PX4'e geçmenizi söylüyor. Nereden başlanacağı hiç belli değil.

Bu yazıda o karmaşayı ikiye ayırıyoruz: donanım seçimi (hangi kart) ve uçuş yazılımı seçimi (ArduPilot mı, PX4 mü). İkisinin birbirine bağlı olduğu sanılır; oysa Pixhawk standardını izleyen kartların çoğu her iki yazılımı da çalıştırır. Yani ikisine ayrı ayrı, farklı ölçütlerle karar verebilirsiniz.

Aşağıdaki her sayı, resmi ArduPilot ve PX4 dokümantasyonuyla karşılaştırılarak doğrulandı. Doğrulayamadığımız yerlerde "üreticinin veri sayfasına bakın" yazdık; kaynak listesi yazının sonunda.

Uçuş kontrolcüsü aslında ne yapar?

Bir uçuş kontrolcüsünün (FC) dört işi vardır ve donanım ölçütlerini doğrudan bu dört iş belirler.

Sensör füzyonu. EKF (Extended Kalman Filter, genişletilmiş Kalman filtresi); IMU'dan (atalet ölçüm birimi: ivmeölçer + jiroskop), barometreden, pusuladan ve GPS'ten gelen ham veriyi tek bir durum kestirimine indirger: konum, hız, yönelim. Sensörler birbiriyle çeliştiğinde hangisine ne kadar güvenileceğine EKF karar verir. Yedekli sensörlerin önemi de buradan gelir.

Stabilizasyon. Yönelim hatasını motor komutlarına çeviren iç döngü. Kart üzerindeki gürültü doğrudan bu döngüye girer; aşağıda ayrı bir titreşim bölümü olmasının sebebi de bu.

Navigasyon. Waypoint'ler arası rota, hız profili, kalkış ve iniş mantığı.

Failsafe (güvenli-mod). Bir şey bozulduğunda ne olacağı. ArduCopter'ın failsafe kapsamı şunları içerir:

Failsafe

Tetikleyici

Telsiz

Kumanda (RC) sinyalinin kaybedilmesi

Batarya

Batarya geriliminin veya kalan kapasitenin eşiğin altına düşmesi

GCS

Yer kontrol istasyonu bağlantısının kopması

EKF

Durum kestiriminin güvenilmez hale gelmesi

Titreşim

Titreşimin tolere edilemez seviyeye çıkması

Dead Reckoning (kör seyir)

Hava aracının konum referansı olmadan konum kestirmeyi sürdürmesi

Arazi verisi

Arazi takibi sırasında arazi verisinin kaybedilmesi

Çarpma kontrolü / Paraşüt

Çarpmanın tespit edilmesi / paraşütün tetiklenmesi

Not: Telsiz, batarya, GCS veya arazi failsafe'i bir mod değişikliğine yol açtıysa, pilot modu elle değiştirene kadar hava aracı o modda kalır.

Pixhawk bir ürün değil, açık bir standart

"Pixhawk" tek bir kart değil; Dronecode Foundation çatısı altında yayımlanan açık donanım standartları ailesidir. Standart; FMU (uçuş yönetim birimi) sürümünü, konnektör pin dizilimini ve son nesilde Pixhawk Autopilot Bus (PAB) üzerinden taşıyıcı kart ile FMU ayrımını tanımlar. Pratikte kazandırdığı şey şu: farklı üreticilerin kartları aynı kablolamayla ve aynı yazılımla çalışır.

FMU sürümü

Örnek kartlar

Konumu

FMUv3

Hex Cube Black, mRo Pixhawk

Eski nesil, hâlâ uçuyor

FMUv4

mRo Pixracer

Küçük ve hafif

FMUv5

Holybro Pixhawk 4

Yaygın orta segment

FMUv5X

Holybro Pixhawk 5X

Modüler tasarıma geçiş

FMUv6C

Holybro Pixhawk 6C / 6C Mini, Pix32 v6

Maliyet odaklı

FMUv6X

Holybro Pixhawk 6X, CUAV Pixhawk V6X, RaccoonLab FMUv6X

Üst segment, yedeklilik üzerine kurulu

FMUv6X-RT

NXP MR-VMU-RT1176, Pixhawk 6X-RT

i.MX RT tabanlı varyant

Farkı somutlaştıralım. Pixhawk 6C: STM32H743 (Cortex-M7, 480 MHz, 2 MB flash, 1 MB RAM), iki IMU (ICM-42688-P + BMI055), tek barometre (MS5611), 16 PWM çıkışı, 84.8 × 44 × 12.4 mm, 59.3 g. Pixhawk 6X: STM32H753, üç IMU (Rev 8'de 3× ICM-45686), çift barometre (ICP20100 + BMP388), ayrı bir titreşim yalıtım sistemi, ısıtıcı dirençli sıcaklık kontrollü IMU kartı, 16 PWM, 8 seri port, 2 CAN. Fiyat farkının gerçekte size aldırdığı şey yedeklilik ve sensör kararlılığı.

Donanım seçim ölçütleri

ArduPilot'ın kendi seçim rehberi şu başlıkları sıralıyor: sensör yedekliliği, servo/motor çıkışı sayısı, UART sayısı, harici veri yolları (I2C, CAN), analog I/O, tümleşik özellikler, titreşim yalıtımı ve IMU ısıtıcısı, fiziksel boyut, maliyet. Otonom bir görevde kartları asıl ayıran üçü şunlar:

1. Flash boyutu. Bazı yapılandırmalarda ArduPilot yazılımı 1 MB'ı aşar; bu yüzden 1 MB flash'lı kartlara bazı özellikleri çıkarılmış bir derleme yüklenir. Hangi özelliklerin çıkarıldığı karttan karta değişir; tam liste, yazılım klasöründeki features.txt dosyasındadır. F4 tabanlı kartlar Lua scriptlerini hiç çalıştıramaz. Otonom görev planlıyorsanız 2 MB flash'lı H7 sınıfı bir kartla başlayın; sonradan bir özelliğin neden olmadığını araştırarak vakit kaybetmeyin.

2. UART bütçesi. En sık yapılan planlama hatası tam burada. Basit bir sayım yapın:

UARTs required = telemetri + GPS + companion + gimbal/kamera + ESC telemetrisi + 1 yedek

Hava aracımız

UART

Telemetri telsizi

1

GPS/pusula

1

Jetson Orin NX (MAVLink)

1

SIYI A8 mini kontrolü

1

Yedek

1

Toplam

5

Bu sayı kartın seri port sayısını aşıyorsa ya kartı değiştirirsiniz ya da bir şeyi CAN'e taşırsınız; her iki durumda da bunu kablo demetini yapmadan önce bilmek daha ucuza gelir.

3. Titreşim yalıtımı ve SD kayıt. Dahili yalıtım ve IMU ısıtıcısı, tuning süresini kısaltan özelliklerdir. SD kart ise pazarlık konusu değil: log yoksa hata ayıklama da yok; üstelik Lua scriptleri de SD karttan yüklenir.

ArduPilot mı, PX4 mü?

Ölçüt

ArduPilot

PX4

Lisans

GPLv3: değişiklikleri dağıtırsanız kaynak kodu ve atıf vermek zorundasınız

BSD 3-clause: kapalı kaynak türev ürünlere izin verir

Araç tipleri

Copter, Plane, Rover, Sub, Blimp, Antenna Tracker

Copter, Plane, VTOL, Rover, Airship, Autogyro, Spacecraft, UUV

Mimari

HAL üzerinde, zamanlanmış görevlerle çalışan kooperatif zamanlayıcı

uORB yayınla/abone ol veri yolu üzerinde modüler yapı

Script desteği

Yerleşik Lua scripting

Yerleşik bir Lua karşılığı yok; modüller C++ ile yazılır

Tipik GCS

Mission Planner (Windows), QGroundControl

QGroundControl (Windows/macOS/Linux/iOS/Android)

Parametre derinliği

Çok geniş; büyük bir tuning alanı

Daha dar; varsayılanları görece daha oturmuş

ArduPilot'ı seçin: parametreler üzerinden derinlemesine tuning yapacaksanız, hava aracının üzerinde Lua ile mantık koşturmak istiyorsanız, Mission Planner'ın log analizi ve tuning araçlarını kullanacaksanız ve GPLv3 yükümlülüğü sizin için sorun değilse (bir yarışma takımı için genelde değildir).

PX4'ü seçin: yazılımı kapalı kaynak bir ürüne gömüp ticarileştirecekseniz, uORB tabanlı modüler mimaride C++ modülleri yazacaksanız, uXRCE-DDS köprüsü üzerinden sıkı bir ROS 2 entegrasyonuna ihtiyacınız varsa veya QGroundControl zaten kurumunuzun standardıysa.

Biz ArduPilot'ta karar kıldık: Lua scripting, Mission Planner'ın log ve tuning araçları ve airdrop için ihtiyaç duyduğumuz servo mantığı bu tarafta daha az kodla çözülüyordu. Bu bir üstünlük iddiası değil; iş yükümüzden çıkan bir tercih.

Otonom görevde gerçekten fark yaratan üç özellik

GUIDED modu. Companion computer'ın hava aracını komuta ettiği mod. Konum hedeflerini, hız ve ivme komutlarını ve SET_ATTITUDE_TARGET üzerinden yönelim hedeflerini kabul eder; DO_CHANGE_SPEED ile uçuş sırasında hızı değiştirebilirsiniz. GUIDED_NoGPS varyantı yalnızca yönelim hedeflerini kabul eder. Tespit → hizalanma → bırakma zincirimiz bu modun üzerinde çalışıyor; ayrıntılar companion computer ve MAVLink rehberimizde.

Lua scripting. SCR_ENABLE = 1 ile açılır; scriptler SD karttaki APM/scripts klasörüne konur. Donanım gereksinimi: en az 2 MB flash, en az 80 KB RAM ve bir SD kart. SCR_HEAP_SIZE varsayılanı işlemciye göre 43 KB ile 204.8 KB arasında değişir; hazır applet'lerin çoğu 300 KB'ın üzerini ister, bu yüzden heap'i elle büyütmeniz gerekebilir.

Companion bağlantısı. Jetson Orin NX'i bağlamak için üç parametre yeterli:

SERIAL2_PROTOCOL = 2      # MAVLink2
SERIAL2_BAUD     = 921    # 921600 baud
SCR_ENABLE       = 1      # Lua (if you are going to use it)
SCR_HEAP_SIZE    = 307200 # over 300 KB for the applets
SERIAL2_PROTOCOL = 2      # MAVLink2
SERIAL2_BAUD     = 921    # 921600 baud
SCR_ENABLE       = 1      # Lua (if you are going to use it)
SCR_HEAP_SIZE    = 307200 # over 300 KB for the applets

Uçmadan önce bunları SITL'de doğrulayın; kurulumu SITL + Gazebo yazımızda ele almıştık. Jetson tarafının kendi kurulum rehberi var.

Titreşim: seçtiğiniz kartın ölçülebilir sonucu

Kart seçiminin uçuş kalitesini nasıl etkilediğini nesnel olarak görebileceğiniz tek yer, logdaki VIBE değerleridir.

VIBE X/Y/Z

Yorum

< 30 m/s²

Normalde kabul edilebilir

30–60 m/s²

Sorun çıkarabilir

> 60 m/s²

Konum ve irtifa tutuşu için neredeyse her zaman sorun

CLIP0/1/2 sayaçları, bir ivmeölçerin 16 G sınırına dayandığı anları sayar. Sıfır idealdir; sert inişlerden kaynaklanan 100'ün altındaki değerler genelde tolere edilebilir. Log boyunca istikrarlı biçimde artan bir sayaç ise ciddi bir titreşim problemidir.

Titreşimi filtreleyerek bastırmanın yolu harmonik notch filtresidir. Gaz tabanlı (throttle based) kurulum:

f_hover [Hz] = hover_motor_rpm [RPM] / 60

INS_HNTCH_MODE = 1              # throttle based
INS_HNTCH_ENABLE = 1
INS_HNTCH_FREQ = f_hover
INS_HNTCH_BW   = f_hover / 2
INS_HNTCH_REF  = hover_thrust   # throttle ratio at hover

# If the noise in dynamic flight drops below the hover frequency:

INS_HNTCH_MODE = 1              # throttle based
INS_HNTCH_ENABLE = 1
INS_HNTCH_FREQ = f_hover
INS_HNTCH_BW   = f_hover / 2
INS_HNTCH_REF  = hover_thrust   # throttle ratio at hover

# If the noise in dynamic flight drops below the hover frequency:

Sayısal bir örnek. Hover'da 4200 RPM motor devri ve 0.35 hover gazı ölçtük:

Parametre

Değer

f_hover

4200 / 60 = 70 Hz

INS_HNTCH_FREQ

70

INS_HNTCH_BW

70 / 2 = 35 Hz

INS_HNTCH_REF

0.35

Filtre sonrası FFT'de en düşük motor gürültüsü 55 Hz'e oturuyorsa:

INS_HNTCH_REF = 0.35 * (55/70)^2 = 0.35 * 0.617 = 0.216

f_hover değerini tahmin etmek yerine ham IMU logundan (FFT ile) okuyun.



Notch filtresi öncesi ve sonrası IMU spektrumu

Sürekli düşülen tuzaklar

Ucuz klon kartlar. ArduPilot dokümantasyonu klonlar konusunda tarafsız kalıyor: birçoğu gayet yeterli olabilir, ancak bir kart için yazılım sağlanıyor olması onay anlamına gelmez. Risk sensörlerde ve güç devresinde yoğunlaşıyor: sahte veya düşük kaliteli IMU'lar, zayıf regülatörler, kötü konnektörler. Bunların hiçbiri tezgâhta ortaya çıkmaz; havada çıkar. Yarışma hava aracında FC, paradan kısılacak yer değildir.

Titreşimi tuning ile çözmeye çalışmak. Notch filtresi mekanik bir problemi maskeler, çözmez. Önce pervane balansı, motor yatakları, gövde rezonansı ve FC montajı. Filtre sonra.

Pusula kalibrasyonu. Metal masa, telefon, dizüstü bilgisayar veya güç kaynağı yakınında kalibrasyon yapmayın. Kalibrasyon sürekli başarısız oluyorsa COMPASS_OFFS_MAX değerini 850'den 2000–3000'e çıkarmayı ve Mission Planner'daki "Fitness" ayarını gevşetmeyi deneyin; harici pusulaya güveniyorsanız tutarsız dahili pusulaları devre dışı bırakabilirsiniz. Kalibrasyondan sonra kartı yeniden başlatın.

1 MB flash sürprizi. Kart masanıza geldikten sonra arazi takibi olmadığını fark etmek çok geç. Almadan önce o kartın features.txt dosyasına bakın veya Custom Firmware Build Server'ın istediğiniz özellik setiyle bir derleme üretebildiğini doğrulayın.

Güvenlik. Motor ve ESC testlerini; mod testleri, failsafe testleri ve yön kontrolleri dahil, pervaneler sökülmüş halde yapın. LiPo bağlıyken kart üzerinde asla kablolama değiştirmeyin; önce mutlaka bataryayı çıkarın. Güç modülünün akım ve gerilim sınırlarını üreticinin veri sayfasından doğrulayın ve batarya failsafe'i yapılandırılmadan otonom uçmayın. Yüksek akım hattındaki gevşek bir konnektör hem yangın hem de uçuşta güç kaybı riskidir.

Pratik özet

  1. Donanımı ve yazılımı ayrı ayrı seçin. Pixhawk standardını izleyen kartların çoğu her iki uçuş yazılımını da çalıştırır; kararı geri almak yazılım tarafında ucuz, donanım tarafında pahalıdır.

  2. 2 MB flash'lı H7 sınıfı bir kartla başlayın. Lua, arazi takibi ve tam özellik seti bunu gerektirir; F4 kartlar Lua çalıştıramaz.

  3. Kablolamaya başlamadan önce UART bütçesini yazın. Telemetri + GPS + companion + gimbal + 1 yedek: toplam kartın port sayısını aşıyorsa, kartı değil planı değiştirmek için artık geç kalmışsınız demektir.

  4. Kararınızı "hangisi daha iyi" tartışmasına göre değil, lisansa göre verin. Hedef kapalı kaynak bir ürünse PX4 (BSD); açık kaynak bir yarışma hava aracıysa ArduPilot'ın GPLv3'ü sorun değil.

  5. İlk uçuştan sonra ilk bakacağınız şey VIBE ve CLIP olmalı. 30 m/s²'nin altını hedefleyin; CLIP sayacı artıyorsa tuning'e geçmeden önce mekaniği düzeltin.

©2026 ATILIM UAV TEAM

©2026 ATILIM UAV TEAM