top of page
Eğitim Paneli

Geofence poligonu geniş, drone erken dönüyor

14 Ağu
3 dakikada okunur

Poligonu haritanın üstüne çizdin, kenarları uçuş alanının epey dışından geçiyor, yükledin ve kabul edildi. Kalkıştan bir buçuk dakika sonra otopilot moda RTL yazıyor ve drone eve dönüyor.

Poligonun kenarına yaklaşmadın bile. Sorun çizdiğin alanda değil, onunla birlikte açık kalan ikinci bir çitte.



Önce mesajı bul, çitin adını sana o söylüyor

ArduPilot ihlal anında hangi çitin tetiklendiğini yazar. Yer kontrol istasyonunun mesaj penceresinde geçen ifade doğrudan teşhistir.

Circle fence breached görüyorsan tetikleyen poligon değil, home merkezli dairedir. Polygon fence breached görüyorsan gerçekten çizdiğin alanın dışına çıkmışsındır. İkisi aynı ekranda benzer görünür, ama bakman gereken parametre farklıdır.

Mesajı yakalayamadıysan tahmin etme. Uçuş kaydını indir, mesaj satırlarını aç ve moddan önceki son satıra bak.



FENCE_TYPE tek bir seçim değil, bir bit maskesi

FENCE_TYPE bir liste kutusu gibi davranmaz. Dört ayrı çiti tek sayının içinde taşır ve açık olan her bit kendi çitini uygular.



Poligonu yüklemek bit 1'i kapatmaz. Daire açık kalır ve FENCE_RADIUS hangi değerdeyse orada durur. Poligonun bir kilometre ötede olması bir şeyi değiştirmez; iki çit birbirinden bağımsız ölçülür.

Kaynak koddaki dairesel çit yarıçapı varsayılanı 300 metredir; libraries/AC_Fence/AC_Fence.cpp içinde AC_FENCE_CIRCLE_RADIUS_DEFAULT olarak tanımlı. Senin aracında bu değer daha önce değiştirilmiş olabilir; ezberden gitme, parametre ekranından oku.



Bu davranış neden simülasyonda ölçülüyor

Çit ihlalini sahada ölçmek için aracı bilerek sınırın dışına çıkarmak gerekir. Bunun karşılığı, en iyi ihtimalle boşa giden bir uçuş günü.

SITL'de uçan yazılım gerçek otopilotun kendisidir; çit mantığı da aynı kaynak koddan gelir. Sınırı defalarca aşabilir, ihlalin hangi metrede olduğunu kaydedebilirsin. Aşağıdaki sayılar bu yüzden simülasyondan geliyor ve saha ölçümü yerine geçmiyor.



Aynı poligon, iki farklı FENCE_TYPE değeri

ArduCopter 4.7.0 SITL'de 1200 × 1200 metrelik bir kapsama poligonu yükledik, FENCE_RADIUS değerini 150 metrede bıraktık ve aracı doğuya doğru 12 m/s ile uçurduk. Tek değişken FENCE_TYPE.



Varsayılan 7 değerinde araç 153,0 metrede Circle fence breached mesajını bastı ve mod RTL'e döndü. Aynı poligonla, FENCE_TYPE 4 yapıldığında 574 metreye kadar hiçbir tepki gelmedi.

Ölçümün kendi kaydından, ihlal anını çevreleyen satırlar:


Arming motors
EKF3 IMU0 MAG0 in-flight yaw alignment complete
Circle fence breached
Manual recovery started
Fence breach cleared
SIM Hit ground at 0.501213 m/s
Disarming motors

Aradaki Manual recovery started satırı yanıltıcı olabilir: kaynak kodda bu mesaj, ihlal sürerken uçuş modu değiştiğinde basılır ve mod değişikliğinin otomatik olması durumu değiştirmez.



Çözüm

Yalnızca çizdiğin alan uygulansın istiyorsan daire bitini düşür. Yükseklik tavanını korumak genelde iyi fikirdir, o yüzden FENCE_TYPE için 5 mantıklı bir başlangıçtır: 1 (Max Alt) + 4 (Polygon).



Sıra önemli: çit açıkken tipini değiştirmek, otopilotun bir sonraki döngüde eski maskeyle ölçüm yapmasına yol açabilir. Kapat, yaz, aç.

Yazdıktan sonra değeri geri oku. Mission Planner'ın parametre ekranı, yazma isteğini gönderdikten sonra kutuyu yeni değerle boyar; bu otopilotun kabul ettiği anlamına gelmez.



Hata Mesajları ve Anlamları

Aşağıdaki dizeler ArduCopter 4.7.0 kaynağında birebir geçer.

Circle fence breached

Home merkezli dairesel çit yeni ihlal edildi. FENCE_TYPE'ta bit 1 açık ve araç FENCE_RADIUS dışına çıktı. Poligonla ilgisi yok.

Fence breach cleared

İhlal edilen bütün çitler temizlendi, araç yeniden izinli bölgede. Bu satır tek başına uçuşun düzeldiği anlamına gelmez; öncesinde hangi çitin tetiklendiğine bak.

Fences enabled, but none selected

ARM öncesinde çıkar ve ekranda PreArm: önekiyle görünür. FENCE_ENABLE 1 yapılmış ama FENCE_TYPE 0 kalmış demektir.

Fence requires position

Yatay konum çözümü hazır olmadan dairesel ya da poligon çiti ölçülemez. Bu satır çit ayarının bozuk olduğunu değil, EKF'nin henüz konum üretmediğini söyler. Bizim koşumuzda da ilk ARM denemesinde çıktı ve uydu çözümü oturunca kendiliğinden geçti; ekranda Arm: önekiyle göründü.



Devamı

Bu yazı tek bir belirtiyi kapatıyor. Çitin karar sırasını, hangi mesajın hangi kaynak satırından geldiğini, birden çok kapsama alanı çizildiğinde izinli bölgenin nasıl daraldığını ve sahadan gelen vakaları derste adım adım işliyoruz.

Ders, Sıfırdan Mission Planner eğitimi içindeki güncel eklemeler bölümünde. Diğer eğitimler Softivation eğitim listesinde.


İ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