10. ünite / 10 · 4 saat
Bitirme hazırlığı: paletleme hücresi
Bütün parçaları birleştir: ArmScript ile engelli bir hücrede parçaları alıp bir palet düzenine yerleştiren, ölçülen ve test edilen bir program.
Bu ünitenin sonunda
- Bir hücre görevini ölçülebilir gereksinimlere çevirmek
- Programı yordamlara bölüp plan, lin ve tutucu komutlarını birleştirmek
- Bir programı sayılarla (süre, parça, düşürme, plan sayısı) doğrulamak
- Sonuçları rapor ve sunuma dökmek
Ders notları
Bu ünitede yeni konu yoktur: ilk dokuz üniteyi bir paletleme görevinde birleştirirsin. Görev: duvarlı hücrede alma bölgesindeki üç parçayı al, duvarın üstünden ya da çevresinden taşı ve bırakma bölgesinde bir palet düzenine yerleştir.
Başlangıç programı
Bitirme örneği (simülasyonda "bitirme" seçeneği) tasi(x, y, px, py) yordamıyla bir parçayı alır ve palet noktasına koyar: plan ile yaklaşma noktasına, lin ile dikey iniş ve kalkış, close ve open ile tut ve bırak. Bir for döngüsü üç parçayı sırayla işler; palet noktaları 0,5 + 0,09·(i % 2) ve 0,28 + 0,09·floor(i / 2) ile 2x2 düzenin hücrelerinden üçünü verir.
Ölçümler
Programı çalıştırınca şunlar ölçülür: tutulan ve bırakılan parça sayısı (3 ve 3), düşürme (0), plan komutu sayısı (6), toplam benzetim süresi (yaklaşık 24 s) ve çıktı satırı ("parts moved: 3"). Bu sayılar bitirme projesinin kabul ölçütleridir.
Genişletme fikirleri
- Palet düzenini 3x3'e çıkar, ama hücrede yalnız üç parça olduğundan parça sayısını da artırman gerekir.
- Süreyi kısalt:
planyerine duvar olmayan yarıdaptp,speedayarı. - Bir yasak bölge ekle ve programın ona girmediğini göster.
- Her adımda
holding()denetle ve başarısızlıktahaltet.
Rapor
Raporun bölümleri: gereksinimler, mimari (yordamlar, hareket türü seçimi), ölçümler (yukarıdaki sayılar), sınırlar (çarpışma modeli yaklaşıktır, güvenlik öğretim modelidir) ve sonraki adım. Sunumda programı canlı çalıştır ve bir hatayı bilerek üretip iletisini göster.
Simülasyon
Öğretim modeli: sanal kol bu dersin kendi modelidir. Uzuv ölçüleri, eklem sınırları, hız ve ivme değerleri ve güvenlik eşikleri bu sayfadaki kodda tanımlı ders sabitleridir; hiçbir robot üreticisinin ürünü, dili ya da eğitim içeriği değildir ve ders resmî bir üretici eğitimi değildir. Gerçek bir hücrede ölçüler üreticinin belgelerinden, güvenlik değerleri risk değerlendirmesinden gelir.
ArmScript: yaz, çalıştır, 3B sahnede izle
Platformun kendi robot dili. Örnek seç ya da kendi programını yaz, Çalıştır'a bas: yorumlayıcı programı tarayıcıda, sınırlı adımla koşturur, konsola çıktıyı ve hatayı satır numarasıyla yazar, sonucu 3B sahnede oynatır. Sunucuda hiçbir şey çalışmaz.
Kendin dene
Simülasyonda "bitirme" örneğini çalıştır ve okuma kutusundaki sayıları kaydet: parça, düşürme, plan, süre. Sonra bir parçayı gerçekten düşür (bırakma yüksekliğini artır) ve düşürme sayısının değiştiğini kaydet. Son olarak programı değiştir: palet düzeninde üçüncü parçayı farklı bir noktaya koy ve çarpışma ya da erişim hatasına yol açan bir değer bul; iletisini rapora ekle.
Kod
ArmScript bloklarını ArmScript simülasyonuna yapıştırıp tarayıcında çalıştırabilirsin. Python blokları yalnızca standart kütüphane kullanır; kendi bilgisayarında çalıştır.
# bitirme: paletleme, 2x2 düzen, duvar aşılarak
proc tasi(x, y, px, py)
open
plan pose(x, y, 0.25)
lin pose(x, y, 0.03)
close
lin pose(x, y, 0.25)
plan pose(px, py, 0.25)
lin pose(px, py, 0.03)
open
lin pose(px, py, 0.25)
end
var n = 0
for i = 1 to 3
call tasi(item_x(i), item_y(i), 0.5 + 0.09 * (i % 2), 0.28 + 0.09 * floor(i / 2))
n = n + 1
end
print "taşınan parça sayısı:", n# A ile B arasında duvar var: yük taşırken plan kullan
var ust_a = pose(0.55, -0.32, 0.25)
var al_a = pose(0.55, -0.32, 0.03)
var ust_b = pose(0.55, 0.32, 0.25)
var koy_b = pose(0.55, 0.32, 0.03)
open
plan ust_a # çarpışmasız yol iste
lin al_a
close
lin ust_a
plan ust_b # duvarın üstünden ya da çevresinden
lin koy_b
open
lin ust_b
print "bitti, parça B'de"Sık yapılan hatalar
- Hepsini tek parça yazmak: yordamlara böl, her yordamı ayrı dene.
- plan komutunu her harekete koymak: dikey inişte lin, serbest uçuşta plan ya da ptp, yolun önemi neye göre seçilir.
- Ölçüm almadan "çalışıyor" demek: süre, parça ve düşürme sayısını her değişiklikten sonra kaydet.
- Sınırları raporlamamak: çarpışma modeli yaklaşık, güvenlik öğretim modelidir; bunu açıkça yaz.
Yazılım mühendisliği bağlantısı
Bitirme projesi bir kabul testi setidir: gereksinim, ölçüm, eşik. Bu dersin kodunda aynı yapı testlerde vardır: bitirme programı için "üç parça, altı plan, çarpışmasız kareler, üç farklı palet hücresi".
- Programı değiştirdiğinde ölçümleri yeniden al: eski sayılara güvenme.
- Hata iletisi de bir çıktıdır: sunumda bilerek bir hata üretip iletisini göstermek programı anlattığını kanıtlar.
Kendini sına
Bitirme programında plan komutu neden kullanılır?
Dikey iniş ve kalkışlar için hangi komut seçilir?
Bitirme örneği bittiğinde okunan beklenen sayılar hangileridir?
Raporda hangisi mutlaka belirtilmelidir?
Bu üniteden sonra bitirme projesinde
- Rapor ve sunum: Gereksinimler, mimari, ölçümler (parça, düşürme, plan, süre), sınırlar; canlı çalıştırma ve bilerek üretilmiş bir hata.
