Geofence poligonu geniş, drone erken dönüyor
Güncelleme tarihi: 14 Eki
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. Drone'u döndüren, çizdiğin alanla birlikte açık kalan ikinci bir çit.
Poligonu çizmek daireyi kapatmıyor
ArduPilot'ta çit ayarı tek bir seçim değildir. Yükseklik tavanı, home merkezli daire, poligon ve yükseklik tabanı ayrı çitlerdir ve açık olan her biri kendi başına uygulanır.
Poligonu yüklemek daireyi kapatmaz. Daire açık kalır ve yarıçapı hangi değerdeyse orada durur. Poligonun bir kilometre ötede olması bir şeyi değiştirmez; iki çit birbirinden bağımsız ölçülür.
Hangi çitin tetiklendiğini mesaj söyler
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.
Çit ayarı tek sayının içinde dört çit taşır
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:
Bit | Değer | Çit | Neyi uygular |
bit 0 | 1 | Max Alt | FENCE_ALT_MAX yüksekliği |
bit 1 | 2 | Circle | home merkezli FENCE_RADIUS dairesi |
bit 2 | 4 | Polygon | yüklediğin kapsama/dışlama alanları |
bit 3 | 8 | Min Alt | FENCE_ALT_MIN tabanı |
FENCE_TYPE = 7 üç biti birden açar: Max Alt + Circle + Polygon. Poligonu yüklemek bit 1'i kapatmaz, daire FENCE_RADIUS hangi değerdeyse orada kalı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.
Aynı poligon, daire açıkken ve kapalıyken
ArduCopter 4.7.0'da 1200 × 1200 metrelik bir kapsama poligonu yükleyip FENCE_RADIUS'u 150 metrede bırakırsan ve aracı doğuya doğru uçurursan, tek değişken FENCE_TYPE olduğunda fark şekildeki gibi olur.
Varsayılan 7 değerinde araç 153 metrede Circle fence breached mesajını basar ve mod RTL'e döner. FENCE_TYPE 4 yaptığında aynı poligonla 574 metreye kadar hiçbir tepki gelmez.
İhlal anında mesaj satırları şu sırayla düşer:
Arming motors
EKF3 IMU0 MAG0 in-flight yaw alignment complete
Circle fence breached
Manual recovery started
Fence breach cleared
Disarming motorsAradaki 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.
Daire bitini kapat
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.
Örnek: Teknofest görev alanının köşe koordinatlarını poligon olarak yükledin; kalkış noktan alanın bir kenarında, en uzak görev noktası ise home'a daire yarıçapından daha uzak. Daire biti açık kaldığı sürece araç poligonun içinde olduğu hâlde o noktaya giderken yarı yolda döner. Göreve çıkmadan FENCE_TYPE'ı geri oku ve daire bitinin gerçekten kapalı olduğunu gör; daireyi açık tutacaksan FENCE_RADIUS'un en uzak görev noktasını kapsadığından emin ol.
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. İlk ARM denemesinde karşına çıkabilir ve uydu çözümü oturunca kendiliğinden geçer; ekranda Arm: önekiyle görünür.
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