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.1 Obroty

 

Do opisania obrotów wykorzystano układ współrzędnych O x0 y0 z0 następnie przyjęto wektor r (rys.5.1), z którym związano układ współrzędnych O x1 y1 z1. Należy rozważyć, jakie zależności występują między współrzędnymi wektora r w układzie współrzędnych O x1 y1 z1, a współrzędnymi tego wektora w stałym (nieobróconym) układzie odniesienia O x0 y0 z0. Przez r0 oznaczono położenie wektora r przed obrotem. Natomiast przez {i0, j0, k0} oznaczono standardową bazę ortogonalną w układzie O x0 y0 z0; gdzie i0, j0, k0 są wektorami jednostkowymi (wersorami) odpowiednio wzdłuż osi x0, y0, z0. Analogicznie {i1, j1, k1} będzie standardową bazą ortogonalną w układzie O x1 y1 z1.

 

Rys.5.1 Układ współrzędnych związany z wektorem r

 

Wektor  przedstawiono w układzie O x0 y0 z0 następująco:

                                                                 (5.1)

Natomiast ten sam wektor przedstawiono w układzie O x1 y1 z1 następująco:

                                                                   (5.2)

Wektor  jest reprezentowany przez wektory r0 i r1 tak, więc związki pomiędzy składowymi wektora  w obu układach współrzędnych zapisano w postaci:

                                          (5.3)

Analogiczne wzory otrzymano dla składowych r0,y i r0,z:

                                                        (5.4)

                                                        (5.5)

Równania (5.3), (5.4), (5.5) przedstawiono w postaci równania wektorowego następująco:

                                                                            (5.6)

Macierz R1,0 reprezentuje przekształcenie punktu P ze współrzędnych w układzie   O x1 y1 z1 na współrzędne w układzie O x0 y0 z0 i zapisano ją w postaci:

                                                       (5.7)

Jeżeli punkt w układzie O x1 y1 z1 określono za pomocą wektora r1, wówczas:

                                                           (5.8)

                                                           (5.9)

                                                               (5.10)

Zapis powyższych równań w postaci macierzowej jest następujący:

                                                                            (5.11)

Macierz R0,1 reprezentuje przekształcenie punktu P ze współrzędnych w układzie   O x0 y0 z0 na współrzędne w układzie O x1 y1 z1 i zapisano ją w postaci:

                                                       (5.12)

Macierz R0,1 reprezentuje przekształcenie odwrotne do przekształcenia R1,0:

                                                                                  (5.13)

Macierz, której odwrotnością jest macierz transponowana nazywa się macierzą ortogonalną. Ograniczając się do prawoskrętnego układu współrzędnych, wtedy  det R1,0 = ą 1. Macierze ortogonalne o wyznaczniku  +1 są nazywane macierzami obrotu lub rotacji.

 

Przykład 5.1

 

Układ O x1 y1 z1 obrócono o kąt q wokół osi z0 (rys.5.2). Znaleźć macierz R1,0 tego przekształcenia. Należy zwrócić uwagę, iż dodatni kierunek kąta q jest określony regułą prawej ręki, to znaczy dodatni obrót o kąt q wokół osi z daje przesunięcie śruby prawoskrętnej wzdłuż dodatniego kierunku osi z.

 

Rys.5.2 Obrót wokół osi z

 

 

Rozwiązanie:

Rys.5.3 Obrót układu wokół osi z wraz z wersorami

 

Z analizy rys.5.3 wynika, iż cosinusy kierunkowe dla poszczególnych wersorów można zapisać następująco uwzględniając, iż iloczyn długości odpowiednich wersorów jest równy jedności:

               

                    

                           

Tak, więc przekształcenie R1,0 przedstawiono ostatecznie w postaci:

Powyższą macierz nazwano podstawową macierzą obrotu lub rotacji (wokół osi z). Ze względów praktycznych wygodniejszy jest zapis Rz,q zamiast R1,0 do oznaczenia obliczonej symbolicznie macierzy. Poniżej w tabeli 5.1 zamieszczono kod przygotowany w programie MapleTM.

 

restart;

with(linalg):

with(difforms):

R[1,0]:=matrix(3,3,[i[1]*i[0],j[1]*i[0],k[1]*i[0],i[1]*j[0],j[1]*j[0],k[1]*j[0],i[1]*k[0],j[1]*k[0],k[1]*k[0]]);

> 

r[1,1]:=i[1]*i[0]=cos(theta);

r[1,2]:=j[1]*i[0]=cos((Pi/2)+theta);

r[1,3]:=k[1]*i[0]=cos(Pi/2);

r[2,1]:=i[1]*j[0]=cos((Pi/2)-theta);

r[2,2]:=j[1]*j[0]=cos(theta);

r[2,3]:=k[1]*j[0]=cos(Pi/2);

r[3,1]:=i[1]*k[0]=cos(Pi/2);

r[3,2]:=j[1]*k[0]=cos(Pi/2);

r[3,3]:=k[1]*k[0]=cos(0);

R[z,theta]:=subs({r[1,1],r[1,2],r[1,3],r[2,1],r[2,2],r[2,3],r[3,1],r[3,2],r[3,3]},evalm(R[1,0]));

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

 

Przykład 5.2

 

Układ O x1 y1 z1 obrócono o kąt q wokół osi y0 (rys.5.4). Znaleźć macierz R1,0 tego przekształcenia. Należy zwrócić uwagę, iż dodatni kierunek kąta q jest określony regułą prawej ręki, to znaczy dodatni obrót o kąt q wokół osi y daje przesunięcie śruby prawoskrętnej wzdłuż dodatniego kierunku osi y.

 

Rys.5.4 Obrót wokół osi y

 

 

Rozwiązanie:

Rys.5.5 Obrót układu wokół osi y wraz z wersorami

 

Dokonując analogiczną analizę do przykładu 5.1 można stwierdzić iż cosinusy kierunkowe dla poszczególnych wersorów można zapisać następująco uwzględniając, iż iloczyn długości odpowiednich wersorów jest równy jedności:

                    

                                

                    

W analizowanym przekształceniu macierz R1,0 przedstawiono w postaci:

Poniżej w tabeli 5.2 zamieszczono kod przygotowany w programie MapleTM.

 

restart;

with(linalg):

with(difforms):

R[1,0]:=matrix(3,3,[i[1]*i[0],j[1]*i[0],k[1]*i[0],i[1]*j[0],j[1]*j[0],k[1]*j[0],i[1]*k[0],j[1]*k[0],k[1]*k[0]]);

> 

r[1,1]:=i[1]*i[0]=cos(theta);

r[1,2]:=j[1]*i[0]=cos(Pi/2);

r[1,3]:=k[1]*i[0]=cos((Pi/2)-theta);

r[2,1]:=i[1]*j[0]=cos(Pi/2);

r[2,2]:=j[1]*j[0]=cos(0);

r[2,3]:=k[1]*j[0]=cos(Pi/2);

r[3,1]:=i[1]*k[0]=cos((Pi/2)+theta);

r[3,2]:=j[1]*k[0]=cos(Pi/2);

r[3,3]:=k[1]*k[0]=cos(theta);

R[y,theta]:=subs({r[1,1],r[1,2],r[1,3],r[2,1],r[2,2],r[2,3],r[3,1],r[3,2],r[3,3]},evalm(R[1,0]));

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

 

 

Przykład 5.3

 

Układ O x1 y1 z1 obrócono o kąt q wokół osi x0 (rys.5.6). Znaleźć macierz R1,0 tego przekształcenia. Należy zwrócić uwagę, iż dodatni kierunek kąta q jest określony regułą prawej ręki, to znaczy dodatni obrót o kąt q wokół osi x daje przesunięcie śruby prawoskrętnej wzdłuż dodatniego kierunku osi x.

Rys.5.6 Obrót wokół osi y

 

 

Rozwiązanie:

Rys.5.7 Obrót układu wokół osi x wraz z wersorami

 

Analizując obrót układu względem osi x można stwierdzić iż cosinusy kierunkowe dla poszczególnych wersorów można zapisać następująco uwzględniając, iż iloczyn długości odpowiednich wersorów jest równy jedności:

                            

                  

                     

W analizowanym przekształceniu macierz R1,0 przedstawiono w postaci:

Poniżej w tabeli 5.3 zamieszczono kod przygotowany w programie MapleTM.

 

restart;

with(linalg):

with(difforms):

R[1,0]:=matrix(3,3,[i[1]*i[0],j[1]*i[0],k[1]*i[0],i[1]*j[0],j[1]*j[0],k[1]*j[0],i[1]*k[0],j[1]*k[0],k[1]*k[0]]);

> 

r[1,1]:=i[1]*i[0]=cos(0);

r[1,2]:=j[1]*i[0]=cos(Pi/2);

r[1,3]:=k[1]*i[0]=cos(Pi/2);

r[2,1]:=i[1]*j[0]=cos(Pi/2);

r[2,2]:=j[1]*j[0]=cos(theta);

r[2,3]:=k[1]*j[0]=cos((Pi/2)+theta);

r[3,1]:=i[1]*k[0]=cos(Pi/2);

r[3,2]:=j[1]*k[0]=cos((Pi/2)-theta);

r[3,3]:=k[1]*k[0]=cos(theta);

R[x,theta]:=subs({r[1,1],r[1,2],r[1,3],r[2,1],r[2,2],r[2,3],r[3,1],r[3,2],r[3,3]},evalm(R[1,0]));

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

 

Przedstawione macierze obrotu (5.14) względem poszczególnych osi posłużą w dalszej części rozważań do przedstawienia formalizmu matematycznego zdolnego opisywać obroty i przemieszczenia poszczególnych członów robotów.

                                   

                                                                                               (5.14)

Można także interpretować daną macierz obrotu jako macierz wyznaczającą orientację układu współrzędnych O x1 y1 z1 względem O x0 y0 z0, gdyż kolumny macierzy R1,0 są cosinusami kierunkowymi osi układu O x1 y1 z1 w stosunku do osi układu O x0 y0 z0.

 

Przykład 5.4

 

Wyznaczyć współrzędne wektora r (rys.5.8) związanego z układem O x1 y1 z1 względem układu O x0 y0 z0 po wykonaniu obrotu względem osi z o 90°. Wektora r jest opisany następującymi współrzędnymi względem układu O x1 y1 z1 r=[2,1,0]. 

 

 

Rys.5.8 Wektor r wraz z układami przed obrotem

 

 

Rozwiązanie:

Po wykonaniu obrotu względem osi z wektor r zmieni swoje położenie względem układu O x0 y0 z0 , co przedstawiono na rys.5.9.     

Rys.5.9 Wektor r wraz z układami po obrocie.

 

Należy zauważyć iż współrzędne wektora r względem układu O x1 y1 z1 będą wynosiły r=[2,1,0], natomiast współrzędne wektora r względem układu O x0 y0 z0 można wyznaczyć wykorzystując macierz obrotu względem osi z, co przedstawiono powyżej. Poniżej w tabeli 5.4 zamieszczono kod przygotowany w programie MapleTM.

 

 >

restart;

with(linalg):

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

> 

theta:=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[1]:=evalm(multiply(R[z,theta],r[0]));

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

 

Z przedstawionej analizy wektorowej (zależność 5.12, 5.13) wynika iż można również wykonywać operacje odwrotne do tych które przedstawiono w przykładzie 5.4.

 

Przykład 5.5

 

Wyznaczyć współrzędne wektora r (rys.5.10) związanego z układem O x1 y1 z1 względem układu O x0 y0 z0 przed wykonaniem obrotu względem osi z o 90°. Wektora r jest opisany następującymi współrzędnymi względem układu O x0 y0 z0 po obrocie r1=[-1,2,0].

 

 

Rys.5.10 Wektor r wraz z układami po obrocie

 

 

Rozwiązanie:

Aby wyznaczyć współrzędne wektora r przed obrotem względem osi z (rys.5.11) należy wykorzystać macierz obrotu względem odpowiedniej osi a następnie transponować ją. Transponowana macierz powinna zostać pomnożona z wektorem r1.

 

Rys.5.11 Wektor r wraz z układami przed obrotem.

 

Podobnie jak w przypadku poprzednich przykładów poniżej w tabeli 5.5 przedstawiono kod przygotowany w programie MapleTM

 

restart;

with(linalg):

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

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

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

transpose(R[z,theta]);

multiply(transpose(R[z,theta]),r[1]);

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

 

Należy zauważyć iż w przypadku obracania wektora wraz z układem jego współrzędne względem układu O x1 y1 z1 będą takie same jak współrzędne wektora r przed obrotem względem układu O x0 y0 z0.

 

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