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
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.
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
Dla ruchu po okręgu:
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.
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
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ść.
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ść.