Środowisko programowania robotów Roboguide

Roboty stają się coraz istotniejszą częścią procesów przemysłowych, zwłaszcza w kontekście nadciągającej epoki Przemysłu 4.0. Publikujemy pierwszą część cyklu poświęconego podstawom ich programowania z uwzględnieniem środowisk wirtualnych.
Wirtualne środowiska robotów są aplikacjami umożliwiającymi modelowanie i programowanie robotów oraz prowadzenie symulacji ich pracy w trybie offline, przy wykorzystaniu standardowego komputera PC. W większości przypadków środowiska te współpracują z systemem operacyjnym Windows, a niektóre dla zapewnienia pełnej funkcjonalności wymagają przeglądarki Internet Explorer ? jak Roboguide firmy FANUC. Co prawda brak wspomnianej przeglądarki nie jest krytyczny dla pracy w środowisku, jednak ze względu na konfiguracje pewnych opcji, jak np. system wizyjny iRVision, może ograniczyć funkcjonalność tego środowiska.
Wszyscy producenci robotów mają własne rozwiązania, przeznaczone do modelowania, programowania i symulacji oferowanych przez siebie robotów. Wszystkie tego typu środowiska mają podobne możliwości, jeśli chodzi o odwzorowanie pracy fizycznych stanowisk zrobotyzowanych. W każdym ze środowisk występuje również element będący odzwierciedleniem fizycznego kontrolera robota, a nazywany wirtualnym kontrolerem. Rozwiązanie takie wynika z konieczności zapewnienia zgodności kodu generowanego w środowisku wirtualnym, a także tym implementowanym dla rzeczywistego robota. Zapewnienie tej zgodności wiąże się w tym przypadku nierozerwalnie z potrzebą odzwierciedlenia zarówno wersji systemu, jak i zainstalowanych opcji programowych, które mogą w znaczący sposób poszerzać możliwości posiadanego stanowiska zrobotyzowanego.

Kolejnym elementem występującym w wirtualnych środowiskach programowania robotów jest wirtualny TeachPendant (panel sterowniczy do robota), którego zadaniem jest odzwierciedlenie w jak najpełniejszym zakresie możliwości fizycznego TeachPendanta. Jest to istotne ze względu na to, że ucząc się programowania robotów danej firmy, korzystając ze środowiska wirtualnego, powinno się to robić w sposób zgodny ze sposobem programowania rzeczywistego robota, co w wielu przypadkach wiąże się nierozerwalnie właśnie z wykorzystaniem panelu TeachPendant.
Co do wspomnianych możliwości środowisk wirtualnych można powiedzieć, że mogą być one wykorzystane do planowania trajektorii ruchu robota w komórce roboczej, analizy przestrzennej poszczególnych elementów stanowiska, kontroli przemieszczeń i orientacji efektorów, tworzenia programów sterujących, optymalizacji rozmieszczenia gniazd roboczych na liniach montażowych fabryk oraz współpracy robotów i maszyn w poszczególnych gniazdach. Zaplanowane zadania mogą być symulowane z uwzględnieniem detekcji kolizji oraz optymalizowane pod kątem uzyskania jak najbardziej efektywnych cykli pracy. Dzięki rozbudowanym bibliotekom, zawierającym m.in. wybrane typy robotów, mechanizmy, przenośniki taśmowe, podajniki i czujniki oraz wiele mechanizmów, istnieje możliwość łatwego tworzenia rozbudowanych aplikacji oraz importowania modeli, elementów itp. z systemów komputerowego wspomagania projektowania CAD. Ponadto środowiska umożliwiają załadowanie przetestowanego programu do robota i uruchomienie go, w celu realizacji rzeczywistego procesu technologicznego.
<—newpage—>Charakterystyka środowiska Roboguide

Roboguide jest zintegrowanym środowiskiem wirtualnym, umożliwiającym modelowanie, programowanie oraz symulację pracy robotów, jak również całych zrobotyzowanych gniazd, uwzględniając wymianę informacji pomiędzy robotami i maszynami, których modele zostały zaimplementowane w dołączonych bibliotekach i które mogą być budowane przy wykorzystaniu importowanych plików CAD, z oprogramowania umożliwiającego modelowanie bryłowe. Formaty danych akceptowanych przez Roboguide to przede wszystkim .igs oraz .stl. Istnieje również możliwość budowy prostych modeli, stosując zintegrowany moduł Modeler, jednak jest to mało efektywne rozwiązanie. Modele robotów, maszyn i mechanizmów dostępne w Roboguide mogą być również eksportowane, w celu ich wykorzystania w innym oprogramowaniu, np. do opracowania dokumentacji stanowiska w programach inżynierskich.
Oprogramowanie Roboguide zapewnia pełną symulację wszystkich możliwości i opcji zarówno sprzętowych, jak i programowych, oferowanych przez roboty firmy FANUC. Na szczególną uwagę zasługuje tu odzwierciedlenie pracy systemu wizyjnego iRVision, gdzie istnieje możliwość zarówno zaprogramowania systemu wizyjnego, korzystając z okna przeglądarki Internet Explorer, jak również symulacji pracy takiego systemu z uwzględnieniem jego sprzęgnięcia z programem robota. Możliwe jest również losowe wygenerowanie elementów, które następnie mogą być przez system wizyjny odnajdywane, a potem pobierane przez efektor robota.

Aktualna wersja oprogramowania Roboguide HandlingPRO V8 (Rev.J) umożliwia obsługę najnowszych kontrolerów R30iB, a także starszych wersji. W zależności od potrzeb, jeśli chodzi o budowaną aplikację, istnieje możliwość wyboru kilku wersji Roboguide, które różnią się zaimplementowanymi rozwiązaniami oraz zawartością dodatkowych bibliotek, zawierających np. chwytaki, palniki oraz inne elementy typowe dla operacji paletyzacji, spawania czy malowania. Dodatkowo wersje oprogramowania przeznaczone do określonych procesów mają możliwość bardziej zaawansowanej symulacji. W wersji Roboguide WeldPRO dostępne są więc specjalnie opracowane panele TeachPendant oraz opcje zaawansowanej obsługi stacji spawalniczych, a podczas symulacji widoczna jest wizualizacja procesu samego spawania. Podobnie dodatkowe opcje i elementy zawarto w wersji Roboguide SpotPRO. W wersji Roboguide PaintPRO udostępniono również specjalnie opracowane panele TeachPendant, dodatkowe końcówki pistoletów spawalniczych, jak również możliwość parametryzacji warunków ich pracy. Podczas symulacji istnieje m.in. możliwość wizualizacji zmiany koloru elementów znajdujących się w obszarze pracy sparametryzowanego efektora. W przypadku Roboguide PalletPRO udostępniono dodatkowe elementy, typowe dla operacji paletyzacji, a więc opcje umożliwiające efektywniejsze programowanie operacji paletyzacji, zaś w Roboguide PickPRO ? mechanizmy pozwalające na symulację operacji związanych z line trackingiem i sortowaniem detali. Podstawowa wersja oprogramowania Roboguide to Roboguide Handing Tool, zawierająca najbardziej uniwersalny zestaw narzędzi. Poza wyborem wersji Roboguide, istnieje możliwość doinstalowania dodatkowych opcji programowych, odpowiadających opcjom stanowiącym rozbudowę rzeczywistych możliwości kontrolerów robotów. Przykładami mogą być np. iRVision lub CoordinationMotion.

Instalując oprogramowanie, otrzymujemy możliwość wyboru wersji oprogramowania, jakie będzie można obsługiwać. Da się oczywiście zainstalować wszystkie dostępne w pakiecie wersje i wówczas jest możliwa obsługa zarówno starszych, jak i najnowszych kontrolerów robotów. Istotne jest, aby w przypadku posiadania fizycznych robotów zachować zgodność wersji systemu operacyjnego robota. W przeciwnym razie wystąpi konflikt wersji i wymiana aplikacji pomiędzy fizycznym kontrolerem robota a środowiskiem Roboguide może się okazać niemożliwa.
<—newpage—>Tworzenie stanowiska roboczego w środowisku Roboguide

Zasady tworzenia stanowisk roboczych w środowisku Roboguide zostaną przedstawione na przykładzie rzeczywistego stanowiska, będącego na wyposażeniu Laboratorium Robotyki w Wojskowej Akademii Technicznej. Zostanie ono utworzone w Roboguide HandlingPRO V8 (Rev.J).
 Oprogramowanie w wersji testowej, 30-dniowej, pozwalające na zapoznanie się ze środowiskiem, można otrzymać od producenta. Po tym okresie konieczne jest zarejestrowanie licencji, poprzez wysłanie wygenerowanych części kluczy do dystrybutora, który następnie odsyła klucze rejestracyjne.
Po uruchomieniu środowiska Roboguide otwiera się puste okno edytora. Dopiero korzystając z zakładki File bądź ikony Process Navigator lub Cell Browser, można przejść do Workcell Creation Wizard, który krok po kroku przeprowadza nas przez proces tworzenia zrobotyzowanej komórki (rys. 1).
Na samym początku należy podać nazwę komórki, a następnie wybrać jedną z dostępnych opcjibudowy stacji roboczej (2). W tym przypadku można wybrać opcję wygenerowania domyślnej konfiguracji, konfiguracji zgodnej z ostatnio edytowaną, odtworzenia konfiguracji na podstawie pliku backup lub utworzenia stacji zgodnej z istniejącą konfiguracją robota w sieci, do której mamy dostęp.

W kolejnych krokach ? o ile nie skorzystano z konfiguracji będącej odzwierciedleniem rzeczywistego robota, z którego ją pobrano (ściągnięto) ? istnieje możliwość wyboru odpowiedniej wersji oprogramowania, doboru narzędzi związanych z aplikacją, którą będzie się realizować, oraz wyboru samego modelu robota. W wersji Robiguide HandlingPRO V8 (REV.J) dysponujemy robotami firmy FANUC, w tym również najnowszymi robotami kolaboracyjnymi (współpracującymi). W dalszych krokach istnieje możliwość dodania dodatkowych grup ruchu, które mogą stanowić zarówno manipulatory robotów, jak i wszelkiego rodzaju pozycjonery czy osie zewnętrzne. Ostatnim elementem, który da się modyfikować na tym etapie, jest dobór opcji programowych zainstalowanych w kontrolerze robota. Dostajemy w tym przypadku dostęp do wszystkich opcji, jakie dla rzeczywistych robotów oferuje producent. Niektóre z nich pozostają jednak niedostępne w wersji podstawowej, a ich aktywacja wymaga zakupu dodatkowych licencji. Przykładem takiej opcji może być np. Coordination Motion.
Po zakończeniu wstępnej konfiguracji komórki wyświetlane jest okno zawierające skonfigurowane parametry (3).
Po wciśnięciu przycisku Finish generowany jest wirtualny kontroler wraz z wybranym robotem i naszymi opcjami sprzętowymi oraz programowymi (4).

Po wygenerowaniu podstawowej komórki, zawierającej jedynie wybranego przez nas robota, istnieje możliwość rozbudowy jej o wszelkiego rodzaju elementy, zarówno aktywne, jak i pasywne. Pod pojęciem elementów aktywnych należy w tym przypadku rozumieć przede wszystkim elementy typu Parts (części), obiekty typu Fixtures (podajniki, stoły, szafy, palety), z którymi będzie zachodziła interakcja za pośrednictwem części, oraz Tooling (osprzęt aplikacyjny robota w postaci chwytaków, palników, szczypców zgrzewalniczych itp.) i Machines (którymi możemy sterować za pomocą sygnałów I/O robota). Obiektami pasywnymi (choć dla nich również zachodzi reakcja typu ?kolizja?) są przede wszystkim elementy typu Obstacles (przeszkody), odpowiadające za wyposażenie stanowiska. Mamy więc tu np. ogrodzenia, kontrolery robotów, podstawy pod roboty itp.
Dodawanie elementów do konfigurowanej komórki zrobotyzowanej jest możliwe poprzez Proces Navigator albo Cell Browser. W pierwszym wypadku wybiera się kolejne pozycje i rozbudowuje środowisko robocze. W przypadku Cell Browser możliwy jest dostęp do wszystkich elementów stanowiska ? uzupełniamy je, klikając prawym przyciskiem myszki na odpowiedni element i postępując zgodnie z dalszymi wskazówkami (5).
Wchodząc dalej, dociera się do bibliotek, z których można wybrać odpowiednie elementy, aby następnie ? korzystając z kart parametrów ? skonfigurować je według potrzeb danej aplikacji (6, 7).

W przypadku elementów typu Fixture, Tooling oraz Machines istotne jest poprawne skonfigurowanie opcji związanych z elementami typu Parts ? aby zapewnić możliwość ich pełnej symulacji podczas ich pobierania, odkładania i przemieszczania. W przypadku obiektów typu Machines, istnieje dodatkowo możliwość skonfigurowania elementów ruchomych, dodanych jako Link (w przypadku przedstawionym na rys. 8, do Machines ? Convoyer podłączony został element Link ? Convoyer line) oraz konfiguracji sposobu sterowania, które w najprostszym przypadku może być realizowane za pośrednictwem I/O robota.
Mając taką podstawową postać komórki, można już sterować robotem ? przeciągając myszką TCP robota, za którym będzie podążał manipulator, albo wybierając ikonę TeachPendanta i sterując w sposób identyczny z tym, gdy mamy do czynienia z rzeczywistym robotem. Dojazd do elementów typu Parts, zlokalizowanych na obiektach Fixtures, może być też wykonany przy wykorzystaniu opcji MoveTo, zawartej na zakładkach konfiguracji parametrów Fixtures (9).
<—newpage—>Tworzenie programu dla robota

Tworzenie programu robota w środowisku Roboguide jest możliwe na kilka sposobów. Pierwszy to skorzystanie z opcji Simulation Program Editor, dostępnej w zakładce Teach. Ten wariant pisania programu pozostaje zdecydowanie najprostszy, gdyż umożliwia korzystanie z elementów graficznych symulacji w postaci przeciągania wcześniej ustawionego TCP narzędzia i zapisywania jego pozycji. W menu okna Simulation Program Editor istnieje również możliwość wybrania opcji MoveTo, w celu dojechania chwytakiem do elementów typu Parts, które zostały usytuowane na elementach aktywnych typu Fixtures lub Link w obiekcie Machines. Korzystając z pozostałych przycisków, można wykonywać program krokowo, obserwując przemieszczanie się robota, a sięgając do opcji Inst, jest możliwe wywoływanie instrukcji dodatkowych, związanych z oczekiwaniem, obsługą I/O oraz wykonywaniem pętli. W każdej chwili można również otworzyć budowany właśnie program, korzystając z Simulation Program Editor, i zobaczyć, jak on wygląda w oknie TeachPendant. Warto w tym momencie zauważyć, że podglądając program napisany w Simulation Program Editor, w oknie TeachPendanta widzimy podświetlone na żółto elementy aktywne jedynie w Roboguide i stanowiące komentarz, w przypadku przegrania takiego programu na rzeczywistego robota (10).
Drugim wariantem pisania programu jest wykorzystanie wspomnianego TeachPendanta, co odpowiada pisaniu programu dla rzeczywistego robota, właśnie za pomocą panelu TeachPendant (11).

W odróżnieniu od wykorzystania Simulation Program Editor, w tym przypadku ? choć można co prawda korzystać z opcji przeciągania TCP narzędzia i ustawiania pozycji robota ? cała edycja i parametryzacja odbywa się w sposób zgodny z programowaniem fizycznego robota. Należy pamiętać również o tym, że aby w symulacji programu widoczna była interakcja pomiędzy elementami stanowiska (pobieranie, odkładanie elementów), konieczne jest utworzenie prostych funkcji przy wykorzystaniu Simulation Program Editor, które odpowiedzialne będą właśnie za realizację operacji symulacyjnych.
Ostatni sposób pisania programów, jaki udostępnia Roboguide, to wykorzystanie zintegrowanego edytora języka KAREL. Stanowi on modyfikację języka Pascal i pozwala na programowanie zaawansowanych operacji, związanych np. z obsługą komunikacji, sterowania w oparciu o algorytmy regulacji na podstawie sygnałów odbieranych z elementów sensorycznych (elementy tego języka w laboratorium robotyki WAT są wykorzystywane m.in. do generowania trajektorii obiektów dynamicznych, czy też sterowania położeniem głowicy laserowej podczas cięcia zrobotyzowanego).
<—newpage—>Analiza wyników symulacji

Analiza ta może być realizowana wieloetapowo. Przede wszystkim już budując komórkę stanowiska pracy robota, można zaobserwować, czy odpowiednie elementy znajdują się w zasięgu robota i czy sam robot nie wchodzi w kolizję z innymi elementami stanowiska. Po napisaniu programu jest możliwość podejrzenia alarmów, zarówno aktywnych, jak i tych, które tylko przez chwilę wystąpiły podczas wykonania programu. O ile tego typu alarmy w przypadku symulacji nie stanowią zagrożenia (jeśli nie są krytyczne), to podczas pracy rzeczywistego robota mogą prowadzić do wcześniejszego zużycia jego podzespołów, a coza tym idzie ? do unieruchomienia stanowiska, co zawsze wiąże się z kosztami.
Kolejnym i chyba jednym z najważniejszych elementów pozwalających na analizę wyników jest Profiler. To narzędzie umożliwia określenie czasu poszczególnych operacji realizowanych przez robota, a w konsekwencji ? obliczenie wydajności całego procesu zrobotyzowanego. To na podstawie analiz z tego właśnie narzędzia można określić, ile detali i w jakim czasie nasze stanowisko jest w stanie obsłużyć.

Inną bardzo istotną opcją jest śledzenie parametrów robota na ścieżce. Na trajektorii zaznaczonej przez TCP robota można obserwować ? w postaci zmiany koloru, zgodnie z ustaloną skalą ? informacje o takich parametrach, jak prędkość TCP, przyspieszenie, odległość od osobliwości czy minimalna odległość od limitów osi. Parametry te są istotne, jeżeli chce się, aby opracowana symulacja pokrywała się z pracą rzeczywistego stanowiska. Zgodność, jaką da się uzyskać, korzystając z Roboguide, sięga 9899%, jeśli chodzi o czasy realizacji operacji. Istotne jest również uwzględnienie podczas modelowania stanowiska czasów reakcji chwytaków czy obsługi innych efektorów, gdyż może to być źródłem istotnych błędów, związanych z określeniem czasu realizacji procesu (12).
<—newpage—>Podsumowanie

Roboguide to środowisko intuicyjne, a ponieważ odzwierciedla niemal w 100% sterowanie rzeczywistym robotem, pozwala zarówno na naukę programowania, jak i tworzenie aplikacji offline, które można następnie przenieść do rzeczywistego robota (13).
W najnowszej wersji oprogramowania ? podobnie jak w przypadku rzeczywistych robotów i najnowszych kontrolerów ? możliwe jest wykorzystanie funkcji iPendant 4D Graphic, przenoszącej wirtualnie zbudowaną komórkę na ekran rzeczywistego iPendanta. Dodatkowo, korzystając ze środowiska Roboguide, można programować i symulować wspomniany już zintegrowany system wizyjny iRVision, system bezpieczeństwa DCS i sterownik PMC. Producent wprowadził w wersji 8 Roboguide możliwość generowania dynamicznego ruchu operatora, co pozwala m.in. na symulację działania opracowanej aplikacji w warunkach interakcji operatora z systemem DCS.
Z blisko siedmioletniego doświadczenia wynikającego z nauczania studentów korzystania ze środowiska Roboguide wynika, że jest to środowisko optymalne. Z jednej strony użytkownik nie jest przytłoczony jego złożonością, z drugiej ? bardzo szybko przyswaja sobie posługiwanie się narzędziami dostępnymi w tym środowisku. Co ważne, korzystając z wirtualnego TeachPendanta, uczy się obsługi i sterowania robotem, co później znajduje odzwierciedlenie w sterowaniu rzeczywistym robotem.
Autorzy:
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. 
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.
Tekst pochodzi z nr 3/2016 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.