Softivation

Otopilot seçiyorsun, önce şu dört farka bak

ArduPilot mi PX4 mü seçeceksin. Aynı Pixhawk kartına ikisi de yükleniyor ama mod adı, parametre adı ve waypoint görev desteği tutmuyor. Dört farka bak.

Furkan IŞIKAY 5 dk okuma

Elindeki kart aynı, beklediğin şey yok

Kartı aldın, bir firmware yükledin ve ekranda beklediğin mod yok. Ya da bir arkadaşının ayarını denedin, o parametre sende çıkmadı.

Sorun kartta değil, yüklediğin otopilot yazılımında. Aynı Pixhawk'a ArduPilot da PX4 da yüklenebiliyor; yüklendikten sonra mod adları, parametre adları ve görev desteği birbirini tutmuyor. Seçimden önce bakılacak dört yer var.

Fark 1: mod adı ortak değil

ArduPilot'ta eve dönüş modunun adı RTL. PX4'te aynı işin adı Return, BetaFlight'ta ise GPS Rescue.

Üçü de aracı kalkış noktasına götürür ama aynı şey değildir. GPS Rescue bir kurtarma özelliği; bağlantı koptuğunda devreye girsin diye konmuş.

Fark 2: otonom görev desteği aynı seviyede değil

Rota uçuracaksan belirleyici fark bu. ArduPilot ve PX4'te waypoint görevi uzun süredir üretimde kullanılıyor. INAV'da da var; sürüm 4.0'dan beri 120 waypoint saklanabiliyor.

BetaFlight tarafında waypoint altyapısı yeni ve geliştiricileri bunu deneysel olarak işaretliyor; belgelerinde gerçek araçta kullanılmaması gerektiği yazıyor. "BetaFlight da artık görev uçuruyor" cümlesi bugün için eksik kalıyor.

Görev ihtiyacın kaç waypoint ise firmware seçimini o sayı belirler. Haritalama gibi işler yüzlerce noktaya çıkar.

Fark 3: bootloader uygulamayla birlikte değişmez

Kartta iki ayrı katman var: alttaki bootloader ve üstteki uygulama. Firmware yüklediğinde yalnızca üstteki uygulama değişir, alttaki bootloader yerinde kalır.

Aynı Pixhawk'a iki firmware'in de yüklenebilmesinin nedeni, iki tarafın aynı kart kimliklerini kullanması: FMU_V3 için 9, FMU_V6X için 53.

Boş bir karta ilk kez yazıyorsan bootloader'ı da içeren sürümü (_with_bl) seçmen gerekir, yoksa kart USB'den çıkarıldığında bir daha tanınmaz.

Fark 4: parametre adı sabit değil

Bir forumda bulduğun ayar sende çıkmıyorsa parametre silinmemiş, adı değişmiş olabilir. ArduPilot Copter 4.7 ile birlikte birkaç parametre hem yeniden adlandırıldı hem de birimi değişti.

Copter 4.6 ve öncesiCopter 4.7Ne değişti
ARMING_CHECK = 1ARMING_SKIPCHK = 0anlam ters çevrildi
RTL_ALT = 1500 cmRTL_ALT_M = 15 mbirim cm → m
WPNAV_SPEED = 1000 cm/sWP_SPD = 10 m/sgrup öneki ve birim
FS_THR_ENABLE = 1FS_THR_ENABLE = 1değişmedi
BATT_LOW_VOLT = 10.5 VBATT_LOW_VOLT = 10.5 Vdeğişmedi

En sinsi olanı ilk satır. Eskiden yapılacak kontrolleri seçiyordun, şimdi atlanacak kontrolleri seçiyorsun. Anlam tersine döndü; eski bir rehberdeki değeri olduğu gibi yazarsan tam istemediğin şeyi yaparsın.

En sık yapılan hata, parametre listede çıkmayınca "bu firmware desteklemiyor" diye düşünmek. Önce adın değişip değişmediğine bak.

Yer istasyonu yazıyorsan modun ham sayısı da farklı

Mod farkı yer kontrol istasyonunda da karşına çıkar. Telemetride modun ham karşılığı HEARTBEAT mesajındaki custom_mode alanıdır. ArduPilot'ta bu düz bir sayıdır; PX4 aynı bilgiyi main_mode ve sub_mode diye iki alana bölüp tek sayıya paketler.

ArduPilot moducustom_modePX4 karşılığımain / sub
STABILIZE0Manual1 / 0
ALT_HOLD2Altitude2 / 0
AUTO3Mission4 / 4
GUIDED4Offboard6 / 0
LOITER5Position3 / 0
RTL6Return4 / 5

ArduPilot'ta bu modları sırayla verip HEARTBEAT içindeki custom_mode'u okursan soldaki sayıları görürsün. PX4'te iki alanın nasıl tek sayıya dönüştüğünü şekildeki eve dönüş örneğinde gör.

Eve dönüş modu HEARTBEAT içindeki custom_mode alanında

ArduPilot RTL custom_mode değeri 6, en alt baytta. PX4 Return modunda main_mode 4 bit 23–16 aralığına, sub_mode 5 en üst bayta yazılıyor; sayı 84148224 oluyor.
Nereye bak: dolu kutuların yeri. ArduPilot sayıyı en alt bayta koyar; PX4 ana modu ve alt modu üstteki iki bayta yerleştirir, bu yüzden aynı işin ham değeri bambaşka çıkar.

Aynı ekranda aynı adla görünen alan, iki firmware'de farklı ham değer taşır. Kendi yer istasyonu kodunu yazıyorsan modu sayıdan çözerken hangi firmware'e bağlı olduğunu bilmen gerekir.

Örnek: C# yer istasyonunda mod kutusunu custom_mode 6 gelince "RTL" yazacak şekilde kodladın; kendi drone'unda sorunsuz çalışıyor. Sürü uçuşunda bir takım arkadaşının PX4 yüklü aracı bağlanınca aynı eve dönüş için 84 148 224 gelir ve kutun boş kalır. Hangi firmware'e bağlı olduğunu bilmeden bu sayıyı doğru çözemezsin.

Hata Mesajları ve Anlamları

Aşağıdakiler ArduPilot'ta ekrana düşen metinlerdir.

PreArm: GPS 1: Bad fix

GPS modülü konum üretemiyor. ARM izni verilmiyor. Sırasıyla anten görüşünü, uydu sayısını ve modülün beslemesini kontrol et.

Arm: GPS 1: Bad fix

Aynı kontrol, farklı an. "PreArm:" öneki arm öncesi tarama sırasında, "Arm:" öneki ARM komutunu verdiğin anda gelir. Öneki okumak sorunun nerede yakalandığını söyler.

PreArm: Need Position Estimate

Otopilot nerede olduğunu bilmiyor. GPS fix'i olsa bile konum kestirimi henüz oturmamış olabilir; birkaç saniye beklemek çoğu zaman yeter.

PreArm: High GPS HDOP

Uydu sayısı yeterli ama uyduların gökyüzündeki dağılımı kötü. Açık alana çıkmak uydu sayısını artırmaktan daha çok işe yarar.

MAV_CMD_DO_MOTOR_TEST was denied

Motor testi reddedildi. PX4'ten ArduPilot'a geçenlerde en sık görülen sebep, gövde tipinin hiç tanımlanmamış olması. Bu durumda kurulumu baştan yapman gerekir.

PX4'te aynı bilgi farklı önekle gelir, örneğin Preflight Fail: ekf2 missing data. PX4'te bu metin ikincil kanaldır, asıl kanal olay kimliğidir. Hata ararken önekin firmware'e göre değiştiğini bilmek arama süreni kısaltır.

Kursta devamı

Kartın hangi firmware'i kaldırdığı, prearm kontrol zincirinin hangi sırayla işlediği ve gördüğün mesajın firmware'in hangi satırından geldiği eğitimde adım adım işleniyor.

Eğitimi incele: Sensörlerden Uçuşa Temel İHA Eğitimi

Bu yazı işinize yaradı mı?

Ücretsiz kaynakPixhawk ve ArduPilot hata mesajları sözlüğüBu yazıdaki mesaj ve benzerleri sözlükte: ne demek, neden çıkar, ilk neye bakılır.