top of page
Eğitim Paneli

GPS konumu neden aniden sapıyor

GPS konumu neden aniden sapıyor

Drone havada asılı duruyor, kumandaya dokunmuyorsun. Sonra haritadaki ikon bir anda otuz metre yana zıplıyor. Bazen kendiliğinden geri geliyor, bazen drone o yeni noktaya doğru süzülmeye başlıyor.

İşin tuhafı, ekranda uydu sayısı hâlâ on ve HDOP hâlâ düşük. GPS'te gözle görünür bir sorun yok ama konum oynuyor.



Ekranda ne görüyorsun

Belirti üç şekilde karşına çıkar. Harita üstündeki ikon bir kare atlar ve eski yerine döner. Ya da LOITER modunda duran drone, sen komut vermeden birkaç metre kayar ve yeniden sabitlenir.

Üçüncüsü: otopilot uçuşu kesip iniş moduna geçer ve sen yerde "ama GPS iyiydi" diye düşünürsün.




Sıçramayı otopilot üretiyor

Otopilot konumu doğrudan GPS'ten okumaz. IMU ve pusuladan kendi tahminini kurar, GPS'ten geleni bu tahminle karşılaştırır. İkisi arasındaki farka yenilik (innovation) denir.

Bu fark EK3_GLITCH_RAD parametresindeki yarıçapı aşarsa otopilot kendi tahminini bırakır ve konumu doğrudan GPS'in gösterdiği yere sıfırlar. Varsayılan değer 25 metre. Haritada gördüğün sıçrama, otopilotun kendi tahminini bırakıp konumu GPS'e sıfırladığı andır.

Sıçramanın büyüklüğü, otopilotun ne kadar süredir yanlış yerde olduğunu gösterir.



Mesaj GPS diyor ama suçlu GPS olmayabilir

ArduCopter bu durumda yer istasyonuna şu satırı yollar: GPS Glitch or Compass error. Mesajı görünce muhtemelen yalnızca ilk yarısını okuyorsun.

Mesaj, otopilotun GPS ile kendi tahminini uzlaştıramadığını bildirir. GPS verisi sağlam olabilir. Tahmin tarafını bozan şey genelde pusuladır: güç kablosunun yanına monte edilmiş bir manyetometre, gaz verdikçe yönü kaydırır. Otopilot yanlış yöne ilerlediğini sanır, GPS'i tutarsız bulur ve reddeder.


ArduPilot forumundaki "GPS glitch for unknown reason" başlığında bir kullanıcı tam bu tabloyu bildirdi: loglarda GPS izi düzgün görünüyordu ama EKF konumu sıçrıyordu. Yanıt veren geliştirici pusulanın gaz kolundan etkilendiğini gösterdi. Kullanıcı pusulayı güç kablolarından uzağa taşıyıp yeniden kalibre edince sorun bitti.

Aynı desen titreşim için de geçerli. IMU'su gürültülü bir kartta otopilotun tahmini hızla dağılır ve GPS'i reddetmeye başlar. Bu yüzden "GPS glitch" gördüğünde önce VIBE loglarına ve pusula kalibrasyonuna bak.



Bu davranışı biz şöyle ölçtük

Yazıyı yayınlamadan önce ArduCopter 4.7.0 SITL üzerinde bir test yaptık. Drone'u 30 metreye çıkardık, önce temiz uçuşta EKF_STATUS_REPORT.pos_horiz_variance değerini örnekledik, sonra SIM_GPS1_JAM parametresini 1 yaparak GPS karıştırmasını açtık.



Karıştırma açıldıktan sonra otopilot önce EKF lane'leri arasında geçiş yaptı, ardından failsafe devreye girdi ve otopilot aracı Land moduna alıp indirdi. Aynı koşuda işe yarar bir ayrıntı daha çıktı: fix_type 3'ten 1'e düştüğü hâlde alıcının bildirdiği eph alanı 121'de donup kaldı. Ekrandaki HDOP'a bakıp fix_type'ı atlarsan, kilidi kaybetmiş bir alıcıyı sağlam sanırsın. Bu bizim doğrulama testimiz, senin sahada uygulayacağın bir adım değil.

Not: ilk taslakta "bu sürümde GPS glitch parametresi yok" yazmıştık, yanlışmış. Parametre SIM_GPS1_GLTCH_X/Y/Z adıyla duruyor, ayrıca SIM_GPS1_JAM ile karıştırma da benzetilebiliyor.



Kendi kartında sırayla ne yapacaksın

Aşağıdakiler varsayılan ayarlarla simülasyonda ortaya çıkmaz. Bunlar saha işidir, kendi kartında ve kendi uçuş loglarında bakacaksın.

  • Pusulayı güç kablolarından ve ESC'lerden uzaklaştır, sonra yeniden kalibre et. Gaz verirken yön kayıyorsa sorun burada.

  • Titreşimi ölç. Uçuş kontrol kartını sönümleyici üzerine al, VIBE loglarında kırpılma (clipping) sayısına bak.

  • GPS güncelleme hızını zorlama. GPS1_RATE_MS varsayılanı 200, yani 5 Hz. Çoğu alıcı 10 Hz'i tüm takımyıldızlarla birlikte taşıyamaz.

  • GPS antenini telemetri anteninden ayır. İkisini yan yana koymak alıcının önündeki gürültü tabanını yükseltir.

  • İki GPS varsa GPS_AUTO_SWITCH ile harmanlamayı aç. Tek modülün anlık bozulması navigasyonu tek başına devirmesin.

  • ARMING_CHECK'i kapatma. Kontroller kapalıyken uyarıyı hiç görmezsin, asıl arızayı da havada öğrenirsin.



Hata Mesajları ve Anlamları

Aşağıdaki satırları ArduCopter 4.7.0 ikilisinden birebir doğruladık.

GPS Glitch or Compass error

Sebep: Otopilot GPS konumunu kendi tahminiyle uzlaştıramadı. Kaynak ArduCopter/events.cpp içindeki gpsglitch_check fonksiyonu.

Çözüm: Önce pusula ve titreşimi ele. GPS'i suçlamadan önce VIBE ve MAG loglarına bak.

Glitch cleared

Sebep: Aynı fonksiyonun ürettiği kapanış satırı. Otopilot GPS ile yeniden anlaştı.

Çözüm: Tek başına iyi haber değil. Uçuş boyunca kaç kez açılıp kapandığını say, tekrar ediyorsa kök neden duruyordur.

EKF variance

Sebep: Konum, hız veya pusula varyansı FS_EKF_THRESH değerini 1 saniye boyunca aştı. Varsayılan eşik 0.8.

Çözüm: Eşiği yükselterek susturma. Hangi varyansın kabardığını logdan bul.

EKF Failsafe: changed to Land Mode

Sebep: EKF failsafe tetiklendi ve FS_EKF_ACTION varsayılanı gereği araç iniş moduna alındı.

Çözüm: Kök neden çözülmeden failsafe eylemini değiştirmek riski büyütür. Önce varyansın neden kabardığını bul.

PreArm: High GPS HDOP

Sebep: HDOP değeri GPS_HDOP_GOOD parametresinin üstünde. Bu parametre yüzde-biri birimindedir, varsayılan 140 yani HDOP 1.40.

Çözüm: Parametreyi gevşetmen gerekirse 2.2 değil 220 yaz. Wiki'deki "2.2 veya 2.5 yapın" ifadesi birimi atlıyor ve kontrolü imkânsız hale getirir.



Sahada ne değişir

Simülasyonda karıştırmayı sen açıp kapatıyorsun, sebebi biliyorsun. Sahada elinde yalnızca sonuç var: bir sıçrama ve bir failsafe kaydı.

Bu yüzden saha tarafında iş, kök nedeni daraltmaktır. Sıçrama hep aynı bölgede mi oluyor, yoksa gaz verdiğinde mi? Birincisi çevredeki yansımayı ve girişimi işaret eder, ikincisi kendi aracındaki pusula ve titreşimi.



Bu yazıyı okuyanlara: İHA Haberleşme Teknolojileri

Bu yazıdaki teşhis sırasının uzun hâli kursta duruyor. "Telemetride konum sıçrıyor, ham GPS temiz görünüyor" dersinde MAVLink alan haritası, çalışan bir sağlık izleyicisi betiği, kaynak koddan çıkarılmış parametre varsayılanları, log imzası tablosu ve yedi forum vakası var:


İNDİRİM KUPONU

Kupon kodu: SOFTIVATION15

Eğitimi alırken ödeme ekranındaki "Kupon kodu" kutusuna bu kodu yaz, %15 iner.

Yorumlar


bottom of page