Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitimci tarafından sunulan FRC (FIRST Robotics Competition) takımları için kapsamlı bir teknik eğitim içeriğidir. Konuşmacı, lisans ve yüksek lisans eğitiminde otonom navigasyon üzerine çalışmalar yapan bir uzmandır.
- Video, FRC robotları için otonom navigasyon ve kontrol sistemlerini detaylı şekilde ele almaktadır. İçerik, otonom navigasyonun ne olduğu, FRC yarışmalarındaki önemi, kullanılan sensörler (encoder, kamera, gyroscope/IMU, lidar), PID kontrol sistemi, hareket profili ve trajektör yöntemleri gibi konuları kapsamaktadır. Ayrıca, robotların pozisyonunu hesaplama, simülasyon araçları ve programlama teknikleri de gösterilmektedir.
- Eğitim, teorik bilgilerin yanı sıra uygulamalı örnekler, 2017-2020 yılları arasındaki FRC yarışmalarından örnekler ve çeşitli robot mekanizmalarının simülasyonları içermektedir. Konuşmacı, farklı sensörlerin avantaj ve dezavantajlarını, PID kontrol parametrelerinin nasıl ayarlanacağını ve robotların otonom yolları nasıl programlanacağını adım adım anlatmaktadır.
- 00:14Otonom Navigasyon ve Kontrol Hakkında Giriş
- Sunumda FRC'de takımları bir üst seviyeye çıkartabilecek otonom navigasyon ve kontrol konusu ele alınacak.
- Konuşmacı, navigasyon ve kontrol nedir, neden işinize yarar gibi temel soruları yanıtlayacak ve FRC için yazılmış kütüphaneleri tanıtacak.
- Otonom navigasyon, A noktasından B noktasına robotun kendi kararını vererek hareket etmesidir.
- 02:02Otonom Navigasyonun Önemi
- İyi bir otonom navigasyon sistemi neredeyse her zaman en iyi sürücüden daha iyi sonuçlar verir.
- FRC'de otonom periyodunda yüksek puanlar elde edilebilir, örneğin 2019'da 50 puan yapıp da yenemeyeceğiniz hiç bir maç yoktur.
- FRC, otonom navigasyon için sıralama puanları ve yüksek skorlar vaat ederek bu konuyu çok değerli görüyor.
- 03:01Otonom Navigasyonun Puan Değerleri
- 2017'de normalde 2 puanlık topların 3 katı değerindeydi ve 40 top atmada bir sıralama puanı elde ediliyordu.
- 2018'de terazi ve anahtarı atacağınız küpler 2 kat puan getiriyordu ve otonomda bir sıralama puanı vardı.
- 2019'da otonomda bir hatch takabilirsiniz ve top yerine 5 puan kazanabiliyordunuz.
- 2020'de tamamen iki kat puan verildi ve iyi bir otonom varsa önde başlayabiliyordunuz.
- 04:54Otonom Navigasyonun Pratik Örnekleri
- Video örneklerinde takımların otonom periyodunda ne kadar hızlı topları hedefe ulaştırabildikleri gösteriliyor.
- 2017'de takımlar ilk 15 saniye içinde 30-40 tane top atabiliyor ve sıralama puanı elde edebiliyorlardı.
- 2020'de 20-56 numaralı takımın gösterdiği otonom navigasyon örneğinde, robot hareket ederken atmaya devam edebiliyor.
- 10:07Otonom Navigasyonun Kullanım Alanları
- Otonom navigasyon sadece oyunun ilk 15 saniyesiyle sınırlı değil, sürekli olarak sürücünün düşündüğüne daha az işlem yaptırmaya çalışılır.
- Robotun otomatik olarak hedefe algılayıp bakması, kendi hizalaması ve asansörün yüksekliğini otomatik ayarlama gibi özellikler otonom navigasyonun önemli uygulamalarıdır.
- Kodda hata olmazken, sürücü hata yapabilir veya ayarlaması uzun sürebilir, bu nedenle otonom navigasyon çok daha etkilidir.
- 11:25Otonom Robotlar ve Başarı Örnekleri
- 34,76 numaralı takım, kuruluma öncü olan ve çok başarılı otonom özelliklere sahip bir takımdır.
- Otonom robotlar, sahada kendilerini yönlendirebilir, düşecek topu bekleyebilir ve üstlerine alabilir.
- 971 numaralı takımda daha gelişmiş bir otonom sistem bulunuyor, sürücü neredeyse hiç kullanmadan robot sahada otomatik olarak hareket edebiliyor.
- 12:50Otonom Robot Tasarımında Önemli Farklılıklar
- Aktif hareket eden ve top atabilen robotlar için dönen tabya gibi bir yapı gereklidir.
- Robotun hızı önemli bir faktördür; daha hızlı olunduğunda puan potansiyeli artar.
- Şase hızı yetersiz olduğunda robotun performansı olumsuz etkilenir.
- 13:42Robotun Hareketini Sensörlerle Kontrol Etme
- Robotun belirli bir mesafeye gitmesi için encoder, uzaklık sensörü ve kamera gibi sensörler kullanılabilir.
- Süreye bağlı hareketler tutarsız sonuçlar verir, sensörler yardımıyla daha hassas ve tutarlı hareketler sağlanabilir.
- Encoder, tekerin devir hızını ölçen bir sensördür ve robotun pozisyonunu belirlemek için kullanılır.
- 15:29Encoder Türleri ve Özellikleri
- Manyetik encoder, mıknatısın dönmesini ölçerek tekerin devirini belirler.
- Rotary encoder, sensörün şaftta takılıp dönmesiyle tekerin devirini ölçer.
- Türkiye'de bulmak zor olan encoder'lar, otonom sistem geliştirmek isteyen takımlar için önemli bir altyapıdır.
- 16:54Uzaklık Sensörleri ve Alternatif Çözümler
- Uzaklık sensörleri, robotun arkasına konularak duvardan mesafe ölçümü yapılabilir.
- Ultrasonik sensörler ses dalgası yayarak mesafeyi ölçerken, lazer tabanlı sensörler daha hassas ancak daha pahalıdır.
- Araya bir cisim girerse uzaklık sensörleri bozulabilir, bu nedenle alternatif çözümler gerekebilir.
- 19:04Lidar ve Kamera Kullanımı
- Lidar, robotun çevresinde harita oluşturarak pozisyonunu takip etmesini sağlar.
- Lidar'ı kullanmak için Raspberry Pi gibi güçlü bir işlemci gerekebilir.
- Kamera, robotun pozisyonunu doğrulamak için görüntü işleme yoluyla kullanılabilir.
- 23:28Robot Sensörleri ve Konum Belirleme
- Robot, encoder ile konumunu kaybettiğinde bile görüntüleme hedeflerini gördüğünde konumunu tekrar günceller ve uzun süre aynı hareketleri yapabilir.
- Robotlarda genellikle encoder, kamera ve uzak sensör kombinasyonu kullanılır, ancak uzak sensör aşırı kullanılmamaktadır.
- Gyro (jiroskop) sensörü, açısal hızı ölçen bir sensördür ve robotun kaç derece/saniye veya radyan/saniye hızla kendi etrafında döndüğünü belirler.
- 26:00IMU Sensörü Özellikleri
- IMU (Inertial Measurement Unit - Ataletsel Ölçüm Ünitesi) sensörü paketi içinde jiroskop, ivme ölçer ve manyetometre (pusula) sensörlerini içerir.
- Manyetometre, etraftaki manyetik alandan ölçülen değerler kullanarak gerçek kuzeyin yerini belirler, ancak FRC robotlarında ciddi manyetik gürültü nedeniyle gürültülü veri verir.
- Gyro sensörü açısal hızı ölçer ve bu değerlerin integrali alınarak robotun başlangıç noktasından ne kadar açıyla baktığı hesaplanır.
- 28:17Sensör Kombinasyonu ve Hata Birikimi
- Gyro sensöründen alınan açısal hız değerlerinin integrali alınırken hata birikimi oluşur, Navex gyrolar için 2,5 dakikada yaklaşık 1-1,5 derece hata birikir.
- Encoder'dan pozisyon, gyro'dan açı ve kameradan doğrulama alarak robot otonom hareketler yapabilir.
- Yetenek yarışmalarında otonom çalışacak robotlar için encoder ve kamera kombinasyonu önerilmektedir.
- 35:13Robot Pozisyonu ve Hareket Kontrolü
- Robotun üç metre ileri gitmesi için iki yöntem kullanılabilir: belirli bir süre motorları çalıştırma veya sensörden üç metre verisini okuyana kadar gitme.
- Hata, robotun şu anki pozisyonu ile hedef pozisyonu arasındaki farktır (örneğin 0 metredeyken hedef 3 metre ise hata 3 metredir).
- Hata 3 metreden az olduğunda robot full hızla ileri gidebilir, ancak 3 metreyi gördüğünde durması gerektiği sorun çıkar.
- 36:48Robot Kontrol Sorunları
- Robotlarda patinaj çekmesi veya başka bir robotun çarpması gibi durumlar kaydırma sorunlarına neden olabilir.
- Robotlara hedefe geldiklerinde durma komutu vermek yerine, daha önce fren yapmaya başlamak gerekir çünkü robotun durması bir süre alır.
- Bang bang kontrol (bamkün kontrol) yöntemi, robotun pozisyonunu istediğimiz yere sabitlemek için kullanılır ve robot sürekli ileri-geri hareket ederek hedefe yaklaşır.
- 38:37Bang Bang Kontrol Örneği
- Bang bang kontrol yöntemi, 60-25 takımında hedef hizalamada başarılı atışlar için kullanılmıştır.
- Bu kontrol yöntemi robotu bir yere kadar ortalamasına rağmen, osilasyon (ileri-geri) davranışına sahiptir.
- Sensör hataları nedeniyle robot tam hedefe ulaşamaz, genellikle belirli bir hata payı kabul edilir.
- 42:22PID Kontrol Yöntemi
- PID kontrolü, osilasyon sorununu çözmek için geliştirilmiş bir kontrolcü tipidir ve dünyada en yaygın kullanım alanına sahiptir.
- PID kontrolünde oransal, integral ve türev terimleri bulunur ve bu terimler geri besleme (feedback) üzerinden kontrol edilir.
- PID kontrolünde sensörden gelen veriye göre tepki verilir ve hata sürekli güncellenir.
- 45:58PID Kontrol Parametreleri
- PID kontrolünde P, I ve D değerleri kullanılır ve bu değerler farklı şekillerde kombinasyon halinde kullanılabilir.
- Yükseliş zamanı (rise time), hedefe yaklaşma süresidir ve mümkün olduğunca kısa tutulmalıdır.
- Overshoot, hedefe doğru ayarlanamadığında hedefin üzerinde bir değerden başlayıp sonra hedefe yaklaşma durumudur.
- Steady state hata, sabit zamanlı hata olarak adlandırılır ve genellikle sürtünme veya sensör hatalarından kaynaklanır.
- 48:53PID Kontrol Sistemi
- P kontrolcüsü, şu anki hata değerine göre hız ayarlar; hedefe yaklaştıkça hızı düşürerek over shot (hedefi aşma) ihtimalini ortadan kaldırır.
- D kontrolcüsü, bir önceki hata ile şu anki hata arasındaki farka bakarak fren görevi görür ve P ile D değerlerini uygun şekilde ayarlayarak neredeyse mükemmel bir kontrol elde edilebilir.
- I (integral) kontrolcüsü, toplam hatayı işe katar ve beklenmedik engeller gibi durumlarda sistem ele geçirilir, ancak tehlikeli olabilir çünkü hata birikimi güçlü osilasyonlara sebep olabilir.
- 53:41F Parametresi ve Robot Characterization
- F (ileri besleme) parametresi, robota etki eden bilinen kuvvetleri ve robot ile ilgili öngörülerin atanması için kullanılır, örneğin yerçekimi gibi bilinen kuvvetleri kompanse etmek için.
- FRC'de Robot Characterization aracı, robotun davranışını ölçerek PID değerlerini otomatik olarak belirler ve robotu tamamen modeller.
- İleri besleme, çoğu işi yaparak hataları küçültür ve küçük hataları P ile kolayca kompanse etmek mümkün hale gelir.
- 57:33PID Değerlerinin Ayarlanması
- PID değerlerini ayarlamak için Ziglar-Nikos yöntemi gibi matematiksel yöntemler kullanılabilir, ancak uygulamada çok etkili değildir.
- Elle ayarlama, parametrelerin etkilerini iyi bilmek şartıyla hızlı bir şekilde başarılı olabilir.
- Robot Characterization aracı sayesinde sistem tanımı ve modelleme artık kolayca yapılabilir, bu da PID değerlerinin otomatik olarak belirlenmesini sağlar.
- 1:00:07PID Kontrol Parametreleri
- P değeri artırıldığında sistem daha hızlı yanıt verir ancak overshoot (geçici aşırı geçme) oluşabilir.
- D değeri artırıldığında osilasyonlar azalır ve sistem daha hafifçe sarsılarak hedefe ulaşır.
- P değeri yükseliş zamanını etkileyen bir faktör olduğundan, genellikle tercihen P'yi çok azaltmamaya çalışılır.
- 1:01:15PID Kontrolün Sınırlamaları
- Aynı PID parametreleriyle hem büyük hem küçük hataları aynı anda gidermek mümkün değildir.
- İleri besleme (feedforward) kullanılarak PID değerlerini ayarlamak daha kolay hale gelir ve sistem daha iyi performans gösterir.
- I değeri azaltıldığında sistem daha yavaş yanıt verir ve hata performansı düşer.
- 1:03:20PID Parametre Ayarlaması
- PID parametrelerini ayarlamak için en iyi yöntem, parametreleri değiştirerek ve sonuçları gözlemleyerek öğrenmektir.
- Kafadan atma değerlerle başlayarak, örneğin 5 metre ileri gitmek için P değerini 0,20'den başlatabilirsiniz.
- Başlangıçta yüksek hız verip, giderek yavaşlaması için P ve D değerlerini artırabilirsiniz.
- 1:04:44FRC'de Otonom Navigasyon Teknikleri
- Klasik yöntemde zaman veya sensör verilerine göre zincir şeklinde komutlar verilir (örneğin "on saniye ileri git, beş saniye sağa dön").
- Sensör verileri kullanılarak "motion profiling" adı verilen daha iyi bir yöntem uygulanabilir.
- Motion profiling uygulaması kolay ancak hızlı ve optimal değil, özellikle sensör verileri yoksa işlevsiz kalabilir.
- 1:06:33Motion Control ve Trajektörler
- Motion control, robotun gideceği yolu çizmek ve bu yolu izlemeye çalışmaktır.
- Motion control ile daha kolay kontrol edilebilir, daha az hata var, yumuşak dönüşler yapılabilir ve robot daha hızlı hareket edebilir.
- Motion profiling'da pozisyon, hız ve ivme kontrolü aynı anda yapılarak, hedefe ulaşıldığında hız ve ivmenin sıfır olması sağlanır.
- 1:08:53Path ve Trajektör Kavramları
- Path (yol), robotun gideceği pozisyonları belirlerken, trajektör (yörünge) hem pozisyonu hem de o noktada olması gereken hızı, ivmesi ve zamansal bilgileri içerir.
- Trajektör oluşturma sürecinde önce nereye gitmek istediğimiz belirlenir, sonra yol çizilir ve robotun özelliklerine göre yörünge oluşturulur.
- PathWeaver gibi araçlar kullanılarak trajektörler oluşturulabilir ve bu trajektörler robotlara JSON dosyası şeklinde verilebilir.
- 1:13:46Trajektör Uygulaması
- Oluşturulan trajektör dosyaları robotlara verilir ve robot bu parametreleri izleyerek hareket eder.
- WPILib kütüphanesindeki karakterizasyon parametreleri kullanılarak trajektörler oluşturulabilir.
- Kodda gitmek istenen otonom yollar tanımlanır ve trajektör yapılandırması yapılır.
- 1:15:42Robot Yörüngesi Parametreleri
- Robot yörüngesi için mukase k ve k fit forward parametreleri girilir, bu parametreler karakterizasyondan alınır.
- Robotlara güç verirken 11 volttan fazla verilmemelidir çünkü yüksek voltajda robot beklenen gibi gitmez ve motorlar çalışırken voltaj düşer.
- Kinematik parametreler (tekerler arasındaki mesafe) ve trajektör izleme yönü (düz/ters) gibi konfigürasyon parametreleri de girilmelidir.
- 1:17:09Yörünge Oluşturma ve Takibi
- Robotun maksimum hızı, maksimum ivmesi ve fiziksel özelliklerine göre yörünge konfigürasyonu verilir.
- Yörünge oluşturulduktan sonra, Ramset kontrolü ile PID parametreleri kullanılarak yörünge takibi yapılır.
- Robotun pozisyonunu almak için getposes fonksiyonu kullanılır ve robotun hızı encoder'lerden ölçülen tekerlek hızları ile hesaplanır.
- 1:19:35Odometri ve Robot Pozisyonu
- Odometri, robotun konumunu ve açısını kesin olarak bilen bir yöntemdir.
- Autometre update fonksiyonu ile sol encoder, sağ encoder ve açı okunarak odometri hesaplanır.
- Robotu sürerken genellikle arcade drive yerine voltaj kullanılır çünkü voltaj ile hız sabitlenebilir.
- 1:22:23Projeksiyon ve Trajektör İzleme
- HETView'dan alınan noktalar trajektöre girilir ve robot bu yörüngeyi izler.
- Trajektör izlerken mekanizma kontrolü, top atma gibi ekstra işlemler de yapılabilir.
- Bu işlemler için komut tabanlı programlama kullanılır ve detaylı anlatımı başka bir kaynaktadır.
- 1:24:10Kullanılan Yazılım ve Simülasyon
- Kullanılan yazılım, noktaları hesaplayıp kodu otomatik oluşturur ve GitHub'da açık kaynak olarak paylaşılır.
- Bu yazılım, HETView yerine kullanılır çünkü ne kadar sürede biteceğini gösterir, ters sürme seçeneği sunar ve hız eğrisini gösterebilir.
- Live Visualizer ile robota otonom komut verildiğinde yörüngesinin çizilmesi ve izlenmesi sağlanabilir.
- 1:30:13FRC Simülasyon Teknolojileri
- FRC'de robot karakterizasyonu, robotun yapacaklarını önceden öngörebilmek için yapılan bir süreçtir.
- 2021'de geliştirilen simülasyonlar, robotu joystick ile sürme ve otonom modları çalıştırma imkanı sunmaktadır.
- Simülasyonlar iki boyutlu ve üç boyutlu olmak üzere farklı türlerde mevcuttur.
- 1:31:04Simülasyon Örneği
- 2021 simülasyonunda joystick ile sürülebilen ve otonom modda çalıştırılabilecek bir robot modeli bulunmaktadır.
- Simülasyonda motorlara verilen güç değerleri görsel olarak takip edilebilmektedir.
- Unity üzerinde geliştirilen 68-14 takımının üç boyutlu simülasyonu, sıfırdan robot yapma ve aynı Java koduyla kontrol imkanı sunmaktadır.
- 1:34:06Simülasyonun Avantajları
- İyi bir simülatörden beklentilerden biri, robot kodunu ekstra yazmadan çalıştırabilme imkanıdır.
- Simülasyonda sadece encoder simülatörü, gyro simülatörü ve şase simülasyonu eklenerek robot modeli oluşturulmaktadır.
- Simülasyon periyodik kısmında sahte veriler üretilerek, joystick'e basıldığında robot modeline voltaj uygulandığı gibi veriler elde edilmektedir.
- 1:35:50Otonom Mod ve Özel Ayarlar
- Simülasyonda otonom modda yörüngeler test edilebilmektedir.
- Arkaplan fotoğrafı değiştirilebilmekte ve farklı mekanizmalar için simülasyonlar yapılabilmektedir.
- WP dokümantasyonunda simülasyonun nasıl yapılacağı için rehberlik bulunmaktadır.
- 1:38:26Örnek Projeler ve Kaynaklar
- WP Java örnek projelerinde PID, cyro, robot kontrolü, ultrasonik, encoder ve cahiro ile ilgili örnekler bulunmaktadır.
- Hedge Traditional örneği, mekanizma kontrolü için detaylı bir kod örneğidir.
- FRC'de simülasyon için farklı seçenekler mevcuttur: Unity, kendi simülasyonu, WP'ın kendi simülasyonu ve Synthesis.