Kanca
Aynı iki satırı ("ev pozisyonuna dön ve bunu yazdır") kodun içinde üç yerde tekrar yazsaydın bir şey yanlış giderdi — o iki satırı BİR kez tanımlayıp istediğin kadar çağırabilirsin. Python'da bunun adı fonksiyon.
Hazır
BoştaBağlantı yalnız bu sahnenin durumunu taşır; hesap veya ad içermez.
Genel 2 eklemli kol — jenerik örnek kol, belirli bir üretici modeline karşılık gelmez. Hesaplanan azami erişim: 1.80 m (bağlantı uzunluklarının toplamı).
Geliştirici ayrıntıları · çalışma sınırları
- azami çalışma süresi
- 8 s
- azami çıktı boyutu
- 64 KiB
- azami çıktı olayı
- 100
- azami eklem izi örneği
- 500
Öğrenme köprüsü
Kavram → Simülasyon → Kod
1. Kavram
Bir fonksiyon hareket tarifini bir kez adlandırır; parametreleri değiştirerek aynı tarifi farklı hedefler için yeniden çağırabilirsin.
2. Simülasyon
Yukarıdaki CodeRunner, eve_don ve koseye_git çağrılarını sırayla uygular; ara hareketleri ve son eklem duruşunu robot üzerinde gösterir.
3. Kod
Kod Akademisi'nde parametre olarak verilen hedef listesini for döngüsüyle gezen tekrar kullanılabilir bir hareket fonksiyonu yaz.
Fonksiyon ve döngü modülünü aç
Ne oldu
def eve_don(): bir fonksiyon TANIMLAR — bu satır tek başına robotu
hareket ettirmez, sadece "eve_don dendiğinde şunlar çalışsın" diye bir
tarif yazar. Tarif ancak eve_don() diye ÇAĞRILDIĞINDA çalışır — kodun
sonundaki üç satır bu çağrıları yapıyor.
koseye_git(x, y) aynı fikrin PARAMETRELİ hali: x ve y, fonksiyon
çağrılırken verilen değerlerin fonksiyonun İÇİNDE hangi isimle anılacağını
belirler. koseye_git(1.0, 0.5) çağrısında x 1.0, y 0.5 olur — aynı
fonksiyonu farklı sayılarla tekrar tekrar çağırıp her seferinde farklı bir
yere gidebilirsin, koseye_git'in TANIMINI hiç değiştirmeden.
Kod robotu son olarak eve_don() ile bitiriyor — bu yüzden otomatik test
son duruşu [0, 0] derece olarak kontrol ediyor, ortadaki koseye_git
çağrısının ara duruşunu değil.
Gerçek dünyada
RAPID'de buna karşılık gelen yapı PROC (procedure) ile tanımlanır:
PROC EveDon() ... ENDPROC, sonra ana programda EveDon; diye çağrılır.
KRL'de benzer yapı DEF/END ile kurulur. Fikir aynı: bir hareket dizisini
bir kez adlandır, istediğin yerde çağır — üretim hattındaki "parçayı al",
"parçayı bırak" gibi tekrar eden diziler neredeyse hep böyle fonksiyon/PROC
olarak yazılır.
Dene
koseye_git fonksiyonunu ÜÇ farklı noktayla art arda çağır (koseye_git(1.2, 0.5), koseye_git(0.3, 1.4), koseye_git(-1.0, 0.8)), en sonda yine
eve_don() ile bitir. Fonksiyon tanımını hiç değiştirmeden kaç farklı
yere gidebildiğini gözlemle.
Sonraki
Hat D'nin üniversite dersleri artık movej/movel'i ileri kinematiğe
(forward_kinematics) ve ters kinematiğe (inverse_kinematics) bağlayarak
altı eksenli bir kolda ele alıyor.