GPS neden fix atmıyor
- Furkan IŞIKAY

- 1 gün önce
- 4 dakikada okunur

Kumandayı açtınız, karta güç verdiniz, dakikalar geçti; Mission Planner hâlâ “No GPS” ya da “GPS: No Fix” diyor. ARM'a bastığınızda ekrana “PreArm: GPS 1: Bad fix” düşüyor. İçinizdeki soru hep aynı: modül mü bozuk, yoksa gökyüzü mü sorunlu?
Bu yazı o mesajın tam olarak neyi söylediğini, uydu sayısının neden tek başına yeterli olmadığını ve sahada hangi sırayla ilerleyeceğinizi anlatıyor.
Fix ne demek, ArduPilot nereden itibaren kabul ediyor?
GPS modülü size tek bir “çalışıyor / çalışmıyor” bilgisi vermez. Bir seviye döner: fix_type. Bu değer 0 ile 6 arasındadır ve ArduPilot'un kalkışa izin verip vermemesi doğrudan bu sayıya bağlıdır.
Üç uydu görüyorsanız modül çalışıyor demektir; ama konum çözmek için en az dört uydu gerekir. Dörtten azında fix_type 1'de takılı kalır ve kart bunu “Bad fix” diye raporlar.
Uydu sayısı yeterli, peki neden hâlâ kalkmıyor?
Uydu sayısı tek başına bir şey söylemez. Önemli olan o uyduların gökyüzünde nasıl dağıldığıdır. Hepsi tepenizde tek bir kümede toplanmışsa çözüm geometrisi bozulur; bu bozulmanın adı HDOP'tur.
ArduPilot'ta eşik GPS_HDOP_GOOD parametresiyle belirlenir ve varsayılanı 140'tır, yani HDOP 1.40. Bunun üstüne çıktığınızda kart “PreArm: High GPS HDOP” der. EKF'in GPS'i konum için kullanması ise AHRS_GPS_MINSATS'a bağlı ve varsayılanı 6 uydudur.
GPS_HDOP_GOOD 140 # 1.40 ustu HDOP -> "PreArm: High GPS HDOP"
AHRS_GPS_MINSATS 6 # EKF'in GPS'i kullanmasi icin gereken uydu
ARMING_CHECK 1 # butun on kontroller acikYani “8 uydu var, ne istiyor bu kart” dediğiniz anda bakmanız gereken ikinci sayı HDOP'tur. Sekiz uydu ve HDOP 2.6, altı uydu ve HDOP 1.1'den daha kötüdür.
En sık yapılan hata: uydu sayısına bakıp HDOP'u görmezden gelmek. İkinci en sık hata ise HDOP yüksek diye GPS_HDOP_GOOD'u büyütüp eşiği gevşetmek. Eşiği büyütünce sorun gitmez, sadece görünmez olur; uçuş sırasında konum kayması olarak geri gelir.
60 saniyede kendi kartınızdan okuyun
Mission Planner'ın HUD'una bakmak yerine sayıyı doğrudan kartın kendisinden almak en hızlı teşhistir. Aşağıdaki betik karta bağlanır, GPS_RAW_INT mesajını dinler ve iki saniyede bir fix seviyesini, uydu sayısını ve HDOP'u yazar.
Dikkat: request_data_stream_send satırını silerseniz kart telemetri göndermez ve ekran boş kalır. Bu, en çok vakit kaybettiren tuzaktır.
Çıktı nasıl okunur?
Sağlıklı bir bağlantıda çıktı şöyle görünür. Aşağıdaki kayıt ArduCopter SITL üzerinde alındı; simülasyon RTK seviyesinde konum ürettiği için fix sütununda “RTK Fixed” yazıyor. Sahadaki bir u-blox modülünde aynı satırda “3D FIX” görmeniz normaldir.
$ python3 gps_teshis.py
Baglandi. sysid=1 compid=0
sn fix uydu HDOP ARM?
2.1 RTK Fixed 10 1.21 EVET
--> 3D fix saglandi. Kalkis oncesi kosullar tamam.GPS bağlantısı kesildiğinde aynı kart şu mesajları basar. Bunlar ArduPilot'un kendi metinleridir:
PreArm: GPS 1: Bad fix
EKF3 IMU0 stopped aiding
EKF3 IMU1 stopped aiding
PreArm: GPS 1: Bad fix
Arm: GPS 1: Bad fixSon satıra dikkat edin: ARM komutunu gönderdiğinizde mesaj “PreArm” değil “Arm” önekiyle gelir. Komutun COMMAND_ACK cevabı da bu durumda 4 (FAILED) döner. ACK'in 0 gelmesi ise komutun kabul edildiğini gösterir, motorların döndüğünü değil.
Hata Mesajları ve Anlamları
PreArm: GPS 1: Bad fix
Birinci GPS'in fix seviyesi 3D'nin altında. Modül ya hiç konum çözemiyor ya da sadece 2D fix var. Önce kablo ve seri port ayarına, sonra antenin gökyüzünü görüp görmediğine bakın.
PreArm: High GPS HDOP
Fix var ama konum geometrisi kötü: HDOP, GPS_HDOP_GOOD eşiğinin üstünde. Açık alana çıkın ve birkaç dakika bekleyin. Eşiği büyüterek geçmeye çalışmayın.
PreArm: GPS 1: not healthy
Modül konum döndürüyor ama beklenen hızda veri gelmiyor. Genelde düşük baud, kötü kablo ya da besleme sorunu. Modülün 5V hattını ve konnektör lehimlerini kontrol edin.
PreArm: AHRS: waiting for home
Kart henüz ev konumunu belirlememiş. Fix oturunca kendiliğinden geçer; birkaç saniye bekleyin.
PreArm: GPS positions differ by 12.3m
İki GPS modülü birbirinden 50 metreden fazla farklı konum bildiriyor ya da blending sağlıklı değil. Çift GPS kullanıyorsanız ikisinin de fix'ini ayrı ayrı doğrulayın.
PreArm: GPS and AHRS differ by 11.4m
GPS'in bildirdiği konumla EKF'in tahmini arasında 10 metreden fazla fark var. Genelde yeni oturmuş bir fix ya da pusula kaynaklı yön hatası işaret eder.
PreArm: Need Position Estimate
Seçtiğiniz uçuş modu konum istiyor ama EKF konum üretemiyor. Loiter/Auto yerine Stabilize'da test ediyorsanız bu mesajı görmezsiniz; mod değiştirince geri gelir.
GPS Glitch or Compass error
EKF, GPS konumunda ani bir sıçrama gördü. Uçuş sırasında gelirse konum atlaması yaşanıyor demektir. Düzeldiğinde kart “Glitch cleared” yazar.
Sahada ne değişir?
Bu konunun tamamı saha işidir. Simülasyonda GPS'i kapatıp açabilirsiniz, fix_type düşüşünü görürsünüz; ama HDOP bozulmasını, anten görüş açısını, elektromanyetik girişimi ya da bina gölgesini simülasyonda üretemezsiniz. Yukarıdaki SITL kaydında HDOP bütün test boyunca 1.21'de sabit kaldı.
Bu yüzden GPS teşhisini kendi kartınızda, dışarıda ve gerçek antenle yapmalısınız. Sırayla:
Kart ile GPS arasındaki kabloyu ve konnektörü elle oynatarak kontrol edin; temassızlık en sık sebep.
GPS modülünü güç dağıtım kartından ve video vericisinden mümkün olduğunca uzağa, tercihen bir mast üzerine alın.
İlk açılışta soğuk başlangıç için açık alanda 2-5 dakika bekleyin; bina kenarında bekleyerek ölçtüğünüz HDOP sizi yanıltır.
Sadece uydu sayısını değil, uydu sayısı ile HDOP'u birlikte not edin; aynı noktada iki gün üst üste ölçün.
Hâlâ düzelmiyorsa modülü başka bir karta takıp deneyin: sorunun modülde mi kartta mı olduğunu ancak böyle ayırırsınız.
Bu yazıyı okuyanlara: Sensörlerden Uçuşa Temel İHA Eğitimi — indirim kodu SOFTIVATION15 ile %15 indirimli. https://softivation.com/egitim/sensorlerden-ucusa-temel-iha-egitimi



Yorumlar