top of page
Eğitim Paneli

Pixhawk telemetrisi neden havada kopuyor

10 Ağu
3 dakikada okunur

Drone havalanıyor, ilk birkaç dakika her şey normal. Sonra Mission Planner ekranında rakam akışı duruyor, harita üstündeki ikon donuyor. Bir süre sonra kendi kendine geri geliyor, sonra yine kesiliyor.

Çoğu kişi burada menzil sorunu olduğunu düşünüp anten arıyor. Bazen haklı çıkıyor. Ama aynı belirti, drone yerden elli metre uzaktayken de olabiliyor ve o zaman anten değiştirmek hiçbir şeyi düzeltmiyor.

Ayırt etmenin yolu var. Radyo, hattın kendi durumunu otopilota söylüyor; sadece nereye bakacağını bilmek gerekiyor.



Radyo zaten sana durumunu söylüyor

SiK radyo, MAVLink akışının içine kendi durum mesajını sokuyor. Mission Planner bunu sinyal çubuğu olarak gösteriyor ama çubuk, içindeki en önemli bilgiyi saklıyor.



Buradaki dört değer dört ayrı soruyu cevaplıyor. rssi senin tarafının duyduğu sinyal, remrssi karşı tarafınki. İkisi arasındaki fark büyükse sorun tek yönlü demektir ve hangi ucun anteniyle uğraşacağın belli olur.

Asıl yanıltıcı olan txbuf. Bu bir sinyal göstergesi değil, radyonun gönderim tamponunda kalan boş yer. Sinyal mükemmelken bile dolabilir.



Sinyal tamken donmasının sebebi

Radyo, taşıyabileceğinden fazla veri gelirse tamponu dolduruyor. Otopilot bunu görüyor ve gönderim hızını kendisi kısıyor. Yani ekranı çoğu zaman otopilotun kendi frenlemesi donduruyor; sinyal o sırada gayet iyi olabilir.

Bu fren keyfî değil, kaynak kodda sabit eşiklere bağlı.



Tampon yüzde yirminin altına inince her raporda gönderim aralığına altmış milisaniye ekleniyor. Toplam yavaşlama iki saniyede duruyor, ama mesajlar arası süre altmış saniyeye kadar uzayabiliyor.


En sık yapılan hata burada başlıyor: ekran dondu diye Mission Planner'dan akış hızlarını yükseltmek. Hat zaten doymuşken hızı artırmak tamponu daha da doldurur ve otopilot daha sert kısar.



Kendi hattını ölç

Sinyal çubuğuna bakmak yerine sayı üret. Aşağıdaki betik hatta düşen çerçeveleri MAVLink sıra numarasındaki boşluklardan sayıyor ve radyo durum mesajı geliyorsa alanlarını basıyor.

Drone yerdeyken, motorlar dururken bir kez çalıştır. Sonra motorları çalıştırıp tekrar çalıştır. İki çıktı arasındaki fark, girişimin ne kadarını motorların ürettiğini gösterir.



Bağlantı satırını kendi portuna göre değiştir. SiK radyo yer tarafında USB'den görünür, Linux'ta genelde şu adrestedir:


/dev/ttyUSB0   57600 baud



Bu betiği biz nasıl doğruladık

Betiğin gerçekten kayıp yakaladığından emin olmak için ArduCopter 4.7.0 SITL üzerinde hatta bilerek bayt kaybı enjekte ettik. Bu adımı senin tekrarlaman gerekmiyor; betiği yayınlamadan önce biz böyle doğruladık.



Sonuç, hattın nasıl çöktüğü konusunda sezgiye ters. Binde iki bayt kaybı, çerçevelerin yüzde seksen ikisini götürüyor. Bir MAVLink çerçevesi onlarca bayt uzunlukta olduğu için tek bir bozuk bayt bütün çerçeveyi çöpe atıyor.

Pratikte hat ya çalışır ya çökmüştür; "biraz zayıf ama idare eder" diyebileceğin bir ara bölge yok.

Kayıpsız hatta aynı betiğin çıktısı şöyleydi:


heartbeat geldi, olcum basliyorsaglam=1962  bosluk=0  bozuk=4  kayip=0.00%



İki radyo aynı ayarda mı

Hat hiç kurulmuyorsa ya da yerde bile kopuyorsa, sıradaki şüpheli ayar uyuşmazlığı. Bazı ayarların iki radyoda birebir aynı olması zorunlu, bazıları serbest.



LED'in sabit yeşil olması yanıltıcıdır. O sadece iki radyonun birbirini bulduğunu gösterir, MAVLink verisinin geçtiğini değil.



Eski anlatımların tıkandığı yer

Akış hızını düşürmek için internetteki hemen her kaynak SR0_ ve SR1_ ile başlayan parametreleri söylüyor. ArduCopter 4.7.0 SITL'de parametre listesini çektiğimizde bin üç yüz altmış dokuz parametre içinde bu adlardan hiçbiri yok.

Adları değişmiş. Artık MAV1_ ve MAV2_ önekiyle geçiyorlar, SYSID_MYGCS ise MAV_GCS_SYSID olmuş. Olmayan bir parametreyi yazmaya çalışınca hata da almıyorsun, sadece hiçbir şey olmuyor.


SR1_EXTRA1      ->  MAV2_EXTRA1SR1_POSITION    ->  MAV2_POSITIONSYSID_MYGCS     ->  MAV_GCS_SYSID  (varsayilan 255)

Kendi kartında hangisinin geçerli olduğunu görmek için Mission Planner'ın tam parametre listesinde MAV yazıp aratman yeterli.



Hata Mesajları ve Anlamları

Telemetri kesildiğinde Mission Planner'ın mesaj penceresine düşen satırlar. Hepsi ArduCopter kaynak kodundaki birebir metinlerdir.

GCS Failsafe

Yer istasyonundan beş saniye boyunca heartbeat gelmedi ve FS_GCS_ENABLE sıfırdan farklı. Süre FS_GCS_TIMEOUT ile ayarlanır, varsayılanı 5 saniyedir. Bu mesaj sinyal seviyesine bakmaz; sadece heartbeat sayacına bakar.

GCS Failsafe - Continuing Pilot Control

Failsafe tetiklendi ama pilot kumandayla uçuşu sürdürdüğü için otopilot müdahale etmedi. FS_OPTIONS parametresinin dördüncü biti bunu sağlar ve varsayılan olarak açıktır.

GCS Failsafe - Continuing Landing

Failsafe geldiğinde drone zaten iniş yapıyordu. Otopilot inişi kesmeden tamamlıyor.

GCS Failsafe Cleared

Heartbeat geri geldi. Dikkat: uçuş modu kendiliğinden eski haline dönmez, failsafe hangi moda geçirdiyse orada kalır.



Sahada ne değişir

Bu belirtilerin çoğu masa üstünde ortaya çıkmaz. Motorlar dönerken güç hattındaki gürültü, gövde içindeki anten konumu ve batarya kütlesinin sinyali gölgelemesi hep uçuş sırasında devreye girer.

Ölçüm için basit bir kural var: rssi ile noise arasındaki farkı ikiye böl, elindeki fade margin desibel cinsinden çıkar. Her 6 dB menzili ikiye katlar. İki radyoyu bir metre arayla tutup baktığında standart bir SiK radyoda rssi değerinin 190 üstünde olması beklenir.

Bunun altındaysa anten ya da radyo kusurludur ve havada yapacağın hiçbir ayar bunu kurtarmaz.



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

Telemetri hattını uçtan uca kurmayı, kaynak koddaki karar zincirini ve log imzalarından arıza ayırt etmeyi anlatan ders bu eğitimin içinde.


İ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