Stanowisko do badania charakterystyki tłumienia manipulatora IRp–6.
-
Upload
nguyenduong -
Category
Documents
-
view
217 -
download
0
Transcript of Stanowisko do badania charakterystyki tłumienia manipulatora IRp–6.
POLITECHNIKA WARSZAWSKA
WYDZIAŁ ELEKTRONIKI I TECHNIK INFORMACYJNYCH
INSTYTUT AUTOMATYKI I INFORMATYKI STOSOWANEJ
Rok akademicki 2012/2013
PRACA DYPLOMOWA INŻYNIERSKA
Magdalena Kula
Stanowisko do badania charakterystyki tłumienia
manipulatora IRp–6.
Opiekun pracy:
dr inż. Tomasz Winiarski
Ocena pracy: . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data i podpis Przewodniczącego
Komisji Egzaminu Dyplomowego
Podziękowanie
Chciałabym podziękować wszystkim osobom, zaangażowanym w pomoc przy powsta-
waniu tej pracy. Szczególnie chciałam podziękować mojemu promotorowi, Tomaszowi
Winiarskiemu za cenne uwagi i wskazówki. Podziękowania należą się także osobom
z laboratorium 012 za wsparcie i motywację do pracy: Konradowi Banachowiczowi, Mi-
chałowi Walęckiemu, Maciejowi Stefańczykowi, Adamowi Skubisowi, Bartoszowi Świ-
stakowi. Na końcu chciałam podziękować jeszcze Rafałowi Karolewskiemu za wsparcie
i za to, że we mnie nie zwątpił.
1
Kierunek: Informatyka
Specjalność: Systemy Informacyjno-Decyzyjne
Data urodzenia: 1990.01.30
Data rozpoczęcia studiów: 2009.02.23
Życiorys
Urodziłam się 30 stycznia 1990 roku w Żyrardowie. W 2008 roku ukończyłam Li-
ceum Ogólnokształcące im. Stanisława Żeromskiego w Żyrardowie. W roku 2009 rozpo-
częłam studia na kierunku Informatyka Wydziału Elektroniki i Technik Informacyjnych
Politechniki Warszawskiej.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
podpis studenta
Egzamin dyplomowy
Złożył egzamin dyplomowy w dn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Z wynikiem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ogólny wynik studiów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dodatkowe wnioski i uwagi Komisji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Streszczenie
Celem pracy było stworzenie stanowiska do badania charakterystyki tłumienia siły
zadawanej przez manipulator IRp–6. Urządzenie do zadawania tłumienia manipulato-
rowi przemysłowemu zostało skonstruowane z wykorzystaniem siłownika pneumatycz-
nego firmy FESTO. Drugim aspektem pracy było stworzenie sterownika dla manipula-
tora IRp–6, umożliwiającego z zadaną prędkością i ograniczeniem na siłę oddziaływanie
na urządzanie tłumiące. Praca ma charakter badawczy, dlatego przeprowadzono serie
pomiarów sprawdzających poprawność działania urządzenia. W niniejszej pracy zawarte
zostały założenia, jakie spełniać powinno urządzenie tłumiące, realizacja mechaniczna
obiektu oraz podsumowanie otrzymanych wyników.
Słowa kluczowe: Manipulator IRp–6, MRROC++, tłumienie, siła, siłownik pneuma-
tyczny
Abstract
Title: Test bench to investigate the damping characteristics of the manipulator IRp–6.
The aim of this thesis was to create a test bench to examine the characteristics
of set force damping of the IRp–6 manipulator. Device to set damping for industrial
manipulator has been developed with use of FESTO pneumatic cylinder. The second
aspect of the thesis was to create a driver for the IRp–6 manipulator, which would
apply force to the pneumatic cylinder with set speed and limit in force. Work has a
research character, therefore, a series of test measurements for proper operation of the
equipment was conducted. In the presented thesis the assumptions, that should be met
by the damping device, the mechanical implementation of the object and a summary of
the results have been included.
Keywords: Manipulator IRp–6, MRROC++, dumping, force, pneumatic cylinder
Spis treści
1 Wstęp 6
1.1 Motywacja pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Cel pracy i założenia pracy . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Układ pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Wprowadzenie do tematyki 8
2.1 Sprężystość i tłumienie . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Manipulator IRp–6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Siłownik pneumatyczny . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 Model kontaktu manipulatora z otoczeniem . . . . . . . . . . . . . . . 11
2.5 Przetwarzanie danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5.1 Metoda uśredniania danych . . . . . . . . . . . . . . . . . . . . 14
2.5.2 Filtr Butterwortha . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5.3 Transformata Fouriera . . . . . . . . . . . . . . . . . . . . . . . 15
3 Opis wykorzystanych technologii 16
3.1 MRROC++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 Środowisko Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4 Opis stanowiska badawczego 21
4.1 Założenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 Proces tworzenia urządzenia zadającego tłumienie . . . . . . . . . . . . 21
4.3 Realizacja fizyczna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.4 Uwagi dotyczące eksploatacji . . . . . . . . . . . . . . . . . . . . . . . . 24
5 Programowanie manipulatora IRp–6 27
5.1 Zadanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2 Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.3 Opis Klas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6 Specyfikacja funkcji środowiska Matlab 32
4
7 Wyniki 34
7.1 Wybór metody filtracji danych . . . . . . . . . . . . . . . . . . . . . . . 34
7.2 Wyznaczanie współczynników tłumienia . . . . . . . . . . . . . . . . . 38
8 Wnioski 42
Literatura 43
Załączniki 44
5
1 Wstęp
1.1 Motywacja pracy
Robotyka jest stosunkowo młodą dziedziną nauki. Rozwijanie jej jest o tyle trudne,
że łączy ona w sobie elementy zarówno związane z informatyką (programowanie ste-
rowników) jak i z mechaniką oraz budową robotów. Wiele doświadczeń badających
fizyczny kontakt robota z otoczeniem nie zostało jeszcze przeprowadzonych ani udo-
kumentowanych. Pomimo ciągłego rozwoju robotyki, nadal wiedza na temat tłumienia
siły w tej dziedzinie jest dość ograniczona. Budowa stanowiska badawczego, a w szcze-
gólności budowa urządzenia zadającego tłumienie, może stanowić wyjście do dalszego
rozwoju badań w tym kierunku. Głównym powodem, dla którego osobiście zdecydo-
wałam się podjąć ten tematu była możliwość zmierzenia się i zapoznania z progra-
mowaniem sterowników dla systemów wieloobrotowych oraz połączenie tego z budową
własnego urządzenia, zadającego tłumienie.
Roboty pracują w środowisku niedeterministycznym, nieodpornym na lekkie prze-
kłamania. Każde uruchomienie robota czy manipulatora jest zależne od otoczenia w ja-
kim się znajduje. Wywołanie tego samego zadania przy tych samych danych wejścio-
wych może dać inne rezultaty, dlatego też bardzo ważnym aspektem tej pracy było
stworzenie takiego środowiska pracy dla manipulatora, żeby wyniki działania danego
algorytmu sterowania siłą przy tych samych danych wejściowych, były jak najbardziej
do siebie zbliżone.
1.2 Cel pracy i założenia pracy
Celem pracy inżynierskiej była konstrukcja stanowiska do badania charakterystyki
tłumienia siły manipulatora IRp–6. Pierwszym wyznaczonym celem było zbudowanie
urządzenia zadającego tłumienie manipulatorowi. Głównym założeniem przy powsta-
waniu urządzenia było zadbanie o to, by jego działanie zbliżone było do działania
deterministycznego. Przy budowie stanowiska dążono do standaryzacji kontaktu ma-
nipulatora z otoczeniem. Konstrukcja urządzenia do zadawania tłumienia powstała
w wyniku przeprowadzonych analiz i została poddana eksperymentalnej weryfikacji.
Praca miała na celu sprawdzenie, na ile możliwe jest zbudowanie mechanicznego urzą-
dzenia, na podstawie którego będzie można prowadzić badania w tematyce tłumienia.
1.3 Układ pracy
Rozdział 2 wprowadza czytelnika w tematyki pracy. Na początku wytłumaczone
zostały zjawiska tłumienia i sprężystości. We wprowadzeniu znajduje się także defini-
cja kontaktu manipulatora z otoczeniem. Osobno omówiono kinematykę i dynamikę
6
robotów. Następnie opisano urządzenia wchodzące w skład stanowiska do badania cha-
rakterystyki tłumienia manipulatora IRp–6 czyli sam manipulator oraz siłownik pneu-
matyczny, na bazie którego powstało urządzenie zadające tłumienie.
W kolejnej części rozdziału 2 opisane zostały użyte w projekcie trzy metody filtracji
danych. Zebrane charakterystyki działania siły manipulatora były bardzo zniekształ-
cone przez szumy i należało poddać je filtracji. W rozdziale 2 opisane zostały użyte w
projekcie trzy metody filtrowania danych.
Sekcja 3 zawiera opis użytych technologii: MRROC++ oraz Matlab. W aplikacji
MRROC++ stworzony został sterownik manipulatora, natomiast w środowisku Matlab
przeprowadzano operacje przetwarzania danych. Wykorzystano go także do przygoto-
wania wizualizacji otrzymanych wyników. Odpowiednio w rozdziałach 5 i 6 znajduje się
dokładny opis metod i funkcji wytworzonych w MRROC++ i Matlab podczas realizacji
projektu.
Rozdział 4 zawiera założenia jakie miało spełniać całe stanowisko do badań, przed-
stawia historię powstawania urządzenia do zadawania tłumienia oraz prezentuje osta-
teczną wersję całego stanowiska badawczego. Dodatkowo zawarto w nim uwagi eksplo-
atacyjne stanowiska.
Ostatnie dwa rozdziały prezentują wyniki doświadczeń przeprowadzonych na stano-
wisku oraz wniosku jakie można sformułować na ich podstawie. Przedstawione zostały
w nim wyliczone współczynniki tłumienia oraz otrzymane charakterystyki siły od czasu
dla manipulatora IRp–6 przy zadanych ustawieniach urządzenia tłumiącego.
7
2 Wprowadzenie do tematyki
Poniższy rozdział ma za zadnie wprowadzić czytelnika w tematykę pracy. Znaj-
dują się w nim zarysy definicji zjawisk tłumienia i sprężystości. Przybliżono również
tematykę modelowania kontaktu manipulatora z otoczeniem. Na opis kontaktu manipu-
latora z otoczeniem składa się kinematyka i dynamika robota. Kinematyka odpowiada
za orientację i określanie pozycji robota w przestrzeni natomiast dynamika definiuje
ruch manipulatora. Kolejne podrozdziały charakteryzują manipulator IRp–6, z którego
udziałem przeprowadzano badania oraz siłownik pneumatyczny firmy FESTO który był
głównym elementem zadającym tłumienie robotowi. Ostatni podrozdział opisuje trzy
wybrane metody do filtrowania danych otrzymanych z czujnika siły.
2.1 Sprężystość i tłumienie
Sprężystość [4] jest to własność ciał polegająca na powracaniu do pierwotnego
kształtu i wymiarów po zdjęciu obciążenia, wywołującego odkształcenie. Ciała wyka-
zują sprężystość tylko do pewnej wartości obciążenia (sprężystość graniczna), powyżej
której powstają nieodwracalne odkształcenia plastyczne. Związek siły działającej na
sprężynę o współczynniku K i generujący przesunięcie X wyrażony jest wzorem:
F = K ·X (1)
Tłumienie drgań [4] jest to w ogólnym przypadku zmniejszenie drgań swobodnych
w układzie drgającym, wywołane rozpraszaniem energii. Zadaniem w tym projekcie
jest wygaszenie siły jaką przykłada manipulator do urządzenia zadającego tłumienie.
Tłumienie zależne jest od prędkości i można je przedstawić za pomocą równania:
F = B · X (2)
Gdzie X to stosunek przesunięcia do przyrostów w czasie definiowane wzorem X = dXdt
.
2.2 Manipulator IRp–6
Manipulator jest to robot będący mechanicznym ramieniem. Oznacza to, że liczba
jego stopni swobody odpowiada dokładnie liczbie stawów jego ramienia. Każdy ma-
nipulator ma ściśle określoną przestrzeń roboczą w której może wykonywać zadania.
Przestrzeń robocza jest ściśle związania z kinematyką danego manipulatora.
Manipulator IRp–6 [1] zbudowany został w Polsce w PIAP (Przemysłowym Insty-
tucie Automatyki i Pomiarów). Jest to manipulator stawowy, który powstał na licencji
szwedzkiej firmy ASEA (Allemana Svenska Elektriska Aktienbolaget). Jest to manipu-
lator przemysłowy, wykorzystywany głównie do lakierowania i spawania części. IRp–6
może wykonywać zaprogramowane zadania, lub być sterowany ręcznie przez operatora.
8
Rysunek 1: Manipulatory IRp–6 układające kostkę Rubika
Wyposażony jest także w system wizyjny za pomocą którego jest w stanie przeprowa-
dzać czynności oparte na rozpoznawaniu obrazów. IRp–6 może być sterowany ręcznie
za pomocą szafy sterującej lub programowany za pomocą dowolnego systemu robo-
tycznego. Operator manipulatora zatem nie musi być w bezpośrednim otoczeniu części
manipulacyjnej, żeby wykonać zadanie. Należy wyróżnić dwa rodzaje funkcji działania
manipulatora: manipulacyjną, wykonywaną przez chwytak i wysięgnikową, realizowaną
przez ramię manipulatora. W projekcie korzystano jedynie z funkcji wysięgowej ma-
nipulatora. Zadaniem manipulatora było przepchnięcie dźwigni ze stałą prędkością,
a czynność ta nie wymaga operacji manipulacji.
Rysunek 1 przedstawia manipulatory IRp–6 w laboratorium robotyki Instytutu
Automatyki i Informatyki Stosowanej Politechniki Warszawskiej. IRp–6 jest typowym
przykładem robota przemysłowego i wykorzystywany jest głównie do automatyzacji
procesów przemysłowych. Ma zastosowanie przede wszystkim tam, gdzie istnieje bez-
pośrednie narażenie życia i zdrowia człowieka.
W laboratorium 012 Instytutu Automatyki i Informatyki stosowanej znajdują się
dwa manipulatory IRp–6: Track i Postument. Obydwa wyposażone są w dwupalcza-
ste chwytaki o jednym stopniu swobody. Track dodatkowo posiada jeszcze tor jezdny
po którym może się poruszać, natomiast Postument, jest na stałe zamontowany w jed-
nym miejscu. Na rysunku 2 po lewej przedstawiono przestrzenny schemat manipulatora
o 7 stopniach swobody. Po prawej stronie rysunku 2 przedstawiono łańcuch kinema-
tyczny manipulatora o 8 stopniach swobody:
• ruch po torze jezdnym (Q0)
• obrót korpusu względem podstawy (Q1)
9
Rysunek 2: Schematy budowy manipulatora IRp–6
• obrót ramienia (ramienia dolnego) (Q2)
• obrót przedramienia (ramienia górnego) (Q3)
• pochylanie kiści (przegubu) (Q4)
• skręcanie kiści (przegubu) (Q5)
• obracanie chwytaka (Q6)
• ruch palcami (Q7)
Na każdej osi stopnia swobody manipulatorów działają silniki elektryczne prądu
stałego z przekładniami. Manipulator IRp–6 składa się z trzech zasadniczych układów:
układu kinematycznego, układów pomiarowych i napędowych oraz z układu sterowania.
Układ kinematyczny odpowiada za przekształcanie działania obrotowego silników
na ruch odpowiednich ramion manipulatora. W skład tego układu wchodzą wszystkie
elementy kinematyczne robota wraz z elementami przeniesienia napędu. Układy pomia-
rowe i napędowe odpowiedzialne są za regulację położenia robota. Na poszczególnych
osiach działają sterowniki mocy oraz silniki prądu stałego. Układ sterowania natomiast
składa się z komputera, pamięci, urządzeń wejścia wyjścia oraz modułów sterujących
serwomechanizmami manipulatora.
2.3 Siłownik pneumatyczny
Siłowniki pneumatyczne mają szerokie zastosowanie w przemyśle. Są to urządzenia
napędzane najczęściej powietrzem lub inną mieszanką gazów roboczych. Siłowniki tego
typu nie generują dużej siły, za to ich ruch jest bardzo dynamiczny. Można je łączyć
10
z siłownikami hydraulicznymi, co sprawia, że ruch siłownika staje się bardziej płynny
a siła działania się zwiększa.
Rysunek 3: Siłownik firmy FESTO typu DNC
W projekcie został użyty siłownik typu DNC-32-150-PPV-A (Rysunek 3). Jest to
siłownik liniowy, tłoczyskowy jednostronnego działania. Średnica tłoka wynosi 32mm,
a długość skoku jest równa 150mm. Siłownik ten jest jednym z mniejszych dostępnych
siłowników pneumatycznych na rynku. W siłownikach tłoczyskowych przesuwanie tłoka
jest zależne od kierunku, z którego podawane do urządzenia jest sprzężone powietrze.
Powietrze jednak nie może być wykorzystane w badaniu tłumienia. Ośrodkiem wypeł-
niającym urządzenie do zadawania tłumienie powinna być substancja, której ściśliwość
jest jak najmniejsza. Nie można odpowiednio zmierzyć współczynnika tłumienia przy
siłowniku wypełnionym powietrzem, ponieważ siła, jaką manipulator wkłada w przesu-
nięcie tłoka nie była by tłumiona przez zawór. Manipulator sprężałby tylko powietrze,
a stopień udziału tłumienia przez zawór byłby znikomy.
W ostatecznej wersji siłownik pneumatyczny został wypełniony olejem przekładnio-
wym. Mała lepkość cieczy, oraz minimalna jej sprężystość sprawia, że idealnie nadaje
się do tego typu pomiarów.
2.4 Model kontaktu manipulatora z otoczeniem
Słowo robot pochodzi od słowiańskiego słowa robota, oznaczającego ciężką pracę,
wysiłek. Definiowany jest jako programowalna, wielofunkcyjna maszyna zaprojekto-
wana do przemieszczania materiałów, narzędzi lub specjalizowanych urządzeń poprzez
różne programowane ruchy w celu realizacji różnych zadań.
Pojęcie modelu kontaktu manipulatora z otoczeniem opiera się na temacie kine-
matyki i dynamiki robota. W pracy nie zajmowano się kinematyką i dynamiką ruchu
manipulatora jako całości, lecz właśnie dynamiką kontaktu manipulatora z otoczeniem.
Podstawowy, impedancyjny [8] model kontaktu manipulatora z otoczeniem można
przedstawić za pomocą schematu 4. Składa się on z trzech zasadniczych elementów:
elementu sprężystego, tłumiącego oraz masy. Impedancję można zapisać zatem w po-
niższej postaci:
F (t) =Md2x(t)dt2
+Bdx(t)dt
+Kx(t) (3)
11
B
F
xK
Rysunek 4: Impedancja mechaniczna, połączenie równoległe sprężyny i tłumienia
W projekcie nie mamy do czynienia ze standardową impedancją mechaniczną. Urzą-
dzenie do zadawania tłumienia można przedstawić jako szeregowe połączenie elementu
sprężystego z tłumikiem, które przedstawione jest na schemacie 5.
B
x1
K
x2
F1, V
1
1 2
F2, V
2
Rysunek 5: Model kontaktu manipulatora z urządzeniem tłumiącym. Połączenie sze-regowe sprężyny i tłumienia
Działając na układ z siłą F1 następuje ściskanie sprężyny wraz z jednoczesnym
przesuwaniem się tłoka w tłumiku. Z tego zjawiska wynika, że prędkości w punkcie 1 i 2
są pochodnymi przesunięcia sprężyny, co prezentują wzory:
V1 = x1 (4)
V2 = x2 (5)
Siły F1 i F2 są sobie równe i początkowo wynoszą 0. W kolejnych fazach ruchu definio-
wane są przez wzory 6 i 8:
F1(t) = K (d− (x2 (t)− x1 (t))) (6)
Gdzie d jest długością sprężyny wyrażoną wzorem:
d = x2(t)− x1(t) (7)
12
Wzór na siłę F1 wynika z twierdzenia o sprężystości (1). Siłę F2 natomiast można
przedstawić jako tłumienie (2):
F2(t) = V2(t) ·B (8)
gdzie B to współczynnik tłumienia.
Jednym z celów projektu było wyznaczenie współczynnika tłumienia B urządzenia,
zadającego tłumienie manipulatorowi. W pierwszej fazie ruchu, gdy na siłę składa
się tłumienia i sprężystość, wyznaczenie współczynnika tłumienia jest bardzo trudne.
W czasie ściskania sprężyny różnica prędkości V1 − V2 jest malejąca. W drugiej fazie
ruchu, gdy sprężyna osiągnie już maksymalne ściśnięcie i prędkość V2 równa jest już
prędkości V1, siła równa jest sile tłumienia (8). Znając wartość V2, gdyż jest to prędkość
zadana i znając siłę, którą można odczytać z wykresu można wyznaczyć współczynnik
B.
Wyznaczenie współczynnika sprężystości K na podstawie zebranych danych pomia-
rowych jest prawie niemożliwe. Wynika to z niedokładności pomiarów i niemożliwości
odpowiedniej aproksymacji funkcji. Siła F , gdzie udział ma sprężystość i tłumienie
jest funkcją nieliniową a F jest malejąca. Na rysunku 6 przedstawiono przykładowy
przebieg wartości siły od czasu.
Rysunek 6: Przykładowy wykres siły od czasu dla stworzonego urządzania zadającegotłumienie
13
2.5 Przetwarzanie danych
Odczyty danych zebrane z czujnika siły manipulatora były bardzo zniekształcone
przez szumy. Bez odpowiedniej filtracji otrzymanych wyników policzenie współczyn-
ników tłumienia i sztywności było niemożliwe. Nieczytelne były w szczególności dane,
gdzie siła maksymalna nie przekraczała wartości 4N. W pracy przetestowano trzy me-
tody filtrowania danych: filtrowanie za pomocą transformaty Fouriera, filtrowanie dol-
noprzepustowym filtrem Butterwortha oraz metodę uśredniania danych. Jakość wy-
branych metod filtracji sprawdzano za pomocą wskaźnika PSNR czyli szczytowego
stosunku sygnału do szumu (wzór 9).
PSNR = 20 · log(MAX(N)√MSE
)(9)
Wzór na PSNR opiera się na wartości błędu średniokwadratowego (MSE). Jest to
suma różnicy między dwoma sygnałami podniesiona do kwadratu oraz podzielona przez
ilość próbek:
MSE =1n·n∑i=1
(xi − yi)2 (10)
W projekcie do wyliczenia PSNR przyjmujemy, że dane zebrane z czujnika są szu-
mem, natomiast przybliżone wartości siły wyliczone za pomocą metod filtracji sygna-
łem podstawowym. Do policzenia wskaźnika potrzebujemy jeszcze maksymalną wartość
siły. Czujnik zamontowany na manipulatorze może zmierzyć siłę do 60N .
2.5.1 Metoda uśredniania danych
Metoda uśredniania danych z zadanym oknem polegała na policzeniu uśrednionej
wartości dla danego x z danych o zadanym oknie. Wzór uśredniający x dla zadanego
okna o rozmiarze w:
X(k) =1w·k+bw2 c∑i=k−bw2 c
x(i) (11)
Rozmiar okna może być teoretycznie dowolną liczbą naturalną, lecz przyjęto, że
rozmiar okna podawany do uśredniania danych będzie liczbą naturalną nieparzystą.
Wiadomo wtedy, że uśredniania liczba jest dokładnie środkiem zadanego przedziału.
W przypadku uśredniania danych wartości xi we wzorze na MSE są danymi wyjścio-
wymi natomiast yi to wartości średnie z zadanego okna liczone według wzoru 11.
2.5.2 Filtr Butterwortha
Filtr Butterwortha [5] działa w dziedzinie częstotliwości. Charakteryzuje się, na tle
innych filtrów, najbardziej płaskim przebiegiem charakterystyki amplitudowej w paśmie
przenoszenia, lecz ma bardzo słabą charakterystykę fazową. Wadą tego filtru jest także
występowanie załamania się charakterystyki pod koniec pasma przepustowego. Poniżej
14
znajduje się wzór na transmitancję funkcji Butterwortha:
Td(f) =1√
1 + ( ff0
)2n(12)
Przy użyciu funkcji Matlaba filter można wykorzystać tę transmitancję do przetwarza-
nia sygnałów. W filtrze Butterwortha możemy dobrać dwa parametry: rząd n i często-
tliwość graniczą f0.
2.5.3 Transformata Fouriera
Ostatnią wypróbowaną metodą filtrowania danych było zastosowanie filtru dolno-
przepustowego za pomocą szybkiej transformaty Fouriera. Wzór na ciągłą transformatę
Fouriera znajduje się poniżej:
F (s) =∫ +∞−∞f(x) · e−2πixsdx (13)
Dane zebrane z czujnika siły nie są jednak ciągle. Aby zastosować transformatę
Fouriera należy skorzystać ze wzoru na jej dyskretną postać:
X(k) =N−1∑n=0
xn · e−2πiNnk (14)
Proces filtrowania danych z szumu polegał na wycięciu dużego przedziału częstotli-
wości, które zakłócały odczyty a następnie odwróceniu operacji przy pomocy odwrotnej
transformaty Fouriera. Wykresy i wyniki ilustrujące dokładne działanie metod zawarte
są w rozdziale 7.1.
15
3 Opis wykorzystanych technologii
3.1 MRROC++
MRROC++ [9] (Multi-Robot Research-Oriented Controller) to programowa struk-
tura ramowa stworzona w Instytucie Automatyki i Informatyki Stosowanej w 1995
roku, która wspomaga tworzenie sterowników dla systemów wielorobrotowych. System
MRROC++ został wykorzystany między innymi do konstrukcji układów sterujących
dla szeregu robotów prototypowych. Programową strukturę ramową aplikacji tworzą:
• biblioteka modułów, z których są budowane programy sterujące robotami,
• szablony programów, w które wstawione są wywołania modułów bibliotecznych,
• narzędzia do tworzenia nowych modułów – wzorce modułów i metody ich two-
rzenia.
Bibliotekę aplikacji można rozszerzać poprzez dodawanie nowych funkcji, bądź mo-
dyfikowanie już istniejących modułów. Biblioteki realizowane są w powszechnie znanych
językach programowania C/C++ Pascal lub Java. Sterowniki dla robotów tworzone są
w języku C++. Sterownik to zbiór procesów o dokładnie zdefiniowanych zadaniach. Je-
żeli zmianie ulegnie chociaż część zadania, należy napisać nowy sterownik. Tworzenie
nowych sterowników w aplikacji MRROC++ jest bardzo wygodne, ponieważ program
ma strukturę wielowarstwową. Rysunek 7 przedstawia schemat sterownika wytworzo-
nego w aplikacji MRROC++.
Tworząc nowy sterownik nie musimy pisać wszystkiego od początku, lecz dokonu-
jemy zmian jedynie w części zależnej od zadania. Aplikacja ma już gotowy interfejs
użytkownika oraz komponenty odpowiedzialne za oprogramowanie części zależnej od
sprzętu.
Aplikacja MRROC++ posiada cechy systemu rzeczywistego, które niezbędne są
do prawidłowego wytwarzania sterowników sterujących robotami. Programując roboty,
ważne jest aby czas reakcji na generowane zdarzenia był możliwie najkrótszy. W po-
przednich wersjach programu wytwarzane sterowniki działały pod kontrolą systemu
czasu rzeczywistego QNX. Obecnie tworzone są one w środowisku Linux z jądrem
w wersji RT. Jądro RT różni się od standardowego jądra sposobem szeregowania proce-
sów. W tej wersji procesy są szeregowane w czasie rzeczywistym, dzięki czemu informa-
cje między komputerem a manipulatorem IRp–6 są przekazywane możliwe najszybciej
i z jak największym priorytetem. W przypadku działania na wersji jądra, gdzie pro-
cesy szeregowane są w sposób standardowy, możliwa jest utrata pewnych informacji
o sterowaniu. Wynikiem wywłaszczenia procesu odpowiedzialnego za wymianę infor-
macji przez inny proces systemu, sterowanie manipulatora może ulec przeregulowaniu
co awaryjnie zakończy wykonywanie zadania.
16
Operator
UserInterfaceProcessUI
MasterProcessMP
EffectorControlProcessECPj,
j = 1,, n e
EffectorDriverProcessEDPj,
j = 1,, n e
VirtualSensorProcessVSPj,
j = 1,, n e
Effectorj, j = 1,, n e
Siłowniki Narzędzie Wyjścia
Czujnikirzeczywistell=1,, n e
SystemResposneProcessSRP Interfejs
użytkownika(stały)
Częśćzależnaod zadania
Częśćzależnaod sprzętu
Rysunek 7: Warstwy sterownika w MRROC++
Do napisania nowego zadania w aplikacji, należy jedynie modyfikować część zależną
od zadania, czyli bloki MP i ECP. Modyfikacja polega na dodaniu własnego zadania
do puli zadań, jakie już posiada aplikacja.
Blok ECP odpowiada za działanie pojedynczych robotów. W skład ECP wcho-
dzą generatory, tworzące poszczególne elementy zadań aplikacji. Blok MP odpowiada
natomiast za komunikację między procesami ECP. Procesy MP dają możliwość pro-
gramowania systemów wielorobotowych.
17
Zadania w aplikacji MRROC++ odpowiedzialne są za wykonywanie algorytmu za-
danego przez operatora. Patrząc na schemat 7 widać, że na część zależną od zadania
składają się procesy MP i ECP. Procesy MP pełnią rolę zarządcy, sterują przebiegiem
wykonywanego zadania i odpowiedzialne są za przesyłanie rozkazów zarówno do ro-
bota jak i do użytkownika. Komunikują się z ECP lub bezpośrednio z częścią zależną
od sprzętu. Głównym budulcem ECP są generatory, o których szerzej napisane jest
w rozdziale 4.3.
Tworzenie sterowników dla robotów i testowanie ich bezpośrednio na fizycznym
urządzeniu może sprawiać wiele trudności. Niepoprawnie napisany kod może uszkodzić
sprzęt, który jest programowany. Zalecane jest dlatego testowanie działania zaprogra-
mowanego sterownika za pomocą symulacji komputerowej. Środowisko do symulacji
i wizualizacji działania robotów zostało napisane przez inż. Mariusza Żbikowskiego [2].
Program ten łączy się z aplikacją MRROC++ umożliwiając ręczne sterowanie wirtual-
nym robotem z konsoli sterowniczej programu, bądź wykonywanie konkretnego zapro-
gramowanego zadania. Programowanie przy użyciu symulacji komputerowej nazywane
jest programowaniem offline.
Manipulatory wykonując swoje zadania poruszają się po pewnych zdefiniowanych
trajektoriach. Aplikacja MRROC++ umożliwia m. in. trzy rodzaje zadawania trajek-
torii ruchu robotom: sterowanie robotem za pomocą konsoli, zapisywanie trajektorii
podczas ręcznego poruszania podatnym robotem oraz zadawanie trajektorii z pliku.
Program MRROC++ umożliwia sterowanie robotem w czasie rzeczywistym za po-
mocą konsoli sterowniczej. Zadawanie ruchu możne odbywać się w wybranym ukła-
dzie współrzędnych: JOINT lub XYZ ANGLE AXIS. W układzie JOINT sterujemy
robotem na podstawie informacji o obrotach przekładni konkretnych członów ro-
bota. Metoda JOINT jest bardzo mało intuicyjna i sprawa dużo trudności, lecz
w tym układzie możemy zadać dowolną pozycję z przestrzeni manipulacyjnej robota.
W XYZ ANGLE AXIS zadajemy punkty w przestrzeni x,y,z jakie ma osiągnąć koń-
cówka manipulatora.
Drugim sposobem zadawania trajektorii manipulatorowi jest zapisanie jej podczas
ręcznego poruszania podatnym robotem. Ręczne poruszanie robotem sprawia trudno-
ści, przez co metoda jest mało dokładna. Przydatną opcja w planowaniu trajektorii
manipulatora jest możliwość zczytywania obecnej pozycji robota. Informacja może być
zczytana w obu układach współrzędnych JOINT i XYZ ANGLE AXIS
Ostatnią metodą jest wprowadzanie trajektorii manipulatorowi z pliku. Poniżej
znajduje się przykładowy plik z zadaną trajektorią:
1 JOINT
2 2
3 ABSOLUTE
4
5 0.05 0.05 0.05 0.05 0.05 0.05
6 0.02 0.02 0.02 0.02 0.02 0.02
18
7 -0.104 -1.542 0.020 1.134 3.658 -2.738
8
9 0.05 0.05 0.05 0.05 0.05 0.05
10 0.02 0.02 0.02 0.02 0.02 0.02
11 -0.104 -1.542 0.020 1.4104 3.358 -2.538
Opis kodu:
• 1 - definicja układu współrzędnych JOINT lub XYZ ANGLE AXIS,
• 2 - ilość kroków trajektorii jaką ma wykonać manipulator,
• 3 - sposób interpolacji punktów, czyli czy są one definiowane względem układu
bazowego (ABSOLUTE) czy względem poprzedniej pozycji robota (RELATIVE),
• 5-7, 9-11 - dwa zdefiniowane kroki trajektorii manipulatora.
– 5 - sześć maksymalnych przyspieszeń dla poszczególnych kierunków ruchu
dla dojazdu do zadanej dalej pozycji
– 6 - sześć maksymalnych przyspieszeń dla poszczególnych kierunków ruchu
dla dojazdu do zadanej dalej pozycji
– 7 - pozycja końcówki
3.2 Środowisko Matlab
Matlab [6] jest interakcyjnym środowiskiem do wykonywania naukowych i inżynier-
skich obliczeń. Nazwa Matlab pochodzi od słów Matrix Laboratory.
Matlab jest pełnoprawnym językiem programowania wysokiego poziomu, o składni
wzorowanej na języku C. Obecnie [3] posiada około 80 funkcjonalnych bibliotek i około
30 podprogramów zwanych toolboxami.
Podstawowym typem danych w Matlabie jest macierz o elementach rzeczywistych
lub zespolonych. Wszystkie zmienne w programie traktowane są jak macierze a wektory
i skalary są szczególnymi przypadkami macierzy. Deklarowanie typu i wymiaru zmien-
nej odbywa się automatycznie na podstawie podanych danych do macierzy. Tablice
w Matlabie indeksowane są od jedynki w przeciwieństwie do większości wysokopozio-
mowych języków programowania, gdzie wszystkie zmienne tablicowe numerowane są
od zera.
Komendy do wykonania dla programu można wprowadzać z konsoli programu, bądź
stworzyć i wykonać swój skrypt. Matlab umożliwia pisanie własnych funkcji oraz po-
zwala na używanie struktur. Pozwala również na pisanie programów zorientowanych
obiektowo. Za pomocą programu można rysować dwu i trójwymiarowe wykresy funkcji
oraz wizualizować wyniki obliczeń w postaci rysunków statycznych i animacji.
Funkcje Matlaba [3] mogą być wykorzystywane przy opracowywaniu wyników da-
nych eksperymentalnych. Umożliwia wizualizację danych, udostępnia funkcje staty-
styczne oraz posiada wbudowane funkcje aproksymujące.
W projekcie, do odszumiania danych, wykorzystano między innymi funkcję poly-
fit, która aproksymuje podaną funkcję wielomianem o zadanym stopniu. Na wejście
19
przyjmuje trzy parametry, x, y - serie danych oraz wcześniej już wspomniany stopień
wielomianu. Funkcja siły od czasu, z której wyznaczany jest współczynnik tłumienia,
jest funkcją liniową, dlatego aproksymowana była wielomianem rzędu pierwszego.
Filtrowanie danych również oparte zostało na wbudowanych funkcjach matlabo-
wych. Skorzystano z szybkiej transformaty Fouriera (fft) oraz z odwrotności tej opera-
cji czyli odwrotnej transformaty Fouriera (ifft). Funkcje te przekształcają odpowiednio
podane na wejście dane. Użyto także funkcji butter filtrująca dane za pomocą filtru
Butterwotha. Filtr ten, oprócz danych do przekształcenia, wymaga podania dwóch
parametrów: rzędu wielkości filtru oraz częstotliwości granicznej.
Funkcje statystyczne jakie wykorzystano to min i max do liczenia minimum i mak-
simum lokalnego w celu wyznaczenia przedziału działania siły tłumienia.
Opis funkcji stworzonych i użytych w projekcie znajduje się w rozdziale 6
20
4 Opis stanowiska badawczego
4.1 Założenia
Stanowisko badawcze do zbierania charakterystyki tłumienia manipulatora, oprócz
samego manipulatora IRp–6, składa się także z urządzenia zadającego tłumienie. Re-
alizacja budowy urządzania zmieniała się wraz z rozwojem pracy. Na początku należało
zastanowić się nad elementem urządzenia, za pomocą którego można by zadawać i kon-
trolować tłumienie. Ważna była także możliwość zadawania różnego tłumienia dla róż-
nej prędkości manipulatora. Urządzenie zadające tłumienie musiało mieć co najmniej
jeden tłok, na który mógłby, bezpośrednio lub pośrednio, oddziaływać manipulator.
Z powyższych pierwotnych założeń powstało kilka wersji urządzenia, które opisane zo-
stały poniżej.
4.2 Proces tworzenia urządzenia zadającego tłumienie
a aa ab
Rysunek 8: Schemat urządzenia zadającego tłumienie w wersji 1.0; a) tłoki; b) zawórkulowy.
Pierwsza wersja modelu została przedstawiona na rysunku 8. Prototyp urządze-
nia zbudowany został z dwóch rurek PCV połączonych ręcznym zaworem kulowym
(rysunek 8 b) o średnicy przepływu 1”. Na końcach rur PCV zamieszczono tłoki (rysu-
nek 8 a) wykonane ze strzykawek. Zawór kulowy jest najprostszym zaworem obrotowym
w całości zbudowanym z metalu. Elementem kontrolującym przepływ jest chromowa
kula lub jej fragment, zbędne jest więc jakiekolwiek dodatkowe stosowanie uszczelek
wewnątrz zaworu. Uszczelki maja tendencje do odkształcania się i dla małych kątów
otworzenia zaworu mogłoby zakłócać wyniki pomiarów. Na rysunku 9 przedstawiony
został przekrój zaworu kulowego.
Zbudowane urządzenie było testowane i wypełniane różnymi ośrodkami: olejem,
wodą oraz wodą z detergentem. Głównym problemem było zbyt duże tarcie statyczne
tłoka. Najmniejsze tarcie dało się zauważyć, gdy siłownik wypełniony był wodą z de-
tergentem, czysta woda, jak i olej, miały zbyt duży współczynnik lepkości.
Głównym problemem urządzenia było jego odpowietrzenie. Podczas pracy urządze-
nia, zarówno z wody jak i z oleju wytrącało się powietrze, które zakłócało jego pracę.
21
Rysunek 9: Przekrój zaworu kulowego.
Poprzez zamontowanie dwóch tłoków bardzo łatwo można było uzyskać efekt rozpręża-
nia powietrza. Do prawidłowego zbadania tłumienia należało wyeliminować całkowicie
powietrze z układu poprzez odpowiednie zalanie urządzenia wodą z detergentem oraz
odpowietrzanie go w trakcie pracy. W wersji następnej urządzenia dodatkowo został
zamontowany odpowietrznik. Schemat wersji następnej znajduje się na rysunku 10.
a aa ab c
Rysunek 10: Schemat urządzenia zadającego tłumienie w wersji 1.1; a) tłoki; b) odpo-wietrznik ciągły c) zawór kulowy.
Rysunek 11: Urządzenie zadające tłumienie w wersji 1.1.
Zanotowanie odpowietrznika niestety nie przyniosło zamierzonego efektu. Nadal
zbyt dużo powietrza znajdowało się wewnątrz układu co uniemożliwiało przeprowadze-
nie badań. Rysunek 11 przedstawia zdjęcie urządzenia do zadawania tłumienia w wer-
sji 1.1. Kolejne urządzenie zostało zmontowane na bazie jednostronnego tłoczyskowego
siłownika pneumatycznego firmy Festo. Schemat konstrukcji przedstawiony został na
rysunku 12. Z dwóch stron do siłownika (rysunek 12 a) były doprowadzone rurki o śred-
nicy 8mm. Rurki po środku połączone były z zaworem kulowym (rysunek 12 b), który
22
miał za zadanie regulować przepływ. Konstrukcja wypełniona została olejem przekła-
dniowym o bardzo małej lepkości.
aa
b
Rysunek 12: Schemat Urządzenia zadającego tłumienie w wersji 2.0; a) siłownik pneu-matyczny; b) zawór kulowy regulujący przepływ.
Ostatnie ulepszenie wprowadzone do konstrukcji to dodatkowy zawór kulowy uła-
twiający wprowadzanie oleju przekładniowego oraz odpowietrzanie urządzenia. Sche-
mat ostatecznej wersji przestawiony został na rysunku 13.
aa
bc
Rysunek 13: Schemat urządzenia zadającego tłumienie w wersji 2.1; a) siłownik pneu-matyczny; b) zawór kulowy regulujący przepływ; c) zawór kulowy pomocniczy.
4.3 Realizacja fizyczna
Stanowisko do badań składa się z dwóch zasadniczych elementów: manipulatora
IRp–6 oraz urządzenia zadającego tłumienie. W celu uzyskania jak najmniejszego tar-
cia statycznego tłoka urządzenie wypełnione zostało olejem przekładniowym. Tarcie
statyczne zmniejszono także stosując dźwignie przekładniową. Manipulator nie działa
bezpośrednio na tłok urządzenia, ale na dźwignię. W Dźwigni przekładniowej umiesz-
czono trzy uchwyty, dzięki którym można zadawać trzy różne przyłożenia. Zakres ru-
chu tłoka jest zmienny, w zależności od ustawionego przyłożenia na dźwigni. Schemat
stanowiska badawczego przedstawiono na rysunku 14. Oznaczenia Q1 − Q4 wskazują
elementy ruchome układu. Ruch tłoka wewnątrz siłownika (oznaczony jako Q3) jest
ruchem translacyjnym działającym w jednej osi. Elementy Q1, Q2, Q4 działają rota-
cyjnie umożliwiając działanie przekładni. Siłownik (rysunek 14 a) przymocowany jest
do podłoża i przekładni za pomocą dwóch zawiasów obrotowych. Dźwignia opiera się
na jednym zawiasie przymocowanym do podłoża. Trójkąty na schemacie odwzorowują
23
trzy możliwe miejsca przymocowania siłownika do dźwigni przekładniowej. Siłownik
można umieścić w położeniu dolnym, środkowym i górnym.
aa
Q1
Q3Q2
Q4
bc
Rysunek 14: Schemat urządzenia zadającego tłumienie z dźwignią przekładniową; a) si-łownik pneumatyczny; b) dźwignia; c) regulacja przyłożenia.
Na rysunku 15 przedstawiono stanowisko do badania charakterystyki manipulatora.
Zdjęcie po lewej stronie prezentuje widok na stanowisko od przodu. Widoczna jest tu-
taj ostateczna wersja urządzenia zadającego tłumienie oraz manipulator IRp–6. Ma-
nipulator oddziałuje na urządzenie popychając chwytakiem dźwignię przekładniową.
Urządzenie zamocowano do żeliwnego stelażu za pomocą opasek do kabli. Sam stelaż,
by był nieruchomy w osi ruchu manipulatora, został przymocowany do taśmociągu
roboczego.
Zdjęcie po prawej natomiast przedstawia siłownik wraz z systemem regulacji tłu-
mienia. Wyjścia siłownika połączone są ze sobą rurkami pneumatycznymi. Pomiędzy
jednym wyjściem a drugim zamocowane są dwa zawory. Zawór (g) służy do zalewania
siłownika olejem przekładniowym oraz do odpowietrzania układu. Do drugiego zaworu
(e) zamontowano podziałkę kątową oraz dźwignię regulującą przepływ oleju. Dźwignia
umożliwia z dużą dokładnością ustawienie kąta zamknięcia zaworu.
Całe stanowisko, jak już wcześniej wspomniano, składa się z dwóch elementów:
manipulatora IRp–6 i z urządzenia zadającego tłumienie. Robot przykłada siłę do
wajchy urządzania próbując ją przesunąć. W zależności od kąta zamknięcia zaworu
oraz ustawienia siłownika, musi przyłożyć większa lub mniejszą siłę. Na rysunku 16
przedstawiono schemat całego stanowiska do badania charakterystyki tłumienia siły
manipulatora IRp–6.
4.4 Uwagi dotyczące eksploatacji
Prawidłowe działanie stanowiska do badania tłumienia manipulatora zależne jest
od kilku czynników. Manipulator, zanim wejdzie w kontakt z urządzeniem, musi być
ustawiony w odpowiedniej pozycji. Za ustawienie manipulatora odpowiada generator
24
b
c
a
d
e
f
g
Rysunek 15: Stanowisko do badania charakterystyki manipulatora: a) Manipula-tor IRp–6; b) Dźwignia urządzenia tłumiącego; c) Urządzenie tłumiące d) Siłownikpneumatyczny wypełniony olejem; e) Dźwignia do ustawiania kąta zamknięcia zaworu;f) Miarka kątowa; g) Zawór odpowietrzający.
b
a
F
Rysunek 16: Stanowisko do badania charakterystyki tłumienia siły manipulatoraIRp–6: a) manipulator IRp–6; b) urządzenie zadające tłumienie.
aplikacji MRROC++. Początkowa trajektoria robota jest stała i służy do dojazdu ma-
nipulatora do pozycji startowej. Dopiero od zadanej pozycji, manipulator porusza się
w kierunku urządzenia i z zadaną przez operatora prędkością popycha dźwignię prze-
kładniową urządzenia. Ruch manipulatora w kierunku urządzenia odbywa się w jednej
osi. W przypadku niekontrolowanego zachowania manipulatora należy niezwłocznie
wyłączyć go awaryjnym przyciskiem STOP.
Przed rozpoczęciem pomiaru dźwignia przekładniowa urządzenia powinna być w po-
zycji pionowej. Po wykonaniu jednego pomiaru, będzie ona przechylona przez manipu-
lator. W celu powtórzenia doświadczenia, należy ręcznie przestawić dźwignię do pozycji
25
pionowej. Dla różnego zamocowania siłownika do dźwigni, pozycja startowa wajchy bę-
dzie się różnić. Aby zapewnić powtarzalność pomiarów, na taśmociągu zostały dodane
znaczniki startowe dla wajchy.
W układzie, po kilkunastu pomiarach, luzują się połączenia rurek pneumatycznych
ze złączkami. Rurki tego typu nie są przeznaczone do pracy z cieczami, w dodatku tak
śliskimi jak olej przekładniowy. Do prawidłowego działania układu należy poprawiać
mocowania rurek.
Innym problemem, jaki występuje podczas użytkowania urządzenia, jest powietrze
pojawiające się w układzie. Podczas eksploatacji zdarzają się małe wycieki oleju. Wy-
nika to, jak już wcześniej wspomniano, z wyślizgujących się rurek pneumatycznych.
Podczas pracy siłownik zasysa więc małe porcje powietrza. Po kilkunastu pomiarach
należy uzupełnić braki olejowe w układzie oraz ponownie go odpowietrzyć.
Odpowietrzanie układu ułatwia dodatkowy zawór. Sam proces dolewania oleju po-
lega na otwarciu zaworu pomocniczego, wlaniu oleju powyżej części obrotowej zaworu
oraz jego zamknięciu. Komin, do którego wlewa się olej musi znajdować się w naj-
wyższym punkcie urządzenia. Po zamknięciu zaworu odpowietrzamy układ, poruszając
tłokiem siłownika. Po kilku ruchach, ostrożnie otwieramy zawór pomocniczy. Czynność
powtarzamy do momentu, gdy po otwarciu zaworu poziom oleju nadal będzie utrzy-
mywał się powyżej części obrotowej zaworu. Bez dodatkowego zaworu odpowietrzanie
jest bardzo uciążliwe. Należy bardzo uważać na to, by olej nie wylewał się z układu
podczas ruchu tłoka.
Kąt zamknięcia zaworu głównego ustawia się za pomocą dźwigni znajdującej się
przy podziałce kątowej. Na zaworze można ustawić kąty zamknięcia od 0° (zawór
otwarty) do 90° (zawór zamknięty) z dokładnością do 1°. Z doświadczeń przeprowa-
dzonych na urządzeniu, siłownik zadaje zauważalne tłumienie przy kącie zamknięcia
powyżej 40°.
26
5 Programowanie manipulatora IRp–6
W rozdziale 3.1 przybliżono budowę sterownika w MRROC++. Projekt składał
się z generatora ECP i zadania MP. W następnych podrozdziałach opisano dokładniej
stworzone zadanie i generator.
5.1 Zadanie
W tym podrozdziale opisane zostało zadanie realizowane przez manipulator IRp–6.
Pojedyncze zadanie dla robota składa się z plików źródłowych zadania, oraz z dwóch
plików konfiguracji robota. W aplikacji domyślnie zdefiniowany jest plik common.ini,
który zawiera standardowe zestawy parametrów. Dodatkowy plik konfiguracyjny two-
rzony jest pod wyspecjalizowane zadanie manipulatora.
Plik podzielony jest na sekcje: mp, ecp i edp. Każda sekcja posiada podstawowe
parametry:
• is active - flaga opowiadająca za aktywowanie danej sekcji,
• node name - nazwa węzła, na którym ma być uruchomiona dana sekcja.
• program name - nazwa programu binarnego skojarzonego z sekcją.
Plik konfiguracyjny wykorzystany w projekcie:
1 [mp]
2 is_active =1
3 program_name=mp_mkula
4 node_name=irp6
5 trajectory_file =../../ src/application/mkula/test_p.trj
6
7 [ecp_irp6ot_m]
8 is_active =0
9 program_name=ecp_mkula
10 max_force = 40
11 max_torque = 10
12 node_name=irp6
13
14 [edp_irp6ot_m]
15 is_active =0
16 robot_test_mode =0
17 force_sensor_test_mode =0
18 imu_sensor_test_mode =0
19 node_name=irp6
20 preset_position_0 =0.3 0.229 -1.602 0.153 1.255 0.235 -1.223
21 computed_force_2 =1
22 desired_force_2 =1
23 adjusted_force_2 = 1
24 inertial_force_2 = 1
25 real_cartesian_position_0 =1
27
26 real_cartesian_vel_0 =1
27 real_cartesian_acc_0 =1
28 imu_cartesian_acc_0 =1
29
30 [ui]
31 is_active =1
32 reader_meassures_dir =/home/mkula/test
Opis kodu:
• 1-5 - sekcja mp. W linii nr 5 zdefiniowano ścieżkę, w której znajduje się trajektoria
manipulatora.
• 7-12 - sekcja ecp. W liniach nr 10 i 11 zdefiniowano odpowiednie maksymalną
siłę i moment siły dla manipulatora.
• 14-28 - sekcja edp. Preset position 0 definiuje wyjściową pozycję manipulatora.
Linie 21-28 odpowiadają za zczytywanie danych siły z czujnika manipulatora.
• 30-32 - sekcja ui. W lini 32 zdefiniowano ścieżkę, w której zapisywane są odczyty
z czujnika siły manipulatora.
5.2 Generator
Jak już wcześniej wspomniano, generatory są głównym budulcem zdań ECP. W tej
części definiowane są poszczególne części algorytmu, jaki ma wykonać robot. Genera-
tory powoływane są do działania w procesach MP.
W projekcie wykorzystywano gotowy generator stworzony przez Rafała Tulwina [7].
Generator constant velocity generuje ruch robota ze stałą prędkością dla zadanej tra-
jektorii podanej z pliku. W pracy rozszerzono funkcjonalność tego generatora. Korzy-
stając z dziedziczenia po klasie constant velocity, zadawana jest trajektoria manipulato-
rowi. IRp–6 wykonuje ruch zgodnie z zadaną trajektorią ze stałą prędkością, zadawaną
w pliku konfiguracyjnym. Dodatkowo jednak istnieje możliwość ograniczenia maksy-
malnej siły oraz momentu siły. Oba parametry ograniczające inicjowane są w pliku
konfiguracyjnym. Na rysunku 17 przedstawiono schemat działania generatora.
Patrząc na schemat widzimy, że gdy siła manipulatora lub moment siły przekro-
czy wartości graniczne ustawione w pliku konfiguracyjnym, manipulator zatrzymuje
się w miejscu. Zatrzymanie polegające na wygaszeniu prędkości aż do zatrzymania, lub
dostosowanie prędkości do ograniczenia siły zakłóciłoby pomiary współczynnika tłu-
mienia. Założeniem projektu jest by manipulator oddziaływał na urządzenie ze stałą
prędkością przy konkretnym, nie zmienianym w czasie ruchu, ustawieniu zaworu i si-
łownika. Wykres 18 przedstawia zależność prędkości manipulatora od siły zadawanej
przez robota.
28
Rysunek 17: Schemat działania manipulatora
5.3 Opis Klas
Na schemacie 19 przedstawiono diagram klas stworzonych komponentów. Klasa
ecp t mkula odpowiada za stworzenie sprecyzowanego zadania MP, natomiast
29
0 5 10 15 20 25 30 35CZAS [s]
0
5
10
15
20
25
SIŁA
[N]
Wykres siły od czasuOgraniczenie siły
Rysunek 18: Wykres przedstawiający działanie generatora limit force przy stałej pręd-kości manipulatora
mp t mkula steruje całym zadaniem i definiuje roboty, przy użyciu których zostanie
wykonane zadanie. Obie klasy, jak widać na diagramie, dziedziczą z klasy głównej
Task.
Rysunek 19: Diagram klas
30
Klasa ecp g limit force tworzy generator odpowiedzialny za poruszanie się manipu-
latora ze stałą prędkością z ograniczeniem na siłę i moment siły. Przeciąża on metodę
next step() z klasy bazowej generator, w której definiuje się kolejne kroki algorytmu.
Dokładny opis zmiennych i metod klasy:
• max max force p, max force ot, max torque p, max torque ot - zmienne pomoc-
nicze, do których zczytywane są wartości graniczne siły i momentu siły zdefinio-
wane przez użytkownika w pliku konfiguracyjnym.
• force torque - sześcioelementowy wektor, do którego zczytywane są składowe siły
i momentu siły.
• force, torque - siła i moment siły wyliczony ze składowych zczytanych z czujników
manipulatora.
• next step() - przeciążona metoda klasy Task, w której określono działanie gene-
ratora w każdym kolejnym kroku algorytmu wykonywanego przez manipulator
Klasa ecp st mkula gen jest generatorem po stronie zadania MP. Definiuje głównie
traektorię, po której będzie poruszał se robot, oraz roboty które będą wykorzystywane
w zadaniu.
Opis zmiennych i metod:
• lfgenjoint, lfgenmotor, lfgeneuler, lfgenangle - definiują wskaźniki odpowiedzialne
za wyliczanie trajektorii dla stałej prędkości dla różnych układów współrzędnych.
• track, postument - zmienne określające, które roboty będą brały udział w zada-
niu.
• network path - zmienna tekstowa ze ścieżką do pliku z trajektorią
• conditional execution() - funkcja wczytująca trajektorię z pliku i przeliczająca
kolejne kroki dla manipulatora.
31
6 Specyfikacja funkcji środowiska Matlab
W tym dziale opisane zostały funkcje i skrypty stworzone w środowisku Matlab.
Poniżej znajduje się opis funkcji wykorzystanych przy filtrowaniu zaszuminonych
danych oraz tworzenia wykresów.
fourier.m
Funkcja filtrująca dane wejściowe za pomocą szybkiej transformaty Fouriera.
Funkcja realizująca transformatę Fouriera znajduje się w podstawowych bibliotekach
programu i wywoływana jest komendą fft. W funkcji fourier danymi wejściowymi są
dane do przefiltrowania oraz częstotliwość graniczna, powyżej której reszta często-
tliwości jest wygaszana. Funkcja zwraca tablice dwuelementową. Pierwsza zwracana
wartość to dane po odcięciu częstotliwości, natomiast drugi element to również dane
po odcięciu zbędnych częstotliwości, ale poddane dodatkowo już operacji odwrotnej
transformaty Fouriera za pomocą wbudowanej funkcji ifft.
mean data.m
Funkcja usuwająca szumy za pomocą metody uśredniania danych. Na wejście
podawane są dane do filtrowania oraz rozmiar okna z jakim będą one uśredniane.
Funkcja zwraca uśrednione dane.
filter butter.m
Metoda filtrująca dane z użyciem filtru Butterwotha. Na wejściu funkcji podane
są dane do filtracji oraz dwa parametry filtru: a – częstotliwość graniczna oraz b –
rząd filtru. Po zastosowaniu wbudowanej funkcji Butter dane poddawane są filtracji
za pomocą funkcji filter. Funkcja zwraca dane po przefiltrowaniu.
find zero.m
Funkcja licząca zera z pochodnej danych przefiltrowanych za pomocą transformaty
Fouriera. W rozdziale 7.2 jest opisane dokładnie jakie miejsca zerowe są szukane.
Metoda przyjmuje na wejście wektor danych, pozycję, od której poszukiwane ma być
miejsce zerowe oraz kierunek, w którym poszukiwane będzie miejsce zerowe.
getAllFiles.m
Metoda wczytująca nazwy wszystkich plików znajdujących się w danym katalogu.
Wczytywanie nazw plików jest o tyle istotne, że w nazwie zawarta jest informacja
o pomiarze czyli kąt otworu zaworu, położenie siłownika, prędkość manipulatora oraz
numer pomiaru.
32
parseFileName.m
Funkcja pomagająca w zapisywaniu danych. Przyjmuje na wejście nazwę obecnie
przetwarzanych danych, parametry dotyczące filtrowania danych, nazwę parametrów
oraz string umożliwiający dodanie komentarza do zapisywanych danych. Zwraca
nazwę pliku gotową do zapisu.
MSE.m
Funkcja licząca błąd średniokwadratowy (10). Na wejście funkcji podawane są dane
wyjściowe oraz dane po zastosowaniu filtrowania, a zwracana jest wartość błędu MSE.
PSNR.m
Funkcja licząca szczytowy stosunek sygnału do szumu (9). Przyjmuje na wejście
jedynie wartość błędu średniokwadratowego i zwraca policzony współczynnik PSNR.
draw fourier.m, draw mean data.m, draw butter.m
Funkcje draw służą do rysowania wykresów danych. W każdym pliku używane są
odpowiednio metody filtrowania danych oraz liczone są współczynniki MSE i PSNR.
Każda metoda przyjmuje parametry: dane wyjściowe do obróbki, podstawę czasu oraz
nazwę obecnie przetwarzanych danych. W zależności od metody podawane są różne
dodatkowe parametry. W uśrednianiu parametrem jest wielkość okna, w transformacie
Fouriera częstotliwość maksymalna, a w filtrze Butterwotha rząd filtru i częstotliwość
graniczna. W funkcji draw fourier dodatkowo aproksymowana jest funkcja siły gdzie
występuj tłumienie.
do all.m
Funkcja wywołująca metody draw dla wszystkich plików z danymi. Nie przyjmuje
żadnych paramentów i także nic nie zwraca. korzysta z funkcji getAllFiles.
33
7 Wyniki
7.1 Wybór metody filtracji danych
Poniżej przedstawiono wyniki działania trzech metod filtracji danych. Wszystkie
testowane były na tych samych danych wejściowych, zdejmowanych przy ustawieniu
środkowym siłownika na dźwigni, prędkości manipulatora 0.0025m/s oraz kącie za-
mknięcia zaworu tłumiącego 60°. Dla porównania skuteczności pojedynczej metody,
zestawiono dane wyjściowe z danymi po filtracji dla różnych parametrów danego filtru.
Wszystkie wskaźniki PSNR filtrów przedstawiono na poszczególnych wykresach oraz
w tabeli 1.
Dla metody uśredniania dobrano trzy rozmiary okna 11, 32 oraz 51. Rysunek 20
przedstawia dane wyjściowe zestawione z danymi po uśrednieniu dla różnych rozmia-
rów okien. Patrząc na wykresy można zauważyć, że im większa szerokość okna tym
otrzymujemy mniej zniekształcone dane.
−5
0
5
10Dane wyjścioweDane uśrednione przy rozmiarze okna 11
−5
0
5
10
SIŁA
[N]
Dane wyjścioweDane uśrednione przy rozmiarze okna 31
0 2 4 6 8 10 12 14 16CZAS [s]
−5
0
5
10
PSNR=38.13
PSNR=36.81
PSNR=36.89
Dane wyjścioweDane uśrednione przy rozmiarze okna 51
Rysunek 20: Wykres danych wyjściowych zestawionych z danymi uśrednionymi różnymirozmiarami okna
Dane uśrednione oknem o rozmiarze 31 i 51 są wyraźnie mniej zaszumione po za-
stosowaniu metody, natomiast wykres pierwszy, gdzie okno jest rozmiaru 11, szumów
jest nadal zdecydowanie za dużo. Na wykresie 21 znajduje się powiększony fragment
wykresu 20.
34
2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0
−4
−2
0
2
4
6
8
10
Dane wyjścioweDane uśrednione przy rozmiarze okna 11 (powiększenie)
Rysunek 21: Powiekszony wycinek wykresu 20.
Wykres 22 przedstawia natomiast dane zestawione z danymi po zastosowaniu filtru
Butterwortha. Dane na tym wykresie były filtrowane filtrem o tym samym rzędzie rów-
nym 4 oraz trzema różnymi częstotliwościami granicznymi. Patrząc na wykres można
zauważyć, że filtr Butterwortha aproksymuje nasze dane z dużym opóźnieniem. Mniej-
sza częstotliwość graniczna wygładza bardziej szumy na wykresie, ale niestety również
wprowadza większe opóźnienie. Na wykresie 23 przedstawiono filtrowanie Butterwor-
tha ze stałą częstotliwością graniczną równą 0.009 i trzema różnymi rzędami filtru. Po
wykresach widać, że również rząd filtru ma wpływ na opóźnienie danych.
Podobnie jak w metodzie uśredniania danych, również przy metodzie filtrowania
Butterwotha policzono wskaźniki PNSR. Wszystkie policzone wskaźniki zostały za-
mieszczone pod wykresami. Wartości wskaźników są zdecydowanie mniejsze niż w przy-
padku metody uśredniania. Duże błędy w danych wprowadza opóźnienie filtru.
W metodzie filtrowania za pomocą transformaty Fouriera przeprowadzono testy na
trzech różnych filtrach dolnoprzepustowych: filtr do 1, 4 i 7Hz. Rysunek 38 przedstawia
zestawienie wykresów danych, z danymi po wycięciu różnych przedziałów częstotliwości.
Filtr nie wprowadza żadnych opóźnień. Dane po zastosowaniu filtrowania są wy-
gładzone, mają bardzo mało minimów i maksimów lokalnych. Wskaźniki PSNR mają
wartości porównywalne z uśrednianiem danych.
Wybór najlepszej metody polegał na porównaniu współczynników PSNR oraz na
wizualnej ocenie wyglądu przybliżonych danych. W tabeli 1 zebrano wszystkie współ-
czynniki PSNR dla wszystkich metod i ich wariantów.
35
−5
0
5
10Dane wyjścioweDane przefiltrowane filtrem rzędu 4 i częstotliwością graniczną 0.09
−5
0
5
10
SIŁA
[N]
Dane wyjścioweDane przefiltrowane filtrem rzędu 4 i częstotliwością graniczną 0.009
0 2 4 6 8 10 12 14 16CZAS [s]
−5
0
5
10
PSNR=35.64
PSNR=34.03
PSNR=25.17
Dane wyjścioweDane przefiltrowane filtrem rzędu 4 i częstotliwością graniczną 0.001
Rysunek 22: Wykres danych wyjściowych zestawionych z danymi po zastosowaniu filtruButterwortha rzędu 4 i różnych częstotliwościach granicznych
−5
0
5
10Dane wyjścioweDane przefiltrowane filtrem rzędu 1 i częstotliwością graniczną 0.009
−5
0
5
10
SIŁA
[N]
Dane wyjścioweDane przefiltrowane filtrem rzędu 4 i częstotliwością graniczną 0.009
0 2 4 6 8 10 12 14 16CZAS [s]
−5
0
5
10
PSNR=36.25
PSNR=34.03
PSNR=32.18
Dane wyjścioweDane przefiltrowane filtrem rzędu 7 i częstotliwością graniczną 0.009
Rysunek 23: Wykres danych wyjściowych zestawionych z danymi po zastosowaniu filtruButterwortha z częstotliwością graniczną 0.009 i różnych rzędach
Najlepsze wskaźniki uzyskała metoda uśredniania danych. Największy współczyn-
nik uzyskało uśrednianie o rozmiarze okna 11. Jednak mimo dobry wyników, widać
36
−5
0
5
10Dane wyjścioweDane przefiltrowane filtrem do 1Hz
−5
0
5
10
SIŁA
[N]
Dane wyjścioweDane przefiltrowane filtrem do 4Hz
0 2 4 6 8 10 12 14 16CZAS [s]
−5
0
5
10
PSNR=36.05
PSNR=36.79
PSNR=36.92
Dane wyjścioweDane przefiltrowane filtrem do 7Hz
Rysunek 24: Wykres danych przy prędkości manipulatora 0.0025m/s, ustawieniu dol-nym siłownika i kącie zamknięcia zaworu 60°
Tablica 1: Tablica współczynników PSNR dla metod z różnymi parametrami
Nr wykresu Uśrednianie Filtr Filtr TransformataButterwoth’a 1 Butterwoth’a 2 Fouriera
(od góry) (rys. 20) (rys. 22) (rys. 23) (rys. 38)
Wykres 1 38.13 35.64 36.25 36,05Wykres 2 36.81 34.03 34.03 36,79Wykres 3 36.89 25.17 32.18 36,92
że dalej mamy do czynienia z dość dużymi szumami. Na uśrednionych danych nadal
mamy sporo zakłóceń i dużo minimów i maksimów lokalnych.
Filtr Butterwortha dyskwalifikuje opóźnienie jakie wprowadza w przefiltrowanych
danych. Najgorsze rezultaty widać gdy częstotliwość graniczna wynosi 0.001. Opóźnie-
nie wtedy jest na tyle duże, że PSNR wynosi tylko 25.17. Wygładza bardzo dobrze
dane, nie widać praktycznie w ogóle szumów, lecz w tym projekcie wprowadzając na-
wet małe opóźnienia otrzymamy wyniki współczynników tłumienia zupełnie różne od
rzeczywistych.
Filtrowanie za pomocą transformaty Fouriera dobrze wygładza szumy i nie wprowa-
dza przy tym żadnych opóźnień. Wskaźniki PSNR są zbliżone wartościami do danych
uśrednionych.
37
W dalszej części pracy wykorzystano filtrowanie za pomocą transformaty Fouriera.
Filtr ten, nie wprowadza żadnych niepożądanych opóźnień, ma mało minimów i maksi-
mów lokalnych przez co dalsze przetwarzanie danych nie będzie stwarzało problemów.
Po przeprowadzeniu jeszcze kilku testów na filtrze zmieniając zakres wyciętych często-
tliwości, do obliczeń współczynników tłumienia wykorzystano filtr do 4Hz.
7.2 Wyznaczanie współczynników tłumienia
Przeglądając wykresy wygenerowane na podstawie danych z czujnika siły można
zauważyć klika tendencji. Cały ruch manipulatora można podzielić na 4 fazy. Pierwsza
faza, to poruszanie się manipulatora w kierunku urządzenia zadającego tłumienie, bez
obciążenia. Siła w tym etapie powinna być równa zero. Czujnik nie jest dobrze skali-
browany, dlatego ręcznie należało skalibrować dane. Policzono średnią z pierwszej fazy
ruchu i odjęto ją od wszystkich danych według wzoru:
xk = xk −1n·w∑i=1
xi (15)
W dalszym etapie ruchu, gdy manipulator wchodzi w kontakt z dźwignią urządze-
nia, ma udział zjawisko sprężystości i tłumienia. Wyznaczenie współczynnika tłumienia
w tym etapie jest niemożliwe. W trzeciej części ruchu działa już samo tłumienie i z tego
fragmentu wyliczone zostały współczynniki. Siła z udziałem tłumienie w tym fragmen-
cie powinna być funkcją liniową stałą, dlatego też dane były najpierw aproksymowane
funkcją liniową, później natomiast w liczeniu współczynnika tłumienia liczono śred-
nią z otrzymanej funkcji liniowej. Końcowy etap ruchu manipulatora to wycofywanie
ramienia od dźwigni. Podobnie jak w początkowej fazie ruchu, po spadku siły z jaka ma-
nipulator pchał dźwignie, dalej powinna wynosić 0N . Proces wyznaczania przedziałów
tłumienia wizualizują wykresy na rysunku 25.
Trzymając się założeń poczynionych na podstawie obserwacji wykresów, wydzielono
z wykresu etap, gdzie działa tylko tłumienie. W momencie, gdy manipulator wchodzi
w kontakt z wajchą mamy do czynienia ze stanem nieustalonym. Nie wiadomo jaki
dokładnie udział ma siła sprężystości i tłumienia w tym etapie. Siła wtedy rośnie
nieliniowo, aż do momentu jej ustabilizowania się, gdzie działa już tylko tłumienie. Gdy
manipulator odpuszcza już dźwignię, siła spada do zera kończąc tym samym pomiar.
Przedział, gdzie mamy stan nieustalony, w którym pod koniec stabilizuje się działanie
siły, zaczyna się w pierwszej połowie wykresu, natomiast tłumienie kończy się w drugiej
jego części. Można zatem policzyć przedział za pomocą pochodnej, jej miejsc zerowych
oraz maksimów i minimów lokalnych.
Po policzeniu pochodnej z przefiltrowanych danych wyznaczono maksimum lokalne
w lewej części wykresu oraz minimum w prawej części. Maksimum i minimum wy-
znaczają przegięcia funkcji aproksymującej dane. Następnie policzono miejsce zerowe
pochodnej na prawo maksimum lokalnego. Miejsce to w przybliżeniu wyznacza, odkąd
38
0 1000 2000 3000 4000 5000 6000 7000 8000−5
0
5
10 Dane wyjścioweFiltrowanie Fourierado 4 HzTłumienie
0 1000 2000 3000 4000 5000 6000 7000 8000−50−40−30−20−10
010 Pochodna
MaksiumimMinimum
0 1000 2000 3000 4000 5000 6000 7000 8000−5
0
5
10Dane przefiltrowaneTłumienieMiejsca zerowePrzegięcia funkcji
Rysunek 25: Wykres przedstawiający metodę wyznaczania współczynników tłumienia
na siłę oddziałuje tylko tłumienie. Końcowy przedział działania tłumienia wyznaczono
także za pomocą najbliższego miejsca zerowego pochodnej, liczonego na lewo od mini-
mum lokalnego.
W wyniku niedokładności pomiaru nie można aproksymować funkcji, ani precy-
zyjnie wyliczyć współczynnika sprężystości K na odcinku początkowym wykresu. Na
rysunkach 26, 27, 28 przedstawiono dane z zaznaczonym przedziałem działania tłumie-
nia.
0 500 1000 1500 2000 2500 3000 3500
−4
−2
0
2
4
Dane wyjścioweFiltrowanie Fourierado 4 HzTłumienie
Rysunek 26: Wykres danych z zaznaczonym przedziałem działania tłumienia dla usta-wienia dolnego siłownika, prędkości manipulatora 0.05m/s i kącie zamknięcia zaworu45°
39
0 500 1000 1500 2000
−4
−2
0
2
4
6Dane wyjścioweFiltrowanie Fourierado 4 HzTłumienie
Rysunek 27: Wykres danych z zaznaczonym przedziałem działania tłumienia dla usta-wienia środkowego siłownika, prędkości manipulatora 0.01m/s i kącie zamknięcia za-woru 50°
0 500 1000 1500 2000 2500 3000 3500 4000
−4
−2
0
2
4
Dane wyjścioweFiltrowanie Fourierado 4 HzTłumienie
Rysunek 28: Wykres danych z zaznaczonym przedziałem działania tłumienia dla usta-wienia środkowego siłownika, prędkości manipulatora 0.005m/s i kącie zamknięcia za-woru 50°
Po wyznaczeniu przedziału działania siły tłumienia wyliczono współczynnik tłu-
mienia B (2). W projekcie dla każdego z trzech przyłożeń siłownika i różnych kątów
zamknięcia zaworu wykonano serię czterech pomiarów. W tabeli 2 znajdują się wyli-
czone średnie współczynniki tłumienia z czterech serii pomiarów. W założeniu (2) przy
dwukrotnym zwiększeniu prędkości manipulatora, dla tego samego ustawienia siłow-
nika i zaworu, siła z jaką robot popycha dźwignię powinna rosnąć dwukrotnie, a współ-
czynniki tłumienia powinny być takie same dla danego ustawienia siłownika. Więcej
wykresów przedsawiających działanie urządzenia zostało zawarte w załączniku 8
40
Tablica 2: Średnie współczynniki tłumienia dla czterech pomiarów
Prędkość [m/s]0.0025 0.005 0.01 0.02
środkowe przyłożenie, kąt 50° 745.7 493.6 410.6 434.1środkowe przyłożenie, kąt 60° 3803.2 3869.3 4727.5 —
dolne przyłożenie, kąt 45° 177.9 125.0 75.0 39.3dolne przyłożenie, kąt 50° 262.7 148.9 106.0 65.7dolne przyłożenie, kąt 60° 844.0 725.5 755.6 —
Na podstawie wyników tabeli 2 widzimy rozbieżności w wartościach współczyn-
ników tłumienia dla danego ustawienia siłownika. Przy prędkości 0.02m/s i dużym
zamknięciu zaworu siła przykładana do dźwigni przekraczała zakres pomiaru czujnika
siły. Przez przekroczenie zakresu, wyniki nie były miarodajne i nie zostały umieszczone
w tabeli. W miarę wzrostu prędkości manipulatora, współczynniki tłumienia wyraźnie
maleją. Siła jaką manipulator wywiera na dźwigni urządzenia, przy stałej prędkości ru-
chu ramienia, nie rośnie dwukrotnie jak zakładano. Patrząc na wykresy z zaznaczonym
przedziałem udziału tłumienia, widzimy, że siła maleje z czasem. Wynika to z modelu
kontaktu robota z dźwignią. Manipulator nie jest przyczepiony do dźwigni i w miarę po-
ruszania nią, zmienia się punkt przyłożenia chwytaka do dźwigni. Zakłócenia wynikać
też mogą z udziału tarcia statycznego, którego nie da się w pełni wyeliminować.
41
8 Wnioski
Celem pracy była budowa stanowiska do badania charakterystyki tłumienia ma-
nipulatora IRp–6 i przeprowadzenie serii sprawdzających jego działanie. Nowatorskie
podejście do tematu, oraz brak wcześniej udokumentowanych doświadczeń o podobnej
tematyce stwarzało pewien problem.
Na podstawie wyników można stwierdzić, że model nie zachowuje się tak, jak prze-
widywały założenia projektu. Współczynniki tłumienia dla różnych prędkości i tego
samego ustawienia urządzenia tłumiącego różnią się dość znacznie od siebie i mają
tendencje malejącą wraz ze wzrostem prędkości manipulatora.
Manipulatory IRp–6 charakteryzują się dużą dokładnością dojeżdżania do zadanej
pozycji, ale małą powtarzalnością danej pozycji. Błędy, jakie generowane są podczas
poruszania manipulatorem, nie mają jednakże wpływu na otrzymane wyniki. W projek-
cie manipulator nie był wykorzystywany do zadania manipulacyjnego, ale do zadania
wysięgowego. Najważniejszym zadaniem manipulatora było utrzymywanie tej samej
prędkości podczas popychania dźwigni urządzenia i warunek ten został zapewniony
przez sterownik stworzony w aplikacji MRROC++.
Zakłócenia w wynikach generowane są przez urządzenie tłumiące. Tłumik, powstały
na potrzeby zadania, nie spełnia założeń projektowych i nie może stanowić bazy do
profesjonalnych pomiarów i badań prowadzonych w tematyce starowania siłowego ma-
nipulatora.
Projekt zadawania tłumienia siły manipulatorowi będzie kontynuowany. Korzysta-
jąc z doświadczeń tej pracy wiadomo już, że budowa mechanicznego urządzenia stwarza
duże problemy i zbudowany obiekt niekoniecznie zachowuje tak, jak przyjęto w zało-
żeniach. Pomysły stworzenia innych mechanicznych konstrukcji opartych przykładowo
na pompach hydraulicznych czy rowerkach treningowych magnetycznych zostały od-
rzucone z podobnych przyczyn.
Tłumik nie spełnia wymogów, aby wykorzystany był do dalszych badań, ale do-
świadczenie zebrane podczas tworzenia projektu wnosi dużo informacji przy budowie
nowego stanowiska do zadawania tłumienia. Jak już wcześniej wspomniano, budowanie
mechanicznego urządzenia sprawia wiele kłopotów, dlatego następne stanowisko będzie
składało się z dwóch gotowych elementów a dokładniej z dwóch manipulatorów IRp–6.
Jeden z nich, podobnie jak w tym projekcie, będzie ze stałą prędkością oddziaływał
na urządzenie tłumiące. Elementem tłumiącym w następnym projekcie zostanie drugi
manipulator IRp–6 w aktywnym trybie. Stworzony zostanie system dwurobotowy wza-
jemnie na siebie oddziaływający. Zaletą takiego rozwiązania jest przede wszystkim to,
że nie trzeba budować nowego urządzania. Gdy tłumikiem zostanie manipulator, bę-
dzie większy dostęp do danych, które można zczytywać z obu obiektów a nie tak jak
w przypadku obecnego projektu, tylko z manipulatora zadającego silę.
42
Literatura
[1] G. Bechciński. Konstrukcja i działanie oraz obsługa robota przemysłowego IRp–6
http://ioitbm.p.lodz.pl/Dydaktyka/Obrabiarki/R/R-4.pdf, Łódź, 2011.
[2] M. Żbikowski. Graficzne srodowisko symulacyjne systemu wielomanipulatorowego
(In Polish). Bachelor’s thesis, WEiTI, Warsaw, 2009.
[3] J. Brzózka, L. Dorobczyński. MATLAB: środowisko obliczeń naukowo-technicznych.
Wydawnictwo Naukowe PWN, 2008.
[4] PWN Encyklopedia Powszechna. Pwn, 1976.
[5] P. Horowitz, W. Hill, B.w Kalinowski, G. Kalinowska, M. Szeżyńska. Sztuka elek-
troniki. Wydawnictwa Komunikacji i Łączności, 1992.
[6] B. Mrozek, Z. Mrozek, J. Mościński. Matlab: uniwersalne środowisko do obliczeń
naukowo-technicznych. Wydaw. PLJ, 1996.
[7] R. Tulwin. IRp-6 manipulator trajectory optimization based on state feedback.
Praca magisterska, WEiTI, 2012.
[8] T. Winiarski. Specification and implementation of force control tasks for robot
manipulators. Praca doktorska, WUT, 2009.
[9] C. Zieliński, W. Szynkiewicz, T. Winiarski, T. Kornuta. MRROC++ based system
description. 2007.
43
Załączniki
W załączniku przedstawiono wykresy wynikowe zależności siły od czasu.
Wykresy dla tej samej prędkości manipulatora, tego samego
ustawienia siłownika i różnych kątów zamknięcia zaworu.
0 500 1000 1500 2000 2500 3000 3500
−4
−2
0
2
4 Dane wyjścioweFiltrowanie Fourierado 4 HzTłumienie
Rysunek 29: Wykres danych przy prędkości manipulatora 0.005m/s, ustawieniu dolnymsiłownika i kącie zamknięcia zaworu 0°
0 500 1000 1500 2000 2500 3000 3500 4000
−4
−2
0
2
4 Dane wyjścioweFiltrowanie Fourierado 4 HzTłumienie
Rysunek 30: Wykres danych przy prędkości manipulatora 0.005m/s, ustawieniu dolnymsiłownika i kącie zamknięcia zaworu 45°
44
0 500 1000 1500 2000 2500 3000 3500
−4
−2
0
2
4 Dane wyjścioweFiltrowanie Fourierado 4 HzTłumienie
Rysunek 31: Wykres danych przy prędkości manipulatora 0.005m/s, ustawieniu dolnymsiłownika i kącie zamknięcia zaworu 50°
0 500 1000 1500 2000 2500 3000 3500
−4
−2
0
2
4
6
Dane wyjścioweFiltrowanie Fourierado 4 HzTłumienie
Rysunek 32: Wykres danych przy prędkości manipulatora 0.005m/s, ustawieniu dolnymsiłownika i kącie zamknięcia zaworu 60°
45
Wykresy dla tej samej prędkości manipulatora, tego samego
kąta zamknięcia zaworu i różnych ustawień siłownika.
0 500 1000 1500 2000
−4
−2
0
2
4
Dane wyjścioweFiltrowanie Fourierado 4 HzTłumienie
Rysunek 33: Wykres danych przy prędkości manipulatora 0.005m/s, ustawieniu dolnymsiłownika i kącie zamknięcia zaworu 50°
0 200 400 600 800 1000 1200 1400−5
0
5
10
Dane wyjścioweFiltrowanie Fourierado 4 HzTłumienie
Rysunek 34: Wykres danych przy prędkości manipulatora 0.005m/s, ustawieniu środ-kowym siłownika i kącie zamknięcia zaworu 50°
46
Wykresy dla tego samego ustawienia siłownika, tego samego
kąta zamknięcia zaworu i różnych prędkości manipulatora.
0 1000 2000 3000 4000 5000 6000 7000−5
−4
−3
−2
−1
0
1
2
3
Dane wyjścioweFiltrowanie Fourierado 4 HzTłumienie
Rysunek 35: Wykres danych przy prędkości manipulatora 0.0025m/s, ustawieniu dol-nym siłownika i kącie zamknięcia zaworu 50°
0 500 1000 1500 2000 2500 3000 3500
−4
−2
0
2
4 Dane wyjścioweFiltrowanie Fourierado 4 HzTłumienie
Rysunek 36: Wykres danych przy prędkości manipulatora 0.005m/s, ustawieniu dolnymsiłownika i kącie zamknięcia zaworu 50°
47
0 500 1000 1500 2000−5
−4
−3
−2
−1
0
1
2
3
Dane wyjścioweFiltrowanie Fourierado 4 HzTłumienie
Rysunek 37: Wykres danych przy prędkości manipulatora 0.01m/s, ustawieniu dolnymsiłownika i kącie zamknięcia zaworu 50°
0 500 1000 1500 2000
−4
−2
0
2
4
Dane wyjścioweFiltrowanie Fourierado 4 HzTłumienie
Rysunek 38: Wykres danych przy prędkości manipulatora 0.02m/s, ustawieniu środ-kowym siłownika i kącie zamknięcia zaworu 50°
48