Polit echnik a Lubelsk a, Wydział Mechaniczny Katedra Automatyzacji ul. Nadbystrzycka 36, 20-618 Lubl i n tel./fax.:(+48 81) 5384267 e-mai l :automat@pol l ub.pl; wm.ka@pol l ub.p LABORATORIUM PODSTAW ROBOTYKI Instrukcja do ćwiczenia nr R5 PROGRAMOWANIE 5-OSIOWEGO ROBOTA DYDAKTYCZNEGO SCORBOT-ER Vplus Wydział Mechaniczny Sala 406
I. Cel ćwiczenia Celem dydaktycznym jest zapoznanie z budową oraz podstawami obsługi oraz programowania wieloosiowego robota przegubowego. Celem praktycznym jest zaprogramowanie 5-osiowego robota do automatycznego sortowania części. II. Stanowisko ćwiczeniowe Na stanowisku ćwiczeniowym zainstalowany jest pięcioosiowy robot przegubowy SCORBOT-ER Vplus (rys. 1.). Jest to urządzenie przeznaczone do celów szkoleniowych/dydaktycznych. Posiada otwartą konstrukcję umożliwiającą zademonstrowanie budowy układów napędowych (serwonapędów i przeniesienia napędu). Rys. 1. Pięcioosiowy robot dydaktyczny SCORBOT-ER Vplus (obok widoczny programator ręczny oraz sterownik robota). 1
Ramię robota składa się z pieciu osi obrotowych (tzw. przegubów, z ang. joint) połączonych szeregowo rys. 2. Osie robota mają przyporządkowane numery 1 5 i tworzą tzw. grupę osi ozn. literą A. Na końcu otwartego łańcucha kinematycznego robota zainstalowany jest dwupalcowy chwytak. Podstawa robota zamocowana jest do dodatkowego serwonapędu liniowego o zakresie ruchu ok. 1.8m (rys. 2.). Ta dodatkowa oś (o numerze 7) obsługiwana jest także przez sterownik robota i przypisana jest do grupy osi B tzw. osi zewnętrznych (z ang. peripheral). UWAGA! Przed przystąpieniem do wykonywania ćwiczenia należy koniecznie przestudiować oryginalną instrukcję obsługi producenta robota (patrz plik: Instrukcja R5_Zał1 Robot SCORBOT j_ang skrócona.pdf) w zakresie: danych technicznych, konstrukcji, układów napędowych robota rozdział 2, podstawowej obsługi programatora ręcznego rozdział 5 (od nagłówka Teach Pendant), podstaw obsługi robota z programatora ręcznego rozdział 6 (od nagłówka Homing the Robot and Peripheral Axes, należy pominąć akapity oznaczone PC ). Rys. 2. Schemat budowy robota SCORBOT-ER Vplus (w nawiasach podano numery przegubów/osi). 2
III. Program SCORBASEpro Do obsługi i programowania robota można wykorzystać komputer osobisty z dedykowanym programem SCORBASEpro. Program komunikuje się ze sterownikiem robota przez interfejs szeregowy RS232. Z okna programu (rys. 3.) można sterować robotem analogicznie jak z programatora ręcznego (okienko Manual Movement). Ponadto program udostępnia przyjazny w obsłudze edytor do tworzenia i testowania sekwencji rozkazów tj. programu dla robota. Na rys. 3. przedstawiono widok okna aplikacji SCORBASEpro z opisem wybranych funkcji. OKNO SEKWENCJI INSTRUKCJI (PROGRAM) KURSOR BIEŻĄCEJ INSTRUKCJI WYKONANIE PROGRAMU OD KURSORA DO OSTATNIEJ LINII WYKONANIE JEDNEJ LINII PROGRAMU WYKONANIE PROGRAMU OD KURSORA AŻ DO ZATRZYMANIA BAZOWANIE WSZYSTKICH OSI LISTA WYBORU INSTRUKCJI OKNO DEFINIOWANIA I TESTOWANIA POZYCJI ROBOTA ZAPAMIĘTANIE BIEŻĄCEJ POZYCJI ROBOTA WYDANIE KOMENDY JEDŹ DO POZYCJI... Rys. 3. Widok okna programu SCORBASEpro do zarządzania i programowania robota SCORBOT- ER Vplus. 3
Na rys. 4. widoczna jest lista komend języka programowania robota SCORBOT-ER Vplus. Do najczęściej używanych komend należą: KOMENDA OPIS UWAGI GoToPosition#NN OpenGripper CloseGripper IfInput#NNOnJump_ETYKIETA Label... ETYKIETA JumpTo...ETYKIETA Wait... Przesuń do wcześniej zdefiniowanej pozycji o numerze #NN Sterowanie chwytakiem Komenda skoku warunkowego w zależności od stanu uniwersalnego wejścia binarnego o numerze #NN Wstawia w miejscu kursora (lub nad nim) etykietę o nazwie ETYKIETA: Komenda skoku do miejsca oznaczonego etykietą ETYKIETA Pauza (wstrzymanie wykonywania kolejnej linii) na zadany czas. Umożliwia także podanie sposobu interpolacji oraz prędkości ruchu. Sterownik robota posiada 16 uniwersalnych wejść binarnych. Jeżeli wejście #NN jest pobudzone (albo nie można wybrać) to nastąpi przejście do linii oznaczonej etykietą ETYKIETA. W przeciwnym wypadku wykonywana jest komenda z następnej linii. Etykieta wskazuje miejsce w programie, do którego może nastąpić przejście w wyniku wykonania skoku (także warunkowego). W oknie programu po nazwie etykiety wyświetlany jest dwukropek. Komendy programu wykonywane są od tej podświetlonej błękitnym kursorem, z góry do dołu. Instrukcje skoku (JumpTo...) oraz skoku warunkowego (np. IfInput#NNOnJump...) służą do zmiany przebiegu programu (szczegóły w tabeli powyżej). 4
Rys. 4. Lista komend języka programowania robota SCORBOT-ER Vplus. IV. Pytania kontrolne 1. Omów ogólną budowę robota SCORBOT-ER Vplus. 2. Omów elementy wykonawcze, sposób przeniesienia napędu oraz pomiaru pozycji zastosowane w przegubie robota SCORBOT-ER Vplus. 3. Na czym polega bazowanie osi robota (przegubu)? W jakich przypadkach wymagane jest bazowanie? Podaj komendę bazowania wydawaną z użyciem programatora ręcznego. 5
V. Przebieg ćwiczenia UWAGA! ZAKAZ SAMODZIELNEGO WŁĄCZANIA ZASILANIA ROBOTA ORAZ KOMPUTERA! (POPROŚ O POMOC NAUCZYCIELA) UWAGA! W PRZYPADKU ZAGROŻENIA NALEŻY NATYCHMIAST WCISNĄĆ CZERWONY PRZYCISK EMERGENCY NA PRZEDNIEJ ŚCIANIE STEROWNIKA ROBOTA. I. Bazowanie osi i sterowanie w trybie ręcznym 1. Upewnij się, że w zasięgu ramienia robota nie znajdują się osoby ani żadne przedmioty niebędące częścią stanowiska (np. torby, zeszyty, narzędzia itp.). 2. Przy pomocy programatora ręcznego (przycisk Group Select) wybierz sterowanie grupą osi A. 3. Wydaj rozkaz bazowania osi ramienia robota (Run, 0, Enter). Poczekaj na zakończenie bazowania pięciu osi robota. 4. W programie SCORBASEpro wybierz z Menu polecenie: Run Search home peripherals Poczekaj na zakończenie bazowania osi dodatkowej (o numerze 7). 5. Przy pomocy programatora ręcznego ustaw prędkość ruchów w trybie ręcznym na 30% prędkości maksymalnej (Speed, 3, 0, Enter). 6. Wybierz tryb sterowania indywidualnymi przegubami JOINTS (przycisk XYZ/Joints). 7. Użyj przycisków poszczególnych osi aby sterować przegubami robota oraz osią dodatkową (Axis 7 [+] oraz Axis 7 [-]). 8. Użyj komendy (Go Position, 0, Enter) aby ustawić ramię robota w predefiniowanej przez producenta pozycji zerowej (nie mylić z procedurą bazowania). 9. Użyj komendy (Go Position, 0, 0, Enter) aby sprowadzić oś dodatkową (7) do predefiniowanej przez producenta pozycji zerowej (nie mylić z procedurą bazowania). 10. Wybierz tryb sterowania ruchem z interpolacją liniową XYZ (przycisk XYZ/Joints). Przetestuj działanie robota w tym trybie. 6
II. Zapamiętywanie i odtwarzanie pozycji robota W tej części zdefiniujesz w pamięci sterownika robota kilka pozycji ramienia robota a następnie wydasz sekwencję rozkazów, w wyniku których przeniesiony zostanie drewniany klocek ze stolika na podłoże obok stolika. 11. Ustaw ramię robota w pobliżu stolika z plexi (oś 7). Możesz użyć komendy (Go Position, 0, 0, Enter). Od tej pory nie zmieniaj pozycji osi 7 (dot. całego zadania II). 12. Połóż klocek na stolik i dosuń go do kołków ustalających. 13. Przy pomocy programatora ręcznego ustaw otwarte szczęki ok. 2cm nad klockiem, tak aby po opuszczeniu chwytaka wzdłuż osi Z mogły go objąć. Dostosowuj prędkość ruchów (polecenie Speed) do wymaganej precyzji pozycjonowania. 14. Zapamiętaj bieżącą pozycję ramienia pod pozycją nr 10 (Record Position, 1, 0, Enter). Współrzędne pięciu osi ramienia robota zostaną zapamiętane w pamięci nieulotnej sterownika. UWAGA! Nie zapisuj pozycji pod nr 0 (poz. nr 0 została zdefiniowana przez producenta urządzenia). 15. Obniż chwytak i uchwyć klocek. Powtórz jeżeli chwyt nie jest pewny. Zapamiętaj bieżącą pozycję ramienia pod pozycją nr 20. Uwaga: stan chwytaka (otwarty/zamknięty) nie jest zapamiętywany ze współrzędnymi osi ramienia. 16. Użyj polecenia (Go Position, 0, Enter) aby unieść wysoko klocek (do zerowej pozycji ramienia). 17. Przesuń klocek klika milimetrów nad podłoże obok stolika. Zapamiętaj bieżącą pozycję ramienia pod pozycją nr 30. Otwórz chwytak. 18. Właśnie zdefiniowałeś 3 nowe pozycje ramienia robota (ozn. 10, 20, 30, pozycja 0 jest zdefiniowana przez producenta). Zanotuj ich znaczenie (funkcje lub przeznaczenie w kontekście procedury przenoszenia klocka). 19. Wydaj po kolei właściwą sekwencję komend Go Position oraz Open/Close aby ponownie przenieść klocek ze stolika na podłoże. Powtórz sekwencję. UWAGA! Przewiduj możliwe kolizje chwytaka ze stolikiem i unikaj ich! Ruch do nowej pozycji odbywa się po trajektorii prostoliniowej (w trybie XYZ) albo z interpolacją w przegubach (tryb JOINTS). 7
III. Napisanie programu automatycznego sortowania klocków W tej części, przy pomocy specjalnego edytora w komputerze, napiszesz program do automatycznego rozpoznawania i sortowania dwóch rodzajów klocków. W blacie stolika z plexi zainstalowane są dwa zbliżeniowe czujniki obecności przedmiotów: czujnik optyczny odbiciowy wykrywa obecność każdego przedmiotu na stoliku, sygnał z czujnika doprowadzony jest do wejścia binarnego nr 10 sterownika robota, czujnik indukcyjny wykrywa obecność tylko przedmiotu metalowego na blacie stolika, sygnał z czujnika doprowadzony jest do wejścia binarnego nr 14 sterownika robota. Jedynie klocki z czterema otworami mają wklejoną metalową wkładkę pobudzającą czujnik indukcyjny. Zadanie polega na napisaniu programu dla robota, który w sposób cykliczny sięga po klocek położony ręcznie na stoliku, identyfikuje jego rodzaj (z czterama otworami albo inny) i odkłada na miejsce z właściwą liczbą kołków (z czterema lub inną liczbą kołków). Dodatkowe wymagania: robot ma oczekiwać w bezpiecznej odległości od stolika na położenie klocka na blacie, po podjęciu klocka ze stolika robot powinien pokazać go człowiekowi (na wyprostowanym ramieniu), tak aby widoczna była liczba otworów w klocku, odkłądając klocek na właściwe miejsce nie należy go nadziewać na kołki a jedynie upuścić na nie (klocek sam się wycentruje ). 20. W programie SCORBASEpro otwórz okienko dla nowego programu (menu File New). 21. W okienku Teach Positions włącz oba przełączniki Robot oraz Peripherals w polu Include Axes (rys. 3.). Od tej pory kliknięcie przycisku Record spowoduje zapamiętanie bieżącego stanu (współrzędnych) wszystkich osi (robota i osi dodatkowej). 22. W okienku Teach Positions włącz przełącznik Absolute, co oznacza, że będą zapamiętywane bezwzględne wpółrzędne przegubów (osi), tj. w podstawowym układzie odniesienia. Aktywny włącznik Relative to (nr pozycji) spowoduje zapamiętywanie współrzędnych robota względem innej pozycji robota. 8
23. Zaplanuj i zapisz w pamięci sterownika (przyciskiem Record) charakterystyczne pozycje robota, wymagane do realizacji zadania. Zanotuj w sprawozdaniu przypisane numery pozycji z krótkim ich opisem. 24. Napisz i przetestuj swój program. Zademonstruj działanie programu nauczycielowi. 25. Przepisz kod programu do sprawozdania. 26. Użyj komendy (Go Position, 0, Enter) aby ustawić ramię robota w predefiniowanej przez producenta pozycji zerowej. 9