projekt lukasz doc


AKADEMIA

GÓRNICZO - HUTNICZA

im. Stanisława Staszica w Krakowie

0x01 graphic

Wydział:

Inżynierii Mechanicznej i Robotyki

PODSTAWY ROBOTYKI

Prowadzący:

dr inż. Tomasz Buratowski

Student:

Łukasz Kafel

Kierunek: Mechatronika

Ocena:

Grupa: 25

Numer indeksu: 215426

PROJEKT


Poniżej na schematach przedstawiono 5 manipulatorów dla których policzono liczbę stopni sfobody, ruchliwość oraz manewrowość.

Zaproponowane struktury kinematyczne posiadają otwarty łańcuch kinematyczny, a poszczególne elementy są połączone ze sobą przegubami V klasy obrotowymi lub przesuwnymi możliwe jest wobec tego zastosowanie do poniższych struktur notacji Denavita Hartenberga.

1 Manipulator

0x01 graphic

Liczbę stopni swobody obliczymy z następującego wzoru:

0x01 graphic

Gdzie:

w - liczba stopni swobody

n - liczba członów ruchomych

pi - liczba połączeń i-tej klasy

Dla pierwszego manipulatora mamy:

0x01 graphic

Ruchliwość naszego manipulatora jest równa liczba stopni swobody

Aby manipulator spełniał swoje zadania konieczne jest zastosowanie 6 napędów w przegubach

0x01 graphic

Unieruchomienie w przestrzeni końcówki manipulatora uniemożliwi ruch względny członów pośrednich, stąd manewrowość równa jest 0

2 Manipulator

0x08 graphic
Dla drugiego manipulatora podobnie mamy:

0x01 graphic

Aby manipulator spełniał swoje zadania konieczne jest zastosowanie 6 napędów w przegubach

0x01 graphic

Przy unieruchomieniu w przestrzeni końcówki manipulatora będzie możliwy ruch względny w 4 przegubach.

3 Manipulator

0x01 graphic

Dla trzeciego manipulatora mamy:

0x01 graphic

Aby manipulator spełniał swoje zadania konieczne jest zastosowanie 7 napędów w przegubach

0x01 graphic

Przy unieruchomieniu w przestrzeni końcówki manipulatora będzie możliwy ruch względny w 5 przegubach.

4 Manipulator

0x01 graphic

Dla czwartego manipulatora mamy:

0x01 graphic

Aby manipulator spełniał swoje zadania konieczne jest zastosowanie 6 napędów w przegubach

0x01 graphic

Przy unieruchomieniu w przestrzeni końcówki manipulatora będzie możliwy ruch względny w 5 przegubach.

5 Manipulator

0x01 graphic

Dla piątego manipulatora mamy:

0x01 graphic

Aby manipulator spełniał swoje zadania konieczne jest zastosowanie 6 napędów w przegubach

0x01 graphic

Unieruchomienie w przestrzeni końcówki manipulatora uniemożliwi ruch względny członów pośrednich, stąd manewrowość równa jest 0.

Poniżej przedstawiono zakresy ruchów manipulatorów

1 Manipulator

0x01 graphic

2 Manipulator

0x01 graphic

3 Manipulator

0x01 graphic

5 Manipulator

0x01 graphic

4 Manipulator

0x01 graphic

Kinematyka prosta

1. Parametry kinematyczne dla pierwszego manipulatora

układ

Θi

di

ai

αi

1

Θ1var

d1 (100)

0

0

2

0

d2var

a2(100)

0

3

900

0

0

900

4

0

d4var

0

-900

5

0

d5 (200)

0

0

6

900

0

0

900

7

90+ Θ7var

0

a7(100)

0

8

0

0

0

-900

9

Θ9var

d9 (500)

0

0

10

900

0

0

900

11

Θ11var

0

0

0

12

900

0

a12(200)

0

Wartości obliczone analitycznie

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

Wartości obliczone w programie MAPLE (kod)

> 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]);

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

> A[2] := multiply(Trans[z, d[2]], Trans[x, d[2]]);

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

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

> A[3] := multiply(Rot[z, theta[3]], Rot[x, theta[3]]);

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

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

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

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

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

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

> A[6] := multiply(Rot[z, theta[6]], Rot[x, theta[6]]);

> Rot[z, theta[7]] := matrix(4, 4, [cos(theta[7]+(1/2)*Pi), -sin(theta[7]+(1/2)*Pi), 0, 0, sin(theta[7]+(1/2)*Pi), cos(theta[7]+(1/2)*Pi), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

> Trans[x, d[7]] := matrix(4, 4, [1, 0, 0, d[7], 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

> A[7] := multiply(Rot[z, theta[7]], Trans[x, d[7]]);

> A[8] := matrix(4, 4, [1, 0, 0, 0, 0, cos(-(1/2)*Pi), -sin(-(1/2)*Pi), 0, 0, sin(-(1/2)*Pi), cos(-(1/2)*Pi), 0, 0, 0, 0, 1]);

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

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

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

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

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

> A[10] := multiply(Rot[z, theta[10]], Rot[x, theta[10]]);

> A[11] := matrix(4, 4, [cos(theta[11]), -sin(theta[11]), 0, 0, sin(theta[11]), cos(theta[11]), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

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

> Trans[x, d[12]] := matrix(4, 4, [1, 0, 0, d[12], 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

> A[12] := multiply(Rot[z, theta[12]], Trans[x, d[12]]);

> T[12, 0] := map(combine, multiply(A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8], A[9], A[10], A[12], A[12]));

0x08 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

2. Parametry kinematyczne dla drugiego manipulatora

układ

Θi

di

ai

αi

1

Θ1var

d1 (500)

0

-900

2

Θ2var

0

a2(500)

0

3

Θ3var

0

a3(500)

0

4

-900

0

0

900

5

Θ5var

d5 (250)

0

0

6

0

0

0

900

7

Θ7var

0

0

0

8

900

0

0

-900

9

0

d9 (50)

0

0

10

0

d10var

0

0

11

0

d11 (200)

0

0

Wartości obliczone analitycznie

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

Wartości obliczone w programie MAPLE (kod)

> 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]);

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

> A[1] := multiply(Rot[z, theta[1]], Trans[z, d[1]], Rot[x, theta[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, d[2]] := matrix(4, 4, [1, 0, 0, d[2], 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

> A[2] := multiply(Rot[z, theta[2]], Trans[x, d[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, d[3]] := matrix(4, 4, [1, 0, 0, d[3], 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

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

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

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

> A[4] := multiply(Rot[z, theta[4]], Rot[x, theta[4]]);

> 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]]);

> A[6] := matrix(4, 4, [1, 0, 0, 0, 0, cos((1/2)*Pi), -sin((1/2)*Pi), 0, 0, sin((1/2)*Pi), cos((1/2)*Pi), 0, 0, 0, 0, 1]);

> A[7] := matrix(4, 4, [cos(theta[7]), -sin(theta[7]), 0, 0, sin(theta[7]), cos(theta[7]), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

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

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

> A[8] := multiply(Rot[z, theta[8]], Rot[x, theta[8]]);

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

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

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

> T[11, 0] := map(combine, multiply(A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8], A[9], A[10], A[11]));

0x01 graphic

0x01 graphic

3 Parametry kinematyczne trzeciego manipulatora

układ

Θi

di

ai

αi

1

0

d1 (100)

0

0

2

0

d2var

a2(50)

0

3

900

0

0

900

4

0

d4var

0

0

5

900

0

a5(100)

0

6

Θ6var

0

0

0

7

900

0

0

900

8

0

d8 (50)

0

-900

9

900

d9var

a9(200)

0

10

0

0

0

900

11

Θ11var

0

a11(200)

0

12

Θ12var

0

a12(200)

0

13

900

0

0

900

14

Θ14var

d14(100)

0

0

Obliczenia analityczne

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

Obliczenia numeryczne

> A[1] := matrix(4, 4, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, d[1], 0, 0, 0, 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]);

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

> A[2] := multiply(Trans[z, d[2]], Trans[x, d[2]]);

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

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

> A[3] := multiply(Rot[z, theta[3]], Rot[x, theta[3]]);

> 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((1/2)*Pi), -sin((1/2)*Pi), 0, 0, sin((1/2)*Pi), cos((1/2)*Pi), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

> Trans[x, d[5]] := matrix(4, 4, [1, 0, 0, d[5], 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

> A[5] := multiply(Rot[z, theta[5]], Trans[x, d[5]]);

> A[6] := matrix(4, 4, [cos(theta[6]), -sin(theta[6]), 0, 0, sin(theta[6]), cos(theta[6]), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

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

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

> A[7] := multiply(Rot[z, theta[7]], Rot[x, theta[7]]);

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

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

> A[8] := multiply(Trans[z, d[8]], Rot[x, theta[7]]);

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

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

> Trans[x, d[9]] := matrix(4, 4, [1, 0, 0, d[9], 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

> A[9] := multiply(Rot[z, theta[9]], Trans[z, d[9]], Trans[x, d[9]]);

> A[10] := matrix(4, 4, [1, 0, 0, 0, 0, cos((1/2)*Pi), -sin((1/2)*Pi), 0, 0, sin((1/2)*Pi), cos((1/2)*Pi), 0, 0, 0, 0, 1]);

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

> Trans[x, d[11]] := matrix(4, 4, [1, 0, 0, d[11], 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

> A[11] := multiply(Rot[z, theta[11]], Trans[x, d[11]]);

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

> Trans[x, d[12]] := matrix(4, 4, [1, 0, 0, d[12], 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

> A[12] := multiply(Rot[z, theta[12]], Trans[x, d[12]]);

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

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

> A[13] := multiply(Rot[z, theta[13]], Rot[x, theta[13]]);

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

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

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

> T[14, 0] := map(combine, multiply(A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8], A[9], A[10], A[12], A[12], A[13], A[14]));

0x01 graphic

4 Parametry kinematyczne czwartego manipulatora

układ

Θi

di

ai

αi

1

Θ1var

d1 (100)

0

0

2

0

d2var

0

0

3

0

0

a3(200)

900

4

Θ4var+450

0

a4(100)

0

5

900

0

0

900

6

0

d6var

0

0

7

0

0

a7(200)

900

8

Θ8var-450

0

a8(500)

0

9

Θ9var+450

0

a9(250)

0

Obliczenia analityczne

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic
0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

Obliczenia numeryczne

> 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]]);

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

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

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

> A[3] := multiply(Trans[x, d[3]], Rot[x, theta[3]]);

> Rot[z, theta[4]] := matrix(4, 4, [cos(theta[4]+(1/4)*pi), -sin(theta[4]+(1/4)*pi), 0, 0, sin(theta[4]+(1/4)*pi), cos(theta[4]+(1/4)*pi), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

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

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

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

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

> A[5] := multiply(Rot[z, theta[5]], Rot[x, theta[5]]);

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

> Trans[x, d[7]] := matrix(4, 4, [1, 0, 0, d[7], 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

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

> A[7] := multiply(Trans[x, d[7]], Rot[x, theta[7]]);

> Rot[z, theta[8]] := matrix(4, 4, [cos(theta[8]-(1/4)*pi), -sin(theta[8]-(1/4)*pi), 0, 0, sin(theta[8]-(1/4)*pi), cos(theta[8]-(1/4)*pi), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

> Trans[x, d[8]] := matrix(4, 4, [1, 0, 0, d[8], 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

> A[8] := multiply(Rot[z, theta[8]], Trans[x, d[8]]);

> Rot[z, theta[9]] := matrix(4, 4, [cos(theta[8]+(1/4)*pi), -sin(theta[8]+(1/4)*pi), 0, 0, sin(theta[8]+(1/4)*pi), cos(theta[8]+(1/4)*pi), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

> Trans[x, d[9]] := matrix(4, 4, [1, 0, 0, d[9], 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

> A[9] := multiply(Rot[z, theta[8]], Trans[x, d[9]]);

> T[9, 0] := map(combine, multiply(A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8], A[9]));

0x01 graphic

5 Parametry kinematyczne piątego manipulatora

układ

Θi

di

ai

αi

1

Θ1var

0

a1(500)

0

2

Θ2var+450

0

a2(500)

0

3

Θ3var+900

0

a3(100)

0

4

-900

0

0

-900

5

0

d5var

0

0

6

1800

d6 (200)

a6(25)

0

7

Θ7var

d7 (150)

0

0

8

900

0

0

900

9

Θ9var+900

0

a9(200)

0

Obliczenia analityczne

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

Obliczenia numeryczne

> 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[x, d[1]] := matrix(4, 4, [1, 0, 0, d[1], 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

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

> Rot[z, theta[2]] := matrix(4, 4, [cos(theta[2]+(1/4)*pi), -sin(theta[2]+(1/4)*pi), 0, 0, sin(theta[2]+(1/4)*pi), cos(theta[2]+(1/4)*pi), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

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

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

> Rot[z, theta[3]] := matrix(4, 4, [cos(theta[3]+(1/2)*pi), -sin(theta[3]+(1/2)*pi), 0, 0, sin(theta[3]+(1/2)*pi), cos(theta[3]+(1/2)*pi), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

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

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

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

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

> A[4] := multiply(Rot[z, theta[4]], Rot[x, theta[4]]);

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

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

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

> Trans[x, d[6]] := matrix(4, 4, [1, 0, 0, d[6], 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

> A[6] := multiply(Rot[z, theta[6]], Trans[z, d[6]], Trans[x, d[6]]);

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

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

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

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

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

> A[8] := multiply(Rot[z, theta[8]], Rot[x, theta[8]]);

> Rot[z, theta[9]] := matrix(4, 4, [cos(theta[9]+(1/2)*pi), -sin(theta[9]+(1/2)*pi), 0, 0, sin(theta[9]+(1/2)*pi), cos(theta[9]+(1/2)*pi), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

> Trans[x, d[9]] := matrix(4, 4, [1, 0, 0, d[9], 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);

> A[9] := multiply(Rot[z, theta[9]], Trans[x, d[9]]);

> T[9, 0] := map(combine, multiply(A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8], A[9]));

0x01 graphic

27



Wyszukiwarka

Podobne podstrony:
projekt luk, zut, projekt łukasz 1 i 2
Projekt Ogrzewnitwo33 doc
projekt Lukasz, Podstawy konstrukcji maszyn zadania, PKM
Projekt wału doc
projekt badania doc
Projekt z oźe doc
ĆWICZENIE PROJEKTOWE NR 2 (3) doc
ĆWICZENIE PROJEKTOWE NR 2 (2) doc
współfinansowanie projektów PHARE doc
PROJEKT (32) DOC
Projekt Łukasz Ładak BAD
projekt wału doc
PROJEKT wzor DOC
Microsoft Word GI w sprawie projektow gotowych doc GI w sprawie projektow gotowych
Projekt ZJ (2) doc
~$p projekt fin doc
RYSUNEK DO PROJEKTU KG doc
INSTRUKCJA DO PROJEKTU SZKOLNEGO doc
~$pia Projekt 3 oryginał (2) doc

więcej podobnych podstron