praca dyplomowa magisterska -...

61
Politechnika Wrocławska Wydział Elektroniki Kierunek: Elektronika i Automatyka Specjalność: Elektroniczne i Komputerowe Systemy Automatyki PRACA DYPLOMOWA MAGISTERSKA Współpraca manipulatora z systemem wizyjnym AUTOR: PROWADZCY PRAC _E: Marek Duchinski dr inż. Marek Wnuk OPIEKUN: dr inż. Marek Wnuk Wrocław 2003

Upload: dangque

Post on 10-Mar-2018

226 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Politechnika Wrocławska Wydział Elektroniki

Kierunek: Elektronika i Automatyka Specjalność: Elektroniczne i Komputerowe Systemy Automatyki

PRACA DYPLOMOWA MAGISTERSKA

Współpraca manipulatora z systemem wizyjnym

AUTOR: PROWADZCY PRAC _E: Marek Duchinski dr inż. Marek Wnuk

OPIEKUN: dr inż. Marek Wnuk

Wrocław 2003

Page 2: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Składam serdeczne podziękowania Panu dr inż. Markowi Wnukowi pomoc i poświęcony czas

Page 3: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Spis treści

Spis treści .................................................................................................................................. 1

Spis rysunków........................................................................................................................... 5

Wstęp......................................................................................................................................... 6

1. Ogólna koncepcja ................................................................................................................. 8

2 Robot ...................................................................................................................................... 9

3 System wizyjny .................................................................................................................... 15 3.1 Kalibracja układu ........................................................................................................... 17 3.2 Rekonstrukcja stereowizyjna.......................................................................................... 17 3.3 Kalibracja układu kamera - robot................................................................................... 19 3.4 Dopasowywanie pary stereo........................................................................................... 20 3.5 Punktowy pomiar odległości przy pomocy stereowizji ................................................. 21

4 Implementacja ..................................................................................................................... 22

4.1 Oprogramowanie............................................................................................................ 23 4.1.1 Program sio ....................................................................................................................... 23 4.1.2 Program ster .................................................................................................................... 23 4.1.3 Program mscat .................................................................................................................. 24 4.1.4 Program detled ................................................................................................................ 24 4.1.5 Program transf ................................................................................................................ 24 4.1.6 Program irbvis ................................................................................................................ 25 4.1.7 Program pikczerz ........................................................................................................... 25 4.1.8 Wykorzystanie programów w eksperymencie ..................................................................... 26

4.2 Skonstruowany osprzęt .................................................................................................. 27

5 Wyniki eksperymentalne .................................................................................................... 30 5.1 Własności modelu transformacji .................................................................................... 30 5.2 Detekcja diody LED....................................................................................................... 38 5.3 Detekcja plamki lasera ................................................................................................... 39 5.4 Detekcja innych obiektów.............................................................................................. 40

5.4.1 Detekcja krawędzi ............................................................................................................... 41 5.4.2 Detekcja łuków.................................................................................................................... 43

5.5 Analiza błędów............................................................................................................... 44

6 Podsumowanie ..................................................................................................................... 47 Propozycje kontynuacji pracy .............................................................................................. 47

3

Page 4: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Dodatek A................................................................................................................................ 48

A.1. Program sio ................................................................................................................ 48 A.2. Program detled ......................................................................................................... 52 A.3. Program transf ......................................................................................................... 52 A.4. Program ster.............................................................................................................. 52 A.5. Program irbvis ......................................................................................................... 53 A.6. Formaty plików ............................................................................................................ 55

Dodatek B................................................................................................................................ 56 B.1. Detekcja krawędzi obrazu ............................................................................................ 56 B.2. Implementacje metod ................................................................................................... 58 B.3. Aproksymacja krawędzi ............................................................................................... 60

7 Literatura:............................................................................................................................ 61

4

Page 5: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Spis rysunków Rys. 1. Ogólny schemat systemu. ........................................................................................................................... 8 Rys. 2. Oznaczenia osi robota. ................................................................................................................................ 9 Rys. 3. Sterownik S4............................................................................................................................................. 10 Rys. 4. Panel sterowania (Teach Pendant) ............................................................................................................ 10 Rys. 5. Szafa sterownika – pod pokrywą. ............................................................................................................. 11 Rys. 6. Sterownik S4 – przód................................................................................................................................ 12 Rys. 7. Strefa robocza manipulatora ..................................................................................................................... 13 Rys. 8. Określenie stref bezpieczeństwa. ............................................................................................................. 14 Rys. 9. Specjalizowany komputer wizyjny IC40. ................................................................................................. 15 Rys. 10. Stanowisko kamer................................................................................................................................... 16 Rys. 11 Geometria kanonicznego układu kamer................................................................................................... 17 Rys. 12 Model transformacji................................................................................................................................. 19 Rys. 13. Schemat systemu..................................................................................................................................... 22 Rys. 14 Komunikacja szeregowa PC-sterownik S4 .............................................................................................. 23 Rys. 15. Algorytm wyznaczania transformacji ..................................................................................................... 26 Rys. 16. Skonstruowany efektor. ......................................................................................................................... 27 Rys. 17. Wyprowadzenia gniazdek....................................................................................................................... 28 Rys. 18. Wygląd układu stabilizatora.................................................................................................................... 29 Rys. 19. Układ stabilizatora. ................................................................................................................................. 29 Rys. 20. Przykładowa trajektoria ruchu manipulatora .......................................................................................... 30 Rys. 21. Średni błąd niedopasowania.................................................................................................................... 31 Rys. 22. Kryterium Q dla pierwszych dziewięciu pomiarów................................................................................ 31 Rys. 23. Kryterium jakości Q pozostałych pomiarów (druga płaszczyzna).......................................................... 31 Rys. 24. Błąd lokalizacji – sześcian o boku 20 mm. ............................................................................................. 34 Rys. 25. Błąd lokalizacji – sześcian o boku 50 mm. ............................................................................................. 34 Rys. 26. Błąd lokalizacji – sześcian o boku 100mm. ............................................................................................ 35 Rys. 27. Błąd dopasowania - sześcian o boku 20 mm........................................................................................... 35 Rys. 28 Błąd dopasowania - sześcian o boku 50mm ............................................................................................ 36 Rys. 29 Błąd dopasowania -sześcian o boku 100 mm .......................................................................................... 36 Rys. 30. Błędy dopasowania ze spreparowanym błędem pomiaru. ...................................................................... 37 Rys. 31. Histogramy kilku obrazów sceny z włączoną diodą LED ...................................................................... 38 Rys. 32. Przykładowy wynik skanowania sceny................................................................................................... 39 Rys. 33. Lokalizacja plamki lasera........................................................................................................................ 39 Rys. 34. Histogram kilku obrazów sceny.............................................................................................................. 40 Rys. 35. Koła narysowane przez robota (lewy) i obraz po progowaniu (prawy). ................................................. 40 Rys. 36 . Wyniki operacji filtracji Laplace’a ........................................................................................................ 41 Rys. 37. Zastosowanie filtru Sobela (maska pozioma+ pionowa) i filtru Prewitta (maska pozioma).................. 42 Rys. 38. Obraz z rys 35 poddany operacji detekcji krawędzi i okręgów............................................................... 42 Rys. 39. Obraz oryginalny i poddany operacji detekcji krawędzi......................................................................... 43 Rys. 40. Wartości akumulatorów i obraz wynikowy - łuki o szukanych promieniach ......................................... 43 Rys. 41. Wzajemne zależności wartości kierunku ruchu i osi robota. .................................................................. 49 Rys. 42. Okno sterowania robotem ....................................................................................................................... 53 Rys. 43. Okno pisana skryptów............................................................................................................................. 53 Rys. 44. Okno weryfikacji transformacji. ............................................................................................................. 54 Rys. 45. Idea transformacji Hougha...................................................................................................................... 60

5

Page 6: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Wstęp Wzrok jest najważniejszym ludzkim zmysłem, a układ wzrokowy formowanym przez setki tysięcy lat ewolucji wciąż niedościgłym i nie do końca poznanym tworem. Dzięki postrzeganiu stereoskopowemu jesteśmy w stanie interpretować trójwymiarowe sceny na podstawie dwuwymiarowych obrazów. Pierwszym badaczem widzenia dwuocznego był Arystoteles (380 p.n.e.) i od tej pory badania były rozwijane. Stereowizja, jest jednym z wielu metod pomiaru głębi i zajmuje wśród nich znaczącą pozycję, biorąc pod uwagę ilość aplikacji i publikacji. Jej zalety to: - metoda jest bierna (nieinwazyjna), - możliwe jest zastosowanie prostych urządzeń (dwóch lub jednej kamery), - istnieje duża baza algorytmów, - możliwe jest uzyskanie zwartej mapy głębi, - stosunkowo mały koszt pomiaru. System wizyjny jest jednym z elementów rozproszonego systemu sterowania robotem – wyposażenie robota w postrzeganie stereoskopowe (system stereowizyjny), pozwoliło na zautomatyzowanie wielu prac. Robot wyposażony w sensory stawia mniejsze wymagania otoczeniu, a wyposażony w system wizyjny jest w stanie dokonywać wielu, często bardzo skomplikowanych czynności. Obecne zastosowania to chociażby montaż urządzeń (np. układów scalonych, odkurzaczy, pakowanie czekoladek), segregowanie elementów, kontrola, obróbka czy automatyzacja prac magazynowych, malowanie i obróbka powierzchni oraz wiele innych. Automatyzowanie tego typu prac przyniosło korzyści rzędu milionów dolarów, więc nie są to aplikacje wykonane dla samej sztuki.

W układzie wizja-robot systemowi wizyjnemu stawia się wysokie wymagania dotyczące prędkości działania (czas rzeczywisty) i skuteczności detekcji.

System wizyjny robota może pełnić wiele różnych funkcji. Typowe (powszechnie spotykane w istniejących rozwiązaniach) są: - wykrywanie zmian sceny, - wykrywanie określonych kształtów (lub innych cech), - wydzielanie obiektów na scenie, - parametryzacja wyodrębnionych obiektów, - rozpoznawanie (klasyfikacja obiektów), - kontrolowanie położenie narzędzia względem obiektu, - wykrywanie i lokalizacja przeszkód na scenie.

Funkcje te mają różne realizacje, w zależności od przyjętych założeń upraszczających i wymagań narzuconych przez konkretną aplikację. W opisywanym systemie wizyjnym [1][6] stanowiącym jeden ze składników rozproszonego systemu sterowania robotem wykorzystano klasyczny schemat przetwarzania obrazów: - pobieranie obrazu, - wstępna filtracja, - segmentacja przez progowanie, - wydzielenie obiektów przez indeksowanie sylwetek, - parametryzacja obiektów (sylwetek), - rozpoznawanie (klasyfikacja) obiektów.

Page 7: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Przegląd optycznych metod zdalnego pomiaru odległości zawarto w wielu pracach, m.in. [1],[2]. Istnieje szereg metod pomiaru odległości w wykorzystaniem światła. Podstawowe z nich to: - zbliżeniowa – dyfuzyjna, - triangulacyjna, - impulsowa (czas przelotu), - modulacja amplitudy, - modulacja częstotliwości, - analiza ostrości obrazu (ogniskowanie i rozogniskowanie), - oświetlenie strukturalne, - struktura z ruchu, - strukturalna analiza cieni. Za cel niniejszej pracy postawiono zbadanie możliwości współpracy zainstalowanego w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem stereowizyjnym. Ze względu na różnego rodzaju ograniczenia zrobiono pewne założenia : - komunikacja robot – PC ze względu na brak karty sieciowej komunikacja musi odbywać

się za pomocą portu szeregowego, - obrazy pobierane z kamer są w 256 odcieniach szarości, - oprogramowanie robota – jedynie system operacyjny BaseWareOS i programy pisanie w

RAPID-zie, trzeba stworzyć protokół umożliwiający komunikację robot-PC, - komunikacja pomiędzy komputerami w laboratorium jest możliwa w systemie Linux

Debian, - system wizyjny działa w systemie OS-9. Serwer wizji wysyła na żądanie obrazy w

formacie pliku fbm.

W poniższej pracy ze względu na ograniczenia sprzętowe poddano analizie metody obróbki obrazów w odcieniach szarości (grayscale), co utrudnia analizę obrazu w stosunku d analizy obrazu kolorowego. W rozdziale 2 opisano stanowisko robota. W rozdziale 3 opisano stanowisko systemu wizyjnego. W rozdziale 4 opisano implementację systemu. W rozdziale 5 opisano wyniki eksperymentalne. W dodatku A opisano sposób obsługi zaimplementowanych programów. W dodatku B zawarto wybrane metody analizy obrazu wykorzystywane w pracy.

7

Page 8: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

1. Ogólna koncepcja

Główną myślą przyświecającą tej pracy było stworzenie i uruchomienie systemu, który umożliwiłby współpracę manipulatora robota IRB1400 z systemem wizyjnym. Byłoby to stanowisko, za pomocą którego można byłoby kalibrować układy robota i systemu wizji.

IRB 1400

S4

PC

KAMERY

IC40

Rys. 1. Ogólny schemat systemu.

Na rys.1. przedstawiono ogólny schemat systemu, składający się z manipulatora (przemysłowy robot IRB 1400) sterownika manipulatora (S4), komputera wizyjnego IC40, dwóch przemysłowych kamer CCD i komputera PC z zaimplementowanym oprogramowaniem nadzorującym pracę systemu.

8

Page 9: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

2 Robot Przemysłowy robot IRB1400 składa się z dwóch zasadniczych części: sterownika (S4C) oraz manipulatora. Manipulator posiada 6 stopni swobody. Poszczególne osie napędzane są silnikami prądu przemiennego za pośrednictwem przekładni i posiadają elektromechaniczne hamulce, które blokują napędy po osiągnięciu zadanej pozycji. Sterownik robota posiada wydajną jednostkę centralną, oraz dwa dodatkowe komputery obsługujące układy sterowania silników oraz sprzęgi komunikacyjne. Robot posiada złącza RS232, RS422 oraz 2 złącza CAN przeznaczone do obsługi sensorów zewnętrznych, posiada również wejścia i wyjścia analogowe i dwustanowe,

Robot IRB 1400 podaje współrzędne narzędzia (tool center point – TCP) we współrzędnych zewnętrznych z dokładnością do dziesiętnych milimetra, co ułatwia zadanie, nie jest konieczne wyznaczanie punktu za pomocą kinematyki odwrotnej. Można zdefiniować różne narzędzia (o różnych wymiarach, wadze, orientacji ).

IRB 1400 jest sześcioosiowym robotem przemysłowym, zaprojektowanym do zastosowań przemysłowych. Robot ten ma otwartą strukturę specjalnie dostosowaną do elastycznego użycia i potrafi komunikować się z zewnętrznymi systemami. IRB 1400 jest wyposażony w system operacyjny BaseWare OS. System ten nadzoruje ruch, wywoływanie i wykonywanie aplikacji, komunikację programów itd. Dla zwiększenia funkcjonalności, IRB 1400 może zostać wyposażony w opcjonalne oprogramowanie (np. do klejenia, spawania, komunikacji sieciowej, wielozadaniowość, kontrola sensorów). Niestety, model w laboratorium nie został w nie wyposażony.

Rys. 2. Oznaczenia osi robota.

9

Page 10: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Rys. 3. Sterownik S4

Na przedniej ściance skrzyni sterownika umieszczono panel operatora. Zawiera on przycisk stopu awaryjnego, przycisk start silników, licznik roboczogodzin i stacyjkę .

Rys. 4. Panel sterowania (Teach Pendant)

Do skrzyni za pomocą kabla dołączony jest panel sterowania (rys. 4), służący do ręcznej kontroli robota. Informacja o robocie jest przedstawiana na wyświetlaczu za pomocą okien, rozwijanych menu, dialogów i klawiszy funkcyjnych. Nie trzeba znać się na programowaniu czy komputerach by nauczyć się, jak sterować robotem. Wszystkie operacje mogą być przeprowadzane z panelu sterowania. Do sterowania ruchem robota wykorzystywany jest joystick umieszczony na panelu sterowania. Posiada on 3 stopnie swobody (ruch w osiach x, y oraz ruch obrotowy). Prędkość ruchu jest proporcjonalna do jego wychylenia. Joystick charakteryzuje się inercją – manipulator wykonuje ruch z pewnych opóźnieniem. Jest to zabezpieczenie przed przypadkowym poruszeniem joystick-a. Sterowanie robotem w trybie ręcznym jest możliwe gdy zasilanie do silników jest załączone. Na panelu sterowania znajduje się przycisk zezwolenia na załączenie zasilania silników. Przycisk ten posiada trzy położenia. Gdy jest zwolniony (nie wciśnięty) znajduje się w położeniu 1, gdy jest lekko wciśnięty znajduje się w położeniu 2, gdy jest silnie wciśnięty, znajduje się w położeniu 3. Sterowanie robota joystick-iem jest możliwe, gdy przycisk zezwolenia na załączenie zasilania silników znajduje się w położeniu 2. To kolejne zabezpieczenie – gdy operator robota straci przytomność to puści przycisk (położenie 1), natomiast pod wpływem skurczu mięśni (np. porażony prądem) wciśnie przycisk do końca (położenie 3). Sterowanie w trybie ręcznym nie jest możliwe, gdy jest załączony przycisk ”STOP awaryjny” lub gdy działa jakiś program.

10

Page 11: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Rys. 5. Szafa sterownika – pod pokrywą.

Na rys. 5. przedstawiono widok górnej części wnętrza sterownika S4 z zaznaczeniem podstawowych elementów: 1 - płyta pomiarowa DSQC 313, 2 - moduł wejść/wyjść AD combi DSQC 327 (2x8 wyjść cyfr., 2x8 wejść cyfr., 2 wyjścia

analogowe), 3 - tablica rozdzielcza (Panel unit ), 4 - Backplane, 5 - baterie litowe.

11

Page 12: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Poniżej przedstawiono przednią część szafy sterownika S4.

Rys. 6. Sterownik S4 – przód.

Na rys. 6 przedstawiono widok przedniej części wnętrza sterownika S4 z zaznaczeniem podstawowych elementów: 1 - jednostka sterująca 1, 2 - jednostka sterująca 2, 3 - jednostka sterująca 3, 4 - DC link, 5 - transformator, 6 - jednostka pomocnicza, 7 - komputer robota DSQC 363, 8 - płyta pamięci DSQC 317, 9 - główny komputer DSQC.

12

Page 13: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Manipulator ze względu na swoją konstrukcję ma pewne ograniczenia ruchu.

Rys. 7. Strefa robocza manipulatora

oś rodzaj ruchu zasięg 1 obrót +170o do – 170o 2 ruch dolnego ramienia +70o do – 70o 3 ruch górnego ramienia +70o do – 65o 4 obrót górnego ramienia +150o do –150o 5 zgięcie nadgarstka +115o do – 115o 6 obrót nadgarstka +300o do– 300o

Strefę roboczą manipulatora zajmują różne urządzenia. Sam manipulator ma masę 225 kg i potrafi się poruszać z prędkością kilku m/s, więc ze względów bezpieczeństwa zdefiniowano strefy, wewnątrz których nie może się znaleźć manipulator (a właściwie TCP używanego narzędzia). Strefy są zdefiniowane w pliku strefy.sys jako prostopadłościany. Podczas działania programu, przy naruszeniu którejś z płaszczyzn strefy, manipulator zostaje zatrzymany i pojawia się stosowny komunikat na wyświetlaczu panelu sterowania. Blokada ta nie działa w przypadku pracy ręcznej (jog).

Dokładność pozycjonowania jest dość duża, ok. 0.15 – 0.35mm. Rozdzielczość każdej z osi wynosi ok. 0.01o otrzymywana z resolverów (zasilanych napięciem 5V o częstotliwości 4kHz) Wartość bezwzględna jest otrzymywana przez podtrzymywane bateryjnie liczniki obrotowe resolvera w płycie pomiaru szeregowego (SMB).

13

Page 14: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Lokalizację stref ograniczających przestrzeń roboczą manipulatora przedstawiono poniżej.

[-840, 1150, 740];

(xx,yyzz)

[-840, 1150, -600];

(xx,yyzz)

irb 1400

strefa stół

x

y

z

[1500, 1150, -600];

[-500, 1000, 1700];

[-1600, 740,300]

strefa kamery

strefa irb6

[-1330, 500, -600]

[-1600, -1100, 720]

[-1600, 915, 1050];

strefa płot

Rys. 8. Określenie stref bezpieczeństwa.

Przy operowaniu w pobliżu tych stref zalecana jest ostrożność, ponieważ można naruszyć którąś ze sfer posługując się niepoprawny narzędziem (np., tool0 zamiast pisak) lub narzędziem z kierowanym w stronę przeciwną od danej strefy

14

Page 15: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

3 System wizyjny Rekonstruowanie sceny wymaga prowadzenia akwizycji informacji o niej. Największej ilości informacji o otoczeniu dostarcza obraz wizyjny. W zależności od zastosowanych metod przetwarzania można z pobieranych obrazów sceny uzyskać zarówno model geometryczny otoczenia robota jak i rozpoznać obiekty na niej występujące. Prowadzone wcześniej badania nad lokalizacją obiektów przy pomocy systemu wizyjnego obejmowały: - wydzielanie obiektów na podstawie ich sylwetek, - parametryzację obiektów w celu ich rozpoznania, - określanie położenia obiektów i orientacji ich sylwetek na podstawie dwuwymiarowego

obrazu sceny. Określenie położenia obiektów w trójwymiarowej przestrzeni otaczającej robota jest jednym z najczęstszych zastosowań złożonych systemów sensorycznych. Należałoby zaznaczyć, że do przetwarzania obrazów w czasie rzeczywistym konieczne jest używanie specjalizowanych procesorów sprzętowych. Prace nad sprzętowym przetwarzaniem obrazu prowadzone są od dawna (w Instytucie Cybernetyki Technicznej od 1981 r.), czego wynikiem jest zainstalowanie w pracowni 010 systemu wizyjnego opartego na komputerze wizyjnym IC40. Jest to system wizyjny pracujący w środowisku sieciowym, zdolny do współpracy ze sterownikiem robota IRp6 [6].

Rys. 9. Specjalizowany komputer wizyjny IC40.

Komputer wizyjny IC40 (Imaging Computer ) oparty na procesorze MC68040 stanowi samodzielną, kompletną jednostkę przeznaczoną do prac związanych z przetwarzaniem obrazów i grafiką komputerową. Pobiera obrazy z czterech kamer, obraz jest monochromatyczny (256 poziomów szarości). Dodatkowo posiada moduł pięciu procesorów sygnałowych SHARC stosowanych do dopasowywania linii epipolarnych. Podsystem wizyjny zbudowany w oparciu o moduły (akwizycji obrazów, magistrali VIBus, graficzne) może mieć różne konfiguracje i w różny sposób współpracować z urządzeniami zewnętrznymi. W pracy [5] przedstawiono kilka konfiguracji systemu wizyjnego, m.in. sieciowy system rozproszony.

15

Page 16: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Rys. 10. Stanowisko kamer

Na rys. 10 przedstawiono stanowisko kamer systemu wizyjnego: 1 - dwie kamery CCD model K-TC5305, 2 - sterownik wskaźnika laserowego, 3 - stojak, 4 - analizowana scena (stół), 5 - robot IRB 1400.

16

Page 17: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

3.1 Kalibracja układu

System wizji składa się z kamer zawieszonych nad stołem tak, że powierzchnia robocza sceny jest prostopadła do osi optycznych kamer. Aby robot mógł pracować we współrzędnych układu wizji, konieczne jest przeprowadzenie procedury kalibracji geometrycznej. Najpierw należy skalibrować kamery – np. przy pomocy luster położonych na scenie. Obraz pobrany z danej kamery powinien przedstawiać odbicie jej obiektywu idealnie pośrodku obrazu. Można zastosować też wzorce kalibracyjne, np. regularną siatkę dobrze kontrastujących kwadratów. Drugim, bardziej złożonym etapem kalibracji układu robot-kamera jest znalezienie transformacji pomiędzy układami współrzędnych obu elementów systemu. Zagadnienie kalibracji można sprowadzić do identyfikacji parametrycznej w klasie modeli liniowych [3]. W celu znalezienia parametrów modelu trzeba przeprowadzić eksperyment polegający na pomiarze położenie wybranych punktów sceny zarówno przy pomocy systemu wizyjnego jak i robota. Tak uzyskana seria pomiarowa służy do wyliczenie parametrów transformacji (3.3.5).

3.2 Rekonstrukcja stereowizyjna

0r

0l

k

b

(xl,yl)

(xr,yr)

Rys. 11 Geometria kanonicznego układu kamer.

Na rys. 11 przedstawiono schematycznie geometria kanonicznego układu dwóch kamer o odległościach ogniskowych k, odsuniętych od siebie na odległość bazową b –(rzut perspektywiczny) [1].

17

Page 18: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Rozbieżność d (dysparycja) - w układzie kanonicznym (osie optyczne kamer równoległe) jest wyliczana jako różnica położenia punktu na obrazach z lewej i prawej kamery.

rl xxd −= (3.2.1)

kaydxb

x lll

ςψξξ==

−−

= (3.2.2)

Z prostych zależności geometrycznych (3.2.2) wynika, że dysponując położeniem obrazów punktu na obu obrazach, a więc danymi pochodzącymi z obrazów , , , oraz opisem geometrii układu kamer: , można odtworzyć położenie punktu oryginalnego:

lx rx ly ry,b k

bdxl=ξ (3.2.3a) b

dyl=ψ (3.2.3b) kb

d1

=ζ (3.2.3c )

Uzyskane wyniki pozwalają określać położenie poszczególnych punktów sceny widocznych na dwuwymiarowym obrazie sceny trójwymiarowej przestrzeni zewnętrznej z układem współrzędnych związanych z kamerą (ξ,ψ,ζ). Do wykonywania obliczeń konieczna jest znajomość parametrów układu kamer (b i k).

Możliwe jednak jest inne podejście do problemu znalezienie transformacji układu współrzędnych. Na podstawie równań (3.2.3a, b i c) łatwo zauważyć, że wektor

Tll

ddy

dx

w

= 1,1,, (3.2.4)

można traktować jako uogólniony współrzędne punktu w układzie systemu wizyjnego. Wektor robota wyraża się we współrzędnych zewnętrznych.

[ ]Tzyxr 1,,,= (3.2.5)

18

Page 19: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

3.3 Kalibracja układu kamera - robot Odczytując współrzędne punktu roboczego w układzie bazowym robota i współrzędne tego samego punktu w systemie wizyjnym można przeprowadzić obliczenia w celu uzyskania transformacji między tymi układami.

[ ]Tr 1,,, ςψξ= (3.3.1)

Twr = (3.3.2) gdzie r – wektor pomiaru w współrzędnych robota, w – we współrzędnych systemu wizyjnego. W postaci macierzowej równanie (3.3.2) wygląda następująco:

=

1000134333231

24232221

14131211

tttttttttttt

zyx

1

1d

dydx

l

l

Macierz transformacji składa się z macierzy rotacji (R) i translacji (T) :

1000

TR

Model transformacji pomiędzy układami współrzędnych robota i kamer:

Transformacja

Model

w r

r

+

_Q

położenierzeczywiste

położenie wukładzie kamery

położenie zmodelu

Rys. 12 Model transformacji

19

Page 20: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Serie pomiarowe o długości p można zestawić w postaci macierzy

Wp=[w1,w2,...,wp] Rp=[r1,r2,....,rp] (3.3.3) Gdzie poszczególne wektory mają postać (3.2.4), (3.2.5). Kryterium jakości ocenia średniokwadratowy błąd dla serii pomiarowych :

( ) ( )∑=

−−=p

iii

Tii TwrTwrQ

1. (3.3.4)

Im mniejsza jego wartość, tym uzyskana transformacja jest lepsza. Kryterium to po zróżniczkowaniu daje algorytm identyfikacji (3.3.5), czyli transformację. Jest to identyfikacja dla klasy modeli liniowych za pomocą kryterium kwadratowego. Z minimalizacji kryterium Q otrzymuje się model transformacji [3]:

( ) 1−= T

ppTppp WWWRT . (3.3.5)

3.4 Dopasowywanie pary stereo

Dopasowywanie obrazów w stereowizji jest najbardziej złożonym obliczeniowo etapem analizy obrazu (mapa przesunięć, dopasowywanie linii epipolarnych). Stosuje się algorytm ML (Maximum Likehood ) i algorytm MLMH+V (Maximum Likehood, Minimum Horizontal plus Vertical discontinuites). Metoda ta nie nadaje się do kalibracji układów – dopasowywane są pojedyncze punkty, nie obszary, poza tym jest bardzo czasochłonna. W tej pracy przeprowadzono kalibrację układów za pomocą punktowych pomiarów.

20

Page 21: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

3.5 Punktowy pomiar odległości przy pomocy stereowizji

W szczególnym przypadku, gdy obrazy odbierane przez obie kamery da się sprowadzić do pojedynczych punktów, zadanie dopasowywania staje się trywialne i pozostałe tylko prosta triangulacja. Taką sytuację można wytworzyć przez odpowiednią reżyserię sceny (np. znaczniki, wskaźnik laserowy, dioda LED). Ta metoda jest dopuszczalna w warunkach przemysłowych.

Zastosowanie punktowych źródeł światła (dioda LED i laserowa) me pewne dodatkowe zalety: - wykorzystane w systemie wizyjnym kamery są wyposażone w przetworniki CCD.

Największa czułość takich przetworników leży w granicy bliskiej podczerwieni, co odpowiada długości fali emitowanej przez diodę LED i laserową (780nm);

- światło diody może być modulowane, co ułatwia zlokalizowanie plamki na obrazie; - promień świetlny ma pewien kąt bryłowy, co powoduje niewielkie zmiejszanie

intensywności świecenia ze wzrostem odległości, co jest pewną informacją o odległości. Możliwe operacje : - wstępne półprogowanie – pozwala na wydzielenie plamki bez utraty informacji o

pozostałych elementach, - filtracja liniowa – zmniejszanie szumów, ułatwia lokalizację plamki, - podwójne progowanie – wydzielenie plamki - momenty pierwszego rzędu – określają położenie plamki z dużą dokładnością Można pobierać dwa obrazy z włączonym oraz wyłączonym znacznikiem, a następnie po wstępnej obróbce odejmować je, co daje znaczne przyspieszenie lokalizacji obiektu. W przypadku diody i wskaźnika laserowego okazało się to niepotrzebne.

21

Page 22: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

4 Implementacja Na rysunku 13 przedstawiono konfigurację systemu wizyjnego do przeprowadzania eksperymentów opisywanych w pracy.

Ethernet

RS232 msc

atPC mobil

VME vision

S4

Linux

ster

sio.

prg

BaseWareOS

OS9

PC

Linux

fram

e-gr

abbe

r

serv

erd

Rys. 13. Schemat systemu

Sterownik robota ma dwa porty szeregowe – jeden typu RS232 (SIO1) i jeden typu RS422 full duplex (SIO2), za pomocą których może komunikować się z innymi urządzeniami. Obydwa mają przepustowość 300 do 19200 bitów/s - SIO1- RS 232 z kontrolą RTS-CTS i zgodny z XON/XOFF, - SIO2- RS 422 full duplex TXD4, TXD4-N, RXD4, RXD4-N,

Komunikacja polega na wysyłaniu na port szeregowy i jego nasłuchiwaniu po obu stronach złącza szeregowego. Sterownik robota po odebraniu rozkazu (odpowiednio sformatowany, posiada odpowiedni nagłówek i dane) i jego rozpoznaniu wysyła potwierdzenie i wykonuje zadaną czynność. Po jej wykonaniu wraca do nasłuchu linii. W przypadku, jeśli użytkownik wyśle w krótkim okresie czasu kilka rozkazów, będą one buforowane i wykonywane kolejno.

22

Page 23: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Rys. 14 Komunikacja szeregowa PC-sterownik S4

4.1 Oprogramowanie

4.1.1 Program sio1

Serwer robota (program sio.prg) we współpracy z programem ster zapewnia obustronną komunikację PC – robot za pomocą prostego protokołu, który został opracowany na potrzeby pracy. Program sio, działający na sterownika robota, jeśli nie wykonuje zadania, nasłuchuje na porcie szeregowym. W przypadku otrzymania komunikatu (zakończonego znakiem końca linii) porównuje nagłówek komunikatu ze zdefiniowanymi ciągami znaków odpowiadającym zaimplementowanym rozkazom. Jeśli nagłówek będzie pasował do któregoś, wysyła potwierdzenie (ACK), ustawia odpowiednią zmienną (mającą postać mnemonik_rozkazu_ID), odczytuje pozostałe znaki komunikatu zamieniając je na odpowiednie wartości różnych zmiennych. W pętli głównej, w zależności od ustawionej flagi wykonywane są odpowiednie polecenia, po wykonaniu których wraca do nasłuchu portu.

Program sio działa w nieskończonej pętli z wymuszonym opóźnieniem w celu uniemożliwienia zablokowania systemu. Lista komunikatów w Dodatku A.

4.1.2 Program ster2 Program ster na PC mobil komunikuje się poprzez port szeregowy RS232 ze sterownikiem S4. Wywołuje się go z linii poleceń z odpowiednimi argumentami. Po wywołaniu, program ster kolejno : - ustawia tryb pracy portu szeregowego , - otwiera port (ttyS1), - wysyła odpowiedni komunikat (zakończony „\n”) do portu, - zeruje bufor linii, - odbiera potwierdzenie pozytywne (ACK) lub negatywne (NAK),

1Nazwa pochodzi od „Serial Input-Output” 2 Nazwa pochodzi od „sterowanie”

23

Page 24: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

- w przypadku braku potwierdzenia kończy pracę z odpowiednim komunikatem o błędzie (TIMEOUT),

- w przypadku komend pozycji i orientacji odbiera pakiet informacji, sprawdza ich poprawność na podstawie sumy kontrolnej i wyświetla na ekran,

- zamyka port, - kończy pracę, Zdalne sterowanie robotem jest możliwe przez zalogowanie się na mobil za pośrednictwem sieci (kabel szeregowy do sterownika S4 jest fizycznie podłączony do komputera mobil). Pliki wynikowe (tzn. pliki z współrzędnymi TCP) są zapisywane w formacie nadającym się do wizualizacji przez program gnuplot. Argumenty wywołań programu i opis formatu plików zawarto w Dodatku A.

4.1.3 Program mscat

Komunikacja z serwerem wizji odbywa się za pomocą klienta testowego mscat. Łączy się on z serwerem vision określonym portem (co oznacza usługę stereo), w wyniku czego serwer wizji pobiera obraz z kamer i wysyła je do klienta w postaci niestandardowego pliku fbm : obrazy są zapisane w skali szarości. Plik fbm jest traktowany jako kolorowy – składa się z nagłówka, mapy kolorów (o zerowej długości) i trzech plansz o wymiarach 640 na 480 pikseli przechowujących składowe RGB poszczególnych punktów. Niestandardowe wykorzystanie polega na tym, że pierwsza plansza (składowa R) zawiera informację o obrazie z kamery lewej, plansza druga (składowa G)zawiera informację o obrazie z kamery prawej, natomiast trzecia jest pusta (wypełniona zerami). Klient testowy zamienia nagłówek pliku i rozdziela plansze, zapisując obrazy z kamery lewej i prawej na dysku w postaci dwóch plików w formacie pgm – lewy.pgm i prawy.pgm. Format pgm (Portable GreyMap) jest bardziej popularny niż fbm (FuzzyBitMap) i rozpoznawany przez większość aplikacji graficznych w systemie Linux. Zastosowano wersję pliku pgm przechowującą dane w sposób binarny (magiczny numer – P5).

4.1.4 Program detled

Program do lokalizacji diody LED. Otwiera kolejno pliki lewy.pgm i prawy.pgm, dokonuje progowania, oblicza środek plamki, zapisuje obraz po progowaniu i wrysowaniu krzyżyka w środek obliczonego punktu do pliku lewyo.pbm i prawyo.pbm, współrzędne xl/d, yl/d i d wyświetla na ekranie i zapisuje do pliku danew.txt, po czym uruchamia program ster z argumentem –r (czyli pobiera od robota współrzędne TCP i zapisuje je do pliku daner.txt).

Szczegóły zamieszczono w Dodatku A.

4.1.5 Program transf Program do obliczenia transformacji. Otwiera pliki danew.txt i daner.txt, oblicza transformację układów współrzędnych i zapisuje ją do pliku transf.txt.

Powyższe programy zostały napisane tak, by można je było łatwo wywoływać za pomocą skryptów, dlatego korzystają z domyślnych nazw plików. Szczegóły w Dodatku A.

24

Page 25: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

4.1.6 Program irbvis

Interfejs użytkownika, napisany do pracy w środowisku Linux (Qt wersja 3.2.0b1, darmowa ). Wywołuje powyższe programy. Umożliwia sterowanie manipulatorem za pomocą interfejsu przyjaznego dla użytkownika, pisanie skryptów i weryfikację wyników transformacji. Więcej szczegółów w Dodatku A.

4.1.7 Program pikczerz Program napisany w C++ Builderze (środowisko Windows) do operacji na obrazach. Umożliwia: - progowanie, - operacje na histogramach, - detekcja krawędzi (gradient, laplasjan, LoG, zaimplementowane różne maski), - detekcja łuków/okręgów, - sztuczne zaszumianie obrazów, - operacje morfologiczne (erozja, dylacja). Celem stworzenia tego programu było zbadanie własności operacji przetwarzania obrazów używanych w eksperymentach.

25

Page 26: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

4.1.8 Wykorzystanie programów w eksperymencie Na rys. 15 został przestawiony algorytm identyfikacji modelu transformacji. W pierwszym kroku operator ustawia efektor tak, by dioda LED była dobrze widoczna i znajdowała się mniej więcej na środku obrazu. Następnie albo za pomocą interfejsu użytkownika (program irbvis) lub za pomocą skryptu pobiera odpowiednio długą serię pomiarową (z reguły wystarczająca jest seria długości kilkunastu pomiarów). Po pobraniu odpowiedniej ilości danych na ich podstawie obliczana jest transformacja (3.3.5). Transformację może weryfikować za pomocą programu irbvis.

jest plamkana lewymobrazie?

pobierz obraz(mscat)

proguj obraz(detled)

jest plamkana prawymobrazie?

włącz diodę LED(ster)

przełącz narzędzie :dioda LED

(ster)

licz współrzędnexl/d, yl/d, 1/d plamki i

zapisz je do pliku(detled)

T

zmień pozycję robota(ster)

T

zapisz współrzędnerobota(ster)

N

N

licz transformacjęzapisz ją i błędy do

plików(transf)

KONIEC

START

Rys. 15. Algorytm wyznaczania transformacji

26

Page 27: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

4.2 Skonstruowany osprzęt

Do celów badawczych zbudowano efektor montowany na nadgarstku manipulatora (wrist) zawierający wskaźnik laserowy, diodę LED i pisak. Całość jest za pośrednictwem kabla telefonicznego podłączona do puszki u podstawy górnego ramienia, a stamtąd kablem 20-to żyłowym do modułu we/wy w szafie sterownika robota. Umożliwia to programowe włączanie i wyłączanie diody LED oraz wskaźnika laserowego.

Rys. 16. Skonstruowany efektor.

Na rys. 16 przedstawiono efektor z podstawowymi elementami: 1 – wskaźnik laserowy, 2 – dioda LED umieszczona na końcu miedzianej rurki, 3 – pisak w miedzianej rurce, 4 – gniazdo telefoniczne słuchawkowe. Całość jest przymocowana do aluminiowej podstawki, którą przykręca się śrubami do nadgarstka manipulatora. Aby ułatwić montaż, jest tylko jedno położenie, w którym efektor można przymocować. Aby móc używać efektora wraz z układem sterowania IRB1400 zdefiniowano trzy narzędzia (laser, pisak, led): PERS tooldata led := [TRUE, [[13.0, 5.5, 83.5], [1, 0, 0, 0]], [0.20, [13.0, 5.5, 41.75],[1, 0, 0, 0], 0.01, 0.01, 0.01]]; PERS tooldata pisak:= [TRUE, [[20.0, 2.5, 182], [1, 0, 0, 0]], [0.20, [20.0, 2.5, 85],[1, 0, 0, 0], 0.01, 0.01, 0.01]]; PERS tooldata laser:=[TRUE,[[-40,-20,120],[ 0.99192,0.06405,-0.10934,-0.00682]],0.20,[-10,-2.5,30],[1, 0, 0, 0], 0.01, 0.01, 0.01]];

27

Page 28: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Składnia definicji narzędzia jest następująca: PERS tooldata nazwa narzędzia:=[czy_manipulator_trzyma_narzędzie,[[współrzędne x, y, z TCP],[orientacja narzędzia w kwaternionach]],[masa w kg[środek ciężkości],[orientacja osi inercji w kwaternionach] inercja x, y, z]]

Wskaźnik laserowy został celowo zamontowany pod kątem w celu zapobieżenia utraty szóstego stopnia swobody. Dioda LED jest stosowana do kalibracji układu robot- system wizyjny. Pisak używany jest do kreślenia linii i łuków na powierzchni analizowanej sceny. Został zamocowany w miedzianej rurce, a pomiędzy nim a podstawą znajduje się sprężyna, aby miał pewien margines ruchu.

Do podstawy przymocowano gniazdo telefoniczne słuchawkowe w celu doprowadzenia sygnałów. Schemat wyprowadzeń tego gniazdka i pozostałych, zamontowanych na ramieniu manipulatora przedstawiono poniżej.

LED

GN

D

KLU

CZ

25V

a

LED

GN

D

LASE

RN

C

b

LED

GN

D

KLU

CZ

25V

c

LED

GN

D

LASE

RN

C

d Rys. 17. Wyprowadzenia gniazdek

Na rys. 17. przedstawiono schematy wyprowadzeń gniazdek (widok od przodu): a – puszka u podstawy ramienia, b - efektor, c- stabilizator wejście, d - stabilizator wyjście. Napięcia nominalne : LED – 25V, KLUCZ – 25V, LASER – 5V.

Moduł wejść/wyjść (DSQC 327) jest wykorzystywany do programowego włączania i wyłączania narzędzi zmontowanych na efektorze manipulatora.

Diodę LED i laser można włączać/wyłączać programowo. Za pośrednictwem programu ster za pomocą odpowiednich argumentów (np. ster –S 01), z panelu sterowania w menu

Inputs/Outputs -przycisk . Numery wyjść odpowiadające sygnałom zestawiono poniżej.

Włącza sygnał

Dioda LED do1 Kluczowanie lasera do2 Zasilanie lasera do3

28

Page 29: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Pomiędzy manipulatorem a puszką znajduje się niewielki układ zawierający klucz tranzystorowy i dwa układy stabilizatorów – układ ten został zaimplementowany ze względu na wskaźnik laserowy (Uzas 5V, Izas 40mA), przy czym układ ze stabilizatorem LM317 nie jest jeszcze wykorzystywany. Sygnały są doprowadzane za pomocą kabli telefonicznych słuchawkowych. Układ jest przypięty paskiem do górnego ramienia manipulatora.

Rys. 18. Wygląd układu stabilizatora

25V

kluczowanie

L48S05

2N2271

3k6Ω

R

C0,33µF 0,1µF

wskaźnik laserowy

C

0,33µF

LM317

0,33µF

R

R

C

C

25V

240Ω

5KΩ

Rys. 19. Układ stabilizatora.

29

Page 30: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

5 Wyniki eksperymentalne

Do wyznaczenia transformacji układów współrzędnych systemu wizji i robota (3.3.5) konieczne jest wykonanie kilku pomiarów – wektorów zawierających współrzędne lokalizowanego punktu wyrażonych w układach współrzędnych układu wizji i robota (3.2.3). Z definicji konieczne jest pobranie przynajmniej czterech niewspółpłaszczyznowych pomiarów dla zapewnienia odwracalności macierzy W (3.3.5). T

ppWSerie pomiarowe powinny być dłuższe, ponieważ pomiary obarczone są błędem, a

przy czterech pomiarach transformacja idealnie dopasowuje te cztery punkty i korzystając z transformacji uzyskanej w ten sposób otrzymuje się duże błędy przy przeliczaniu współrzędnych innych punktów. Przy dłuższych seriach pomiarowych błąd identyfikacji jest uśredniany, co daje lepszy model transformacji.

5.1 Własności modelu transformacji Dla pokazania własności transformacji wybrano prosty przykład – seria pomiarowa na podstawie punktów przestawionych na rys.20.

Rys. 20. Przykładowa trajektoria ruchu manipulatora

30

Page 31: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

0.00E+00

1.00E+00

2.00E+00

3.00E+00

4.00E+00

5.00E+00

6.00E+00

7.00E+00

4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

krok 30krok 10

Rys. 21. Średni błąd niedopasowania

0.00E+00

5.00E-01

1.00E+00

1.50E+00

2.00E+00

2.50E+00

3.00E+00

4 5 6 7 8 9 10 11 12 13 14 15 16 17

Rys. 22. Kryterium Q dla pierwszych dziewięciu pomiarów.

Przestrzeń rozpinana była z krokiem 10 i 30 mm. Na rys. 21 przedstawiono zmianę wartości kryterium jakości Q (3.3.4) pierwszych dziewięciu pomiarów (jedna płaszczyzna) przy transformacjach uzyskanych z kolejnych ilości serii pomiarowych.

0.00E+00

1.00E+02

2.00E+02

3.00E+02

4.00E+02

5.00E+02

6.00E+02

7.00E+02

8.00E+02

9.00E+02

1.00E+03

4 5 6 7 8 9 10 11 12 13 14 15 16 17

Rys. 23. Kryterium jakości Q pozostałych pomiarów (druga płaszczyzna)

31

Page 32: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Na podstawie rysunków 21 i 23 można powiedzieć, że transformacja uzyskana na podstawie pomiarów uzyskanych z jednej płaszczyzny różniła się znacznie od transformacji otrzymanej z pomiarów z pewnej przestrzeni (głównie trzecim wierszem, co przedstawiono poniżej), oraz błąd dopasowania był bardzo duży i gwałtownie zmalał dla transformaty rozpiętej w przestrzeni. Transformacje przy pomiarach powyżej 10 niewiele różniły się między sobą. Poniżej przedstawiono postać macierzy transformacji przy poszczególnych seriach pomiarowych. Pierwsze pięć przedstawia transformaty obliczone z pomiarów wykonanych w jednej płaszczyźnie. Tabela 1. Transformacja uzyskana na podstawie 4 pomiarów współpłaszczyznowych.

-5.465E+01 -6.381E+00 2.179E+04 -9.464E+02 -7.547E+00 5.409E+01 3.418E+03 8.953E+02 -3.874E-02 7.490E-03 3.607E+02 4.207E+02 2.547E-11 4.320E-12 0.000E+00 1.000E-00

Tabela 2. Transformacja uzyskana na podstawie 5 pomiarów współpłaszczyznowych.

-5.480E+01 -6.425E+00 2.361E+04 -9.573E+02 -7.217E+00 5.419E+01 -5.124E+02 9.189E+02 -3.718E-02 7.944E-03 3.421E+02 4.209E+02 5.230E-12 3.411E-13 7.451E-09 1.000E-00

Tabela 3. Transformacja uzyskana na podstawie 6 pomiarów współpłaszczyznowych.

-5.485E+01 -6.408E+00 2.414E+04 -9.606E+02 -7.499E+00 5.428E+01 2.281E+03 9.021E+02 -1.123E-02 -8.991E-06 8.522E+01 4.224E+02 1.637E-11 3.155E-12 7.451E-09 1.000E-00

Tabela 4. Transformacja uzyskana na podstawie 7 pomiarów współpłaszczyznowych.

-5.477E+01 -6.419E+00 2.343E+04 -9.563E+02 -7.367E+00 5.426E+01 1.083E+03 9.093E+02 -1.675E-03 -1.265E-03 -1.180E+00 4.229E+02 9.209E-12 1.506E-11 -1.490E-08 1.000E-00

Tabela. 5. Transformacja uzyskana na podstawie 8 pomiarów współpłaszczyznowych.

-5.475E+01 -6.464E+00 2.156E+04 -9.446E+02 -7.370E+00 5.426E+01 1.341E+03 9.077E+02 -2.052E-03 -5.669E-04 2.782E+01 4.227E+02 -4.547E-13 5.485E-12 -7.451E-09 1.000E+00

Tabela 6. Transformacja uzyskana na podstawie 9 pomiarów współpłaszczyznowych.

-5.475E+01 -6.470E+00 2.143E+04 -9.437E+02 -7.391E+00 5.432E+01 2.375E+03 9.012E+02 -9.214E-04 -3.371E-03 -2.849E+01 4.231E+02 -1.637E-11 -1.078E-11 9.313E-10 1.000E+00

32

Page 33: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Po wprowadzeniu punktów pomiarowych spoza płaszczyzny otrzymane wyniki są znacznie lepsze (por. rys. 23 – pomiar 10). Tabela 7. Transformacja uzyskana na podstawie 10 pomiarów

-5.452E+01 -6.468E+00 1.751E+04 -9.198E+02 -6.629E+00 5.432E+01 -1.078E+04 9.816E+02 5.123E+00 5.483E-02 -8.845E+04 9.636E+02 7.461E-14 -4.974E-14 1.164E-10 1.000E-00

Tabela 8. Transformacja uzyskana na podstawie 11 pomiarów

-5.452E+01 -6.466E+00 1.763E+04 -9.205E+02 -6.621E+00 5.433E+01 -1.059E+04 9.804E+02 5.185E+00 7.825E-02 -8.692E+04 9.538E+02 -4.352E-14 -1.332E-14 -3.638E-11 1.000E+00

Jak widać na powyższych rysunkach, powyżej 9-tej serii pomiarowej gwałtownie

maleje wartość błędu dopasowania i kryterium jakości Q. Pierwsze 9 pomiarów było pobrane z jednej płaszczyzny i następne z drugiej.

W wypadku dużych błędów dopasowania można przeprowadzić procedurę korekcji błędów poprzez usuwanie pomiarów, przy których wartość błędu dopasowania jest największa, następnie liczyć nową transformację i powtarzać ten zabieg wielokrotnie. Ma to miejsce w przypadku błędnej lokalizacji diody (np. refleks od jakiegoś elementu na scenie, lub gdy obraz był pobierany podczas ruchu robota). Zazwyczaj wystarczają dwie iteracje. Skutecznym zabezpieczeniem przed błędnym pomiarem jest sprawdzenie różnicy współrzędnych y zlokalizowanej diody. W programie pobierającym dane dopuszczalna wartość tej różnicy jest mniejsza niż 10 pikseli.

Transformacja dobrze przybliża wartości punktów w okolicy pomiarów, natomiast błąd lokalizacji wzrasta wraz z wzrostem odległości od środka ciężkości wzorcowych serii pomiarowych. Im przestrzeń, z której pobierano pomiary jest mniejsza, tym mniejszy jest błąd dopasowania/lokalizacji w tej przestrzeni i szybciej rośnie błąd lokalizacji wraz z odległością od jej środka ciężkości. Estymator najmniejszych kwadratów (3.3.5) powoduje, że macierz transformacji ma postać taką, by błąd średniokwadratowy był jak najmniejszy. Po wciągnięciu pomiaru do serii pomiarów, na podstawie których liczona jest transformacja błąd niedopasowania wyraźnie maleje. W plikach błędów – blad.txt i q.txt tworzonych prze program transf jest to widoczne na przekątnej macierzy błędów. Jakość uzyskanej transformacji (czyli wartości błędów) zależą od warunków w jakich przeprowadzano eksperyment. Najlepsze wyniki uzyskano przy eksperymencie w warunkach dobrego oświetlenia (przynajmniej 9 lamp włączonych), liczbie pomiarów 10-20 i kroku 25 mm. Jak należało się spodziewać, składowa z obarczona jest największym błędem. Wynika to z ograniczonej rozdzielczości kamer i błędów lokalizacji.

33

Page 34: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Przeprowadzono pewien eksperyment – rozpięto pewną przestrzeń (sześcian, po 9 pomiarów na 3 płaszczyznach), przy czym pomiary rozpinano pewnym krokiem. Na rysunkach poniżej przedstawiono zależności błędu lokalizacji diody w zależności od rodzaju transformaty. Transformaty uzyskano przy identycznych warunkach zewnętrznych i przebiegu eksperymentu, różniły się tylko wartości kroku (czyli bok rozpinanego sześcianu). Na osi y przedstawiono błąd lokalizacji poszczególnej współrzędnej, na osi x odległość mierzonego wektora od środka ciężkości pomiarów na podstawie których liczono transformatę.

10 20 30 40 50 60 70 80 90 100 110 120 130

0

20

40

60

80

100

błąd

pom

iaru

[mm

]

od leg łość od środka ciężkości [m m ]

x y z

Rys. 24. Błąd lokalizacji – sześcian o boku 20 mm.

10 20 30 40 50 60 70 80 90 100 110 120 1300.00

0.25

0.50

0.75

1.00

1.25

1.50

1.75

2.00

2.25

2.50

2.75

3.00

błąd

pom

iaru

[mm

]

od leg łość od środka c iężkości [m m ]

x y x

Rys. 25. Błąd lokalizacji – sześcian o boku 50 mm.

34

Page 35: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

20 30 40 50 60 70 80 90 100 110 120 1300.00

0.25

0.50

0.75

1.00

1.25

1.50

1.75

2.00

2.25

2.50

2.75

3.00

błąd

pom

iaru

[mm

]

odległość od środka ciężkości [mm]

x y z

Rys. 26. Błąd lokalizacji – sześcian o boku 100mm.

Jak widać, transformata przybliża dobrze otoczenie punktów pomiarowych, lecz w miarę oddalania się od środka ciężkości pomiarów błąd wzrasta (zwłaszcza współrzędna z). Charakterystyczny spadek charakterystyki w okolicy początku oznacza, że pomiarów kontrolnych dokonywano w okolicy wcześniejszych pomiarów. Krok nie może być zbyt mały - błędy analizy systemu wizji powodują, że wektory rozpinające przestrzeń zbyt się zmieniają, co powoduje deformację przestrzeni i różnice w obliczeniach transformacji. Krok nie może być zbyt duży – przybliżana przestrzeń jest dość duża.. Najlepiej jest przybliżana przestrzeń wokół punktów pomiarowych. Zbyt duże odstępy od kolejnych pomiarów owocują większym błędem.

0

5

10

15

20

25

30

4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

ilość pomiarów

war

tość

błę

du [m

m]

Rys. 27. Błąd dopasowania - sześcian o boku 20 mm.

35

Page 36: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

0

5

10

15

20

25

4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

ilość pomiarów

błąd

[mm

]

Rys. 28 Błąd dopasowania - sześcian o boku 50mm

0

5

10

15

20

25

30

35

40

45

4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

ilość pomiarów

błąd

[mm

]

Rys. 29 Błąd dopasowania -sześcian o boku 100 mm

Tabela 9. Średni błąd niedopasowania w zależności od rozmiarów rozpinanej przestrzeni:

Bok sześcianu [mm] Średni błąd niedopasowania [mm]

20 2,23 50 0,395 100 0,629

36

Page 37: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

W celu pokazania, jaki wpływ na znajdowaną transformację mają błędne pomiary prowadzono błąd do 11-go pomiaru (rys. 30). Jak widać, w miarę zwiększania długości serii pomiarowej wpływ wprowadzonego błędu szybko maleje.

0

5

10

15

20

25

30

35

4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

ilość poomiarów

błąd

[mm

]

Rys. 30. Błędy dopasowania ze spreparowanym błędem pomiaru.

Jak widać na rysunkach (21,23,27-30), algorytm identyfikacji parametrów modelu transformacji jest szybkozbieżny. Niestety, ze względu na błędy analizy obrazu nie osiąga wartości 0, lecz oscyluje wokół pewnej wartości. Na rysunkach 24-30 widać, jak szybko dopasowuje się model transformacji. Ma to miejsce, gdy pobierane są pomiary z kilku punktów, różniących się dość współrzędnymi – zwłaszcza składową z.

37

Page 38: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

5.2 Detekcja diody LED

Detekcja diody LED lub plamki lasera jest stosunkowo prostą sprawą – wystarczy przeprowadzić operację progowania (wartość progu wysoka – praktycznie maksymalna). W przypadku, gdy nie znamy wartości progu można przeprowadzić operację progowania typu „znajdź x najjaśniejszych punktów”, przy czym x jest spodziewaną powierzchnią szukanej plamki w pikselach. Przy stosowanej diodzie i wskaźniku laserowym jest to kilkanaście - kilkadziesiąt pikseli (przy rozdzielczości 640x480). Jeśli i ta metoda zawodzi, można pobrać dwa obrazy – jeden z diodą/laserem włączonym i drugim z wyłączonym, po czym przeprowadzić operację odejmowania obrazu. W przeprowadzonych eksperymentach problemy ze znalezieniem diody występowały tylko przy ostrym oświetleniu sceny.

jasne tło o

Rys.

Na rysunku pow

oświetleniu. Na scenibiałe. Jak widać, hiswyodrębnienia obiektóprogiem o odpowiedni

ciemne biekty na scenie

31. Histogramy kilku obrazów sceny z włączoną dio

yżej przedstawiono histogramy kilku obrazóe znajdowały się czarne przedmioty, tło (ptogramy analizowanych obrazów są zbliżw na scenie lub diody wystarczy przeprowadej wartości.

Dioda

dą LED

w sceny przy normalnym owierzchnia stolika) było one do siebie. W celu zić operację progowania z

38

Page 39: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

5.3 Detekcja plamki lasera Zagadnienie detekcji plamki lasera przedstawia się podobnie jak detekcja diody LED. Progowanie zazwyczaj wystarcza do jej znalezienia, ale w przypadku czarnych, chropowatych powierzchni konieczna jest czasami redukcja oświetlenia lub odejmowanie obrazów (obraz z plamką – obraz bez plamki). Możliwe jest wskazywanie przedmiotów laserem, a następnie lokalizacja plamki (tzn. wektor uzyskany układu wizji mnoży się przez wcześniej wyznaczoną macierz transformacji). Można zwiększać ilość pomiarów skanując pewien obszar sceny, tzn. przesuwając laser krok po kroku po płaszczyźnie i każdorazowo po przesunięciu lasera pobierać obraz i go analizować. Wyniki są zapisywane, a na końcu przemnażane przez wcześniej uzyskaną macierz transformacji. W celu wizualizacji można użyć programu gnuplot, co przedstawiono na rysunku poniżej.

Rys. 32. Przykładowy wynik skanowania sceny

Oświetlając wiązką lasera obiekty na scenie można zmierzyć ich położenie i wysokość.

Rys. 33. Lokalizacja plamki lasera

Dość dobrze są lokalizowane plamki, ale wynik obliczenia współrzędnych w układzie robota zależy od wielu współczynników –m.in. jakości transformacji, rozdzielczości obrazu i oświetlenia sceny. Błędy obliczeń w porównaniu z rzeczywistymi współrzędnymi są dość duże. W przypadku oświetlania czarnych obiektów o chropowatej powierzchni konieczne jest czasami przeprowadzanie operacji odejmowania obrazów w celu znalezienia plamki.

39

Page 40: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

5.4 Detekcja innych obiektów Poniżej zamieszczono histogramy kilku obrazów sceny (z białym tłem i naniesionymi przez robota liniami.)

Histogramy sceny przy różnym oświetleniu

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

20000

0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250

narysowane linie

oświetlenie

Rys. 34. Histogram kilku obrazów sceny.

Wykrywanie obiektów w warunkach złego oświetlenia sceny może być dość trudne (rys. 35).

Rys. 35. Koła narysowane przez robota (lewy) i obraz po progowaniu (prawy).

Obraz na rys. 35 (lewy) został pobrany przy słabym oświetleniu, po progowaniu (prawy, wartość progu 140). Jak widać, przy źle oświetlonych obrazach trudno jest dobrać wartość progu, tak aby obraz nadawał się do analizy. W takim przypadku można przeprowadzić operację detekcji krawędzi.

40

Page 41: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

5.4.1 Detekcja krawędzi

Przy detekcji krawędzi stosowano metodę progowania wartości gradientu funkcji obrazu.

Stosowanie laplasjanów powoduje uzyskanie obrazu z dobrze uwypuklonymi krawędziami, ale z nałożonym szumem typu „sól i pieprz”, co wymaga przeprowadzania dodatkowych operacji np. otwierania. Okazało się, że poprawne wyniki otrzymuje się przy wartości progu z zakresu 10-35.

Maska filtru Maska filtru

-2 1 -2 0 -1 0 1 4 1 -1 4 -1 -2 1 -2 0 -1 0

Próg 30 Próg 10

Rys. 36 . Wyniki operacji filtracji Laplace’a

W przypadku filtrów gradientowych najlepiej się sprawdziły się kombinacje (złożenia) dwóch lub więcej filtracji za pomocą różnych masek (np. pionowo – poziomo, góra lewo – góra prawo). Zastosowanie tylko jednego filtru kierunkowego powoduje zwężenie lub zanik pewnych fragmentów krawędzi zwłaszcza w przypadku obiektów, których krawędzie są łukami (np. zastosowanie filtru pionowego powoduje zanik krawędzi na górze i dole figury).

41

Page 42: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Rys. 37. Zastosowanie filtru Sobela (maska pozioma+ pionowa) i filtru Prewitta (maska pozioma)

Na rysunku 38 pokazano zastosowanie filtru Prewitta, (złożenie filtru pionowego i poziomego), wartość progu 60. Jak widać, przy grubszych liniach po detekcji krawędzi otrzymuje się dwie linie. Grubość linii rysowanej przez robota zależy od prędkości ruchu manipulatora (stosowano pisak alkoholowy). Jak widać, linie czasami są zbyt grube. Można to poprawić poprzez stosowanie większych macierzy filtrów, lub operację binaryzacji (progowania) a następnie erozji. Do detekcji okręgów użyto transformacji Hougha (patrz Dodatek B).

Rys. 38. Obraz z rys 35 poddany operacji detekcji krawędzi i okręgów

Na podstawie wcześniej uzyskanej transformacji układów współrzędnych otrzymuje się współrzędne w układzie robota.

Robot Wizja

x [mm] y [mm] z [mm] x [mm] y [mm] z [mm] -940.48 958.04 190.17 -939.02 964.93 188.32

-1017.48 958.04 192.14 -1015.32 963.60 195.52

42

Page 43: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Otrzymany wynik jest obiecujący, jeśli weźmie się pod uwagę fakt, że kamery nie były skalibrowane i algorytm lokalizacji środka okręgu był zgrubny. Można ulepszyć algorytm lokalizacji środka okręgu w przestrzeni parametrów: nie przez maksimum, ale np. znajdując środek ciężkości. Środek okręgu w komórkach akumulatora nie jest punktem, lecz plamką o różnych wartościach w poszczególnych komórkach.

5.4.2 Detekcja łuków Jest to detekcja okręgów, tylko należy porównywać obraz końcowy z obrazem wejściowym.

Rys. 39. Obraz oryginalny i poddany operacji detekcji krawędzi

Należy zauważyć, że wykryto tylko dwa z trzech obiektów. Na rys. 39 dolny element został umieszczony bliżej kamer, przez co na obrazie jego średnica jest większa.

Rys. 40. Wartości akumulatorów i obraz wynikowy - łuki o szukanych promieniach

Generalnie rzecz biorąc, detekcja okręgów jest prostą operacją, lecz czasochłonną. Czas operacji zależy od średnicy szukanego okręgu/łuku oraz mocy obliczeniowej komputera i może wynieść nawet kilkadziesiąt sekund.

43

Page 44: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

5.5 Analiza błędów Największym problem w wyznaczaniu macierzy transformacji są błędy pomiarowe. Poniżej wypisano ich źródła i sposoby ich zmniejszenia. Robot Błąd zdefiniowania TCP diody LED nie ma wpływu na dokładność transformacji (zmieniłby się wektor translacji w macierzy transformacji), jeśli w eksperymentach jest stosowana tylko dioda LED. Pisak natomiast charakteryzuje się pewną podatnością wzdłuż osi z (chodzi o umożliwienie pisania) i rysowana linia jest stosunkowo gruba, by ułatwić analizę obrazu. Zakłada się, że przy definiowaniu TCP narzędzi popełniono błąd co najwyżej 2 mm (każda z osi). Dane pozycji TCP narzędzia pobierane z robota z dokładnością do setnych milimetra. Większa dokładność nie ma sensu, ze względu na inne błędy (system wizji). Manipulator IRB1400 jest precyzyjnym urządzeniem. Niektóre jego parametry zestawiono poniżej. Powtarzalność pozycji bez zachowania orientacji: RP = 0.05 mm. Dokładność ścieżki liniowej: AT = 0.45 – 1.00 mm. Powtarzalność ścieżki liniowej: RT = 0.14 – 0.25 mm. Powtarzalność ścieżki okrężnej: RT = 0.33 mm. Minimalny czas pozycjonowania do odległości 0.2 mm od zadanej pozycji: - 0.2 - 0.35 s (liniowa ścieżka 35 mm), - 0.4 - 0.65 s (liniowa ścieżka 350 mm). System wizji System wizji jest podstawowym źródłem błędów w pomiarach. Wynika to głównie z ograniczonej rozdzielczości kamer i błędów w analizie obrazu. Środek wydzielonego obiektu można wyznaczać na kilka sposobów – można np. znajdować medianę współrzędnych x, y (metoda profili) lub sumować współrzędne x, y a następnie dzielić je przez ilość pikseli analizowanego obiektu (metoda uśredniania).

Rys. 41 Plamka wyznaczona z uśredniania współrzędnych i z profili.

Błąd detekcji zależy też od sposobu określania środka diody. W tym przypadku przy identycznych obrazach zastosowano metodę uśredniania punktów i metodę profili. Jak widać (rys. 42), końcowy błąd jest mniejszy przy zastosowaniu metody uśredniania współrzędnych.

44

Page 45: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

średni błąd dopasowania

0

1

2

3

4

5

6

7

4 5 6 7 8 9 10 11 12 13 14

ilość pomiarów

błąd

[mm

]

konturuśrednianie

Rys. 42 Średni błąd dopasowania przy różnej metodzie wyznaczania środka plamki.

Obie te metody nie są wolne od wad. Metoda profili znajduje nie środek obiektu, ale miejsce, gdzie obiekt jest najszerszy (w pionie i poziomie). Metoda wyznaczania plamki za pomocą uśredniania jest wrażliwa na zakłócenia, tj. przy dodatkowych obiektach na obrazie poda uśrednione współrzędne ich wszystkich. Dlatego należy zadbać o odpowiednią aranżację sceny (żadnych odblasków). Z powodu ograniczonej rozdzielczości kamer obliczenia głębi są z definicji obarczone pewnym błędem. Na rys. 43 i 44 przedstawiono to zjawisko i sposób wyliczenia teoretycznego błędu [2].

b

k

Z R

r

Rys. 43. Zjawisko ograniczonej rekonstrukcji głębi wraz ze wzrostem odległości od płaszczyzny kamer.

45

Page 46: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

kb

R

Z

B H

A FC G

r

D

E

Rys. 44 Obliczenie zależności dokładności obliczeń głębi od rozdzielczości kamer

Z podobieństw trójkątów:

)(2 RZrZRkb += (5.5.1) Ostatecznie:

rZkbrZR−

=2

(5.5.2)

Zależność błędu od odległości od kamer

0

5

10

15

20

25

30

35

40

300 350 400 450 500 550 600 650 700 750 800 850 900 950 1000

odległośc Z [mm]

różn

ica

R [m

m]

1 piksel

2 piksele

3 piksele

Rys. 45. Graficzne przedstawienie zależności (5.5.2),

Wszystkie pomiary wykonane w ramach tej pracy były pobierane przy maksymalnej dostępnej rozdzielczości obrazu – 640x480 pikseli. Błędy uzyskane przy rozdzielczości mniejszej, tj. 320x240 charakteryzowały się zbliżonymi błędami przy obliczaniu współrzędnych x i y oraz około 50% większymi błędami przy obliczaniu współrzędnej z.

46

Page 47: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

6 Podsumowanie W ramach niniejszej pracy stworzono stanowisko, w którym robot współpracuje z systemem wizji. Dzięki temu możliwa jest automatyzacja zadań, czyli wykonywanie operacji bez udziału człowieka. Podstawowe znaczenie dla współpracy robota z systemem wizji ma zgranie obu systemów poprzez znalezienie modelu transformacji pomiędzy ich układami współrzędnych. Transformacja ta determinuje dokładność operacji wykonywanych przez robota. W tej pracy udało osiągnąć się dokładność współpracy poniżej 1 mm (współrzędne x,y) i 3 mm (współrzędna z). Poprzez bardziej zaawansowane operacje można ten błąd zmniejszyć. Dzięki stworzonemu stanowisku można analizować współpracę pomiędzy robotem a systemem wizyjnym. Kalibracja układów odbywa się automatycznie i szybko. Czas potrzebny do pojedynczego pomiaru (ruch robota, pobranie obrazu z kamer, analiza obrazu, pobranie współrzędnych od robota) zajmuje około 4 s (przy względnie słabo obciążonej sieci). Określenie modelu transformacji pomiędzy układami zajmuje około 20 s – 1 min, w zależności od długości serii pomiarowych. Warunkiem koniecznym współpracy robot-wizja jest możliwość obustronnej komunikacji pomiędzy sterownikiem robota a komputerem nadrzędnym. Stworzony na potrzeby pracy protokół robot - PC umożliwia taką komunikację i wygodne sterowanie robotem za pomocą komputera, co do tej pory nie było możliwe w laboratorium. W celu przeprowadzenia eksperymentów zaprojektowano i wykonano aktywny efektor zawierający diodę LED, wskaźnik laserowy i pisak, który może służyć do dalszych badań. Zbudowane stanowisko przetestowano przez przeprowadzenie licznych eksperymentów obejmujących kalibrację układów współrzędnych i przeanalizowanie wyników. Zgodnie z oczekiwanymi wynikami, najlepsze wyniki uzyskano dla punktów leżących wewnątrz obszaru, dla którego przeprowadzono kalibrację. Robot jest w stanie rysować łuki, linie, punkty, oświetlać poszczególne punkty sceny wiązką lasera. W połączeniu ze stosunkowo prostymi algorytmami analizy obrazu i odpowiedniej aranżacji sceny można to stanowisko wykorzystać do innych celów – np. interaktywna analiza sceny.

Propozycje kontynuacji pracy Uzyskane wyniki są obiecujące i można wykorzystać do dalszych prac dotyczących współpracy robota z system wizyjnym. Przykładowe zastosowania : - interaktywna współpraca manipulatora i systemu wizji (gra kółko-krzyżyk), - analiza obiektów leżących na scenie (prostych/łuków) i obrysowywanie ich konturów lub

rysowanie ich w innym miejscu, - symulacja spawania – obrysowywanie obiektów promieniem lasera, - współpraca typu „eye in hand” (stereowizja + kamera zainstalowana na ramieniu

manipulatora).

47

Page 48: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Dodatek A Opis stosowanych programów.

A.1. Program sio

Program sio działa na sterowniku robota i służy do komunikacji robot –PC używając prostego protokołu (lista komunikatów poniżej). Napisany w języku RAPID.

Lista komunikatów: #POZ – pakiet pozycji: zwraca 3 współrzędne TCP w układzie współrzędnych zewnętrznych #ORN – pakiet orientacji: zwraca orientację narzędzia – 3 kąty Eulera (roll-pitch-yaw). Co prawda na panelu sterowania orientacja narzędzia jest wyrażana w kwaternionach, ale taka reprezentacja jest wygodniejsza. Format danych: #suma_kontrolna[wsp_x,wsp_y,wsp_z] Suma kontrolna jest typu int, współrzędne wewnątrz nawiasów są typu float. Suma kontrolna jest obliczana wg formuły:

(abs((int)wsp_x)+ abs((int)wsp_y)+ abs((int)wsp_z))%255 Po stronie robota wykorzystywana jest funkcja Cpos (pozycja) i CrobT (orientacja). W celu zamiany kwaternionów na kąty Eulera stosuje się funkcję EulerXYZ. #PLK – pakiet pliku Wysyła plik do sterownika i zapisuje go w RAMDISC-u. W ramach tego rozkazu istnieją jeszcze inne polecenia: #EOF – koniec pliku #SYN – synchronizacja (wysyłany po każdej linii pliku)

48

Page 49: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

#RCH – pakiet ruchu – uproszczona komenda ruchu, przemieszczenie narzędzia w jednym z głównych kierunków o uprzednio ustawiony odcinek (offset). Jest to ruch liniowy i podczas ruchu jest zachowana orientacja nadgarstka manipulatora. Format rozkazu: #RCHxy gdzie: x=0 – ruch na płaszczyźnie, x=1 – ruch na płaszczyźnie oddalonej o offset w dół osi z, x=2 – w górę y - ruch zgodnie z klawiszami kursora na klawiaturze numerycznej; orientacja zgodna z orientacją komputera mobil .z którego najwygodniej jest sterować robotem, a klawisze kursora zgadzają się z kierunkiem ruchu.

54 6

1 2 3

7 8 9

17 18

131211

19161514

07 08

0302010604

09

27 28

232221262524

29

05

z

xyz

x

y

Rys. 41. Wzajemne zależności wartości kierunku ruchu i osi robota.

Np. #RCH15 powoduje przesunięcie nadgarstka pionowo w górę, a #RCH08 przesunięcie nadgarstka zgodnie z osią x. Po stronie robota jest stosowana funkcja MoveL i Ofss. #OFS – zmienia wartość kroku (offsetu), o jaki jest przesuwany nadgarstek robota. Wyraża się w milimetrach, wartość dopuszczalna z przedziału 1-200. Format rozkazu #OFSxxx gdzie xxx – liczba w formacie int. #SET – ustawienie zadanego wyjścia (wartość „1”)cyfrowego #SETxx – gdzie xx to dwucyfrowy numer wyjścia z przedziału 1-18.

49

Page 50: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

#RST – kasowanie (wartość „0”) zadanego wyjścia cyfrowego Format rozkazu: #RSTxx – gdzie xx to dwucyfrowy numer wyjścia z przedziału 1-18. #NRZ – zmiana narzędzia Format rozkazu #NRZx gdzie x – numer zdefiniowanego narzędzia. 0 – tool0 - narzędzie zerowe (TCP i orientacja zgodna z nadgarstkiem robota), 1 – led – rurka z osadzoną diodą LED, TCP – środek diody LED, 2 – pisak – rurka z umieszczonym w niej pisakiem, TCP – środek końcówki piszącej, 3 – laser – wskaźnik laserowy, TCP – punkt w przedłużeniu osi symetrii wskaźnika, #IDZL - ruch liniowy do zadanego punktu. Podczas ruchu jest zachowana orientacja narzędzia. Format rozkazu #IDZxxxxxyyyyyzzzzz gdzie x,y,z – współrzędne punktu docelowego Po stronie robota wykorzystywana jest instrukcja MoveL. Wymaga ona punktu docelowego w postaci robtarget (złożenie typów danych pos – 3 współrzędne x, y, z TCP narzędzia, orient – orientacja narzędzia wyrażona w 4 kwaternionach, robconf – konfiguracja osi i extax –pozycje osi zewnętrznych). #ACK – potwierdzenie #NAK – brak potwierdzenia (potw. na nie) #ERR - błąd Przykładowy fragment kodu – otwarcie portu szeregowego do czytania w trybie tekstowym Open "sio1:",fd_sio\Read; linia:=ReadStr(fd_sio\Time:=TIMEOUT); Close fd_sio; Sprawdzenie nagłówka rozkazu IF StrMatch(linia,1,"#RCH") = 1 THEN ! pakiet ruchu pakiet:=RCH_ID; WyslijACK; ENDIF

50

Page 51: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Język programowania IRB1400 – RAPID jest rozbudowanym językiem wysokiego poziomu, zbliżonym do Pascala. Zawiera około 100 instrukcji, 70 funkcji i 40 typów danych. Pierwotne oprogramowanie do komunikacji PC – sterownik S4 zostało napisane przez Wojtka Pietkiewicza <[email protected]>. Niektóre z instrukcji RAPID-a używane w programie: MoveC przemieszcza TCP po półokręgu , MoveL przemieszcza TCP liniowo , Set ustawia wartość „1” na wyjściu cyfrowym, Reset ustawia wartość „0” na wyjściu cyfrowym, SetDO zmienia wartość wyjściowego sygnału cyfrowego , TPWrite wyświetla informację na wyświetlaczu panelu sterowania, TPErase czyści ekran panelu sterowania, IF wykonuje zestaw różnych instrukcji w zależności czy warunek został

spełniony, czy nie, FOR powtarza część programu pewną ilość razy, WHILE powtarza zestaw różnych instrukcji tak długo, aż warunek zostanie

spełniony, WaitTime czeka podany okres czasu lub czeka, aż robot przestanie się poruszać, Open otwiera port/plik do odczytu lub zapisu, Write pisze tekst do portu/pliku, Close zamyka port/plik, CPos odczytuje pozycję TCP(typ danych pos – współrzędne x, y, z)

CRobT odczytuje pozycję TCP (typ danych robtarget – współrzędne x,

zewnętrznych). y, z, orientacja w kwaternionach, konfiguracja osi i pozycja osi

Funkcje RAPID-a używane w programie: Abs zwraca wartość bezwzględną, EulerZYX zwraca kąty Eulera z orientacji narzędzia, Offs przesuwa pozycję TCP, StrMatch szuka podanego wzorca w ciągu znaków, StrToVal konwertuje ciąg na wartość numeryczną, StrLen zwraca długość ciągu znaków, StrPart wycina jeden ciąg z drugiego, Trunc zaokrągla wartość numeryczną. Pełna lista instrukcji znajduje się w [7]

Program działający na robocie ze względów bezpieczeństwa nie działa jako zadanie w tle (task) tylko jak zwykły program, przez co niezbędne jest trzymanie przycisku zezwolenia na pracę silników lub przekręcenie klucza na panelu operatora w pozycję pracy automatycznej.

51

Page 52: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

A.2. Program detled

W plikach daner.txt i daner.txt dane są przechowywane jako wartości typu float oddzielone spacją (jeden wektor – jedna linia).Tego typu zapis jest rozpoznawany przez program gnuplot, bardzo popularny w systemie operacyjnym Linux. Aby np. wyświetlić na ekranie w formie trójwymiarowej trajektorię ruchu robota należy po wywołaniu gnuplot-a wpisać np.: splot „daner.txt” wth linespoints, lub stworzyć skrypt z dodatkowymi opcjami.

A.3. Program transf

Program transf oblicza transformację korzystając ze wzoru (3.3.5). Ładuje dane z plików daner.txt (wektory pomiarów we współrzędnych robota) i danew.txt (wektory pomiarów we współrzędnych wizji). Generuje plik transf.txt z wynikową transformacją oraz pliki blad.txt , który zawiera średnie błędy dla każdego pomiaru w stosunku do transformat z różnych serii pomiarowych. Oprócz tego generuje plik q.txt, który zawiera wartości kryterium dla tych samych pomiarów i transformat co blad.txt.

Jak czytać pliki? Kolumny reprezentują wartości błędu dla jednego pomiaru przy zastosowaniu kolejnej transformacji, obliczonej na podstawie kolejnych pomiarów (zaczynając od 4). Tzn. liczba w pierwszej kolumnie i pierwszym rzędzie oznacza średni błądpomiędzy rzeczywistym wektorem robota a obliczonym na podstawie pomnożenia pierwszego pomiaru przez transformację obliczoną z czterech pierwszych pomiarów, a liczba w trzeciej kolumnie i piątym wierszu oznacza trzeci pomiar i transformację z dziewięciu pierwszych pomiarów.

A.4. Program ster Lista wywołań

argument oznacza -O Zwraca orientację używanego narzędzia w 3 kątach Eulera

-P Zwraca pozycję TCP używanego narzędzia we współrzędnych zewnętrznych

-t Zwraca pozycję TCP używanego narzędzia we współrzędnych zewnętrznych (zapisuje ją do pliku, z dokładnością do dwóch miejsc po przecinku)

-o xxx Zmienia wartość kroku używanego w uproszczonych komendach ruchu (#RCH) xxx- wartość typu int 1-200

-n x Zmienia używane narzędzie; x – typu int 0-3 (0- tool0, 1 –led, 2 –pisak, 3 – laser)

-r xy Przemieszcza efektor liniowo (uproszczona komenda ruchu)

-S x Ustawia wyjście cyfrowego, x –typu int 1-18 (1 – dioda LED, 2- kluczowanie lasera, 3 – zasilanie lasera)

-R x Kasje wyjście cyfrowego, x –typu int 1-18 -l x y z Przemiesza liniowy efektor do punktu (x,y,z); x, y, z – typu int

52

Page 53: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

A.5. Program irbvis Program irbvis jest nakładką na pozostałe programy; napisany został w środowisku Qt. Umożliwia wygodne sterowanie robotem, pisanie skryptów, weryfikację otrzymanej macierzy transformacji.

Rys. 42. Okno sterowania robotem

Rys. 43. Okno pisana skryptów

53

Page 54: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Rys. 44. Okno weryfikacji transformacji.

54

Page 55: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

A.6. Formaty plików Plik blad.txt W poszczególnych komórkach znajdują się wartości błędu niedopasowania (czyli różnica pomiędzy wektorem robota a iloczynem wektora wizji i macierzy transformacji). Błędy są uśrednione po współrzędnych. W kolumnie jest przedstawiony wartość błędu danego pomiaru, w wierszu ilość kolejnych pomiarów wchodzących w skład serii na podstawie której jest obliczana macierz transformacji. --1 -- -- 2 -- -- 3 -- -- 4-- -- 5 -- ... 04 3.149380E-07 3.166895E-07 3.202566E-07 3.191516E-07 1.010663E+01 ... 05 1.066461E-01 1.103144E-01 1.053755E-01 1.062544E-01 4.547244E-03 ... 06 1.044737E-01 1.123677E-01 1.074316E-01 1.040828E-01 8.777747E-03 ... .. ... ... ... ... ... ... Czyli w wierszu 1 - transformacja z czterech pierwszych pomiarów, wierszu 2 – transformacja z pięciu pierwszych pomiarów itd. W kolumnach : kolumna 1 – pomiar 1, kolumna 2 – pomiar 2 itd. Plik q.txt ma identyczny format, lecz w komórkach jest podawana wartość kryterium jakości Q (3.3.4) dla odpowiedniego pomiaru. Plik transf.txt zawiera obliczoną macierz transformacji. -5.447E+01,-6.000E+00,1.767E+04,-8.934E+02 -6.158E+00,5.374E+01,-1.058E+04,9.775E+02 4.713E+00,1.414E+00,-8.769E+04,9.534E+02 -2.087E-14,-6.306E-14,0.000E+00,1.000E+00 Pliki wynikowe można wizualizować za pomocą programu gnuplot: Wizualizacja trajektorii robota set grid splot „daner.txt” with linespoints Wizualizacja powierzchni set ticslevel 0.01 set dgrid3d ,,40 set grid set view 30,40,1 splot „nazwa.pliku” with lines

55

Page 56: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

Dodatek B Analiza obrazu [1]

Podstawowymi problemami decyzyjnymi w analizie obrazów są klasyfikacja obiektów, określanie ich położenia i orientacji. Rozwiązuje się to poprzez dopasowywanie wzorców i/lub parametryzację obrazów. W wielu przypadkach znalezienie krawędzi obiektów jest wystarczające do analizy.

Do kodowania parametrów stosuje się takie parametry obiektu jak pole powierzchni, długość konturu, współrzędne środka, nachylenie głównej osi, zwartość, wypełnienie sylwetki i inne.

B.1. Detekcja krawędzi obrazu Gradient

Analiza wartości lumiancji obrazów monochromatycznych wykazuje, że istnieniu krawędzi w pewnym miejscu obrazu towarzyszy znaczna zmiana poziomów luminacji w tym obszarze obrazu. Niech funkcja I(p,q) reprezentuje dyskretne wartości luminacji w punkcie obrazu o współrzędnych (p,q). Można założyć, że funkcja luminacji obrazu jest dwuwymiarową funkcją ciągłą I(x,y) - uzyskana np. przez interpolację dyskretnych wartości pikseli w wartości ciągłe. Przy takim założeniu definiujemy wektor gradientu

T

yI

xII

∂∂

∂∂

=∆ , (B.1.1)

Laplasjan Detektorem krawędzi, który charakteryzuje się lepszymi właściwościami izotropowymi (tj. jego odpowiedź mniej zależy od kierunku wykrywanej krawędzi), jest operator Laplace’a zdefiniowany:

2

2

2

22

yI

xII

∂∂

+∂∂

=∇ (B.1.2)

Operator ten jest zwany też detektorem przejść przez zero – w przypadku istnienia dużego gradientu luminacji obrazu laplasjan wykazuje dwa ekstrema o przeciwnych znakach, a między nimi przechodzi przez zero. Cecha ta ułatwia komputerową detekcję krawędzi – wystarczy sprawdzić przejście przez zero zamiast sprawdzać, czy jest to ekstremum lokalne.

56

Page 57: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

LoG

W przypadku obrazów rzeczywistych, negatywną cechą krawędziowego operatora Laplace’a jest zintensyfikowanie poziomu szumu w obrazie wyjściowym. Jest to spowodowane funkcją transmitancji w dziedzinie częstotliwości tego operatora, która jest proporcjonalna do kwadratu częstotliwości. Dlatego zachodzi konieczność poprzedzenia działania operatora Laplace’a operatorem wygładzającym, takim jak np. filtr gaussowski. Połączenie tych dwóch operatorów zwane jest filtrem typu LoG (ang. Laplacian of Gaussian). Operację połączenia działania tych dwóch operatorów wyraża poniższa zależność:

)*(2 IG∇ (B.1.3) gdzie G(x,y,σ) jest dwuwymiarową funkcją gaussowską wyrażającą się wzorem:

+−

=2

22

222

1)y,(x, σ

πσσ

yx

eG (B.1.4)

W przypadku funkcji ciągłych (B.1.3) można sprowadzić do postaci

IGIG *)*( 22 ∇=∇ (B.1.5) co oznacza połączenie operacji wstępnego wygładzania obrazu z operacją Laplace’a w jeden operator, a następnie zastosowanie tego operatora do wejściowego obrazu I w celu ekstrakcji krawędzi. Złożenie przekształcenia (B.1.4) z operatorem Lapace’a (B.1.5) prowadzi do nowego operatora w postaci:

+−

+−−=∇

2

22

22

22

42 2

21)y,(x, σ

σπσσ

yx

eyxG (B.1.6)

57

Page 58: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

B.2. Implementacje metod Filtracje logiczne Filtracje logiczne polegają na sprawdzeniu wartości wyrażenia logicznego opisującego pewne związki, zachodzące pomiędzy punktami z dowolnie wybranego sąsiedztwa analizowanego punktu. Najczęściej jako otoczenie są wybiera cztery punkty z punktem centralnym.

a b c d e f ośmiospójne g h i

b d e f czterospójne h

Odszumianie (usuwanie punktów izolowanych) e’ = ((b ∧ d ∧ f ∧ h) ∨ e) ∧ (b ∨ d ∨ f ∨ h) e’ = ((a ∧b ∧c ∧ d ∧ f ∧ g ∧ h ∧ i) ∨ e)^(a ∨ b ∨ c ∨ d ∨ f ∨ g ∨ h ∨ i) Rozszerzanie (dylacja) e’= b ∨ d ∨ e ∨ f ∨ h e’ = a ∨ b ∨ c ∨ d ∨ e ∨ f ∨ g ∨ h ∨ i Zwężanie (erozja) e’ = b ∧ d ∧ e ∧ f ∧ h e’ = a ∧ b ∧ c ∧ d ∧ e ∧ f ∧ g ∧ h ∧ i Kontur e’= :(b ∧ d ∧ f ∧ h) ∧ e e’ = :(a ∧ b ∧ c ∧ d ∧ f ∧ g ∧ h ∧ i) ∧ e Metody konwolucyjne Metody konwolucyjne, uwzględniające pewne otoczenie rozważanego punktu o współrzędnych x, y. Równanie opisujące relację pomiędzy obrazem oryginalnym f(x,y) a przefiltrowanym g(x,y) ma w tym przypadku postać: g (x, y) = w1f(x-1,y-1) + w2f(x-1,y) + w3f(x-1,y+1) + w4f(x,y-1) + w5f(x,y) + w6f(x,y+1) + w7f(x+1,y-1)+ w8f(x+1,y) + w9f(x+1,y+1) Operacja ta nosi nazwę filtrowania liniowego, a czasami ruchomej średniej, gdyż wartość każdego elementu jest zastępowana ważoną średnią z jego sąsiedztwa. Głównym zadaniem operatora tego typu jest zwykle redukcja szumów. Uogólniona technika użycia sąsiedztwa punktu (x,y ) polega na wydzieleniu podobszaru w kształcie kwadratu lub prostokąta ze środkiem w (x,y). Elementy obrazu zawarte wewnątrz tego prostokąta są wymnażane przez odpowiednie wartości macierzy W i sumowane.

58

Page 59: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

w1 w2 (x-1,y)

w3 (x-1,y+1)

w4 (x,y+1)

w5 w6 (x,y+1)

w7 (x+1,y-1

w8 (x+1,y)

w9

(x-1,y-1)

(x,y)

(x+1,y+1) Technika ta jest chętnie stosowana do wydobywania różnych aspektów rozważanego obrazu. Naturalnie rodzaj uzyskiwanego odwzorowania zależy od macierzy współczynników w1,... ,w9. Przykładowe maski:

-1 -1 -1 -1 8 -1 Maska do izolowania punktów, które wyraźnie różnią się od tła. -1 -1 -1

1 1 1 1 1 1 Maska służąca do usuwania pojedynczych zakłóceń. 1 1 1

Filtracja medianowa Filtracja medianowa jest filtracją nieliniową. Eliminuje zamazywanie krawędzi i drobnych detali obrazu, przy użyciu filtrów medianowych, w których zamiast średniej wprowadza się medianę wartości pikseli sąsiednich w stosunku do analizowanego punktu. Metoda specjalnego gradientu Krawędź uznana jest za istniejącą, jeśli wartość tego gradientu intensywności w pewnych punktach przekracza ustalony próg. Różne metody w różny sposób przeprowadzają dyskretną aproksymację specjalnego gradientu. Najlepiej znanymi są metody Robertsa i Sobela. Oznaczenie pikseli przy wyznaczaniu krawędzi.

F1 f2 f3 F4 f5 f6 F7 f8 f9

1 0 0 -1

Gradient Robertsa 0 1 1 0

1 2 1 0 0 0 -1 -2 -1

Gradient Sobela 1 0 -1 2 0 -2 1 0 -1

59

Page 60: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

B.3. Aproksymacja krawędzi Transformacja Hougha

Po poddaniu obrazu procesowi detekcji krawędzi można zadać pytanie – czy punkt (x,y) leżący do krawędzi należy też do pewnej prostej? Odpowiedź na to pytanie można uzyskać stosując m.in. transformatę Hougha [8].

Transformacja Hougha (TH) jest metodą detekcji krzywych (a nie zaś punktów krzywych), działa dobrze nawet przy nieciągłości krawędzi i obecności szumów. Zasada działania jest dość prosta – np. dla detekcji prostych: - tworzy się przestrzeń Hougha podzieloną na akumulatory (czyli zdyskretyzowana

płaszczyzna, np. tablica dwuwymiarowa) o bokach a i b , - inkrementuj się wartość tych akumulatorów określanych przez ai i bj, jeśli równanie

y=aix+bj jest spełnione, - parametry wykrytej linii określają współrzędne punktu (o odpowiednio dużej wartości) w

przestrzeni parametrów .

y

xx1 x2

y2

y1

p1p2

b

aa0

b0

p1

y=a0x+b0

y=ax+b

b=-xa2+y2

b=-xa1+y1

Rys. 45. Idea transformacji Hougha.

Można analizować krawędzie korzystając z równania x cos ϕ + y sin ϕ = ρ, wtedy nie trzeba analizować rozpatrywać osobno proste o nachyleniu mniejszym i większym od np. 45o i te o większym zapisywać za pomocą wzoru x = -(y+b)/a. Za to do przestrzeni parametrów zamiast prostych wpisuje się sinusoidy.

),( 111 yxp b baxy += 11 11 yax +−=),( 222 yxp y bax += 22 22 yaxb +−=

),( 00 ba 00 bxay +=

+=+=

0202

0101

bxaybxay

Podobnie można postąpić poszukując okręgów o zadanych średnicach – dla w przestrzeni Hougha inkrementujemy te akumulatory, które spełniają równanie okręgu dla danego punktu, czyli de facto rysujemy okręgi wokół każdego punktu niezerowego. Odpowiednio duża wartość poszczególnych akumulatorów oznacza środek okręgu.

Można to rozwinąć do przypadku, gdy nie znamy średnicy okręgu. Wtedy przestrzeń Hougha jest trójwymiarowa – w płaszczyznach x, y ze wzrostem z wpisywane będą okręgi o większych średnicach.

60

Page 61: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~mw/Stud/Dypl/mduch/Praca.pdf · w Laboratorium Robotyki ICT robota IRB 1400 ze zbudowanym wcześniej systemem

7 Literatura:

[1] Bogusław Cyganek : Komputerowe przetwarzanie obrazów trójwymiarowych, EXIT, Warszawa 2002.

[2] Bogdan Kreczmer, Marek Wnuk, Andrzej Wołczowski: Metody rekonstrukcji sceny robota, raport ICT 41/98, Wyd. PWr , Wrocław 1998.

[3] Robert Pawlik : Geometryczna kalibracja układu robot – system wizyjny, raport z serii sprawozdania nr 12/95.

[4] Ryszard Tadeusiewicz : Systemy wizyjne robotów przemysłowych.

[5] Marek Wnuk: Współpraca sterownika robota z systemem wizyjnym – architektura systemu rozproszonego, raport ICT 29/95, Wyd. PWr, Wrocław 1995.

[6] Arkadiusz Ziobrowski : Rozproszony system sterowania robotem – system wizyjny, praca dyplomowa ICT PWr, Wrocław 1995.

[7] RAPID Reference Manual, instrukcja robota IRB1400.

[8] Rosenfeld A., Kak A. C. : Digital Picture Processing, Academic Press, New York, 1982.

61