politechnika wrocŁawska wydziaŁ...

88
POLITECHNIKA WROCLAWSKA WYDZIAL ELEKTRONIKI Kierunek: Automatyka i Robotyka (AiR) Specjalność: Robotyka (ARR) PRACA DYPLOMOWA MAGISTERSKA Symulator robota przemyslowego IRB1400 Simulator of industrial robot IRB1400 Autor: Stefan Guzik Prowadzący pracę: dr inż. Bogdan Kreczmer, I-6 Opiekun: dr inż. Bogdan Kreczmer, I-6 Ocena pracy: WROCLAW 2007

Upload: tranque

Post on 01-Mar-2019

235 views

Category:

Documents


0 download

TRANSCRIPT

POLITECHNIKA WROCŁAWSKAWYDZIAŁ ELEKTRONIKI

Kierunek: Automatyka i Robotyka (AiR)Specjalność: Robotyka (ARR)

PRACA DYPLOMOWAMAGISTERSKA

Symulator robota przemysłowegoIRB1400

Simulator of industrial robot IRB1400

Autor:Stefan Guzik

Prowadzący pracę:dr inż. Bogdan Kreczmer, I-6

Opiekun:dr inż. Bogdan Kreczmer, I-6

Ocena pracy:

WROCŁAW 2007

Spis treści

1 Wstęp 3

2 Założenia i cel pracy 5

3 Przegląd wybranych znanych rozwiązań 73.1 Robot Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.1.1 ProgramMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.1.2 QuickTeach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.1.3 RobotStudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.1.4 Virtual Robot Browser . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.2 RoboGuide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.3 RoboWorks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.4 eM-Workplace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4 Robot IRB-1400 19

5 Kinematyka 25

6 Organizacja Systemu Sofi Robot 276.1 Idea Systemu Sofi Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276.2 System Wizualizacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286.3 System Sterowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296.3.1 Panel sterowania (PanelInterface) . . . . . . . . . . . . . . . . . . 296.3.2 Zarządca programu (ProgramManager) . . . . . . . . . . . . . . . . 306.3.3 Informacje wejścia/wyjścia . . . . . . . . . . . . . . . . . . . . . . . 306.3.4 Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

7 Możliwości rozszerzeń systemu Sofi Robot 337.1 Dodawanie nowych poleceń . . . . . . . . . . . . . . . . . . . . . . . . . . . 337.1.1 Format pliku z komendami . . . . . . . . . . . . . . . . . . . . . . . 357.1.2 Tablica poleceń . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

7.2 Obsługa robotów rodziny IRB . . . . . . . . . . . . . . . . . . . . . . . . . 377.2.1 Struktura biblioteki robotów . . . . . . . . . . . . . . . . . . . . . . 38

7.3 Kinematyka odwrotna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

8 Interfejs Aplikacja Sofi Robot 418.1 Interfejs Sofi Robot-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428.2 Panel Sterowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448.2.1 Okno Jogging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458.2.2 Sterowanie ręczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2 SPIS TREŚCI

8.2.3 Okno Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518.2.4 Okno Input/Output . . . . . . . . . . . . . . . . . . . . . . . . . . 618.2.5 Okno Misc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

9 Przykłady 65

10 Podsumowanie 7910.1 Realizacja systemu Sofi Robot . . . . . . . . . . . . . . . . . . . . . . . . . 7910.2 Perspektywy rozwoju systemu Sofi Robot . . . . . . . . . . . . . . . . . . . 79

Rozdział 1

Wstęp

Roboty w dzisiejszych czasach są bardzo rozpowszechnione, Stosuje się je na szerokąskalę między innymi w przemyśle (jako roboty montażowe czy transportowe) oraz w woj-sku. Przemysł rozwija się bardzo dynamicznie i rozszerza się zakres zastosowania robotów.Firmy produkujące roboty wychodząc naprzeciw współczesnym oczekiwaniom tworzą sys-temy umożliwiające modelowanie, symulowanie a także analizowanie całych sieci przemy-słowych. Ma to na celu optymalizację wykorzystania robotów pod takimi względami jak:koszty utrzymania, czas pracy, dostępne miejsce, itd.

Niniejsza praca dyplomowa ma na celu stworzenie systemu służącego do symulacjizachowań robota przemysłowego IRB-1400, który znajduje się w Laboratorium 010 wbudynku C-3 Politechniki Wrocławskiej. Niniejsze oprogramowanie służyć ma pomocąpodczas prowadzenia zajęć laboratoryjnych. Realizacją tego celu jest stworzenie systemuSofi Robot (Simulator of industrial Robot) , który umożliwia modelowanie i sterowaniewspomnianym robotem IRB-1400.

W systemach automatyki i robotyki wykorzystywane są do symulacji nowoczesne na-rzędzia informatyczne wspomagające projektowanie i zarządzanie środowiskiem pracytego rodzaju systemów. Przegląd ważniejszych rozwiązań dotyczących takich systemówzostał przedstawiony w Rozdziale 3. Jego celem jest zapoznanie czytelnika ze standardamiaplikacji symulacyjnych, a także z ich różnorodnością. W rozdziale 4 przedstawione zostałymożliwości robota IRB-1400 dla którego dedykowany został system Sofi Robot. Rozdział5 zawiera opis zasady sterowanie robotem w aplikacji. Ogólny opis struktury systemu(diagramy klas) oraz podstawowe informacje dotyczące przeznaczenia i sposobu działa-nia został przedstawiony w rozdziale 6. Informację zawarte w tym rozdziale mają służyćułatwieniu przyszłemu użytkownikowi zrozumienie zasad działania aplikacji oraz pokazaćjak w prosty sposób można rozbudować niniejsza aplikację. Otwarty charakter aplikacjiumożliwia jej rozbudowę przez co zwiększa jej uniwersalność. Możliwe rozszerzenia wrazz opisem ułatwiającym ich implementacje znajduje się w rozdziale 7. Dokładny opis orazinstrukcja posługiwania się systemem zostały zawarte w rozdziale zatytułowanym ”Inter-fejs Aplikacja Sofi Robot”. Aby zobrazować możliwości jakie oferuje zrealizowany system,przeprowadzone zostały symulacje we wcześniej wykreowanym w nim modelu laborato-rium 010. Zawarte przykłady są w miarę możliwości proste, jednakże zawierają wszystkienajważniejsze aspekty sterowania robotem IRB-1400. Rozdział 9 zawiera przykładoweobrazy symulacji. Natomiast w Rozdziale 10 zawarte zostało podsumowanie całej pracy.

4 Wstęp

Rozdział 2

Założenia i cel pracy

Podstawowym celem pracy jest realizacja programowego symulatora robota przemysło-wego IRB1400. Wspomniany symulator ma umożliwiać sterowanie ręczne robotem, jak teżjego programowanie. Wszystkie stworzone elementy graficzne powinny możliwie wiernieodpowiadać rzeczywistym elementom. Sposób sterowania i programowania powinien byćrównież możliwie zbliżony, do rzeczywistych działań, jakie musi podjąć operator nadzoru-jący pracę robota. W ramach niniejszej pracy nie jest wymagane oprogramowanie wszyst-kich instrukcji języka Rapid dla IRB1400 . Jednak aplikacja musi mieć charakter otwarty,aby możliwe było stopniowe uzupełnienie oprogramowania zbioru instrukcji. Aplikacjapowinna zapewniać składowanie i odczyt utworzonych programów dla zamodelowanegorobota.Wizualizację 3D robota IRB1400 proponuje się wykonać na bazie aplikacji z systemu

GWELL[10]. Wskazane jest aby symulator mógł być przystosowany również dla innychrobotów z rodziny IRB. Oprócz tego pożądane jest, aby model robota został uzupełnionymodelem laboratorium 010, w którym aktualnie umieszczony jest rzeczywisty robot.

6 Założenia i cel pracy

Rozdział 3

Przegląd wybranych znanychrozwiązań

Niniejszy rozdział zawiera przegląd najbardziej znanych aplikacji służących do sy-mulowania i modelowania ruchów robotów przemysłowych. Wydawałoby się, że wraz zewzrostem popularności manipulatorów w przemyśle, wzrośnie liczba dostępnego do nichoprogramowania. W rzeczywistości jest jednak inaczej. Firmy zajmujące się produkcjąrobotów wydają oprogramowanie tylko dla konkretnych modeli, nie tworzą natomiastdodatkowego oprogramowania służącego lepszemu zapoznaniu się ze sprzętem.Oprogramowanie można podzielić na dwie grupy:

• Ogólnego przeznaczenia które możliwiają modelowanie i sterowanie dowolnie wy-myślonymi manipulatorami. Jednak w takim oprogramowaniu brak jest możliwościsterowania i programowania robota, które jest charakterystyczne dla konkretnegomanipulatora.

• Specjalistyczne oprogramowanie cechuje się bardzo dobrym odwzorowaniem spo-sobu programowania danych manipulatorów. Niestety zakres takiego oprogramowa-nia jest ogranicza się do robotów i manipulatorów danej firmy.

Przedstawione w tym rozdziale aplikacje stanawią tylko reprezentatywną część wszyst-kich dostępnych aplikacji. Przyczyną tego jest fakt, iż oprogramowanie jest przeznaczonegłównie dla firm i jest trudno dostępne dla indywidualnych użytkowników.

3.1 Robot Studio

Jest to rozbudowany pakiet firmy ABB[1] i jest przeznaczony jedynie dla manipulato-rów firmy ABB. Pakiet składa się z:

• ProgramMaker

• QuickTeach

• RobotStudio

• Virtual Robot Browser

Cały pakiet jest dostępny jedynie w wersji obsługiwanej przez platformę MS Windows.

8 Przegląd wybranych znanych rozwiązań

3.1.1 ProgramMaker

ProgramMaker jest inteligentnym edytorem umożliwiającym szybkie pisanie i mody-fikowanie programów oraz plików konfiguracyjnych. Wykorzystywany jest w nim językRapid[8], autorstwa firmy ABB, przeznaczony jedynie do użytku w manipulatorach tejfirmy. Oprogramowanie to w przejrzysty sposób ukazuje strukturę programu, a dodawanienowych instrukcji jest bardzo proste. Z ProgramMaker skraca się czas programowania,a program napisany z dala od ”zgiełku produkcyjnego” gotowy jest do natychmiastowegowykorzystania.Kolejnym atutem programu jest możliwość sprawdzenia jego poprawności bez koniecz-

ności wgrywania go do robota, co może być jednocześnie jego ”słabym punktem”, zewzględu na to, iż działania robota w konkretnej rzeczywistej sytuacji mogą nie korespon-dować z założeniami oprogramowania pomimo jego teoretycznej poprawności. Objawiasię to tym, że poprawnie napisany program przesłany do robota może nakazać mu wyko-nanie operacji, która nie będzie możliwa z uwagi na ograniczenia samego robota lub jegootoczenia.

Rysunek 3.1: ProgramMaker - interfejs.

3.1.2 QuickTeach

QuickTeach to wirtualne centrum szkoleniowe z TeachPendant’em działającym nakomputerze klasy PC. Prawie wszystko, co można wykonać na rzeczywistym TeachPen-dant’cie można również zrealizować w programie QuickTeach, pozwalającym jednocze-śnie obserwować efekty na wirtualnym robocie. Program wczytuje model robota i wersjesterownika do panelu zgodnie z wyborem w programie Virtual Robot Browser. Inter-fejs (rys. 3.2) jest bardzo przejrzysty i umożliwia w łatwy sposób zmianę pozycji panelijak i samego robota. Sterowanie całym robotem odbywa się wyłącznie za pomocą myszki.Wszystkie operacje są wybierane i wykonywane poprzez klikanie na odpowiednich klawi-szach panelu. Produkt firmy ABB korzysta z własnego języka Rapid[8]

3.1 Robot Studio 9

Aplikacja umożliwia czytanie i zapisywanie plików z programem i plików konfigura-cyjnych które następnie mogą zostać wykorzystane na fizycznym robocie. Natomiast nieumożliwia ona dodawania innych urządzeń, przeszkód i dodatkowych robotów do prze-strzeni roboczej. Ze względu na to, że wirtualny robot nie ma kontaktu z otoczeniem całazakładka związana z sygnałami jest niedostępna. W przypadku wykonania niedozwolo-nej operacji lub próby pracy poza zakres zasięgu robota na panelu pojawi się stosownykomunikat ostrzegawczy.Użytkownik nie potrzebuje rzeczywistego robota, aby nauczyć się jego obsługi, wy-

starczy, że będzie posiadać program QuickTeach, który jest idealnym narzędziem szko-leniowym.

Rysunek 3.2: QuickTeach - interfejs. Rysunek 3.3: QuickTeach - Ustawieniarobota.

Rysunek 3.4: QuickTeach - Program. Rysunek 3.5: QuickTeach - Praca ro-bota.

10 Przegląd wybranych znanych rozwiązań

3.1.3 RobotStudio

RobotStudio jest oprogramowaniem umożliwiającym programowanie oraz przeprowa-dzanie symulacji pracy robotów w trybie ”off-line” przy użyciu standardowego komputeratypu PC z systemem operacyjnym MS Windows.Aby umożliwić programowanie w trybie ”off-line” oprogramowanie RobotStudio wy-

korzystuje technologię VirtualRobot™ firmy ABB. Technologia VirtualRobot™ jestniezwykle ważna, gdyż to dzięki niej możliwe jest całkowite odwzorowanie rzeczywistegokontrolera robota w wirtualnym środowisku. Wykorzystanie sterownika VirtualRobot™powoduje, że tworzone programy są poprawne i gotowe do uruchomienia w rzeczywistejaplikacji.Oprogramowanie RobotStudio pracuje na zwykłych komputerach typu PC i zawiera

moduł ”Visual Basic for Applications” w celu dostosowania go do konkretnych po-trzeb i wymagań oraz zwiększenia jego funkcjonalności.Zastosowanie oprogramowania RobotStudio pozwala uzyskać:

• Redukcję ryzyka dzięki wizualizacji i potwierdzeniu zastosowanych rozwiązań.

• Wprowadzanie do systemu nowych komponentów bez przerywania produkcji.

• Optymalizację programów robotów w celu zwiększenia produktywności.

• Generowanie wyższej jakości produktów dzięki tworzeniu bardziej dokładnych ście-żek.

Aplikacja jest połączeniem ProgramMaker, QuickTeach i Virtual Robot i umoż-liwia pełne modelowanie przestrzeni roboczej. Dzięki bardzo rozbudowanej bazie kompo-nentów jest w stanie modelować i przetestować całą linie produkcyjną a nie tylko pozycjepracy jednego robota. Za pomocą menu możemy zaprogramować trajektorie pracy ro-bota bez konieczności używania panelu sterującego. Wczytywanie wcześniej przygotowa-nych otoczeń roboczych zwłaszcza na mniej wydajnych komputerach jest czasochłonne zewzględu na to, iż przestrzeń robocza jest bardzo rozbudowana.RobotStudio pozwala na znaczne oszczędności czasu i kosztów, co przekłada się na

bardzo szybki zwrot zainwestowanych w to oprogramowanie środków.

3.1 Robot Studio 11

Rysunek 3.6: RobotStudio - interfejs.

Rysunek 3.7: RobotStudio - Przykła-dowe stanowisko pracy.

Rysunek 3.8: RobotStudio - Sterowanieręczne robotem.

12 Przegląd wybranych znanych rozwiązań

3.1.4 Virtual Robot Browser

Ostatni program wchodzący w skład pakietu Robot Studio firmy ABB umożliwia wy-bieranie wersji sterownika, robota i jego parametrów które będzie używać podczas pracy zprogramem QuickTeach. Aplikacja umożliwia wybór robota od IRB-140 przez IRB-4400do IRB-940. Umożliwia również wybór pozycji pracy na podłożu bądź wersję podwieszonądo sufitu. W tym ostatnim przypadku możliwy jest także wybór robotów specjalistycz-nych z serii C250 i C500. Virtual Robot Browser pozwala utworzyć własnego robota,jego oprogramowanie, a nawet urządzenia towarzyszące i sposób komunikacji zewnętrznejz nim.

Rysunek 3.9: Virtual Robot Browser - interfejs.

3.2 RoboGuide 13

3.2 RoboGuide

RoboGuide firmy GeFanuc[2] to oprogramowanie symulacyjne, wykorzystujące wirtu-alny kontroler robota. Pozwala ono na symulację ruchu robota lub możliwości wykonaniazadania bez dostępu do rzeczywistych elementów stanowiska pracy.W skład programuRo-boGuide wchodzi wirtualny ręczny programator, wyglądający i działający identyczniejak prawdziwe urządzenie.

Rysunek 3.10: RoboGuide - interfejs.

Wirtualny programator jest używany do poruszania, programowania oraz symula-cji wirtualnego robota na komputerze PC. Roboty firmy GeFanuc wykorzystują językKarel[12] charakterystyczny dla wszystkich robotów tej firmy. W programie RoboGu-ide można stworzyć kompletne stanowisko z maszynami, przenośnikami taśmowymi orazwszystkimi przeszkodami, a następnie zaprogramować ścieżkę robota w celu symulacjiruchu i wydajności aplikacji zrobotyzowanej. Program ułatwia projektowanie wirtualnegostanowiska, poprzez udostępnienie możliwości importowania z oprogramowania CAD mo-deli poszczególnych elementów. W środowisku graficznym programu można zweryfikowaćzasięg robota, sprawdzić możliwość wystąpienia kolizji z otoczeniem, dokładnie oszacowaćczas trwania cyklu pracy oraz wykonać wizualizację (animację) jego przebiegu. Za pomocątego oprogramowania możliwa jest bardzo szybka i łatwa nauka programowania robotówGeFanuc. Ciekawym rozwiązaniem jest zastosowanie ”bańki”(rys. 3.10) która uwidacz-nia zasięg pracy roboty. Jest to bardzo przydatne gdyż ukazuje możliwość wystąpieniaewentualnej kolizji z otoczeniem bez konieczności uruchamiania programu.Oprogramowanie należy do specjalistycznych i jest przeznaczone jedynie dla robotów

14 Przegląd wybranych znanych rozwiązań

firmy GeFanuc. RoboGuide nie ma dużych wymagań, działa już na Pentium III 800MHz i 256 MB Ram-u. Aplikacja jest dostępna jedynie w wersji dla platformy Windows2000/XP i nowsze.

Rysunek 3.11: RoboGuide - Programowanie.

3.3 RoboWorks 15

3.3 RoboWorks

Kolejną aplikacją do modelowania jest RoboWorks firmy Newtonium[4]. Jest to spe-cyficzne oprogramowanie, gdyż umożliwia modelowanie różnorakich manipulatorów, po-nieważ nie jest przeznaczone do robotów konkretnej firmy. Spowodowane jest to faktem,iż program ten nie jest przeznaczony jedynie do modelowania i programowania robotówale może zostać wykorzystany również jako edytor grafiki 3D. RoboWorks podobnie jakpoprzednie oprogramowanie przedstawione w tym rozdziale jest przeznaczone jedynie dlasystemu MS Windows z wyjątkiem darmowej biblioteki służącej do obsługi interfejsukomunikacyjnego RoboTalk™ w postaci kodu źródłowego. Oprogramowanie to zostałozaprojektowane do łatwej budowy, symulacji i animacji dowolnie złożonych modeli robo-tycznych w trójwymiarowym środowisku.Dzięki rozbudowanej obsłudze komunikacji może ono z powodzeniem służyć jako pro-

gram wizualizacyjny dla zaawansowanych aplikacji symulacyjnych, gdyż posiada wbudo-wane interfejsy dla Matlaba, LabView i Visual Basica.RoboTalk™ udostępnia protokół komunikacyjny oparty na TCP/IP, pozwalający na

sterowanie modelem za pomocą aplikacji zewnętrznych. Zaprogramowany robot może byćsterowany poprzez podanie sekwencji zmiennych stanu z pliku tekstowego lub strumienia.Oprogramowanie umożliwia również sterowanie za pomocą klawiatury. Aplikacja oferujebardzo przyjazny i intuicyjny interfejs, za pomocą którego w łatwy i szybki sposób możliwejest zbudowanie nawet bardzo skomplikowanego gniazda produkcyjnego lub całej linii pro-dukcyjnej. Za pomocą panelu bocznego możliwe jest sterowanie przegubami jak równieżzmiana parametrów sterujących. Wszystkie elementy są automatycznie porządkowane wstrukturze drzewa i umieszczane na panelu.Aplikacja jest bardzo popularna wśród projektantów robotów, a pliki w formacie Ro-

boWorks SCN można znaleźć na stronach internetowych wielu instytucji i firm zajmują-cych się ich budową i sterowaniem. Wymagania aplikacji - 16MB Ramu i procesor klasyPentium - sprawiają, iż aplikacja jest przeznaczona dla każdego kto jest zainteresowanymodelowaniem robotów i ich sterowaniem.

Rysunek 3.12: RoboWorks - Sterowanierobotem Puma. Rysunek 3.13: RoboWorks - Konstru-

owanie robota.

16 Przegląd wybranych znanych rozwiązań

Rysunek 3.14: RoboWorks - Modelowa-nie.

Rysunek 3.15: RoboWorks - GniazdoProdukcyjne.

Rysunek 3.16: RoboWorks - Sterowanieklawiaturą.

Rysunek 3.17: RoboWorks - Robot”Trąba słonia”.

3.4 eM-Workplace 17

3.4 eM-Workplace

Ostatną z przedstawionych aplikacji do modelowania robotów jest eM-Workplacefirmy UGS PLM Software[7]. Umożliwia projektowanie, symulacje, optymalizacje i analizęwielu urządzeń robotycznych podczas pracy ”off-line”. Sprzyja to budowie stanowiska zop-tymalizowanego pod względem miejsca jak i czasu wykonywania cyklu. Z eM-Workplacemożna zaprojektować dowolne, ”pełne życia” stanowisko pracy czy całą linie produkcyjnąw grafice 3D. Aplikacja łączy w sobie łączy własną technologię ze sprawdzonymi aplika-cjami o szerokim zakresie zastosowania włączająć: miejscowe spawanie, spawanie łukie,laserowe cięcie, wiercenie i nitowanie.eM-Workplace modeluje równocześnie wszystkie fizyczne cechy robotów i innych

zautomatyzowanych urządzeń, umożliwiając użytkownikowi zweryfikować ograniczeniadostępności (docieranie do celu, definiowanie ścieżki, unikanie kolizji i obliczanie cyklupracy) podczas planowania. Wstępne budowy zautomatyzowanej produkcji może więc zo-stać zaprojektowane przed uruchomieniem procesu produkcyjnego.

Cechy:

• Współdziała z systemem MCAD

• Zawiera biblioteki z Robotami, maszynami i urządzeniami

• Modelowanie elementów

• Modelowanie złożonej kinematyki robotów i innych elementów

• Rozmieszczenie elementów pracy w przestrzeni 3D

• Modelowanie ścieżki 3D z wykrywaniem kolizji

• Modelowanie i optymalizacja pracy

• Umożliwia ruch i synchronizacje pracy wielu robotów i maszyn

• OLP (Programowanie ”off-line”)

– Zoptymalizowanie programów pobranych z gniazda, linii produkcyjnej

– Wgranie istniejących programów produkcji dla optymalizacji

Dzięki temu oprogramowaniu wzrasta jakość produkcji, dokładność i opłacalność. Apli-kacja znacznie ulepsza dokładność programu. Zwiększa możliwości wykorzystania dostęp-nego wyposażenia i skrócenia czasu pracy maszyn.

18 Przegląd wybranych znanych rozwiązań

Rozdział 4

Robot IRB-1400

Robot przemysłowy IRB-1400 składa się z dwóch części: manipulatora oraz sterow-nika (S4C). Manipulator posiada 6 stopni swobody. Poszczególne osie napędzane są sil-nikami prądu przemiennego za pośrednictwem przekładni i posiadają elektromechanicznehamulce, które blokują napędy po osiągnięciu zadanej pozycji. Sterownik robota wyposa-żony jest w wydajną jednostkę centralną, dwa dodatkowe komputery obsługujące układysterowania silników oraz sprzęgi komunikacyjne. Robot posiada złącza RS232, RS422 oraz2 złącza CAN przeznaczone do obsługi sensorów zewnętrznych, a ponadto wejścia i wyjściaanalogowe i cyfrowe.IRB 1400 jest sześcioosiowym robotem przemysłowym, zaprojektowanym do zastoso-

wań przemysłowych. Przedmiotowy robot posiada otwartą strukturę specjalnie dostoso-waną do elastycznego użycia i potrafi komunikować się z zewnętrznymi systemami. IRB1400 wyposażony jest w system operacyjny BaseWare OS, który nadzoruje ruch, wywo-ływanie i wykonywanie aplikacji, komunikację programów itd. Dla zwiększenia funkcjonal-ności, IRB 1400 może zostać wyposażony w opcjonalne oprogramowanie (np. do klejenia,spawania, komunikacji sieciowej, kontroli sensorów).Robot IRB 1400 podaje współrzędne narzędzia (tool center point - TCP) we współ-

rzędnych zewnętrznych z dokładnością do dziesiętnych milimetra. Ułatwia zadanie, gdyżnie jest konieczne wyznaczanie punktu za pomocą kinematyki odwrotnej. Istnieje równieżmożliwość zdefiniowania innych narzędzia (o różnych wymiarach, wadze, orientacji)

Rysunek 4.1: IRB1400 - Sterownik S4C.

20 Robot IRB-1400

Na przedniej stronie sterownika znajduje się panel operatora (rys. 4.1). Zawiera onprzycisk startu silników, stopu awaryjnego, stacyjkę i licznik roboczogodzin.

Rysunek 4.2: IRB1400 - Teach Pendant

Do sterownika (S4C) za pomocą kabla podłączony jest ręczny panel sterujący(rys. 4.2).Służy on do ręcznego programowania i sterowania robotem. Wszystkie informacje zwią-zane ze stanem i zachowaniem robota wyświetlane są w postaci okien, rozwijanych menu,dialogów i klawiszy funkcyjnych. Wszelkie operacje dostępne na robocie można wykonaćza pomocą panelu.Do ręcznego sterowania robotem wykorzystany jest joystick umieszczony na panelu

sterowania. Posiada on 3 stopnie swobody (ruch x,y oraz ruch obrotowy). Prędkość ruchurobota jest proporcjonalna do wychylenia wolantu. Joystick charakteryzuje się inercją -robot wykonuje ruch z pewnym opóźnieniem. Jest to zabezpieczenie przed przypadkowymporuszeniem joystick’a. Na panelu sterowania znajduje się również przycisk służący dowłączenie zasilania silników. Przycisk ten posiada trzy możliwe położenia:

1. niewciśnięty,

2. lekko wciśnięty,

3. mocno wciśnięty.

Jest to kolejne zabezpieczenie gdyż tylko położenie drugie umożliwia pracę silników. Za-bezpiecza to przed sytuacjami gdy operator robota np.:

• straci przytomność w wyniku czego puści przycisk (położenie 1 - silniki wyłączone),

• pod wpływem skurczu mieści wciśnie przycisk mocno (położenie 3).

Sterowanie w trybie ręcznym nie jest natomiast możliwe podczas pracy programu lub gdyzostał wciśnięty przycisk ”STOP awaryjny”.

21

Rysunek 4.3: Wnętrze sterownik S4 - widok z przodu

Rys. 4.3 przedstawia widok przedniej części wnętrza sterownika S4C z zaznaczeniempodstawowych elementów:

1. jednostka sterująca 1,

2. jednostka sterująca 2,

3. jednostka sterująca 3,

4. DC link,

5. transformator,

6. jednostka pomocnicza,

7. komputer robota DSQC 363,

8. płyta pamięci DSQC 317,

9. główny komputer DSQC.

22 Robot IRB-1400

Rysunek 4.4: Wnętrze sterownik S4 - widok z góry

Natomiast na rys. 4.4 przedstawiony został widok górnej części wnętrza sterownika S4z zaznaczeniem podstawowych elementów:

1. płyta pomiarowa DSQC 313,

2. moduł wejść/wyjść AD combi DSQC 327 (2x8 wyjść cyfr., 2x8 wejść cyfr., 2 wyjściaanalogowe),

3. tablica rozdzielcza (Panel unit),

4. backplane,

5. baterie litowe.

23

Manipulator ze względu na swoją konstrukcję posiada pewne ograniczenia ruchu.

oś Rodzaj ruchu zakres1 obrót +170◦do− 170◦2 ruch dolnego ramienia +70◦do− 70◦3 ruch górnego ramienia +70◦do− 65◦4 obrót górnego ramienia +150◦do− 150◦5 zgięcie nadgarstka +115◦do− 115◦6 obrót nadgarstka +300◦do− 300◦

Tablica 4.1: Zakresy przegubów manipulatora

Rysunek 4.5: Zakres pracy manipulatora

Dokładność pozycjonowania jest duża, ok. 0.15 - 0.30mm. Rozdzielczość każdej z osiwynosi ok. 0.01◦ i jest ona otrzymywana z resolverów (zasilanych napięciem 5V o często-tliwości 4kHz). Wartość bezwzględna otrzymywana jest przez podtrzymywane bateryjnieliczniki obrotowe resolvera w płycie pomiaru szeregowego (SMB).

24 Robot IRB-1400

Rozdział 5

Kinematyka

Algorytm Denavita-Hartenberga[13] wyznaczania kinematyki polega na związaniu zkażdym przegubem lokalnego układu współrzędnych, a następnie określeniu ciągu trans-formacji sąsiednich układów współrzędnych i prowadzi do wyliczenia kinematyki manipu-latora, jako złożenia tych transformacji.Kinematyka manipulatora określa położenie i orientacje układu związanego z efektoremwzględem układu globalnego i jest opisana złożeniem transformacji elementarnych, takichjak:

Aii−1 (qi) = Rot (Z, θi)Trans (Z, di)Trans (X, ai)Rot (X,αi)

gdzie ai = const i αi = const. A sama kinematyka, wyliczona przy pomocy algorytmuDenavita-Hartenberga (wymnożenie kolejno macierzy transformacji elementarnych) mapostać:

K (q) =n∏i=1

Aii−1 (qi) =[Rn0 (q) T

n0 (q)

0 1

]Odwzorowanie to nazywamy reprezentacją kinematyki wg. Denavita - Hartenberga.

Równania kinematyki prostej robota IRB1400 (patrz rys. 5.1, 5.2) zgodnie z notacjąDenavita-Hartenberga:

A10 = Rot(Z, q1) ∗ Trans(Z, l1) ∗ Trans(X, l2) ∗Rot(X, π2 )A21 = Rot

(Z, q2 − π2

)∗ Trans(X, l3)

A32 = Rot(Z, q3 − q2) ∗ Trans(X, l4) ∗Rot(X,−π2 )A43 = Rot(Z, q4) ∗ Trans(Z, l5) ∗Rot(X, π2 )A54 = Rot(Z, q5) ∗Rot(X,−π2 )A65 = Rot(Z, q6 + π) ∗ Trans(Z, l6)

K = A10 ∗ A21 ∗ A32 ∗ A43 ∗ A54 ∗ A65

Oznaczenia:q1 ÷ q6 − rotacja przegubu 1÷ 6l1 − 475 mml2 − 150 mml3 − 600 mml4 − 120 mml5 − 720 mml6 − 85 mm

26 Kinematyka

Rysunek 5.1: IRB1400 - Struktura kinematyki

Rysunek 5.2: IRB1400 - Oznaczenie osi

Rozdział 6

Organizacja Systemu Sofi Robot

Rozdział ten zapoznaje z ogólną strukturą i organizacją systemu Sofi Robot, któryjest tematem niniejszej pracy. Przedstawiony system realizuje następujące zadania:

• modelowanie robotów i scen w formie bryły złożonej,

• łączenie bryły robota z bryłami scen, tworząc intereaktywną całość,

• sterowanie i programowanie robotów z rodziny IRB.

Bardziej szczegółowe informacje dotyczące obsługi aplikacji zostały opisane w roz-dziale 8.

6.1 Idea Systemu Sofi Robot

Model systemu Sofi Robot został przedstawiony na diagramie (rys. 6.1), który uwi-dacznia zależności i współdziałania między obiektami klas systemu. Pokazuje on równieżrelację między systemami sterowania i wizualizacji.System wizualizacji inicjalizuje system sterowania i przekazuje mu wskaźnik do wczy-

tanych modeli. Ponadto sprawdza czy wczytana bryła złożona zawiera model robota. Poznalezieniu obiektu zostaje uruchomiony panel sterowania umożliwiający pracę robota wdwóch trybach: ręcznym (za pomocą dżojstika) i programowym (za pomocą menadżeraprogramu). Dżojstik i jego obsługa są integralną cześcią panelu sterującego. Wykonanieruchu powoduje zmianę wartości nastaw przegubów w systemie sterowania. Następniesystem sterowania wylicza kinematykę robota. Wyliczone wartości przekazywane są domodelu robota, którego modyfikują. Jednocześnie system sterowania informuje systemgraficzny, który wizualizuje dokonane zmiany. System sterujący może ponadto zarządzaćsygnałami wychodzącymi z robota jak również z otoczenia.

28 Organizacja Systemu Sofi Robot

Rysunek 6.1: Sofi Robot - Diagram Klas

6.2 System Wizualizacji

System graficzny został zrealizowany na bazie aplikacjimodeler[9], systemuGWELL.Uruchamia on zarówno system wizualizacyjny jak też system sterowania robota. Są to dwaosobne wątki współpracujące ze sobą. W celu korzystania z systemu sterowania koniecznejest jednak wcześniejsze wczytanie modelu do systemu graficznego. Powoduje to przeka-zanie wskaźnika na obiekt robota do systemu sterowania pozwalając nim sterować.Główne zadania realizowane przez system to między innymi:

• ładowanie sceny,

• modelowanie sceny,

• wizualizacja ruchu robota,

• rysowanie zrealizowanej trajektorii,

• renderowanie obrazu.

6.3 System Sterowania 29

6.3 System Sterowania

System sterowania jest integralną częścią aplikacji Sofi Robot, żeby z niego korzystaćkonieczne jest wczytanie modelu do systemu graficznego, który inicjalizuje omawiany sys-tem. Umożliwia on użytkownikowi sterowanie robotem IRB1400 i komunikację z systememwizualizacyjnym, animującym ruchy robota.

6.3.1 Panel sterowania (PanelInterface)

Digram interakcji przedstawiony na rysunku 6.2.

Rysunek 6.2: Diagram interakcji panelu sterowania.

Panel sterowania interpretuje polecenia użytkownika. Naciśniecie klawisza na panelupowoduje sprawdzenie, który obiekt ma dostęp do ekranu. Po uzyskaniu potrzebnej infor-macji do danego obiektu przesyłana jest wartość naciśnietego klawisza. Dany obiekt pozinterpretowaniu polecenia wykonuje zlecone zadanie. Po wykonaniu zadania łączy się zekranem panelu i wyświetla na nim powstały efekt. W przypadku stwierdzenia, że infor-macja przeznaczona jest dla innego obiektu (niż ten który obecnie ma dostęp do ekranu),panel sterujący umożliwia dostęp do ekranu właściwemu obiektowi.W przypadku korzystania przez użytkownika z dżojstika panel przekazuje na bieżąco

wszystkie informacje o dokonywanym ruchu do obiektu klasy robot. Obiekt reprezentującynastawy robota może poinformować panel sterujący o zmianie swoich wartości. Wtedypanel łączy się z system wizualizacyjnym i przekazuje mu aktualne nastawy robota, celemanimacji dokonanego ruchu.Panel jest jedynym obiektem mającym dostęp do systemu wizualizacyjnego. Panel

sterujący jest pośrednikiem łączącym ze sobą obiekty innych klas. Tworzy on pojedynczeobiekty dla każdej z klas.

30 Organizacja Systemu Sofi Robot

6.3.2 Zarządca programu (ProgramManager)

Obiekt ten łączy się z obiektem klasy Robot pozwalając użytkownikowi stworzenieprogramu. Umożliwia wyświetlanie na ekranie informacji pobranych z obiektu robot.ProgramManagerma dostęp do dysku, pozwalając na wczytywanie i zapisywanie programuprzechowywanego w robocie. Potrafi on również wykonać wcześniej napisany program. Narysunku 6.3 przedstawiony jest diagram działań zarządcy programu.

Rysunek 6.3: Diagram interakcji zarządcy programu.

6.3.3 Informacje wejścia/wyjścia

Obiekt ten potrafi komunikować się z otoczeniem robota. Ma możliwość wyświetlaniana ekranie informacji o stanie sygnałów robota. Tworzy co najmniej jeden, a maksymalnie4 grupy sygnałów (klasa signals). Każda z tych grup może zawierać dowolną ilość sygna-łów. Wszystkie obiekty klasy signals sa powiązane z wspólnym obiektem nadrzędnym(IOWindow).

6.3 System Sterowania 31

6.3.4 Robot

Obiekt tej klasy przechowuje wszystkie ustawienia robota jak również program dlaniego. Tworzy obiekt klasy Program, w którym zapisany jest zbiór procedur i instruk-cji dla robota. Liczba tworzonych procedur programu może być różna minimum jedna.Wszystkie obiekty procedur powiązane są z jednym obiektem reprezentującym program.Każda procedura może tworzyć dowolną liczbę instrukcji powiązanych z nią. Analogiczniesytuacja wygląda z obiektami parametrów. Zmiana jednego z z parametrów obiektu tejklasy powoduje poinformowanie o zmianie panelu sterującego. Obiekt otrzymuje dostępdo ekranu od panelu, a następnie wyświetla na nim dokonane zmiany. Diagram zależnościprzedstawia rysunek 6.4.

Rysunek 6.4: Sofi Robot - Szczegółowy diagram klasy RRobot

32 Organizacja Systemu Sofi Robot

Rozdział 7

Możliwości rozszerzeń systemuSofi Robot

Aplikacja posiada charakter otwarty pozwalający na jej rozbudowę. Dzięki temu stajesię bardziej uniwersalna i może być wykorzystywany do dużo większej liczby zadań.Możliwości rozszerzenia systemu Sofi Robot:

1. Możliwość dodania nowych poleceń,

2. Obsługa robotów z rodziny IRB,

3. Kienamatyka odwrotna.

7.1 Dodawanie nowych poleceń

W aplikacja nie wszystkie polecenia zostały zaimplementowane ponieważ język RAPIDjest bardzo rozbudowany. Stworzono strukturę umożliwiającą łatwe rozszerzenie systemuo brakujące instrukcje.W celu dodania nowej instrukcji należy edytować bibliotekę command.lib (standar-

dowo znajdującą się w katalogu ”libs”). Następnie dopisać do niej nową pozycję zgodnieze standardem opisanym w rozdziale 7.1.1. Na rysunku 7.1 i 7.2 przedstawiono efektprawidłowego i złego dodania polecenia do biblioteki.

Rysunek 7.1: Złe dodanie instrukcji. Rysunek 7.2: Prawidłowe dodanieinstrukcji.

34 Możliwości rozszerzeń systemu Sofi Robot

Gdy instrukcja została prawidłowo dodana do biblioteki system będzie odtąd ją prawi-dłowo wyświetlał. Następnie należy wykonać trudniejszą część, zaimplementować obsługędanej instrukcji. Należy edytować metodę Execute klasy Running i dopisać metodę lubczynności jakie powinny być zrealizowane przez daną instrukcje. Na lewym rysunku 7.3przedstawiony pustą metodę Execute, a na prawym przykładowe dodanie metody dowykonania polecenia 15 (Comment) (patrz rys. 7.4).

Rysunek 7.3: Metoda Execute bez me-tod

Rysunek 7.4: Metoda Execute z dodanąmetodą

7.1 Dodawanie nowych poleceń 35

7.1.1 Format pliku z komendami

Struktura biblioteki poleceń:

Command < numer polecenia >< nazwa > < change > < visible > < replace > < typ > < value >< nazwa > < change > < visible > < replace > < typ > < value >...

Opis pól:

• nazwa - określa nazwę parametru,

• change - określa czy można zmieniać wartość visible danej pozycji,

• visible - określa czy dany parametr jest wyświetlany w programie,

• replace - określa czy pokazanie tego parametru spowoduje ukrycie innego. War-tość ”-1” - brak reakcji, wartość 0 - pokazanie tego parametru spowoduje ukrycieparametru pierwszego, itd.

• typ - typ zmiennej:

– 0 - string,

– 1 - double,

– 2 - bool,

– 3 - position,

– 4 - string bez możliwości zmiany wartości.

• value - początkowa wartość parametru.

Numer polecenia i jego znaczenie znajduje się w rozdziale 7.1.2. Natomiast informacji natemat znaczenia danej instrukcji (z jakich parametrów się składa i jakich są one typów)należy szukać w instrukcji języka RAPID[8].Fragment biblioteki poleceń:

Command 63Conc 1 0 -1 4 *CirPaint 0 0 -1 3 *TOPoint 0 0 -1 3 *V 1 0 5 0 v1000T 1 0 4 1 50Zone 0 0 -1 0 fineZ 1 0 -1 1 50Inpos 1 0 -1 1 0Tool 0 0 -1 0 toolsWObj 1 0 -1 0 wobjCorr 1 0 -1 4 0END

36 Możliwości rozszerzeń systemu Sofi Robot

7.1.2 Tablica poleceń

W poniżej tabeli znajdują się numery instrukcji wraz z ich znaczeniem. Jest to kom-pletna lista instrukcji możliwych do zaimplementowania w systemie Sofi Robot.

nr opis nr opis nr opis nr opis0 IF 30 ClkStop 60 Load 90 SoftDeact1 WHILE 31 CnvGenInstr 61 MechUnitLoad 91 SpyStart2 FOR 32 ConfJ 62 MoveAbsJ 92 SpyStop3 TEST 33 ConfL 63 MoveC 93 StartLoad4 GOTO 34 DeactUnit 64 MoveCDO 94 StartMove5 ProcCall 35 Decr 65 MoveJ 95 SToolRotCalib6 Label 36 DitherAct 66 MoveJDO 96 SToolTCPCalib7 := 37 DitherDeact 67 MoveL 97 Stop8 RETURN 38 EoffsOff 68 MoveLDO 98 StopMove9 RAISE 39 EOffsOn 69 MToolRotCalib 99 SYS POWERON10 CONNECT 40 EOffsSet 70 MToolTcpCalib 100 SYS RESET11 EXIT 41 EraseNodeule 71 PathAccLim 101 TestSignDefin12 RETRY 42 ErrWrite 72 PathResol 102 TestSignReset13 TRYNEXT 43 ExitCycle 73 PDispOff 103 TPErase14 Compact IF 44 GetSysData 74 PDispOn 104 TPReadFK15 Comment 45 GripLoad 75 PDispSet 105 TPReadNum16 AccSet 46 IDelete 76 PulseDO 106 TPShow17 AccUnit 47 IDisable 77 Reset 107 TPWrite18 Add 48 IEnable 78 RESTORE IO 108 TuneReset19 Break 49 Incr 79 Save 109 TuneServo20 CallbyVar 50 IvertDO 80 SCWrite 110 Unload21 CalPendelum 51 IODisable 81 SearchC 111 VelSet22 CalPendelumProc 52 IODNGetAttr 82 SearchL 112 WaitDI23 CancelLoad 53 IODNSetAttr 83 Set 113 WaitDO24 CirPathMode 54 IOEnable 84 Set AO 114 WaitLoad25 CirPathReori 55 ISignalDI 85 Set DO 115 WaitTime26 Clear 56 ISignalDO 86 Set GO 116 WaitUntil27 ClearPath 57 ISleep 87 SingArea 117 WorldAccLim28 ClkReset 58 ITimer 88 SkipWarn29 ClkStart 59 IWatch 89 SoftAct

Tablica 7.1: Polecenia języka RAPID

7.2 Obsługa robotów rodziny IRB 37

7.2 Obsługa robotów rodziny IRB

Roboty z rodziny IRB bazują na tym samym sterowniku dlatego możliwe jest dodanieich do systemu Sofi Robot. Obsługa szerokiego grona robotów IRB poszerza możliwościaplikacji i zwiększa jej uniwersalność. W połączeniu z możliwością modelowania stanowi-ska robotycznego, pozwala stworzyć nowe niezależne systemy.W celu obsługi robotów z rodziny IRB konieczne jest wykreowanie robota w sys-

temie wizualizacyjnym z rzeczywistymi wymiarami. Wymiary podawane są w centyme-trach. Przedstawienia wizualizacji ruchu robota jest możliwe przez dodanie jego kinema-tyki(1) z uwzględnieniem ograniczeń przegubów(2) (których opis powinien być następu-jący ′′Przegub < numer >′′ (3)). Powyższa operacja przedstawiona jest na rysunku 7.5.

Rysunek 7.5: Dodawanie kinematyki do modelu robota

W celu uzyskania możliwości sterowania robotem za pomocą panelu, wymagane jestżeby został on nazwany ”IRB < model >” (4) (np. IRB 1400, IRB 4200). Dodatkowonależy zmodyfikować plik konfiguracyjny robots.lib (opis. 7.2.1). Poprawna praca no-wego robota możliwa jest po ponownym uruchomieniu aplikacji.

38 Możliwości rozszerzeń systemu Sofi Robot

7.2.1 Struktura biblioteki robotów

Struktura pliku:

IRB < model >< Rotacja(Z) >, < Translacja(Z) >, < Translacja(X) >, < Rotacja(X) >< Rotacja(Z) >, < Translacja(Z) >, < Translacja(X) >, < Rotacja(X) >< Rotacja(Z) >, < Translacja(Z) >, < Translacja(X) >, < Rotacja(X) >< Rotacja(Z) >, < Translacja(Z) >, < Translacja(X) >, < Rotacja(X) >< Rotacja(Z) >, < Translacja(Z) >, < Translacja(X) >, < Rotacja(X) >< Rotacja(Z) >, < Translacja(Z) >, < Translacja(X) >, < Rotacja(X) >END

Wartości translacji podaje się w ”milimetrach” a rotację w ”stopniach”. Opis kinematykirobota IRB1400 przedstawiony został w rozdziale 5. Plik konfiguracyjny przeznaczony dlarobota IRB1400 wygląda następująco:

IRB 14000,475,150,-90-90,0,600,00,0,120,-900,720,0,900,0,0,-90180,85,0,0END

7.3 Kinematyka odwrotna 39

7.3 Kinematyka odwrotna

W aplikacji nie została zaimplementowana kinematyka odwrotna. Dodanie kinematykiodwrotnej pozwoli obsłużyć brakujące polecenia sterowania robotem we współrzędnychzewnętrznych. W celu dodania kinematyki należy edytować klasę kinematic i następniewypełnić metodę InverseKinematics(x,y,z,phi,theta,psi). Po wyliczeniu kinema-tyki powinien zostać wrócony wektor zawierający nastawy przegubów robota. Wartośćmetody jest wykorzystana do wyznaczenia kwaternionów1.

1Kwaterniony są bardziej zwięzłą metodą opisu rotacji ”narzędzia” robota na podstawie macierzyrotacji. Kwaterniony są wyliczane z pól macierzy rotacji.

40 Możliwości rozszerzeń systemu Sofi Robot

Rozdział 8

Interfejs Aplikacja Sofi Robot

Aplikacja Sofi Robot jest interaktywnym system modelowania stanowiska robotycz-nego z możliwością sterowania robotem rodziny IRB firmy ABB[1].Interfejs tej aplikacji został w całości zrealizowany z wykorzystaniem biblioteki Qt

firmy TrollTech[6] (wersja 3.3.7), natomiast do wizualizacji obiektów wykorzystano in-terfejs OpenGL firmy Silikon Graphics[5]. Biblioteka Qt oferuje specjalną klasę QGL-Widget, która umożliwia umieszczenie okna OpenGL. W pracy wykorzystano bibliotekęlibQGLViewer (wersja 2.2.5) autorstwa Gilles’a Debunne[3]. QGLViewer jest rozszerze-niem klasy QGLWidget i znacznie rozszerza zakres jej funkcjonalności. Do modelowa-nia obiektów korzystano z biblioteki VIONA[11] (wersja 2.2.4). VIONA (VIrtual rOboteNvironment librAry) jest obiektowo zorientowaną biblioteką do modelowania brył geo-metrycznych wraz z uwzględnieniem powiązań kinematycznych w postaci otwartego łań-cucha o strukturze drzewa. Powyższa biblioteka nie została wyposażona w żaden elementwiążący ją z jakimkolwiek systemem graficznym.Program pakietu Sofi Robot dotychczas był kompilowany i testowany na platformie

Linux i386, x86 64, ponadto użytkownik posiada możliwość pracy z aplikacją w dowolnymjęzyku (standardowo możliwa jest praca z wykorzystaniem języka angielskiego i polskiego).

Obszar roboczy początkowo składa się z czterech okien edycyjnych (patrz rys. 8.1),które znajdują się z prawej strony panelu narzędziowego, dodatkowo każde okno edycji po-siada własne ( posiadające możliwość ukrycia ) menu pozwalające sterować parametramiwyświetlania za pomocą myszy. Poniżej znajduje się panel statusu, w którym aplika-cja wyświetla informacje o dokonywanych operacjach. System graficzny pozostaje bardzoelastyczny - każde okno może zostać dowolnie skalowane lub ukryte. Wczytanie modeluinicjuje również wywołanie panelu sterującego robota, a zdefiniowane skróty klawiszowepozwalają na przyspieszenie pracy programu.

42 Interfejs Aplikacja Sofi Robot

8.1 Interfejs Sofi Robot-a

Rysunek 8.1: Sofi Robot - Interfejs użytkownika

Interfejs można podzielić na dwie części:

1. Wizualizacja

2. Panel Sterujący.

Wizualizaja

Nad oknami edycyjnymi znajdują się zakładki (patrz rys. 8.2) sterujące lewym panelemnarzędziowym. Istnieje również możliwość przełączania zakładek przy użyciu klawiszy 1-7.

Rysunek 8.2: Sofi Robot - Zakładki

Dokładny opis poszczególnych okien opisany jest w pracy Przemysława Jakwerta[9].

8.1 Interfejs Sofi Robot-a 43

Po prawej stronie znajduje się globalne menu (patrz rys. 8.3), które ustawia właściwościwszystkich okien edycyjnych.

Rysunek 8.3: Sofi Robot - globalne menu

Poszczególne kontrolki tego menu umożliwiają:

1. przejście w tryb poruszania kamery (klawisz C),

2. dopasowanie widoku do rozmiarów sceny (F),

3. wyświetlanie siatki (G, H - siatka 3D),

4. wyświetlanie osi układów współrzędnych (Alt+A),

5. pokazywanie kształtów świateł (Alt+L),

6. zmianę domyślnego kierunku rzutowania (dowolny, z góry, z boku z przodu),

7. wybór trybu wyświetlania:

• w postaci siatki (Alt+W),

• prosty rendering (Alt+S),

• z teksturowaniem (Alt+T),

8. wybór rzutowania (ortogonalne (O) lub perspektywiczne (P).

Każde okno edycyjne posiada dodatkowe dwie opcje: zrzut obrazu widoku do plikugraficznego (9) (Ctrl+S) oraz maksymalizacja aktualnego widoku (Ctrl+M) na całyobszar roboczy (10).

44 Interfejs Aplikacja Sofi Robot

8.2 Panel Sterowania

Panel sterowania (patrz rys. 8.4) zawiera elementy interfejsu użytkownika. Przy jegopomocy przeprowadzane zostają wszystkie operacje programowania i ręcznego sterowa-nia robotem. Początkowo panel zostanie uruchomiony samoistnie podczas wczytywaniamodelu. Jego późniejsze ukrywanie i wywoływanie możliwe jest za pomocą klawisza F10.

Rysunek 8.4: Sofi Robot - Panel Sterowania

Pole tekstowe na którym wyświetlane są wszystkie informacje związane z panelemsterującym dalej nazywane jest ”ekranem”.Na panelu wyróżnić można 4 główne sekcje: Jogging, Program, Input/Output,

Misc. Każda umożliwia dostęp do odmiennych informacji o robocie i sposobie jego stero-wania. Poszczególne sekcje w dalszej części pracy zwana jest oknem np. Okno Jogging.

8.2 Panel Sterowania 45

8.2.1 Okno Jogging

Należy wybrać przycisk na panelu, aby wykorzystać Jogging (patrz rys. 8.5).Umożliwiaon ręczne sterowanie robotem oraz wyświetlenie informacji o nim.

Rysunek 8.5: Sofi Robot - Okno Jogging

Poruszanie się po ekranie odbywa się za pomocą klawiszów nawigacyjnych. OknoJogging pozwala zmienić ustawienia pracy robota:

Coord

Umożliwia zmienę układ odniesienia robota:

• World - układ współrzędnych umieszczony jest w otoczeniu,

• Base - układ współrzędnych znajduje się w podstawie robota,

• Tool - układ współrzędnych znajduje się na narzędziu,

• Wobj - układ współrzędnych znajduje się na obiekcie w przestrzeni roboczej robota.

Tool

Określa narzędzie jakie zostało zamontowane na efektorze. Standardowo wybrany jestsam efektor.

Wobj

Umożliwia wybranie obiektu w przestrzeni robota i związanie z nim układu odniesienia.

46 Interfejs Aplikacja Sofi Robot

Joystick Lock

Umożliwia zablokowanie sterowania poszczególnymi osiami dżojstika. W przypadkublokady którejś z osi nadal będzie możliwa zmiana położenia dżojstika na panelu sterują-cym jednak zmiany te nie będą miały odniesienia w położeniu robota. Blokady osi mogąbyć wyłączone całkowicie (patrz rys. 8.6) lub można je łączyć jeśli zachodzi tak potrzeba(patrz rys. 8.7).

Rysunek 8.6: Joystick Lock - brak blo-kad.

Rysunek 8.7: Joystick Lock - blokadaosi OX i OZ.

Incremental

Określa dokładność pozycjonowania robota. Do jego zmiany można również użyć przy-cisku .Dopuszczalne wartości:

• No - ruch ciągły,

• Small - zmiana położenia o 0.05mm lub 0.01o,

• Medium - zmiana położenia o 0.1mm lub 0.1o,

• Large - zmiana położenia o 0.5mm lub 0.5o,

• User - wielkość zmian określa użytkownika (patrz rys. 8.9).

Okno Jogging zawiera menu Special (patrz rys. 8.8) pozwalające zmienić ustawieniarobota.

Rysunek 8.8: Okno Jogging - Menu Special

1 Align

Pozwala ustawić jaki system współrzędnych ma być użyty po wybraniu pozycji ”World”.

8.2 Panel Sterowania 47

2 Increments

Określa dokładność pozycjonowania (patrz rys. 8.9) jaka ma zostać wykorzystana wprzypadku wybraniu trybu User na pozycji Incremental.

Rysunek 8.9: Menu Special - Pozycja Increments

3 Motion Supervision

Umożliwia włączenie lub wyłączenie wykrywania kolizji. Tryb ten działa tylko w oknieJogging.

4 Preferences

Pozwala wybrać które pozycje mają być widoczne w oknie Jogging (patrz rys. 8.10).

Rysunek 8.10: Menu Special - Pozycja Preferences

48 Interfejs Aplikacja Sofi Robot

8.2.2 Sterowanie ręczne

Sterowanie odbywa się za pomocą myszki w oknie dżojstika (patrz rys. 8.11). Naci-śniety środkowy klawisz myszy i jej poruszanie odpowiadzialne jest za ruch względem osiOX i OY. Lewy i prawy przycisk myszy służy do rotacji względem osi OZ. Prędkość ruchupozostaje proporcjonalna do wychylenia (patrz rys. 8.12).

Rysunek 8.11: Fragment panelu -Okno dżojstika.

Rysunek 8.12: Ruch dżojstika.

W przypadku próby wykonania ruchu poza strefę robota operacja ta zostanie wstrzy-mana i na ekranie pojawi się ostrzegawczy komunikat (patrz rys. 8.13). Naciśnięcie kla-wisza Enter spowoduje zniknięcie komunikatu i powrót użytkownika do pracy w oknieJogging.

Rysunek 8.13: Okno Jogging - Komunikat ostrzegawczy

Sterowanie ręczne może odbywać się we współrzędnych wewnętrznych robota (patrzrys. 8.14) (tj. przez sterowanie osobno każdą osią) bądź we współrzędnych zewnętrznych(patrz rys. 8.15) (co umożliwia sterowanie niezależnie każdą współrzędną położenia i orien-tacji efektora). Współrzędne wewnętrzne podzielone zostały na dwie części. W pierwszejznajdują się osie 1, 2 i 3 a w drugiej 4, 5 i 6. Współrzędne zewnętrzne również podzie-lone zostały na dwie części: sterowanie położeniem efektora (ruch liniowy) oraz sterowanieorientacją.

8.2 Panel Sterowania 49

Sterowanie we współrzędnych wewnętrznych

Rysunek 8.14: Okno Jogging - Sterowanie we współrzędnych wewnętrznych.

Sterowanie we współrzędnych zewnętrznych

Rysunek 8.15: Okno Jogging - Sterowanie we współrzędnych zewnętrznych.

50 Interfejs Aplikacja Sofi Robot

Wybór trybu sterowania (patrz rys. 8.16) odbywa się przy użyciu przycisków umiesz-czonych po prawej stronie ekranu panelu sterującego.

Rysunek 8.16: Okno Jogging - Tryb sterowania.

Znaczenie przycisków zostało przedstawione na rysunku 8.17.

Rysunek 8.17: Oznaczenie przycisków wyboru trybu sterowania.

Opis:

1. robot/paleta - umożliwia dokonanie wyboru obiektu sterowania,

2. reorientacja/ruch liniowy - ruch we współrzędnych zewnętrznych, zmiana orientacjiefektora lub jego przemieszczenie,

3. osie 1,2,3/osie 4,5,6 - ruch we współrzędnych wewnętrznych, sterowanie poszczegól-nymi osiami.

8.2 Panel Sterowania 51

8.2.3 Okno Program

Aby przełączyć na tryb programowania (patrz rys. 8.18) należy wybrać na pa-nelu sterowania. Programowanie robota następuje za pomocą sekwencji poleceń i funkcji.Umożliwia również wczytywanie, zapisywanie programów w języku RAPID.

Rysunek 8.18: Okno Program.

W celu rozpoczęcia programowania należy rozwinąć menu File (patrz rys. 8.19). Wczy-tać istniejący program z dysku lub utworzyć nowy.

Rysunek 8.19: Okno Program - Menu File.

52 Interfejs Aplikacja Sofi Robot

Tworzenie nowego programu

Po wybraniu pozycji New ukaże się ekran (patrz rys. 8.20) na którym za pomocą kla-wiatury numerycznej(1) tworzymy nazwę programu. W celu zmiany zestawu używanychznaków (2) posługujemy się strzałkami(3). W celu skasowania znaku należy użyć klawisza

delete lub przycisku .

Rysunek 8.20: Menu File - Pozycja New.

Po utworzeniu nowego programu (patrz rys. 8.21) można dodać nowe polecenia lubnowe procedury (wątki).

Rysunek 8.21: Okno Program - nowy program.

8.2 Panel Sterowania 53

Dodawanie nowych instrukcji

Jeśli chcemy dodać nowe instrukcje konieczne jest rozwinięcie menu IPL1 (rys. 8.22)lub IPL2(rys. 8.23), a następnie wybór grupy komend, która nas interesuje.

Rysunek 8.22: Okno Program -Menu IPL1.

Rysunek 8.23: Okno Program -Menu IPL2

Z prawej strony ekranu pojawi się menu(patrz rys. 8.24). Za pomocą klawiszy nume-rycznych polecenia zostaną dodane do programu. Nowa instrukcja zostanie dodane jakonastępne po pozycji która jest aktualnie zaznaczona.

Rysunek 8.24: Okno Program - dodanie nowych poleceń.

Z uwagi na to, iż nie wszystkie komendy obsługiwane są przez program, możliwe jestwystąpienie okna zawierającego ostrzeżenie o niemożności dodania polecenia. Przykładtaki obrazuje rysunek 8.25.

54 Interfejs Aplikacja Sofi Robot

Rysunek 8.25: Okno Program - brak obsługi instrukcji.

Rozszerzenie możliwości programowania polegającej na dodaniu obsługi nowych pole-ceń jest opisane rozdziale 7.1.

Modyfikowanie pozycji

Rysunek 8.26: Okno Program - modyfikacja pozycji robota.

Modyfikacja pozycji (rys. 8.26) możliwa jest poprzez:

1. Podświetlenie pole określającego pozycję robota (oznaczone *),

2. Ustawienie nowej pozycji robota za pomocą dżojstika,

3. Wybranie opcji Modpos i zatwierdzenie dokonanej zmiany (rys. 8.27).

8.2 Panel Sterowania 55

Rysunek 8.27: Ekran modyfikacji pozycji robota.

Wartość przesunięcia przeliczana jest od momentu wybrania pozycji (oznaczonej *)do momentu naciśnięcia funkcji Modpos. Trajektoria będzie od punktu początkowego dopunktu wybranego według polecenia (w którym została dokonana zmiana pozycji), a niewedług trajektorii zaznaczonej za pomocą dżojstika.

Zmiana wizualnych atrybutów poleceń

Większość poleceń ma ukryte ustawienia, żeby można było je modyfikować trzebauwidocznić je na ekranie. W tym celu należy:

1. Zaznaczyć polecenie które chcemy zmienić ,

2. Przyciśnąć przycisk funkcyjny OptArg.

Jest to zobrazowane na rysunku (rys. 8.28).

Rysunek 8.28: Wybór polecenia.

56 Interfejs Aplikacja Sofi Robot

Na rysunku 8.29 pokazane jest okno umożliwiające zmianę (które elementy możnauwidocznić). Niektóre pozycje są ze sobą sprzężone. Wybranie jednej spowoduje wyłącze-nie drugiej. Elementy które można modyfikować poprzedzone są znakiem ”\”. Atrybutówbez tego znaku nie można wyłączyć, są one niezbędne do prawidłowego funkcjonowaniapolecenia. Elementy w nawiasach [, ] są w aplikacji nie widoczne. W przypadku modyfika-cji wartości elementu i późniejszym jego ukryciu, program będzie wykorzystywać wartośćpoczątkową.

Rysunek 8.29: Zmiana właściwości polecenia.

Zmiana argumentu instrukcji

Do zmiany argumentu instrukcji służy:

1. Podświetlenie wybranego argumentu,

2. Wciśnięcie klawisza Enter - wywołaniu ulegnie nowy ekran (rys. 8.30), zawierającelistę dostępnych argumentów.

3. Wybranie nowego argumentu (podświetlenie kursorem), a następnie wciśnięcie kla-wiszy Enter i Ok.

Rysunek 8.30: Widok ekranu edycyjnego w trakcie zmiany argumentu.

8.2 Panel Sterowania 57

Dodanie nowych procedur

W celu dodania lub modyfikacji procedur należy wybrać menu View, a następnie po-zycję Routines. Pojawi się ekran (rys. 8.31) który umożliwia:

1. Dodawanie nowej procedury,

2. Zmianę właściwości procedury,

3. Powielenie procedury,

4. Pokazanie okna do edytowania programu

5. Pokazanie okna do uruchomienia programu

Rysunek 8.31: Ekran wyboru procedury.

Procedury można dodawać, modyfikować lub usuwać. Jedynie nie można zmienić i usu-nąć wątku głównego ”main”. Każda procedura (w celu uniknięcia niejednoznaczości) musiposiadać unikatową nazwę. W przypadku dodania procedury o istniejącej już nazwie wy-skoczy polecenie ostrzegawcze.Podczas edycji właściwości procedury (patrz rys. 8.32) można zmienić nazwę proce-

dury, jej typ oraz modifikować jej parametry. Okno z właściwościami podzielone jest nadwie części. Górna do określenia nazwy i typu wątku, dolna przeznaczona do modyfikacji

parametrów danej procedury. Zmianę aktywnej części umożliwia przycisk .Każdy wątek może posiadać własne parametry, które można wykorzystywać jako

zmienne danej procedury.

58 Interfejs Aplikacja Sofi Robot

Rysunek 8.32: Właściwości procedury

Uruchomienie programu

Aby uruchomić program należy wybrać funkcję Test (patrz rys. 8.33) w prawymdolnym rogu okna Program.

Rysunek 8.33: Fragment okna Program

Po wybraniu tej opcji wywołaniu ulega nowy ekran (rys. 8.34), w jego dolnej częścidostępne są nowe funkcje z poleceniami:

1. Start - start programu,

2. FWD - następna instrukcja,

3. BWD - poprzednia instrukcja,

4. Modpos - modyfikacja pozycji,

5. Instr - powrót do okna programowania robota.

8.2 Panel Sterowania 59

Rysunek 8.34: Ekran uruchomienia programu

Widoczny na rysunku rys. 8.34 wskaźnik programu (Program Pointer), ustawiony jestna instrukcję, która jest aktualnie wykonywana. Dzięki PP, możliwe jest uruchomienieprogramu z dowolnego miejsca. Po wybraniu funkcji Start program zostanie uruchomionyod instrukcji, wskazanej przez wskaźnik programu (PP).

Wczytywanie gotowego programu

Po wybraniu pozycji Open z menu File ukaże się ekran (patrz rys. 8.20) na którymwybieramy program do wczytania, przemieszczając się po katalogach za pomocą klawiszynawigacyjnych.

Rysunek 8.35: Menu File - ekran Open.

60 Interfejs Aplikacja Sofi Robot

Zapisywanie programu

Aplikacja umożliwia zapisanie gotowego programu na dysku. Wybieramy menu File,a następnie pozycje Save lub Save as.

Rysunek 8.36: Menu File - ekran Save.

Ukaże się ekran (patrz rys. 8.36) umożliwiający zmianę nazwę pliku (do którego zapi-sany zostanie program). Możliwa jest również zmiana dysku, katalogu. Pozwala na utwo-rzenie nowego katalogu o dowolnej nazwie.

8.2 Panel Sterowania 61

8.2.4 Okno Input/Output

Wyświetlanie informacji związanych z sygnałami wejścia/wyjścia umożliwia wybra-

nie na panelu sterowania. Wygląd ekranu z sygnałami przedstawiony został na ry-sunku 8.37.

Rysunek 8.37: Okno Input/Output

Umożliwia wyświetlanie sygnałów i ich wartości, ponadto pozwala zmienić rodzaj wy-świetlanych sygnałów za pomocą następujących pozycji z menu: View (rys. 8.38), Alia-sIO(rys. 8.39) i Special(rys. 8.40).

Rysunek 8.38: MenuView.

Rysunek 8.39: MenuAliasIO.

Rysunek 8.40: MenuSpecial.

62 Interfejs Aplikacja Sofi Robot

Możliwe jest dokonanie wydruku (patrz rys. 8.41) aktualnie wyświetlanej grupy sygna-łów na drukarce lub do pliku. W celu wydrukowania sygnałów danej grupy należ wybraćmenu File, a następnie pozycję Print.

Rysunek 8.41: Menu File - pozycja Print.

System nie zezwala na dodawanie nowych sygnałów. W celu ukazania szczegółowychustawień i parametrów należy wybrać interesujący sygnał, a następnie nacisnąć Enter.Zostaną wyświetlone szczegółowy informacje (patrz rys. 8.42) z możliwością blokowaniasygnałów w celu uniemożliwienia wykorzystania ich w programie robota.

Rysunek 8.42: Okno Input/Output - parametry sygnału.

8.2 Panel Sterowania 63

8.2.5 Okno Misc

Do uruchomienia tej pozycji służy przycisk . Misc przedstawione zostało na rys.8.43. Okno to nie zostało oprogramowane ze względu na brak wpływu na możliwościsterowania i konfigurowania robota. Umieszczone zostało jako informacja ukazująca opcjekryjące się w tym oknem.

Rysunek 8.43: Okno Misc

64 Interfejs Aplikacja Sofi Robot

Rozdział 9

Przykłady

W rozdziale tym przedstawione zostały wyniki przeprowadzonych symulacji robotaprzemysłowego IRB-1400. Pokazane są różne sposoby sterowania i ich efekt.

Rysunek 9.1: Model laboratorium 010 - widok z góry, z przodu, rzut prostopadły, wyświe-tlanie w postaci siatki.

66 Przykłady

Rysunek 9.2: Model laboratorium 010 - przykładowy widok

67

Rysunek 9.3: Zrealizowana trajektoria - przykładowy widok

68 Przykłady

Rysunek 9.4: Zrealizowana trajektoria - przykładowy widok

69

Rysunek 9.5: Sterowanie ręczne - we współrzędnych wewnętrznych

70 Przykłady

Rysunek 9.6: Sterowanie ręczne - we współrzędnych zewnętrznych

71

Rysunek 9.7: Sterowanie Programowe - Przekroczenie ograniczeń robota

72 Przykłady

Rysunek 9.8: Sterowanie Programowe - Start programu

73

Rysunek 9.9: Sterowanie Programowe - wykonanie pierwszej instrukcji

74 Przykłady

Rysunek 9.10: Sterowanie Programowe - wykonanie drugiej instrukcji

75

Rysunek 9.11: Sterowanie Programowe - wykonanie trzeciej instrukcji

76 Przykłady

Rysunek 9.12: Sterowanie Programowe - wykonanie czwartej instrukcji

77

Rysunek 9.13: Sterowanie Programowe - wykonanie całego programu

78 Przykłady

Rysunek 9.14: Sterowanie ręczne pozycjonerem

Rozdział 10

Podsumowanie

10.1 Realizacja systemu Sofi Robot

Głównym celem pracy było stworzenie systemu umożliwiającego symulowanie pracyrobota przemysłowego IRB-1400. Założenia, szerzej opisane w rozdziale 2, zostały w więk-szym lub mniejszym stopniu zrealizowane.Aplikacja umożliwia sterowanie i animowanie ruchów robota IRB-1400 umieszczonego

w wirualnym środowisku, które można dowolnie modyfikować. System sterowania robotaodbywa się za pomocą panelu identycznego do tego jaki występuje w prawdziwym robocieIRB. Sterowanie odbywa się zgodnie z językiem RAPID. Ze względu, iż język ten jestbardzo rozbudowany została oprogramowana jedynie niewielka część dostępnych komendi poleceń. Komendy jakie zostały zaimplementowane pozwalają w pełni ukazać możliwościrobota. System umożliwia również czytanie i zapisywanie plików w języku RAPID.Proces modyfikacji struktury systemu odbywał się w miarę kreacji oprogramowania.

Modyfikacje mają znaczący wpływ na ostatenczą zasadę działania systemu. W końcowejimplementacji powstały dwa dodatkowe pliki konfiguracyjne których istnienie wymaganejest do prawidłowego funkcjonowania aplikacji, co skutkuje tym, iż aplikacja nie działajuż w pełni samodzielnie i wymaga dodatkowych plików. Należy dodać, iż powyższe plikiumożliwiają nie tylko łatwą rozbudowę aplikacji o nowe polecenia lecz również sterowaniewszystkimi robotami z rodziny IRB.

10.2 Perspektywy rozwoju systemu Sofi Robot

Możliwe jest osiągnięcie kolejnego etapu w pracy nad aplikacją. W tym celu należa-łoby rozbudować listę obsługiwanych poleceń, zaimplementować kinematykę odwrotną coznacznie podniosłoby użyteczność aplikacji - zamodelowanie i dodawanie nowych środo-wisk i robotów IRB.Ciekawym sposobem na rozszerzenie byłoby wykreowanie całej linii produkcyjnej z

możliwością jednoczesnego sterowania kilkoma robotami, a nie tylko jednym. Klasa repre-zentująca robota w aplikacji Sofi Robot jest uniwersalna. Nie powinno sprawiać nikomuproblemu, aby z tej klasy utworzyć listę, w której każdy element steruje jednym robotem.Ponadto możliwym udoskonaleniem na przyszłość byłoby umożliwienie aplikacji komu-nikację z rzeczywistym robotem, co pozwoliłoby jednocześnie służyć jej jako urządzeniediagnostyczne.

80 Podsumowanie

Bibliografia

[1] ABB. http://www.ABB.com.

[2] Ge Fanuc Automation. http://www.gefanuc.pl.

[3] libQGLViewer. http://artis.imag.fr/ Gilles.Debunne/QGLViewer/.

[4] NewToninum. http://www.newtonium.com.

[5] Silicon Graphics OpenGL. http://www.opengl.org.

[6] Trolltech Qt. http://www.trolltech.com.

[7] UGS PLM Software. http://www.ugs.com.

[8] ABB Robotics Products AB: RAPID Reference Manual. ABB.

[9] Jakwert P.: Graphical workshop for modelling and simulating robot environments.

[10] Jakwert P.: System modelowania obiektów dla potrzeb wizualizacji sceny robota.Praca magisterska, PWR, 2004.

[11] Kreczmer B.: VIONA (Virtual rObot eNvironment librAry). Politechnika Wrocław-ska, ICT, 1995-2004.

[12] Fanuc Robotic SYSTEM: Fanuc Reference Manual, 2003.

[13] Tchoń K., Mazur A., Dulęba I., Hossa R., Muszyński R.: Manipulatory i robotymobilne, strony 41–51. Akademicka Oficyna Wydawnicza PLJ, 2000.

Spis rysunków

3.1 ProgramMaker - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.2 QuickTeach - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.3 QuickTeach - Ustawienia robota. . . . . . . . . . . . . . . . . . . . . . . . 93.4 QuickTeach - Program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.5 QuickTeach - Praca robota. . . . . . . . . . . . . . . . . . . . . . . . . . . 93.6 RobotStudio - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.7 RobotStudio - Przykładowe stanowisko pracy. . . . . . . . . . . . . . . . . 113.8 RobotStudio - Sterowanie ręczne robotem. . . . . . . . . . . . . . . . . . . 113.9 Virtual Robot Browser - interfejs. . . . . . . . . . . . . . . . . . . . . . . . 123.10 RoboGuide - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.11 RoboGuide - Programowanie. . . . . . . . . . . . . . . . . . . . . . . . . . 143.12 RoboWorks - Sterowanie robotem Puma. . . . . . . . . . . . . . . . . . . . 153.13 RoboWorks - Konstruowanie robota. . . . . . . . . . . . . . . . . . . . . . 153.14 RoboWorks - Modelowanie. . . . . . . . . . . . . . . . . . . . . . . . . . . 163.15 RoboWorks - Gniazdo Produkcyjne. . . . . . . . . . . . . . . . . . . . . . . 163.16 RoboWorks - Sterowanie klawiaturą. . . . . . . . . . . . . . . . . . . . . . 163.17 RoboWorks - Robot ”Trąba słonia”. . . . . . . . . . . . . . . . . . . . . . . 16

4.1 IRB1400 - Sterownik S4C. . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.2 IRB1400 - Teach Pendant . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.3 Wnętrze sterownik S4 - widok z przodu . . . . . . . . . . . . . . . . . . . . 214.4 Wnętrze sterownik S4 - widok z góry . . . . . . . . . . . . . . . . . . . . . 224.5 Zakres pracy manipulatora . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5.1 IRB1400 - Struktura kinematyki . . . . . . . . . . . . . . . . . . . . . . . . 265.2 IRB1400 - Oznaczenie osi . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

6.1 Sofi Robot - Diagram Klas . . . . . . . . . . . . . . . . . . . . . . . . . . . 286.2 Diagram interakcji panelu sterowania. . . . . . . . . . . . . . . . . . . . . . 296.3 Diagram interakcji zarządcy programu. . . . . . . . . . . . . . . . . . . . . 306.4 Sofi Robot - Szczegółowy diagram klasy RRobot . . . . . . . . . . . . . . . 31

7.1 Złe dodanie instrukcji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337.2 Prawidłowe dodanie instrukcji. . . . . . . . . . . . . . . . . . . . . . . . . . 337.3 Metoda Execute bez metod . . . . . . . . . . . . . . . . . . . . . . . . . . 347.4 Metoda Execute z dodaną metodą . . . . . . . . . . . . . . . . . . . . . . 347.5 Dodawanie kinematyki do modelu robota . . . . . . . . . . . . . . . . . . . 37

8.1 Sofi Robot - Interfejs użytkownika . . . . . . . . . . . . . . . . . . . . . . . . 428.2 Sofi Robot - Zakładki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

ii SPIS RYSUNKÓW

8.3 Sofi Robot - globalne menu . . . . . . . . . . . . . . . . . . . . . . . . . . 438.4 Sofi Robot - Panel Sterowania . . . . . . . . . . . . . . . . . . . . . . . . 448.5 Sofi Robot - Okno Jogging . . . . . . . . . . . . . . . . . . . . . . . . . . 458.6 Joystick Lock - brak blokad. . . . . . . . . . . . . . . . . . . . . . . . . . 468.7 Joystick Lock - blokada osi OX i OZ. . . . . . . . . . . . . . . . . . . . . 468.8 Okno Jogging - Menu Special . . . . . . . . . . . . . . . . . . . . . . . . 468.9 Menu Special - Pozycja Increments . . . . . . . . . . . . . . . . . . . . . . 478.10 Menu Special - Pozycja Preferences . . . . . . . . . . . . . . . . . . . . . 478.11 Fragment panelu - Okno dżojstika. . . . . . . . . . . . . . . . . . . . . . . 488.12 Ruch dżojstika. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488.13 Okno Jogging - Komunikat ostrzegawczy . . . . . . . . . . . . . . . . . . . 488.14 Okno Jogging - Sterowanie we współrzędnych wewnętrznych. . . . . . . . 498.15 Okno Jogging - Sterowanie we współrzędnych zewnętrznych. . . . . . . . . 498.16 Okno Jogging - Tryb sterowania. . . . . . . . . . . . . . . . . . . . . . . . 508.17 Oznaczenie przycisków wyboru trybu sterowania. . . . . . . . . . . . . . . 508.18 Okno Program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518.19 Okno Program - Menu File. . . . . . . . . . . . . . . . . . . . . . . . . . . 518.20 Menu File - Pozycja New. . . . . . . . . . . . . . . . . . . . . . . . . . . . 528.21 Okno Program - nowy program. . . . . . . . . . . . . . . . . . . . . . . . . 528.22 Okno Program - Menu IPL1. . . . . . . . . . . . . . . . . . . . . . . . . . . 538.23 Okno Program - Menu IPL2 . . . . . . . . . . . . . . . . . . . . . . . . . . 538.24 Okno Program - dodanie nowych poleceń. . . . . . . . . . . . . . . . . . . . 538.25 Okno Program - brak obsługi instrukcji. . . . . . . . . . . . . . . . . . . . 548.26 Okno Program - modyfikacja pozycji robota. . . . . . . . . . . . . . . . . . 548.27 Ekran modyfikacji pozycji robota. . . . . . . . . . . . . . . . . . . . . . . . 558.28 Wybór polecenia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558.29 Zmiana właściwości polecenia. . . . . . . . . . . . . . . . . . . . . . . . . . 568.30 Widok ekranu edycyjnego w trakcie zmiany argumentu. . . . . . . . . . . . 568.31 Ekran wyboru procedury. . . . . . . . . . . . . . . . . . . . . . . . . . . . 578.32 Właściwości procedury . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588.33 Fragment okna Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588.34 Ekran uruchomienia programu . . . . . . . . . . . . . . . . . . . . . . . . . 598.35 Menu File - ekran Open. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598.36 Menu File - ekran Save. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608.37 Okno Input/Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618.38 Menu View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618.39 Menu AliasIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618.40 Menu Special. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618.41 Menu File - pozycja Print. . . . . . . . . . . . . . . . . . . . . . . . . . . 628.42 Okno Input/Output - parametry sygnału. . . . . . . . . . . . . . . . . . . 628.43 Okno Misc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

9.1 Model laboratorium 010 - widok z góry, z przodu, rzut prostopadły, wy-świetlanie w postaci siatki. . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

9.2 Model laboratorium 010 - przykładowy widok . . . . . . . . . . . . . . . . 669.3 Zrealizowana trajektoria - przykładowy widok . . . . . . . . . . . . . . . . 679.4 Zrealizowana trajektoria - przykładowy widok . . . . . . . . . . . . . . . . 689.5 Sterowanie ręczne - we współrzędnych wewnętrznych . . . . . . . . . . . . 699.6 Sterowanie ręczne - we współrzędnych zewnętrznych . . . . . . . . . . . . . 70

SPIS RYSUNKÓW iii

9.7 Sterowanie Programowe - Przekroczenie ograniczeń robota . . . . . . . . . 719.8 Sterowanie Programowe - Start programu . . . . . . . . . . . . . . . . . . . 729.9 Sterowanie Programowe - wykonanie pierwszej instrukcji . . . . . . . . . . 739.10 Sterowanie Programowe - wykonanie drugiej instrukcji . . . . . . . . . . . 749.11 Sterowanie Programowe - wykonanie trzeciej instrukcji . . . . . . . . . . . 759.12 Sterowanie Programowe - wykonanie czwartej instrukcji . . . . . . . . . . . 769.13 Sterowanie Programowe - wykonanie całego programu . . . . . . . . . . . . 779.14 Sterowanie ręczne pozycjonerem . . . . . . . . . . . . . . . . . . . . . . . . 78

iv SPIS RYSUNKÓW

Spis tablic

4.1 Zakresy przegubów manipulatora . . . . . . . . . . . . . . . . . . . . . . . 23

7.1 Polecenia języka RAPID . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36