Mnogość producentów robotów i producentów systemów wizyjnych sprawia, że można zaobserwować kilka zasadniczych podejść do integracji systemów wizyjnych z robotami. Z jednej strony istnieją rozwiązania uniwersalne, które stały się niemal standardem, jeśli chodzi o wykorzystanie w robotyce przez większość producentów robotów (czego najlepszym przykładem od wielu już lat jest firma COGNEX). Z drugiej, funkcjonują rozwiązania opracowane specjalnie dla tych zadań, rozwijane od podstaw i wspierające tylko jedną platformę sprzętową (jak ma to miejsce w przypadku firmy FANUC). Każda z opcji ma zarówno zalety, jak i wady. Każda narzuca też pewne ograniczenia, których waga uzależniona jest od charakteru danego stanowiska zrobotyzowanego.
Decydując się na wykorzystanie rozwiązania uniwersalnego, użytkownicy otrzymują do dyspozycji bardzo szeroką gamę systemów wizyjnych, inteligentnych kamer i czujników wizyjnych, których parametry można dobierać w sposób adekwatny do realizowanego zadania. Istotne jest w tym momencie, jak bardzo zaawansowanych rozwiązań potrzeba, a także wysokość przeznaczanych na to funduszy. Należy jednak pamiętać, że rozwiązania uniwersalne wymagają znacznie większych nakładów pracy podczas integracji, niż ma to miejsce w przypadku systemów dedykowanych.
Przez ostatnie lata sytuacja w zakresie wykorzystania rozwiązań uniwersalnych znacząco się poprawiła. Stało się tak przede wszystkim ze względu na przygotowanie przez producentów systemów wizyjnych gotowych rozwiązań, ułatwiających konfigurację połączenia pomiędzy elementami systemu wizyjnego a robotem (firma COGNEX opracowała i udostępniła na swoich stronach dokumentację oraz sterowniki pozwalające na łatwą integrację z robotami takich firm, jak ABB, Denso, FANUC, Kawasaki, KUKA, Motoman czy Stäubli, jak również komunikację z robotami Mitsubishi, Adept oraz EPSON). Ponadto proces integracji wsparli producenci robotów, którzy ze swojej strony przygotowali pomoc programistyczną i systemową. Niektóre firmy (np. ABB, YASKAWA Motoman) do tego stopnia wplotły w swoje produkty rozwiązania firmy COGNEX, że jedynie po bliższym zapoznaniu się z rozwiązaniem zintegrowanego systemu wizyjnego można dostrzec fakt, że gdzieś tam w aplikacji drzemie ukryte serce systemu wizyjnego COGNEX (rys. 1). Stopień integracji posunięty jest już tak daleko, że elementy zintegrowanej wizji występują nawet w środowiskach wirtualnych do programowania robotów, jak ma to miejsce w przypadku firmy ABB i udostępnianego przez nią środowiska RobotStudio.
Rys. 1 Kamera systemu wizyjnego COGNEX In-Sight w wersji dla firmy ABB oraz Yaskawa. (Źródło: archiwum autorów)
Inną metodę integracji systemów z robotami stanowi wariant, w którym sterownik systemu wizyjnego jest zintegrowany ze sterownikiem robota, a funkcja kamery sprowadza się jedynie do roli czujnika odczytującego sygnał wizyjny. Rozwiązanie takie pozwala na minimalizację gabarytów kamery oraz wykorzystanie wspólnej pamięci do wymiany danych pomiędzy systemem wizyjnym a systemem sterowania robota. Czujnik wizyjny w tym przypadku stanowi integralny element robota przemysłowego, a informacja pochodząca z niego może być za pośrednictwem sieci przekazywana również do innych robotów, pracujących na danym stanowisku. W tym rozwiązaniu integracja przebiega także w warstwie oprogramowania umożliwiającego programowanie robota w trybie offline. Pozwala to na łatwiejsze zapoznanie się z systemem wizyjnym i dostępnymi narzędziami oraz umożliwia programowanie systemu w jednym wspólnym środowisku.
Rys. 2 System wizyjny od ABB (Źródło: ABB)
Jak już wspomniano, wielu producentów robotów oferuje opcje zapewniające kompletne rozwiązania programowe i sprzętowe, w pełni zintegrowane ze sterownikami robotów (np. ABB z kontrolerem IRC5). W przypadku firmy ABB zintegrowany system wizyjny bazuje na wspomnianej już rodzinie kamer firmy COGNEX (COGNEX In-Sight® 7000 series) z wbudowaną funkcją obróbki obrazu i ethernetowym interfejsem komunikacyjnym.
W środowisku RobotStudio zastosowano aplikację programistyczną z pełną fun-kcjonalnością produktu firmy COGNEX (COGNEX EasyBuilder®). Ponadto język programowania robotów został wyposażony w szereg instrukcji, które wspomagają użytkowników w tworzeniu aplikacji wykorzystujących informację wizyjną.
Rys. 3. Konfiguracja zintegrowanego systemu wizyjnego firmy ABB – widok na panelu FlexPendant. (Źródło: archiwum autorów)
Firma FANUC jako jedna z niewielu dostrzegła potrzebę podjęcia własnych prac, mających na celu opracowanie specjalnego systemu wizyjnego dla swoich robotów. Pierwsze rozwiązanie pojawiło się w roku 1998. Realizowane było w oparciu o zewnętrzne stanowisko komputerowe, na którym odbywały się wszelkie operacje związane z obróbką obrazu i przygotowaniem danych dla robota. W kolejnych wersjach wszystkie operacje związane z działaniem systemu wizyjnego – z wyjątkiem samego procesu programowania realizowanego na zewnętrznym komputerze PC za pośrednictwem sieci Ethernet – odbywały się na platformie sterownika robota. W wersji tej, dostępnej do 2006 r., system obsługiwał jedynie wizję 2D. W kolejnych wersjach pojawiły się zarówno nowe narzędzia, jak i elementy związane z wizją 2,5D oraz 3D.
Rys. 12. Elementy systemu wizyjnego iRVision firmy FANUC na stanowisku spawalniczym, wykorzystywane do lokalizacji punktu położenia spawu oraz do inspekcji stanu palnika. (Źródło: archiwum autorów)
Ostatnie zmiany głównych rozwiązań zintegrowanego systemu wizyjnego związane były z wprowadzeniem nowej rodziny kontrolerów R30iB, co dzięki większej mocy obliczeniowej umożliwiło pełne przeniesienie wszystkich operacji związanych z obsługą i działaniem systemu wizyjnego na kontroler robota. Nowością było też wprowadzenie systemu wizyjnego do wirtualnego środowiska programowania robotów, jakim w tym przypadku był Roboguide, co pozwoliło na naukę programowania systemu wizyjnego w trybie offline. Niestety, aby skorzystać z tej opcji, konieczne jest dokupienie dodatkowej licencji do Roboguide, udostępniającej obsługę kamer systemu wizyjnego.
W przypadku robotów FANUC poziom integracji elementów systemu wizyjnego jest bardzo zaawansowany – zarówno od strony sprzętowej, jak i programowej. Kupując nowego robota, ma się już standardowo zintegrowany z kontrolerem robota moduł wizyjny. Aby go uruchomić, konieczne jest dogranie odpowiedniego oprogramowania oraz podpięcie kamery za pomocą specjalnego przewodu. Standardowo kontroler ma jedno gniazdo do podłączenia kamery, jednak gdy trzeba zastosować większą liczbę kamer, korzysta się z modułu multipleksera umożliwiającego rozbudowę o kolejne egzemplarze. W przypadku współpracy kilku robotów istnieje możliwość współdzielenia informacji pomiędzy poszczególnymi robotami i ich systemami wizyjnymi, co jest często wykorzystywane w operacjach sortowania.
W jednej aplikacji można również łączyć kilka kamer – w przypadku dużych detali lub konieczności zapewnienia wielu kierunków obserwacji albo realizacji kilku różnych procesów wizyjnych na jednym stanowisku. Przykładem takiego rozwiązania może być przedstawione na rys.12 stanowisko spawalnicze, gdzie jedna kamera jest wykorzystywana w procesie lokalizacji miejsca spawu, a druga służy do inspekcji stanu palnika.
Od strony programowej poziom integracji jest również bardzo zaawansowany. W większości systemów wizyjnych zintegrowanych z robotami przemysłowymi, aby móc wykorzystać dane z tego systemu, konieczne jest przekazywanie informacji, np. o położeniu detali w przestrzeni roboczej, do zmiennych robota. W przypadku robotów FANUC przygotowano w tym celu specjalne rejestry (Vision Register), które pozwalają na zapisywanie do nich informacji z systemu wizyjnego. Dzięki temu, programując robota, nie trzeba dbać o format przesłanych danych czy o ich odpowiednie umiejscowienie w pamięci sterownika. Wystarczy, że podczas procesu przygotowania wskaże się, gdzie mają się znaleźć dane, po czym informacje te są odczytywane z rejestrów wizyjnych.
Rys. 13. System wizyjny iRVision firmy FANUC. (Źródło: FANUC)
Rozwiązanie opracowane przez firmę FANUC jest zdecydowanie najbardziej zaawansowane, jeśli chodzi o poziom integracji robota i systemu wizyjnego. Zakres oferowanych funkcji również wygląda imponująco – poczynając od prostej lokalizacji 2D i 2,5D, przez śledzenie obiektów w ruchu i współdzielenie informacji w sieci pomiędzy robotami w operacjach, np. pick & place, a kończąc na systemach 3D, z uwzględnieniem najbardziej zaawansowanych rozwiązań, pozwalających na pobieranie nieuporządkowanych elementów z pojemników, gdzie wykorzystuje się zaawansowane moduły czujników 3D Area Sensor. Zintegrowanie rozwiązania na poziomie sprzętowym i programowym pozwala na znaczące odciążenie programisty na etapie przygotowania aplikacji dla zrobotyzowanego stanowiska.
Najnowszym rozwiązaniem, zaprezentowanym w 2016 r., jest opcja programowa, w której wykorzystano elementy sztucznej inteligencji (sieci neuronowe) w procesie uczenia rozpoznawania. Co ciekawe, umożliwia to rozproszone przetwarzanie informacji przez system, wskutek czego, zgodnie z informacjami podawanymi przez producenta, jeden robot jest w stanie nauczyć się rozpoznawać obiekty w osiem godzin, a grupa ośmiu robotów realizuje ten proces zaledwie w godzinę – dzięki wymianie informacji pomiędzy kontrolerami.
Proces konfiguracji systemu wizyjnego iRVision całkowicie wplótł się w opcje programowe sterownika. Korzystając z panelu TeachPendant, można nie tylko podglądać rezultaty działania systemu, ale też w pełni go kontrolować i wizualizować, z wykorzystaniem m.in. opcji 4D Graphic.
Rys. 14. Konfiguracja iRVision wyświetlana na panelu TeachPendant dzięki opcji 4D Graphic firmy FANUC. (Źródło: FANUC)
Gdy dokonujemy przeglądu oferowanych obecnie produktów, określenie „zintegrowany system wizyjny” wydaje się nabierać zupełnie nowego znaczenia. W wielu przypadkach integracja oznacza już bowiem nie tylko przesyłanie informacji z kamery inteligentnej czy stacji graficznej realizującej operacje związane z przetwarzaniem obrazu i wydobywaniem z nich informacji istotnych z punktu widzenia danego procesu technologicznego. Jak pokazują zaprezentowane przykłady, integracja oznacza także pełne wsparcie ze strony producenta robotów, który dba o to, aby użytkownik nie widział granicy, gdzie kończy się programowanie systemu wizyjnego, a gdzie zaczyna programowanie robota.
Nie oznacza to bynajmniej, że jedyną słuszną drogą pozostaje rozwiązanie łączące produkcję w jednym miejscu zarówno robotów, jak i zintegrowanych systemów wizyjnych. Bardzo dobrym przykładem jest bowiem oferta, która, korzystając z rozwiązań najpopularniejszego dostawcy systemów wizyjnych dla robotyki – firmy COGNEX, rozbudowała swój system w taki sposób, że z punktu widzenia zwykłego użytkownika nie sposób dostrzec granicy odpowiedzialności producenta robota i systemu wizyjnego.
W dobie postępującej robotyzacji same systemy wizyjne stają się już nieodzowne w wielu aplikacjach. Zastępują człowieka nie tylko tam, gdzie panują trudne warunki, ale również tam, gdzie wymagane są wysoka precyzja i powtarzalność, przy zachowaniu gotowości do dynamicznej zmiany produkcji – a więc gdzie konieczne staje się zapewnienie częściowej autonomiczności stanowisk zrobotyzowanych. Aby to uzyskać, roboty muszą zacząć „czuć” i „widzieć” elementy, którymi będą operowały. Trudno jest bowiem, przy konieczności zapewnienia dynamicznej produkcji, co chwilę przebudowywać stanowisko. Korzystając ze zintegrowanego systemu wizyjnego, można użyć większości osprzętu stanowiska, unikając przebudowy elementów pozycjonujących obrabiane detale.
Kolejnym obszarem, w którym systemy wizyjne z całą pewnością okażą się nieodzowne, są stanowiska z robotami kolaboracyjnymi. Tam bowiem robot w sposób „miękki” musi wejść w inter-akcję z pracownikiem, a trudno sobie wyobrazić tego rodzaju współpracę człowieka ze „ślepym robotem”…
Autorzy:
Jarosław Panasiuk jest adiunktem w Katedrze Mechatroniki na Wydziale Mechatroniki i Lotnictwa Wojskowej Akademii Technicznej. Zajmuje się m.in. modelowaniem układów robotyki, programowaniem robotów przemysłowych, sieciami neuronowymi, analizą obrazu oraz modelowaniem matematycznym.
Wojciech Kaczmarek jest kierownikiem Zespołu Mechatroniki na Wydziale Mechatroniki i Lotnictwa Wojskowej Akademii Technicznej. Zajmuje się m.in. modelowaniem układów robotyki, programowaniem robotów przemysłowych oraz satelitarnymi systemami nawigacji.
Tekst pochodzi z nr 6/2016 magazynu Control Engineering.