Görevler: tut, taşı, bırak
Bu modülde robotuna bir el taktın: gripperi monte ettin, servonun kablolarını bağladın, açı komutu veren kodu yazdın ve kavrama açılarını deneyerek buldun. Şimdi bütün bu parçalar tek bir işte birleşiyor. Bu ders bir toplama parkuru. Robotun yerde duran cisimleri bulacak, kavrayacak, hedefe taşıyacak ve bırakacak. Ama bu sefer tek başına sürüş ya da tek başına gripper yetmiyor; ikisini aynı anda, akıcı biçimde kullanman gerekiyor. İşin sırrı hızda değil, hassasiyette.
Kanca: neden tutmak sürmekten zor? (10 dk)
Şimdiye kadar robotun sadece hareket ediyordu. Bir yere çarparsan geri gider, düzeltir, yola devam ederdin. Kavramada böyle bir lüksün yok. Cismi kaçırırsan devrilebilir, yanlış açıdan yaklaşırsan gripper onu iteler, çok sert kavrarsan servo inler ve cisim fırlar.
Videoyu izledikten sonra sınıfça bir dakika tartışın:
- Robot cismi kavramadan önce neden bir an duruyor? Neden dolu hızla üstüne gitmiyor?
- Bir cismi elinle almak ile robotla aldırmak arasındaki en büyük fark ne? (İpucu: senin gözün ve parmakların var; robotun sadece açı komutun var.)
Bugünkü kural şu: her görevde önce yaklaş ve dur, sonra kavra, sonra taşı. Acele eden puan kaybeder. Robotu bir yarış arabası gibi değil, bir vinç operatörü gibi süreceksin.
Ana etkinlik: toplama parkuru (20 dk)
Önce parkuru kur. Yere bantla bir başlangıç çizgisi çek. Çizgiden 1-2 metre öteye kavranabilir cisimleri dağıt (şişe, küçük kutu, köpük blok). Bir yere de bir hedef kutu ya da bantla çizilmiş bir bölge koy. Amaç basit: cisimleri tek tek toplayıp kutuya taşımak.
Başlamadan önce kodunun tek bir loop'ta hem sürüşü hem gripperi çalıştırdığından emin ol. Bu, önceki derslerde kurduğun iki parçanın birleşmiş hali:
void teleopLoop() {
auto js = probot::io::joystick_api::makeDefault();
float ileri = js.getLeftY();
float donus = js.getRightX();
surMotor(SOL_RPWM, SOL_LPWM, ileri + donus); // suruş: onceki derslerdeki iki satirin aynisi
surMotor(SAG_RPWM, SAG_LPWM, ileri - donus);
if (js.getA()) servoAci(20.0f); // A: gripperi kapat (kavra)
else if (js.getB()) servoAci(110.0f); // B: gripperi aç (bırak)
delay(20);
}
Kavrama (20) ve bırakma (110) açıları senin robotunda farklı olabilir; kalibrasyon dersinde bulduğun kendi değerlerini kullan.
Her cisimden önce tahmin et, sonra dene, sonra gözle. Tahminini kağıda yaz.
Cisim 1 (kolay: şişe): Şişeye yaklaş, dur, kavra, kutuya taşı, bırak. Tahmin: ilk denemede başarabilecek misin, yoksa bir kez kaçıracak mısın? Denedikten sonra gerçekle karşılaştır.
Cisim 2 (yön önemli: küçük kutu): Kutuyu hangi yönden kavrarsan gripper daha iyi tutuyor? Önce dar kenarından, sonra geniş kenarından dene. Hangisi tutuyor, hangisi kayıyor?
Cisim 3 (kaygan: top ya da köpük): Bu en zoru. Yuvarlak ya da hafif cisimler gripper kapanırken kayıp kaçar. Yaklaşımını değiştirmen gerekebilir: daha yavaş yaklaş, tam ortalayarak dur.
Her cisimden sonra kendine tek bir soru sor: kaçırdıysan neden kaçırdın? Yaklaşım açısı mı yanlıştı, çok mu hızlıydın, yoksa gripper açısı mı uygun değildi?
Kavram köprüsü: hizalama ve sıralama (7 dk)
Şimdi durup az önce ellerinle keşfettiğin şeyi adlandıralım. Kavrama işi aslında iki ayrı beceriden oluşuyor ve ikisini karıştırmak en çok puanı burada kaybettiriyor.
Birincisi hizalama: robotu, gripperin cismi tam ortalayacağı konuma ve açıya getirmek. Bu tamamen bir sürüş işi ve robot dururken bitmesi gerekir. Elinle bir şeyi almadan önce elini nasıl doğru yere götürüyorsan, robot da önce doğru yere gelmeli.
İkincisi sıralama: doğru komutları doğru sırayla vermek. Kavramanın tek bir mantıklı sırası var: yaklaş, dur, kavra, taşı, bırak. Bu sırayı bozarsan, örneğin daha kavramadan hareket edersen, cismi düşürürsün. Robotun aynı anda birçok şey yapamaz; her adımı bitirip diğerine geçer.
Buradan çıkan tek cümlelik kural şu: Önce sürüşle hizala, dur, sonra kavra; kavrama bitmeden hareket etme. Kavramayı zorlaştıran neredeyse her sorun, ya kötü hizalamadan ya da bu sırayı bozmaktan gelir. Gerçek robot kollarında da mühendisler tam olarak bu iki şeyi çözmeye uğraşır: nereye gideceğini bilmek ve adımları doğru sırada yapmak.
Uygulama: hassasiyet puanı ve takım yarışı (15 dk)
Hassasiyet turu (kendi skorun)
Şimdi parkuru bir kez daha, ama bu sefer puanlı geç. Kağıda bir çetele tut. Her cisim için puanını şu tablodan al:
| Ne yaptın | Puan |
|---|---|
| Cismi tek denemede kavradın ve kutuya bıraktın | 20 |
| Bir kez kaçırdın ama düzelttin ve bıraktın | 12 |
| Kavradın ama taşırken düşürdün | 6 |
| Cismi hiç kavrayamadın | 0 |
Dört cismi de topla ve toplam puanını yaz. En yüksek 80. Sonra kendine bir kısıt koy ve tekrar dene: bu kez robotu hiç durdurmadan, hareket halinde kavramaya çalış. Puanın ne oldu? Neredeyse herkeste düşer. İşte "önce dur, sonra kavra" kuralının değerini kendi çetelenle görüyorsun.
Takım bayrak yarışı
Bu dersin finali. İki takıma bölünün. Her takımın başlangıç çizgisinde bir yığın cismi (bayrakları) ve bir hedef kutusu olsun. Kronometreyi başlatın: takımlar sırayla robotu sürüp bir cismi toplar, kutuya taşır, bırakır ve robot başlangıca döner; sonra sıra diğer oyuncuya geçer. Bütün cisimleri kutuya ilk taşıyan takım kazanır.
Kural: Düşürülen bir cisim yerinde kalır; onu almak için geri dönmen gerekir. Bu yüzden hızlı ama dikkatsiz sürmek geri teper. Yarışı hız değil, kaçırmamak kazandırır.
Yarıştan sonra tartışın:
- Kazanan takım en hızlı süren miydi, yoksa en az cisim düşüren mi?
- Hangi cisim herkesi en çok zorladı? O cisimde iyi olan takım ne farklı yapmıştı?
Pekiştirme ve öz-değerlendirme (7 dk)
Önce hassasiyet puanına bak. 80 üzerinden kaç yaptın?
| Skor | Ne anlama geliyor |
|---|---|
| 64-80 | Hizalamayı ve sırayı içselleştirdin. Usta. |
| 40-63 | Temeli oturttun; hız ve akıcılık pratikle gelecek. |
| 40 altı | Sorun genelde hizalamadadır: robotu kavramadan önce tam durdurup ortaladığından emin ol. |
Şimdi puanı bir kenara koy ve kendine dürüstçe bak. Her satırda kendine en uygun sütunu işaretle:
| Soru | Başlangıç | Gelişiyor | Ustalaştım |
|---|---|---|---|
| Kavramadan önce robotu hizalayabiliyorum | Denk gelirse | Birkaç düzeltmeyle | Tek yaklaşımda tam |
| Sürüşü ve gripperi birlikte kullanabiliyorum | Sırayla, kafam karışarak | İkisini ayrı ayrı düşünerek | İkisini akıcı, düşünmeden |
| Bir kaçırmanın nedenini bulabiliyorum | Bilemiyorum | Deneyerek buluyorum | Bakar bakmaz teşhis ediyorum |
| Kavrama açımı ayarlayabiliyorum | Hazır değeri kullanıyorum | Deneyerek düzeltiyorum | Cisme göre bilinçle seçiyorum |
Günlük hayat bağı: Bir cismi tutup taşıyan robot kolları hayatının her yerinde. Fabrikada bir kutuyu banttan alıp palete dizen kollar, bir depoda ürün toplayan robotlar, hatta ameliyatta cerrahın komutlarını hassas hareketlere çeviren kollar hep aynı iki şeyi çözer: doğru yere hizalanmak ve adımları doğru sırada yapmak. Bugün senin çözdüğün problem tam olarak buydu.
Erken bitirene ek görev
Parkuru ve yarışı erken bitirdiysen boş durma:
- Kör toplama: Bir cismi robota arkan dönükken, yalnız bir arkadaşının sözlü yönlendirmesiyle kavrat. Hizalamanın ne kadar zor olduğunu bambaşka hissedersin.
- İstif görevi: İki cismi üst üste koy. İkincisini birincinin üstüne bırakmak, düz zemine bırakmaktan çok daha hassas bir hizalama ister.
- Yükseklik oyunu: Cismi yerden değil, alçak bir kutunun üstünden almayı dene. Yaklaşım açın nasıl değişmek zorunda kalıyor?
Modül kapanışı: neyi başardın?
Bu, Servo ve Gripper modülünün son dersiydi. Baştan buraya kadar şunları yaptın:
- Servonun sürüş motorundan farkını, yani bir açıya gidip orada tutmasını, hem açıkladın hem kullandın.
- Gripperi ve MG995 servoyu robota monte ettin.
- Servonun gücünü kart pininden değil, robotun 5V regülatöründen alarak doğru bağladın.
- Butonla gripperi açıp kapatan kodu yazdın ve kavrama açılarını deneyerek buldun.
- Sürüşü ve kavramayı tek bir loop'ta birleştirip gerçek bir tut-taşı-bırak görevini tamamladın.
- Ve en önemlisi: bir cismi kavramanın hızdan değil, hizalama ve sıralamadan geçtiğini kendi çetelenle gördün.
Robotun artık dünyaya dokunabiliyor. Ama şu ana kadar robotun sana hiçbir şey söylemedi: hangi hızda gittiğini, hangi butona bastığını, gripperin hangi açıda olduğunu ekranda göremedin. Bir sonraki modülde robotuna bir ekran veriyorsun. Robot artık ne yaptığını sana yazacak; bu da hem hataları bulmayı hem de daha akıllı davranışlar kurmayı kökten kolaylaştıracak.