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.5. Kinematyka prosta

 

Do opisu kinematyki prostej niezbędne jest podanie równań kinematyki robota. Zadanie kinematyki prostej można określić następująco: posiadając dane o zmiennych przegubowych należy określić pozycję i orientację końcówki roboczej. 

Jak wspomniano wcześniej równania kinematyki mogą zostać wyznaczone wykorzystując metody stosowane w mechanice klasycznej lub wykorzystując notację Denavita-Hartenberga. Poniżej przedstawiono kilka przykładów, w których dokonano analizy zadania prostego kinematyki.

 

Przykład 5.9

 

Wyznaczyć położenie chwytaka w przestrzeni dla manipulatora                  2-członowego przedstawionego na rys.5.22. Poszczególne człony wykonują ruch w płaszczyźnie płaskiej. Dana jest długość członów manipulatora oznaczona przez a1 i a2 (długość a2 jest liczona od punktu B do C).

Rys.5.22 Manipulator 2-członowy

 

 

Rozwiązanie:

I sposób

Dla prostego manipulatora płaskiego można w sposób klasyczny wyznaczyć położenie punktu C.

 

Obliczenie położenia chwytaka:

Przyjęto stały układ, nazywany układem bazowym lub odniesienia, względem, którego rozpatruje się wszystkie obiekty łącznie z manipulatorem. Układ ten został zaczepiony w punkcie O0x0y0 leżącym w podstawie robota. Sposób przyjęcia układu i oznaczenia kątów przedstawiono na rys.5.23.

 

Rys.5.23 Manipulator 2-członowy z przyjętym układem współrzędnych

 

Współrzędne x0,y0 narzędzia w tym układzie współrzędnych zostały wyrażone następującymi wzorami (rzutowanie punktu C na poszczególne osie):

W przypadku prostych manipulatorów takie podejście do rozwiązania tego typu zadań jest wygodne, jednak w przypadku bardziej złożonych struktur, może okazać się trudne do zastosowania.  

II sposób

Innym sposobem rozwiązania tego zadania jest zastosowanie notacji Denavita-Hartenberga.

 

Rys.5.24 Manipulator 2-członowy z przyjętym układem współrzędnych

 

W tym celu należy również przyjąć bazowy układ współrzędnych x0,y0,z0 oraz układy współrzędnych związane z każdym członem. Dodatkowo należy zachować zasadę, iż obrót poszczególnego członu odbywa się względem osi z, a przemieszczenia względem osi z i x. Sposób przyjęcia tych układów przedstawiono na rys.5.24. 

Należy wspomnieć, iż wszelkie obliczenia związane z konstruowaniem i analizą kinematyki wykonuje się przy użyciu pakietów obliczeniowych takich jak             np. MapleTM, MatlabTM. Poniżej obliczeń w tabeli 5.10 przedstawiono zapis funkcji w programie MapleTM umożliwiający rozwiązanie powyższego zadania. 

Pierwszy krok, jaki należy wykonać zgodnie z notacją to przyjęcie układów współrzędnych związanych z każdy członem oraz przygotowanie tabeli (tabela 5.9) z parametrami kinematycznymi, takimi jak to kąty obrotu, przemieszczenia członów oraz długości poszczególnych ramion. Dodatkowo przy tych parametrach które ulegają zmianie znajduje się indeks var oznaczający, iż ten parametr jest zmienny w czasie.   

 

układ

qi

di

ai

ai

1

q1,var

0

a1

0

2

q2,var

0

a2

0

Tabela 5.9 Parametry kinematyczne dla przykładu 5.9

 

Analizowany płaski manipulator oczywiście posiada 2 stopnie swobody, co można łatwo określić na podstawie tabeli 5.1. Zawsze należy tak wiązać układy współrzędnych aby w każdym przekształceniu jednorodnym występował tylko jeden parametr zmienny. 

Następnym krokiem jest zapisanie macierzy przekształcenia jednorodnego dla poszczególnych członów na podstawie równania (5.33) w oparciu o dane zawarte w tabeli 5.1. 

dla układu I

dla układu II

Końcowym etapem rozwiązania tego typu zadania jest podanie macierzy transformacji układu ostatniego do układu O0 x0 y0, którą zapisano następująco:

Dokonując porównania obu wariantów rozwiązania powyższego zadania oczywiście można stwierdzić, iż wyznaczone położenia chwytaka są identyczne (wektor położenia w macierzy T2,0 oraz współrzędne x0,y0 wyznaczone wykorzystując sposób I).

 

restart:

with(linalg):

Rot[z,theta[1]]:=matrix(4,4,[cos(theta[1]),-sin(theta[1]),0,0,

sin(theta[1]),cos(theta[1]),0,0,0,0,1,0,0,0,0,1]);

Trans[z,a[1]]:=matrix(4,4,[1,0,0,a[1],0,1,0,0,0,0,1,0,0,0,0,1]);

> 

A1:=multiply(Rot[z,theta[1]],Trans[z,a[1]]);

Rot[z,theta[2]]:=matrix(4,4,[cos(theta[2]),-sin(theta[2]),0,0,

sin(theta[2]),cos(theta[2]),0,0,0,0,1,0,0,0,0,1]);

Trans[z,a[2]]:=matrix(4,4,[1,0,0,a[2],0,1,0,0,0,0,1,0,0,0,0,1]);

A2:=multiply(Rot[z,theta[2]],Trans[z,a[2]]);

T[2,0]:=map(combine,multiply(A1,A2));

Tabela 5.10 Zapis funkcji w programie MapleTM dla przykładu 5.9.

 

Przykład 5.10

 

Wyznaczyć położenie i orientację chwytaka w przestrzeni dla manipulatora 2-członowego przedstawionego na rys.5.25. Poszczególne człony wykonują ruch w płaszczyźnie płaskiej (pierwszy ruch jest obrotowy, natomiast drugi postępowy). Dana jest długość członów manipulatora oznaczona przez a1 i d3 (długość d3 jest mierzona od punktu B do C).

Rys.5.25 Manipulator 2-członowy

 

 

Rozwiązanie:

Wykorzystując notacje Denavita-Hartenberga dąży się do takiego ustawienia współrzędnych oby ruch poszczególnych członów odbywał się zawsze względem osi z. Zgodnie z opisaną notacją w jednym przekształceniu jednorodnym można wykonywać obroty i przesunięcia zgodnie z równaniem (5.33) w kolejności takiej jak zostały zapisane poszczególne macierze w tym równaniu. Bardzo często w jednym przekształceniu nie da się odpowiednio zorientować układu współrzędnych tak, aby oś z była w osi ruchu. Należy wtedy przyjąć następny układ odpowiednio zorientowany względem poprzedniego. Na rys.5.26 przedstawiono analizowany manipulator z przyjętymi układami współrzędnych.

 

Rys.5.26 Manipulator 2-członowy z przyjętymi układami współrzędnych zgodnie z notacją Denavita-Hartenberga

 

układ

qi

di

ai

ai

1

q1,var

0

a1

0

2

-90°

0

0

-90°

3

0

d3,var

0

0

Tabela 5.11 Parametry kinematyczne dla przykładu 5.8

 

Znaki minus w tabeli 5.11 przy kątach 90° wynika z reguły śruby prawoskrętnej.

dla układu I

dla układu II

dla układu III

Macierz transformacji układu T3,0 ma postać:

Zgodnie z równaniem (5.30) w powyższej macierzy można wyróżnić orientację i pozycję chwytaka.

 

restart:

with(linalg):

Rot[z,theta[1]]:=matrix(4,4,[cos(theta[1]),-sin(theta[1]),0,0,

sin(theta[1]),cos(theta[1]),0,0,0,0,1,0,0,0,0,1]);

Trans[z,a[1]]:=matrix(4,4,[1,0,0,a[1],0,1,0,0,0,0,1,0,0,0,0,1]);

> 

A1:=multiply(Rot[z,theta[1]],Trans[z,a[1]]);

Rot[z,-90]:=matrix(4,4,[cos(-Pi/2),-sin(-Pi/2),0,0,sin(-Pi/2), cos(-Pi/2),0,0,0,0,1,0,0,0,0,1]);

Rot[x,-90]:=matrix(4,4,[1,0,0,0,0,cos(-Pi/2),-sin(-Pi/2),0,0, sin(-Pi/2),cos(-Pi/2),0,0,0,0,1]);

A2:=multiply(Rot[z,-90],Rot[x,-90]);

A3:=matrix(4,4,[1,0,0,0,0,1,0,0,0,0,1,d[3],0,0,0,1]);

T[3,0]:=map(combine,multiply(A1,A2,A3));

Tabela 5.12 Zapis funkcji w programie MapleTM dla przykładu 5.10.

 

Przykład 5.11

 

Wyznaczyć położenie i orientację chwytaka w przestrzeni dla manipulatora o 4 stopniach swobody (struktura cylindryczna), przedstawionego na rys.5.27. Dane są poszczególne długości członów manipulatora, zilustrowane na rys.5.28.

 

Rys.5.27 Manipulator o strukturze cylindrycznej

 

 

Rozwiązanie:

Dane są długości poszczególnych członów manipulatora odpowiednio: d1, d2, d3, d4, d5, mierząc od podstawy (rys.5.28).

 

Rys.5.28 Schemat z wymiarami

Rys.5.29 Schemat z układami

 

 

Należy podkreślić, iż bardzo często istnieje wiele sposobów orientowania układów współrzędnych (zgodnie z notacją Denavita-Hartenberga), jednak celem analizy kinematyki prostej jest przyjęcie najprostszej formy opisu ze względu na zmniejszenie komplikacji związanych z obliczeniami. 

W przypadku przedstawionej struktury manipulatora najprostszy sposób przyjęcie układów współrzędnych został przedstawiony na rys.5.29, natomiast w tabeli 5.13 zamieszczono odpowiednie operacje obrotów i przesunięć.

 

układ

qi

di

ai

ai

1

q1,var

d1

0

0

2

0

d2,var

0

-90°

3

0

d3,var

0

-90°

4

q4,var

d4+ d5

0

0

Tabela 5.13 Parametry kinematyczne dla przykładu 5.11.\

 

dla układu I

dla układu II

dla układu III

dla układu IV

tak więc:

      

 

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

 

restart:

with(linalg):

Rot[z,theta[1]]:=matrix(4,4,[cos(theta[1]),-sin(theta[1])

,0,0,sin(theta[1]),cos(theta[1]),0,0,0,0,1,0,0,0,0,1]);

Trans[z,d[1]]:=matrix(4,4,[1,0,0,0,0,1,0,0,0,0,1,d[1],0,0,0,1]);

> 

A[1]:=multiply(Rot[z,theta[1]],Trans[z,d[1]]);

Trans[z,d[2]]:=matrix(4,4,[1,0,0,0,0,1,0,0,0,0,1,d[2],0,0,0,1]);

Rot[x,-90]:=matrix(4,4,[1,0,0,0,0,cos(-Pi/2),-sin(-Pi/2),0,0 ,sin(-Pi/2),cos(-Pi/2),0,0,0,0,1]);

A[2]:=multiply(Trans[z,d[2]],Rot[x,-90]);

Trans[z,d[3]]:=matrix(4,4,[1,0,0,0,0,1,0,0,0,0,1,d[3],0,0,0,1]);

A[3]:=multiply(Trans[z,d[3]],Rot[x,-90]);

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

Trans[z,d[4]]:=matrix(4,4,[1,0,0,0,0,1,0,0,0,0,1,d[4]+ d[5],0,0, 0,1]);

A[4]:=multiply(Rot[z,theta[4]],Trans[z,d[4]]);

T[4,0]:=map(combine,multiply(A[1],A[2],A[3],A[4]));

Tabela 5.14 Zapis funkcji w programie MapleTM dla przykładu 5.11.

 

Przyjęte układy współrzędnych zostały również przedstawione na trójwymiarowym modelu manipulatora, zilustrowanym na rys.5.30. W celu oznaczenia poszczególnych osi wykorzystano odpowiednie oznaczenie ich kolorami: czerwony - oś z, zielony - oś x oraz żółty - oś y.

 

Rys.5.30 Trójwymiarowe ujęcia podczas ruchu manipulatora z układami

 

Posiadając macierz transformacji T4,0 dla analizowanego manipulatora w postaci symbolicznej można podstawiając wartości parametrów konstrukcyjnych i kinematycznych wyznaczyć położenie i orientację manipulatora w danej chwili czasowej.

 

Przykład 5.12

 

 

Wyznaczyć położenie i orientację chwytaka w przestrzeni dla manipulatora o 4 stopniach swobody (struktura SCARA), przedstawionego na rys.5.31. Dane są poszczególne długości członów manipulatora, zilustrowane na rys.5.32.

 

Rys.5.31 Manipulator o strukturze SCARA

 

Rozwiązanie:

Dane są długości poszczególnych członów manipulatora odpowiednio: d1, a2, a3, d4, d5, mierząc od podstawy (rys.5.32).

W przypadku przedstawionej struktury manipulatora najprostszy sposób przyjęcie układów współrzędnych został przedstawiony na rys.5.33, natomiast w tabeli 5.15 zamieszczono odpowiednie operacje obrotów i przesunięć.

 

układ

qi

di

ai

ai

1

0

d1

0

0

2

q2,var

0

a2

0

3

q3,var

0

a3

180°

4

0

d4,var

0

0

5

q5,var

d5

0

0

Tabela 5.15 Parametry kinematyczne dla przykładu 5.12

 

Rys.5.32 Schemat z wymiarami

Rys.5.33 Schemat z układami

 

dla układu I

dla układu II


dla układu III

dla układu IV

dla układu V

ostatecznie:

 

Otrzymana macierz może posłużyć do obliczenia pozycji i orientacji w dowolnej chwili czasowej, w tabeli 5.16 przedstawiono kod w programie MapleTM.

 

restart:

with(linalg):

A[1]:=matrix(4,4,[1,0,0,0,0,1,0,0,0,0,1,d[1],0,0,0,1]);

Rot[z,theta[2]]:=matrix(4,4,[cos(theta[2]),-sin(theta[2]),0,0, sin(theta[2]),cos(theta[2]),0,0,0,0,1,0,0,0,0,1]);

> 

trans[x,a[2]]:=matrix(4,4,[1,0,0,a[2],0,1,0,0,0,0,1,0,0,0,0,1]);

A[2]:=multiply(Rot[z,theta[2]],trans[x,a[2]]);

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

trans[x,a[3]]:=matrix(4,4,[1,0,0,a[3],0,1,0,0,0,0,1,0,0,0,0,1]);

Rot[x,180]:=matrix(4,4,[1,0,0,0,0,cos(Pi),-sin(Pi),0,0,sin(Pi), cos(Pi),0,0,0,0,1]);

A[3]:=multiply(Rot[z,theta[3]],trans[x,a[3]],Rot[x,180]);

A[4]:=matrix(4,4,[1,0,0,0,0,1,0,0,0,0,1,d[4],0,0,0,1]);

Rot[z,theta[5]]:=matrix(4,4,[cos(theta[5]),-sin(theta[5]),0,0, sin(theta[5]),cos(theta[5]),0,0,0,0,1,0,0,0,0,1]);

trans[z,d[5]]:=matrix(4,4,[1,0,0,0,0,1,0,0,0,0,1,d[5],0,0,0,1]);

A[5]:=multiply(Rot[z,theta[5]],trans[z,d[5]]);

T[5,0]:=map(combine,multiply(A[1],A[2],A[3],A[4],A[5]));

Tabela 5.16 Zapis funkcji w programie MapleTM dla przykładu 5.12.

 

Układy współrzędnych zostały również przedstawione na trójwymiarowym modelu manipulatora, zilustrowanym na rys.5.34. W celu oznaczenia poszczególnych osi wykorzystano odpowiednie oznaczenie ich kolorami: czerwony - oś z, zielony - oś x oraz żółty - oś y.

Każdy z układów współrzędnych został odpowiednio dołączony do modelu robota zgodnie z przyjętym schematem rozwiązania (rys.5.33).

 

Rys.5.34 Trójwymiarowe ujęcia podczas ruchu manipulatora z układami

 

Przykład 5.13

 

 

Wyznaczyć położenie i orientację chwytaka w przestrzeni dla manipulatora o 2 stopniach swobody, przedstawionego na rys.5.35. Dane są poszczególne długości członów manipulatora.

 

Rys.5.35 Manipulator o 2 stopniach swobody

 

 

Rozwiązanie:

Rys.5.36 Model 3D manipulatora  z układami współrzędnych

 

W przypadku przedstawionej struktury manipulatora najprostszy sposób przyjęcie układów współrzędnych został przedstawiony na rys.5.36, natomiast w tabeli 5.17 zamieszczono odpowiednie operacje obrotów i przesunięć.

 

układ

qi

di

ai

ai

1

0