Środowisko programowania robotów Visual Components

Wirtualne środowiska do programowania robotów przemysłowych są obecnie oferowane przez praktycznie wszystkich producentów robotów. W czwartym odcinku naszego redakcyjnego cyklu prezentujemy pakiet Visual Components.
Środowisko Visual Components jest przeznaczone do projektowania, modelowania i symulacji pracy stanowisk zrobotyzowanych. Różni się znacząco od środowisk producentów takich robotów, jak prezentowane w poprzednich odcinkach naszego cyklu Robot Studio firmy ABB czy Roboguide firmy FANUC. Visual Components wyróżnia przede wszystkim niespotykana uniwersalność, o której świadczy możliwość symulowania w nim pracy robotów i maszyn różnych firm (w przypadku stanowisk zrobotyzowanych użytkownik ma do dyspozycji blisko tysiąc robotów ponad trzydziestu producentów) – a nie tylko jednego producenta.

Celowo należy tu użyć słowa „symulować”, ponieważ z założenia jest to środowisko przede wszystkim do modelowania i symulacji systemów produkcyjnych (a nawet całych fabryk), wykorzystujących takie elementy, jak roboty, przenośniki, maszyny specjalistyczne (np. obrabiarki) oraz inne elementy wyposażenia linii produkcyjnych. Dzięki swojej uniwersalności środowisko pozwala na porównanie różnych robotów realizujących te same funkcje na stanowisku (przez możliwość szybkiej podmiany robota bez konieczności budowy całego stanowiska od nowa w innym środowisku). Opracowane rozwiązanie pozwala w intuicyjny sposób budować stanowiska zrobotyzowane i programować roboty, korzystając z technologii przeciągania komponentów oraz wypełniania formularzy konfiguracyjnych.
Niezależnie od producenta danego robota, proces programowania w środowisku Visual Components przebiega tak samo i przy użyciu tych samych narzędzi, a nawet analogicznej składni programu. Należy też zwrócić uwagę, że użytkownik tego środowiska ma nie tyle poczucie programowania robota, ile bardziej tworzenia symulacji linii produkcyjnej. Z jednej strony znacząco upraszcza to cały proces symulacji. Z drugiej jednak brak wirtualnych paneli sterujących do robotów może się okazać nie lada problemem, zwłaszcza przy przejściu z trybu programowania w środowisku Visual Components na programowanie rzeczywistego robota.
Według informacji dostarczonych przez producenta środowisko zapewnia możliwość zarówno importu, jak i eksportu opracowanych programów do rzeczywistych robotów. Wymaga to jednak zakupu dodatkowych opcji służących do generowania kodu dla kontrolerów konkretnej firmy. Ważnym elementem jest grupa narzędzi służąca do budowy nowych komponentów, dla których istnieje możliwość nadania określonych cech, pozwalających na zaawansowaną interakcję z komponentami wchodzącymi w skład samego środowiska. Rozwiązanie to pozwala na budowę własnej biblioteki tego typu komponentów, przez co producent określonych maszyn czy stanowisk może w oparciu o środowisko Visual Component budować bardzo szybko symulacje według indywidualnych potrzeb klientów, bazując na własnych komponentach.
Samo środowisko Visual Components występuje w trzech zasadniczych wersjach:
-> Visual Components Essentials,
-> Visual Components Professional,
-> Visual Components Premium.
W pierwszym przypadku, w wersji Essentials, użytkownik ma do dyspozycji narzędzia umożliwiające wykonanie projektu i symulacji linii produkcyjnej lub fabryki. Czyni to w oparciu o gotowe elementy dostępne w bibliotekach środowiska – przeciągając je z eCatalog do środowiska wizualizacji 3D i łącząc za pomocą funkcji plug and play, a następnie konfigurując wzajemne powiązania i interakcje.
Druga wersja środowiska – Professional – zawiera wszystkie opcje dostępne w wersji Essentials, zapewniając dodatkowo możliwość zaawansowanej budowy komponentów i nadawania im własności oraz zapisu stworzonych komponentów w postaci własnej biblioteki. Do dyspozycji projektantów firma oddała dodatkowo narzędzia w postaci kreatorów (Wizards), które mają uprościć cały proces projektowania komponentów i nadawania im oczekiwanych własności i funkcji.
Najbardziej rozbudowana wersja środowiska Visual Components – Premium – zawiera wszystkie elementy przedstawionych wcześniej wersji plus dodatkowe pakiety, które są szczególnie istotne z punktu widzenia inżynierów zajmujących się programowaniem robotów i projektowaniem stanowisk zrobotyzowanych orazoptymalizacją procesów produkcyjnych. W tym przypadku dostępne są narzędzia umożliwiające generowanie trajektorii ruchu robotów, wykorzystujące w tym celu powierzchnie zaimplementowanych do środowiska modeli CAD. Rozwiązanie to stosowane jest m.in. do programowania procesów zrobotyzowanego malowania obiektów. W wersji zaimplementowanej w środowisku Visual Components Premium można dodatkowo wizualizować nakładanie farby oraz mierzyć grubość jej warstwy w celu optymalizacji czasu i poprawności procesu malowania. Dzięki funkcji Curve Teaching Tool, poprzez analizę geometrii obiektów, można generować ścieżki narzędzia na stanowisku zrobotyzowanym, a tym samym przygotować program do takich operacji, jak gratowanie, cięcie czy spawanie. Rozwiązania te są powszechnie stosowane w wersjach podstawowych środowisk firm produkujących roboty – RobotStudio, Roboguide itd. (z wyjątkiem opcji wizualizacji nakładania farby), a ich użyteczność okazuje się bardzo wysoka, szczególnie we wspomnianych operacjach technologicznych.
Podstawowe elementy

Po uruchomieniu środowiska Visual Components łatwo zauważyć, że składa się ono z kilku zasadniczych elementów, wykorzystywanych podczas modelowania i programowania projektowanych stanowisk zrobotyzowanych.
W centralnej części znajduje się okno główne, gdzie zestawiane i wizualizowane są wszystkie elementy, nazywane potocznie komponentami, i gdzie realizowana jest symulacja zaprojektowanego procesu technologicznego. Powyżej okna głównego symulacji widoczna jest belka główna menu z zakładkami poszczególnych grup narzędzi przypisanych do realizowanych operacji. Po lewej stronie umiejscowiono panel z zakładką eCatalog. Panel ten zawiera bibliotekę dostępnych komponentów, a na drugiej zakładce – Cell Graph, drzewo całego projektu ze wszystkimi wczytanymi do projektu elementami. Po prawej stronie dostępny jest panel parametrów aktywnego komponentu umożliwiający ich edycję, jak również informujący o aktualnej konfiguracji komponentu. Poniżej okna głównego symulacji znajduje się panel Output, wyświetlający informacje dotyczące realizowanych aktualnie operacji.
Podstawowe zastosowania środowiska zgrupowano w pięć zasadniczych grup narzędziowych, stanowiących zakładki widoczne w menu głównym. Zakładki te grupują narzędzia wykorzystywane podczas realizacji poszczególnych etapów przygotowania symulacji oraz konfiguracji środowiska.
Poszczególne zakładki odpowiadają za następujące operacje realizowane w ramach naszego projektu:
File – służy do generowania nowej stacji, wgrywania i zapisywania istniejących stanowisk, konfigurowania całego środowiska oraz zamykania środowiska;
Home – obejmuje narzędzia wykorzystywane do podstawowych czynności, takich jak: narzędzia do manipulacji obiektami stanowiska, opcje związane z dowiązywaniem elementów oraz wizualizacją sygnałów i interfejsów w celu ich połączenia i konfiguracji; w zakładce tej istnieje również dostęp do własności obiektów, które są aktywne w oknie symulacji;
Drawing – zawiera narzędzia wykorzystywane do przygotowania dokumentacji rysunkowej, z opisem poszczególnych elementów stanowiska;
Program – zawiera zestaw narzędzi wykorzystywanych w procesie programowania elementów stanowiska, a w szczególności robotów;
Modeling – obejmuje narzędzia wykorzystywane podczas procesu tworzenia nowych komponentów symulacji.
Biblioteka modeli

Visual Components jest środowiskiem udostępniającym zdecydowanie najwięcej (spośród wszystkich środowisk wirtualnych) modeli obiektów, które w sposób bezpośredni można dodawać do symulacji. Dodatkowo, korzystając z opcji importu modeli, można wprowadzać dowolne modele utworzone osobiście lub pozyskane od producentów podzespołów.
Komponenty do symulacji można dobierać, wyszukując je po typie (roboty, maszyny, przenośniki) albo przeszukując eCatalog po nazwie producenta. W przypadku osprzętu integrowanego z robotem (chwytaków, palników i innych narzędzi) warto zauważyć, że komponenty zawarte w bibliotece mają skonfigurowane TCP i aby je aktywować, wystarczy w panelu właściwości robota ustawić dany układ współrzędnych narzędzia jako aktywny. W bibliotece eCatalog znajdują się też elementy uniwersalne, opracowane przez firmę Visual Components, które można w dużym stopniu modyfikować i dostosowywać zarówno w zakresie ich wyglądu, jak i funkcjonalności. Istnieje opcja m.in. zmodyfikowania wymiarów elementów, ich koloru oraz typu (np. zmiana podajnika rolkowego w taśmowy). Ponadto można konfigurować parametry pracy stanowiska (np. rozdział towaru między kilka torów transportowych według określonego wzorca). Co ważne, każdy z komponentów zaczerpniętych z biblioteki eCatalog oferuje pewne własności, do których użytkownik ma dostęp (za pośrednictwem panelu własności komponentu) po zaznaczeniu komponentu w oknie symulacji.
Układy współrzędnych
Sterowanie i programowanie robotów w środowisku Visual Components może się odbywać z wykorzystaniem układów Base Frame oraz Tool Frame.

Base Frame to układ standardowo umieszczony na robocie w tym samym miejscu co Robot World Frame (w podstawie robota). Może być jednak przemieszczany do węzłów innych komponentów stanowiska i poruszać się z tymi komponentami. Przykładem może być umieszczenie Base Frame na palecie, w celu uproszczenia procesu paletyzacji, lub na pozycjonerze, by przeprowadzić złożony proces spawania.
Układ Tool Frame standardowo może być umieszczony na efektorze robota w punkcie TCP (Tool Center Point) narzędzia. W przypadku braku narzędzia znajduje się on na flanszy robota i skierowany jest osią Z na zewnątrz narzędzia. Układ ten wykorzystywany jest często podczas ustawiania pozycji efektora (chwytak, palnik lub inne narzędzie) względem obiektu manipulacji.

Podczas konfiguracji zrobotyzowanego stanowiska istnieje możliwość wykorzystania kilku układów Base Frame i Tool Frame, odpowiadających różnym komponentom rozmieszczonym w przestrzeni roboczej, jak również różnym narzędziom zainstalowanym na robocie.
<—newpage—>Tworzenie stanowiska roboczego

Pracę ze środowiskiem można rozpocząć po pobraniu oprogramowania ze stronfirmy Visual Components – www.visualcomponents.com/downloads/.
W zależności od posiadanego klucza, który uzyskujemy od producenta, istnieje możliwość wybrania jednej ze wspomnianych trzech wersji środowiska (Essentials, Professional lub Premium). Standardowo udostępniane do testów oprogramowanie ma pełną funkcjonalność, jednak tylko na czternaście dni, po których trzeba pozyskać nowy klucz aktywacyjny.
Instalacja oprogramowania jest bardzo prosta, wystarczy postępować zgodnie ze wskazówkami instalatora środowiska. Po uruchomieniu środowiska Visual Components można spersonalizować jego elementy graficzne (rys. 6).


Pierwszym krokiem przy modelowaniu stanowiska jest dodanie komponentów (np. takiego składającego się z przenośnika i trzech robotów przemysłowych firm ABB, FANUC i KUKA). Tworzenie stacji można rozpocząć od przenośnika, względem którego zostaną rozmieszczone pozostałe elementy stanowiska. Środowisko ma w swojej bibliotece kilka typów przenośników, przy czym niektórym z nich zaimplementowano moduły pozwalające na odkładanie i pobieranie elementów (specjalne punkty na podajniku), jak również zmianę kierunku przepływu materiałów i rozdzielanie towaru pomiędzy kilka wyjść (można określić reguły, według których detale będą rozdzielane). W niniejszym artykule wybrano najprostszy przenośnik (Conveyor) z generatorem obiektów manipulacji. Elementem odpowiedzialnym za generowanie produktów, które będą przemieszczane na przenośniku, jest Feeder, dostępny w eCatalog pod opcją Models by Type. Użytkownik ma możliwość wybrania obiektu z bibliotek lub zaimportowania własnego pliku prezentującego generowane produkty.

Przemieszczenie dodanych komponentów można zrealizować, korzystając z pola Manipulation, w zakładce Home.
Wybranie narzędzia Move z grupy Manipulation pozwala na swobodne przemieszczanie komponentu po komórce. Można to realizować albo przeciągając za poszczególne osie i obracając łuki odzwierciedlające zmianę kąta wokół odpowiednich osi, albo też przeciągając komponent za środek aktywnego układu współrzędnych. Wyświetlony układ współrzędnych ma również zaznaczone kwadraty dla każdej z płaszczyzn układu współrzędnych. Zaznaczając myszką wybrany kwadrat, można przemieszczać komponent w wybranej płaszczyźnie.
Przydatne podczas zestawiania elementów stanowiska może być również wykorzystanie zakładki Tools, gdzie znajdują się narzędzia Snap i Align, umożliwiające odpowiednio doczepienie lub też wyrównanie przemieszczanego komponentu do innego elementu projektowanej zrobotyzowanej celi.

Kolejnym przydatnym narzędziem w grupie Manipulation jest PnP (Plug and Play). Podczas dodawania kolejnych komponentów pozwala ono na dziedziczenie podstawowych parametrów „rodzica” (np. dołączając kolejny element do przenośnika, będzie on w sposób automatyczny dziedziczył podstawowe parametry geometryczne już zbudowanej części przenośnika). W omawianym przypadku, jeśli element typu Feeder zostanie zbliżony do elementu Conveyer, pojawi się strzałka wskazująca na możliwość połączenia ich ze sobą.
Przydatnym narzędziem z grupy Manipulation wydaje się też Interact. Pozwala na płynną modyfikację wybranych właściwości zaznaczonego komponentu (np. dla przenośnika jego długości – i nie jest to modyfikacja polegająca na rozciągnięciu komponentu, ale realna zmiana jego długości, widoczna w tym przypadku poprzez zmianę liczby rolek przenośnika).
W efekcie, po zestawieniu przenośnika i zmodyfikowaniu parametrów komponentów, uzyskano założoną postać przenośnika (rys. 10).

Pozostaje jeszcze dodanie czujnika (zakładka eCatalog Sensor), którego zadaniem będzie zatrzymywanie przenośnika po kontakcie obiektu manipulacji z czujnikiem, oraz pozostałych elementów stanowiska (np. stołów, krzeseł, stolików dla detali).
Na tym etapie można przeprowadzić pierwszą symulację. Po wybraniu z menu symulacji opcji Start, komponent typu Feeder powinien generować elementy. W Menu symulacji, znajdującym się powyżej okna głównego symulacji, przewidziano opcje umożliwiające przyspieszenie całej symulacji oraz jej eksport w postaci pliku PDF lub pliku wideo.

Kolejnym krokiem jest dodanie stosownych robotów dostępnych w eCatalog. Użytkownik ma możliwość wyboru manipulatorów wybranych producentów albo uniwersalnej jednostki manipulatora, przygotowanej specjalnie na potrzeby środowiska.
Na rys. 12 przedstawiono stanowisko z dodanymi robotami IRB120 firmy ABB, KR15 firmy KUKA oraz LrMate 200iC firmy FANUC.
Po utworzeniu stacji należy dodać do każdego robota odpowiedni chwytak. Po przeciągnięciu wybranego chwytaka z eCatalog do okna głównego symulacji trzeba, korzystając z narzędzia PnP, przeciągnąć go w pobliże flanszy wybranego robota. Podobnie jak miało to miejsce przy łączeniu Feeder i Conveyor, elementy te zostaną automatycznie połączone. Nie oznacza to, że konfiguracja dobiegła końca. W zależności od typu chwytaka (np. szczękowy, przyssawkowy) można w karcie właściwości modyfikować jego parametry. Podłączenie wejść i wyjść robota oraz chwytaka (okno Component Prepertis, opcja Actions Configuration) pozwala na sterowanie efektorem.

Pozostaje jeszcze połączenie sygnałami współpracujących ze sobą robotów. Po aktywacji sygnałów w menu Show należy w tym celu zaznaczyć robota i klikając dodatkowy panel pod nim, przeciągnąć go wskaźnikiem myszki pomiędzy wyjściami i wejściami poszczególnych robotów.
Tworzenie programu
Programowanie robotów w środowisku Visual Components jest realizowane przy wykorzystaniu narzędzi dostępnych w zakładce Program. Inaczej niż w przypadku większości tego typu środowisk (brak wirtualnego panelu operatora) przemieszczanie robota do kolejnych punktów odbywa się przez przeciąganie TCP narzędzia w zadanym kierunku lub przy wykorzystaniu opcji Snap. Po umiejscowieniu chwytaka w wybranym punkcie można go skorygować, manipulując położeniem TCP oraz konfiguracją robota. Pisanie programu odbywa się w panelu Program Editor, aktywującym się po lewej stronie okna głównego. Należy pamiętać, że aby móc przemieszczać robota podczas programowania, musimy uaktywnić narzędzie Jog, znajdujące się w grupie Manipulation. Po ustawieniu robota w wybranym położeniu wystarczy wybrać z menu Program Editor odpowiednią ikonę, wskazującą, w jaki sposób robot ma się zbliżyć do danego punktu (np. joint to ruch typu Point-To-Point, a linear – ruch w interpolacji liniowej). Odpowiedni wiersz programu znajdzie się w polu edycji programu dla danego robota.
Do dyspozycji programisty są wszystkie podstawowe instrukcje, niezbędne do edycji programu robota. Należy w tym miejscu zwrócić uwagę na to, że w Visual Components, niezależnie od rzeczywistych różnic w języku programowania robotów poszczególnych firm, wszystkie je programuje się tak samo, używając tego samego edytora, tych samych narzędzi i tej samej składni.
Z punktu widzenia programisty robotów bardzo istotne jest zagadnienie parametryzacji ruchu robota. Wykorzystując panel Program Editor, można zapisywać komendy programu, ale nie da się ich parametryzować. Aby tego dokonać, należy skorzystać z panelu Statement Properties, który pozwala na edycję punktów.
Po utworzeniu programu można uruchomić symulację i zweryfikować poprawność kodu. Niestety, środowisko Visual Components nie zostało wyposażone w zaawansowane narzędzia do analizy symulacji. Użytkownik ma jednak możliwość określenia czasu cykli i wydajności całej linii.
Podsumowanie

Środowisko Visual Components jest bardzo ciekawą propozycją – szczególnie z punktu widzenia firm integratorskich, znajdujących się na etapie przygotowania wstępnej oferty. Pozwala na szybką budowę stanowiska i wizualizację koncepcji. Dużym walorem jest możliwość użycia robotów różnych firm oraz ich sposobów programowania. Zgodnie z informacjami uzyskanymi odfirmy Visual Components, korzystając ze specjalnych postprocesorów, istnieje możliwość przeniesienia wygenerowanego kodu do rzeczywistego robota. Niestety, wiąże się to z dużymi kosztami dodatkowymi.
Zupełnie inną kwestią jest dostęp dozaawansowanych opcji, oferowanych przez producentów środowisk. Uniwersalność niesie ze sobą, jak zawsze, pewien problem – aby coś mogło być do wszystkiego, musi mieć pewne uproszczenia i ograniczenia. Podobnie jest w tym przypadku. Visual Components nie oferuje więc wszystkich opcji środowisk opracowanych dla konkretnej firmy.
Kolejnym problemem, o którym już wspominano, jest kwestia przejścia z programu uniwersalnego na program w kontrolerze robota oraz jego modyfikacji na docelowej platformie. Przykładowo, podczas programowania robotów firmy FANUC sposób pisania kodu programu z użyciem iPendanta jest zupełnie różny od tego, z czym ma do czynienia użytkownik w środowisku Visual Components.
Podsumowując – elastyczność, przejrzystość, uniwersalność oraz duża biblioteka komponentów stwarzają wiele możliwości dla użytkowników opisywanego środowiska. Warto więc zastanowić się, czy tego typu rozwiązanie nie byłoby szczególnie pomocne na etapie opracowania koncepcji, sprawdzania zasięgów robota oraz optymalizacji projektowanego procesu, zwłaszcza gdy zachodzi konieczność zastosowania robotów różnych producentów.
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 1/2017 magazynu "Control Engineering". Jeśli Cię zainteresował, ZAREJESTRUJ SIĘ w naszym serwisie, a uzyskasz dostęp do darmowej prenumeraty w formie drukowanej i/lub elektronicznej.