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.

Podobne dokumenty