GPS konumu neden aniden sapıyor
Drone havada dururken haritadaki konum aniden sapıyorsa suçlu GPS olmayabilir. Sıçramanın nerede doğduğunu ve kendi kartında neye bakacağını anlatıyoruz.
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.
En sert hâlinde 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 belirli bir 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 yarıçap 25 metre. Şekilde tahminin kesikli daireden çıktığı ana bak: haritada gördüğün sıçrama o sıfırlamadır.
Haritadaki sıçrama, tahminin GPS'e sıfırlandığı an
Sıçramanın büyüklüğü, otopilotun ne kadar süredir yanlış yerde olduğunu gösterir. Yarıçap EK3_GLITCH_RAD parametresinde tutulur.
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.
Kaynak: discuss.ardupilot.org, GPS glitch for unknown reason
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.
Karıştırmayı SITL'de kendin gör
GPS karıştırmasını sahada denemek yerine SITL'de benzetebilirsin. ArduCopter 4.7.0'da drone'u 30 metreye çıkar, EKF_STATUS_REPORT.pos_horiz_variance değerini izle ve SIM_GPS1_JAM parametresini 1 yap. Konum sıçraması benzetmek istersen SIM_GPS1_GLTCH_X/Y/Z parametreleri de var.
Karıştırma açılınca varyans eşiği aşıyor
Şekildeki örnekte karıştırma kapalıyken 1638 örneğin hiçbiri eşiğe yaklaşmıyor, en yüksek değer 0.011. Karıştırma açıkken 1001 örneğin 437'si (%43.7) eşiğin üstünde, tepe 5.54.
Karıştırma açıldıktan sonra otopilot önce EKF lane'leri arasında geçiş yapar. Ardından failsafe devreye girer ve araç Land moduna alınıp iner.
Kendi kartında sırayla ne yapacaksın
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'da birebir bu metinle çıkar.
GPS Glitch or Compass error
Otopilot GPS konumunu kendi tahminiyle uzlaştıramadı. Kaynak ArduCopter/events.cpp içindeki gpsglitch_check fonksiyonu.
Önce pusula ve titreşimi ele. GPS'i suçlamadan önce VIBE ve MAG loglarına bak.
Glitch cleared
Aynı fonksiyonun ürettiği kapanış satırı. Otopilot GPS ile yeniden anlaştı.
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
Konum, hız ve pusula varyanslarından en az ikisi FS_EKF_THRESH değerini 1 saniye boyunca aştı; hız varyansı eşiğin iki katını geçerse tek başına da yeter. Varsayılan eşik 0.8.
Eşiği yükselterek susturma. Hangi varyansın kabardığını logdan bul.
EKF Failsafe: changed to Land Mode
EKF failsafe tetiklendi ve FS_EKF_ACTION varsayılanı gereği araç iniş moduna alındı.
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
HDOP değeri GPS_HDOP_GOOD parametresinin üstünde. Bu parametre yüzde-biri birimindedir, varsayılan 140 yani HDOP 1.40.
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.
Örnek: Sürü uçuşunda beş araç aynı anda havadayken yalnızca birinin ikonu zıplıyorsa suçu o aracın üstünde ara; pusulası güç kablosuna yakın takılmış ya da kartı titreşimden kurtulamamış olabilir. Beş ikon aynı saniyede birden sıçrıyorsa sorun araçta değil, o bölgedeki girişim ya da yansımadadır. Bu ayrımı yer istasyonuna tek bakışla yaparsın ve loga inmeden aramayı yarıya indirirsin.
Teşhis sırasının uzun hâli
Bu yazıdaki teşhis sırasının uzun hâli İHA Haberleşme Teknolojileri kursunda duruyor. "Telemetride konum sıçrıyor, ham GPS temiz görünüyor" dersinde MAVLink alan haritası, çalışan bir sağlık izleyicisi kodu, kaynak koddan çıkarılmış parametre varsayılanları, log imzası tablosu ve yedi forum vakası var.
Bu yazı işinize yaradı mı?
Bu konuyu baştan sona öğrenin
Sezon: altı eğitimin hepsi 9 ay, ayda ₺790. Lise ve üniversite öğrencisine ayda ₺390, üye kodunuzla ilk ay ₺351. İstediğiniz ay bırakırsınız. Sezon'a başlayın · Öğrenciyim