Mission Planner EKF hatası veriyor
- Furkan IŞIKAY

- 31 Tem
- 4 dakikada okunur

Drone yerde duruyor, GPS var, uydu sayısı yeterli. Mission Planner'ın üstündeki EKF yazısı kırmızıya dönüyor ve motorlar ARM olmuyor.
Beklersen düzeliyor. Ertesi gün aynı alanda yine kırmızı. Bozduğun bir ayar aramana gerek yok, çünkü ortada bozulmuş bir ayar yok. Otopilot sana kendi konum tahminine ne kadar güvendiğini söylüyor.
Ekrandaki o çubuk ne ölçüyor
Mission Planner'ın HUD'undaki EKF etiketine tıkladığında açılan pencerede beş çubuk var. Bunlar sensör değeri değil. Otopilot her ölçümü kendi beklentisiyle karşılaştırıyor ve aradaki farkı, o ölçüm için tanımlanmış kabul sınırına bölüyor. Çıkan oran çubuğa yansıyor.
Yani çubuk yükseldiğinde pusulan bozulmuş olmak zorunda değil. Pusulanın söylediği ile otopilotun beklediği birbirini tutmuyor. İkisi farklı şeyler.
Resmî dokümanda bu değerlerin 0 ile 1 arasında olduğu yazıyor. Öyle değil. Kendi ölçümümüzde pusula varyansı 289'a çıktı. Değer üst sınırsız; 1'in üstü "bu ölçüm reddedildi" demek.
0.8 sayısı nereden geliyor
Otopilotta FS_EKF_THRESH adında tek bir parametre var ve varsayılan değeri 0.8. Kendi test kurulumumuzda parametreyi okuduk, 0.8 döndü. Bu sayı iki ayrı yerde kullanılıyor: ARM öncesi kontrolde ve uçuş sırasındaki failsafe'de.
Aradaki fark önemli. ARM öncesi kontrol dört varyansa da tek tek bakıyor ve biri bile eşiği aşıyorsa ARM izni vermiyor. Uçuş sırasındaki kontrol ise aynı şekilde çalışmıyor.
Zincire dikkat et: yükseklik varyansı uçuş sırasında hiç karşılaştırılmıyor. Konum varyansı da tek başına sayacı artırmıyor, yalnızca başka bir koşul zaten tuttuysa devreye giriyor.
Kırmızı çubuk gördüğün hâlde failsafe neden gelmiyor
Bunu ölçtük. Havada asılı duran bir araçta motor akımına bağlı manyetik girişimi kademeli olarak yükselttik ve dört varyansı 200 saniye boyunca kaydettik.
Pusula varyansı 0.011'den 289'a çıktı ve 403 örnek boyunca eşiğin üstünde kaldı. Hız varyansı en fazla 0.18, konum varyansı en fazla 0.06 oldu. İkisi de eşiğe yaklaşmadı.
Sonuç: EKF failsafe hiç tetiklenmedi. Karar zinciri iki bağımsız işaret istiyor, elimizde bir tane vardı. Araç uçmaya devam etti.
Bunun yerine başka bir şey oldu. Otopilot 32 kez pusula değiştirdi ve mesaj sekmesine EKF3 IMU0 switching to compass 1 satırını düşürdü. Kırmızı çubuğu gördüğün hâlde failsafe beklemek yanlış refleks; asıl sinyal mesaj sekmesinde.
Kendi kartında nasıl ölçersin
Bu sorunun kaynağı gerçek donanımda motor akımı, gövde metali ve pusulanın montaj yeri. Varsayılan ayarlarla kurulmuş bir simülasyonda kendiliğinden çıkmaz; biz görebilmek için girişimi elle tanımladık. Senin kartında girişimi zaten motorların kendisi üretiyor, ölçmen yeterli.
Mission Planner'ın penceresine bakmak yerine sayıyı doğrudan oku. Aşağıdaki betik otopilota bağlanır ve dört varyansı saniyede iki kez basar. Eşiği aşanı satırın sonunda işaretler.
Aracı yerde tutup gaz vermeden çalıştır, sonra pervaneleri sökmeden kalkışa geç ve aynı satırları izle. Girişim varsa fark gaz açtığın anda belirir. Bizim kurulumumuzda girişim sırasında çıktı şöyleydi:
pusula=169.707 hiz= 0.011 konum= 0.007 yukseklik= 0.000 ESIK USTU: pusulapusula=169.713 hiz= 0.011 konum= 0.005 yukseklik= 0.000 ESIK USTU: pusulapusula=169.781 hiz= 0.011 konum= 0.006 yukseklik= 0.000 ESIK USTU: pusulapusula=169.739 hiz= 0.010 konum= 0.006 yukseklik= 0.000 ESIK USTU: pusulapusula=169.767 hiz= 0.010 konum= 0.006 yukseklik= 0.000 ESIK USTU: pusulapusula=169.723 hiz= 0.010 konum= 0.006 yukseklik= 0.000 ESIK USTU: pusulapusula=169.701 hiz= 0.009 konum= 0.007 yukseklik= 0.000 ESIK USTU: pusulapusula=170.879 hiz= 0.009 konum= 0.007 yukseklik= 0.000 ESIK USTU: pusulaEn sık yapılan hata FS_EKF_THRESH'i 1.0'a çekip uyarıyı susturmak. Eşiği yükseltmek pusulayı düzeltmez, sadece otopilotun seni uyarma penceresini daraltır. Girişim aynı yerde durur, uyarı gider.
Hata Mesajları ve Anlamları
Aşağıdakiler ArduPilot'un gerçekten ürettiği metinler. Mission Planner'ın mesaj sekmesinde birebir bu şekilde görünürler.
PreArm: AHRS: EKF3 still initialising
EKF3 açıldı ama çözümü henüz oturmadı. Kendi ölçümümüzde otopilot açıldıktan 3,4 saniye sonra EKF3 etkin oldu, ARM izni ise 28. saniyede geldi. Aradaki fark normal, bekleyeceksin.
PreArm: Need Position Estimate
EKF henüz bir konum üretemedi. Kapalı alandaysan dışarı çık, GPS'in yerleşmesini bekle. İvmeölçer ve pusula kalibrasyonlarının tamamlanmış olması gerekiyor.
EKF compass variance
Pusula yönü hatalı görünüyor. Aracı ortamdaki metalden uzaklaştır, pusulayı gövdedeki metalden ayır, kalibrasyonu tekrarla. Dahili pusulayı devre dışı bırakmak çoğu kurulumda işe yarar.
EKF height variance
Barometre değerleri kararsız ya da titreşim yüksek. Bu mesaj yalnızca ARM öncesi çıkar; uçuş sırasındaki failsafe yükseklik varyansına bakmaz.
EKF position variance
GPS konumu kararsız. Açık alana çık, GPS'i etkileyebilecek yayın kaynaklarını kaldır, anten yüksekliğini artır.
EKF velocity variance
GPS ya da optik akış hızları kararsız. Optik akış kullanıyorsan kalibrasyonunu kontrol et.
EKF variance: over thresholds
Failsafe tetiklendi ve sebebi varyans. Bu metnin ikinci hâli "position lost"; o zaman sorun varyans değil, EKF'nin konum tahminini tamamen kaybetmesidir. İkisi farklı arızalar, aynı satırda görünürler.
EKF Failsafe: changed to LAND Mode
Failsafe eylemi çalıştı. Varsayılan davranış budur: konum isteyen bir moddaysan araç LAND moduna geçer, roll ve pitch sende kalır, iniş hızını otopilot yönetir.
EKF3 IMU0 switching to compass 1
Otopilot pusula değiştirdi. Tek seferlik görürsen normaldir. Arka arkaya tekrarlıyorsa iki pusulanın da tatmin edici olmadığını söylüyor; bizim ölçümümüzde girişim boyunca 32 kez tekrarladı.
Sahada ne değişir
Kırmızı çubuk gördüğünde hangi çubuğun kırmızı olduğuna bak. Pusula ile konum aynı şey değil, çözümleri de aynı değil.
Uyarı yalnızca gaz açtığında geliyorsa sebebi büyük ihtimalle motor akımı. Pusulayı güç kablolarından ve dağıtım kartından uzaklaştır.
Uyarı belirli bir alanda hep geliyorsa sebebi ortam. Aynı aracı 200 metre öteye taşı ve tekrar dene.
Failsafe gelmemesi sorunun olmadığı anlamına gelmiyor. Mesaj sekmesini aç ve pusula değişim satırlarını say.
Bu yazıyı okuyanlara: Sensörlerden Uçuşa Temel İHA
Buradaki eşik ve karar zinciri, otopilotun konum tahminini nasıl kurduğunu bilmeden ezberlenmez. Sensörlerin ne ölçtüğü, kalibrasyonun neyi düzelttiği ve ilk uçuşta neye bakılacağı kursta sırayla anlatılıyor.
İNDİRİM KUPONU
Kupon kodu: SOFTIVATION15
Eğitimi alırken ödeme ekranındaki "Kupon kodu" kutusuna bu kodu yaz, %15 iner.



Yorumlar