Yazılım
Otonom Hedef Tespiti: 5 Adımda Sahaya İniş
Pi Kamera'dan gelen ham görüntü nasıl bir LAND komutuna dönüşüyor? OpenCV pipeline'ımızın beş adımını sırayla açıyoruz. Bonus: hangi adımda en çok kafa yorduk.
Pist kenarında kameranın gördüğünü ekranda izleyince, hedefin etrafında oynayan yeşil bir kontur çiziliyor. Bu görsel basit duruyor ama altında beş adım var. Hepsini Raspberry Pi 5 üzerinde, yer istasyonuna veri göndermeden çalıştırıyoruz; çünkü 4G/5G bağlantısı saha gününde çalışırsa şanslıyız.
1. Veri toplama
Pi Kamera Modülü 3, yerdeki hedefi anlık tarar. 12 MP çözünürlük ve otomatik odaklama var; İHA havada hareketliyken bile keskin kare yakalıyor. Kamerayı doğrudan gövdeye monte etmek bir hata; ilk testte 'jello' etkisi yüzünden kontur algılama sürekli sıçradı. Çözüm: TPU'dan kendi tasarladığımız antivibrasyon takozlar.
2. Görüntü işleme (OpenCV)
Görüntü ilk önce HSV'ye çevriliyor. RGB'de çalışmak ışık değişiminde kafamızı çok ağrıttı. HSV'ye geçince güneş ve gölge ayrımı için tek eşik yetiyor. Renk filtresi sonrası kontur tespiti; hedefin piksel cinsinden merkez koordinatları çıkıyor.
3. Hata hesaplama
Kameranın merkez koordinatı sabit. Hedefin merkez koordinatından çıkarınca hata vektörünü buluyoruz. Bu piksel cinsinden bir vektör; uçuş yüksekliği biliniyorsa fiziksel mesafeye çeviriliyor. İrtifa GPS + barometre kombinasyonundan geliyor; ikisinin ortalaması daha güvenilir oluyor.
4. Aksiyon kararı
Hata tolerans dışındaysa Pi 5, PyMAVLink üzerinden Pixhawk'a velocity_target komutu gönderiyor. Sağa, sola, ileri, geri; 0.5 m/s civarı bir hızla. Tolerans içine girene kadar bu döngü tekrar ediyor. Burada zor kısım, kazanç ayarı; çok büyük olursa hedefin üzerinde salınıyor, çok küçük olursa hiç ortalayamıyor.
5. Görev icrası
Hata X ve Y eksenlerinde sıfıra yakın olduğunda Pi 5, otopilota LAND komutu gönderiyor. Pixhawk kademeli olarak alçalıyor, son metrede daha yavaş. İnişin son aşamasında kamera artık güvenilir veri vermiyor (hedef çok yakında, kontur kayboluyor), bu yüzden son metre tamamen Pixhawk'a bırakılmış.
- Pipeline tamamen araç üzerinde, yer istasyonuna görsel veri gitmiyor.
- TPU antivibrasyon takozlar OpenCV'nin doğruluk payını %15 artırdı (kendi log'larımızdaki ölçüm).
- İlk SITL koşusunda y-ekseni yanlış işaretliydi, hedefin 4 m yanına iniş yapıyordu.
- İnişin son metresi tamamen Pixhawk barometresine bırakılıyor.
Bu yazıyla ilgili sorularını veya iş birliği önerini bize ilet.
İletişime Geç →