Maker Shawn Hymel, iki tekerlekli, kendi kendini dengeleyen bir robotu klasik bir kontrol algoritması yerine pekiştirmeli öğrenme ile eğitti. Proje, makine öğrenmesiyle üretilen bir kontrol politikasının küçük bir ESP32 kartına taşınabildiğini gösteriyor; yani ileri düzey bir yapay zeka yöntemi, maker donanımıyla çalışabiliyor.
Aşağıda robotun nasıl denge kurduğunu, hangi bileşenlere ihtiyaç duyduğunuzu ve benzer bir düzeneği evde kurmak için gereken bilgi ve becerileri ele alıyoruz.
Pekiştirmeli Öğrenme Nedir?
Pekiştirmeli öğrenme, bir ajanın (burada robotun beyni) bir ortamda deneme yanılma yoluyla öğrendiği bir makine öğrenmesi dalıdır. Ajan aldığı aksiyonların sonucuna göre ödül veya ceza alır ve zamanla en iyi stratejiyi, yani politikayı bulur. Politika, "şu durumda şu aksiyonu uygula" biçiminde bir eşlemedir.
Dengeleyici robot örneğinde ajan, robotun dik kalması için ileri-geri hareket komutları üretir. Robot dengede kaldıkça ödül, devrildiğinde ceza kazanır. Yeterli tekrardan sonra ajan, gövde eğildiğinde tekerlekleri hangi yönde ve ne kadar hızlı süreceğini öğrenir. Bu yaklaşım, önceden elle ayarlanan sabit bir kontrol algoritmasından farklı olarak dış etkilere karşı uyum sağlayabilir.
Öğrenme, bölümlere (episode) ayrılır. Her bölümde robot dik konumdan başlar ve devrilene ya da belirli bir süre ayakta kalana kadar hareket eder. Bölüm bittiğinde toplam ödüle bakılır ve ajan, bir sonraki denemede daha çok ödül toplayacak biçimde davranışını günceller. Ödülün nasıl tanımlandığı sonucu doğrudan etkiler: yalnızca "ayakta kal" demek yerine, gövdeyi dike yakın tutmayı ve gereksiz salınımı cezalandırmayı da ödül fonksiyonuna katmak, daha düzgün bir denge davranışı öğretir. Bu ödül tasarımı, projenin en çok deneme gerektiren kısımlarından biridir.
Ajanın öğrendiği politika, gövdenin durumunu (açı ve açısal hız) bir motor komutuna eşler. Basit bir denge probleminde bu eşleme, bir tabloyla değil, küçük bir yapay sinir ağıyla temsil edilebilir. Eğitim tamamlandığında bu ağın parametreleri sabitlenir ve gerçek robota aktarılır; robot artık öğrenmez, yalnızca öğrendiği politikayı uygular.
Robot Nasıl Denge Kuruyor?
Robotun kontrol merkezi bir ESP32 mikrodenetleyici. ESP32'nin yerleşik Wi-Fi ve Bluetooth desteği, hem eğitim sırasında veri aktarımı hem de çalışırken uzaktan izleme için elverişli.
Denge için robot bir IMU (Atalet Ölçüm Birimi) kullanır. IMU, gövdenin eğim açısını ve açısal hızını sürekli ölçer. ESP32 bu verileri okur, eğitilmiş politikadan gövdenin o anki durumuna karşılık gelen aksiyonu belirler ve motorlara komut gönderir. Motorlar tekerlekleri ileri veya geri sürerek gövdeyi dik tutmaya çalışır; bu döngü saniyede çok sayıda tekrarlanır.
Motorları doğrudan mikrodenetleyici sürmez. Aradaki bir H-köprüsü motor sürücü entegresi, ESP32'nin düşük güçlü sinyallerini motorları çevirecek akıma dönüştürür. H-köprüsü, adını içindeki dört anahtarın oluşturduğu H biçimli düzenden alır; bu anahtarların hangi ikilisinin açıldığına göre motora giden akımın yönü, dolayısıyla dönme yönü değişir. Böylece robot hem ileri hem geri hareket edebilir.
Hız kontrolü ise PWM (Darbe Genişlik Modülasyonu) ile yapılır: sinyalin dolu kalma oranı (görev döngüsü) değiştikçe motora giden ortalama güç, dolayısıyla hız değişir. Görev döngüsü yüzde yüze yaklaştıkça motor tam hızda döner, düşük değerlerde ise yavaşlar. Denge kontrolünde bu döngü çok hızlı tekrarlandığı için, robot gövdesinin her küçük eğilmesine neredeyse anında karşılık verilebilir. Kontrol döngüsünün yeterince sık çalışması, dengeleyici robotların kararlılığı için kritiktir; döngü yavaşlarsa robot düzeltmeyi geç yapar ve salınmaya başlar.
Robotun enerjisi genellikle LiPo (lityum polimer) bataryadan gelir. LiPo hücreler hafif olmaları ve yüksek anlık akım verebilmeleri sayesinde hareketli robot uygulamaları için uygundur.
IMU ve Açı Kestirimi
Denge kontrolünün doğruluğu, büyük ölçüde gövde açısının ne kadar temiz ölçüldüğüne bağlıdır. IMU genellikle bir ivmeölçer (accelerometer) ile bir jiroskop (gyroscope) barındırır. İvmeölçer yer çekimini referans alarak açı verir ancak robot hareket ettiğinde titreşim ve ivmelerden etkilenip gürültülü okur. Jiroskop ise açısal hızı ölçer; kısa vadede çok kararlıdır ama zamanla küçük hataları biriktirerek kayar (drift).
Bu iki kaynağın güçlü yanlarını birleştirmek için genellikle bir tümleyici (complementary) filtre veya Kalman filtresi kullanılır. Tümleyici filtre, jiroskobun kısa vadeli kararlılığını ivmeölçerin uzun vadeli referansıyla harmanlar; sonuçta hem gürültüsü düşük hem de kaymayan bir açı kestirimi elde edilir. Pekiştirmeli öğrenmeyle eğitilen politika, bu temiz açı ve açısal hız değerlerini girdi olarak kullanır. Sensör verisi ne kadar güvenilirse, öğrenilen politika da o kadar tutarlı davranır.
Simülasyondan Gerçeğe Aktarım
Politikanın doğrudan gerçek robot üzerinde eğitilmesi hem yavaş hem risklidir; her devrilme donanıma zarar verebilir. Bu nedenle eğitim çoğunlukla bir simülasyon ortamında yapılır. Sanal robot binlerce kez düşüp kalkarak politikayı öğrenir, ardından bu politika fiziksel robota yüklenir.
Bu yönteme sim-to-real (simülasyondan gerçeğe) aktarım denir. Avantajı, tehlikesiz ve hızlı bir eğitim sürecidir. Zorluğu ise simülasyon ile gerçek dünya arasındaki farktır: sürtünme, motor gecikmesi ve sensör gürültüsü gibi etkenler tam modellenemediğinde, politika gerçek robotta ince ayar gerektirebilir.
Bu farkı azaltmak için sık kullanılan bir yöntem, eğitim sırasında simülasyon parametrelerini rastgele değiştirmektir. Kütle, sürtünme veya sensör gecikmesi gibi değerler her bölümde biraz farklı seçildiğinde, ajan tek bir ideal duruma değil, geniş bir koşul aralığına dayanıklı bir politika öğrenir. Gerçek robot bu aralığın içine düştüğünde politika daha kolay çalışır. Yine de gerçek dünyada küçük bir kalibrasyon veya ödül ayarı çoğu zaman gerekir; bu, yöntemin doğal bir parçasıdır.
Gerekli Bileşenler
Benzer bir robotu kurmak için ihtiyaç duyacağınız temel parçalar ve örnek modeller aşağıdaki tabloda özetlenmiştir.
| Bileşen | Görevi | Yaygın örnekler |
|---|---|---|
| Mikrodenetleyici | Sensör okuma, politika çalıştırma, motor komutu | ESP32-DevKitC, NodeMCU-32S |
| IMU sensörü | Eğim açısı ve açısal hız ölçümü | MPU-6050, MPU-9250 |
| Motor sürücü | Sinyalleri motor akımına çevirme | L298N, DRV8833, TB6612FNG |
| DC motorlar | Tekerlekleri sürme | Enkoderli veya düz DC motor |
| Güç kaynağı | Robotun beslemesi | 2S veya 3S LiPo + şarj cihazı |
| Şasi ve tekerlekler | Mekanik yapı | 3D baskı parça veya hazır kit |
Bunlara ek olarak prototipi kurmak için breadboard, jumper kabloları ve bağlantı malzemeleri gerekir. Liste asgari bir düzeneği tanımlar; enkoderli motor veya daha güçlü bir sürücü seçerek performansı artırabilirsiniz.
Öne Çıkan Yönler
- Öğrenme tabanlı kontrol: Robot sabit bir PID yerine öğrenilmiş bir politika kullandığından, dış etkilere karşı daha uyarlanabilir davranabilir.
- ESP32 üzerinde çalışma: Eğitilmiş politika, küçük ve ucuz bir kartta gerçek zamanlı çalışacak kadar hafif olabiliyor; Wi-Fi ve Bluetooth izleme kolaylığı katıyor.
- Güvenli geliştirme: Eğitimin simülasyonda yapılması, donanımı riske atmadan çok sayıda denemeye olanak tanır.
- Erişilebilir donanım: Kullanılan parçalar kolay bulunur ve programlanır; bu da düzeneğin tekrarlanabilirliğini artırır.
- Genişletilebilirlik: Temel yapı, farklı sensör veya davranışlar eklenerek nesne takibi ya da engelden kaçınma gibi görevlere taşınabilir.
Bu proje aynı zamanda klasik ve öğrenme tabanlı kontrolü karşılaştırmak için iyi bir zemin sunar. Aynı robotu önce elle ayarlanan bir PID döngüsüyle, sonra öğrenilen bir politikayla çalıştırıp iki yaklaşımın dış itmelere ve zemin değişimlerine tepkisini gözlemleyebilirsiniz. Böyle bir karşılaştırma, pekiştirmeli öğrenmenin hangi durumlarda avantaj sağladığını, hangi durumlarda ise iyi ayarlanmış bir PID'in yeterli olduğunu somut biçimde gösterir.
Gereken Beceriler
Projeyi baştan sona uygulamak birkaç alanda temel bilgi ister:
- Python: Pekiştirmeli öğrenme algoritmalarını simülasyon ortamında kurmak ve eğitmek için kullanılır.
- C++ / Arduino IDE: ESP32'yi programlamak ve politikayı karta yerleştirmek için gerekir.
- Temel elektronik: Bileşenleri doğru bağlamak, motor sürücü ve besleme bağlantılarını kurmak için şarttır.
- Robotik temelleri: Motor kontrolü ve sensör okuma gibi kavramlara aşinalık süreci belirgin biçimde kolaylaştırır.
Bu becerilerin hepsine baştan sahip olmanız şart değil; proje, öğrenerek ilerlenebilecek bir yapıdadır. Örneğin simülasyon tarafına Python ile başlayıp donanım entegrasyonunu adım adım eklemek, hem yükü dağıtır hem de her aşamada neyi öğrendiğinizi görmenizi sağlar. Eksik olduğunuz konuları projenin ihtiyaç duyduğu noktada çalışmak, sıfırdan geniş bir teori öğrenmekten çoğu zaman daha verimlidir.
Kimler İçin Uygun?
- Maker ve hobiciler: Klasik denge kontrolünün ötesine geçmek isteyenler için iyi bir meydan okuma.
- Öğrenciler: Mühendislik, bilgisayar bilimi veya mekatronik öğrencileri için pekiştirmeli öğrenmeyi fiziksel bir sistemde deneme fırsatı.
- Yapay zeka meraklıları: Bir öğrenme algoritmasının simülasyondan gerçek donanıma nasıl aktarıldığını uygulamalı görmek isteyenler.
- Eğitmenler: Görsel ve somut bir örnek olduğu için yapay zeka ve robotik derslerinde gösterim projesi olarak kullanılabilir.
Nasıl Başlanır?
Bileşenlerin çoğu online elektronik mağazalarından veya yerel tedarikçilerden bulunabilir. Yazılım tarafında, simülasyon ve eğitim için Python tabanlı kütüphaneler (örneğin ortam kurulumu için Gym benzeri araçlar ve TensorFlow ya da PyTorch), ESP32 tarafında ise Arduino kütüphaneleri kullanılır. Bu tür projelerin kodu ve dokümantasyonu genellikle kişisel bloglarda veya açık kaynak depolarda paylaşılır; bu kaynaklar başlangıç için önemli bir avantaj sağlar.
İlk kez denerken en pratik yol, önce robotu mekanik olarak kurup IMU okumasını ve motor kontrolünü ayrı ayrı doğrulamaktır. IMU'dan gelen açının robotu elle eğdiğinizde doğru işareti ve büyüklüğü verdiğinden, motorların da beklenen yönde döndüğünden emin olun. Bu iki temel yanlışsa, en iyi politika bile robotu ayakta tutamaz.
Sık karşılaşılan sorunlar arasında motor yönünün ters bağlanması, IMU'nun gövdeye gevşek montajı nedeniyle titreşim okuması ve besleme voltajının motor akımı çekildiğinde düşmesi sayılabilir. Gövdeyi olabildiğince rijit yapmak, ağırlık merkezini tekerlek ekseninden biraz yukarıda tutmak ve batarya ile motor sürücü arasına yeterli kapasitör koymak, bu sorunların çoğunu azaltır. Bu adımlar çalıştıktan sonra eğitilmiş politikayı yükleyip ince ayar yapmak daha kolaydır. Düzenek çalışır hale geldiğinde robotu bir nesneyi takip edecek veya engellerden kaçacak biçimde genişletebilirsiniz.
Sık Sorulan Sorular
Pekiştirmeli öğrenme tam olarak nedir?
Bir ajanın bir ortamda deneme yanılmayla öğrendiği makine öğrenmesi dalıdır. Ajan, aksiyonlarının sonucuna göre ödül veya ceza alarak en iyi politikayı bulur. Süreç, bir çocuğun düşe kalka bisiklet sürmeyi öğrenmesine benzetilebilir.
Bu projeyi evde kendim yapabilir miyim?
Evet. Temel elektronik bilginiz ile Python ve Arduino programlama becerileriniz varsa, benzer bir robot kurabilirsiniz. Bileşenler kolay bulunur; asıl emek eğitim ve ince ayar aşamasında harcanır.
ESP32 yerine başka bir kart kullanabilir miyim?
Kullanabilirsiniz, ancak ESP32'nin yerleşik Wi-Fi ve Bluetooth'u eğitim ve izleme sırasında veri aktarımını kolaylaştırır. Arduino Uno veya Raspberry Pi Pico gibi kartlarda kablosuz iletişim için ek modül gerekebilir ve işlem gücü farkı yaşanabilir.
Eğitim ne kadar sürer?
Süre; simülasyonun hızına, ödül fonksiyonunun ne kadar iyi tasarlandığına ve kullanılan algoritmaya bağlı olarak değişir. İyi kurulmuş bir simülasyonda denge gibi görece basit bir görev, modern bir bilgisayarda makul sürede öğrenilebilir. Asıl zaman, çoğu kez ödül tasarımını ve simülasyon parametrelerini doğru ayarlamak için yapılan denemelerde harcanır. Gerçek robota geçtikten sonraki ince ayar da ayrıca zaman ister.

Yorumlar 0
Yorum Bırakın