Uploaded by tyxrlaphnwgsqsbswn

Manipulator przeznaczony do celów dydaktycznych

advertisement
Politechnika Wrocławska
Wydział Elektroniki
Kierunek:
Specjalność:
Automatyka i Robotyka (AiR)
Robotyka (ARR)
PRACA DYPLOMOWA
MAGISTERSKA
Manipulator
przeznaczony do celów
dydaktycznych.
Autor:
Zbigniew Struzik
Prowadzący pracę:
dr inż. Marek Wnuk, I-6
Ocena pracy:
Wrocław 2005
Składam serdeczne podziękowania Panu dr. Markowi Wnukowi za pomoc, poświęcony czas oraz zaangażowanie. Chciałem również podziękować Panu Ryszardowi Krzywańskiemu za
cenne rady i pomoc w wykonaniu konstrukcji mechanicznej. Na końcu chciałem podziękować firmom MICROMOTORS i AUSTRIAMICROSYSTEMS za bezpłatne przekazanie
silników i koderów.
Spis treści
1 Wstęp
1.1 Cel i zakres pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
6
2 Kinematyka manipulatora
2.1 Reprezentacja Denavita-Hartenberga . . . . . . . . . . . . . .
2.2 Wyprowadzenie kinematyki prostej
manipulatora . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Kinematyka odwrotna manipulatora – podejście geometryczne
2.4 Konfiguracje wyróżnione manipulatora . . . . . . . . . . . . .
2.5 Transformacja napędowa osi robota . . . . . . . . . . . . . . .
2.5.1 Rozwiązanie napędów ogniwa 1,2 i 3 . . . . . . . . . .
2.5.2 Rozwiązanie napędu ogniwa 4 i 5 . . . . . . . . . . . .
7
7
3 Konstrukcja robota ZS5R
3.1 Konstrukcja mechaniczna . . . . . . . . . . . .
3.1.1 Silniki manipulatora . . . . . . . . . .
3.2 Konstrukcja elektroniczna – sterownik robota
3.2.1 Budowa modułu sterowania . . . . . .
3.2.2 Budowa modułu mocy . . . . . . . . .
3.2.3 Opis łączówek sterownika . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
10
13
14
14
16
.
.
.
.
.
.
18
18
20
23
24
25
27
4 Oprogramowanie sterownika
31
4.1 Funkcja główna main() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2 Procedura obsługi przerwania cyklicznego . . . . . . . . . . . . . . . . . . 32
5 Badania i wyniki eksperymentów
36
6 Podsumowanie
38
7 Dodatek A
41
7.1 Parametry mechaniczne manipulatora . . . . . . . . . . . . . . . . . . . . . 41
7.2 Rysunki techniczne części mechanicznej . . . . . . . . . . . . . . . . . . . . 42
8 Dodatek B
60
8.1 Wykaz elementów części elektronicznej . . . . . . . . . . . . . . . . . . . . 60
9 Dodatek C
63
9.1 Schematy ideowe i rysunki montażowe części elektronicznej . . . . . . . . . 63
1
10 Przykładowa instrukcja laboratoryjna
10.1 Cel ćwiczenia. . . . . . . . . . . . . . . . . . . . . . . . . .
10.2 Podstawy teoretyczne. . . . . . . . . . . . . . . . . . . . .
10.2.1 Charakterystyka robota ZS5R. . . . . . . . . . . . .
10.2.2 Struktura kinematyczna dla współrzędnych
przegubowych qi . . . . . . . . . . . . . . . . . . . .
10.2.3 Transformacja Denavita-Hartenberga dla zmiennych
10.3 Przebieg ćwiczenia . . . . . . . . . . . . . . . . . . . . . .
10.3.1 Obsługa stanowiska . . . . . . . . . . . . . . . . . .
10.3.2 Wstępne przygotowanie do ćwiczenia. . . . . . . . .
10.3.3 Zadania do wykonania. . . . . . . . . . . . . . . . .
2
73
. . . . . . . . . 73
. . . . . . . . . 73
. . . . . . . . . 73
. .
qi .
. .
. .
. .
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
74
75
75
75
76
76
Spis rysunków
2.1
2.2
2.3
2.4
2.5
Struktura
Struktura
Struktura
Struktura
Struktura
kinematyczna manipulator ZS5R. . . . . . . . . . .
szkieletowa robota. . . . . . . . . . . . . . . . . . .
układu przeniesienia napędu ogniwa 1 i 2. . . . . . .
układu przeniesienia napędu ogniwa 3. . . . . . . .
układu różnicowego napędzającego osie nadgarstka.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
11
14
16
17
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
Zdjęcie manipulator. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rysunek złożeniowy manipulatora z oznaczonymi głównymi częściami.
Zdjęcie silnika HLE149.24.43. . . . . . . . . . . . . . . . . . . . . . .
Zdjęcie silnika RHE158.24.100. . . . . . . . . . . . . . . . . . . . . . .
Zdjęcie ilustrujące sposób zamontowania magnesu na osi silnika. . . .
Zdjęcie ilustrujące sposób zamontowania kodera AS5040. . . . . . . .
Schemat blokowy układu sterowania manipulatora. . . . . . . . . . .
Płytka sterownika . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Moduł EM332/B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schemat blokowy regulatora prądu. . . . . . . . . . . . . . . . . . . .
Zasilacz części cyfrowej i analogowej . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
18
19
21
21
22
22
23
24
25
26
26
4.1
Schemat blokowy układu sterowania. . . . . . . . . . . . . . . . . . . . . . 34
5.1
5.2
5.3
Wykres odpowiedzi regulatora na zadany prąd. . . . . . . . . . . . . . . . 36
Rozpędzanie osi q0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Regulacja prędkości osi q0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.1
Widok skonstruowanego manipulatora. . . . . . . . . . . . . . . . . . . . . 38
7.1
7.2
Rysunek techniczny silnika RHE 158.24.100. . . . . . . . . . . . . . . . . . 42
Rysunek techniczny silnika HLE 149.24.43. . . . . . . . . . . . . . . . . . . 42
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
9.10
9.11
Schemat ideowy jednego z regulatorów prądu modułu mocy. . . . . . .
Schemat ideowy połączenia modułu EM332 z układami peryferyjnymi.
Schemat ideowy zasilacza. . . . . . . . . . . . . . . . . . . . . . . . . .
Schemat ideowy układu sterowania cewką przekaźnika. . . . . . . . . .
Schemat elektryczny kodera AS5040. . . . . . . . . . . . . . . . . . . .
Obwód drukowany wierzchniej warstwy płytki zasilacza. . . . . . . . . .
Obwód drukowany spodniej warstwy płytki zasilacza. . . . . . . . . . .
Rozmieszczenie elementów na wierzchniej stronie płytki zasilacza. . . .
Obwód drukowany wierzchniej warstwy płytki sterownika. . . . . . . .
Obwód drukowany spodniej warstwy płytki sterownika. . . . . . . . . .
Rozmieszczenie elementów na wierzchniej stronie płytki sterownika. . .
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
63
64
65
65
66
66
66
67
68
69
70
9.12
9.13
9.14
9.15
9.16
Rozmieszczenie elementów na spodniej stronie płytki sterownika. . . . . .
Obwód drukowany wierzchniej warstwy płytki kodera AS5040. . . . . . .
Obwód drukowany spodnie warstwy płytki kodera AS5040. . . . . . . . .
Rozmieszczenie elementów na wierzchniej warstwie płytki kodera AS5040.
Rozmieszczenie elementów na spodniej warstwie płytki kodera AS5040. .
.
.
.
.
.
71
72
72
72
72
10.1 Struktura kinematyczna manipulator ZS5R. . . . . . . . . . . . . . . . . . 74
4
Spis tabel
2.1
Parametry Denavita-Hartenberga manipulatora. . . . . . . . . . . . . . . .
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
Parametry silnika typu RHE158.24.100. . . .
Parametry silnika typu HLE149.24.43. . . .
Łączówka transmisji szeregowej Z10 . . . . . .
Sygnały łączówki transmisji szeregowej Z10 .
Łączówka Z8 . . . . . . . . . . . . . . . . . .
Opis sygnałów łączówki Z8 . . . . . . . . . .
Łączówka Z9 . . . . . . . . . . . . . . . . . .
Opis sygnałów łączówki Z9 . . . . . . . . . .
Opis złącza zasilania modułu mocy Z7 . . . .
Opis złącza zasilania Z12 . . . . . . . . . . . .
Opis złącza na płytce zasilacz Z13 . . . . . . .
Opis złącz Z1 ,...Z6 . . . . . . . . . . . . . . .
8.1
8.2
8.3
8.4
Zestawienie
Zestawienie
Zestawienie
Zestawienie
elementów
elementów
elementów
elementów
elektronicznych
elektronicznych
elektronicznych
elektronicznych
5
na
na
na
na
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
płytce
płytce
płytce
płytce
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
20
21
27
27
28
29
29
30
30
30
30
30
zasilacza. . . . .
kodera AS5040.
sterownika. . . .
sterownika. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
60
60
61
62
Rozdział 1
Wstęp
W laboratorium robotyki Zakładu Podstaw Cybernetyki i Robotyki, znajduje się manipulator dydaktyczny Romik. Robot ten jest klasy 5R, posiadający pięć stopni swobody. Do
napędu jego poszczególnych osi zastosowano silniki skokowe. Konstrukcja mechaniczna i
układ sterowania robota, pozwala jedynie na wykonywanie na nim podstawowych ćwiczeń związanych z identyfikacją parametrów geometrycznych manipulatora. Natomiast ze
względu na zastosowane do napędu osi silniki, nie pozwala on już na implementację algorytmów sterowania uwzględniających dynamikę robota. Poza tym, konstrukcja robota
jest dość przestarzała i wyeksploatowana mechanicznie. Z tego względu powstała potrzeba
zbudowania nowego manipulatora dydaktycznego, w którym napęd przegubów byłby zrealizowany za pomocą silników prądu stałego. Powinien on dawać możliwość wykonywania
dotychczasowych ćwiczeń jak i umożliwić w przyszłości implementację algorytmów sterowania opartych na dynamice robota. Także elektronika nowego robota powinien dawać
możliwość podłączenia zewnętrznego układu sterowania, na przykład karty współpracującej z pakietem MATLAB.
1.1
Cel i zakres pracy
Podstawowym celem pracy jest stworzenie stanowiska laboratoryjnego, którego głównym
elementem jest manipulator dydaktyczny. Stworzenie stanowiska realizowane jest przez:
• wykonanie od podstaw części mechanicznej manipulatora,
• zaprojektowanie i wykonanie elektroniki robota, pozwalającej współpracować z zewnętrznym układem sterowania,
• napisanie oprogramowania,
• przeprowadzenie badań,
• opracowanie przykładowej instrukcji laboratoryjnej.
W pracy tej zawarto teoretyczne podstawy dotyczące kinematyki prostej i odwrotnej
manipulatora jak i przedstawiono transformację napędową. Zamieszczono opis konstrukcji
części mechanicznej i elektronicznej robota (dokładną dokumentację techniczną robota
można znaleźć w dodatkach A, B i C). Opisano też oprogramowanie służące do obsługi
układów wykonawczych. Udokumentowano wykresy i wyniki eksperymentów uzyskanych
za pomocą wewnętrznych czujników manipulatora.
6
Rozdział 2
Kinematyka manipulatora
2.1
Reprezentacja Denavita-Hartenberga
Wyznaczenie kinematyki według notacji Denavita-Hartenberga [4] polega na związaniu
z każdym ramieniem (ogniwem) lokalnego układu współrzędnych umieszczonego w odpowiednim przegubie, a następnie wyznaczeniu ciągu transformacji pomiędzy kolejnymi
układami. W podstawie zaczepiamy nieruchomy układ oznaczony numerem 0. Dalej wybieramy układy od 1 do n tak, że układ i jest na sztywno związany z ogniwem i w taki
sposób, że
• oś Zi jest osią (i + 1)-go złącza, a zwrot tej osi może być przyjęty dowolnie;
• oś Xi jest wspólną normalną do osi złączy i -tego i (i + 1)-go i skierowana jest w
stronę ogniw o wyższych numerach;
• oś Yi jest uzupełnieniem dwóch poprzednich osi do prawoskrętnego, kartezjańskiego
układu współrzędnych. Ponieważ jest ona jednoznacznie określona przez położenia
osi Zi oraz Xi zatem niektórzy pomijają ją aby zwiększyć czytelność rysunków.
Transformacja Aii−1 pomiędzy układami (i − 1) oraz i jest zdefiniowana jako iloczyn
czterech macierzy elementarnych obrotów i przesunięć.
Aii−1 (qi ) = Rot(Z, θi )Trans(Z, di )Trans(X, ai )Rot(X, αi )
(2.1)
gdzie:
θi - kąt obrotu wokół osi Zi−1 ,
di - translacja wzdłuż bieżącej osi Z,
ai - translacja wzdłuż bieżącej osi X,
αi - kąt obrotu wokół bieżącej osi X,
są parametrami Denavita-Hartenberga. Kinematyka manipulatora wyznacza pozycję i
orientację układu efektora w bazowym układzie współrzędnych, i jest opisana złożeniem
transformacji (2.1) czyli
K(q) =
n
Y
Aii−1 (qi )
=
i=1
7
"
Rn0 (q) Tn0 (q)
0
1
#
.
(2.2)
2.2
Wyprowadzenie kinematyki prostej
manipulatora
Rozważany manipulator jest manipulatorem klasy 5R1 , posiadającym pięć stopni swobody. Manipulator ten składa się z pionowej, obrotowej kolumny o wysokości l1 , dwuczłonowego ramienia o długości l2 i l3 oraz nadgarstka z efektorem o długości l4 , ujmującej długość palców chwytaka. Wszystkie te ogniwa - ramiona są połączone przegubami, których
aktualny stan określa wektor stanu q = (q1 , q2 , q3 , q4 , q5 )T . Strukturę tego manipulatora
wraz z układami współrzędnych pokazano na rysunku 2.1. Układy współrzędnych zostały
Rysunek 2.1: Struktura kinematyczna manipulator ZS5R.
przyporządkowane zgodnie z algorytmem Denavita-Hartenberga. Następnym krokiem jest
wyznaczenie parametrów i zmiennych wiążących te układy. Zestawiono je w tabeli 2.1.
Nr ogniwa
1
2
3
4
5
θi
q1
q2
q3
q4 −
q5
π
2
di
l1
0
0
0
l4
ai
0
l2
l3
0
0
αi
π
2
0
0
− π2
0
Tabela 2.1: Parametry Denavita-Hartenberga manipulatora.
1
Oznacza to, że manipulator posiada pięć przegubów typu rotacyjnego (R).
8
W celu wyliczenia kinematyki manipulatora wyznaczamy transformacje między kolejnymi
układami współrzędnych zgodnie z (2.1).
A10 (q1 ) = Rot(Z, q1 )Trans(Z, l1 )Rot(X, π2 ),
A21 (q2 ) = Rot(Z, q2 )Trans(X, l2 ),
A32 (q3 ) = Rot(Z, q3 )Trans(X, l3 ),
(2.3)
A43 (q4 ) = Rot(Z, q4 )Rot(Z, − π2 )Rot(X, − π2 ),
A45 (q5 ) = Rot(Z, q5 )Trans(Z, l4 ),
Po wprowadzeniu oznaczeń sinqi = si , cosqi = ci , kolejne macierze przyjmują postać:
• przejście od układu 0 do 1:




A10 (q1 ) = 
c1
s1
0
0
0 s1
0 −c1
1 0
0 0
0
0
l1
1



,

• przejście od układu 1 do 2:


A21 (q2 ) = 



c2 −s2
s2 c2
0
0
0
0
0 l 2 c2
0 l2 s2 

,
1 0 
0 1
c3 −s3
s3 c3
0
0
0
0
0 l 3 c3
0 l3 s3 

,
1 0 
0 1
• przejście od układu 2 do 3:




A32 (q3 ) = 

• przejście od układu 3 do 4:




A43 (q4 ) = 
s4
−c4
0
0
• przejście od układu 4 do 5:
9
0 c4
0 s4
1 0
0 0
0
0
0
1



,





A54 (q5 ) = 
c5 −s5
s5 c5
0
0
0
0
0
0
1
0
0
0
l4
1



.

Mając wyliczone transformacje Aii−1 (qi ) między sąsiednimi układami współrzędnych definiujemy kinematykę manipulatora zgodnie z (2.2) jako
K(q) = A10 A21 A32 A43 A54 (q): X0 Y0 Z0 7−→ X5 Y5 Z5
czyli




K(q) = 

r11 r12 r13 lx
r21 r22 r23 ly 

,
r31 r32 r33 lz 
0
0
0 1
(2.4)
gdzie elementy tej macierzy są następujące:
r11
r12
r13
r21
r22
r23
r31
r32
r33
lx
ly
lz
2.3
=
=
=
=
=
=
=
=
=
=
=
=


cosq1 cosq5 sin(q2 + q3 + q4 ) − sinq1 sinq5 ,





−cosq1 sinq5 sin(q2 + q3 + q4 ) − sinq1 cosq5 ,





cosq1 cos(q2 + q3 + q4 ),




sinq1 cosq5 sin(q2 + q3 + q4 ) + cosq1 sinq5 ,





−sinq1 sinq5 sin(q2 + q3 + q4 ) + cosq1 cosq5 ,




sinq1 cos(q2 + q3 + q4 ),

−cos(q2 + q3 + q4 )cosq5 ,





cos(q2 + q3 + q4 )sinq5 ,





sin(q2 + q3 + q4 ),



l2 cosq1 cos2 + l3 cosq1 cos(q2 + q3 ) + l4 cosq1 cos(q2 + q3 + q4 ), 




l2 sinq1 cos2 + l3 sinq1 cos(q2 + q3 ) + l4 sinq1 cos(q2 + q3 + q4 ), 




l1 + l2 sinq2 + l3 sin(q2 + q3 ).
(2.5)
Kinematyka odwrotna manipulatora – podejście
geometryczne
W poprzednim punkcie została wyznaczona kinematyka prosta manipulatora, która wyznacza położenie i orientację efektora w zależności od konfiguracji jego przegubów. W
tym punkcie zostanie przedstawione zadanie odwrotne, a mianowicie wyliczenie wartości
kolejnych zmiennych przegubowych przy narzuconym położeniu i orientacji efektora. Zadanie to jest nazywane odwrotnym zadaniem kinematyki. Rozwiązanie zadania kinematyki
odwrotnej jest niezwykle istotne ze względu na efektywność sterowania manipulatorem
robota. Zadania do wykonania przez robota są bowiem w sposób naturalny formułowane
w kategoriach pożądanych położeń i orientacji efektora, wyrażonych w układzie kartezjańskim związanym z podstawą robota.
10
Przy podejściu geometrycznym [1] [2] do rozwiązania zagadnienia kinematycznego konieczne jest zdekomponowanie przestrzennego zagadnienia geometrycznego na szereg zagadnień planarnych. Przy tej metodzie zmienne przegubowe mogą być wyznaczone za
pomocą metod stosowanych w płaskiej geometrii. Na rysunku 2.2 przedstawiony jest
szkieletowy model robota wraz z odpowiednio oznaczonymi kątami. Danymi wejściowymi
są położenie i orientacja chwytaka P (Px , Py , Pz , η, %), gdzie Px , Py , Pz określa położenie
punktu pracy chwytaka względem bazowego układu odniesienia, kąt η określa kąt nutacji
efektora, zaś kąt % jest równy kątowi q5 , który odpowiedzialny jest za rotację wokół osi
Z5 .
Rysunek 2.2: Struktura szkieletowa robota.
W celu wyznaczenia kąta q1 , rzutujemy punkt pracy chwytaka P na płaszczyznę wyzna11
czoną przez osie X0 , Y0 , stąd widzimy, że
tan q1 =
Py
,
Px
(2.6)
czyli
q1 = Atan2(Py , Px ),
(2.7)
gdzie Atan2(·, ·) oznacza dwuargumentową funkcję arcus tangens.
W celu ułatwienia obliczenia kolejnych zmiennych przegubowych wyznaczony został punkt
pomocniczy Pc o współrzędnych




Pcx
Px − k cos q1




Pc =  Pcy  =  Py − k sin q1  ,
Pcz
Pz − l4 sin η
gdzie k = l4 cos η.
(2.8)
Aby wyznaczyć kąt q3 wykorzystuje się twierdzenie cosinusów
d2 = l22 + l32 − 2l2 l3 cos (π − q3 ).
(2.9)
Ponieważ zachodzi zależność cos (π − q3 ) = − cos q3 , oraz dla dowolnej konfiguracji mani2
2
pulatora jest spełniony związek d2 = r 2 +(Pcz −l1 )2 , gdzie r 2 = Pcx
+Pcy
, zatem otrzymuje
się dalej
2
2
Pcx
+ Pcy
+ (Pcz − l1 )2 = l22 + l32 + 2l2 l3 cos q3 ,
(2.10)
i stąd
2
2
Pcx
+ Pcy
+ (Pcz − l1 )2 − l22 − l32 .
= D.
2l2 l3
Istnieją dwa rozwiązania powyższego równania, a mianowicie
cos q3 =
q3 = arccos
2
2
Pcx
+ Pcy
+ (Pcz − l1 )2 − l22 − l32
,
2l2 l3
stąd 0 ¬ q3 ¬ π,
(2.11)
(2.12)
oraz
q3 = − arccos
2
2
Pcx
+ Pcy
+ (Pcz − l1 )2 − l22 − l32
,
2l2 l3
stąd
− π ¬ q3 ¬ 0.
(2.13)
Jednakże lepszym sposobem znalezienia kąta q3 jest zauważenie, że jeśli cos q3 jest dany
wzorem (2.11), to sin q3 jest dany odpowiednio wzorem
√
sin q3 = ± 1 − D 2 ,
(2.14)
i stąd można wyznaczyć
√
q3 = Atan2(± 1 − D 2 , D).
(2.15)
Zaletą tego drugiego sposobu jest rozróżnienie obu konfiguracji ”łokieć u góry” i ”łokieć
u dołu” przez wybór odpowiedniego znaku w równaniu (2.15).
W celu wyliczenia kąta q2 wyznacza się wyrażenia na kąty pomocnicz δ oraz α zaznaczone
na rysunku 2.2. Dla kąta δ zachodzi
tan δ =
Pcz − l1
Pcz − l1
=q
,
2 − P2
r
Pcx
cy
12
(2.16)
czyli
δ = Atan2(Pcz − l1 ,
Podobnie wyznaczamy kat α
tan α =
q
2 − P 2 ).
Pcx
cy
(2.17)
l3 sinq3
,
l2 + l3 cosq3
(2.18)
czyli
α = Atan2(l3 sinq3 , l2 + l3 cosq3 ).
(2.19)
Z rysunku otrzymuje się prostą zależność między kątami q2 , δ, α, a mianowicie q2 = δ − α,
z której wynika,że
q2 = Atan2(Pcz − l1 ,
q
2 − P 2 ) − Atan2(l sinq , l + l cosq ).
Pcx
3
3 2
3
3
cy
(2.20)
Wartość kąta q2 zależy od kąta q3 . Ma to znaczenie fizyczne, ponieważ otrzymamy
różne wartości kąta q2 w zależności od tego, które rozwiązanie wybierzemy dla kąta q3 .
Z kolei kąt q4 wyznaczamy z następującego związku η = q2 + q3 + q4 czyli
q4 = η − q 2 − q 3 .
(2.21)
Reasumując dla P (Px , Py , Pz , η, %) otrzymujemy następujące zależności:



q1 = Atan2(Py , Px ),




q


2
2

q2 = Atan2(Pcz − l1 , Pcx − Pcy ) − Atan2(l3 sinq3 , l2 + l3 cosq3 ), 



√
q3 = Atan2(± 1 − D 2 , D),
q4 = η − q 2 − q 3 ,
q5 = %.
gdzie
Pcx = Px − k cos q1 , Pcy = Py − k sin q1 , Pcz = Pz − l4 sin η, D =
k = l4 cos η.
2.4













(2.22)
2 +P 2 +(P −l )2 −l2 −l2
Pcx
cz
1
cy
2
3
,
2l2 l3
Konfiguracje wyróżnione manipulatora
W celu mechanicznego sprawdzenia poprawności pozycjonowania manipulatora wyróżniono konfigurcję zerową manipulatora zwaną również konfiguracją geometryczną q 0 =
(q01 , q02 , q03 , q04 , q05 ), dla której zmienne przegubowe przyjmują następujace wartości:
q01 = 0 [◦ ],
q02 = 0 [◦ ],
q03 = 0 [◦ ],
q04 = 0 [◦ ],
q05 = 0 [◦ ].
13
(2.23)
Ogniwa 1,2,3,4,5 są ustawione w pozycji swojego środkowego zakresu pracy.
Drugą wyróżnioną konfiguracją jest konfiguracja synchronizacji. Jej osiągnięcie jest
sygnalizowane przez czujniki zamontowane w poszczególnych przegubach i kanały indeksujące koderów, odczytywane przez układ sterowania robota. Dla ogniw 1,2,4,5 czujniki
zostały zamontowane tak, aby zachować zgodność z konfiguracją zerową. W przypadku
ogniwa 3 położenie czujnika jest różne od położenia zerowego. Dokładne wartości położeń
napędów ogniw w konfiguracji synchronizacji podano w dodatku A.
2.5
Transformacja napędowa osi robota
Sterownik robota zarówno mierzy, jak i zadaje pozycje i prędkości poszczególnych osi w
tzw. przestrzeni napędowej, której współrzędne opisują położenia wałów poszczególnych
silników. Istotne jest więc podanie sposobu przeniesienia napędu dla poszczególnych osi
jak i równań wiążących położenia wałów silników Mi ze zmiennymi przegubowymi qi .
Do napędu poszczególnych osi robota jak i do napędu mechanizmu zamykającego chwytak
zastosowano silniki elektryczne prądu stałego z magnesem trwałym. Pomiar położenia
wałów silników jest realizowany przy pomocy koderów przyrostowych o rozdzielczości D
= 1024 impulsów na jeden obrót.
Wszystkie silniki napędowe, są wyposażone w przekładnie wielostopniowe o przełożeniach
G1 = G2 = G3 = G6 = 94.37 i G4 = G5 = 43.3.
2.5.1
Rozwiązanie napędów ogniwa 1,2 i 3
Napęd ogniwa 1 (obrót kolumny) jest przenoszony przez przekładnię wielostopniową o
przełożeniu G1 a następnie przez przekładnię jednostopniową o przełożeniu ZZ12 , gdzie Z1
i Z2 oznacza ilość zębów dla poszczególnych kół przekładni jednostopniowej. Na rysunku 2.3 jest pokazany sposób przeniesienia napędu dla ogniwa 1 i 2. Równanie opisujące
przeniesienie napędu jest następujące
Rysunek 2.3: Struktura układu przeniesienia napędu ogniwa 1 i 2.
14
q1 − q01 =
Z1 2π
(M1 − M01 ),
Z2 DG1
(2.24)
gdzie q0i jest wartością zmiennej przegubowej qi w konfiguracji zerowej, a M0i jest wartością zmiennej napędowej Mi w konfiguracji zerowej.
Transformacja prosta napędu
c1 = cos q1
(2.25)
s1 = sin q1 ,
ostatecznie ma postać
c1 = cos (q01 +
Z1 2π
(M1 − M01 )),
Z2 DG1
(2.26)
s1 = sin (q01 +
Z1 2π
(M1 − M01 )),
Z2 DG1
(2.27)
a transformacja odwrotna
q1 = Atan2(s1 , c1 ),
(2.28)
czyli
Z2 DG1
(Atan2(s1 , c1 ) − q01 ).
(2.29)
Z1 2π
W przypadku ogniwa 2 (główne ramię) sposób przeniesienia napędu jest analogiczny jak
w przypadku ogniwa 1 rysunek 2.3. A mianowicie, dla ogniwa drugiego, równanie napędu
wyraża się wzorem
Z3 2π
q2 − q02 =
(M2 − M02 ),
(2.30)
Z4 DG2
Transformacja prosta napędu ma postać
M1 = M01 +
c2 = cos (q02 +
Z3 2π
(M2 − M02 )),
Z4 DG2
(2.31)
s2 = sin (q02 +
Z3 2π
(M2 − M02 )),
Z4 DG2
(2.32)
a transformacja odwrotna
q2 = Atan2(s2 , c2 ).
(2.33)
Z kolei dla ogniwa trzeciego sposób przeniesienia napędu różni się od sposobu w ogniwie 1
i 2 jedynie tym, że czynne koło zębate Z5 przekładni jednostopniowej nie jest zamocowane
na osi przekładni G3 a jest napędzane poprzez przekładnie pasową zębatą o przełożeniu
równym jeden, co widać na rysunku 2.4. Równanie napędu ogniwa 3 wyraża się wzorem
q3 − q03 =
Z5 2π
(M3 − M03 ),
Z6 DG3
(2.34)
Transformacja prosta napędu ma postać
c3 = cos (q03 +
Z5 2π
(M3 − M03 )),
Z6 DG3
(2.35)
s3 = sin (q03 +
Z5 2π
(M3 − M03 )),
Z6 DG3
(2.36)
a transformacja odwrotna
q3 = Atan2(s3 , c3 ).
15
(2.37)
Rysunek 2.4: Struktura układu przeniesienia napędu ogniwa 3.
2.5.2
Rozwiązanie napędu ogniwa 4 i 5
Ruch w ogniwie 4 (pochylenie nadgarstka) i ogniwie 5 (obrót chwytaka) zapewniają dwa
silniki elektryczne o przełożeniu G4 = G5 . Silniki te pracują w układzie różnicowym co
widać na rysunku 2.5. Mechanizm różnicowy jest zbudowany z pięciu stożkowych kół
zębatych, z których dwa koła o ilości zębów Z7 są osadzone na osiach silników, kolejne
dwa koła o ilości zębów Z8 wykonują ruch obrotowy w osi kąta q4 , natomiast ostatnie
koło zębate o liczbie zębów Z9 obraca się w osi kąta q5 . Równania przeniesienia napędu
dla ogniwa 4 wyrażają się następująco
q4 − q04 =
Z7 2π
((M5 − M05 ) − (M4 − M04 )),
2Z8 DG4
(2.38)
Transformacja prosta napędu
c4 = cos (q04 +
Z7 2π
((M5 − M05 ) − (M4 − M04 ))),
2Z8 DG4
(2.39)
s4 = sin (q04 +
Z7 2π
((M5 − M05 ) − (M4 − M04 ))),
2Z8 DG4
(2.40)
a transformacja odwrotna
q2 = Atan2(s2 , c2 ).
(2.41)
Z kolei dla ogniwa 5 otrzymujemy równania przeniesienia napędu postaci
q5 − q05 = −
Z7 2π
((M4 − M04 ) + (M5 − M05 )),
2Z9 DG5
(2.42)
Z7 2π
((M5 − M05 ) − (M4 − M04 ))),
2Z9 DG4
(2.43)
Transformacja prosta napędu
c5 = cos (q05 −
16
Rysunek 2.5: Struktura układu różnicowego napędzającego osie nadgarstka.
s5 = sin (q05 −
Z7 2π
((M5 − M05 ) − (M4 − M04 ))),
2Z9 DG4
(2.44)
a transformacja odwrotna
q2 = Atan2(s2 , c2 ).
(2.45)
Warto zwrócić uwagę, że efektywniejszą obliczeniowo implementację transformacji prostych i odwrotnych uzyskuje się dzięki nadmiarowej reprezentacji kątów przegubowych q i
jako par (ci , si ).
17
Rozdział 3
Konstrukcja robota ZS5R
3.1
Konstrukcja mechaniczna
Podstawowymi materiałami, z których została wykonana konstrukcja manipulatora robota stanowią blacha aluminiowa, kształtowniki aluminiowe (kątowniki, ceowniki) oraz
pręty stalowe. Poszczególne elementy konstrukcyjne zostały wycięte z blachy aluminiowej
o grubości 1-3mm i po odpowiednim wygięciu, poskręcane śrubami M 3. Tak zmontowane elementy stanowią korpusy poszczególnych ramion robota. Konstrukcja chwytaka
wykonano ceowników aluminowych. Na rysunku 3.1 przedstawiono wygląd manipulatora,
z kolei na rysunku 3.2 przedstawiono rysunek złożeniowy, który zawiera główne zespoły
konstrukcji mechanicznej.
Rysunek 3.1: Zdjęcie manipulator.
Oznaczenia na rysunku 3.2
18
Rysunek 3.2: Rysunek złożeniowy manipulatora z oznaczonymi głównymi częściami.
19
1 – podstawa manipulatora,
2 – kolumna obrotowa,
3 – główne ramie manipulatora,
4 – przedramie manipulatora,
5 – chwytak,
6 – piasta w której obraca się oś kolumny manipulatora,
M1 – silnik napędzający oś kolumny ,
M2 – silnik napędzający oś głównego ramienia,
M3 – silnik napędzający oś przedramienia ,
M45 – dwa silniki napędzjące osie chwytaka ,
M6 – silnik napędzjący mechanizm zamykania i otwierania kiści chwytaka.
Manipulator posiada pięć przegubów obrotowych, gdzie do 1-go (obrót kolumny) i 2-go
(ruch głównego ramienia) napęd jest przenoszony przez wielostopniową przekładnię zębatą
a następnie przez jednostopniową przekładnię. Zastosowanie dodatkowej jednostopniowej
przekładni związane jest z tym, iż zastosowane silniki nie posiadały dostatecznie dużego
momentu obrotowego do porusznia poszczególnych ramion manipulatora. Do układu napędowego przegubu trzeciego (ruch przedramienia) dodatkowo zastosowano pasek zębaty,
rysunek 2.4. Zasosowanie paska zębatego spowodowane jest tym, że silnik napędowy osi 3
jest umieszczony na końcu głównego ramienia rysunek 3.2. Umieszczenie tam silnika ma
swoje pozytywne konsekwencje, a mianowicie stanowi on swego rodzaju przeciwwagę, co
ma znaczenie ze względu na moment obrotowy potrzebny do ruchu głównego ramienia. Z
kolei dla przegubu 4-go i 5-go napęd jest zrealizowany przez układ różnicowy. Powoduje
to pewne utrudnienia w sterowaniu tymi osiami, równania przeniesienia napędu (2.38),
(2.42) pokazują, że są zależne od siebie, (rysunek 2.5).
Wszystkie parametry i rysunki wykonawcze poszczególnych części manipulatora zamieszczone są w dodatku A.
3.1.1
Silniki manipulatora
Manipulator posiada sześć silników prądu stałego firmy MICROMOTORS S.R.L [10], z
których cztery są typu RHE158.24.100 i dwa typu HLE149.24.43. Wszystkie te silniki są
konstrukcyjnie sprzężone z przekładniami wielostopniowymi, co widać na rysunkach 3.3 i
3.4. Do napędu kolumny robota, ramienia, przedramienia i wciągarki chwytaka wykorzystano silniki typu RHE158.24.100, a silniki typu HLE149.24.43 zastosowano do napędu
układu różnicowego chwytaka. Dane związane z wymiarami fizycznymi tych silników są
przedstawione na rysunkach umieszczonych w dodatku A. W poniższych tabelach zestawiono parametry techniczne silników napędowych.
znamionowe napięcie zasilania
przełożenie przekładni
maksymalny ciągły moment obrotowy
prędkość obrotowa bez obciązenia
prędkość obrotowa z max. momentem obciążenia
pobór prądu silnika w stanie jałowym
pobór prądu silnika przy max. obciążeniu
24[V ]
94.37 : 1
60[N cm]
66[obr/min]
45[obr/min]
< 70[mA]
340[mA]
Tabela 3.1: Parametry silnika typu RHE158.24.100.
20
Polecamy serwis z poradami dotyczącymi procesu pisania prac magisterskich - prace
magisrterskie - serwis z wytycznymi, wskazówkami, normami - całkowicie za darmo
Polecamy serwis darmowe _ prace mgr z bankowości - strona z darmowym i fragmentami
prac dyplomowych - prace magisterskie, licencjackie, semestralne, zaliczeniowe.
Polecamy serwis darmowe _ prace mgr z prawa - strona z darmowym i fragmentami prac
dyplomowych - prace magisterskie, licencjackie, semestralne, zaliczeniowe.
Polecamy solidny serwis darmowe prace mgr z prawa - znajdziecie tam darmowe fragmenty prac
dyplomowych - prace magisterskie, licencjackie, semestralne, zaliczeniowe.
Polecamy serwis z darmowymi referatami - darmowe prace - strona z darmowym referatami, esejami,
konspektami prac...
Polecamy serwis darmowe _ prace mgr z _ pedagogiki - strona z darmowym i fragmentami
prac dyplomowych - prace magisterskie, licencjackie, semestralne, zaliczeniowe.
Polecamy internetowy serwis darmowe _prace mgr z _zarządzania - strona z całkowicie
darmowym i fragmentami prac dyplomowych - prace licencjackie, magisterskie, semestralne i
zaliczeniowe.
Poradnik jak pisać prace dyplomowe znajdziesz na stronie abcpisania.
Forum o serwisach zajmujących się pisaniem prac licencjackich. Zamawialiście prace licencjackie,
chcecie o tym napisać? To jest właśnie odpowiednie miejsce - forum o pracach magisterskich
Mamy specjalistów z zakresu bankowości, rachunkowości, finansów, ekonomii, marketingu,
zarządzania, filologii polskiej, pedagogiki, socjologii, zarządzania zasobami ludzkimi, prawa,
administracji, hotelarstwa i turystyki.
Pisanie prac magisterskich i licencjackich
Nie kopiujemy z innych prac, nie przepisujemy, a każda z naszych prac tworzona jest bezpośrednio
pod potrzeby klienta i wykorzystywana tylko przez niego!
Prace magisterskie - dobre
Serwis "Prace magisterskie" pomoże napisać prace magisterskie i prace licencjackie zapracowanym
studentom.
Rysunek 3.3: Zdjęcie silnika HLE149.24.43.
Rysunek 3.4: Zdjęcie silnika RHE158.24.100.
znamionowe napięcie zasilania
przełożenie przekładni
maksymalny ciągły moment obrotowy
prędkość obrotowa bez obciązenia
prędkość obrotowa z max. momentem obciążenia
pobór prądu silnika w stanie jałowym
pobór prądu silnika przy max. obciążeniu
24[V ]
43.3 : 1
15[N cm]
78[obr/min]
55[obr/min]
< 50[mA]
120[mA]
Tabela 3.2: Parametry silnika typu HLE149.24.43.
21
Silniki te dodatkowo są fabrycznie wyposażone w kodery halotronowe. Jednak mała rozdzielczość (trzy impulsy na obrót wału silnika) nie pozwoliła na zastosowanie ich w tej
konstrukcji. Dlatego silniki te zostały wyposażone w kodery przyrostowo-impulsowe typu
AS5040 firmy AUSTRIAMICROSYSTEMS [6]. Możliwość zamontowania tych koderów
wiązała się z koniecznością modyfikacji konstrukcji silników. Przeróbki polegały na skróceniu wału silnika o 3mm a następnie zamontowaniu na nim magnesu neodymowego [7].
Wykonano również płytki drukowane do AS5040(dodatek C) przystosowane do zamocowania w miejsce fabrycznego kodera. Aby zamknąć nowy koder w obudowie, należało w
pokrywie wykonać podtoczenie o głębokości 1mm. Na rysunkach 3.5 i 3.6 przedstawione
Rysunek 3.5: Zdjęcie ilustrujące sposób zamontowania magnesu na osi silnika.
Rysunek 3.6: Zdjęcie ilustrujące sposób zamontowania kodera AS5040.
są zdjęcia ilustrujące sposób zamontowania koderów AS5040. Parametry tych koderów są
dostępne na stronie internetowej producenta [6].
22
3.2
Konstrukcja elektroniczna – sterownik robota
Robot ZS5R posiada manipulator, którego poszczególne ramiona mogą wykonywać sekwencje ruchów, za które odpowiedzialny jest układ sterowania. Między innymi zapewnia
on pomiar niezbędnych parametrów ruchu, takich jak położenia i prędkości. Ponadto
układ sterowania zapewnia komunikację z komputerem nadrzędnym w celu pobrania parametrów do realizacji zadania, oraz wysyłania do komputera nadrzędnego aktualnych
parametrów stanu robota. Na podstawie zadanych i zmierzonych parametrów sterownik
wymusza na silnikach umieszczonych w ramionach takie sterowania, aby przeprowadzić
efektor manipulatora z punktu początkowego do punktu docelowego. Moc obliczeniowa
jednostki centralnej powinna zapewnić wykonanie wszystkich niezbędnych obliczeń w jak
najkrótszym czasie. Na rysunku 3.7 przedstawiono schemat blokowy sterownika robota.
Szczegółowe schematy elektroniczne, rysunki montażowe płytki (rozmieszczenie elemen-
Rysunek 3.7: Schemat blokowy układu sterowania manipulatora.
tów i ścieżek) oraz wykaz elementów znajdują się w dodatku B i C.
Sterownik został zmontowany na płytce dwustronnej o wymiarach 94x260mm, co widać
na rysunku 3.8. Na płytce tej znajdują się:
• moduł EM332/B z mikrokontrolerem MC68332, zamocowany na dwóch złączach
48-stykowych każdy,
• przetwornik A/C typu MAX1270 pracujący na magistrali QSPI,
23
Rysunek 3.8: Płytka sterownika .
• dwa przetworniki C/A typu MAX525 pracujących na magistrali QSPI,
• układ transmisji szeregowej RS232C wykorzystujący SCI i translator poziomów napięciowych - układ MAX232A,
• klucz sterujący cewką przekaźnika,
• układ bramek NAND typu 74HCT132 będący układem wejściowym dla czujników
synchronizacji,
• sześć regulatorów prądu wykorzystujących układ wykonawczy L298N.
Sterownik manipulatora można podzielić na dwa moduły:
• moduł sterowania oparty na module EM332/B firmy ELFIN,
• moduł mocy zawierający układy wykonawcze wraz z regulatorami prądu,
3.2.1
Budowa modułu sterowania
Głównym elementem modułu sterowania jest moduł EM332/B, na którym znajduje się
jednostka centralna MC68332, rysunek 3.9. Wszystkie schematy elektryczne, rysunek płytki, rozmieszczenie elementów, zasoby mikrokontrolera MC68332 oraz zasada działania
modułu EM332/B są opisane w raporcie [5].
Schemat ideowy modułu sterowania znajduje się na rysunku 9.2 w dodatku C.
Za pomocą magistrali QSPI do modułu EM332/B podłączone są przetworniki:
• dwa układy MAX525 [9](czterokanałowy, 12-bitowy przewornik cyfrowo-analogowy
unipolarny o zakresie napięcia wyjściowego 0-2.5V, wymaga zewnętrznego napięcia
odniesienia) służą do zadawania prądu w układach wykonawczych,
• układ MAX1270 [9](ośmiokanałowy, 12-bitowy przetwornik analogowo-cyfrowy
uni/bipolarny o 10V zakresie pomiaru z wbudowanym źródłem napięcia odniesienia)
służy do mierzenia prądu pobieranego przez silniki wykonawcze,
24
Rysunek 3.9: Moduł EM332/B.
Do bloku TPU mikrokontrolera podłączone są kodery przyrostowe AS5040 [6]. Zapewniają
one pomiar położenia i prędkości. Zasotosowane kodery posiadają dwa wyjścia A/B, które
generują dwa przebiegi kwadraturowe przesunięte w fazie o 90 stopni. Rozdzielczość tych
koderów wynosi 256 impulsów/obrót osi silnika. Sygnały kodera są dekodowane w bloku
TPU standardową funkcją QDEC, dzięki której otrzymujemy informacje o położeniu wału silnika. Ponieważ dekodowanie uwzględnia wszystkie zbocza sygnałów wychodzących
z kodera, pomiar położenia osi silnika odbywa się z rozdzielczością 1024 impulsów/obrót
wału silnika. Natomiast prędkości silników mierzone są pośrednio przez pomiar okresu
sygnałów kwadraturowych generowanych przez kodery. Pomiar ten także jest realizowany
w bloku TPU. Funkcja QDVEL dokonująca pomiaru zlicza ilość impulsów zegara taktującego blok TPU w trakcie trwania jednego okresu sygnału kwadraturowego. Na podstawie
zliczonej ilości impulsów oprogramowanie sterownika oblicza aktuanle prędkści silników.
3.2.2
Budowa modułu mocy
Zastosowanie silników prądu stałego do napędu osi robota podyktowane było tym, że
silniki prądu stałego z magnesami trwałymi posiadą liniową zależność momentu napędowego generowanego przez silnik od prądu pobieranego. W rezultacie sterowanie prądowe
silników zapewnia kontrolę nad momentem uzyskiwanym na wale silnika. Z tego względu
moduł mocy został zbudowany z sześciu regulatorów prądu, które zawierają układy wykonawcze L298N [12]. Schemat ideowy jednego z tych regulatorów jest zamieszczony na
rysunku 9.1 w dodatku C. Na rysunku blokowym 3.10 przedstawiona jest idea działania
układu regulacji prądu. Regulacja ta polega na porównaniu wartości zadanej prądu silnika
z wartością rzeczywistą. Wartość rzeczywista prądu jest mierzona za pośrednictwem rezystorów pomiarowych Rp1 i Rp2 jako spadek napięcia na nich. Napięcie z dwóch rezystorów
pomiarowych jest podane na wejście wzmacniacza różnicowego. W układzie wykonawczym
prąd może płynąć tylko przez jeden rezystor w zależności od trybu pracy układu (obroty
w lewo, prawo). Po znaku różnicy potencjału na rezystorach układ rozpoznaje kierunek
płynącego prądu w silniku. Wartość napięcia ze wzmacniacza różnicowego podana jest na
filtr RC, a następnie na układ komparatora, porównujący prąd rzeczywisty z wartością
zadaną prądu. Wartość zadaną prądu ustawia się za pośrednictwem przetwornika C/A.
Filtr RC ma za zadanie uśrednić wartość prądu silnika i podać ją do przetwornika A/C,
dzięki któremu możemy diagnostycznie sprawdzać wartość rzeczywistą prądu płynącego
25
Rysunek 3.10: Schemat blokowy regulatora prądu.
przez silnik. Sygnał z układu komparatora jest podawany na układy logiczne, ktorych zadaniem jest wprowadzenie czasów opóźnień pomiędzy wyłączeniem jednej gałęzi mostka
a włączeniem drugiej gałęzi mostka. Blok układów logicznych zawiera układy 74HC123,
które są odpowiedzialne za czasy opóźnień.
Układ wykonawczy (mostek mocy) jest zasilany z napięcia +36V, natomiast pozostała
część elektroniki jest zasilana napięciem +5V (układy cyfrowe, przetworniki A/C i C/A),
±5V(wzmacniacze operacyjne, komparatory). Schemat ideowy zasilacza jest zamieszczony w dodatku C. Na rysunku 3.11 jest przedstawione zdjęcie zasilacza.
Rysunek 3.11: Zasilacz części cyfrowej i analogowej
26
3.2.3
Opis łączówek sterownika
Przyłączenie zewnętrznego terminala (lub komputera wyposażonego w złącze szeregowe)
jest możliwe dzięki złączu Z10 .
wolny
RxD
GND
wolny
wolny
1 2
3 4
5 6
7 8
9 10
TxD
wolny
wolny
wolny
wolny
Tabela 3.3: Łączówka transmisji szeregowej Z10 .
oznaczenie
TxD
RxD
GND
opis
wyjście danych nadawanych (RS232C)
wejście danych odbieranych (RS232C)
masa sygnałowa
styk
2
3
5
Tabela 3.4: Sygnały łączówki transmisji szeregowej Z10 .
Na złączu Z8 wyprowadzone są sygnały, które umożliwiają podłączenie zewnętrznego sterownika. W przypadku gdy wykorzystywany jest wewnętrzny układ sterowania sygnały
od STER I1 do STER I6 są odpowiednio połączone z STERI1 do STERI6 za pomocą
zworek. W przypadku gdy chcemy podłączyć zewnętrzny sterownik (na karta współpracująca z pakietem MATLAB ) rozwieramy powyższe sygnały, a do styków sygnałowych
oznaczonych STER I1,..., STER I6 podłączamy sygnały zewnętrzne o zakresie napięciowym 0-2.5V.
Wyprowadzenia i opis łączówki Z11 jest zamieszczony w raporcie [5]. Dwustykowe złącza
Z1 ,...,Z6 są wyjściami z poszczególnych stopni mocy i służą do przyłączenia silników.
27
GND
TPU10
TPU8
TPU6
TPU4
TPU2
TPU0
POM I1
POM I3
POM I5
STER I1
STER I2
STER I3
STER I4
STER I5
STER I6
wolny
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
2
Vcc
4 TPU11
6 TPU9
8 TPU7
10 TPU5
12 TPU3
14 TPU1
16 POM I2
18 POM I4
20 POM I6
22 STERI1
24 STERI2
26 STERI3
28 STERI4
30 STERI5
32 STERI6
34
wolny
Tabela 3.5: Łączówka Z8 .
28
oznaczenie
GND
Vcc
TPU10, TPU11
TPU8, TPU9
TPU6, TPU7
TPU4, TPU5
TPU2, TPU3
TPU0, TPU1
POM I1
POM I2
POM I3
POM I4
POM I5
POM I6
STER I1
STER I2
STER I3
STER I4
STER I5
STER I6
STERI1
STERI2
STERI3
STERI4
STERI5
STERI6
opis
masa sygnałowa
+5V
wyjścia kodera A/B na silniku M6
wyjścia kodera A/B na silniku M5
wyjścia kodera A/B na silniku M4
wyjścia kodera A/B na silniku M3
wyjścia kodera A/B na silniku M2
wyjścia kodera A/B na silniku M1
sygnał pomiaru prądu silnika M1 (-5V<POM I1<+5V)
sygnał pomiaru prądu silnika M2 (-5V<POM I2<+5V)
sygnał pomiaru prądu silnika M3 (-5V<POM I3<+5V)
sygnał pomiaru prądu silnika M4 (-5V<POM I4<+5V)
sygnał pomiaru prądu silnika M5 (-5V<POM I5<+5V)
sygnał pomiaru prądu silnika M6 (-5V<POM I6<+5V)
sygnał zadający prąd silnika M1 (0-2.5V)
sygnał zadający prąd silnika M2 (0-2.5V)
sygnał zadający prąd silnika M3 (0-2.5V)
sygnał zadający prąd silnika M4 (0-2.5V)
sygnał zadający prąd silnika M5 (0-2.5V)
sygnał zadający prąd silnika M6 (0-2.5V)
sygnał z C/A zadający prąd silnika M1 (0-2.5V)
sygnał z C/A zadający prąd silnika M2 (0-2.5V)
sygnał z C/A zadający prąd silnika M3 (0-2.5V)
sygnał z C/A zadający prąd silnika M4 (0-2.5V)
sygnał z C/A zadający prąd silnika M5 (0-2.5V)
sygnał z C/A zadający prąd silnika M6 (0-2.5V)
Tabela 3.6: Opis sygnałów łączówki Z8 .
INDEX2
INDEX1
INDEX4
INDEX3
INDEX6
INDEX5
TPU0
TPU2
TPU4
TPU6
TPU8
TPU10
GND
1
3
5
7
9
11
13
15
17
19
21
23
25
2
4
6
8
10
12
14
16
18
20
22
24
26
SYNCHR2
SYNCHR1
SYNCHR4
SYNCHR3
SYNCHR6
SYNCHR5
TPU1
TPU3
TPU5
TPU7
TPU9
TPU11
Vcc
Tabela 3.7: Łączówka Z9 .
29
styk
1
2
3, 4
5, 6
7, 8
9, 10
11, 12
13, 14
15
16
17
18
19
20
21
23
25
27
29
31
22
24
26
28
30
32
oznaczenie
SYNCHR1,...,SYNCHR6
INDEX1,...,INDEX6
TPU0, TPU1
TPU2, TPU3
TPU4, TPU5
TPU6, TPU7
TPU8, TPU9
TPU10, TPU11
GND
Vcc
opis
sygnały z czujników synchronizacji q1 ,..,q6
sygnały z kanałów indeks koderów D1 ,..,D6
wyjścia kodera A/B na silniku M1
wyjścia kodera A/B na silniku M2
wyjścia kodera A/B na silniku M3
wyjścia kodera A/B na silniku M4
wyjścia kodera A/B na silniku M5
wyjścia kodera A/B na silniku M6
masa sygnałowa
+5V
Tabela 3.8: Opis sygnałów łączówki Z9 .
opis styk
∼24V
1
∼24V
2
Tabela 3.9: Opis złącza zasilania modułu mocy Z7 .
opis styk
-5V
1
+5V
2
GND
3
+5V
4
Tabela 3.10: Opis złącza zasilania Z12 .
opis styk
+5V
1
+5V
2
GND
3
-5V
4
Tabela 3.11: Opis złącza na płytce zasilacz Z13 .
złącze
Z1
Z2
Z3
Z4
Z5
Z6
funkcja
wyjście dla silnika
wyjście dla silnika
wyjście dla silnika
wyjście dla silnika
wyjście dla silnika
wyjście dla silnika
M1
M2
M3
M6
M4
M5
Tabela 3.12: Opis złącz Z1 ,...Z6 .
30
styk
4,2,8,6,12,10
3,1,7,5,11,9
13, 14
15, 16
17, 18
19, 20
21, 22
23, 24
25
26
Rozdział 4
Oprogramowanie sterownika
Sterownik robota jest zbudowany w oparciu o mikrokontroler MC68332. Oprogramowanie
dla tego mikrokontrolera można napisać w języku asembler C oraz C++. W tym przypadku oprogramowanie zostało napisane w języku C z użyciem makr w asemblerze. Oprogramowanie sterownika robota ZS5R zostało przygotowane w środowisku HI-CROSS
firmy HIWARE. Zasadniczymi częściami programu sterownika są funkcja główna main()
oraz procedura obsługi przerwania cyklicznego interrupt void int_PIT().
4.1
Funkcja główna main()
Na początku funkcji main() wywoływane są procedury inicjujące podstawowe bloki mikrokontrolera SIM, TPU, QSM oraz inicjowana jest początkowa wartość prądu regulatorów.
sim_init();
qsm_init();
tpu_init();
Cur_init();
/*
/*
/*
/*
inicjalizacja modulu SIM */
inicjalizacja modulu QSM */
inicjalizacja modulu TPU */
ustawienie prądów zerowych regulatorów*/
Funkcja sim_int() między innymi konfiguruje port E i ustawia wektor i poziom przerwania cyklicznego PIT
/*Konfiguracja przerwania cyklicznego*/
*((void (**) ())(4*PI_VECT)) = int_PIT; /* ustawienie wektora */
PICR = (PI_LEVEL<<8)+PI_VECT;
PITR = PI_CONST;
/* poziom i wektor przerwania PIT*/
/* stala dzielnika PIT */
Funkcja qsm_int() inicjalizuje magistrale QSPI oraz blok transmisji szeregowej SCI
/*Konfiguracja przerwan SCI */
*((void (**) ())(4*SCI_VECT)) = my_SCI; /* ustawienie wektora */
QIVR = SCI_VECT;
QILR = (QSPI_LEVEL<<3 )+SCI_LEVEL;
31
/* wektor przerwania */
/* poziom przerwania */
Z kolei funkcja tpu_int() inicjalizuje odpowiednie kanały bloku TPU dla funkcji QDEC
i QDVEL, które to funkcje służą do pomiaru położenia i prędkości.
W pętli głównej umieszczono obsługę menu pozwalającego interakcyjnie wybierać tryb
pracy robota.
out_text("\n\n\rPRACA DYPLOMOWA\n\n\r");
out_text("Robot dydaktyczny ZS5R\n\r");
/* Intro
out_text("Autor: Zbigniew Struzik, Wroclaw 2005\n\r");
out_text("h - Pomoc\n\r");
out_text("\n\n\rMenu Glowne:\n\n\r");
out_text("P - Pozycjonowa\n\r");
out_text("M - Tryb sterowania recznego\n\r");
out_text("X - Wylaczenie silnikow\n\r");
out_text("S - przeslanie\n\r");
out_text("H - Pomoc\n\n\r");
*/
Wybierając np. pozycję oznaczoną literką M lub m przechodzimy do menu sterowania
ręcznego.
out_text("\n\n\rMenu sterowania recznego:\n\n\r");
out_text("1,Q
- Wieza\n\r");
out_text("2,W
- Ramie\n\r");
out_text("3,E
- Przedramie\n\r");
out_text("4,R
- Nadgarstek (gora/dol)\n\r");
out_text("5,T
- Nadgarstek (obrot)\n\r");
out_text("6,Y
- Chwytak\n\r");
out_text("SPACE - Silniki STOP\n\r");
out_text("V
- Definicja predkosci\n\r");
out_text("ESC
- Powrot do Menu Glownego\n\r");
out_text(">>");
4.2
Procedura obsługi przerwania cyklicznego
Wszystkie pomiary i wyliczenie wielkości sterujące są przechowywane w strukturze state.
typedef struct{
. \\
. \\
. \\
}STAN;
STAN
state;
Nastawy i inne parametry regulatorów prędkości i położenia są przechowywane w strukturze nast.
typedef struct
{
.\\
.\\
32
.\\
}NAS;
NAS
nast;
Wszystkie procesy związane ze sterowaniem oraz akwizycją danych pomiarowych, obsługiwane są w funkcji przerwania cyklicznego interrupt void int_PIT(). Funkcja ta jest
wywoływana co 2ms. Jest w niej realizowany pomiar położenia i prędkości, przy pomocy
funkcji QDEC i QDVEL:
state.temposition[0] = TPURAM(QDEC1A,1);/* odczyt licznika pozycji q1*/
state.M[0] &= 0xffff0000;
state.M[0] += state.temposition[0];
if((state.lastposition[0]-state.temposition[0]) > 32767)
{
state.M[0] += 0x10000;
}
if((state.temposition[0]-state.lastposition[0]) > 32767)
{
state.M[0] -= 0x10000;
}
state.lastposition[0] = state.temposition[0];
state.speed[0]
state.speed[1]
state.speed[2]
state.speed[3]
state.speed[4]
state.speed[5]
=
=
=
=
=
=
QDVEL2Speed((int)TPURAM(QDVEL1,2));
QDVEL2Speed((int)TPURAM(QDVEL2,2));
QDVEL2Speed((int)TPURAM(QDVEL3,2));
((TPSEC*(state.M[3]-state.oldposition[2])+2)/4);
((TPSEC*(state.M[4]-state.oldposition[0])+2)/4);
((TPSEC*(state.M[5]-state.oldposition[1])+2)/4);
Pomiar prądu jest realizowany za pomocą przetwornika A/C pracującego na kolejkowej
magistrai QSPI. Aktualizacja zmierzonego prądu również jest realizowana w funkcji przerwania cyklicznego PIT.
state.MCurrent[0]
state.MCurrent[1]
state.MCurrent[2]
state.MCurrent[3]
state.MCurrent[4]
state.MCurrent[5]
=
=
=
=
=
=
ADBip2Int(QREC[1]>>4);
ADBip2Int(QREC[2]>>4);
ADBip2Int(QREC[3]>>4);
ADBip2Int(QREC[4]>>4);
ADBip2Int(QREC[5]>>4);
ADBip2Int(QREC[0]>>4);
Proces wyliczenia sterowań dla poszczególnych osi jest realizowany za pomocą regulatorów
PID położenia i prędkości zaimplementowanych w funkcjach:
void ControlPID_pos(NAS *ptr_n, STAN *ptr_s, int i)
void ControlPID_speed(NAS *ptr_n, STAN *ptr_s, int i)
wywoływanych w obsłudze przerwania PIT. Na rysunku blokowym 4.1 jest przedstawiony
sposób realizacji tych regulatorów. Po wyliczeniu sterowań przez funkcje regulatorów,
wartości zadanych prądów są wpisywane do TRANSMIT RAM w bloku QSPI:
33
Rysunek 4.1: Schemat blokowy układu sterowania.
QTRAN[6] = (state.SetCurrent[0] & 0x0FFF)|0x3000;
QTRAN[7] = (state.SetCurrent[1] & 0x0FFF)|0x7000;
QTRAN[8] = (state.SetCurrent[2] & 0x0FFF)|0xB000;
QTRAN[9] = (state.SetCurrent[3] & 0x0FFF)|0xF000;
QTRAN[10] = (state.SetCurrent[4] & 0x0FFF)|0x3000;
QTRAN[11] = (state.SetCurrent[5] & 0x0FFF)|0x7000;
Do przeprowadzenia eksperymentów i akwizycji danych pomiarowych w funkcji
interrupt void int_PIT() jest wykonywany zapis wybranych parametrów do tablicy.
if (flaga_pomiarow) {
tabpom[l][0]=state.SetCurrent[1];
tabpom[l][1]=state.MCurrent[1];
tabpom[l][2]=state.speed[1];
tabpom[l][3]=nast.W_set[1];
if (++l>=1000)
{
l=0;
flaga_pomiarow=0;
}
}
Następnie tablica z pomiarami jest wysyłana do komputera nadrzędnego przez łącze szeregowe za pomocą funkcji wywoływanej w menu głównym (S), podanej poniżej.
void out_text(char *_text) {
byte length=0;
while(n_bufor);
while(*(length+_text))
34
length++;
while(length)
{
length--;
bufor[n_bufor]=*(length+_text);
n_bufor++;
}
SCCR1=SCCR1|0x0080;
return;
}
Opisane oprogramowanie zachowuje w dużym stopniu zgodność z oprogramowaniem robota Romik (w zakresie menu). Pozwala również na zbieranie wyników pomiarów parametrów ruchu osi robota przy prowadzeniu eksperymentów.
35
Rozdział 5
Badania i wyniki eksperymentów
W celu zbadanie konstrukcji sterownika i zaobserwowanie parametrów jakościowych przeprowadzono odpowiednie eksperymenty. W celu zebrania pomiarów zaimplementowano
program testowy. W programie tym, cyklicznie co 2ms wywoływana jest procedura pozwalająca zadawać momenty napędowe silników oraz zebrać próbki pomiarowe. Zebrane
próbki pomiarowe ze sterownika zostały wysłane do komputera nadrzędnego, na którym zostały zwizualizowane przy pomocy programu gnuplot. Wysłane próbki nie zostały
wyskalowane dla nich odpowiednich jednostkach. Oś odciętych (czasu) na wszystkich wykresach jest skalowana w cyklach przerwania PIT (2ms). Osie rzędnych wyskalowane są
bezpośrednio w jednostkach pomiarowych z przetworników.
Na rysunku 5.1 przedstawiony jest wykres ilustrujący odpowiedź sprzętowego regulatora
prądu na zadany prąd. Prąd zadany został wygenerowany przez regulator prędkości dla
przegubu q1 (nastawy regulatora PID kp w=20, kd w=10, ki w=5, lim int=500 lim curr
= 2047 w set=10000).
Na wykresie można zaobserwować opóźnienie odpowiedzi regulatora na zadany prąd.
4500
’pom2.9.txt’ using 1:2
’pom2.9.txt’ using 1:3
4000
3500
3000
2500
2000
1500
1000
500
0
-500
-1000
0
5
10
15
20
25
30
Rysunek 5.1: Wykres odpowiedzi regulatora na zadany prąd.
Wynika to z tego, iż zadany prąd regulatora jest ustawiany przez przetwornik C/A, który pracuje na magistrali QSPI. Warto zwrócić uwagę na odpowiedź skokową regulatora
prądu typową dla układu inercyjnego.
Na rysunku 5.2 przedstawiono wynik pracy regulatora prędkości podczas rozpędzania
36
przegubu q0 . Widać, że w początkowym okresie prędkość narasta liniowo pod wpływem
ograniczonego do zadanej wartości prądu. Po osiągnięciu zadanej prędkości regulator prędkości steruje prądem silnika utrzymując prędkość ruchu przegubu (rysunek 5.3).
7000
’pom1.txt’ using 1:2
’pom1.txt’ using 1:3
’pom1.txt’ using 1:4
6000
5000
4000
3000
2000
1000
0
-1000
0
10
20
30
40
50
60
Rysunek 5.2: Rozpędzanie osi q0 .
8000
’pom1.txt’ using 1:2
’pom1.txt’ using 1:3
’pom1.txt’ using 1:4
7000
6000
5000
4000
3000
2000
1000
0
-1000
0
100
200
300
400
500
600
700
800
900
1000
Rysunek 5.3: Regulacja prędkości osi q0 .
Jak widać, opracowany sterownik pozwala gromadzić pomiary parametrów ruchu poszczególnych osi, co jest szczególnie przydatne przy badaniu własności regulatorów, dobieraniu ich nastaw, szukaniu charakterystyk napędów i własności dynamicznych robota.
37
Rozdział 6
Podsumowanie
W wyniku niniejszej pracy powstało stanowisko laboratoryjne, którego główną częścią jest
manipulator dydaktyczny o nazwie ZS5R. Cykl pracy rozpoczęto od doboru silników na-
Rysunek 6.1: Widok skonstruowanego manipulatora.
pędowych, a następnie wykonano konstrukcję mechaniczną manipulatora. Skonstruowany
manipulator jest klasy 5R, (posiadający pięć stopni swobody) oraz jest wyposażony w
chwytak dwupalczasty. Następnie zaprojektowano i wykonano w pełni działający układ
sterowania, który pozwala na sterowanie prądem silników prądu stałego (a więc i momentem napędowym), przez co istnieje w przyszłości możliwość implementacji algorytmów sterowania uwzględniających dynamikę robota. W budowie układu elektronicznego
38
przewidziano złącze pozwalające na podłączenie zewnętrznego układu sterowania, jak na
przykład karty współpracującej ze środowiskiem MATLAB/SIMULINK. Wykonano testowe oprogramowanie pozwalające na zbieranie danych pomiarowych z wewnętrznych
czujników, a następnie wysyłanie ich za pomocą interfejsu szeregowego na terminal w
postaci pliku txt. Zebrane dane pozwoliły na przeprowadzenie eksperymentów.
W pracy zamieszczono również, przykładową instrukcję laboratoryjną stanowiska oraz
dołączono dodatki, w których znajduje się pełna dokumentacja techniczna konstrukcji
mechanicznej i elektronicznej.
Wykonane oprogramowanie dołączono na nośniku elektronicznym (CD-ROM).
Opisany robot może być wykorzystany do celów dydaktycznych w znacznie szerszym zakresie niż wcześniej wspomniany Romik, ze względu na możliwość sterowania momentem
napędowym i otwartą konstrukcję układu sterowania.
39
Bibliografia
[1] E. JEZIERSKI. Robotyka kurs podstawowy. Wydawnictwo Politechniki Łódzkiej,
Łódź, 2002.
[2] M.W. SPONG and M. VIDYASAGAR. Dynamika i sterowanie robotów. Wydawnictwo Naukowo-Techniczne, Warszawa, 1997.
[3] K. TCHOŃ and W. JACAK. Podstawy robotyki. Wydawnictwo Politechniki Wrocławskiej, Wrocław, 1992.
[4] K. TCHOŃ, A. MAZUR, I. DULĘBA, R. HOSSA, i R. MUSZYŃSKI. Manipulatory i roboty mobilne: modele, planowanie ruchu, sterowanie. Akademicka Oficyna
Wydawnicza PLJ, Warszawa, 2000.
[5] M. WNUK. Moduł z mikrokontrolerem mc68332. Raport serii SPR 7/2004, Instytut
Cybernetyki Technicznej Politechniki Wrocławskiej, Wrocław, 2004.
[6] http://www.austriamicrosystems.com/
[7] http://www.bomatec.ch/
[8] http://www.freescale.com/
[9] http://www.maxim ic.com/
[10] http://www.micromotorssrl.com/
[11] http://www.motorola.com/
[12] http://www.st.com/stonline/
40
Rozdział 7
Dodatek A
7.1
Parametry mechaniczne manipulatora
Układ kinematyczny
Napęd
Pomiar położenia
Dane techniczne robota ZS5R
5 stopni swobody
6 silników prądu stałego
względny, kodery przyrostowo-impulsowe
o rozdzielczości D=1024
Przestrzeń robocza
Oś 1 (obrót kolumny)
Oś 2 (ramię)
Oś 3 (przedramię)
Oś 4 (zgięcie nadgarstka)
Oś 5 (obrót chwytaka)
Rodzaj chwytaka
l1
l2
l3
l4
G1 = G 2 = G 3 = G 6
G4 = G 5
Z1
Z2
Z3
Z4
Z5
Z6
Z7
Z8
Z9
±90◦
±40◦
±90◦
±60◦
±360◦
Chwytak dwupalcowy, o rozwarciu równoległym
w zakresie 0-60mm.
Stopień rozwarcia i siła uchwytu programowane.
Wymiary mechaniczne
201mm
217.5mm
134mm
90mm
Parametry przekładni
94.37:1
43.3:1
16 zębów, moduł 1
70 zębów, moduł 1
15 zębów, moduł 0.8
104 zęby moduł 0.8
20 zębów, moduł 1
68 zębów, moduł 1
16 zębów, moduł 1
24 zęby moduł 1
42 zęby moduł 1
41
7.2
Rysunki techniczne części mechanicznej
Rysunek 7.1: Rysunek techniczny silnika RHE 158.24.100.
Rysunek 7.2: Rysunek techniczny silnika HLE 149.24.43.
Rysunki techniczne silników zostały wzięte ze strony producenta silników [10].
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Rozdział 8
Dodatek B
8.1
Wykaz elementów części elektronicznej
liczba
wartość
6
3
2
100n
1000u
2200u
1
Prostownik
1
1
1
7905
L4940V5
LM2940CT
1
TS8/220
3
MSTBA4
2
Radiator
obudowa
oznaczenie na schemacie
Kondensatory
EU025
C1, C2, C3, C4, C5, C6
EUTT5D10 C9, C10, C11
EUE5
C7, C8
Diody
RB1A
RB1A
Układy scalone
TO2220
IC3
TO2220
IC1
TO2220
IC2
Transformator
–
–
Złącza
–
Z12, Z13, Z14
inne
SK104
KK1, KK2
Tabela 8.1: Zestawienie elementów elektronicznych na płytce zasilacza.
liczba
1
1
1
wartość
obudowa oznaczenie na schemacie
Kondensatory
100n
EUC0805 C1
1u
EUC0805 C2
Układy scalone
AS5040 SSOP16
U1
Tabela 8.2: Zestawienie elementów elektronicznych na płytce kodera AS5040.
60
liczba
12
24
6
6
36
8
18
8
4
24
73
12
1
1
7
24
1
1
wartość
obudowa
oznaczenie na schemacie
Rezystory
1R
R-EU0411 R2, R105, R106, R107, R108, R109, R110,
R111, R112, R113, R114, R115
1k
M0805
R27, R28, R32, R34, R40, R42, R43, R47, R55,
R56, R57, R60, R67, R70, R71, R75, R83, R84,
R85, R88, R95, R96, R101, R103
3k
M0805
R31, R48, R62, R76, R90, R104
5k
CA6V
R117, R118, R119, R120, R121, R122
10k
M0805
R1, R25, R26, R29, R30, R33, R38, R39, R44,
R45, R46, R53, R54, R58, R59, R61, R63, R64,
R68, R69, R72, R73, R74, R77, R78, R81, R82,
R86, R87, R89, R97, R98, R99, R100, R102,
R123
18k
M0805
R21, R22, R35, R36, R49, R50, R91, R92
100k
M1206
R3, R4, R5, R6, R7, R8, R9, R10, R11,
R12, R13, R14, R15, R16, R17, R18, R19, R20
130k
M0805
R23, R24, R37, R41, R51, R52, R93, R94
200k
M0805
R23, R24, R37, R41, R51, R52, R93, R94
Kondensatory
270p
EUC0805 C53, C54, C59, C60, C67, C68, C69, C70, C73,
C74, C75, C76, C83, C84, C89, C90, C93, C94,
C99, C100, C103, C104, C109, C110
100n
EUC0805 C1, C3, C4, C5, C6, C7, C8, C9, C10,
C11, C12, C13, C14, C15, C16, C17, C18, C19,
C20, C21, C22, C23, C24, C25, C26, C27, C28,
C29, C30, C31, C32, C33, C34, C35, C36, C37,
C38, C39, C40, C41, C42, C43, C44, C45, C46,
C47, C48, C49, C51, C52, C55, C57, C61, C62,
C63, C65, C71, C72, C77, C79, C81, C82, C85,
C87, C91, C92, C95, C97, C101, C102, C105,
C107, C111
1u
EUC0805 C56, C58, C64, C66, C78, C80, C86, C88, C96,
C98, C106, C108
4.7u
B45181A
C2
10000u/50V EUE10-30 C50
Diody
BAT42
BAT42
D25, D26, D27, D28, D29, D30, D31
BAT49
BAT49
D1, D2, D3, D4, D5, D6, D7, D8, D9,
D10, D11, D12, D13, D14, D15, D16, D17,
D18, D19, D20, D21, D22, D23, D24
Prostownik FBU4
B1
Tranzystory
BC640-16
TO92
T1
Tabela 8.3: Zestawienie elementów elektronicznych na płytce sterownika.
61
liczba
6
3
3
3
6
6
7
6
1
2
1
1
1
1
1
1
1
1
6
wartość
obudowa
oznaczenie na schemacie
Układy scalone
74HC123D
SO-16
IC12, IC13, IC14, IC15, IC16, IC18
74HCT00D SOIC-14
IC19, IC20, IC21
74HCT08D SO-16
IC22, IC24, IC25
74HCT132D SO-14
IC1, IC2, IC3
L298N
MULTIWATT15 IC4, IC5, IC6, IC8, IC9, IC10
LM311D
SO-8
IC26, IC27, IC28, IC29, IC30, IC31
LM385-Z
TO92
UZ1, UZ2, UZ3, UZ4, UZ5, UZ6, UZ7
MAX4164
SO-14
IC7, IC11, IC17, IC23, IC32, IC33
MAX232A
SO-16
U$2
MAX525
SSOP
US, US1
MAX1270
SSOP
U$1
MOD1
–
ELFIN-EM332/A-4X24
Przekaźnik
G2R2
G2R2
K1
Złącza
–
ML10
Z10
–
ML26
Z9
–
ML34
Z8
–
W237-02P
Z7
–
W237-04P
Z12
–
MPT2
Z1, Z2, Z3, Z4, Z5, Z6
Tabela 8.4: Zestawienie elementów elektronicznych na płytce sterownika.
62
Rozdział 9
Dodatek C
9.1
Schematy ideowe i rysunki montażowe części elektronicznej
Rysunek 9.1: Schemat ideowy jednego z regulatorów prądu modułu mocy.
63
Rysunek 9.2: Schemat ideowy połączenia modułu EM332 z układami peryferyjnymi.
64
Rysunek 9.3: Schemat ideowy zasilacza.
Rysunek 9.4: Schemat ideowy układu sterowania cewką przekaźnika.
65
Rysunek 9.5: Schemat elektryczny kodera AS5040.
Rysunek 9.6: Obwód drukowany wierzchniej warstwy płytki zasilacza.
Rysunek 9.7: Obwód drukowany spodniej warstwy płytki zasilacza.
66
Rysunek 9.8: Rozmieszczenie elementów na wierzchniej stronie płytki zasilacza.
67
Rysunek 9.9: Obwód drukowany wierzchniej warstwy płytki sterownika.
68
Rysunek 9.10: Obwód drukowany spodniej warstwy płytki sterownika.
69
Rysunek 9.11: Rozmieszczenie elementów na wierzchniej stronie płytki sterownika.
70
Rysunek 9.12: Rozmieszczenie elementów na spodniej stronie płytki sterownika.
71
Rysunek 9.13: Obwód drukowany wierzchniej warstwy płytki kodera AS5040.
Rysunek 9.14: Obwód drukowany spodnie warstwy płytki kodera AS5040.
Rysunek 9.15: Rozmieszczenie elementów na wierzchniej warstwie płytki kodera AS5040.
Rysunek 9.16: Rozmieszczenie elementów na spodniej warstwie płytki kodera AS5040.
72
Rozdział 10
Przykładowa instrukcja
laboratoryjna
10.1
Cel ćwiczenia.
Celem ćwiczenia jest zapoznanie się ze strukturą kinematyczną robota dydaktycznego
ZS5R oraz identyfikacja jego parametrów geometrycznych.
10.2
Podstawy teoretyczne.
10.2.1
Charakterystyka robota ZS5R.
Robot dydaktyczny ZS5R jest manipulatorem, którego napęd poszczególnych osi jest zrealizowany za pomocą silników prądu stałego. Sterownik robota składa się z modułu mocy
i modułu sterowania. Moduł mocy jest zbudowany z sześciu regulatorów prądu, natomiast moduł sterowania oparty jest na module EM332/B firmy ELFIN, który wykorzystuje mikrokontroler MC68332. Oprogramowanie sterownika komunikuje się z komputerem
nadrzędnym przy pomocy asynchronicznej transmisji szeregowej (19200, 8N1). Pozwala
to na sterowanie ręczne oraz na zadawanie i odczytywanie chwilowych położeń silników
(Mi ). Pomiar położenia wału silników jest realizowany za pomocą koderów impulsowoprzyrostowych (AS5040) o rozdzielczości 1024 imp/obr. Położenia napędów wyrażone są
w postaci liczb całkowitych oznaczających ilość impulsów zliczanych od pewnego stanu
początkowego. Ustalenie stanu początkowego po włączeniu sterownika odbywa się automatycznie przez doprowadzenie poszczególnych osi do położeń, w których sygnały czujników synchronizacji umieszczone w przegubach i sygnaly z kanalów indeks koderów dadzą
wartość 1 (logicznie) (procedura synchronizacji). W tej konfiguracji zwanej konfiguracją
synchronizacji, wszystkie liczniki położenia silników są ustawiane na odpowiednie wartość. Każde wyłączenie zasilania robota powoduje utratę informacji o pozycji i konieczność
powtórzenia procedury synchronizacji.
Ze względu na bezpośrednie przeniesienie napędu na przeguby 1, 2 i 3 ich czujniki synchronizacji są osiągane przy ustalonych wartościach kątów {θsi = qsi |i = 1, 2, 3}, co odpowiada
ustalonym pozycjom silników Ms1 , Ms2 , Ms3 . Przeniesienie napędu przegubów 4 i 5 jest
także bezpośrednie i odbywa się za pośrednictwem mechanizmu różnicowego. Zmiana kąta
q4 jest proporcjonalna do sumy zmian pozycji silników (M4 + M5 ), a zmiana kąta q5 - do
ich różnicy (M5 − M4 ).
73
10.2.2
Struktura kinematyczna dla współrzędnych
przegubowych qi.
Struktura kinematyczna robota dydaktycznego ZS5R jest przedstawiona na rys. 10.1. Na
Rysunek 10.1: Struktura kinematyczna manipulator ZS5R.
końcu każdego ogniwa robota umieszczony jest lokalny układ współrzędnych związany
z tym ogniwem. Płaszczyzna planarności robota jest wyznaczona przez osie X 0 i Y0
układu bazowego.
Współrzędnymi wewnętrznymi są:
q1 – kąt obrotu kolumny [◦ ],
q2 – kąt obrotu głównego ramienia [◦ ],
q3 – kąt obrotu przedramienia [◦ ],
q4 – kąt odchylenia chwytaka względem przedramienia [◦ ],
q5 – kąt obrotu chwytaka wokół własnej osi [◦ ],
q6 – rozstaw szczęk chwytaka [mm].
Jako współrzędne zewnętrzne wybrano następujące zmienne
x, y, z – współrzędne kartezjańskie końca efektora wyrażone
w układzie bazowym X0 Y0 Z0 [mm],
74
η – kąt podejścia chwytaka (kąt pomiędzy nieskręconą
płaszczyzną chwytaka a płszczyzną poziomą) [◦ ] ,
ρ – kąt obrotu chwytaka wokół własnej osi [◦ ] ,
s – rozstaw szczęk [mm].
10.2.3
Transformacja Denavita-Hartenberga dla zmiennych qi.
Prosty model kinematyki dla robota ZS5R uzyskuje się przy użyciu notacji DenavitaHartenberga. Transformacja Denavita-Hartenberga pomiędzy lokalnymi układami współrzędnych stowarzyszonymi z poszczególnymi ogniwami robota jest następująca
A10 (q1 ) = Rot(Z, q1 )Trans(Z, l1 )Rot(X, π2 ),
A21 (q2 ) = Rot(Z, q2 )Trans(X, l2 ),
A32 (q3 ) = Rot(Z, q3 )Trans(X, l3 ),
(10.1)
A43 (q4 ) = Rot(Z, q4 )Rot(Z, − π2 )Rot(X, − π2 ),
A45 (q5 ) = Rot(Z, q5 )Trans(Z, l4 ),
gdzie symbolami li oznaczono następujące parametry geometryczne robota
l1 – wysokość kolumny [mm],
l2 – długość ramienia [mm],
l3 – długość przedramienia [mm],
l4 – długość chwytaka ujmująca długość palców chwytaka [mm],
10.3
Przebieg ćwiczenia
10.3.1
Obsługa stanowiska
Stanowisko laboratoryjne składa się z robota ZS5R oraz komputera PC połączonego ze
sterownikiem robota za pośrednictwem portu szeregowego. Oprogramowanie stanowi program ZSident uruchamiany w środowisku systemu Linux.
Robot powinien być ustawiony przy krwędzi stołu, równolegle do przedniej ściany podstawy robota.
Przed uruchomieniem programu należy włączyć zasilanie robota i poczekać na zakończenie synchronizacji (zatrzymanie wszystkich silników).
Po uruchomieniu programu ZSident powinna nastąpić powtórna synchronizacja, a na
ekranie pojawi się menu.
Komenda I pozwala zadawać konfigurację we współrzędnych qi (wprowadzenie pustej linii
powoduje pozostawienie dotychczasowej wartości). Po zakończeniu wprowadzania następuje wykonanie ruchu.
Komenda X podaje odczyt położenia robota w trzech układach współrzędnych:
• {Mi } - przestrzeń napędowa (pozycje silników wyrażone w impulsach),
75
• {qi } - przestrzeń konfiguracyjna,
• {x, y, z, η, ρ, s} - przestrzeń zadaniowa.
Komenda Q powoduje zakończenie pracy programu ident i wyłączenie zasilania napędów.
10.3.2
Wstępne przygotowanie do ćwiczenia.
1. używając transformacji Denavita-Hartenberga przedstawionej w rozdziale 10.2.3 obliczyć prosty model kinematyki
(q1 , ..., q6 ) → (x, y, z, η, ρ, s)
2. zastanowić się jak należy wybrać konfigurację robota dydaktycznego, aby z równań
kinematyki uzyskać jednoznacznie wartości parametrów geometrycznych l 1 , l2 , l3 , l4 .
10.3.3
Zadania do wykonania.
Poruszając poszczególnymi przegubami robota ustalić położenie układu bazowego oraz
sprawdzić, jakie zakresy zmienności mają poszczególne współrzędne wenętrzne q i . Aby
zidentyfikować parametry geometryczne li należy rozpocząć od ustawienia robota w pewnej konfiguracji poprzez zadanie określonych wartości współrzędnych wewnętrznych q i .
Następnie dla tak zadanej konfiguracji należy odczytać odpowiadające jej współrzędne
zewnętrzne z menu programu. W sprawozdaniu należy umieścić wyliczony prosty model
kinematyki i w oparciu o ten model wyliczyć z układu równań stałe li .
Instrukcja ta została przygotowana w oparciu o instrukcję ”Identyfikacja parametrów geometrycznych robota dydaktycznego ROMIK” autorstwa I. Dulęba, A. Mazur, M. Wnuk.
76
Polecamy serwis z poradami dotyczącymi procesu pisania prac magisterskich - prace
magisrterskie - serwis z wytycznymi, wskazówkami, normami - całkowicie za darmo
Polecamy serwis darmowe _ prace mgr z bankowości - strona z darmowym i fragmentami
prac dyplomowych - prace magisterskie, licencjackie, semestralne, zaliczeniowe.
Polecamy serwis darmowe _ prace mgr z prawa - strona z darmowym i fragmentami prac
dyplomowych - prace magisterskie, licencjackie, semestralne, zaliczeniowe.
Polecamy solidny serwis darmowe prace mgr z prawa - znajdziecie tam darmowe fragmenty prac
dyplomowych - prace magisterskie, licencjackie, semestralne, zaliczeniowe.
Polecamy serwis z darmowymi referatami - darmowe prace - strona z darmowym referatami, esejami,
konspektami prac...
Polecamy serwis darmowe _ prace mgr z _ pedagogiki - strona z darmowym i fragmentami
prac dyplomowych - prace magisterskie, licencjackie, semestralne, zaliczeniowe.
Polecamy internetowy serwis darmowe _prace mgr z _zarządzania - strona z całkowicie
darmowym i fragmentami prac dyplomowych - prace licencjackie, magisterskie, semestralne i
zaliczeniowe.
Poradnik jak pisać prace dyplomowe znajdziesz na stronie abcpisania.
Forum o serwisach zajmujących się pisaniem prac licencjackich. Zamawialiście prace licencjackie,
chcecie o tym napisać? To jest właśnie odpowiednie miejsce - forum o pracach magisterskich
Mamy specjalistów z zakresu bankowości, rachunkowości, finansów, ekonomii, marketingu,
zarządzania, filologii polskiej, pedagogiki, socjologii, zarządzania zasobami ludzkimi, prawa,
administracji, hotelarstwa i turystyki.
Pisanie prac magisterskich i licencjackich
Nie kopiujemy z innych prac, nie przepisujemy, a każda z naszych prac tworzona jest bezpośrednio
pod potrzeby klienta i wykorzystywana tylko przez niego!
Prace magisterskie - dobre
Serwis "Prace magisterskie" pomoże napisać prace magisterskie i prace licencjackie zapracowanym
studentom.
Download