top of page
Eğitim Paneli

Python betiği durunca drone RTL yapmıyor

24 Ağu
2 dakikada okunur

Yardımcı bilgisayardan GUIDED modda uçarken Python betiğin durdu ya da bağlantı koptu. Beklentin drone’un eve dönmesiydi. Oysa drone olduğu yerde asılı kaldı ve ekrana tek bir uyarı bile düşmedi.

Parametrelere bakınca her şey yerinde görünür: FAILSAFE açık, süre ayarlı. Otopilot yine de kılını kıpırdatmaz. Sorun ayarın kendisinde değil, otopilotun bir yer istasyonunu ne zaman gördüğünü saydığı yerde.



Otopilot betiğini yer istasyonu saymıyor

ArduCopter, GCS failsafe’i son heartbeat’in üzerinden geçen süreye bakarak işletir. Ama bu sayaç ancak otopilot en az bir kez kendi yer istasyonundan mesaj gördüyse başlar. Hiç görmediyse sayaç sıfırda kalır ve failsafe kontrolü daha başında sessizce sonlanır.

pymavlink ile bağlanan çoğu betik komut gönderir ama heartbeat göndermez. Otopilotun gözünde böyle bir betik, yer istasyonu değil, sıradan bir araç bileşenidir. Betik çalışırken de çökerken de failsafe sayacı hiç dönmez.




Aynı ayar, iki koşu, iki farklı son

Bunu SITL’de görmek kolay. İki koşuda da FS_GCS_ENABLE, FS_GCS_TIMEOUT ve MAV_GCS_SYSID birebir aynı. Fark tek bir satırda gizli: betiğin saniyede bir heartbeat gönderip göndermediği.

Heartbeat’in hiç gönderilmediği koşuda drone 15 metrede takılı kaldı, yarım dakika boyunca GUIDED’da asılı durdu. Heartbeat gönderilip sonra kesilen koşuda otopilot yaklaşık beş saniye içinde RTL’e geçti ve alçalmaya başladı. Parametreler aynı, değişen tek şey bir yer istasyonunun varlığı.




Betiğe bir kalp attır

Çözüm, betiğin doğru kimlikle heartbeat göndermesi. Bağlantıyı açarken source_system değerini yer istasyonu numaranla eşle, sonra ayrı bir iş parçacığında saniyede bir heartbeat yolla.



Bu haldeyken otopilot betiği yer istasyonu olarak sayar. Betik çökerse heartbeat kesilir, FS_GCS_TIMEOUT dolar ve FS_GCS_ENABLE’da seçtiğin eylem devreye girer.

Uçuştan önce üç parametreyi bir kez doğrula. MAV_GCS_SYSID, betiğin source_system değerini kapsamıyorsa otopilot senin heartbeat’ini yer istasyonu saymaz.


param show FS_GCS_ENABLE FS_GCS_TIMEOUT MAV_GCS_SYSID


Hata Mesajları ve Anlamları

Bu konuda ekranda gördüğün ya da hiç göremediğin birkaç satır:

GCS Failsafe

Otopilot yer istasyonunu FS_GCS_TIMEOUT boyunca göremedi ve failsafe başladı. Bu satırı görüyorsan sayaç çalışıyor demektir. Hiç görmüyorsan otopilot bir yer istasyonu hiç saymamış olabilir.

GCS Failsafe Cleared

Bağlantı geri geldi ve failsafe koşulu kalktı. Otopilot yine de failsafe moduna kilitli kalır, önceki moduna kendiliğinden dönmez. Geri almak için modu elle değiştirmen gerekir.

PreArm: GCS failsafe on

Yerde, failsafe etkinken ARM etmeye çalıştın. Önce bağlantıyı ve heartbeat akışını düzelt, sonra ARM et.



Bu konuyu uçtan uca öğren

Python ile Sıfırdan İHA Kontrolü eğitiminde pymavlink ve DroneKit ile bağlantı kurmayı, GUIDED görevlerini ve yardımcı bilgisayardan otonom kontrolü adım adım işliyoruz.


İ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