• Nie Znaleziono Wyników

Zastosowanie kwaternionów do opisu mechanizmów wieloczłonowych

N/A
N/A
Protected

Academic year: 2021

Share "Zastosowanie kwaternionów do opisu mechanizmów wieloczłonowych"

Copied!
9
0
0

Pełen tekst

(1)

Zastosowanie kwaternionów do opisu mechanizmów wieloczłonowych

Kiril Kravchuk 6 listopada 2018

1 Wstęp

1.1 Definicja kwaternionów

Kwaterniony (daw. czwarki Hamiltona) – struktura algebraiczna (liczby) będąca rozszerzeniem ciała liczb zespolonych. Kwaterniony zostały wprowadzone przez irlandzkiego matematyka Williama Hamiltona w 1843 [1] i służyły opisowi mechaniki w przestrzeni trójwymiarowej.

Współczesna matematyka traktuje kwaterniony jako czterowymiarową, unormowaną algebrę z dzie- leniem nad liczbami rzeczywistymi. Algebra kwaternionów jest oznaczana przez H od pierwszej litery nazwiska twórcy. Zajmuje ona specjalne miejsce w algebrze, ponieważ zgodnie z twierdze- niem Frobeniusa jest jednym z trzech skończenie wymiarowych pierścieni z dzieleniem zawierających liczby rzeczywiste jako podpierścień.

1.2 Konstrukcje kwaternionów

Jest kilka sposobów konstruowania kwaternionów[9].

Kwaternion jako macierz zespolona

Kwaterniony zdefiniowane są jako macierze z przestrzeni M2×2(C) postaci:

 z w

−w z



, gdzie z, w ∈ C.

Podstawowe własności:

• suma dwu kwaternionów jest kwaternionem:

 z w

−w z



+ x y

−y x



=

 z + x w + y

−(w + y) z + x



• iloczyn dwu kwaternionów jest kwaternionem:

 z w

−w z



· x y

−y x



=

 zx − wy zy + wx

−(zy + wx) (zx − wy)



• dla kwaternionu q 6= 0 istnieje kwaternion odwrotny do q zadany wzorem:

q−1=

 z w

−w z

−1

= |z|2+|w|1 2 · z −w

w z



(2)

• macierz jednostkowa i zerowa są kwaternionami

1 0 0 1



, 0 0 0 0



• mnożenie kwaternionów nie jest przemienne:

 i 0 0 −i



· 0 1

−1 0



6=  0 1

−1 0



· i 0 0 −i



Kwaternion jako para liczb zespolonych

W tej konstrukcji każdy kwaternion jest parą pewnych liczb zespolonych: q = (z, w), gdzie z, w ∈ C.

W tym zbiorze definiuje się działania:

• dodawanie:

(z, w) + (x, y) = (z + x, w + y)

• mnożenie:

(z, w) · (x, y) = (zx − wy, zy + wx)

Te dwie struktury są izomorficzne. Wynika to z tego, że zdefiniowana tu para liczb zespolonych jest pierwszym wierszem w macierzy definiującej kwaterniony, a pierwszy wiersz kwaternionu ma- cierzowego jednoznacznie określa całą macierz.

Kwaternion jako macierz rzeczywista

a b −d −c

−b a −c d

d c a b

c −d −b a

, dla a, b, c, d ∈ R.

Kwaternion jako suma algebraiczna

Kwaterniony w tej konstrukcji[2] mają postać:

q = (s, m) = s + x · i + y · j + z · k, gdzie s, x, y, z ∈ R zaś i, j, k są symbolami pewnych zmiennych Dodawanie i mnożenie na tych sumach wykonujemy jak na wielomianach czterech zmiennych e, i, j, k, przy czym mnożenie „zmiennych” i, j, k z uwzględnieniem ich kolejności określa poniższe definicje:

i2= j2= k2= −1

i · j = k, j · k = i, k · i = j j · i = −k, k · j = −i, i · k = −j Zgodnie z definicją kwaternionów q1 i q2:

q1= (s1, m1) = s1+ x1i + y1j + z1k q2= (s2, m2) = s2+ x2i + y2j + z2k Dodawanie jest zdefiniowane następująco:

q1+ q2= (s1+ s2, m1+ m2) = (s1+ s2) + (x1+ x2)i + (y1+ y2)j + (z1+ z2)k (1) Mnożenie skalarne (·):

q1· q2= s1· s2+ m1· m2 (2)

(3)

Mnożenie kwaternionów (⊗):

q1⊗ q2= (s1· s2− m1· m2, s1· m2+ s2· m1+ m1∧ m2) (3) Mnożenie kwaternionów jest łączne, ale nie jest przemienne.

Dla każdego kwaternionu istnieje kwaternion sprzężony q oraz odwrotny q−1 (oprócz kwaternionu zerowego):

q= (s, −m) (4)

q−1= (1

|q|)2q (5)

gdzie:

|q|2= s2+ x2+ y2+ z2= q ⊗ q= q⊗ q (6)

1.3 Reprezentacja rotacji

Rotacje[2] defioniowane są za pomocą kwaternionów jednostkowych. Kwaternion jednostkowy ma

|q| = 1. Iloczyn dwóch kwaternionów jednostkowych będzie kwaternionem jednostkowym. Z tego wynika, że za pomocą jednego kwaternionu można przedstawić N rotacji: cR= qR1·qR2·qR3·...·qRN. Za pomocą iloczynu kwaternionów można obracać wektor. W tym celu należy zdefiniować trój- wymiarowy wektor V = (vx, vy, vz) który zostanie obrócony jak qv = (0, v) = 0 + vxi + vyj + vzk.

Obrócony wektor V0 = (vx0, v0y, v0z) zdefiniowany jest następująco qv0 = (0, v0) = 0 + vx0i + vy0j + vz0k.

Zauważając, że qR−1= qR ( dla kwaternionu jednostkowego) qv0 można wyznaczyć następująco:

qv0 = qR⊗ qv⊗ qR−1= qR⊗ qv⊗ qR (7) Dwie rotacje wektora V są przedstawione poniżej:

qv0 = pR⊗ (qR⊗ qv⊗ qR−1) ⊗ p−1R (8) cR= pR⊗ qR co oznacza: qv0 = cR⊗ qv⊗ c−1R

Dane równanie pokazuje, że wektor jest obrócony najpierw rotacją opisaną w qRa później pR.

2 Dualne kwaterniony (DK)

Dualne kwaterniony zostały zaproponowane przez William Kingdom Clifford’a w 1873 roku. Są one rozszerzeniem kwaternionów. Reprezentują one zarówno rotacje, jak i translacje, których po- łączenie definiowane jest jako sztywna transformacja. Są one reprezentowane przez następujący 8-wymiarowy wektor:

ˆ

q = (ˆs, ˆm) = (s, x, y, z, s, x, y, z) = (ˆs, ˆx, ˆy, ˆz) (9) ˆ

q = q + q= s + x · i + y · j + z · k + (s+ x· i + y· j + z· k) Mnożenie dualnych kwaternionów:

q1 ⊗ ˆˆ q2 = q1 ⊗ q2 + (q1 ⊗ q2+ q1⊗ q2) (10) gdzie 2= 0.

Kwaternion sprzężony ma postać:

ˆ

q = q − q (11)

Korzystając ze wzoru powyżej wynika, że kwaternion odwrotny ma postać:

ˆ q−1=1

qˆ=1 q− q

q2 (12)

Korzystając z zależności (4),(9) i (11) można pokazać:

ˆ

q= (s, −x, −y, −z, −s, x, y, z) (13)

(4)

2.1 Rotacje

Wzór na transformację DK jest zdefiniowany, podobnie jak zwykła transformacja kwaternionów (7), czyli jako ciąg mnożeń:

ˆ

qv0= ˆqR⊗ ˆqv⊗ ˆqR

= ( ˆqR⊗ ˆqv) ⊗ ˆqR

= ˆqR⊗ ( ˆqv⊗ ˆqR

) (14)

Niech DK przedstawia tylko obrót w przestrzeni 3D (q = 0, ˆqR = ˆq = q = R). Za jego pomocą można wykonać rotację wektora ~v = (vx, vy, vz) w przestrzeni.

ˆ

qv = 1 + (vxi + vyj + vzk)

Korzystając z zależności (14) można dokonać obrotu wektora ~v, gdzie ˆqv0 przedstawia postać DK wektora po rotacji ~v0= (vx0, v0y, v0z).

ˆ

qv0 = 1 + (vx0i + vy0j + vz0k) Ponieważ q= 0, to ˆq= q i ˆ

q ⊗ ˆqv⊗ ˆq= q ⊗ ˆqv⊗ q, to wtedy można zrobić rozwinięcie do postaci:

qˆv0 = q ⊗ (1 + (vxi + vyj + vzk)) ⊗ q

= q ⊗ q+ q ⊗ (vxi + vyj + vzk) ⊗ q

= 1 + q ⊗ (vxi + vyj + vzk) ⊗ q

= 1 + (v0xi + vy0j + vz0k)

Ostatecznie porównując wyniki dostaniemy:

(v0xi + v0yj + vz0k) = q ⊗ (vxi + vyj + vzk) ⊗ q

2.2 Translacje

Dualne kwaterniony też reprezentują rotacje. Dualny kwaternion zdefioniowany jako ˆ

qT = 1 + 

2(txi + tyj + tzk)

odnosi się do wektora translacji ~T = (vxi + vyj + vzk)) który można skrótowo zapisać jako T . Stąd ˆ

qT = 1 + T 2

Translacja T na wektorze ~v można obliczyć w sposób następujący: ˆqv0= ˆqT ⊗ ˆqv⊗ ˆqT

. Korzystając z powyższych definicji otrzymujemy ˆqT

= ˆqT = 1 + T2

ˆ

qv0 = ˆqT ⊗ ˆqv⊗ ˆqT = [1 + 2(txi + tyj + tzk)] ⊗ [1 + (vxi + vyj + vzk] ⊗ [1 +2(txi + tyj + tzk)]

= 1 + [(vx+ tx)i + (vy+ ty)j + (vz+ tz)k]

Ostatecznie po translacji wektor ma postać:

~v0= (vx+ tx)i + (vy+ ty)j + (vz+ tz)k

2.3 Kombinacja rotacji i translacji

Dwie transformacje zaprezentowane powyżej można połączyć w jeden dualny kwaternion ( podobnie jak we wzorze (8) dla kwaternionów ). Zakładając, że ˆp i ˆq to dwie transformacji DK a q(v to wektor pozycji mamy następującą zależność:

ˆ

qv0= ˆp ⊗ (ˆq ⊗ ˆqv⊗ ˆq) ⊗ ˆp = (ˆp ⊗ ˆq) ⊗ ( ˆqv) ⊗ (ˆq⊗ ˆp) (15) W celu uzyskania bardziej zwartego zapisu używa się polączoną transformację c:

ˆc = ˆp ⊗ ˆq ⇒ ˆqv0= ˆc ⊗ qv⊗ ˆc

Należy zauważyć, że najpierw jest wykonywana najbardziej wewnętrzna transformacja równania, a póżniej kolejne, aż się dojdzie do zewnętrznej. W naszym przypadku (15) pierwszą transformacją jest ˆq a drugą ˆp.

(5)

Rotacja i translacja jednostkowego DK

Po połączeniu jednostkowej rotacji DK: ˆqR= qRi jednostkowej translacji DK:

ˆ

qT = 1 + (txi + tyj + tzk) otrzymamy:

ˆ

qT ⊗ ˆqR= (1 +

2(txi + tyj + tzk)) ⊗ qR= qR+ 

2(txi + tyj + tzk) ⊗ qR (16) To oznacza, że każdy dualny kwaternion można rozdzielić na dwie części: jedną odpowiadającą za rotację i drugą odpowiadającą za translację.

ˆ

q = q + q= qR+

2(txi + tyj + tzk) ⊗ qR= R + T R 2

Odwrotność ˆq będzie równa ˆq−1 = (R + T R2 )−1 = R− R2T Dokonując prostych przekształceń można pokazać że translacja ˆqT można przedstawić jako 2q· q. q = 2(txi + tyj + tzk) ⊗ qR2q⊗ qR= (txi + tyj + tzk)

⇒ 2q⊗ q= (txi + tyj + tzk)

Jeśli najpierw jest dokonywana translacja to:

ˆ

q = R + RT 2

3 Równanie kinematyki robota szeregowego

Jednostki robotów przemysłowych jako manipulatorów łączone są ze sobą za pomącą par kinema- tycznych. Człony można łączyć w sposób szeregowy, równoległy lub hybrydowy. Człony robota szeregowego tworzą otwarty łańcuch kinematyczny. Czyli jeden jego koniec jest na stałe przymo- cowany do bazy, a drugi wyposażony w efektor. Ilość napędów potrzebna do określenia położenia efektora w przestrzeni nazywa się liczbą stopni swobody[2].

3.1 Zadanie proste kinematyki w notacji DK

Aby rozwiązać zadanie proste kinematyki robota szeregowego wykorzystuje się system określany jako notacja Denavita-Hartenberga, która wykorzystuje 4 parametry. są to: kąt skręcenia członu, długość członu, odsunięcie przegubu oraz kąt przegubu.

Rysunek 1: Uproszczony model 2D[8]

Każda transformacja pomiędzy sąsiednimi układami współrzędnych opisana jest jako złożenie czte- rech podstawowych transformacji[8]:

Ti−1i =Ri−1i Di−1i

0 1



= Rotz,θiT ransz,diT ransx,aiRotx,αi (17)

(6)

Podobnie jest w notacji DK, transformacja pomiędzy sąsiednimi układami jest iloczynem 4 dualnych kwaternionów odpowiadających za poszczególne transformacje:

qi−1,i= qrot(z, θi)qtrans(z, di)qtrans(x, ai)qrot(x, α)i) (18) Indeksy ’rot’ i ’trans’ oznaczają czy dana transformacja jest czystą rotacją czy czystą translacją.

Dla czystej rotacji wektor translacji jest równy zero, czyli qrot = qrot. Czysta translacja wygłada następująco: qtrans= 1 + 2t.

Zatem zadanie proste kinematyki n-tego ramia robota sprowadza się do policzenia:

q = q01q12...qn−1,n (19)

3.2 Macierz Jakobiego w notacji DK

Dla każdego manipulatora robota z n przegubami, równanie kinematyki które wiąże wektor pręd- kości efektora X0 z wektorem prędkości przegubów θ0 wygląda następująco:

X0= J(θ)θ0 (20)

Macierz Jakobiego J(θ) jest równa: J(θ) = dX

W notacji dualnych kwaternionów równanie (20) można zapisać jako:

ˆ

q = J (q)θ0 Macierz Jakobiego jest równa:

J (q) = q = d

q1 q2 q3 q4 q5 q6 q7 q8

=

dq1

1· · · dq1 .. n

. . .. ...

dq8

1· · · dq8

n

 (21)

gdzie q = [q1 q2 q3 q4]T,q0= [q5 q6 q7 q8]T. q i q0stanowią dwie części dualnego kwater- nionu ˆq = q + q0.

4 Kinematyka robota 3R

W tej części zostanie wyznaczone równanie kinematyki robota 3R (Rys. 2):

• metodą Denavita-Hartenberga (DH)

• metodą dualnych kwaternionów (DK)

Wszystkie trzy przeguby są obrotowe. Dla robota 3R parametry DH są przedstawione w tabeli poniżej.

H10 H21 He2 ai L1 L2 L3

αi 0 0 0

di 0 0 0

θi θ1 θ2 θ3

Tabela 1: Parametry DH robota

(7)

Rysunek 2: Model robota 3R[3]

4.1 Kinematyka w notacji Denavita-Hartenberga

Metoda Denavita-Hartenberga wymaga oddzielnego układu współrzędnych dla każdego przegubu, efektora oraz bazy. Transformację pomiędzy sąsiednimi układami można przedstawić jako[3]:

Hii−1=

cos θi − sin θi 0 aicos θi sin θi cos θi 0 aisin θi

0 0 1 0

0 0 0 1

; i = 1, 2, 3

Transformacja globalna ma postać:

He0=

cos(θ1+ θ2+ θ3) − sin(θ1+ θ2+ θ3) 0 a14 sin(θ1+ θ2+ θ3) cos(θ1+ θ2+ θ3) 0 a24

0 0 1 0

0 0 0 1

gdzie

a14= L1cos θ1+ L2cos(θ1+ θ2) + L3cos(θ1+ θ2+ θ3) a14= L1sin θ1+ L2sin(θ1+ θ2) + L3sin(θ1+ θ2+ θ3) Stąd pozycja końcowa efektora w układzie bazowym będzie równa:

qv0,e=

L1cos θ1+ L2cos(θ1+ θ2) + L3cos(θ1+ θ2+ θ3) L1sin θ1+ L2sin(θ1+ θ2) + L3sin(θ1+ θ2+ θ3)

0 1

(8)

4.2 Kinematyka w notacji dualnych kwaternionów

W danym robocie αi = 0 oraz di = 0 dla i = 1, 2, 3. Na podstawie parametrów z tabeli 1 poszczególne transformacje w notacji DK będą wyglądać następująco[3]:

qR0,1=

 cosθ21

0 0 sinθ21

0

L1 2 cosθ21

L1 2 sinθ21

0

, qR1,2=

 cosθ22

0 0 sinθ22

0

L2 2 cosθ22

L2 2 sinθ22

0

, q2,eR =

 cosθ23

0 0 sinθ23

0

L3 2 cosθ23

L3 2 sinθ23

0

,

Zatem transformacja globalna ma postać:

qR0,e=

cos(θ1223) 0 0 sin(θ1223)

0

L1

2 cos(θ1−θ22−θ3) +L22 cos(θ1−θ22−θ3) +L23cos(θ1223)

L2

2 sin(θ122−θ3) +L21sin(θ1−θ22−θ3) +L23sin(θ1223) 0

Korzystając ze wzoru (14) wyznaczono pozycję końcową efektora:

qv0,e=

1 0 0 0 0

L1cos θ1+ L2cos(θ1+ θ2) + L3cos(θ1+ θ2+ θ3) L1sin θ1+ L2sin(θ1+ θ2) + L3sin(θ1+ θ2+ θ3)

0

 Otrzymany wynik jest zgodny z obliczeniami metodą Denavita-Hartenberga.

5 Analiza wydajności obliczeniowej

Podczas przechowywania i manipulowania macierzami rzadkimi na komputerze, korzystne, a cza- sami nawet konieczne jest stosowanie specjalnych algorytmóm i struktur danych. Stosowanie stan- dardowych metod i struktur powoduje, że algorytmy są wolniejsze i potrzebują dużo większej ilości pamięci. Macierze rzadkie mogą być w prosty sposób kompresowane, co skutkuje znacznie mniej- szym wykorzystaniem pamięci komputera[3].

Metoda Denavita-Hartenberga wykorzystuje macierze 4x4 o specyficznej strukturze, z zerami w określonych miejscach. Taka macierz wymaga 12 komórek pamięci[4].Zaś metoda dualnych kwater- nionów wykorzystuje 8 komórek pamięci.

W tabeli 2 jest przedstawiona liczba dodawań i mnożeń potrzebna do uzyskania globalnej transfor- macji robota o n przegubach.

metoda DH metoda DK

+ 23n-26 40(n-1)

* 38n-35 2(31n-24)

Tabela 2: Wydajność obliczeniowa metody DH i DK[3]

(9)

Rysunek 3: Wydajność obliczeniowa metody DH i DK[3]

Zaletą dualnych kwaternionów jest oszczędność pamięcie. Wykorzystują 8 komórek pamięci, wtedy jak macierze jednorodne potrzebują 12. Metoda DK jest mniej wydajna obliczeniowo. Największą zaletą dualnych kwaternionów jest fakt, że nie tylko punkty, ale też proste i płaszczyzny mogą być używane do określenia pozycji i orientacji w algebrze[5], która w kinematyce robota unika osobliwości macierzy[6][7].

Literatura

[1] Hamilton W.R.(1843): On quaternions, or on a new system of imaginaries in algebra.

[2] Gousami M.,Ouali M., Fernini B.(2012):Robot kinematics using dual quaternions.

[3] Radavelli L.A., Simoni R., De Pieri E.R., Martins D.(2012): A Comparative Study of the Kinematics of Robots Manipulators by Denavit-Hartenberg and Dual Quaternion.

[4] Aspragathos N.A., Dimitros J.K(1998): A comparative study of three methods for robot kine- matics.IEEE, 28(2):135–145

[5] Selig J.M.(2000): Geometric fundamentals of robotics.ISBN 0-387-20874-7

[6] Oliveira A.S.D., Pieri E.R.D., Moreno U.F.(2010):Analise cinematica via quaternios duais.

[7] Sariyildiz E., Cakiray E., Temeltas H.(2011): A comparative study of three inverse kinematic methods of serial industrial robot manipulators in the screw theory framework.

[8] Możaryn J., Klimaszewski J.(2018):Sterowanie mechanizmów wieloczłonowych [9] https://en.wikipedia.org/wiki/Quaternion

Cytaty

Powiązane dokumenty

Przedsiębiorstwo w 03.2020 zużyło energie elektryczną na kwotę 3 600,00 zł- do jakiej grupy kosztów zaliczymy koszt zużycia energii elektrycznej.. Wynagrodzenia pracowników

Dzięki rozwiązaniom Siemens PLM Software firma Freeform Technology zintegrowała proces projektowania i wytwarzania narzędzi, a także zoptymalizo- wała proces

a) trajektoria pkt.. Trajektoria ruchu pkt. mrk, zgodna z wcześniejszym opisem, jest widoczna na rys. Ponadto na rys. 8a zaznaczono graficznie konfigura- cję platformy mrk

Przeprowadzając analizę dynamiki oraz symulacje ruchu, uwzględniono takie czynniki jak: poślizg gąsienic zależny od podłoża i odkształceń szponów, siłę wyporu robota

W pracy zaprezentowano sposób wyznaczania parametrów ruchu gąsienicy w oprogramowaniu MES – ABAQUS 6.11 oraz współczynników niezbędnych do opisu dynamiki w oprogramowaniu

Szczegółowy matematyczny opis ruchu poszczególnych punktów gąsienicy jest tak złożony, że konieczne jest stosowanie modeli uproszczonych.. Gąsienice (rys.2.a) w bardzo

wa zaoferował nam wiele atrakcji, nie tylko jako miejsce, gdzie mogłyśmy spożywać posiłki, ale także przygotować się do zajęć, odpocząć i „wmieszać” w grupę

Podczas tworzenia projektu menedżer projektu za pomocą interfejsu użytkownika wprowadza swoje dane kontaktowe (przynajmniej imię i numer telefonu), nazwę projektu, datę początku