Robotyka.com
Wiadomości Firmy Placówki Produkty Wydarzenia Teoria Konstrukcje
Home Zaloguj się Rejestracja
English version Deutsche Version
O nas Oferta Linki Kontakt
Producenci Szkolenia Oferty pracy Publikacje Zapytania ofertowe Forum
poprzednia spis treści następna

5.2. Składanie obrotów

 

Macierz R1,0 opisuje obrót między układami współrzędnych O x0 y0 z0 i O x1 y1 z1. Jeżeli zostanie dołożony trzeci układ współrzędnych O x2 y2 z2 powiązany z układami O x0 y0 z0 i O x1 y1 z1 przez obroty, to w takim przypadku punkt P może być reprezentowany na trzy sposoby przez wektory r0, r1, r2 w trzech układach współrzędnych. Związki pomiędzy tymi reprezentacjami punktu przedstawiono następująco:

                                                                               (5.15)

                                                                              (5.16)

                                                                           (5.17)

Macierze R1,0 i R2,0 reprezentują obroty względem osi układu O x0 y0 z0, natomiast R2,1 reprezentuje obrót względem układu O x1 y1 z1. Podstawiając wzór (5.17) do równania (5.15) otrzymano:

                                                                     (5.18)

Po porównaniu równań (5.16) i (5.18) otrzymano równość:

                                                                    (5.19)

Powyższe równanie jest prawem składania dla obrotów. Innymi słowy aby przekształcić współrzędne punktu P z jego reprezentacji r2 w układzie O x2 y2 z2 na reprezentację r0  w układzie O x0 y0 z0, można ją najpierw przekształcić na jego reprezentację r1 w układzie O x1 y1 z1, używając macierzy R2,1, a następnie przekształcić r1 na r0 używając macierzy R1,0.

Równanie (5.18) można interpretować następująco. Założono, iż na początku wszystkie trzy układy pokrywają się. W pierwszej fazie obracany jest układ          O x1 y1 z1 względem układu O x0 y0 z0 zgodnie z przekształceniem R1,0. W fazie drugiej przy pokrywających się układach O x1 y1 z1 i O x2 y2 z2, następuje obrót układu O x2 y2 z2 względem układach O x1 y1 z1 zgodnie z przekształceniem R2,1.   W każdym przypadku układ, względem którego odbywa się obrót, nazywa się układem bieżącym.

 

Przykład 5.6

Wyznaczyć macierz reprezentującą obrót układu O x1 y1 z1 wraz z wektorem r o kąt f=90° wokół bieżącej osi y z następnym obrotem układu O x2 y2 z2 związanego z wektorem r o kąt q=90° wokół bieżącej osi z, wiedząc iż na początku wszystkie układy były zorientowane tak jak zostało to przedstawione na rys.5.12, a współrzędne wektora względem układu O x2 y2 z2 są następujące r2=[2,1,0].

Rys.5.12 Początkowa orientacja układów

 

 

Rozwiązanie:

Aby rozwiązać przedstawione zadanie należy dokonać złożenia ruchów, tak więc macierz R powstaje z wymnożenia macierzy obrotu względem osi y z macierzą obrotu względem osi z. Na rys.5.13 i rys.5.14 przedstawiono poszczególne etapy obrotów.

 

Rys.5.13 Obrót układu względem osi y

Rys.5.14 Obrót układu względem osi z

 

Wyznaczona macierz R2,0 transformuje układ O x2 y2 z2 do układu O x0 y0 z0, tak więc współrzędne wektora r2 względem układu O x0 y0 z0 są następujące:

Poniżej w tabeli 5.6 przedstawiono kod przygotowany w programie MapleTM

 

restart;

with(linalg):

r[2]:=(vector(3,[2,1,0]));

phi:=evalf(convert(90*degrees,radians));

theta:=evalf(convert(90*degrees,radians));

R[y,phi]:=matrix(3,3,[cos(phi),0,sin(phi), 0,1,0,

-sin(phi),0,cos(phi)]);

R[z,theta]:=matrix(3,3,[cos(theta),-sin(theta),0, sin(theta),cos(theta),0,0,0,1]);

R[2,0]:=multiply(R[y,phi],R[z,theta]);

r[0]:=multiply(R[2,0],r[2]);

Tabela 5.6 Zapis funkcji w programie MapleTM dla przykładu 5.6.

 

Przykład 5.7

Wyznaczyć macierz reprezentującą obrót układu O x1 y1 z1 wraz z wektorem r o kąt q=90° wokół bieżącej osi z z następnym obrotem układu O x2 y2 z2 związanego z wektorem r o kąt f=90° wokół bieżącej osi y, wiedząc iż na początku wszystkie układy były zorientowane tak jak zostało to przedstawione na rys.5.15, a współrzędne wektora względem układu O x2 y2 z2 są następujące r2=[2,1,0].

Rys.5.15 Początkowa orientacja układów

 

 

Rozwiązanie:

W tym przykładzie zaistniała sytuacja odwrotna do tej z przykładu 5.6 należy dokonać złożenia ruchów w następującej kolejności, należy wymnożyć macierz obrotu względem osi z z macierzą obrotu względem osi y. Na rys.5.16 i rys.5.17 przedstawiono poszczególne etapy obrotów.

 

Rys.5.16 Obrót układu względem osi z

Rys.5.17 Obrót układu względem osi y

 

 

 

Wyznaczona macierz R2,0 transformuje układ O x2 y2 z2 do układu O x0 y0 z0, tak więc współrzędne wektora r2 względem układu O x0 y0 z0 są następujące:

Poniżej w tabeli 5.7 przedstawiono kod przygotowany w programie MapleTM

 

restart;

with(linalg):

r[2]:=(vector(3,[2,1,0]));

theta:=evalf(convert(90*degrees,radians));

phi:=evalf(convert(90*degrees,radians));

R[z,theta]:=matrix(3,3,[cos(theta),-sin(theta), 0,sin(theta),cos(theta),0,0,0,1]);

R[y,phi]:=matrix(3,3,[cos(phi),0,sin(phi),0,1,0,    -sin(phi),0,cos(phi)]);

R[2,0]:=multiply(R[z,theta],R[y,phi]);

r[0]:=multiply(R[2,0],r[2]);

Tabela 5.7 Zapis funkcji w programie MapleTM dla przykładu 5.7.

 

Jak widać na przykładzie 5.6 i 5.7 bardzo istotna jest kolejność mnożenia macierzy, obrót w przeciwieństwie do położenia nie jest wielkością wektorową i nie podlega prawu dodawania wektorów, wynika z tego, iż składanie obrotów na ogół nie jest przemienne.

 

 

Przykład 5.8

Wyznaczyć macierz reprezentującą obrót układu O x1 y1 z1 wraz z wektorem r o kąt f=90° wokół ustalonej osi y0 z następnym obrotem układu O x2 y2 z2 związanego z wektorem r o kąt q=90° wokół ustalonej osi z0, wiedząc iż na początku wszystkie układy były zorientowane tak jak zostało to przedstawione na rys.5.15, a współrzędne wektora względem układu O x2 y2 z2 są następujące r2=[2,1,0].

Rys.5.18 Początkowa orientacja układów

 

 

Rozwiązanie:

W tym przypadku układ O x0 y0 z0 jest układem ustalonym tak więc wcześniej określone prawo składania nie jest prawdziwe, natomiast właściwym prawem składania jest mnożenie kolejnych macierzy obrotów w kolejności odwrotnej do podanej wzorem (5.19). Należy zauważyć, że same obroty nie są wykonywane w odwrotnej kolejności, a raczej są one wykonywane wokół układu ustalonego niż bieżącego. Na rys.5.19 i rys.5.20 przedstawiono poszczególne etapy obrotów.

 

Rys.5.19 Obrót układu względem osi y0

Rys.5.20 Obrót układu względem osi z0

 

W pierwszej fazie osie ustalone i bieżące są te same, czyli O x0 y0 z0 co umożliwia zapisanie przekształcenia w postaci:

W drugiej fazie następuje obrót wokół ustalonego układu O x0 y0 z0, a nie bieżącego układu  O x1 y1 z1 dlatego nie można stwierdzić, czy zachodzi zależność:

W takim wypadku należy cofnąć poprzedni obrót, a następnie wykonać obrót wokół osi z0 i na koniec przywrócić wyjściowe przekształcenie, czyli:

Podstawiając do równania opisującego wektor r w układzie O x0 y0 z0 zależność przedstawioną powyżej i reprezentującą wektor r w układzie O x1 y1 z1 otrzymano:

Dla danego układu ustalonego O x0 y0 z0, układu bieżącego O x1 y1 z1 i macierzy obrotu R1,0 wiążącej te układy, jeżeli trzeci układ O x2 y2 z2 jest otrzymany przez obrót R2,1 wykonany względem układu bieżącego, to aby otrzymać obrót R2,0 należy pomnożyć prawostronnie macierz R1,0 z R2,1:

Natomiast, gdy drugi obrót ma być wykonany względem układu ustalonego, należy dokonać mnożenia lewostronnie macierzy R1,0 z R2,1 w wyniku takiej operacji otrzymano:

Macierz R2,0 reprezentuje zawsze przekształcenie między układami O x0 y0 z0 i      O x2 y2 z2.

 

 


Wyznaczona macierz R2,0 transformuje układ O x2 y2 z2 do układu O x0 y0 z0, tak więc współrzędne wektora r2 względem układu O x0 y0 z0 są następujące:

Poniżej w tabeli 5.8 przedstawiono kod przygotowany w programie MapleTM

 

restart;

with(linalg):

r[2]:=(vector(3,[2,1,0]));

phi:=evalf(convert(90*degrees,radians));

theta:=evalf(convert(90*degrees,radians));

R[y,phi]:=matrix(3,3,[cos(phi),0,sin(phi), 0,1,0,

-sin(phi),0,cos(phi)]);

R[z,theta]:=matrix(3,3,[cos(theta),-sin(theta),0, sin(theta),cos(theta),0,0,0,1]);

R[2,0]:=multiply(R[z,theta],R[y,phi]);

r[0]:=multiply(R[2,0],r[2]);

Tabela 5.8 Zapis funkcji w programie MapleTM dla przykładu 5.8.

 

poprzednia spis treści następna
Partner serwisu
Ciekawy produkt
Partnerzy
Czasopisma
Newsletter
Zawsze aktualne informacje.
Zapisz się na newsletter Robotyka.com.

E-mail:


O nas | Oferta | Kontakt RSS Robotyka.com
tel.: (12) 410 02 87, fax: (12) 410 87 50, e-mail: info@robotyka.com
Projekt i realizacja: STUDIO 47