GÖREV KAYDI

GÖREV KAYDI

KAYIT AÇIK

ATILIM UAV · YER KONTROL İSTASYONU

GÖREV KAYDI / DETAY

Arşiv

CANLI · OKUMA MODU

Aviyonik

Failsafe Kurulumu: Link Kaybı, Düşük Batarya ve RTL Senaryoları

Failsafe Kurulumu: Link Kaybı, Düşük Batarya ve RTL Senaryoları

Batarya failsafe eşikleri ve geçici gerilim düşümlerinin filtrelenmesi

FIG. 01

KAYIT KÜNYESİ

Kategori

Aviyonik

TARİH

TÜM KAYITLAR

Geçen sezon bir test uçuşunda, kumandamızın pili sahada bitti. Hava aracı 60 metre irtifadaydı, bizden yaklaşık 200 metre uzaktaydı. Bir saniye sonra RTL'ye (Return To Launch, kalkış noktasına dönüş) geçti, tırmandı, geri uçtu ve indi. Kimse müdahale etmedi, çünkü müdahale edilecek bir şey kalmamıştı.

O gün işe yarayan şey şans değildi. İki hafta önce aynı senaryoyu SITL'de (Software In The Loop, uçuş yazılımının PC üzerinde simülasyon olarak koşması) on kez tetiklemiş, RTL irtifasını sahadaki en yüksek ağaca göre yeniden ayarlamış ve home noktasının doğru yerde kilitlendiğini doğrulamıştık. Bir failsafe (güvenli-mod), onu ayarladığınız anda var olmaz; test ettiğiniz anda var olur.

Bu yazıda ArduPilot Copter'daki failsafe türlerini, her biri için doğru tepkiyi, batarya eşiklerinin nasıl hesaplanacağını ve bunların hepsinin SITL'de nasıl tetikleneceğini ele alıyoruz. Parametre adları ArduPilot dokümantasyonuna göre doğrulandı; adlar sürümler arasında değişebiliyor, bu yüzden Mission Planner'daki tam parametre listesinden teyit edin.

Failsafe türleri ve ArduPilot'taki karşılıkları

ArduPilot'ta failsafe tek bir ana anahtar değil; birbirinden bağımsız çalışan bir kontrol kümesidir. Her birinin kendi tetikleyicisi, kendi zaman aşımı ve kendi eylem parametresi vardır.

Failsafe

Tetikleyici

Anahtar parametreler

Varsayılan zaman aşımı

RC link kaybı

Alıcıdan darbe gelmemesi / gaz 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 batarya (gerilim)

Gerilimin eşiğin altında kalması

BATT_LOW_VOLT, BATT_CRT_VOLT, BATT_LOW_TIMER, BATT_FS_VOLTSRC

10 s

Düşük batarya (kapasite)

Tüketilen mAh'in eşiği geçmesi

BATT_LOW_MAH, BATT_CRT_MAH

anında

EKF arızası

Pusula / konum / hız varyanslarından ikisinin eşiği aşması

FS_EKF_THRESH, FS_EKF_ACTION

1 s

Geofence ihlali

İrtifa / yarıçap / poligon sınırının aşılması

FENCE_TYPE, FENCE_ACTION, FENCE_ALT_MAX, FENCE_RADIUS, FENCE_MARGIN

anında

Çarpma tespiti

Talep edilen ile gerçek yatış açısı arasında 2 s boyunca 30°'den fazla sapma

FS_CRASH_CHECK

2 s

Ortak bir davranış burada çok önemli: RC, GCS, batarya veya arazi verisi failsafe'i bir kez mod değişikliğine yol açtıysa, sorun ortadan kalksa bile hava aracı o modda kalır. Pilot elle değiştirmediği sürece önceki moda dönmez. "Link geri geldi, kontrol yine bende" varsayımıyla kumandayı sallamanın bu yüzden bir faydası yoktur.

Hangi tepki, ne zaman doğru?

Failsafe eylemlerinin hepsi aşağı yukarı aynı havuzdan gelir. Fark, belirli bir durumda hangisinin daha az kötü olduğudur.

Eylem

Ne yapar

Ne zaman tercih edilir

Riski

Warn Only (0)

Sadece uyarır, başka bir şey yapmaz

Pilotun hâlâ kontrolde olduğu erken aşama batarya uyarısı

Hiçbir otomatik koruma sağlamaz

BRAKE / LOITER

Olduğu yerde durur ve konumunu korur

Kararı pilotun vermesinin beklendiği geofence sınırında

Sorun kalıcıysa batarya biter

LAND

Bulunduğu yere iner

Konuma güvenilmediğinde (EKF, GPS) tek mantıklı seçenek

Yerini bilmediğiniz bir noktaya iner

RTL

Ayarlanan irtifaya tırmanır, düz bir hatla eve uçar, iner

Konum sağlıklıyken ve dönüş güzergâhı temizken

O düz hat bir engelin içinden geçebilir

SmartRTL

Gidişte uçtuğu rotayı geri izleyerek döner

Engel yoğun veya ağaçlık alanlarda ya da binalar arasındaki uçuşlar

Kayıtlı bir rota yoksa devreye girmez ve RTL/LAND'e düşer

Pratikte, SUAS 2026 hava aracımızda hem RC hem GCS failsafe'i için önce SmartRTL, geri düşüşte RTL seçeneklerini kullanıyoruz (FS_THR_ENABLE = 4, FS_GCS_ENABLE = 3). Konum çözümü bozulduğunda tartışılacak bir şey yok: EKF failsafe'i LAND'dir, çünkü kendi konumuna güvenmeyen bir hava aracını 300 metre öteye göndermek, kontrollü bir inişten çok daha kötüdür.

Batarya eşiklerini belirlemek

Batarya failsafe'inde en sık yapılan hata, eşiği dinlenme hâlindeki (yüksüz) hücre gerilimine göre belirlemektir. Hava aracı hover'da akım çekmeye başladığı anda iç direnç gerilimi aşağı çeker; buna sag (yük altında gerilim düşümü) denir. Eşiği yüksüz gerilime göre ayarlarsanız failsafe daha ilk agresif manevrada devreye girer.

V_sag = I_hover x R_internal, yük altındaki gerilim düşümü

V_threshold = (N_cells x V_cell_target) - V_sag

Sembol

Nedir ve nereden alınır

I_hover

Hover akımı (A): logdaki CURR.Curr değerinin ortalaması

R_internal

Paketin toplam iç direnci (ohm): BATT_RES_OHM log alanından ya da üreticinin veri sayfasından

N_cells

Hücre sayısı (6S -> 6)

V_cell_target

Yük altında hâlâ görmek istediğiniz hücre başına gerilim

Örnek: 6S bir paket, 22 A hover akımı, ölçülen 0.020 ohm iç direnç ve yük altında hücre başına 3.5 V'un altına inmek istemiyoruz:

  1. V_sag = 22 A x 0.020 ohm = 0.44 V

  2. V_threshold = (6 x 3.5) - 0.44 = 21.0 - 0.44 = 20.56 V -> BATT_LOW_VOLT = 20.6

  3. Kritik kademe: (6 x 3.4) - 0.44 = 19.96 V -> BATT_CRT_VOLT = 20.0

İki kademe zorunludur. Düşük kademe, BATT_FS_LOW_ACT = 2 (RTL) ile hava aracını eve göndermeli; kritik kademe ise BATT_FS_CRT_ACT = 1 (LAND) ile onu bulunduğu yere indirmelidir. Kritik kademe için RTL seçmek, zaten tükenmiş bir paketle 300 metrelik bir eve dönüşe kalkışmak demektir.

Tek başına gerilim yeterli değil. Yanına bir de kapasite eşiği koyun: ArduPilot dokümantasyonu, BATT_LOW_MAH için paket kapasitesinin kabaca %20'sini öneriyor (5000 mAh'lik bir pakette 1000 mAh). Kapasite sayacı tamamen akım sensörünün ne kadar iyi kalibre edildiğine bağlıdır; kalibre edilmemiş bir sensörle mAh eşiği size gerçek bir güven vermez.

BATT_LOW_TIMER varsayılan olarak 10 saniyedir (0-120 s): gerilimin bu süre boyunca eşiğin altında kalması gerekir, böylece anlık akım sıçramaları failsafe'i tetiklemez. BATT_FS_VOLTSRC = 1 seçerseniz ArduPilot sag-kompanzasyonlu gerilimi kullanır; bu durumda yüksüz gerilime daha yakın bir eşik seçmelisiniz.

Güvenlik uyarısı: Bir LiPo hücresini 3.0 V'un altına düşürmek pakete kalıcı hasar verir, şişme ve termal kaçış riskini artırır. Bir tur daha sıkıştırmak uğruna kritik failsafe eşiğini aşağı çekmeyin. Eşik testlerini yerde pervaneler takılıyken yapmayın: sırf akım çekmek için pervaneli tam gaz denemesi ciddi bir yaralanma riskidir. Akımı ve sag'ı ya elektronik yükle ya da gerçek bir uçuş logundan ölçün.



Yük altında gerilim düşümü (sag) ve iki kademeli eşik

RTL irtifası ve dönüş güzergâhının riskleri

RTL önce hava aracını 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), ardından düz bir hatla eve uçar. Varsayılan 15 metredir ve ağaçlı ya da binalı bir sahada bu yeterli değildir.

RTL_ALT_M = tallest_obstacle_height + safety_margin

Sahamızdaki en yüksek engel 18 m'lik bir ağaç sırasıysa, 10 m güvenlik payıyla RTL_ALT_M = 28 yaparız. Bu irtifa her yarışmadan ve her uçuştan önce sahaya göre yeniden ayarlanmalıdır; "geçen sefer işe yaramıştı" bir gerekçe değildir.

Kritik nokta şu: RTL düz bir hatla döner, uçtuğunuz rotayı geri izlemez. Bir binanın arkasından çıkarak uçtuysanız, RTL sizi doğrudan binanın içinden geçirmeye çalışır. Engel yoğun sahalarda önce SmartRTL seçeneklerini bu yüzden kullanıyoruz. RTL_CONE_SLOPE (varsayılan 3) home yakınında gereksiz tırmanmayı sınırlar; failsafe tam home'un üzerinde devreye girerse hava aracı 28 metreye kadar çıkmak yerine kısa bir koni boyunca yükselir.

RTL_ALT_FINAL_M sıfırda bırakılırsa hava aracı dönüşün sonunda otomatik olarak iner. Sıfırdan farklı bir değer verirseniz o irtifada tutunur ve pilot girdisi bekler; link zaten koptuysa bu, batarya bitene kadar havada asılı kalmak demektir. RC failsafe durumu için sıfırda bırakın.

SITL'de failsafe senaryolarını enjekte etmek

Bunların hiçbirini ilk kez sahada denemeyin. SITL + Gazebo kurulumu yazımızdaki ortamda, failsafe'leri doğrudan MAVProxy konsolundan tetikleyebilirsiniz:

# RC link loss — no pulses from the receiver
param set SIM_RC_FAIL 1
# throttle 950us scenario (legacy receiver behavior)
param set SIM_RC_FAIL 2
param set SIM_RC_FAIL 0        # revert

# GCS loss: close MAVProxy to cut the heartbeat
# or shorten FS_GCS_TIMEOUT and break the link

# Low battery — drop the simulated voltage (default 12.6 V)
param set SIM_BATT_VOLTAGE 10.2
param set SIM_BATT_RES_OHM 0.02   # internal resistance, for sag behavior

# GPS loss -> EKF failsafe
param set SIM_GPS1_ENABLE 0

# Motor failure: SIM_ENGINE_FAIL is the motor mask, SIM_ENGINE_MUL the thrust multiplier
param set SIM_ENGINE_FAIL 1
param set SIM_ENGINE_MUL 0

# RC link loss — no pulses from the receiver
param set SIM_RC_FAIL 1
# throttle 950us scenario (legacy receiver behavior)
param set SIM_RC_FAIL 2
param set SIM_RC_FAIL 0        # revert

# GCS loss: close MAVProxy to cut the heartbeat
# or shorten FS_GCS_TIMEOUT and break the link

# Low battery — drop the simulated voltage (default 12.6 V)
param set SIM_BATT_VOLTAGE 10.2
param set SIM_BATT_RES_OHM 0.02   # internal resistance, for sag behavior

# GPS loss -> EKF failsafe
param set SIM_GPS1_ENABLE 0

# Motor failure: SIM_ENGINE_FAIL is the motor mask, SIM_ENGINE_MUL the thrust multiplier
param set SIM_ENGINE_FAIL 1
param set SIM_ENGINE_MUL 0

Her senaryoda tek bir soruyu yanıtlayın: hava aracı ne yaptı, bunu yapması ne kadar sürdü ve logda hangi mesaj göründü? SIM_SPEEDUP ile işleri hızlandırmak bir kahve molasında on senaryo koşmanızı sağlar, ama çok yüksek değerlerde simülasyonun kendisi failsafe üretebilir; bu yüzden sonuçlarınızı 1x hızda doğrulayın.

Sık yapılan hatalar

Test edilmemiş failsafe. Parametreyi girip Mission Planner'ı kapatmak test değildir. En az bir kez SITL'de, bir kez de sahada kontrollü koşullarda tetikleyin: yüksek irtifa, açık alan, kumanda kapalı.

Yanlış home noktası. Home normalde arm anında kilitlenir. Zayıf bir GPS fix'i ile arm ederseniz home yüzlerce metre ötede kalabilir ve RTL sizi seve seve oraya götürür. Arm etmeden önce HDOP ve uydu sayısını kontrol edin, home ikonunun gerçekten ayağınızın dibinde olduğunu Mission Planner'dan doğrulayın.

Fazla düşük RTL irtifası. Ağaç sıralı bir sahada varsayılan 15 m ile uçmak, failsafe'inizi bir çarpma prosedürüne dönüştürür.

Kritik kademe için RTL seçmek. Gerilim kritik eşiğe ulaştıysa eve dönüş için enerji kalmamıştır. Kritik kademe LAND olmak zorundadır.

Yüksüz gerilime dayanan eşikler. Sag hesabı yapılmadan belirlenen bir eşik ya erken devreye girer ya da hiç girmez.

Failsafe'in kendi kendine geri alınacağını varsaymak. Link geri gelse bile hava aracı failsafe modunda kalır; modu pilotun elle değiştirmesi gerekir.

Companion computer'ın failsafe'i ezmesi. Jetson'dan MAVLink üzerinden komut gönderiyorsanız, GUIDED modda sürekli setpoint basan bir script, failsafe sonrası gelen mod değişikliğiyle çatışabilir. Bir failsafe devreye girdiğinde offboard kontrolün susması gerekir.

Pratik özet

  1. Altı failsafe'in (RC, GCS, batarya, EKF, geofence, çarpma) hepsini tek tek etkinleştirin; hiçbirini varsayılanında bırakmayın.

  2. Batarya eşiğini V_threshold = (N_cells x V_cell_target) - I_hover x R_internal ile hesaplayın; iki kademe kurun (düşük -> RTL, kritik -> LAND).

  3. Her uçuştan önce sahadaki en yüksek engele bir güvenlik payı ekleyerek RTL_ALT_M değerini ayarlayın ve RTL_ALT_FINAL_M değerini sıfırda bırakın.

  4. Konum güvenilirliğinden şüphe duyulan her durumda (EKF, GPS) eylem daima LAND olmalı; engel yoğun bir sahada SmartRTL'yi RTL'ye tercih edin.

  5. Uçmadan önce her senaryoyu SITL'de SIM_RC_FAIL, SIM_BATT_VOLTAGE, SIM_GPS1_ENABLE ve SIM_ENGINE_FAIL kullanarak enjekte edin; tepkiyi ve zamanlamasını logdan doğrulayın.

  6. Arm etmeden önce home noktasının gerçekten doğru yerde olduğunu gözle doğrulayın.

©2026 ATILIM UAV TEAM

©2026 ATILIM UAV TEAM