Kanca
Bir uçak simülatöründe pilotun burnu tam yukarıyı gösterdiği anda, joystick'in sağa-sola hareketi aniden yukarı-aşağı harekete dönüşüverir. Pilotlar buna "gimbal kilidi" der — Euler açılarının kaçamadığı tek zayıf nokta tam burasıdır.
Sahne
Genel 6 eksenli kol — jenerik örnek kol, belirli bir üretici modeline karşılık gelmez.
Çerçeveler: X kırmızı · Y yeşil · Z mavi · soluk taban · parlak alet
Turuncu halka ve ok: etkin J6 dönme ekseni
Kontroller
TCP: x 0.5 · y 0 · z -0.25 m
Alet RPY: R 180° · P 0° · Y 0°
Ne oldu
Bir katı cismin yönelimini sayılarla ifade etmenin üç ana yolu var, üçü de aynı gerçekliği farklı bedellerle taşır:
Euler açıları (3 sayı): sırayla üç eksen etrafında dönme açısı (ör. roll-pitch-yaw). En sezgisel ve en kompakt gösterim. Ama bir sakıncası var: belirli açı kombinasyonlarında (ikinci eksen 90°'ye geldiğinde) birinci ve üçüncü eksenler ÇAKIŞIR — iki bağımsız dönme, tek bir dönmeye indirgenir ve bir serbestlik derecesi kaybolur. Buna gimbal kilidi denir.
Dönme matrisi (9 sayı): lib/robotics/transform.ts içindeki
rotationX, rotationY, rotationZ fonksiyonlarının ürettiği 3×3
matrisler. Gimbal kilidi YOKTUR, matrisleri çarpmak (multiply) art
arda dönmeleri birleştirmenin dogru yoludur. Bedeli: 3 serbestlik
derecesi için 9 sayı taşınır — 6 sayı FAZLADAN (matrisin ortogonal
kalması gerektiğinden gelen kısıtlar).
Kuaterniyon (4 sayı): karmaşık sayıların genellemesi olan, tek bir "birim" kısıtına (uzunluğu 1) sahip 4 sayılık bir gösterim. Gimbal kilidi yoktur, dönme matrisinden daha az sayı taşır (4'e karşı 9), ve iki yönelim arasında YUMUŞAK ara değer (interpolasyon) almaya en uygun gösterimdir — bu yüzden animasyon ve robot yörünge yazılımlarında tercih edilir.
Gerçek dünyada
Bir robot kontrolörü genelde İÇERİDE dönme matrisi veya kuaterniyon kullanır (hesaplama güvenilir olsun diye), ama kullanıcıya (programcıya) Euler açılarını GÖSTERİR — çünkü "X'e 30°, Y'ye 45°, Z'ye 0° dön" bir insana kuaterniyon bileşenlerinden çok daha anlamlı gelir. ABB ve KUKA gibi kontrolörlerin arayüzleri yönelimi Euler açılarıyla gösterir, robotun kendisi hesaplamaları arka planda dönme matrisleriyle yapar.
Dene
rotationZ(90°)'yi zihninde uygula, sonra rotationX(90°)'yi UYGULA;
şimdi sırayı DEĞİŞTİR — önce X sonra Z. multiply() değişmeli
olmadığı için (bir önceki dersten hatırla) iki sıra FARKLI sonuç
verecek. Bu, Euler açılarının neden "hangi sırada" sorusuna bu kadar
duyarlı olduğunu gösteriyor.
Kaynak kodu: rotationX / rotationY / rotationZ
Sonraki
Hat A burada tamamlanıyor — robotun ne olduğundan (ortaokul) DH parametrelerine ve yönelim gösterimlerine (üniversite) kadar geldin. Hat B ve Hat C'de bu temelleri gerçek hareket ve planlama problemlerine uyguladın; sıradaki hatlarda (programlama, algılama, haberleşme) robotu gerçekten çalıştırmayı göreceksin.