SUAS 2026 görev mimarisini kurgularken ROS 2’yi masaya yatırdım ve kameradan tespite giden bir hatta gerçekten ne kazandıracağını anlamaya çalıştım. Bu yazı o incelemenin özeti. Bir saha raporu değil: çerçeveyi değerlendirirken öğrendiklerimi yazıyorum, uçurarak edinilmiş yara izlerini değil. Eğitimler düğüm ve konu nedir sorusunu bir öğleden sonrada öğretir. Daha faydalı soru, çerçevenin hangi parçalarının bir görüntü sistemi için önemli olduğu ve küçük bir ekibin hangilerini gönül rahatlığıyla atlayabileceği. İncelemenin yapıldığı proje burada.

Şekil: kendi çizimim.
Düğümler ve konular, tek paragrafta
Düğüm, tek işi olan bir süreç. Konu, düğümlerin birbirini tanımadan yayın yaptığı ve abone olduğu isimli bir akış. Bütün vaat bu ayrışmada: kamera düğümü bir abonenin mi beş abonenin mi dinlediğini umursamaz ve kamera sürücüsüne dokunmadan dedektörü değiştirebilirsin. Altta keşif ve taşımayı bir DDS ara katmanı üstlenir, yani ayakta tutulacak merkezi bir aracı yoktur. Bir görüntü hattı için düğümler, konular ve parametreler dokunacağın şeylerin çoğunu kapsar. Servisler, aksiyonlar ve yaşam döngüsü düğümleri var, ama küçük bir hattın ihtiyacı bir avuç konu, ve bu bir hırs eksikliği değil.
Nerede hakkını verirdi
İncelemede üç şey öne çıktı. Birincisi, belirgin sınırlar: kamera, dedektör ve konumlandırma aralarında bir mesaj sözleşmesi olan ayrı süreçler haline gelir, her aşama kendi başına geliştirilip test edilebilir ve değiştirilebilir. İkincisi, kayıt: rosbag2 bir koşunun konularını yakalar, sonra masanın başında gerçek veriyle tekrar oynatıp dedektörü yeniden koşturabilirsin. Üçüncüsü, bedava iç gözlem: ros2 topic list ne var ne yok gösterir, ros2 topic hz bir akışın sandığın hızda akıp akmadığını gösterir, rqt_graph kurduğun çizgenin kurmak istediğin çizge olup olmadığını gösterir.
Zaman damgaları ayrı bir paragrafı hak ediyor. ROS 2 mesajları bir başlık damgası taşır ve gelenek, yakalama anında damgalayıp o damgayı hat boyunca ellememektir. Konumlandırma için bu kılı kırk yarmak değil: bir pikseli yere izdüşürmek, tespiti aynı ana ait hava aracı pozuyla eşlemek demek. Onu biraz sonraki anın pozuyla eşlersen araç çoktan yol almıştır: hedef haritada olması gereken yerden metrelerce uzağa düşer ve loglarda hiçbir şey yanlış görünmez. message_filters akışları varış sırasına göre değil damgaya göre senkronlamak için var ve tam da bu işin doğru aracı.
QoS: sessizce bozulduğu yer
Quality of Service ayarları, her eğitimin andığı ve çoğu okurun atladığı kısım. Atlama. QoS profilleri uyumsuz bir yayıncı ile abone düpedüz bağlanmaz ve varsayılan olarak hata da vermez: konu öylece sessiz kalır. Dokümantasyon bu konuda açık ve bu, klasik “konum neden boş” tuzağı.
Kamera kareleri için makul seçim sensör verisi profili: best effort güvenilirlik, küçük kuyruk. En yeni kareyi istiyorsun, her karenin sadık bir tekrarını değil. 30 fps bir görüntü akışında güvenilir teslimat şu demek: tüketici tökezlediğinde ara katman eski kareleri kuyruğa alır ve dedektörün geçmişi işlemeye başlar. Bayat karelerle çalışan bir tespit hattı, kare düşürenden daha kötüdür.
Görüntüler ağırdır, bunu hesaba kat
4K bir kare çok bayt eder ve süreç sınırlarını aşan her yayın, serileştirme ve kopya bedeli öder. Jetson sınıfı bir kartta bellek bant genişliği gerçek zaman bütçesinin parçasıdır. Tasarım sonucu şu: kamerayla dedektörü yakın tut, büyük mesaj değil küçük mesaj yayınla. Dedektör kutuları, sınıfları ve güven değerlerini yayınlayabilir, megabaytlar yerine birkaç yüz bayt, işaretlenmiş hata ayıklama videosunu da bir parametrenin arkasında, varsayılan olarak kapalı tutabilir. Görüntü ağırlıklı iki düğüm yüksek hızda konuşmak zorundaysa, composition ikisini tek sürece koyar ve süreç içi iletişim serileştirmeyi tamamen atlar.
Dürüst kısım: her zaman gerekmiyor
Dönüp dolaşıp vardığım sonuç şu. Tek bilgisayarlı, tek kameralı, üç dört aşamalı tek bir araç, tek bir süreçle idare edebilir: bir yakalama iş parçacığı, bir kuyruk, bir dedektör, düz fonksiyon çağrıları. ROS 2 yanında bir derleme sistemi, DDS yapılandırması, QoS ayarı ve launch dosyaları getirir ve bu işletme yükü gerçek bir maliyettir. Değeri süreç sayısıyla, katkıda bulunan sayısıyla ve kayıt ile tekrar oynatma ihtiyacıyla büyür. Bütün hattı tek kişi yazıyorsa ve tek sürece sığıyorsa, çerçeve çoğunlukla tören ekler. Çalışma kuralım şu: süreç yalıtımına, kayıtlı tekrarlara ya da sabit arayüzlere karşı entegre olan birden fazla kişiye ihtiyaç duyduğunda benimse. O güne kadar ertelemek bir kestirme değil, savunulabilir bir mühendislik kararı.
ROS 2 görüntü hattını iyi yapmaz. Parçaları arasındaki sınırları görünür yapar; bunun yüke değip değmeyeceği, elinde gerçekten kaç sınır olduğuna bağlı.