ROS 2 ile Otonom Araç Simülasyonu Geliştirme

Gerçek Zamanlı Robotik Uygulamalar için Sanal Bir Dünya

Giriş

Otonom sistemlerin geliştirilmesinde simülasyon ortamları kritik bir rol oynar. Bu yazıda, Gazebo ve ROS 2 tabanlı bir simülasyon ortamını nasıl kurduğumu, robotun nasıl modellendiğini, sensörlerin nasıl entegre edildiğini ve karar mekanizmasının nasıl çalıştığını anlatacağım.

1. Kullanılan Teknolojiler

2. Robot Modeli ve SDF Yapısı

Aracımızı tanımlamak için SDF (Simulation Description Format) kullandım. Aracın gövdesi, tekerlekleri ve sensörleri bu yapıda belirtildi.


<sensor name="camera" type="camera">
  <camera>
    <horizontal_fov>1.396</horizontal_fov>
    <image>
      <width>640</width>
      <height>480</height>
    </image>
  </camera>
</sensor>
    

3. Diff Drive Plugin Entegrasyonu

Aracın hareket etmesi için diff_drive_controller eklendi. Sağ ve sol tekerlekler aşağıdaki şekilde tanımlandı:

Ayrıca TF dönüşüm zinciri için odom_frame ve base_link tanımları yapıldı.

4. Sensörlerin ROS 2 ile Kullanımı

Lidar, kamera ve IMU gibi sensörler ayrı node olarak ROS 2 içerisinde çalıştı. Her biri belirli topic’lere veri gönderdi:

Bu veriler Python ile yazılan karar mekanizmasında işlendi.

5. Karar Mekanizması

decision_maker.py dosyasında; kamera görüntüsünden alınan sarı şerit, Lidar ile nesne tespiti ve IMU verisi birlikte analiz edilerek bir hareket kararı üretildi. Bu karar /cmd_vel topic’ine gönderildi.

Kamera, Lidar ve IMU ile karar süreci

6. TF (Transform) Yapısı

Aracın pozisyonunun tüm bileşenler tarafından tutarlı şekilde bilinmesi için TF zinciri şu şekilde kuruldu:

Sonuç

Gerçek bir aracı riske atmadan otonom sistem geliştirmek isteyen herkes için ROS 2 ve Gazebo büyük bir olanak sağlıyor. Bu proje sayesinde yalnızca yazılım geliştirmeyi değil, aynı zamanda sistem mimarisini de bütünsel şekilde öğrendim.

📩 Görüşünü Paylaş | 🔗 LinkedIn