ROS (Robot Operating System), robotik ve otonom sistemler için modüler ve esnek bir yazılım altyapısı sunar. Özellikle ROS 2, gerçek zamanlı uygulamalar için daha gelişmiş güvenlik, yüksek performanslı haberleşme ve dağıtık sistem desteği ile ön plana çıkmaktadır. Bizim geliştirdiğimiz hava savunma sistemi de ROS 2 tabanlı bir altyapı kullanmakta olup, tüm sensörler, kontrol algoritmaları ve çıktı bileşenleri ROS üzerinden entegre edilmektedir.
Sistemimizde ROS haberleşmesi temel olarak şu yapı taşlarına dayanmaktadır:
- Publisher-Subscriber Modeli: Balon algılama, hedef takibi ve angajman gibi tüm ana görevler, ROS’un publisher-subscriber yapısı üzerinden yürütülmektedir. Örneğin, kamera modülü tarafından yakalanan görüntüler image_raw topic’i üzerinden aktarılırken, hedef tespiti sonucu detection_result topic’i ile sistemin diğer modüllerine iletilmektedir.
- Service-Client Yapısı: Anlık komut gerektiren durumlarda, ROS service yapısı kullanılmaktadır. Örneğin simülasyon ortamında balonların konumları set_state ve delete_state servisleri aracılığıyla kontrol edilmektedir.
- Action Server Kullanımı: Taretin yönelmesi veya lazer atışı gibi uzun süren görevler, ROS Action Server üzerinden yürütülmektedir. Bu sayede görevler başlatılabilir, takip edilebilir ve gerektiğinde iptal edilebilir.
- Gerçek Zamanlı Performans: ROS 2’nin DDS (Data Distribution Service) tabanlı haberleşme altyapısı sayesinde yüksek frekansta veri iletimi sağlanmaktadır. Ancak balon hareketleri gibi yoğun veri trafiği gerektiren durumlarda, haberleşmede gecikmeler yaşanmaması için QoS (Quality of Service) ayarları titizlikle yapılandırılmıştır.
- Sistem Mimarisi: Sistemimizin modüler mimarisi, Design Patterns ve SOLID ilkelerine uygun olarak geliştirilmiştir. Her görev bağımsız bir node olarak tanımlanmış ve bu sayede bakım ve geliştirme süreçleri kolaylaştırılmıştır.
Karşılaşılan Zorluklar ve Çözümler
- Veri Yoğunluğu: Özellikle çok sayıda balonun algılandığı senaryolarda yüksek bant genişliği gereksinimi doğmuş ve ROS mesajlarının gecikmesine neden olmuştur. Bu durumu aşmak için mesajların frekansı ve boyutları optimize edilmiştir.
- Gerçek Zamanlılık Sorunları: Elektronik ve yazılım bileşenlerinin farklı hızlarda çalışması nedeniyle zaman uyumsuzlukları tespit edilmiştir. Çözüm olarak, tüm modüllerin senkronizasyonu için zaman damgası (timestamp) kullanılmıştır.
Neden ROS 2?
ROS 2, gerçek zamanlı destek, güvenlik ve multi-robot sistemler için daha güçlü araçlar sunduğu için tercih edilmiştir. Ayrıca, ROS 2’nin DDS tabanlı haberleşmesi sayesinde simülasyon ortamından gerçek sistem ortamına geçiş daha esnek hale gelmiştir.
Sonuç:
Otonom hava savunma sistemimizde ROS 2, yalnızca bir yazılım altyapısı değil, aynı zamanda sistemin kalbini oluşturan bir entegrasyon platformudur. Balon tespiti, hedef angajmanı ve imha sürecinin tüm aşamaları, ROS 2’nin sağladığı güçlü haberleşme altyapısı sayesinde güvenilir ve hızlı bir şekilde gerçekleşmektedir. Gelecekte ROS 2 ile uyumlu Gazebo Ignition ortamına geçiş planlanarak sistemin daha da kararlı ve esnek hale getirilmesi hedeflenmektedir.
0 yorum