İHA ve Aviyonik··7 dk okuma
Failsafe Kurulumu: Link Kaybı, Düşük Pil ve RTL Senaryoları
Kumanda sustuğunda, pil bittiğinde ya da EKF çuvalladığında araç ne yapacak? Test edilmemiş bir failsafe, failsafe değildir.
Geçen sezon bir test uçuşunda kumandanın (RC vericinin) pili sahada bitti. Araç 60 metre irtifada, bizden yaklaşık 200 metre uzaktaydı. Bir saniye sonra RTL’e (Return To Launch — kalkış noktasına dönüş) geçti, tırmandı, geri geldi ve indi. Kimse müdahale etmedi çünkü müdahale edecek bir şey kalmamıştı.
O gün işleyen şey şans değildi; iki hafta önce SITL’de (Software In The Loop — uçuş yazılımının bilgisayarda simülasyonu) aynı senaryoyu on kez tetiklemiş, RTL irtifasını sahadaki en yüksek ağaca göre yeniden ayarlamış ve home point’in doğru yerde kilitlendiğini kontrol etmiştik. Failsafe, kurulduğu an değil, test edildiği an var olur.
Bu yazıda ArduPilot Copter üzerinde failsafe türlerini, her biri için doğru tepkiyi, batarya eşiklerinin nasıl hesaplanacağını ve bunları SITL’de nasıl tetikleyeceğinizi anlatıyoruz. Parametre isimleri ArduPilot dokümantasyonundan doğrulanmıştır; sürümler arasında isim değişebildiği için Mission Planner’daki tam parametre listesinden teyit edin.
Failsafe türleri ve ArduPilot karşılıkları
ArduPilot’ta failsafe tek bir anahtar değil, birbirinden bağımsız çalışan bir dizi kontrol. Her birinin kendi tetikleyicisi, kendi zaman aşımı ve kendi eylem parametresi var.
| Failsafe | Tetikleyici | Ana parametreler | Varsayılan zaman aşımı |
|---|---|---|---|
| RC link kaybı | Alıcıdan darbe gelmemesi / throttle kanalının eşiğin altına düşmesi | FS_THR_ENABLE, FS_THR_VALUE, RC_FS_TIMEOUT |
1 s |
| GCS / telemetri kaybı | MAVLink heartbeat’in kesilmesi | FS_GCS_ENABLE, FS_GCS_TIMEOUT |
5 s |
| Düşük pil (voltaj) | Voltajın eşiğin altında kalması | BATT_LOW_VOLT, BATT_CRT_VOLT, BATT_LOW_TIMER, BATT_FS_VOLTSRC |
10 s |
| Düşük pil (kapasite) | Harcanan mAh’in eşiği geçmesi | BATT_LOW_MAH, BATT_CRT_MAH |
anlık |
| EKF bozulması | Pusula/konum/hız varyanslarından ikisinin eşiği aşması | FS_EKF_THRESH, FS_EKF_ACTION |
1 s |
| Geofence ihlali | Yükseklik / yarıçap / poligon sınırının aşılması | FENCE_TYPE, FENCE_ACTION, FENCE_ALT_MAX, FENCE_RADIUS, FENCE_MARGIN |
anlık |
| Çarpma tespiti | Hedef ile gerçek eğim açısı arasında 30°’den fazla sapmanın 2 s sürmesi | FS_CRASH_CHECK |
2 s |
Önemli bir ortak davranış: RC, GCS, batarya veya arazi verisi failsafe’i bir mod değişikliğine yol açtıysa, sorun ortadan kalksa bile araç o modda kalır. Pilot elle mod değiştirmedikçe eski moda dönmez. Bu, “link geri geldi, kontrol bende” varsayımıyla kumandayı sallamanın neden işe yaramadığını açıklar.
Hangi tepki, ne zaman doğru?
Failsafe eylemleri hemen hemen aynı havuzdan seçiliyor. Fark, hangisinin hangi durumda daha az kötü olduğunda.
| Eylem | Ne yapar | Ne zaman tercih edilir | Riski |
|---|---|---|---|
| Warn Only (0) | Sadece uyarır | Erken kademe pil uyarısı; pilot kontrolü elinde | Hiçbir otomatik koruma yok |
| BRAKE / LOITER | Olduğu yerde durur, konumu tutar | Geofence sınırında, pilotun karar vermesi beklenen durum | Sorun kalıcıysa pil biter |
| LAND | Bulunduğu yere iner | Konum güvenilir değilse (EKF, GPS) tek makul seçenek | Nerede olduğunu bilmediğiniz yere iner |
| RTL | Belirlenen irtifaya tırmanır, düz çizgide home’a döner, iner | Konum sağlıklı ve dönüş yolu temizse | Düz çizgi bir engelin içinden geçebilir |
| SmartRTL | Geldiği yolu geri izleyerek döner | Engelli, ağaçlık veya bina aralarından geçilen uçuşlar | Yol kaydı yoksa devreye girmez, RTL/LAND’e düşer |
Pratikte SUAS 2026 aracımızda RC ve GCS failsafe’i için SmartRTL öncelikli, RTL yedekli seçenekleri kullanıyoruz (FS_THR_ENABLE = 4, FS_GCS_ENABLE = 3). Konum çözümü bozulduğunda ise tartışma yok: EKF failsafe LAND’dir, çünkü konumuna güvenmeyen bir aracı 300 metre uzağa göndermek kontrollü inişten çok daha kötüdür.
Batarya eşiklerini belirlemek
Batarya failsafe’inde en sık yapılan hata, boştaki (yüksüz) hücre voltajına göre eşik koymak. Hover sırasında akım çekildiğinde voltaj, iç direnç yüzünden düşer (sag). Eşiği yüksüz voltaja göre koyarsanız failsafe daha ilk agresif manevrada tetiklenir.
V_sag = I_hover x R_ic # yük altındaki voltaj düşümü
V_esik = (N_hucre x V_hucre_hedef) - V_sag
I_hover : hover akımı (A) -> log'dan CURR.Curr ortalaması
R_ic : paketin toplam iç direnci (ohm) -> BATT_RES_OHM log'undan veya üreticinin veri sayfasından
N_hucre : hücre sayısı (6S -> 6)
V_hucre_hedef : yük altında görmek istediğiniz hücre başı voltaj
Örnek — 6S bir paket, hover akımı 22 A, ölçülen iç direnç 0.020 ohm, hücre başına yük altında 3.5 V’un altına inmek istemiyoruz:
V_sag = 22 A x 0.020 ohm = 0.44 V
V_esik = (6 x 3.5) - 0.44 = 21.0 - 0.44 = 20.56 V -> BATT_LOW_VOLT = 20.6
Kritik kademe: (6 x 3.4) - 0.44 = 19.96 V -> BATT_CRT_VOLT = 20.0
İki kademe şart. Düşük kademe BATT_FS_LOW_ACT = 2 (RTL) ile aracı eve yollasın, kritik kademe BATT_FS_CRT_ACT = 1 (LAND) ile nerede olursa olsun indirsin. Kritik kademede RTL seçmek, zaten bitmiş bir paketle 300 metrelik dönüş yolu denemek demektir.
Voltaj tek başına yeterli değil. Paralel olarak kapasite eşiği koyun: ArduPilot dokümanı BATT_LOW_MAH için paket kapasitesinin yaklaşık %20’sini öneriyor (5000 mAh paket için 1000 mAh). Kapasite sayacı akım sensörünün kalibrasyonuna bağlıdır; kalibre edilmemiş bir sensörle mAh eşiği güven vermez.
BATT_LOW_TIMER varsayılan olarak 10 saniyedir (0-120 s): voltajın bu süre boyunca eşiğin altında kalması gerekir, böylece anlık akım tepeleri failsafe tetiklemez. BATT_FS_VOLTSRC = 1 seçerseniz ArduPilot sag-kompanze voltaj kullanır; o zaman eşiği yüksüz voltaja daha yakın seçmelisiniz.
Güvenlik uyarısı: LiPo hücresini 3.0 V’un altına indirmek paketi kalıcı olarak yaralar ve şişme/termal kaçak riskini artırır. Kritik failsafe eşiğini “bir tur daha atarız” diye aşağı çekmeyin. Ayrıca eşik testlerini pervaneler takılıyken yerde yapmayın — akım çekmek için pervaneli tam gaz denemesi ciddi yaralanma riskidir. Akım/sag ölçümünü ya elektronik yükle ya da gerçek uçuş log’undan yapın.

RTL irtifası ve dönüş yolunun riskleri
RTL, aracı önce RTL_ALT_M irtifasına tırmandırır (Copter 4.6 öncesinde parametre RTL_ALT ve birim santimetredir — sürümünüzü kontrol edin), sonra home’a düz çizgide gider. Varsayılan 15 metredir ve bu, ağaçlık ya da binalı bir sahada yetersizdir.
RTL_ALT_M = en_yuksek_engel_yuksekligi + emniyet_payi
Sahamızda en yüksek engel 18 m’lik bir ağaç sırasıysa, 10 m emniyet payıyla RTL_ALT_M = 28 yazarız. Bu irtifayı sahaya göre her yarışma/uçuş öncesi yeniden ayarlamak gerekir; “geçen sefer çalıştı” bir gerekçe değil.
Kritik nokta şu: RTL düz çizgide döner, geldiğiniz yolu izlemez. Bir binanın arkasından uçtuysanız RTL sizi binanın içinden geçirmeye çalışır. Bu yüzden engelli sahalarda SmartRTL öncelikli seçenekleri kullanıyoruz. RTL_CONE_SLOPE (varsayılan 3) home’a yakınken gereksiz tırmanmayı sınırlar; home’un hemen üzerinde failsafe tetiklendiğinde 28 metreye çıkmak yerine kısa bir konide yükselir.
RTL_ALT_FINAL_M sıfır bırakılırsa araç dönüş sonunda otomatik iner. Sıfırdan farklı bir değer verirseniz o irtifada bekler ve pilot müdahalesini bekler — link zaten kopmuşsa bu, pil bitene kadar havada asılı kalmak demektir. RC failsafe senaryosunda sıfır bırakın.
SITL’de failsafe senaryosu enjekte etmek
Bunların hiçbirini ilk kez sahada denemeyin. SITL + Gazebo kurulumu yazımızdaki ortamda, MAVProxy konsolundan failsafe’leri doğrudan tetikleyebilirsiniz:
# RC link kaybı — alıcıdan darbe gelmemesi
param set SIM_RC_FAIL 1
# throttle 950us senaryosu (eski tip alıcı davranışı)
param set SIM_RC_FAIL 2
param set SIM_RC_FAIL 0 # geri al
# GCS kaybı: heartbeat'i kesmek için MAVProxy'yi kapatın
# ya da FS_GCS_TIMEOUT'u kısaltıp linki koparın
# Düşük pil — simüle voltajı düşür (varsayılan 12.6 V)
param set SIM_BATT_VOLTAGE 10.2
param set SIM_BATT_RES_OHM 0.02 # iç direnç, sag davranışı için
# GPS kaybı -> EKF failsafe
param set SIM_GPS1_ENABLE 0
# Motor arızası: SIM_ENGINE_FAIL motor maskesi, SIM_ENGINE_MUL itki çarpanı
param set SIM_ENGINE_FAIL 1
param set SIM_ENGINE_MUL 0.5
Her senaryoda tek bir soruyu cevaplayın: araç ne yaptı, ne kadar sürede yaptı ve log’da hangi mesaj göründü? SIM_SPEEDUP ile hızlandırıp on senaryoyu bir kahve molasında koşabilirsiniz — ama çok yüksek değerlerde simülasyonun kendisi yapay failsafe üretebilir, bu yüzden sonuçları 1x’te doğrulayın.
Sık düşülen tuzaklar
Test edilmemiş failsafe. Parametreyi yazıp Mission Planner’ı kapatmak test değildir. En az bir kez SITL’de, bir kez de sahada kontrollü şekilde (yüksek irtifa, açık alan, kumandayı kapatarak) tetikleyin.
Yanlış home point. Home, genellikle arming anında kilitlenir. GPS fix’i zayıfken arm ederseniz home yüzlerce metre ötede olabilir ve RTL sizi oraya götürür. Arming öncesi HDOP ve uydu sayısını kontrol edin, Mission Planner’da home ikonunun gerçekten ayağınızın dibinde olduğunu görün.
Düşük RTL irtifası. Varsayılan 15 m ile ağaçlık bir sahada uçmak, failsafe’i bir çarpışma prosedürüne dönüştürür.
Kritik kademede RTL seçmek. Voltaj kritik eşiğe geldiyse dönüş için enerji kalmamıştır. Kritik kademe LAND olmalı.
Yüksüz voltaja göre eşik. Sag hesabı yapılmadan konan eşik ya erken tetiklenir ya da hiç tetiklenmez.
Failsafe’in geri alınacağını sanmak. Link geri gelse de araç failsafe modunda kalır; pilot elle mod değiştirmelidir.
Companion computer’ın failsafe’i ezmesi. Jetson üzerinden MAVLink ile komut gönderiyorsanız, GUIDED modda sürekli hedef basan bir script failsafe sonrası mod değişimiyle çakışabilir. Failsafe tetiklendiğinde offboard kontrolün susması gerekir.
Pratik özet
- Altı failsafe’i (RC, GCS, batarya, EKF, geofence, çarpma) tek tek açın; hiçbirini varsayılanda bırakmayın.
- Batarya eşiğini
V_esik = (N_hucre x V_hucre_hedef) - I_hover x R_icile hesaplayın; iki kademe kurun (düşük -> RTL, kritik -> LAND). RTL_ALT_M’i sahanın en yüksek engeline emniyet payı ekleyerek her uçuş öncesi ayarlayın;RTL_ALT_FINAL_M’i sıfır bırakın.- Konum güvenilirliği şüpheliyse (EKF, GPS) eylem her zaman LAND olsun; engelli sahada RTL yerine SmartRTL önceliklendirin.
- Her senaryoyu uçuştan önce SITL’de
SIM_RC_FAIL,SIM_BATT_VOLTAGE,SIM_GPS1_ENABLE,SIM_ENGINE_FAILile enjekte edin; log’dan tepkiyi ve süresini doğrulayın. - Arming öncesi home point’in gerçekten doğru yerde olduğunu gözle kontrol edin.
- ardupilot
- failsafe
- rtl
- batarya
- sitl