- Active Branches: noetic, humble, jazzy, main(rolling)
- Legacy Branches: *-devel
- turtlebot3
- turtlebot3_msgs
- turtlebot3_simulations
- turtlebot3_manipulation
- turtlebot3_manipulation_simulations
- turtlebot3_applications
- turtlebot3_applications_msgs
- turtlebot3_machine_learning
- turtlebot3_autorace
- turtlebot3_home_service_challenge
- hls_lfcd_lds_driver
- ld08_driver
- open_manipulator
- dynamixel_sdk
- OpenCR-Hardware
- OpenCR
- ⚙️ ROBOTIS DYNAMIXEL
- 📚 ROBOTIS e-Manual for Dynamixel SDK
- 📚 ROBOTIS e-Manual for TurtleBot3
- 📚 ROBOTIS e-Manual for OpenMANIPULATOR-X
- 🎥 ROBOTIS YouTube Channel
- 🎥 ROBOTIS Open Source YouTube Channel
- 🎥 ROBOTIS TurtleBot3 YouTube Playlist
- 🎥 ROBOTIS OpenMANIPULATOR YouTube Playlist
Bu proje, TurtleBot3 (Waffle Pi) robotunun engellerden kaçarak hedefe ulaşmasını sağlayan Continuous Control (Sürekli Kontrol) tabanlı bir Derin Pekiştirmeli Öğrenme (Deep RL) mimarisidir. Endüstri standardı Soft Actor-Critic (SAC) ve zaman/hafıza ilişkisi için LSTM sinir ağları kullanılmıştır.
Sistemi başlatmak için 4 ayrı terminal açın ve aşağıdaki komutları sırasıyla çalıştırın:
Robotun içinde eğitileceği fiziksel dünyayı (Aşama 3) başlatır.
ros2 launch turtlebot3_gazebo turtlebot3_dqn_stage3.launch.py###2. Hakem ve Kurallar (Environment)
Robotun ödül ve cezalarını hesaplayan, engelleri ve hedefi belirleyen çevreyi başlatır. Bash
ros2 run turtlebot3_dqn dqn_environment###3. Yapay Zeka Beyni (SAC + LSTM Ajanı)
Robotun kontrolünü sağlayan ve öğrenme matrislerini güncelleyen ana sinir ağını başlatır. (Sondaki '3' rakamı, 3. Aşama haritası içindir). Bash
ros2 run turtlebot3_dqn sac_lstm_agent 3###4. Hareketli Engellerin Kontrolü (Gazebo Node)
Aşama 3'teki hareketli sütunlara hız komutları göndererek ortamı dinamik ve zorlu hale getirir. (Sondaki '3' rakamı, 3. Aşama haritası içindir). Bash
ros2 run turtlebot3_dqn dqn_gazebo 3###5. Telemetri ve Analiz (TensorBoard)
Yapay zekanın eğitim durumunu, Alpha (Merak) sönümlenmesini ve toplam skor grafiklerini anlık olarak tarayıcıdan izlemek içindir.
tensorboard --logdir ~/turtlebot3_ws/src/turtlebot3_machine_learning/turtlebot3_dqn/saved_model/logs_sac(Çalıştırdıktan sonra tarayıcınızda http://localhost:6006 adresine gidin).
##🛠️ Geliştirici İpuçları
Hızlı Derleme Kısayolu: Python (.py) dosyalarında yaptığınız değişikliklerin sistemi her seferinde yeniden derlemeden anında uygulanması için projeyi aşağıdaki bayrakla derleyin:
colcon build --packages-select turtlebot3_dqn --symlink-installSimülasyonu Hızlandırmak: Gazebo açıldığında sol panelden Physics menüsüne gidin ve real_time_update_rate değerini 2000 yapın. (Not: Fizik hataları başlarsa bilgisayar hızınıza göre optimize edin).
Model Kayıtları: Eğitilen modelin ağırlıkları (.keras formatında) her 10 bölümde bir otomatik olarak saved_model klasörüne kaydedilir.
Projenin bir sonraki fazında, ajanın şoförlük kabiliyetlerini ve ödül mekanizmasını stabilize etmek adına aşağıdaki ileri düzey tekniklerin entegrasyonu planlanmaktadır:
Ajanın "korkaklık" (donut çizme) veya "aşırı özgüven" gibi yan yollara sapmasını engellemek için ödül katsayıları (Zaman cezası, Hedef ödülü, Engel riski) Optuna kütüphanesi kullanılarak Bayesian Optimizasyon yöntemiyle otomatik olarak belirlenecektir.
DeepMind tarafından popüler hale getirilen PBT metodu ile:
- Aynı anda farklı ödül katsayılarına sahip birden fazla ajan paralel simülasyonlarda yarıştırılacaktır.
- Başarılı olan ajanların ağırlıkları ve ödül parametreleri (mutasyona uğratılarak) diğerlerine aktarılacaktır.
- Bu sayede dinamik engellere (Stage 3) karşı en dayanıklı "süper ajan" evrimsel süreçle seçilecektir.
Eğitim süresini minimize etmek adına Ray Tune veya Docker Container altyapısı kullanılarak birden fazla Gazebo instance'ının aynı anda çalıştırılması ve merkezi bir Learner üzerinden verilerin toplanması hedeflenmektedir.
