Bu proje, TurtleBot3 robotunun özel labirent dünyalarında simülasyonunu ve otonom gezinmesini sağlamak için geliştirilmiş bir ROS 2 paketidir. Proje, robotun haritalama, keşif, yol planlama ve çeşitli kontrol algoritmalarını içeren çok sayıda ROS2 node ve launch dosyası barındırır. Gazebo ile simülasyon desteği ve harita üretimi de mevcuttur.
- TurtleBot3 için labirent tabanlı simülasyon ortamı
- Otonom keşif ve haritalama algoritmaları
- Lidar verisi ile harita oluşturma
- Farklı kontrol ve navigasyon stratejileri
- Çoklu robot desteği ve performans metrikleri
- Kolayca özelleştirilebilir konfigürasyon dosyaları
Aşağıda, pakette bulunan başlıca node'lar ve işlevleri listelenmiştir:
- cartographer.py: Lidar verisiyle harita oluşturur.
- explorer.py: Otonom keşif algoritmasını uygular, robotun bilinmeyen alanları gezmesini sağlar.
- metric_calculator.py: Keşif ve navigasyon performans metriklerini hesaplar.
- nav_pose_goal.py: Robotun hedef pozisyonuna gitmesini sağlar.
- nav_pose_initial_pub.py: Başlangıç pozisyonunu yayınlar.
- nav_pose_path_compute.py: Yol planlama ve yolun yayınlanmasını sağlar.
- twist_bridge_cmd_vel_stamped.py: Hız komutlarını uygun formata dönüştürür.
- wall_fallower.py: Duvar takip algoritması ile robotun haritada gezinmesini sağlar.
Bu algoritmalar explorer bazı işlevlerini yerine getiren alt modüllerdir.
- frontiers.py: Keşif için frontier (sınır) noktalarını belirler.
- navigation.py: Navigasyon yardımcı fonksiyonları.
Her bir launch dosyasının işlevi aşağıda özetlenmiştir:
- maze_world_with_tb3.py: Labirent dünyasında TurtleBot3 ile simülasyonu başlatır.
- maze_world.launch.py: Sadece labirent dünyasını başlatır (robotsuz).
- multi_explorer.launch.py: Çoklu robotla keşif simülasyonunu başlatır.
- multi_metrics.launch.py: Çoklu robotla metrik toplama simülasyonunu başlatır.
- multi_nav2_tb3_simulation.launch.py: Çoklu TurtleBot3 ile Nav2 tabanlı simülasyonu başlatır.
- nav2_tb3_simulation.launch.py: Tek TurtleBot3 ile Nav2 tabanlı simülasyonu başlatır.
- nav2.launch.py: Nav2 navigasyon stack'ini başlatır.
- spawn_tb3.launch.py: TurtleBot3 robotunu simülasyon ortamına ekler.
- Gerekli bağımlılıkları yükleyin:
pip install numpy opencv-python
- Workspace'i derleyin:
cd ~/Desktop/ene_ws source /opt/ros/jazzy/setup.bash colcon build source install/setup.bash
- TurtleBot3 modelini tanımlayın:
export TURTLEBOT3_MODEL=burger - Simülasyonu başlatmak için:
ros2 launch maze_pkg maze_world_with_tb3.py
- Sadece haritayı başlatmak için:
ros2 launch maze_pkg maze_world.launch.py
- Duvar takip algoritması ile robotu kontrol etmek için:
ros2 run maze_pkg wall_fallower
- Lidar ile haritalama yapmak için:
ros2 run maze_pkg cartographer
Harita ve robot parametreleri config/ klasöründeki YAML dosyalarından ayarlanabilir.