ArduPilot uçuş ortasında RTL moduna geçiyor
- Furkan IŞIKAY

- 5 gün önce
- 4 dakikada okunur

Havada duruyorsun, drone bir noktayı tutuyor. Kumandaya elini sürmedin, yer istasyonunda da bir düğmeye basmadın. Ekranda mod bir anda RTL oluyor ve araç burnunu eve çevirip gidiyor.
İlk refleks kumandaya yapışmak oluyor. Oysa o saniyede sana lazım olan şey ekranın üstünden akıp giden tek satırlık uyarı. Otopilot mod değiştirdiğinde bunu sessizce yapmaz, sebebini de yazar.
Aşağıda önce o satırı okumayı, sonra satırı kaçırdıysan aynı bilgiyi uçuş kaydından çıkarmayı bulacaksın.
Mod değişimini kim istedi
Otopilot uçuş modunu iki sebeple değiştirir. Ya sen istersin, ya da bir failsafe koşulu oluşur. İkincisinde ekrana kısa bir uyarı düşer ve o uyarının ilk kelimesi kaynağı söyler.
Dört kaynak var: kumanda hattı, batarya, yer istasyonu bağlantısı ve konum kestirimi. Mesajın başındaki kelime bunlardan hangisi olduğunu tek başına belirler.
Bazen mesajın sonuna tire ile ikinci bir parça eklenir. O parça, otopilotun ayarındaki davranıştan neden saptığını anlatır; örneğin araç zaten inişteyse dönüş yerine inişi sürdürür.
Radyo failsafe'i iki ayrı yoldan gelir
Kumanda hattı koptuğunda alıcının yapabileceği iki şey var ve hangisini yaptığını alıcının kendi ayarı belirler.
Alıcı otopilota veri göndermeyi tamamen keser. Otopilot belli bir süre hiç kare gelmezse hattı kopmuş sayar. Varsayılan süre bir saniye.
Alıcı hattı kaybedince gaz kanalını normal aralığın altına çeker. Otopilot bu değeri bir eşikle karşılaştırır ve art arda üç kare eşiğin altında kalırsa failsafe başlatır.
İki yolu ayıran şey karar ölçütü: birincide otopilot geçen süreye bakıyor, ikincide eşiğe. Alıcın hangisini yapıyorsa ayarı da ona göre yapman gerekiyor.
Eşiği gelişigüzel bir sayıya çekmek en sık düşülen tuzak. Eşik fazla yukarıdaysa hat hiç kopmadan, sen sadece gaz kolunu dibe indirdiğin için failsafe başlar.
Eşiği belirlerken tek bir ölçüm yetmez. Vericiyi kapatıp gaz kanalının kaça düştüğüne, sonra vericiyi açıp gaz kolu dipteyken kaç okunduğuna ayrı ayrı bakman gerekiyor. Eşik bu ikisinin arasında bir yere oturur.
Aynı olayı masanın üstünde görebilirsin
Bunu gerçek araçta denemek, kumandayı kapatıp aracın hakikaten eve dönmesini beklemek demek. Riski yüksek, tekrarı zor ve bir şey ters giderse elinde kumanda da yok.
Simülasyonda aynı zincir aynı yazılımla, hiçbir şeyi riske atmadan çalışıyor. Kendi bilgisayarında şu komutla bir araç ayağa kaldırıyorsun:
./arducopter -S -I0 --model + --speedup 1 --defaults copter.parm --home 37.1591,38.7969,500,0Sonra ikinci bir terminalde aşağıdaki izleyiciyi çalıştırıyorsun. Bu betik yalnızca dinliyor: mod değişimlerini ve failsafe mesajlarını zaman damgasıyla yazıyor. Sahada telemetri portunu verirsen gerçek uçuşta da aynı işi görüyor.
Araç yirmi metrede asılı dururken gaz kanalı eşiğin altına indirildiğinde ekrana düşen satırlar şunlar:
baglandi: tcp:127.0.0.1:5762 sysid 1
[ 0.00] MOD - -> GUIDED
[ 0.00] DISARM edildi
[ 20.98] ARM edildi
[ 32.90] MOD GUIDED -> LOITER
[ 47.95] MOD LOITER -> RTL
[ 47.95] MESAJ sev=4 Radio Failsafe
[ 85.99] DISARM edildi
[ 86.27] MESAJ sev=2 PreArm: Throttle below failsafe
[ 86.27] MESAJ sev=2 PreArm: Radio failsafe onAsıl bilgi ortadaki iki satırda. Mod değişimi ile failsafe uyarısı aynı saniye damgasını taşıyor. Mod değişiminin sebebi işte o uyarı.
Biz bu koşuyu ölçtüğümüzde gaz kanalının eşiği geçmesi ile uyarının gelmesi arasında 0,13 saniye vardı. Aşağıdaki eğri o koşunun irtifa ve gaz kanalı kaydı:
Batarya failsafe'i neden geç gelir
Radyo failsafe'i neredeyse anında geliyor. Batarya tarafında araya bir sayaç giriyor: gerilimin eşiğin altına inmesi yetmiyor, orada bir süre kalması gerekiyor. Varsayılan bekleme on saniye.
Aynı simülasyonda gerilimi eşiğin altına indirdiğimizde uyarı 10,61 saniye sonra geldi. Yani sert bir manevrada anlık düşen gerilim failsafe başlatmıyor, paket gerçekten bittiyse başlatıyor.
Batarya failsafe'inde "birden oldu" dediğin an, tetikleyicinin oluşmasından yaklaşık on saniye sonradır. Kayda bakarken on saniye geriye gitmen gerekiyor.
Hata Mesajları ve Anlamları
Radio Failsafe
Kumanda hattı koptu ya da gaz kanalı eşiğin altına indi. Otopilot ayarındaki davranışa geçti; varsayılan davranış RTL.
Radio Failsafe - Disarming
Aynı olay araç yerdeyken oldu. Havada olmadığı için dönüş yerine motorlar durduruldu.
Radio Failsafe Cleared
Kumanda hattı geri geldi. Dikkat: araç kendiliğinden eski moduna dönmez, modu sen geri almalısın.
Battery Failsafe
Gerilim ya da tüketilen kapasite eşiği aştı ve bekleme süresi doldu. Ölçüm hattın bozuksa bu mesaj dolu pakette de gelir.
GCS Failsafe
Yer istasyonundan gelen düzenli sinyal kesildi. Telemetri menzilinden çıkmak ya da yer istasyonu programının donması bunu tetikler.
EKF Failsafe
Konum, hız ya da pusula kestirimindeki güvensizlik eşiği aştı. Arkasında çoğunlukla titreşim ya da GPS kalitesi vardır.
PreArm: Throttle below failsafe
Henüz kalkmadan geliyor. Gaz kanalının o anki değeri eşiğin altında; ya eşik fazla yukarıda ya kumanda kapalı.
PreArm: Radio failsafe on
Radyo failsafe'i hâlâ etkin. Önce hattı geri getir, mesaj temizlenmeden ARM izni çıkmaz.
Sahada ilk üç hamle
Mesaj şeridini kapatma. Failsafe uyarısı bir kez geçer ve mod değişiminin tek açıklaması odur.
İndikten sonra uçuş kaydını indir, mod değişimi satırının sebebine bak. Sebep alanı pilot komutu ile failsafe'i birbirinden ayırır.
Kaynağı bulduktan sonra o kaynağın eşiğini ve bekleme süresini kendi aracında ölç. Varsayılan değerler senin kurulumun için doğru olmak zorunda değil.
Bu yazıyı okuyanlara: Sensörlerden Uçuşa Temel İHA
Failsafe zincirinin firmware içindeki karar sırası, hangi parametrenin hangi satırda okunduğu, log imzaları ve saha vakaları eğitimin Sorun Giderme bölümünde adım adım işleniyor.
İNDİRİM KUPONU
Kupon kodu: SOFTIVATION15
Eğitimi alırken ödeme ekranındaki "Kupon kodu" kutusuna bu kodu yaz, %15 iner.



Yorumlar