← Projeler

ROS 2 ve Gazebo ile otonom sürüş

Şerit takibi, YOLO algılama, LiDAR güvenliği, SLAM ve Nav2'yi simülasyonda birleştiren ROS 2 sürüş sistemi.

Rol
Yazılım geliştirici ve ortak yazar
Kurum
Kocaeli Üniversitesi
Dönem
2026
Teknolojiler
ROS 2 · Gazebo · Python · C++ · YOLO11 · Nav2 · OpenCV
Gazebo otonom sürüş simülasyonunda bir kavşakta duran Toyota Prius modeli.

Problem

Bu bitirme projesinde kamera ve LiDAR verisinden sürüş komutuna kadar çalışan bir otonom sürüş sistemi geliştirdik. Algılama, lokalizasyon, rota planlama ve kontrol modüllerini fiziksel araca ihtiyaç duymadan test etmek için Gazebo kullandık.

Sistem ROS 2 Humble ve Gazebo Classic 11 üzerinde Toyota Prius modeliyle çalışıyor. Ön kamera, 3B LiDAR ve odometri verileri beş ayrı modüle aktarılıyor: şerit takibi, trafik algılama, çarpışma önleme, SLAM ve Nav2 tabanlı navigasyon. Modüller ROS 2 topic’leri üzerinden haberleşiyor.

Gazebo sensörlerini, ROS 2 arayüzlerini, algılama modüllerini ve Nav2 koordinasyonunu bağlayan dört katmanlı mimari

Algılama ve kontrol

Şerit takibi modülü kamera görüntüsünün alt %35’ini işler; 7×7 Gaussian filtre, Canny kenar bulma ve olasılıksal Hough dönüşümüyle şerit çizgilerini çıkarır. PID denetleyicisi merkezden sapmayı direksiyon komutlarına dönüştürür. Düz yol testinde araç, karelerin %96,2’sinde ±0,30 m hedef sınırında kaldı; 0,8 m/s hızda ortalama sapma 0,142 m oldu.

Simülasyon kamera görüntüsünden gri tonlama, Gaussian filtre ve Canny kenarlarına uzanan şerit algılama hattı

Trafik ışıkları ve işaretleri için 6478 görüntü ve sekiz sınıfla eğitilmiş YOLO11s modeli kullanıldı. ONNX sürümü test benchmark’ında 0,946 mAP50 ve 67,63 FPS elde etti. Model çıktıları; kırmızı ışıkta ve dur levhasında durma, yeşilde devam etme ve hız sınırına uyma kararlarında kullanılıyor.

Gazebo kamera görüntüsünde 50 hız sınırı levhasını algılayan YOLO modeli

Güvenlik, haritalama ve navigasyon

Güvenlik modülü, LiDAR PointCloud2 verisini yükseklik ve ROI (ilgi bölgesi) sınırlarına göre filtreliyor. Engel kontrolünde kullanılan durma mesafesi araç hızına göre hesaplanıyor. Modül, twist_mux üzerinde en yüksek öncelikle çalışıyor ve gerektiğinde diğer sürüş komutlarını kesiyor. Bağımsız 70 güvenlik testinin tamamı geçti. Entegrasyon testinde yan engel durumuna geçiş 161 ms sürdü; engelsiz rotada yanlış alarm oluşmadı.

Google Cartographer, 3×3 simülasyon şehrinin haritasını 0,09 m RMS metrik hatayla oluşturdu. Nav2; Hybrid A* planlama, Regulated Pure Pursuit kontrolü ve davranış ağaçlarıyla rota takibini algılama ve güvenlik katmanlarıyla koordine etti.

Kavşaktaki araç ve LiDAR taramasıyla simülasyon yol ağının Cartographer haritası

Karşılaşılan sorunlar

Birbirine benzeyen yol ve kavşaklar lokalizasyon hatalarına neden oldu. AMCL bazı testlerde aracı engelin içinde konumlandırdı ve planlayıcı rota üretemedi. Cartographer’da da benzer koridorlar boyunca drift oluştu. Ceres solver’daki odometri ve rotasyon ağırlıkları artırılarak haritalama iyileştirildi. Son rota testleri odometri-EKF tabanlı lokalizasyonla tamamlandı; harita üzerinden online lokalizasyon sorunu ayrı bir sınırlama olarak kaydedildi.

Tek bir hedef konumu verildiğinde planlayıcı, yol ağına uymayan kısa yollar seçebiliyordu. Bu nedenle rota, sıralı waypoint’lerle tanımlandı. Waypoint’leri Lanelet2 yol grafiğinden otomatik üretmek sonraki geliştirme adımı.

Sonuç

Sistem düz, sola ve sağa dönüş rotalarını tamamladı; kırmızı ışıkta durdu, yeşilde devam etti ve hız sınırlarına uydu. Statik engeli 1,73 m açıklıkla geçti. Önceden haritada bulunmayan engel testinde iki kez yeniden planlama yaparak 18 waypoint’in tamamına ulaştı; acil durdurma tetiklenmedi.

Tüm sonuçlar Gazebo testlerine ait. Fiziksel araca geçişte sensör gürültüsü, iletişim gecikmeleri ve gerçek araç dinamiği için ayrıca sim-to-real doğrulaması gerekiyor.