holodepth

Sistemler · Mekanik · Adım 9

Robot Kol Kinematiği

Tork dağılımı ve PID dilinin üzerine oturur: soru “kim ne kadar tork alır?” veya “hatayı nasıl kapatırım?” değil eklem açıları ile uç konum nasıl bağlanır? Reach Bench’te FK → IK → workspace zincirini canlı okursunuz.

Önceki adım: Hidrolik Basınç · Kontrol köprüsü: PID Kontrol · Paylaşım kardeşi: Tork Dağılımı

Robot kol kinematiği nedir?

Bir robot kol, eklemler (çoğu zaman dönel) ve bağlantılardan oluşur. Kinematik, kuvveti bir kenara bırakıp şunu sorar: eklem açıları verildiğinde uç efektör (gripper, kalem, kamera) nerede ve hangi yönde durur? Konum zinciri, güç zinciri değildir.

Tipik sahneler: pick-and-place, kaynak kolu, 3D yazıcı gantry’sine benzer konum zinciri, basit eğitim robotu. Ortak soru iki yönlüdür açılar → konum ve hedef konum → açılar.

Kinematics ile dinamik karışmasın. Dinamik kütle, atalet, tork ister; kinematik önce cetvel ve açı ile konuşur. Byteomi’de önce geometriyi sabitlemek, sonra tork / PID katmanını giydirmek daha temizdir.

Tork dağılımı “kim ne kadar alır?” der; kinematik “uç nereye gider?” der. PID “hatayı kapat” der; kinematik çoğu zaman o hatanın konum uzayında mı yoksa eklem uzayında mı ölçüldüğünü ayırır.

Eğitimde sade model: iki bağlantılı düzlemsel kol (2R). Uzunluklar L1, L2; eklem açıları q1, q2; uç (x, y). Altı serbestlikli endüstriyel koldan çok daha sadedir; fakat “ileri / ters” dilinin tamamı burada doğar.

Giriş sayfasındaki “davranış odaklı simülasyon” burada şöyle okunur: bir kaydırıcıyı çevir, ucun gittiği yeri izle; sonra hedef koy, eklemlerin nasıl çözüldüğünü tartış.

Var: ileri kinematik, ters kinematik sezgisi, çalışma alanı, basit tekillik uyarısı, simülasyon deneyleri, yaygın tuzaklar.
Yok (bilinçli): tork–hız takası (dişli), salınım (yay-sönümleyici), yol–konfor (süspansiyon), P/I/D yeniden anlatımı (PID), çok yollu tork paylaşımı (tork dağılımı), fren mesafesi (fren), drone tutumu (drone), basınç–çarpan (hidrolik).

Hedefimiz ROS / MoveIt kurulumu değil; açı–konum haritasını okumak. q değişince uç nasıl kıvrılır? Hedef uzaktaysa çözüm var mı? Bu sorular kinematik sezgisinin başlangıcıdır.

İyi alışkanlık: her denemede önce eklemleri (q1, q2), sonra uç (x, y)’yi, sonra “erişilebilir mi?” bayrağını okuyun. Yalnızca 3D animasyona bakmak, sayıyı kaçırır.

Seri eklemli kol (bu sayfa) ile paralel robot / delta mekanizma farklıdır. Eğitimde seri 2R yeterlidir; paralel yapıyı “başka bir aile” diye kenara bırakın.

İleri kinematik

x = L1·cos(q1) + L2·cos(q1+q2) ····· y = L1·sin(q1) + L2·sin(q1+q2)

İleri kinematik (FK): eklem değişkenleri verildiğinde uç efektör pozisyon (ve gerekirse oryantasyon) hesaplanır. q1 omuz (veya taban) açısı, q2 dirsek açısıdır. İkinci kosinüs / sinüs toplam açısı kullanır: dirsek, omuzun üzerine “eklenmiş” bir dönüştür.

FK’nin güzel yanı: çoğu zaman tek ve düzgün bir cevabı vardır. Açıları bilirsiniz, uç tek noktaya oturur (bağlantı uzunlukları sabitken).

Mini kontrol (Açık önayarı civarı): L1 = 1, L2 = 0,8, q2 ≈ 0 → uç r ≈ L1+L2 = 1,8 kol neredeyse tamamen açık. q2 ≈ 180° → uç tabana yakın / katlanmış. Bu iki uç, sezginin kalibrasyonudur Tezgâhta Açık ve Katlı önayarları tam bunu gösterir.

Dişli oranı “giriş → çıkış tork/hız” paketler; FK “giriş açı → çıkış konum” paketler. İkisi de ileri yönde rahattır; ters yön ayrı hikâyedir.

Neden önce FK? Ters kinematiğe atlamak, “hedef koydum, çözüm yok / iki çözüm var” karmaşasıyla başlar. Önce FK ile kolun nasıl kıvrıldığını görün; sonra hedef sorusuna geçin. Pratik ayrım: FK: biliyorum, hesaplarım · IK: istiyorum, çözerim.

Oryantasyon (uç açısı) 2R’de çoğu zaman q1+q2 ile gelir. Eğitimde önce (x, y) konumunu sabitleyin; “uç hangi yöne bakıyor?” sorusunu ikinci kata bırakın.

Ters kinematik sezgisi

c2 = (r² − L1² − L2²) / (2·L1·L2) ····· |c2| ≤ 1 → reachable ····· q2 = ±acos(c2)

Ters kinematik (IK): uç efektörün istenen pozisyonu verildiğinde eklem açılarını bulur. Bu, “şu noktaya git” komutunun matematiksel kapısıdır.

2R kol için hedef (x*, y*) erişilebilir aralıktaysa genelde iki çözüm vardır: dirsek yukarı / dirsek aşağı (elbow up / down). Aynı uç, farklı eklem pozlarıyla ulaşılabilir tek cevap yoktur. Tezgâhta Dirsek ↑ / ↓ düğmeleri bu iki adayı değiştirir; ghost kol alternatif çözümü gösterir.

Eğitim sezgisi için kosinüs yasası yeterlidir: hedefe olan uzaklık r iken |c2| > 1 ise hedef erişilemez. Bu tek satır, “neden çözüm yok?” sorusunun kalbidir Hedef dışı önayarı bunu canlı gösterir (OUT bayrağı).

Sayısal solver’lar (Jacobian, optimizasyon) gerçek 6-DOF’ta gereklidir. Bu sayfada solver yazmayız; “erişilebilirlik + çoklu çözüm” dilini kurarız. Detaylı nümerik IK sonraki katmandır.

PID ile ilişki: eklem uzayında PID her qi için açı hatasını kapatır; görev uzayında (x–y) PID uç hatasını kapatır. İkisi farklı haritalardır. Kinematik, bu iki uzay arasında köprüdür PID sayfası kazancı öğretir, burası haritayı öğretir.

Hangi çözümü seçmeli? Dirsek yukarı / aşağı arasında seçim çoğu zaman engel kaçınma, eklem limitleri veya “önceki pozisyona yakınlık” ile yapılır. Eğitimde iki çözümü de görün; “tek doğru açı seti” sanmayın.

Eklem limitleri (qmin…qmax) matematiksel çözümü pratikte keser. “IK buldu ama motor oraya gidemez” senaryosu gerçek hayata en yakın tuzaklardan biridir bu tezgâhta limit yok; ama sezgiyi unutturmayın.

Unutmayın: IK konum sorusudur; “o noktada ne kadar tork lazım?” dinamik / tork sorusudur. İkisini peş peşe sormak doğaldır; bu sayfada yalnızca birinciyi derinleştiririz.

Çalışma alanı ve tekillik

rmax = L1 + L2 ····· rmin = |L1 − L2| ····· r ∈ [rmin, rmax]

Workspace = mümkün uç noktalar kümesi. İki bağlantılı kol için (engel yokken) çalışma alanı kabaca bir halka / disk dilimidir. Hedef bu bandın dışındaysa IK çözülmez violet halka tezgâhta tam bu bandı çizer.

Tekillik (singularity) eğitim sezgisi: kol tamamen açık veya özel hizalanmışken bazı yönlerde “hareket üretememe” veya Jacobian’ın kötü koşullu olması. Basit cümle: bazı pozlarda küçük uç hareketi için eklemlerin çılgın hızlarla dönmesi gerekir veya hiç üretemezsiniz. Tezgâhta SING bayrağı q2 ≈ 0 civarını işaret eder.

Tam açık kol (q2 ≈ 0) çoğu zaman kötü bir çalışma bölgesidir: uç radyal yönde zorlanır. Operatör / planlayıcı çoğu zaman “dirsek biraz kırık” bölgede çalışmayı tercih eder Dirsek kırık önayarı bu tercihi gösterir.

Engeller çalışma alanını delik delik eder. Bu sayfa çarpışma planlama öğretmez; ama “matematiksel erişilebilir ≠ pratik erişilebilir” cümlesini unutturmaz.

Hidrolikte Pmax tavanı vardı; kolada workspace tavanı vardır. Niyet (“şu noktaya git”) tavanı aşınca mucize olmaz hedefi veya uzunlukları değiştirmek gerekir.

Kontrol ve tork köprüsü (sınır): tekillik civarında aynı uç hızı için eklem hızları şişebilir; tork / akım limitleri de şişer. Bu, tork ve PID sayfalarına kapı açar ama Jacobian spektrumu burada çözülmez.

Simülasyonda başarı: hedefi workspace dışına koyup “çözüm yok” görmek; sonra tam açık poza getirip “hassas kontrol zor” sezgisini tartışmak. Tara düğmesi q2 tarar ve erişilebilir örnek sayısını HUD’da sayar.

Simülasyonda ne izlenir?

Tezgâh Reach Bench’tir: taban → L1 (çelik) → dirsek (amber) → L2 → uç (cyan) + violet workspace halkası. Tipik girişler: q1, q2, L1, L2 (FK) veya hedef x*, y* (IK). Tipik çıkışlar: x, y, r, reachable / OUT, SING, çözüm sayısı (1 veya 2).

Tek seferde hem uzunlukları hem iki açıyı hem hedefi oynamayın. Byteomi döngüsü tek değişken ister: önce sabit L ile q kaydırın (FK); sonra sabit L ile hedef gezdirin (erişilebilirlik); en sonda L değiştirip halkayı büyütün / küçültün. Özellikle q, (x,y), r ve reachable’ı not alın yalnızca “uç hareket etti” demek, nedeni gizler.

  • Deney 1 FK turu. L sabitleyip q2 kaydırın. Ucun bir yay çizdiğini görün. Sonra q2 sabitleyip q1 döndürün tüm kolun döndüğünü izleyin. Başarı: hangi açının neyi hareket ettirdiğini ayırmak.
  • Deney 2 Tam açık / katlı. Açık ve Katlı önayarlarını karşılaştırın. Maksimum erişim (r ≈ rmax) ile minimum erişim (r ≈ rmin) sezgisini doğrulayın. Başarı: r bandını readout’tan okuyabilmek.
  • Deney 3 Hedef dışarı. Hedef dışı önayarı veya IK’de x*’yi halka dışına çekin. OUT / reachable=false görün. Sonra hedefi içeri çekip Dirsek ↑ / ↓ ile iki çözümü tartışın. Başarı: “aynı uç, iki eklem poza” cümlesini kurmak.
  • Deney 4 Tara + tekillik. FK’de Tara’yı açın; erişilebilir örnek sayısını izleyin. Açık pozda SING bayrağını görün “tam açık = en güçlü” tuzağını kırın.

Önayar notu: Açık q2≈0 / SING civarı; Katlı yüksek q2 / rmin yakını; Dirsek kırık rahat çalışma bölgesi; Hedef dışı IK + OUT. Sıfırla Açık’a döner; Tara q2 taramasını açar / kapatır.

Reach Bench

Sol sahne: çelik kol, amber dirsek, cyan uç, violet workspace, IK’de hedef halkası ve ghost alternatif. Sağ şerit: x–y iz (violet halka + cyan trail). Formül satırı FK çekirdeğini; readout x,y,r,q ve REACH/OUT · SING · elbow etiketlerini yazar.

Byteomi mekanik · CANLI · Reach bench

x = L1·cos(q1)+L2·cos(q1+q2) · IK: |c2|≤1 · r ∈ [|L1−L2|, L1+L2]

violet = workspace · cyan = uç / hedef · trail = iz

REACH / 2R

1) FK + q₂ kaydır → yay. 2) Açık vs Katlı → r_max / r_min. 3) IK + Hedef dışı → OUT; içeri çekip Dirsek ↑/↓. 4) Tara: q₂ tarama + erişilebilir sayım; SING’te “tam açık = güçlü” tuzağını kırın.

2R ileri kinematik + güvenli q₂ taraması üretim robot kodu değil; açı → konum zincirini görmek içindir (UI aynı denklemleri besler):

// Robot kol  2R FK + q2 taraması (MAX_STEPS)
const MAX_STEPS = 24;
const L1 = 1.0, L2 = 0.8, q1 = Math.PI / 4;
const rMax = L1 + L2, rMin = Math.abs(L1 - L2);
let reachableCount = 0;
for (let step = 0; step < MAX_STEPS; step++) {
  const q2 = -Math.PI + (2 * Math.PI * step) / (MAX_STEPS - 1);
  const x = L1 * Math.cos(q1) + L2 * Math.cos(q1 + q2);
  const y = L1 * Math.sin(q1) + L2 * Math.sin(q1 + q2);
  const r = Math.hypot(x, y);
  if (r >= rMin - 1e-9 && r <= rMax + 1e-9) reachableCount++;
}
// IK sezgi: c2 = (r*r - L1*L1 - L2*L2) / (2*L1*L2); reachable = |c2| <= 1

Sezgi tuzakları

Aşağıdaki tuzaklar soyut slogan değil; tezgâhta bir düğme / bayrak ile kırılır. Her cümlede önce iddiayı, sonra Reach Bench’te ne göreceğinizi okuyun.

  • “IK her zaman tek çözüm verir.” Hayır. Erişilebilir bir (x*, y*) için genelde iki poza vardır. IK modunda hedefi violet halkanın içine koyun; readout’ta “çözüm 2” ve sahne HUD’unda ghost kol görünsün. Dirsek ↑ / ↓ ile aynı uca iki eklem seti gittiğini izleyin. Hedef dışı önayarında ise çözüm sıfırdır OUT bayrağı “hiç yok” dilini gösterir.
  • “Kinematik = tork hesabı.” Hayır. Reach Bench yalnızca q → (x, y) ve (x*, y*) → q çözer; amber dirsek ve cyan uç “kuvvet” değil konum işaretidir. Tork / yük sorusu tork dağılımı sayfasının işidir burada pasta dilimlenmez, harita çizilir.
  • “Bu, PID’nin yerine geçer.” Hayır. IK size “hangi açılara git?” der; PID “o açıya / o uca ne kadar hızlı kapan?” der. Tezgâhta q kaydırıcıları anında poz verir kapalı döngü yok, kazanç yok. Köprü: PID “hata hangi uzayda?” sorusunu sorar; burası o uzayı tanımlar.
  • “Uç animasyonu yeter, sayı gerekmez.” Hayır. Cyan trail güzel görünür ama “neden yetişemedi?” cevabı readout’tadır: r, r ∈ [rmin, rmax], REACH / OUT. Hedef dışı’nda uç hareket etmeyebilir; OUT olmadan spekülasyon yaparsınız.
  • “Tam açık kol en güçlüsüdür.” Hayır çoğu zaman en kötü kontrol bölgesidir. Açık önayarını seçin (q2 ≈ 0): readout’ta SING, dirsekte amber pulse. Uç radyal yönde “sıkışmış” hissi verir. Dirsek kırık önayarı ile karşılaştırın; operatör sezgisi çoğu zaman “biraz kırık dirsek” tarafındadır.
  • “Workspace halkası dekorasyondur.” Hayır. Violet dış halka rmax = L1+L2, iç halka rmin = |L1−L2|. L1 / L2 kaydırınca halka büyür / küçülür; IK’de hedefi dışarı çekince OUT gelir. Hidrolikteki Pmax tavana benzer: niyet tavanı aşınca mucize olmaz.
  • “Tara her modda aynı işi yapar.” Hayır. Tara yalnızca FK’dedir; q2’yi güvenli adımlarla tarar, HUD’da “erişilebilir n/N” sayar. IK’ye geçince Tara kapanır çünkü sürücü artık hedef (x*, y*)’dir, q2 kaydırıcısı değil. Tarama izi (cyan trail) workspace bandının görsel kanıtıdır, IK solver değildir.
  • “Ghost kol gerçek pozisyondur.” Hayır. Ghost, seçili dirsek çözümünün alternatifidir (↑ varken ↓ veya tersi). Asıl kol seçili çözümü taşır; ghost “öteki poza da mümkün” diye durur. İkisini karıştırmak, yanlış q setini motorlara yazmak demektir.
  • “Hidrolik / dişli ile aynı şey.” Hayır. Onlar kuvvet / tork paketler; burası açı–konum haritasıdır. Formül satırındaki cos / sin “çarpan” değil geometridir. Kardeşlik “ileri yön rahat, ters yön ayrı hikâye” cümlesinde kalır ortam farklıdır.
  • “6-DOF bilmeden 2R öğrenmek zaman kaybı.” Hayır. Reach Bench’te gördüğünüz FK tek cevap / IK çoklu veya yok / workspace tavanı / tekillik uyarısı, 6-DOF dilinin çekirdeğidir. DH, Jacobian, MoveIt sonraki kattır; burada bilinçli olarak yok.

Tezgâh kontrol listesi (cebimize üç + bir): FK: q → (x,y), IK: (x*,y*) → q(lar) · Dirsek ↑↓, REACH/OUT · SING · violet halka, ghost = alternatif, Tara = FK taraması.

Mekanik seri: hidrolik (basınç / çarpan) → bu sayfa (kinematik / konum zinciri). Seriyi birleştiren fikir: güç paketleme → dinamik → kontrol → paylaşım → enerji eritme → denge → basınçla kuvvet iletimi → geometri / konum zinciripiston / krank–biyel.

İsterseniz PID’ye dönüp “hata hangi uzayda?” cümlesini yenileyin; veya tork’a dönüp “konum çözüldü, şimdi kim ne kadar alır?” köprüsünü hatırlayın. Önce Reach Bench’te Açık → Dirsek kırık → Hedef dışı → Dirsek ↑/↓ turunu bir kez daha yapın tuzaklar o turda kırılır.