Okullar için Robotik ve Mühendislik · anaokulundan liseye

4. ünite / 10 · 4 saat

Eklem uzayı ve kartezyen hareket: PTP ve LIN

İki nokta arasında iki yol: eklemleri eşzamanlı döndürmek (PTP) ya da TCP'yi doğru çizgide götürmek (LIN). Yamuk hız profili, süre ve başarısızlık hâlleri.

Bu ünitenin sonunda

  • Yamuk hız profilinin süresini mesafe, hız ve ivmeden hesaplamak
  • PTP'nin neden eşzamanlı olduğunu ve TCP izinin eğri olduğunu göstermek
  • LIN'in neden düz çizgi verdiğini ve neden başarısız olabileceğini açıklamak
  • Bir görev için PTP ya da LIN seçmek

Ders notları

Kolu bir noktadan diğerine götürmenin iki temel yolu vardır.

PTP: eklem uzayında hareket

Eklemler başlangıç açılarından hedef açılara eşzamanlı döner: en yavaş kalan eklem süreyi belirler, hepsi aynı anda varır. Hesap ucuzdur, ters kinematik gerekmez ve eklem sınırları içinde kalmak garantidir. Bedeli: TCP'nin izi bir eğridir. Hücredeki A ve B noktalarının üstünde (z = 0,25 m, 0,64 m arayla) PTP, TCP'yi düz çizgiden en çok yaklaşık 8,6 cm saptırır ve yol 0,671 m olur; hareket yaklaşık 0,86 s sürer.

LIN: kartezyen düz çizgi

TCP, iki nokta arasında düz çizgide ve yönelimi düzgün dönerek gider. Her 40 ms'de çizgi üzerindeki ara duruş için ters kinematik çözülür. Aynı A–B hareketi 1,53 s sürer, çünkü kartezyen hız sınırı 0,5 m/s'dir. Bedeli: başarısız olabilir. Çizgi erişim alanının dışına çıkarsa ya da bilek merkezini taban ekseninden geçirirse kol yapılandırma değiştirmek zorunda kalır (iki örnek arasında 20°'den fazla sıçrama); kod bunu lin-flip ya da unreachable hatasıyla bildirir.

Yamuk hız profili

Hareket hızlan, sabit hızla ilerle, yavaşla biçimindedir. Mesafe d, en büyük hız v, ivme a ise: d ≥ v²/a için süre T = d/v + v/a; kısa mesafede tavana varılmaz ve süre T = 2·√(d/a) olur (üçgen profil). Bu dersin sınırları: eklem hızları 2,0; 2,0; 2,5; 3,5; 3,5; 5,0 rad/s, eklem ivmesi 6 rad/s²; TCP 0,5 m/s ve 2 m/s²; dönme 2 rad/s. speed komutu hepsini yüzde olarak ölçekler.

Hangisini ne zaman?

  • Boşta serbest uçuş (engel yok): PTP, hızlı ve güvenli.
  • Parçaya dikey iniş, yapıştırma, kaynak, kesme: LIN, çünkü yol önemlidir.
  • Engelli hücrede serbest uçuş: ikisi de çarpışabilir; 8. ünitedeki planlayıcı.

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.

PTP ve LIN: iki yol, iki iz

A ve B bölgelerinin üstündeki iki duruş arasında eklem uzayı hareketi (PTP, mavi iz) ile kartezyen doğru (LIN, yeşil iz) birlikte çizilir. Süre, TCP yol uzunluğu ve doğrudan en büyük sapma okunur. Hız yüzdesini değiştir; oynat ve kolu iki yolda gör.

Kendin dene

Hareket simülasyonunda A ve B üstündeki iki duruşu seç. PTP ve LIN izlerini birlikte çiz; okuma kutusundaki süre, yol uzunluğu ve doğrudan sapmayı yaz. Hangisi daha hızlı, hangisi daha kısa? Sonra hızı %100'den %25'e düşür: süreler nasıl değişiyor? Son olarak bilek merkezinin taban ekseninden geçeceği iki nokta seç ve LIN'in neden başarısız olduğunu oku.

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.

Python: yamuk hız profilinin süresi ve eşzamanlı PTP
import math
def trapezoid(d, v, a):
    if d <= 0: return 0.0
    if d <= v * v / a:                   # hız tavana varamadan yavaşlar: üçgen
        return 2 * math.sqrt(d / a)
    return d / v + v / a                 # hızlan + sabit + yavaşla
VMAX, AMAX = [2.0, 2.0, 2.5, 3.5, 3.5, 5.0], 6
def ptp_time(q0, q1):
    ts = [trapezoid(abs(b - a), VMAX[i], AMAX) for i, (a, b) in enumerate(zip(q0, q1))]
    return max(ts)                       # en yavaş eklem süreyi belirler, hepsi aynı anda varır
print(trapezoid(2, 1, 4), round(trapezoid(0.1, 1, 4), 3))   # 2.25  0.316
ArmScript: al-bırak: serbest uçuş PTP, iniş LIN
# A noktasından parça al, B noktasına bırak
var ust_a = pose(0.55, -0.32, 0.25)   # A'nın üstü
var al_a = pose(0.55, -0.32, 0.03)    # parçanın tutulacağı yer
var ust_b = pose(0.55, 0.32, 0.25)
var koy_b = pose(0.55, 0.32, 0.03)
open
ptp ust_a          # serbest uçuş: eklem uzayı
lin al_a           # dikey iniş: doğru çizgi
close
lin ust_a
ptp ust_b
lin koy_b
open
lin ust_b
print "tutuyor mu:", holding()

Sık yapılan hatalar

  • PTP'nin TCP'yi düz götürdüğünü sanmak: iz bir eğridir; dar yerlerde bu çarpışma demektir.
  • Her harekete LIN kullanmak: yol önemli olmayan yerde LIN daha yavaştır ve tekilliğe takılabilir.
  • Hız yüzdesinin süreyi ters orantılı değiştirdiğini sanmak: ivme sınırı da ölçeklendiği için %25 hızda süre dört katına değil, örnekteki PTP hareketinde yaklaşık 2,8 katına çıkar; ölç.
  • Kısa hareketlerde tavan hıza çıkılacağını varsaymak: kısa mesafede profil üçgendir.

Yazılım mühendisliği bağlantısı

Hareket planı bir veridir: bir süre ve zamandan duruşa bir işlev. Onu hesaplayan kodla onu yürüten kodu ayır.

  • Bu derste hareket (motion.ts) saf işlevdir; simülasyon yalnızca zamana göre okur. Böylece aynı hareket testte de çizimde de aynıdır.
  • Fiziksel sınırları (hız, ivme) testlerde doğrula: sonlu farkla hesaplanan hiçbir eklem hızı sınırı aşmamalı.

Kendini sına

  1. PTP hareketinde TCP'nin izi neden eğridir?

  2. d = 2 m, v = 1 m/s, a = 4 m/s² için yamuk profilin süresi nedir?

  3. LIN hareketi ne zaman başarısız olur?

  4. Parçanın üstüne dikey inerken hangi komut uygundur?

Macademia'da ilgili

Esc
  • PanelAna sayfaSayfa
  • ModüllerTüm modüllerSayfa
  • ParçalarParça ansiklopedisiSayfa
  • Mühendislik yoluBüyükler için robotik: 128 parça, 7 seviyeSayfa
  • Robotik dersi (ESOF 323)Üniversite robotik dersi, 14 haftaSayfa
  • Drone dersiBüyükler için: parça, simülasyon, yazılım; 10 üniteSayfa
  • Blok atölyesiSerbest blok programlamaAraç
  • Devre laboratuvarıSanal Arduino ve devreAraç
  • Robot arenasıSanal robot sürüşüAraç
  • OyunlarBloklarla 8 öğretici oyunAraç
  • Mikro Kart atölyesiSanal LED kartı bloklarla programlaAraç
  • Robot atölyesiMikro Kart'ı robota tak, bloklarla görev yapAraç