background image

Patrycja Grabowska 
Weronika Hasslinger 
 

Kinematyka i Dynamika Układów 

Mechatronicznych 

Laboratorium nr 4 

Sprawozdanie 

Prowadzący: 
dr inż. Jarosław Bednarz 

IMIR, Mechatronika,   
Projektowanie 
Mechatroniczne, 
Gr. nr 7 

Temat:  

Model kinematyczny manipulatora  – 

algorytmy planowania toru ruchu 

Data zajęć: 
26.03.2015r. 

 

T.1 

Korzystając z zamieszczonego w instrukcji  skryptu  programu Matlab wyznaczono 
następujące trajektorie złączowe typu  5 – (5) – 5 dla każdego z ośmiu odcinków toru ruchu. 

Dla ruchu w linii prostej: 

y1h1(t) =  0.4005*t^5 - 1.0190*t^4 + 0.6812*t^3 - 1.4528 
y1h2(t) = - 0.0398*t^5 + 0.0614*t^4 + 0.0763*t^3 - 0.0161*t^2 - 0.0147*t - 1.39 
y1h3(t) = 0.0716*t^5 - 0.1377*t^4 - 0.0761*t^3 + 0.1834*t^2 + 0.2287*t - 1.3229 
y1h4(t) = - 0.1034*t^5 + 0.2203*t^4 + 0.0890*t^3 - 0.1552*t^2 + 0.1742*t - 1.053 
y1h5(t) =  0.1197*t^5 - 0.2967*t^4 - 0.0639*t^3 + 0.3994*t^2 + 0.4949*t - 0.8281 
y1h6(t) =  - 0.1062*t^5 + 0.3017*t^4 - 0.0538*t^3 - 0.3758*t^2 + 0.5135*t - 0.1747 
y1h7(t) =  0.0699*t^5 - 0.2295*t^4 + 0.0905*t^3 + 0.2106*t^2 + 0.2761*t + 0.1047 
y1h8(t) = - 0.7642*t^5 + 1.9189*t^4 - 1.0293*t^3 - 0.7839*t^2 + 0.8008*t + 0.5224 

y2h1(t) =  - 0.1477*t^5 + 0.4608*t^4 - 0.4168*t^3 + 0.6 
y2h2(t) = 0.0052*t^5 - 0.0173*t^4 - 0.0064*t^3 + 0.0091*t^2 - 0.0730*t + 0.4962 
y2h3(t) = 0.0107*t^5 + 0.0089*t^4 - 0.02336*t^3 - 0.0618*t^2 - 0.1173*t + 0.4137 
y2h4(t) = - 0.0445*t^5 + 0.0625*t^4 + 0.1195*t^3 + 0.02864*t^2 - 0.2220*t + 0.2307 
y2h5(t) = 0.0601*t^5 - 0.1603*t^4 - 0.0760*t^3 + 0.3167*t^2 + 0.2211*t + 0.1748 
y2h6(t) = - 0.0299*t^5 + 0.1402*t^4 - 0.1161*t^3 - 0.2720*t^2 + 0.2859*t + 0.5365 
y2h7(t) = - 0.0111*t^5 - 0.0096*t^4 + 0.1450*t^3 - 0.0789*t^2 - 0.1957*t + 0.5444 
y2h8(t) = 0.5622*t^5 - 1.0434*t^4 - 0.0368*t^3 + 0.7492*t^2 - 0.0251*t + 0.394 

y3h1(t) = 0.5824*t^5 - 1.4896*t^4 + 0.99931*t^3 - 1.5708 
y3h2(t) = - 0.0677*t^5 + 0.0889*t^4 + 0.1082*t^3 - 0.02871*t^2 - 0.0240*t - 1.4786 
y3h3(t) = 0.1675*t^5 - 0.2500*t^4 - 0.2139*t^3 + 0.15155*t^2 + 0.2599*t - 1.402 
y3h4(t) = - 0.3076*t^5 + 0.5877*t^4 + 0.4614*t^3 - 0.3150*t^2 - 0.2413*t - 1.287 
y3h5(t) = 0.3422*t^5 - 0.9504*t^4 - 0.2639*t^3 + 1.5193*t^2 + 1.3257*t - 1.1018 
y3h6(t) = - 0.1631*t^5 + 0.7609*t^4 - 0.6429*t^3 - 1.5525*t^2 + 1.4820*t + 0.8711 
y3h7(t) = - 0.0506*t^5 - 0.0546*t^4 + 0.7696*t^3 - 0.5469*t^2 - 1.3238*t + 0.7554 
y3h8(t) = 2.4816*t^5 - 4.9304*t^4 + 0.3524*t^3 + 3.7087*t^2 - 1.1614*t - 0.451 

 

 

background image

Dla ruchu po okręgu:

 

 
y1h1(t) =  0.0877*t^5 + 0.0258*t^4 - 0.4725*t^3 + 3.1416, 
y1h2(t) =  - 0.0168*t^5 + 0.02904*t^4 + 0.0635*t^3 - 0.0962*t^2 - 0.4378*t + 2.7826 
y1h3(t) =  0.0142*t^5 - 0.0550*t^4 + 0.01161*t^3 + 0.1005*t^2 - 0.4075*t + 2.3243 
y1h4(t)  = 0.0058*t^5 + 0.0161*t^4 - 0.0662*t^3 - 0.0524*t^2 - 0.3205*t + 1.9881 
y1h5(t) =  - 0.0220*t^5 + 0.04519*t^4 + 0.0563*t^3 - 0.0962*t^2 - 0.5305*t + 1.5708 
y1h6(t) =  0.0211*t^5 - 0.0649*t^4 + 0.0169*t^3 + 0.1238*t^2 - 0.4833*t + 1.0235 
y1h7(t)  - 0.0095*t^5 + 0.0408*t^4 - 0.0311*t^3 - 0.0032*t^2 - 0.3387*t + 0.6372 
y1h8(t) - 0.0430*t^5 - 0.1101*t^4 + 0.2936*t^3 + 0.2107*t^2 - 0.6465*t + 0.2953 
 
y2h1(t) = - 0.0131*t^5 + 0.1257*t^4 - 0.2165*t^3 + 0.6 
y2h2(t) = - 0.0019*t^5 + 0.0037*t^4 + 0.0193*t^3 - 0.0067*t^2 - 0.1063*t + 0.496 
y2h3(t) = - 0.0029*t^5 - 0.0060*t^4 + 0.0146*t^3 + 0.0540*t^2 - 0.0567*t + 0.404 
y2h4(t) =  0.0131*t^5 - 0.0206*t^4 - 0.0387*t^3 + 0.0326*t^2 + 0.0566*t + 0.407 
y2h5(t) = - 0.0166*t^5 + 0.04499*t^4 + 0.0099*t^3 - 0.0761*t^2 - 0.0112*t + 0.45 
y2h6(t) = 0.0113*t^5 - 0.0380*t^4 + 0.0237*t^3 + 0.0575*t^2 - 0.0366*t + 0.401 
y2h7(t) = - 0.0064*t^5 + 0.0187*t^4 - 0.0148*t^3 + 0.0141*t^2 + 0.0543*t + 0.419 
y2h8(t) =  0.1331*t^5 - 0.2165*t^4 - 0.0345*t^3 + 0.0709*t^2 + 0.1619*t + 0.485 
 
y3h1(t) = 0.0582*t^5 - 0.6702*t^4 + 1.1730*t^3 - 1.5708 
y3h2(t) =  0.0291*t^5 - 0.0236*t^4 - 0.1157*t^3 + 0.0199*t^2 + 0.5646*t - 1.0098 
y3h3(t) = - 0.0663*t^5 + 0.1219*t^4 + 0.0807*t^3 - 0.1781*t^2 + 0.3082*t - 0.5355 
y3h4(t) = 0.0930*t^5 - 0.2100*t^4 - 0.0955*t^3 + 0.1316*t^2 + 0.3499*t - 0.2691 
y3h5(t) = - 0.0895*t^5 + 0.2554*t^4 - 0.0046*t^3 - 0.4841*t^2 - 0.0480*t 
y3h6(t) =  0.0562*t^5 - 0.1920*t^4 + 0.1220*t^3 + 0.1394*t^2 - 0.4560*t - 0.3709 
y3h7(t) =  - 0.0192*t^5 + 0.0892*t^4 - 0.0836*t^3 - 0.0843*t^2 - 0.2980*t - 0.7013 
y3h8(t) =  - 0.1326*t^5 - 0.1090*t^4 + 0.6495*t^3 + 0.0321*t^2 - 0.9135*t - 1.0973 

Duża ilość równań wynika z ilości zaplanowanych odcinków toru ruchu – 8  
oraz ilości złącz – 3. 
Wartości współrzędnych złączowych zostały podane w radianach – złącza obrotowe lub w 
metrach – złącza postępowe. 

 

background image

T.2 

Przedstawiając przebiegi  przemieszczeń, prędkości oraz przyspieszń prędkości złączowych 
użyto funkcji ”fun_grapht” i otrzymano następujące wykresy: 

Dla ruchu w linii prostej 

 

background image

 

 

 

 

 

background image

Dla ruchu po okręgu:

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 
 

background image

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Oceniając przebiegi przemieszczeń, prędkości oraz przyspieszeń w złączach zarówno w ruchu 
po linii prostej oraz po łuku,  zauważono, że są one w miarę łagodne.  
W obu przypadkach największe przemieszczenia występują w trzecim złączu. Podobnie jest 
w przypadku prędkości i przyspieszeń: największe zmiany uzyskano w ostatnim przegubie 
obrotowym. 
 
Nie występują w nich gwałtowne zmiany parametrów, które mogły by być przyczyną 
nieróżniczkowalności i nieciągłości przebiegów. Na podstawie wykresów wyciągnięto 
wniosek, że  czas operacji jest optymalny, drgania manipulatora nie będą osiągały 
nieodpowiednich wartości oraz dokładność operacji nie zostanie zakłócona w skutek 
nieodpowiednio dobranych parametrów.

 

 

 

 

background image

T.3 

Korzystając z zamieszczonego w instrukcji  skryptu  programu Matlab przedstawiono tor 
ruchu efektora manipulatora oraz  linię łamaną odpowiadającą przyjętym wartościom 
współrzędnych złączowych. 

Dla ruchu w linii prostej: 

 

Porównując  kształt  oraz  obliczoną  długość  toru  ruchu  oraz  łamaną  powstałą  przez  połączenie 
założonych  punków  można  zauważyć  znaczne  odchyłki.  Wykresy  są  do  siebie  niepodobne  zarówno 
pod  względem  kształtu  oraz  długości.  Linia  łamana  jest  linią  prostą  natomiast  uzyskana  trajektoria 
ruchu  ma  skomplikowany  i  wydawałoby  się  nieoptymalny  kształt.  Uzyskanie  ruchu  w  linii  prostej 
powoduje konieczność wywoływania ruchu jednocześnie w 3 złączach i jest to tor ruchu trudniejszy 
do uzyskania niż tor w kształcie ruchu po okręgu. W wyznaczonych trajektoriach nie ma kątów.  Brak 
ostrych przejść powoduje mniejsze drgania oraz większą dokładność. 

Obserwując  wyniki  z  zadania  odwrotnego  można  zauważyć,  że  powyższe  zadanie  dla  linii  prostej 
można wkonać na dwa sposoby: punkt P7 ma dwa rozwiązania w granicach zakresów ruchów złącz. 
Jednakże uzyskana w drugi sposób trajektoria jest również stomplikowana

 

 

 

background image

Dla ruchu po okręgu: 

 

 
 
 

Porównując kształt oraz obliczoną długość toru ruchu oraz łamaną powstałą przez połączenie 
założonych punków można zauważyć niewielkie odchyłki. Oba wykresy są do siebie podobne 
zarówno pod względem kształtu oraz długości. Jednakże w wyznaczonych trajektoriach nie 
ma kątów.  Brak ostrych przejść powoduje mniejsze drgania oraz większą dokładność.

 

 

 

background image

T.4 

Dodany fragment kodu Matlaba pozwalający obliczyć długość trajektorii ruchu oraz długość 
łamanej. 

%ilość wyznaczonych punktów trajektorii

 

k= length(X)

 

%oblicznie długości trajektorii

 

dlugosc=0;

 

for

 i=1:(k-1)

 

    dlugosc=dlugosc + sqrt((X(i+1)-X(i))^2+(Y(i+1)-Y(i))^2+(Z(i+1)-
Z(i))^2);

 

end

 

dlugosc

 

%obliczanie długości łamanej

 

lamana=0;

 

for

 i=1:8

 

    lamana=lamana + sqrt((XQ(i+1)-XQ(i))^2+(YQ(i+1)-YQ(i))^2+(ZQ(i+1)-
ZQ(i))^2);

 

end

 

lamana

 

 
Wynik: 
Dla ruchu w linii prostej: 

dlugosc =    1.6498 
lamana =    1.2965 

Dla ruchu po okręgu: 

dlugosc =    2.1025 
lamana =    2.0922 
 
wartości zostały podane w metrach. 
 
Porównując obliczoną długość toru ruchu oraz łamaną powstałą przez połączenie założonych 
punków dla toru ruchu w kształcie prostej można zauważyć znaczne różnice. Trajektoria 
ruchu to ok 133% długości łamanej. Podczas gdy łamana ma kształt zbliżony do prostej, 
trajektoria w niewielu miejscach pokrywa się z wykresem prostej.  
W przypadku toru ruchu z kształcie ruchu, oba wykresy są do siebie podobne zarówno pod 
względem kształtu oraz długości.  
W wyznaczonych trajektoriach nie ma kątów.  Brak ostrych przejść powoduje mniejsze 
drgania oraz większą dokładność.