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ęć.
|