Zwiększ elastyczność aplikacji z systemem wizyjnym

19.08.2021 Informacje produktowe / Robotyzacja
cobot Universal Robots, kamera Robotiq
Wizerunek autora
Wiktor Susfał Były pracownik Elmark Automatyka S.A.
Producent: Universal Robots
  • Zakłady przemysłowe

 

Po co stosować systemy wizyjne? 

W znacznej części aplikacji robotyki systemy wizyjne nie są niezbędne. Jeśli posiadamy stanowisko, gdzie zarówno robot, jak i wszystkie detale oraz narzędzia są w każdej chwili dokładnie spozycjonowane, dynamiczne wykrywanie ich położenia w każdym cyklu przestaje mieć uzasadnienie. Można przecież zastosować zestaw czujników optycznych informujących o znalezieniu się detalu w określonej pozycji na stanowisku, a następnie wymusić ruch robota do tego z góry znanego punktu dojazdowego. 

Problemy zaczynają się natomiast gdy takie dokładne spozycjonowanie detali przestaje być możliwe. Przykładem mogą być sytuacje, gdy:

  • maszyna produkująca detale działa tak, że partia wychodząca jest ułożona zawsze w losowy sposób, 
  • dobudowanie elementów pozycjonujących jest niemożliwe i wymagałoby przeprojektowania całego stanowiska,
  • robot obsługuje lub przemieszcza się na autonomicznym wózku samojezdnym.  

Dodatkowym polem do zastosowań systemów wizyjnych są aplikacje kontroli jakości. W aplikacjach takich każdy produkowany element może być tak samo spozycjonowany, a różnić się tylko małymi szczegółami budowy. Zadaniem robota jest wtedy rozpoznanie, które elementy spełniają założenia produkcji i wyodrębnienie z tej grupy tych wadliwych. 

Bez systemów wizyjnych, wdrożenie dwóch powyższych przykładów aplikacji byłoby niemożliwe lub bardzo trudne. Przy projektowaniu powtarzalnych i niezawodnych aplikacji należy przecież dążyć do jak największego ich upraszczania. 

 

Co mogę osiągnąć z systemem wizyjnym? 

Pisząc ten artykuł, posiłkujemy się dwoma przykładowymi systemami wizyjnymi, w pełni kompatybilnymi z cobotami Universal Robots, są to:

Wzorując się na ofercie tych producentów, przybliżymy najbardziej przydatne ich funckje.  

 

Rozpoznawanie określonych detali

Jedną z najbardziej podstawowych funkcjonalności kamer dla robotów jest rozpoznawanie detali. W dużym uproszczeniu - musimy "nauczyć" system wizyjny tego, jakich detali ma się spodziewać. Po skończonym procesie uczenia kamera będzie w stanie odróżnić docelowe detale od innych, które z jakichś powodów znalazły się w polu widzenia. 

Jeśli chodzi o system OnRobot Eyes, to proces uczenia może przebiegać na podstawie:

  • cech obrysu detalu (jeśli jego cechy wewnętrzne nie są dla nas istotne - detale będą rozpoznawane tylko przez kształt zewnętrznych krawędzi),
  • cech wewnątrz obrysu detalu (bardzo przydatne, jeśli np. kilka detali styka się ze sobą krawędziami),
  • rozmiaru oraz koloru detali.

 

Producent Robotiq zaproponował proces uczenia detalu na podstawie:

  • jego charakterystycznych wymiarów - tzw. metoda parametryczna - kiedy kształt detalu to tak naprawdę prosta bryła geometryczna,
  • automatycznej detekcji - kiedy to kładziemy detal w polu widzenia kamery, zaznaczamy obszar, na którym znajduje się tylko on i pozwalamy systemowi wizyjnemu na automatyczne jego rozpoznanie,
  • zewnętrznych plików z programów CAD, zawierających model detalu. 

 

Po nauczeniu określonego rodzaju detalu, w programie robota można używać funkcji do wykrywania położenia docelowych elementów w otoczeniu robota. Przy każdorazowym wywołaniu takiej funkcji, kamera wykona zdjęcie w z góry zdefiniowanej pozycji ramienia robota, a następnie zdjęcie to zostanie przetworzone w celu wyodrębnienia z niego współrzędnych położenia pożądanych detali.

Mając te współrzędne, możemy już zaprogramować dowolny ruch robota względem nich. Co więcej, wyżej wymienieni producenci przygotowali funkcje pozwalające na automatyczne generowanie ruchów cobota w celu pobierania wykrywanych detali.

 

Landmarks - sposób na reorientację robota w zmiennym otoczeniu

Kolejnym wyzwaniem dla aplikacji robotyki może być nie tylko sama zmienność położenia detali na stanowisku roboczym, ale także zmienność samego stanowiska. Może to się wydarzyć np. wtedy, gdy robot obsługuje lub porusza się na autonomicznym wózku samojezdnym (AGV). 

Jeśli robot ma za zadanie paletyzować określone detale na taki wózek, a wózek ten zatrzyma się w nieco innym położeniu/orientacji przy robocie, może okazać się, że dokładna paletyzacja może być niemożliwa - np. poprzez upuszczenie detalu poza obszarem odkładania. 

Dzięki specjalnym znacznikom - tzw. "Landmark" - oraz systemom wizyjnym przestaje to być problemem. Znacznik to nic innego jak określony wycinek szachownicy, który musi być przymocowany na stałe do charakterystycznego elementu stanowiska, którego położenie jest kluczowe dla aplikacji - np. do narożnika wózka AGV. 

W każdym cyklu programu robot może najpierw "szukać" tego znacznika w swojej przestrzeni roboczej, a następnie dostosowywać wszystkie inne ruchy do jego położenia. Programowanie ruchów robota odbywa się w układzie związanym właśnie z tym znacznikiem. Dzięki temu nawet jeśli stanowisko przemieści się względem robota, to po odnalezieniu znacznika będzie on nadal mógł dokładnie odtworzyć wszystkie ruchy względem przestrzeni roboczej. 

Oczywiście wszystko ma się tak samo do sytuacji, gdy robot przemieszcza się na wózku samojezdnym, a znacznik jest przymocowany do narożnika nieruchomego stołu roboczego. 

 

Wspomniana funkcjonalność jest dostępna zarówno w systemie OnRobot Eyes, jaki i Robotiq Wrist Camera. 

 

Skanowanie kodów kreskowych i QR

Producent RobotiQ wprowadził w swoim systemie również możliwość skanowania kodów kreskowych oraz QR. Robot może wykryć położenie detalu, przybliżyć do niego obiektyw kamery, a następnie zczytać kod, którym ten detal jest oznakowany. 

Zakodowany ciąg znaków jest dostępny jako zmienna w programie robota, więc może od posłużyć do budowania warunków logicznych na dalsze działanie aplikacji. W zależności od zawartości kodu QR robot może np. segregować detale na różne palety. 

Wrist Camera obsłuży większość najpopularniejszych kodów stosowanych w przemyśle, więc może być bardzo użyteczna w aplikacjach wykorzystujących takie znakowanie. 

Kody obsługiwane na ten moment to: Datamatrix, QR, PDF-417, Code 93, EAN-8, EAN-13, ITF-14, UPC-E, UPC-A, Code 39, Code 128.

 

Czy podłączenie systemu wizyjnego to wyzwanie?

Systemy wizyjne składają się najczęściej z dwóch komponentów:

  • kamery (urządzenia z obiektywem) odpowiedzialnej za wykonywanie zdjęć,
  • jednostki obliczeniowej odpowiedzialnej za przetwarzanie obrazu i wykrywanie detali. 

W przypadku OnRobot'a jednostka obliczeniowa to mini-komputer komunikujący się z Control Box'em robota (po Ethernecie) oraz z kamerą (po USB-C). Opcjonalnie można jeszcze podpiąć chwytak OnRobot.

Jeśli chodzi o firmę Robotiq, to wszystkie obliczenia wykonywane są przy pomocy systemu plików zapisanego na pendrive. Oprócz tego potrzebujemy jeszcze tzw. "dongla" (mini-pendrive) z licencją. Wszystko spięte jest za pomocą USB-Hub'a i podłączone do wejścia USB w Control Box'ie robota. Sama kamera również podłączona jest złączem USB do wyżej wspomnianego Hub'a.

Sposób montażu kamery może odbyć się na dwa sposoby - w zależności od danego produktu. Na przykład, kamera OnRobot Eyes może być montowana zarówno na ostatnim przegubie robota, jak poza robotem - w stałym punkcie przestrzeni roboczej. Kamera firmy Robotiq jest przeznaczona wyłącznie do montażu na ramieniu cobota.

Jeśli połączymy wszystkie komponenty, pozostaje nam zainstalować dedykowane sterowniki do oprogramowania samego robota. Takie sterowniki noszą nazwę URCap'ów (większość producentów osprzętu udostępnia takie do obsługi swoich produktów). W tym przypadku URCap'y zapewniają nam dostęp do graficznych funkcji, za pomocą których możemy zbudować program dla robota. Funkcje te pozwalają na interakcję z systemami wizyjnymi. 

Co za tym idzie, cała konfiguracja systemów wizyjnych tych producentów może nastąpić z poziomu Panelu Uczenia robota! Tak jakby robot i system wizyjny wchodziły w skład jednego urządzenia. 

 

Podsumowanie

Obecnie nie jest potrzebna fachowa wiedza z dziedziny rozpoznawania elementów na obrazach, aby móc z sukcesami wdrażać i obsługiwać systemy wizyjne w robotyce. Producenci tacy jak OnRobot czy Robotiq oferują przyjazne użytkownikowi oprogramowanie, które jest w stanie wiele rzeczy wykonać automatycznie ("w tle") i tym samym przyśpieszyć cały proces programowania. 

Oczywiście należy pamiętać, że aplikacje wykorzystujące wizję w robotyce mają swoją specyfikę i można w nich napotkać zupełnie inne trudności niż np. przy ustawianiu zwykłej paletyzacji. Dlatego też należy dokładnie zapoznawać się z zaleceniami dot. obsługi systemów wizyjnych zamieszczanych w ich instrukcjach obsługi.

Jeśli chcesz porozmawiać o możliwościach zastosowania systemów wizyjnych w Twojej aplikacji - napisz do nas na adres: roboty@elmark.com.pl .

 

Zapytaj o audyt

 

 

Skontaktuj się ze specjalistą Elmark

Masz pytania? Potrzebujesz porady? Zadzwoń lub napisz do nas!