Laboratorium Podstaw Robotyki ĆWICZENIE 1
Transkrypt
Laboratorium Podstaw Robotyki ĆWICZENIE 1
Laboratorium Podstaw Robotyki Politechnika Poznańska Katedra Sterowania i Inżynierii Systemów ĆWICZENIE 1 Podstawy obsługi i programowania manipulatora Stäubli RX60 Celem ćwiczenia jest zapoznanie się z laboratoryjnym stanowiskiem sterowania dedykowanym dla przemysłowego manipulatora typu Stäubli Unimation RX60. Ćwiczenie pozwala na poznanie możliwości ruchowych robota, zapoznanie się ze sposobem definiowania zadań robota z wykorzystaniem podstawowych komend związanych z realizacja ruchu manipulatora i działaniem systemu sterowania. 1 System sterowania z manipulatorem Stäubli System sterowania z manipulatorem Stäubli Unimation RX60 składa sie z kilku podstawowych elementów: • sterownika CS7B (generator trajektorii, regulatory pozycji osi napędów, obliczenia kinematyki, komunikacja, obsługa sygnałów zewnętrznych), • ręcznego panelu uczącego (ręczna manipulacja ramieniem robota), • terminalu operatora-programisty (edycja programów i kontrola pracy systemu), • ramienia manipulacyjnego o cześciu stopniach swobody (element wykonawczy systemu – rys. 1). Sterownik CS7B pracuje pod kontrolą wielozadaniowego systemu operacyjnego czasu rzeczywistego V+. Dyskretyzacja realizacji poszczególnych zadań wynosi T pt = 16[ms]. Zadaniom można przydzielać priorytety, przy czym nawyższy priorytet ma zadanie realizacji ruchu ramienia robota. Programy sterujące pisane są w specjalnie utworzonym do tego celu jezyku programowania o nazwie V+ i przed wykonaniem muszą zostać załadowane do wewnętrznej pamięci systemowej sterownika. Oprócz programów w pamięci tej przechowywane są zmienne i stałe różnego typu. Programy oraz zmienne można zapisać na wewnętrznym dysku stałym sterownika w postaci zbioru z rozszerzeniem ’v2’. Dodatkowo pojedyncze instrukcje programu akceptowane przez system V+ można wykonywać podając je bezpośrednio w oknie poleceń tzw. monitora systemu poprzedzając daną komendę słowem kluczowym do (wykonanie komend związanych z systemem operacyjnym V+ nie wymaga umieszczania słowa kluczowego do). Szczegóły dotyczące budowy i zasady działania poszczególnych elementów systemu sterowania robotem Stäubli można znaleźć w następujących pracach: [1, 3, 4, 5, 2]. W dalszej części uwaga zostanie skupiona na podstawowych możliwościach programowania i sterowania ruchem manipulatora Stäubli Unimation RX60 w środowisku V+. 1 Laboratorium Podstaw Robotyki – 1 2 Rys. 1: Manipulator Stäubli Unimation RX60. Na rysunku zaznaczono orientacje osi układu bazowego (inaczej układu WORLD) i orientację osi ZN narzędzia oraz oznaczono numery kolejnych złączy i podstawowe elementy składowe mechaniki manipulatora: podstawę (A), bark (B), ramię (C), łokieć (D), przedramię (E) i nadgarstek (F). 1.1 Uruchamianie systemu W strukturze sterownika CS7B rozróżnia się dwa obwody zasilające: pierwszy odpowiada za zasilanie sterownika (procesor, elektronika pomiarowo-kontrolna, komunikacja), drugi obwód natomiast odpowiada za silnoprądowe zasilanie wszystkich napędów manipulatora. Uruchomienie manipulatora wymaga zatem, poza załączeniem sterownika, niezależnego załączenia zasilania napędów. Od momentu zasilenia silników należy zachować szczególną ostrożność podczas pracy z systemem! Po zakończonej pracy i bezpośrednio przed wyłączeniem zasilania napędów manipulator powinien zostać sprowadzony do pozycji wyjściowej PW (tzw. pozycja Ready) – ramię wyprostowane skierowane do góry. Załączenie całego systemu wymaga wykonania następujacych czynności: • załączenie komputera PC na stanowisku laboratoryjnym – uruchomienie terminala operatorskiego, • załączenie zasilania szafy sterowniczej manipulatora (obrót białego pokrętła w prawo) – system sterowania przeprowadzi automatyczna inicjalizację sterownika (diody sygnalizacyjne na panelu ręcznym migają), • uruchomienie programu klienckiego Adept Windows PC na komputerze PC – pojawi się okno monitora systemu i automatycznie nawiązana zostanie komunikacja z szafą sterowniczą oraz przeprowadzona zostanie kalibracja manipulatora. 3 Laboratorium Podstaw Robotyki – 1 Parametr mw mu mumax vkmax vkmaxT P ∆k ∆j Opis masa własna udźwig nominalny udźwig maksymalny maksymalna prędkość liniowa końcówki roboczej maksymalna prędkość liniowa końcówki przy sterowaniu panelem powtarzalność w przestrzeni kartezjańskiej powtarzalność w przestrzeni złączy Wartość 45[kg] 2.5[kg] 4.5[kg] 8[m/s] 1.8[m/s] 0.02[mm] 0.003[◦] Tab. 1: Wybrane parametry i osiągi manipulatora Stäubli Unimation RX60. Po wykonaniu powyższych czynności system jest gotowy do pracy lecz manipulator nadal nie może realizować ruchu – obwód zasilania napędów jest rozłączony. Aby załączyć napędy należy dodatkowo wykonać następującą sekwencję czynności: • w oknie monitora systemu należy wpisać polecenie EN POW ←- (pojawi się krótki sygnał dźwiękowy i zielona lampka sygnalizacyjna na szafie zacznie migać), • w ciągu 15[s] od momentu wystąpienia sygnału dźwiękowego wcisnąć przycisk z migającą zieloną lampką sygnalizacyjną. Od tej chwili wysokoprądowe zasilanie jest podane na wszystkie napędy robota. Należy zachować szczególną ostrożność i nie wkraczać w przestrzeń roboczą manipulatora! Wyłączenie zasilania napędów można wykonać poprzez ponowne przyciśnięcie przycisku na szafie sterowniczej (teraz na stałe świecącego na zielono) lub przez wpisanie polecenia DIS POW ←w oknie monitora systemu (można również wsicnąć przycisk o tej samej nazwie na ręcznym panelu sterującym). Bezpośrednio przed wyłączeniem zasilania napędów manipulator powinien zostać sprowadzony do pozycji wyjściowej PW - ramię wyprostowane skierowane do góry. Można to wykonać wpisując w oknie poleceń komendę DO READY ←-. Wyłączenie sterownika natomiast następuje w wyniku obrotu w lewo białego pokrętła na szafie sterowniczej. Czerwone przyciski (tzw. E-STOP – Emergency STOP) umieszczone na szafie sterowniczej, ręcznym panelu sterującym i osłonach przestrzeni roboczej służą do AWARYJNEGO natychmiastowego zatrzymania manipulatora z jednoczesnym odłączeniem zasilania napędów. W przypadku zagrożenia bezpieczeństwa ludzi i samego manipulatora niezwłocznie nacisnąć przycisk E-STOP!!! UWAGA! Nie wchodź w przestrzeń roboczą manipulatora przy włączonych napędach! Kontakt robota z człowiekiem grozi poważnym uszkodzeniem ciała! 1.1 Przeprowadzić pełne załączenie i wyłączenie systemu sterowania zgodnie z instrukcjami podanymi powyżej. 1.2 Panel ręczny Ruch ramieniem robota można realizować za pomocą ręcznego panelu ucząco-sterującego (tzw. Teach-Control Pendant). W celu realizacji ruchu należy załączyć zasilanie napędów (zgodnie z instrukcjami przedstawionymi wyżej) oraz przełączyć tryb sterowania w ręczny wciskając na panelu przycisk MAN/HALT . Następnie należy wybrać jedną z trzech przestrzeni WORLD (ruch w przestrzeni kartezjańskiej), TOOL (ruch w układzie narzędzia/chwytaka), JOINT (ruch w przestrzeni złączy), w Laboratorium Podstaw Robotyki – 1 4 której mają być interpretowane i realizowane ruchy robota. Poprzez wybór jednego z przycisków X/1, Y/2, Z/3, RX/4, RY/5, RZ/6 ustala się aktywny stopień swobody manipulatora. Oznaczenie X/1 oznacza oś x wybranego układu współrzędnych (przestrzeni zadania lub narzędzia) lub pierwsze złącze robota. Wciśnięcie tego przycisku w trybie pracy ręcznej (z ręcznym panelem sterującym) spowoduje wybór jednego ze wspomnianych stopni swobody. Bezpośredni ruch ramienia w wybranym stopniu swobody realizuje się poprzez przyciskanie pasków z oznaczeniami +/− na panelu ręcznym. Przyciski RX/4, RY/5, RZ/6 pozwalają na wybór rotacji układu współrzędnych chwytaka wykonywanych wokół osi odpowiednio x, y lub z jednego z dwóch układów: bazowego (przestrzeni zadania) lub układu narzędzia (chwytaka). Jest to konwencja obrotów inna niż w przypadku konwencji zastosowanej do definiowania tzw. zmiennych lokalizacji, które są omówione w następnym podrozdziale. Przycisk T1 umożliwia zamknięcie lub otwarcie pneumatycznego chwytaka zamontowanego na końcu kiści manipulatora. Aby zmienić stan chwytaka (otworzyć lub zamknąć) należy wcisnąć przycisk T1 , a następnie przycisnąć pasek z oznaczeniami + lub − na panelu ręcznym, aby odpowiednio otworzyć lub zamknąć szczęki chwytaka. Powrót do sterowania z poziomu komputera operatora (dalej zwanego trybem automatycznym) wymaga naciśnięcia przycisku COMP/PWR na panelu ręcznym. Opis ważniejszych przycisków panelu przedstawiono w tabeli 2. Przycisk DISP CLR ERR RUN/HOLD DIS PWR COMP/PWR REC/DONE SLOW PANIC Działanie wyświetlanie na panelu ręcznym informacji o pozycji robota kasowanie zgłoszenia błędu wznowienie/zatrzymanie wykonywania programu wyłączenie zasilania napędów przełączenie trybu sterowania/zezwolenie na załączenie zasilania napędów zatwierdzenie lokalizacji w procesie nauczania/zatwierdzenie ENTER załączenie trybu obniżenia zakresu prędkości ruchu końcówki robota awaryjne zatrzymanie robota (E-STOP) Tab. 2: Opis wybranych przycisków ręcznego panelu sterującego. 1.2 Załączyć napędy robota. 1.3 Przełączyć tryb sterowania manipulatorem na ręczny. 1.4 Dla wszystkich przestrzeni ruchu JOINT, WORLD, TOOL zrealizować ruchy poszczególnych stopni swobody ramienia i zaobserwować różnice w ich wykonaniu. Uzasadnić różny sposób poruszania się robota w różnych przestrzeniach. 1.5 Otworzyć i zamknąć chwytak manipulatora. 1.6 Przećwiczyć działanie przycisków zestawionych w tabeli 2. 1.7 Powrócić do trybu sterowania automatycznego i ustawić ramię w położeniu wyjściowym PW – zastosować instrukcje DO READY ←- . 1.8 Wyłączyć zasilanie napędów robota. 1.3 Typy zmiennych lokalizacji Lokalizacja (lub zmienna lokalizacji) w terminologii jezyka V+ oznacza reprezentację położenia ramienia / końcówki roboczej robota w pewnej przestrzeni. W systemie V+ z manipulatorem Stäubli wyróżnia się dwa rodzaje lokalizacji: • transformacje (transformations) – reprezentacja położenia w przestrzeni kartezjańskiej – składają się z 6 liczb reprezentujących pozycję i orientację końcówki roboczej manipulatora w przestrzeni 5 Laboratorium Podstaw Robotyki – 1 kartezjańskiej, np. T = (x, y, z, α, β, γ) , gdzie x, y, z oznaczają współrzędne pozycji układu współrzędnych końcówki roboczej wyrażone w milimetrach w układzie bazowym robota, a α, β, γ oznaczają wyrażone w stopniach trzy kąty orientacji układu współrzędnych końcówki roboczej względem układu bazowego robota (są to trzy kąty Eulera, odpowiednio yaw, pitch, roll wynikające z zastosowanej konwencji obrotów ZY Z względem układów bieżących – obroty wykonywane są w wypisanej wcześniej kolejności)1 , • punkty precyzji (precision points) – reprezentacja położenia w przestrzeni konfiguracyjnej – składają się z 6 liczb reprezentujących wartości poszczególnych kątów w przegubach manipulatora wyrazonych w stopniach, np. P = (θ1 , θ2 , θ3 , θ4 , θ5 , θ6 ). Poniżej przedstawiony zostanie związek lokalizacji typu transformacja w systemie V+ z opisem układu współrzędnych wyrażonego we współrzędnych jednorodnych (przyjmujemy, że obie reprezentacje układu są wyrażone względem układu bazowego). Jeżeli dana jest lokalizacja postaci localization = (x, y, z, α, β, γ) (1) gdzie α, β, γ oznaczają trzy kąty Eulera w konwencji ZYZ (nazywane w systemie V+ odpowiednio jako yaw, pitch, roll ) danego układu współrzędnych wynikających z jego obrotu względem bieżących osi Z,Y oraz Z, to reprezentacja jednorodna takiego układu współrzędnych jest następująca: x RZY Z p T = , gdzie p = y (2) 0 1 z oraz RZY Z cos α cos β cos γ − sin α sin γ = sin α cos β cos γ + cos α sin γ − sin β cos γ − cos α cos β sin γ − sin α cos γ − sin α cos β sin γ + cos α cos γ sin β sin γ cos α sin β sin α sin β , cos β (3) gdzie powyższa macierz obrotu wynika z następującego złożenia: R ZY Z = RZ,α RY,β RZ,γ . Jeżeli natomiast dana jest reprezentacja jednorodna definiująca dany układ współrzędnych w postaci macierzy: r11 r12 r13 x r11 r12 r13 r21 r22 r23 y ∆ r21 r22 r23 = RZY Z = RZ,α RY,β RZ,γ , (4) T = r31 r32 r33 z , r31 r32 r33 0 0 0 1 to transformacja w systemie V+ odpowiadająca powyższej macierzy będzie miała postać: localization = (x, y, z, α, β, γ) (5) (6) gdzie = Atan2 β q 2 r31 + 2 ,r r32 33 , (7) oraz dla sin β 6= 0: α γ r23 r13 , , sin β sin β r32 −r31 = Atan2 , , sin β sin β = Atan2 (8) (9) 1 Uwaga: konwencja obrotów ZYZ służy do reprezentacji obrotów w zmiennych lokalizacji systemu V+, ale rotacje wykonywane za pomocą ręcznego panelu sterującego są realizowane wg innej konwencji - patrz punkt poprzedni. 6 Laboratorium Podstaw Robotyki – 1 lub, gdy sin β = 0: α = 0, γ = Atan2 (−r12 , r11 ) , dla β = 0, (10) α = 0, γ = Atan2 (r12 , −r11 ) , dla β = π, (11) a Atan2 (., .) jest czteroćwiartkową funkcją arctan (.). Instrukcja WHERE value pozwala na wyświetlenie w oknie monitora systemu aktualnych wartości lokalizacji ramienia robota w postaci transformacji i punktu precyzji przy czym, gdy value 6= 0 wyświetlanie jest realizowane w sposób ciągły aż do wsiśnięcia kombinacji Ctrl+C. Podstawową instrukcją służącą do tworzenia zmiennych lokalizacji jest instrukcja HERE , która pozwala na zapis w zmiennej bieżącego położenia ramienia manipulatora, np.: HERE l lub HERE #l zapisują do zmiennej ’l’ aktualną lokalizację ramienia robota w postaci transformacji (pierwsze wywołanie) lub punktu precyzji (drugie wywołanie). Przypisanie do zmiennej ’p’ wartości lokalizacji z istniejącej zmiennej ’l’ jest możliwe za pomocą polecenia SET , np.: SET p = l Utworzenie dowolnej lokalizacji w formie transformacji jest możliwe za pomocą instrukcji TRANS , np.: SET l = TRANS(300,50,350,0,180,0) powoduje przypisanie do zmiennej ’l’ lokalizacji w formie transformacji, w której x = 300, y = 50, z = 350, yaw = 0, pitch = 180, roll = 0. Odwrotność danej transformacji można uzyskać poprzez następujące polecenie: SET invl = INVERSE(l) które przypisuje zmiennej ’invl’ odwrotną transformację do ’l’ (transformacja odwrotna odpowiada odwrotności T −1 macierzy jednorodnej T zgodnie ze wzorem: T R −RT p −1 T = . (12) 0 1 Niech dana będzie lokalizacja l=(10,-30,20,90,-90,0). Wywołanie instrukcji: SET relativel = l:TRANS(50,10,-10,0,0,0) spowoduje przypisanie do zmiennej ’relativel’ transformacji (60,-20,10,90,-90,0) jako wynik przemieszczenia o lokalizację (50,10,-10,0,0,0) względem lokalizacji ’l’. Tym samym wywołanie SET Z = L:invL gdzie invL jest transformacją odwrotną do L, spowoduje przypisanie do zmiennej Z transformacji zerowej: Z=(0,0,0,0,0,0). W tabeli 3 dodatkowo przestawiono wybrane funkcje matematyczne dostępne w systemie V+. Laboratorium Podstaw Robotyki – 1 Funkcja ABS ATAN2 SIN, COS SIGN SQR SQRT RANDOM PI INT FRACT OUTSIDE 7 Działanie zwraca bezwzględną wartość z liczby czteroćwiartkowy arctan (.) zwraca wartość funkcji sin , cos zwraca 1 ze znakiem liczby zwraca kwadrat liczby zwraca pierwiastek kwadratowy z liczby zwraca liczbę pseudolosową zwraca wartość stałej π zwraca część całkowitą liczby zwraca część ułamkową liczby sprawdzenie czy wartość należy do danego przedziału Tab. 3: Opis wybranych funkcji matematycznych. 1.4 Pętle programowe i instrukcje warunkowe Podstawową instrukcję warunkową stanowi następująca sekwencja: IF wyrażenie THEN blok z kodem programu ELSE blok z kodem programu END gdzie wyrażenie jest odpowiednio zapisanym wyrażeniem logicznym, np. blok instrukcji IF (x > 2) THEN x =x+5 ELSE x=0 END spowoduje przypisanie zmiennej x wartości o 5 większej, gdy warunek x > 2 jest prawdziwy, a przypisanie tej zmiennej wartości zero, gdy warunek ten jest fałszywy. Pętle programowe można tworzyć za pomocą instrukcji FOR przy czy całą pętlę stanowi następująca sekwencja: FOR licznik = wartość1 TO wartość2 STEP delta blok z kodem programu END gdzie licznik jest licznikiem pętli (zmienna typu rzeczywistego), wartość1 oraz wartość2 oznaczają odpowiednio początkową i końcową wartość licznika pętli, a delta jest wyrażeniem o wartościach rzeczywistych definiującym krok, o który będzie zwiększany licznik w każdej iteracji pętli. Np. wykonanie 10 razy instrukcji MOVE A wymaga definiowania następującej pętli: FOR i = 1 TO 10 STEP 1 MOVE A END W systemie V+ dostępne są także dwie inne struktury pętli programowych definiowanych następująco: Laboratorium Podstaw Robotyki – 1 8 DO blok z kodem programu UNTIL wyrażenie oraz WHILE wyrażenie DO blok z kodem programu END gdzie pętle powyższe będą realizowane tak długo, jak długo wyrażenie będzie logiczną prawdą. Szczegółowy opis powyższych struktur można znaleźć w instrukcji języka V+ Language User’s Guide. 1.5 Podstawowe komendy ruchu Blok instrukcji związanych z ruchem pozwala na bezpośrednie oddziaływanie na ruch ramienia manipulatora. Podstawową instrukcja ruchu jest polecenie MOVE A gdzie A stanowi uprzednio zdefiniowaną lokalizację końcówki roboczej manipulatora. Wykonanie tej instrukcji polega na przesłaniu do sterownika robota nowego położenia końcówki roboczej zdefiniowanego w zmiennej A . Ruch ramienia robota polega na realizacji 6 kątów konfiguracyjnych odpowiadających lokalizacji A . Efektywny ruch końcówki roboczej w przestrzeni zadania (kartezjańskiej) nie jest zatem bezpośrednio kontrolowany. Aby w pełni kontrolować taki ruch i realizować go wzdłuż lini prostej w przestrzeni kartezjańskiej należy skorzystać z instrukcji MOVES A Jeżeli chcemy zrealizować ruch końcówki po lini prostej do lokalizacji B liczonej względem pewnej wcześniej określonej lokalizacji L , to piszemy MOVES L:B lub MOVES L:TRANS(10,0,0,20,-10,0) gdzie TRANS(10,0,0,20,-10,0) oznacza jawnie zdefniowaną lokalizację względną określającą przemieszczenie o ∆x = 10[mm], ∆y = 0[mm], ∆z = 0[mm], ∆α = 20[deg], ∆β = −10[deg], ∆γ = 0[deg] względem lokalizacji (układu współrzędnych) L . Jak już wcześniej wspomniano, instrukcje ruchu są wykonywane w programie jedna za drugą bez oczekiwania na fizyczne zakończenie realizacji ruchu ramienia manipulatora. Wykonywana w programie sekwencja instrukcji MOVE A MOVE B spowoduje zatem rozpoczęcie realizacji lokalizacji A i po wejściu w pewne jej otoczenie przez końcówkę roboczą system sterowania zacznie realizować kolejną lokalizację – tutaj B . Zatem lokalizacja A będzie zrealizowana tylko w przybliżeniu (z pewnym określonym błędem). Aby zrealizować lokalizację A w sposób precyzyjny, a dopiero potem rozpocząć realizację lokalizacji B należy zmodyfikować powyższą sekwencję instrukcji jak następuje: MOVE A BREAK MOVE B Laboratorium Podstaw Robotyki – 1 9 Instrukcja BREAK powoduje wstrzymanie wykonywania kolejnych instrukcji programu do czasu zakończenia fizycznej realizacji lokalizacji A . Wszystkie lokalizacje w przestrzeni kartezjańskiej mogą być realizowane z kilkoma różnymi konfiguracjami ramienia robota w zależności od warunków panujących w przestrzeni roboczej (obecność przeszkód itp.). Konfiguracje te określa się za pomocą czterech instrukcji umieszczanych przed wywołaniem instrukcji ruchu typu MOVE . Są to instrukcje ABOVE, BELOW, RIGHTY, LEFTY, które oznaczają odpowiednio: łokieć na górze, łokieć na dole, bark z prawej, bark z lewej. Np. następująca sekwencja: LEFTY BELOW MOVE A RIGHTY BELOW MOVE B RIGHTY ABOVE MOVE C spowoduje realizację lokalizacji A z konfiguracją ramienia bark z lewej+łokieć na dole, następnie realizację lokalizacji B z konfiguracją ramienia bark z prawej+łokieć na dole i na końcu realizację lokalizacji C z konfiguracją ramienia bark z prawej+łokieć na górze. Instrukcja DELAY time powoduje wstrzymanie ruchu ramienia na czas time wyrażony w [ms]. Istotnym aspektem realizacji zadań przez końcówkę chwytną robota jest planowanie chwytu przenoszonego ładunku. Aby podczas operacji chwytu nie doprowadzić do kolizji chwytaka z ładunkiem należy przeprowadzić następującą sekwencję czynności związanych z ruchem ramienia: • wprowadzić lokalizację L związaną z ładunkiem (poprzez nauczanie lub bezpośrednio z lini poleceń), • wykonać podjazd końcówką robota z pozycji początkowej P do punktu A położonego o odległość distance [mm] od lokalizacji L licząc wzdłuż osi Z narzędzia robota (rys. 2), • otworzyć szczęki chwytaka, • wykonać dojazd po lini prostej (w przestrzeni kartezjańskiej) chwytakiem do lokalizacji L związanej z ładunkiem (rys. 2), • zamknąć szczęki chwytaka, aby uchwycić ładunek (rys. 2), • wykonać odjazd z ładunkiem po lini prostej od lokalizacji L do punktu D bezpiecznie oddalonego od miejsca uchwycenia ładunku (podajnik), • zrealizować transport ładunku do określonej lokalizacji docelowej. Zgodnie z powyższym opisem podjazd do punktu A (przy znajomości lokalizacji L) wykonuje się za pomocą instrukcji APPRO L,distance 10 Laboratorium Podstaw Robotyki – 1 Rys. 2: Planowanie chwytu ładunku zdefiniowanego lokalizacją L. gdzie distance jest odłegłością od lokalizacji L wyrażoną w [mm] liczoną wzdłuż osi Z narzędzia robota. Otwieranie i zamykanie szczęk chwytaka realizują odpowiednio instrukcje OPENI oraz CLOSEI. Odjazd od lokalizacji L wzdłuż osi Z narzędzia umożliwia instrukcja DEPART distance gdzie distance jest odłegłością od lokalizacji L wyrażoną w [mm] liczoną wzdłuż osi Z narzędzia robota. Odpowiedniki instrukcji APPRO i DEPART gwarantujące ruch po liniach prostych w przestrzeni kartezjańskiej to APPROS oraz DEPARTS. Rys. 3: Chwytak manipulatora Stäubli z przywiązanym lokalnym układem współrzędnych narzędzia. Rys. 4: Robot Stäubli z przywiązanym bazowym układem współrzędnych. Realizacja dowolnych komend/instrukcji programu jest możliwa bezpośrednio na poziomie okna poleceń monitora systemowego. Aby wykonać pojedynczą instrukcję programu należy przed jej nazwą wpisać słowo kluczowe DO , np.: DO READY ←spowoduje ustawienie ramienia robota w pozycji wyjściowej PW. 1.6 Edycja, uruchomienie i realizacja programów Pojedyncze komendy/instrukcje programu akceptowane przez system V+ można wykonywać podając je bezpośrednio w oknie poleceń tzw. monitora systemowego poprzedzając daną komendę Laboratorium Podstaw Robotyki – 1 Instrukcja READY SPEED value MOVE location MOVES location MOVE A:TRANS(10,0,0) APPRO location,distance DEPART distance OPENI, CLOSEI DELAY time BREAK ABOVE, BELOW RIGHTY, LEFTY TEACH variable[] ALIGN TOOL location WHERE value HERE location 11 Działanie ustawienie robota w pozycji wyjściowej PW zmiana wartości prędkości ruchu końcówki roboczej w przestrzeni zadania; value oznacza wartość prędkości w procentach prędkości dopuszczalnej (ustawianej w systemie V+) przemieszcza końcówkę robota do położenia location przemieszcza końcówkę robota do położenia location wzdłuż lini prostej w przestrzeni kartezjańskiej przesunięcie względem lokalizacji A o podaną wartość w osi x przemieszcza końcówkę robota do położenia oddalonego o distance [mm] od położenia location licząc wzdłuż osi Z narzędzia; instrukcja pozwala na zbliżenie chwytaka w okolicę chwytanego obiektu, a następnie na odpowiednie podejście do obiektu przemieszcza chwytak od bieżącego położenia o odległość -distance[mm] liczoną wzdłuż osi Z narzędzia natychmiastowe otwarcie lub zamknięcie chwytaka z chwilowym wstrzymaniem ruchu robota wstrzymuje ruch robota na czas time podany w [ms] powoduje wstrzymanie wykonywania dalszej części programu dopóki nie zostanie całkowicie zrealizowany poprzedni rozkaz (czyli poprzedzający instrukcję BREAK) poprzedza instrukcje MOVE; steruje konfiguracją przestrzenną ramienia (łokieć u góry lub łokieć na dole) poprzedza instrukcje MOVE; ruch jest realizowany w taki sposób aby główna część korpusu robota (bark) była z prawej lub lewej strony zadanej pozycji pozwala zapamiętywać poszczególne punkty trajektorii w zmiennej tablicowej variable[] podczas procesu nauczania zorientowanie narzędzia zgodnie z kierunkiem najbliższej osi układu bazowego zmiana przywiązania układu współrzędnych narzędzia, gdzie location oznacza przemieszczenie układu względem domyślnego układu narzędzia przywiązanego na końcu ostatniego ogniwa robota podaje aktualną pozycję i konfigurację robota; jeżeli value jest różna od zera to informacja ta jest podawana aż do naciśnięcia Ctrl+C przypisuje do zmiennej location aktualną lokalizację końcówki roboczej (w układzie kartezjańskim) Tab. 4: Opis wybranych instrukcji programowych związanych z manipulacją ramieniem robota. słowem kluczowym DO. Polecenia systemu operacyjnego V+ natomiast są realizowane z poziomu monitora systemowego poprzez wpisanie ich nazwy (i zatwierdzenie) bez słowa kluczowego DO, np.: LOAD labrob.v2 spowoduje załadowanie do RAM-u sterownika środowiska2 o nazwie labrob.v2. 2 Środowiskiem nazywa się zbiór programów i zmiennych zapisanych pod jedną nazwą na dysku sterownika. Laboratorium Podstaw Robotyki – 1 12 Edycji programów dokonuje się we wbudowanym edytorze systemu V+. Aby otworzyć lub utworzyć program w systemie V+ należy w monitorze wpisać następującą sekwencję: SEE ProgramName ←Tekst każdego programu zaczyna się od instrukcji .PROGRAM ProgramName(ParameterList) ;komentarz a kończy słowem kluczowym END. Każda instrukcja programu winna zaczynać się od nowej lini, a komentarze umieszcza sie po znaku średnika. Programy w systemie V+ są wykonywane równolegle – do siedmiu różnych programów jest realizowanych równolegle z podziałem czasu systemowego w zależności od nadanych im priorytetów. W danej chwili tylko jeden z wykonywanych programów może wpływać na ruch manipulatora. Logiczne podłączenie/odłączenie ramienia robota do konkretnego programu realizuje się instrukcją ATTACH / DETACH. Przy uruchamianiu jednego tylko programu, przypisywany jest mu domyślnie numer zerowy, a robot jest logicznie skojarzony z tym właśnie programem (nie ma potrzeby wykonywania komendy ATTACH). Wykonanie całego programu wymaga wprowadzenia w oknie monitora sekwencji: EX ProgramName Krokowe wykonanie programu (instrukcja po instrukcji) jest możliwe wpisując komendę: XSTEP ProgramName przy czym wykonanie każdego kolejnego kroku programu wymaga potwierdzenia ze strony operatoraprogramisty poprzez wprowadzenie litery X i zatwierdzenie klawiszem ENTER. Przed wykonaniem dowolnego programu, sam program oraz wszystkie stałe i zmienne, z których od korzysta muszą zostać wprowadzone do pamięci operacyjnej systemu V+ instrukcją: LOAD FileName.v2 gdzie FileName oznacza nazwę pliku środowiska (programy+zmienne) z rozszerzeniem v2 . Zapis środowiska z pamięci operacyjnej na dysk stały sterownika realizuje komenda: STORE FileName.v2 Wstrzymanie aktualnie wykonywanego programu jest możliwe poprzez wciśnięcie przycisku RUN/HOLD na ręcznym panelu sterującym. Wznowienie działania programu następuje po wpisaniu w oknie poleceń monitora systemowego polecenia PROCCED lub RETRY. W tabeli 5 zestawiono opis wywołania i działania wybranych poleceń systemu operacyjnego V+. Szczegółowe informacje dotyczące przedstawionych funkcji oraz opis innych funkcji programowych jezyka V+ oraz systemu V+ można znaleźć w instrukcjach języka V+: V+ Language User’s Guide oraz instrukcji systemu operacyjnego: V+ Operating System Reference Guide. 1.9 Przełączyć tryb sterowania na ręczny. Za pomocą ręcznego panelu sterującego przemieszczać ramię manipulatora i obserwować ciągłe wskazania funkcji WHERE. 1.10 Przypisać do zmiennych dwie różne lokalizacje (w postaci transformacji i punktu precyzji) ramienia nauczone poleceniem HERE. 13 Laboratorium Podstaw Robotyki – 1 Polecenie LS CD LOAD FileName.v2 LISTL LISTP STORE FileName.v2 DIR SEE ProgramName TYPE PROMPT "INFO",variable EX ProgramName XSTEP prog,loopnr,step EN POW, DIS POW Działanie wyświetla zawartość katalogu zmiana katalogu ładuje środowisko o nazwie FileName.v2 z dysku do pamięci RAM robota (środowisko to zbiór zmiennych i programów) wyświetla w oknie monitora wszystkie lokalizacje obecne w pamięci RAM sterownika wyświetla w oknie monitora listing programu obecnego w pamięci RAM sterownika zapisuje środowisko na dysk pod nazwą FileName.v2 wyświetla nazwy wszystkich dostępnych programów w załadowanym środowisku pozwala na edycję programu; w trakcie edycji dostępne są klawisze funkcyjne F1 - F12 działające według opisu umieszczonego na klawiaturze wyświetla tekst na ekranie terminala pobiera wartość z terminala i przypisuje ją do zmiennej variable wykonanie programu ProgramName krokowe wykonywanie programu prog, od kroku step, powtarzanego loopnr razy załączenie i wyłączenie zasilania napędów robota Tab. 5: Opis wybranych poleceń systemu operacyjnego V+. 1.11 Dane są reprezentacje jednorodne lokalizacji: 0 1 0 0 1 0 1 0 0 −0.4 0 1 , TAB = TCA = 0 0 −1 0 0 0.1 0 0 0 1 0 0 0 1 0 0 0 0 −1 −0.4 , TDB = −1 0 0 0.3 0 0 0 1 0 −0.1 0 0 , 1 0.1 0 1 (13) (14) gdzie TAB oznacza układ współrzędnych związany z położeniem A wyrażony w układzie bazowym B, a TCA zonacza układ związany z pewnym położeniem C wyrażony w układzie A itd. (wartości współrzędnych pozycji x, y, z podano w [m]). Określić i wprowadzić do systemu V+ lokalizacje (transformacje) reprezentujące następujące układy: TAB , TCA , TBA , TAC , TCB , TBC , TDB . (15) 1.12 Przećwiczyć wykorzystanie funkcji zestawionych w tabeli 3. UWAGA! Nie wchodź w przestrzeń roboczą manipulatora przy włączonych napędach! Kontakt robota z człowiekiem grozi poważnym uszkodzeniem ciała! 14 Laboratorium Podstaw Robotyki – 1 1.13 Załączyć napędy robota. Zrealizować lokalizacje TAB , TCA , TAC , TCB , TDB ramieniem robo- ta za pomocą instrukcji MOVE (z konfiguracją LEFTY). Zinterpretować i sprawdzić poprawność wyników. ZACHOWAĆ OSTROŻNOŚĆ! 1.14 Porównać realizacje lokalizacji TAB , TDB z wykorzystaniem instrukcji MOVES . 1.15 Zrealizować lokalizację TDB w czterema różnymi konfiguracjami ramienia robota: łokieć na górze, łokieć na dole, bark z prawej, bark z lewej. ZACHOWAĆ OSTROŻNOŚĆ! 1.16 Sprawdzić działanie funkcji APPRO/APPROS oraz DEPART/DEPARTS wykorzystując lokalizację TCA (przyjąć parametr distance równy 100). Sprawdzić działanie instrukcji otwierania i zamykania chwytaka. ZACHOWAĆ OSTROŻNOŚĆ! 1.17 Sprawdzić działanie pozostałych instrukcji z tabeli 4. 1.18 Ustawić robota w położeniu wyjściowym PW. Wyłączyć napędy robota. UWAGA! Wszystkie wykonywane podczas ćwiczenia programy przed uruchomieniem muszą zostać sprawdzone przez osobę prowadzącą zajęcia! 1.19 Oznaczmy dla uproszczenia, że P W , A, C oraz D oznaczają odpowiednio lokalizacje (układy) TBB (położenie wyjściowe robota PW), TAB , TCA oraz TDB . Napisać program pozwalający na realizację następującej sekwencji lokalizacji: (16) P W −→ ALA −→ CLA −→ P W, gdzie ALA oznacza realizację lokalizacji A z konfiguracją ramienia ramie z lewej, łokieć na górze – LEFTY, ABOVE. Załączyć napędy robota. Wykonać napisany program metodą krok po kroku. Po stwierdzeniu poprawności działania poszczególnych instrukcji program wykonać w całości. ZACHOWAĆ OSTROŻNOŚĆ! 1.20 Napisać program pozwalający na realizację następującej sekwencji lokalizacji: PW BREAK −→ ALA BREAK −→ CLA BREAK −→ P W, (17) BREAK gdzie −→ oznacza precyzyjną realizację poszczególnych lokalizacji. Załączyć napędy robota. Wykonać program. Zaobserwować różnice w realizacji programu w stosunku do wersji poprzedniej. ZACHOWAĆ OSTROŻNOŚĆ! 1.21 Napisać programy z wykorzystaniem pętli programowej pozwalające na realizację następujących sekwencji lokalizacji: ×3 P W −→ ALA ←→ CRB −→ P W, (18) ×3, BREAK (19) oraz P W −→ ALA ←→ CRB −→ P W, gdzie CRB oznacza realizację lokalizacji C z konfiguracją ramienia ramie z prawej, łokieć ×3 na dole – RIGHTY, BELOW , a ←→ oznacza trzykrotną realizację odpowiedniej sekwencji lokalizacji. Załączyć napędy robota. Wykonać napisane programy metodą krok po kroku. Po stwierdzeniu poprawności działania poszczególnych instrukcji programy wykonać w całości. Porównać działanie obu programów. ZACHOWAĆ OSTROŻNOŚĆ! 1.22 Ustawić robota w położeniu wyjściowym PW. Wyłączyć napędy robota. 1.23 Wszystkie programy i zmienne zapisać na dysku w środowisku pod nazwą labrob.v2. Sprawdzić działanie pozostałych poleceń zebranych w tabeli 5. Laboratorium Podstaw Robotyki – 1 15 UWAGA! Nie wchodź w przestrzeń roboczą manipulatora przy włączonych napędach! Kontakt robota z człowiekiem grozi poważnym uszkodzeniem ciała! Literatura [1] K. Kozłowski, P. Dutkiewicz, W. Wróblewski. Modelowanie i sterowanie robotów. Wydawnictwo Naukowe PWN, Warszawa, 2003. [2] Stäubli. Operator Manual. Stäubli, Niemcy, 2000. [3] Adept Technology. Adept motion VME. Developer’s Guide. Adept Technology Inc., San Jose, CA, 1996. [4] Adept Technology. V+ Language. Reference Guide. Adept Technology Inc., San Jose, CA, 1998. [5] Adept Technology. V+ Operating System. Reference Guide. Adept Technology Inc., San Jose, CA, 1998.