• Nie Znaleziono Wyników

Podczas projektowania systemu wizyjnego zakładano, że położenie spawanego wymien-nika ciepła znane jest z pewnym niewielkim błędem. Oznacza to, że robot przed przystą-pieniem do spawania otworów musi za pomocą systemu wizyjnego wstępnie wyznaczyć położenie i geometrię spawanego sita.

Wykorzystując systemy wizyjne, postawiony cel możemy zrealizować na wiele spo-sobów. Naturalnym, choć nie najdokładniejszym, podejściem jest wykorzystanie ste-reowizji w celu wyznaczenia odległości interesujących nas obiektów od obu kamer [65].

Odległość obiektu od kamery można również oszacować na podstawie rozmiaru i geo-metrii obiektu na obrazie [18], [65]. Przykładowo, do wyznaczenia położenia skrzynek, kartonów i innych przedmiotów o regularnych kształtach, wykorzystuje się informacje o znanej relacji występującej pomiędzy punktami i krawędziami (liniami) oglądanego obiektu [1]. Położenie przedmiotu w przestrzeni możemy również wyznaczyć wykonując szereg zdjęć z różnych ujęć a następnie konfrontując je ze sobą [12], [65] lub porów-nując wykonane zdjęcie z wcześniej utworzonym zestawem obrazów, wykonanych dla różnego położenia obiektu [92]. W opisywanym systemie wizyjnym skoncentrowano się na zagadnieniu wyznaczenia położenia spawanego sita w roboczym układzie współ-rzędnych robotaR na podstawie informacji pochodzących z kamery oraz z laserowego, triangulacyjnego czujnika odległości. Wyposażenie systemu w czujnik odległości umoż-liwia spawanie wymienników ciepła serii PG o geometrii wklęsłego i wypukłego stożka [24] (rys. 4.2). W przypadku sit płaskich, możliwe jest wprowadzenie korekty położenia płaszczyzny sita.

Rysunek 4.2: System wizyjny wyznaczający położenie spawanych otworów, spawanie wymienników ciepła w kształcie stożka (lewe zdjęcie stożek wklęsły, prawe zdjęcie -stożek wypukły).

Ponieważ wstępne rozpoznawanie sit o kształcie stożka jest bardziej złożone od roz-poznawania sit płaskich, przedstawiona na rysunku 4.3 procedura wstępnego rozpozna-wania sita dotyczy sit o geometrii stożka. W przypadku sit płaskich, do znalezionych punktów leżących na sicie, dopasowywane są parametry modelu płaszczyzny. Pierw-szym etapem rozpoznawania spawanego sita jest wykonanie jednego lub kilku zdjęć sita z odległości zapewniającej odpowiednie pole widzenia kamery (uchwycenie na ob-razie minimum kilkunastu otworów). Oś widzenia kamery jest ustawiona prostopadle do przewidywanej płaszczyzny płaskiego sita lub płaszczyzny podstawy stożka. Układ współrzędnych robota R zdefiniowany jest w taki sposób, aby środek układu wypadał w środku przewidywanego położenia spawanego sita. Płaszczyzna x−y była równoległa do płaszczyzny sita a oś z była skierowana wgłąb sita. W przypadku sita w kształcie stożka, płaszczyzna x− y układu współrzędnych R jest prostopadła do płaszczyzny podstawy stożka, oś z jest równoległa do osi symetrii stożka i jest skierowana wgłąb sita. Początek układu współrzędnych wypada w przewidywanym położeniu wierzchołka stożka. Oznacza to, że podczas wykonywania zdjęć globalnych (wykonywanych podczas wstępnego rozpoznawania sita), oś z układu współrzędnych kameryKk jest równoległa do osi z roboczego układu współrzędnych robota R, gdzie k oznacza numer zdjęcia.

Zazwyczaj osie x i y układów kamery i robota są równoległe do siebie.

Przykładowy obraz uzyskany podczas rozpoznawania globalnego dla sit typu B (sita płaskie) przedstawiony jest na rysunku 4.4. Po lewej stronie widzimy oryginalny obraz, po prawej obraz przetworzony z zaznaczonymi otworami (napis OK). Procedury prze-twarzania obrazu i identyfikacji otworów na obrazie opisane są szerzej w rozdziale 5.

Wraz z poleceniem wykonania k-tego zdjęcia, komputer sterujący robotem wysyła do komputera PC, realizującego przetwarzanie obrazu oraz pomiar odległości, informację o położeniu kamery (układ współrzędnychRKk) w układzie współrzędnych robota R.

Znając położenie kamery możliwe jest przeliczenie współrzędnych otworów znalezionych na zdjęciu na ich współrzędne w układzie robotaR. W wyniku przeprowadzenia operacji przetwarzania obrazu otrzymujemy wektor punktówJPoi(k), reprezentujących położenie znalezionych na obrazie otworów, gdzieJ oznacza układ współrzędnych obrazu, k numer zdjęcia, i numer znalezionego otworu na k-tym zdjęciu.

Rysunek 4.3: Operacje wykonywane podczas rozpoznawania spawanego sita.

Rysunek 4.4: Przykładowe zdjęcie otrzymane na etapie wstępnego rozpoznawania wy-miennika ciepła, zdjęcie po prawej stronie zawiera wynik przetwarzania obrazu - znale-zione otwory.

Wykorzystywany jest model otworkowy kamery (ang. pinhole camera model ). W mo-delu tym promienie świetlne, tworzące obraz obserwowanego obiektu na matrycy ka-mery, przechodzą przez środek układu optycznego, reprezentującego obiektyw kamery (tzw. pinhole). Z każdym punktem obrazu, leżącym na matrycy kamery, związana jest półprosta przechodząca przez punkt pinhole, łącząca punkt leżący na matrycy z odpo-wiadającym mu punktem obserwowanego obiektu. Punkt pinhole stanowi wierzchołek ostrosłupa widzenia kamery. W przypadku gdy kamera umieszczona jest prostopadle do obserwowanej płaszczyzny na wysokości d (oś optyczna kamery jest prostopadła do obserwowanej płaszczyzny), możemy powiedzieć, że pole widzenia kamery tworzy ostro-słup czworokątny o podstawie prostokąta, w którym oś optyczna kamery jest wysokością ostrosłupa a obserwowana płaszczyzna jego podstawą. W układzie współrzędnych otwo-ru (oraz podstawy ostrosłupa), współrzędne wszystkich punktów widzianych na obrazie przyjmują składową z = 0. Wyznaczając współrzędne przecięcia półprostej związanej z danym pikselem obrazu z płaszczyzną x− y (współrzędna z=0) określamy położenie badanego punktu (otworu) w układzie współrzędnych sita.

Korzystając z informacji o położeniu kamery w trakcie wykonywania zdjęcia (układ współrzędnychRKk) wyznaczane jest położenie punktu przecięcia półprostej, związanej z położeniem i-tego otworu na obrazie, z płaszczyzną x− y układu współrzędnych R.

W ten sposób otrzymujemy zbiór punktówRPoi(k). Ponieważ nie znamy jeszcze dokład-nego położenia spawadokład-nego sita, uzyskane współrzędne nie są dokładne.

W pierwszej wersji systemu [19], identyfikacja położenia wszystkich otworów wyma-gała wykonania kilku częściowo nakładających się zdjęć spawanej płyty. Współrzędne obrazu znalezionych otworów przesyłane były do robota, gdzie wyznaczane było poło-żenie otworów w układzie współrzędnych robota. Eliminowane były powtarzające się otwory (znalezione na dwóch, trzech lub czterech przylegających zdjęciach). Pozostałe otwory przechodziły do etapu rozpoznawania lokalnego i spawania. Przeniesienie obli-czeń związanych z wyznaczeniem rzeczywistych współrzędnych otworów na komputer PC, pozwoliło znacznie przyspieszyć proces eliminacji powtarzających się otworów oraz zaimplementować, opisany dalej, algorytm dopasowania położenia wzorca sita do zna-lezionych otworów.

Gdyby proces spawania otworów realizowany był bezpośrednio na podstawie listy znalezionych otworów, część otworów mogłaby zostać pominięta (np. gdyby podczas rozpoznawania globalnego dany otwór nie został na zdjęciu znaleziony) lub system pró-bowałby znaleźć otwór tam, gdzie go nie ma. Dziej się tak, gdy zakłócenie na otrzy-manym obrazie jest interpretowane jako otwór. Konieczne jest również wykonanie zdjęć całego sita w celu znalezienia wszystkich otworów. Wprowadzenie dopasowania otworów do wzorca sita pozwala wykonać mniejszą liczbę zdjęć. Na przykład dla wymienników ciepła serii PG (o otworach rozchodzących się koncentrycznie od środka sita, rys. 4.5), do znalezienia położenia wszystkich otworów wystarczy jedynie wykonać zdjęcie środka sita. Ponieważ do robota przesyłane są informacje pochodzące z wzorca sita, zawsze wysyłana jest właściwa liczba i rozmieszczenie otworów. System wizyjny jest odporny na błędy związane z niewłaściwym wykryciem kilku otworów (brak wykrycia otworu lub jego fałszywe wykrycie) w procesie wstępnego rozpoznawania sita.

W wyniku eliminacji powtarzających się otworów, otrzymujemy zbiór punktówRPoi

przechowujący położenie znalezionych otworów, gdzie i oznacza numer otworu, bez po-działu otworów na poszczególne zdjęcia. PunktyRPoi służą do dopasowania wzorca sita do zbioru znalezionych otworów. Wzorzec sita, widoczny na rysunku 4.5, prócz położe-nia otworów oznaczonych za pomocą podłużnych, zaokrąglonych prostokątów (punkty

WsQi, gdzie i jest numerem otworu wzorca sita, określają położenie środka pokaza-nych otworów), zawiera informacje o położeniu punktów pomiaru odległości oznaczo-nych ukośnymi krzyżykami. Położenie wszystkich obiektów we wzorcu sita jest podane w lokalnym układzie wzorca Ws, którego początek w przypadku wzorca pokazanego na rysunku 4.5 wypada w środku sita (narysowane osie x i y związane są z układem

R y

x

Rysunek 4.5: Wzorzec sita dopasowany do znalezionych otworów - ciemne koła.

współrzędnychR). Za pomocą ciemniejszych, okrągłych kółek oznaczone jest położenie znalezionych otworów (punkty RPoi określają położenie środka pokazanych okręgów).

Jak widać na powyższym rysunku, w celu określenia położenia sita w układzie robota R nie jest konieczne wyznaczenie położenia wszystkich otworów sita.

Oprócz położenia otworów, wzorzec sita zawiera informacje o położeniu punktów pomiaru odległościWSi, gdzie i jest kolejnym numerem pomiaru. Po dopasowaniu zna-lezionych otworów do wzorca sita, do robota przesyłana jest tablica współrzędnych punktówRSit(po przeliczeniu na układ współrzędnychR). Rozmiar zbioruRSitwynosi najczęściej od 8 do 12 punktów. Dla każdego punktu pomiarowego, robot ustawia czuj-nik odległości dokładnie nad zadanym miejscem pomiaru i wysyła położenie czujczuj-nika do komputera PC. Po odczytaniu odległości wskazywanej przez czujnik, wyznaczane jest położenie punktu RSi leżącego na powierzchni spawanego sita. Parametr Ns oznacza rozmiar zbioru RSi. Jeżeli dany punkt nie zostanie znaleziony (np. gdy wypadł nad otworem), sprawdzane są punkty leżące obok, tak długo aż uzyskany zostanie prawidło-wy odczyt odległości.

Uzyskany zbiór punktów RSi służy następnie do wyznaczenia parametrów stożka opisującego geometrię spawanego sita lub położenia powierzchni sita w przypadku sit płaskich. Opis algorytmu dopasowania parametrów stożka do znalezionych punktów opisany jest w rozdziale 4.4. Po wyznaczeniu geometrii stożka, ponownie przeliczane jest położenie znalezionych na zdjęciach otworów na układ współrzędnych spawanego sita (uwzględniając zapamiętane położenie kamery oraz współrzędne otworów na obrazie).

Następnie dopasowuje się wzorzec sita do nowo wyznaczonych współrzędnych otworów.

Ostatnim etapem rozpoznawania spawanego sita jest wyznaczenie i przesłanie do robota lokalnych układów współrzędnych wszystkich otworów wzorca sita. Układy te leżą na powierzchni stożka.

Dopasowanie wzorca sita do znalezionych otworów

Dopasowanie wzorca sita do znalezionych otworów polega na wyznaczeniu wektora transformacji wzorca sita Xg, minimalizującego funkcję kryterium Jg(Xg,RPoi,WsQi), określającą stopień dopasowania wzorca sita WsQi do wyznaczonego położenia znale-zionych otworówRPoi. Wektor transformacji wzorca sita zdefiniowany jest następująco:

Xg = [xg, yg, αg, kxy g]T, (4.1)

gdzie xg i yg jest położeniem środka wzorca sita w układzie R, αg jest kątem obrotu wzorca wokół początku lokalnego układu współrzędnych wzorcaWs a kxy g jest współ-czynnikiem zmiany rozmiaru wzorca (jednocześnie skalowane jest położenie otworów w układzie wzorca w osi x i y).

Ponieważ wykorzystywana postać funkcji kryterium Jg(Xg,RPoi,WsQi) jest bardzo złożona, nie wszystkie składniki funkcji Jg(·) zostaną opisane. Najważniejszym składni-kiem kryterium jest suma odległości punktówRPoi, reprezentujących znalezione otwory, do punktówWsQi, reprezentujących otwory wzorca sita.

Jg(Xg,RPoi,WsQi) =

gdzie NPo jest liczbą znalezionych otworów (rozmiar zbioru punktów RPoi), Dg(·) jest minimalną odległością k-tego, znalezionego punktu (RPok) od wzorca sita. Wektor punk-tów RQi = (Rxg i,Ryg i) tworzony jest z wektora punktów WsQi = (Wsxg i,Wsyg i) po przeliczeniu położenia otworów wzorca sita z lokalnego układu współrzędnych wzorca Ws na układ współrzędnych robota R. Do tego celu wykorzystuje się wektor transfor-macji Xg.

Funkcja Dg(·) zdefiniowana jest następująco:

Dg

(Xg,RPk,WsQi

)

= min

i∈{1,...,NPo}D(RPk,RQi), (4.4) gdzie D(·) oznacza euklidesową odległość między punktamiRPkiRQi. Pozostałe skład-niki kryterium Jg(Xg,RPoi,WsQi) związane są między innymi z uwzględnieniem orienta-cji znalezionych otworów, zmianą rozmiaru wzorca, zabezpieczeniem przed nadmiernym obrotem wzorca sita. Ostatni punkt odnosi się do sytuacji, gdy wzorzec sita posia-da kilka równoważnych orientacji kątowych. W takich sytuacjach umożliwia się obrót wzorca sita w ograniczonym zakresie kąta. Dla przykładu, wzorzec sita przedstawiony na rysunku 4.5 posiada siedem równoważnych orientacji kątowych.

Dopasowanie wzorca sita do znalezionych otworówRPoisprowadza się do znalezienia wektora transformacji Xg opt, dla którego funkcja kryterium Jg(·) przyjmuje wartość minimalną. Minimalizacja funkcji realizowana jest za pomocą bezgradientowej metody szukania minimum funkcji Hooke’a-Jeevesa, opisanej w dodatku A.

4.3 Rozpoznawanie lokalne otworu i wyznaczanie