AiR ais cw 1 DrRobot


1
Laboratorium Automatyki. Instrukcja do ćwiczenia nr 1.
Ćwiczenie 1.
Roboty mobilne - DrRobot
2
Laboratorium Automatyki. Instrukcja do ćwiczenia nr 1.
1.Wstęp
Wykorzystywany w ćwiczeniu robot mobilny posiada dwa koła napędowe oraz jedno koło typu  castor
zapewniające robotowi równowagę. Napęd robota stanowią dwa silniki prądu stałego z przekładniami redukcyjnymi.
Silniki zasilane są z układu mostkowego PWM. Napędy wyposażone są w pomiar położenia kół za pomocą enkoderów
o rozdzielczości 1200 impulsów na obróta. Robot wyposażony jest także w zestaw trzech czujników ultradzwiękowych,
w siedem czujników podczerwieni oraz dwa piroelektryczne czujniki podczerwieni umożliwiające wykrywanie ludzi
oraz ich ruch.
Ponadto robot wyposażony jest w kamerę, która może się poruszać dzięki serwomechanizmom. Robot
wyposażony jest w mikrofon i głośnik. Całość sterowana jest z nadrzędnego komputera klasy PC. Komunikacja między
robotem a komputerem odbywa siÄ™ za pomocÄ… sieci bezprzewodowej WIFI. Sterownik robota odpowiada tylko za
funkcje niskopoziomowe jak sterowanie silnikami, odczyt czujników itp. Główny program sterujący wykonywany jest
na komputerze PC. Tworzenie oprogramowania odbywa się w języku C/C++ z wykorzystaniem odpowiedniej kontrolki
ActiveX.
Położenie robota jest wyznaczane w sposób względny. Proces wyznaczania położenia opiera się na pomiarze
prędkości obrotowej kół, znajomości parametrów kinematycznych robota oraz założeniu braku poślizgu. Model
kinematyczny robota przyjmuje poniższą postać
&
x = v Å"cos(¸ )
&
y = v Å"sin(¸ )
¸& = É (1)
& &
v = R(Õr +Õl )/ 2
& &
É = R(Õr -Õl )/(2Å" L)
gdzie R  promień kół, L  połowa odległości między kołami, Ć  prędkości obrotowe kół. W ten sposób położenie
robota otrzymuje się całkując trzy pierwsze równania z uwzględnieniem warunków początkowych.
2. Obsługa stanowiska
Przystępując do ćwiczenia należy postępować zgodnie z poniższą procedurą.
1. WÅ‚Ä…czamy komputer i logujemy siÄ™.
2. Uruchamiamy program WiRobot, do którego skrót znajduje się na pulpicie. Otwiera się okno pokazane na rys.
1. Po uruchomieniu programu w pole Robot ID wpisujemy motcom. Zaznaczamy opcje WiFi Connection, w
pola IP wpisujemy numer IP robota który jest umieszczony na spodzie robota a w pole Port liczbę 10001.
3. Po zakończeniu konfiguracji oprogramowania , włączamy robota wyłącznikiem umieszczonym na tylnej
ściance. Po włączeniu robota wciskamy przycisk Connect. Następuje połączenie robota z komputerem
nadrzędnym.
4. Uruchamiamy program Microsoft VisualStudio2008 skrótem na pulpicie o tej samej nazwie. Pojawia się okno
jak na rys. 2.
3
Laboratorium Automatyki. Instrukcja do ćwiczenia nr 1.
5. W zakładce Recent Projects klikamy nazwę Robot. Po kliknięciu w oknie Solution Explorer, które znajduje
się z prawej strony, rozwijamy menu klikając na krzyżyk obok nazwy robot, a następnie rozwijamy pole
Source Files.
6. Po rozwinięciu klikamy nazwę pliku student.cpp.
7. Otwiera siÄ™ okno jak na rys. 3. W ciele funkcji student zamieszczamy modyfikacje programu wykonywane w
ramach programu ćwiczeń.
8. Postępując jak w p.6 w polu Header Files w pliku robotDlg.h umieszcza się deklaracje zmiennych
dodatkowych, których chcemy użyć w programie. Ich deklaracje umieszcza w miejscu po komentarzu
o następującej treści:  //tutaj umieszczamy deklaracje zmiennych wprowadzanych przez studentów .
9. Po wprowadzeniu zmian kompilujemy i uruchamiamy program sterujący robotem za pomocą zielonej strzałki
lub klikamy najpierw F5 a potem F7. Jeśli nie popełniliśmy żadnych błędów składniowych języka C++
pojawia siÄ™ okno programu sterujÄ…cego robota pokazane na rys. 4.
Rys. 1 Okno konfiguracyjne bezprzewodowego połączenia robota
10. W razie wystąpienia błędów program poinformuje nas o tym. Błędy te należy poprawić. Ewentualne błędy
wraz z miejscami ich wystąpienia wyświetlane są w dolnej części okna z rys. 2 i 3, w zakładce Output.
Klikając na komunikacie o błędzie przenosimy się w miejsce jego wystąpienia.
11. Aby uruchomić pogram naciskamy przycisk Start aby zatrzymać przycisk Stop. Aby zamknąć okno
naciskamy przycisk Ok.
12. W oknie z rys. 4 widać na bieżąco wyświetlane są wartości interesujących nas zmiennych. Są one
automatycznie zapisywane do pliku o nazwie przebiegi.txt umieszczonego na dysku C.
4
Laboratorium Automatyki. Instrukcja do ćwiczenia nr 1.
Rys. 2.
Rys. 3
5
Laboratorium Automatyki. Instrukcja do ćwiczenia nr 1.
Rys. 4
Zmienne wykorzystywane w programie:
czas  zmienna typu float przechowująca informację o czasie jaki upłynął od wciśnięcia przycisku  START wyrażona
w sekundach
x  zmienna typu float przechowująca współrzędną x robota, współrzędna względna liczona od położenia
początkowego po wciśnięciu przycisku  START wyrażona w centymetrach
y  jak wyżej tylko współrzędna y
fi  zmienna typu float określająca aktualny kąt obrotu robota względem osi pionowej przechodzącej przez punkt
leżący pośrodku odcinka łączącego oba koła, liczona względnie od położenia początkowego wyrażona w radianach
v  prędkość liniowa robota (dokładniej punktu leżącego pośrodku odcinka łączącego oba koła) wyrażona w cm/s
w  prędkość kątowa robota wokół osi jak dla zmiennej fi wyrażona w rad/s
v_zad, w_zad  zmienne określające prędkości zadane odpowiednio prędkości liniowej i kątowej odpowiednio w cm/s
i rad/s
pred_zadL, pred_zadP  zmienne określające wartości zadane odpowiednio prędkości kątowej koła lewego i prawego
sonar1, sonar2, sonar3  zmienne określające sygnały z czujników ultradzwiękowych
6
Laboratorium Automatyki. Instrukcja do ćwiczenia nr 1.
3. Część teoretyczna
3.1. Realizacja regulatora PID
Sygnał wyjściowy regulatora PID o transmitancji
ëÅ‚ öÅ‚
1
ìÅ‚ ÷Å‚
G(s) = kpìÅ‚1+ + sTD ÷Å‚ (2)
sTI Å‚Å‚
íÅ‚
opisany jest wzorem
t
ëÅ‚ öÅ‚
1 de(t)
u(t) = kpìÅ‚e(t) +
+"e(Ä )dÄ + TD dt ÷Å‚ (3)
ìÅ‚ ÷Å‚
TI 0
íÅ‚ Å‚Å‚
W przypadku regulatora cyfrowego zastępujemy całkę sumowaniem i pochodną ilorazem różnicowym np. różnicą
wsteczną. Otrzymujemy wtedy wzór różnicowy:
ëÅ‚
TS k
ìÅ‚ ÷Å‚
u(k) = kpìÅ‚e(k) +
"e(k - i) + TD (e(k) - e(k -1))öÅ‚ (4)
÷Å‚
TI i=0 TS
íÅ‚ Å‚Å‚
WprowadzajÄ…c
k
S(k -1) = - i) (5)
"e(k
i=1
otrzymujemy
ëÅ‚
TS TD
ìÅ‚ ÷Å‚
u(k) = kpìÅ‚e(k) + (e(k) + S(k -1))+ (e(k) - e(k -1))öÅ‚ (6)
÷Å‚
TI TS
íÅ‚ Å‚Å‚
3.2. Kształtowanie przebiegu prędkości zadanej
W najprostszym przypadku prędkość robota zadawana jest w postaci sygnału prostokątnego o amplitudzie V.
Oczywiście ze względu na ograniczenia (skończona wartość przyspieszenia) i dynamikę ruchu robot odtwarzać będzie
tak zadaną prędkość w sposób przybliżony. Wadą takiego sterowania jest bardzo duża wartość pochodnej prędkości
(robot  szarpie ruszając i hamując). Aby tego uniknąć stosuje się stopniowe przyspieszanie/hamowanie robota, aby
kolejne pochodne prędkości nie przekraczały założonych wartości.
Pierwszym wariantem, który możemy zrealizować jest rozpędzanie robota ze stałym przyspieszeniem do założonej
prędkości, następnie ruch jednostajny i w końcu hamowanie ze stałym opóznieniem. Aby ograniczyć ilość parametrów
przyjmiemy że czas przyspieszania i hamowania jest taki sam.
V
Vk=a·T1
T t
T T
Rys. 5.
7
Laboratorium Automatyki. Instrukcja do ćwiczenia nr 1.
Dla takiego kształtu prędkości zadanej na podstawie podstawowych zależności na drogę i prędkość, w celu uzyskania
przemieszczenia robota o założony odcinek Sk musimy rozwiązać odpowiedni zestaw równań i nierówności po czasie Tk
otrzymujemy:
Sk = a Å"T1 Å"(Tk -T1) (7)
Vk = a Å"T1 (8)
Ponadto mamy ograniczenia wynikające z możliwości napędu:
Vk d" Vmax
(9)
a d" amax
Z równania (7) wyznaczamy np. przyspieszenie:
Sk
a =
T1 Å"(Tk -T1) (10)
Ze względu na prędkość maksymalną przyspieszenie nie może być większe niż:
Vmax
a = (11)
T1
I nie może przekraczać przyspieszenia dopuszczalnego amax.
a 4
3,5
Vmax
Sk
a =
a =
T1 Å"(Tk -T1) T1
3
2,5
amax
2
1,5
1
amin
0,5
0
T12,5
T1 min T1 max
0 0,5 1 1,5 2
Jak widać zadanie nie ma jednoznacznego rozwiązania. Otrzymaliśmy zbiór parametrów a i T1 które spełniają
postawione zadanie.
3.3. Ruch po krzywej zadanej parametrycznie.
Krzywą na płaszczyznie można przedstawić w postaci parametrycznej:
8
Laboratorium Automatyki. Instrukcja do ćwiczenia nr 1.
x = x(t)
Å„Å‚
òÅ‚y = y(t) (12)
ół
Przykładowo okrąg o promieniu R i środku w punkcie (0,0) przedstawiają poniższe wzory:
Å„Å‚ 2Ä„
öÅ‚
ìÅ‚
ôÅ‚x(t) = R Å" cosëÅ‚ T Å"t ÷Å‚
ôÅ‚
íÅ‚ Å‚Å‚
(13)
òÅ‚
2Ä„
öÅ‚
ôÅ‚
y(t) = R Å"sinëÅ‚ Å"t
ìÅ‚ ÷Å‚
ôÅ‚
T
íÅ‚ Å‚Å‚
ół
gdzie T czas pokonywania jednego obrotu.
Większość algorytmów sterowania ze sprzężeniem zwrotnym wymaga znajomości chwilowej prędkości postępowej i
obrotowej. Dla takiego opisu prędkości te wynoszą:
v(t) = Vx2 +Vy2
(14)
Vx Å" ay -Vy Å" ax
É =
Vx2 +Vy2
gdzie Vx , Vy oznaczają składowe prędkości, ax , ay składowe przyspieszenia i mogą zostać wyznaczone przez obliczenie
odpowiednich pochodnych po czasie, bÄ…dz analitycznie, bÄ…dz numerycznie.
4. Instrukcja wykonawcza
4.1. Podstawowe ruchy robota.
Napisać procedury ruchu robota bez warunków zatrzymania (zatrzymanie przy pomocy przycisku  STOP ):
" Obrotu wokół jednego z kół (obrót  w przód i  w tył ).
" Obrót wokół osi robota (dwoma kołami).
" Ruchu robota do przodu ze stałą prędkością.
Punkt startowy robota wybrać tak aby nie doszło do uderzenia robota w ograniczenia pola.
Widzimy, że robot w trakcie trzeciej procedury nie porusza się prostoliniowo. Przeanalizować przebiegi prędkości
silników, prądów silników, prędkości robota oraz kąta położenia robota.
4.2. Wprowadzenie korekcji toru ruchu robota.
Napisać procedury ruchu robota po linii prostej ze stałą prędkością z korekcją kąta polegającą na zmianie prędkości
zadanych siników:
" Z regulatorem typu P
" Z regulatorem typu PI
Porównać położenie i kąt robota z danymi uzyskanymi w poprzednim punkcie. Porównać odchyłki od kąta zadanego
dla obu regulatorów.
f&Napisać procedury obrotu robota o zaÅ‚ożony kÄ…t (np. 60°) z wykorzystaniem regulatora typu P i typu PI. Porównać
przebiegi kąta położenia robota dla obu typów regulatorów. Zwrócić szczególną uwagę na położenie końcowe robota.
9
Laboratorium Automatyki. Instrukcja do ćwiczenia nr 1.
4.3. Przejazd założonej odległości
" Napisać procedurę realizującą przemieszczenie ze stałą prędkością o założoną odległość (np. 150 cm) pod
kątem 0, a następnie zatrzymanie robota.
" Zmodyfikować procedurę aby robot pokonywał założoną odległość pod niezerowym kątem w stosunku
do położenia początkowego (jednoczesny ruch obrotowy i postępowy). Widzimy, że robot pokonuje tor
równoległy do założonego, odległość od toru zadanego zależy od zadanej prędkości.
" Poprawić procedurę aby robot pokonywał założoną odległość pod dowolnym kątem jako sekwencję obrót
 jazda.
Porównać tory ruchu robota z regulatorem korygującym typu P i typu PI.
4.4. Ruch z ograniczonym przyspieszeniem
Zmodyfikować napisaną w poprzednim punkcie procedurę ruchu po linii prostej, tak aby prędkość zadana narastała
liniowo do wartości założonej i liniowo spadała do 0. Zaprojektować 3 różne przebiegi prędkości zadanej:
" z przyspieszeniem bliskim ograniczeniu przyspieszenia (odczytanemu z przebiegów prędkości z
poprzedniego punktu).
" z przyspieszeniem równym połowie tego ograniczenia.
" z minimalnym przyspieszeniem zapewniającym przebycie założonej drogi w zadanym czasie.
Procedury powinny realizować ruch robota na tym samym dystansie.
4.5. Wykrywanie przeszkody przy pomocy czujników ultradzwiękowych
Zmodyfikować procedurę realizującą ruch po linii prostej ze stałą prędkością, tak aby robot po wykryciu przeszkody z
przodu zatrzymywał się. Usunięcie przeszkody ma powodować kontynuowanie ruchu robota.
4.6. Wykonywanie sekwencji ruchów.
Napisać procedurę realizującą ruch robota po torze zamkniętym jako sekwencję ruchów podstawowych obrót - jazda.
Sprawdzić czy robot wraca do położenia początkowego dla różnych regulatorów korygujących kąt ruchu.
4.7. Ruch robota po krzywej zadanej parametrycznie
" Napisać procedurę ruchu robota po okręgu zadanym w postaci parametrycznej. Przeanalizować przebiegi
położenia robota w czasie, porównać jego położenie z trajektorią zadaną.
" Zmodyfikować napisaną procedurę aby robot poruszał się po paraboli.
Uwaga! W ćwiczeniu tym należy zmienić parametry stanu początkowego robota (jego położenie x, y, oraz kąt) tak aby
odpowiadały one położeniu i kątowi wynikającemu z opisu parametrycznego trajektorii (położenie i orientacja w chwili
t=0).


Wyszukiwarka

Podobne podstrony:
AiR ais cw 7?nuc
AiR ais cw 5 dSpace
MATLAB cw Skrypty
OEiM AiR Przykladowy Egzamin
cad2 cw 5 6
cw formularz
Cw 2 zespol2 HIPS
Cw 9 Wzmacniacz mocy
Cw 1
metrologia cw 1 protokol
Sprawozdanie Ćw 2
Biofizyka kontrolka do cw nr
Pytania na test z AIR v2

więcej podobnych podstron