Pierwszy program w robocie UR: aplikacja Pick&Place - ProCobot

Pierwszy program w robocie UR: aplikacja Pick&Place

Przed przeczytaniem opisu aplikacji Pick&Place zachęcamy do zaznajomienia się z artykułem wprowadzającym do konfiguracji robotów UR „Konfiguracja parametrów instalacyjnych robota UR”. 

Opis aplikacji Pick&Place

Aplikacja Pick&Place jest najbardziej popularną operacją wykonywaną przez robota. Zadania montażu, machine tending, przenoszenia elementów, paletyzacji, obsługi maszyny CNC, kontrola jakości i inne to tak naprawdę rozbudowane operacje pobierz i odłóż. Najprostsza aplikacja Pick&Place składa się z czterech punktów oraz dwóch operacji chwytaka.

Rysunek 1. Schemat aplikacji Pick&Place.Rysunek 1. Schemat aplikacji Pick&Place

Zanim przejdziemy do zaprogramowania aplikacji Pick&Place, musimy przedstawić sposób załączenia robota oraz parametryzacje podstawowych operacji robota.

Zasilenie ramienia robota

Po załączeniu oprogramowania robota konieczne jest zasilenie jego przegubów. Odbywa się ono w zakładce Inicjalizacji, przechodzimy do niej klikając w czerwony przycisk „Power off” w lewym dolnym rogu ekranu.

Rysunek 2. Prezentacja zakładki Inicjalizacji.

Rysunek 2. Prezentacja zakładki Inicjalizacji

Zasilanie ramienia robota przebiega dwustopniowo. W pierwszym kroku, po naciśnięciu przycisku „START”, zasilone zostają przeguby robota oraz przeprowadzana jest podstawowa diagnostyka ramienia oraz komunikacji pomiędzy modułami manipulatora. Robot po wykonaniu operacji przechodzi do stanu pośredniego „IDLE”. W tym stanie po naciśnięciu przycisku Freedrive uruchomiony zostaje tryb Backdrive. Pozwala on na wycofanie robota przed jego pełnym załączeniem. Przydatny jest on w sytuacji zatrzymania robota w pobliżu elementu otoczenia, innych maszyn. Gdy robot ustawiony jest w wolnej od kontaktu przestrzeni, sprawdzamy poprawność Aktywnego obciążenia. Jest to parametr informujący o wadze elementów przyczepionych do kiści w momencie załączenia. Domyślnie podana jest wartość obciążenia chwytaka zapisana w instalacji.

Etapy załączenia robota.

Rysunek 3. Etapy załączenia robota

Gdy wszystko jest poprawnie ustawione możemy zakończyć załączanie robota klikając przycisk „ON”. Robot w tym momencie wyłącza hamulce mechaniczne i jest gotowy do normalnej pracy.

Okno programowania robota

Zakładkę Program możemy podzielić na cztery części.

Widok zakładki Program.

Rysunek 4. Widok zakładki Program

  1. Obszar struktur, znajdują się w niej wszystkie funkcje dostępne dla robota UR. Podzielone zostały one na sekcje Basic, Advance, Templates oraz URCaps
  2. Obszar drzewa programu i jego edycji. Przedstawione w nim zostają wszystkie funkcje wykorzystane w programie. Program robota wykonywany jest w sposób sekwencyjny. Obszar edycji, znajdujący się pod drzewem programu, pozwala na przemieszczanie, kopiowanie, usuwanie oraz blokowanie funkcji.
  3. Obszar zakładek. Zawiera on trzy okna:
    • Command – służy do parametryzacji struktur dodanych do programu.
    • Graphics – wykorzystywane do wizualizacji ruchu robota oraz zmiany jego położeń w przestrzeni.
    • Variables – przedstawiającej wszystkie zmienne wykorzystane w programie
  4. Obszar uruchomienia programu. Wykorzystywany do wystartowania, wstrzymania oraz zatrzymania działania aplikacji. Dodatkowo znajduje się w nim rejestr przesuwny Speed pozwalający na redukcję prędkości ramienia robota w czasie rzeczywistym.

Podstawowa funkcja robota: ruch

Najistotniejszą cechą robota przemysłowego jest możliwość manipulacji elementami w przestrzeni. Cobot Universal Robots w celu automatycznego osiągania pozycji w przestrzeni wymaga zastosowania dwóch komend: Punkt orientacyjny oraz Ruch. Pierwsza z nich pozwala na ustalenie docelowego, jednoznacznie zdefiniowanego punktu w przestrzeni, do którego robot będzie dojeżdżał. Druga określa trajektorię jaką porusza się robot pomiędzy punktami.

Funkcja ruchu robota UR.

Rysunek 5. Funkcja ruchu robota UR

W funkcji ruchu robota ustalamy parametry dynamiczne ruchu, wykorzystanie punktu TCP w danym ruchu, płaszczyznę ruchu oraz typ ruchu.  Rozróżniamy ruch:

  • MoveJ – ruch swobodny. Jest to najszybszy ruch dla robota. Wykorzystywany jest, gdy robot ma wykonać szybkie przemieszczenie pomiędzy pozycjami bez konieczności zachowania trajektorii liniowej. Prędkość w tym przemieszczeniu podajemy w °/s – prędkości przegubów.
  • MoveL – ruch z interpolowaniem trajektorii pomiędzy punktami, ścieżka liniowa jest wyznaczona przez robota względem punktu TCP. Ruch ten wykorzystujemy wszędzie tam, gdzie niezbędna jest określona trajektoria ruchu. Przykładem zastosowania jest umieszczenie elementu na pozycji, ruch z ominięciem elementów otoczenia. W ruchu liniowym podajemy prędkość punktu TCP w mm/s.
  • MoveP – ruch procesowy z zachowaniem stałej prędkości punktu TCP w czasie całego ruchu. Ruch procesowy jest rozszerzoną wersją ruchu liniowego, każda pozycja posiada określony parametr Blend. Robot nie zatrzymuje się w tych punktach tylko omija je w określonej w tym parametrze odległości. Ruch wykorzystywany jest w aplikacjach takich jak nakładanie kleju, malowanie, spawanie, polerowanie.

W najprostszej aplikacji Pick&Place będziemy korzystać z ruchu MoveJ przy przemieszczaniu się pomiędzy pozycjami pośrednimi oraz z ruchu MoveL przy dojeździe do punktu pobrania oraz do punktu odłożenia.

Porównanie ruchów robota. Od lewej MoveJ, MoveL, MoveP.Rysunek 6. Porównanie ruchów robota. Od lewej MoveJ, MoveL, MoveP

Sposoby ustawiania punktów w programie

W celu ustawienia punktu w programie konieczne jest dodanie funkcji Waypoint. Podstawowym parametrem tej funkcji jest określenie jednoznacznego położenia robota w przestrzeni. Ustawiamy je klikając w funkcję Set Waypoint. Przeniesieni zostajemy do zakładki Move, w której możemy poruszać robotem. Ramie robota może być przemieszczane na kilka sposobów.

Zakładka ruchu robota.

Rysunek 7. Zakładka ruchu robota

  1. Pierwszym z nich jest poruszanie każdym z przegubów indywidualnie. Każdy moduł ruchomy robota ma możliwość obrotu o ±360°. Na lineałach zaznaczone zostały aktualne pozycje każdego z przegubów, robot nie powinien pracować w aplikacji w pobliżu granicznych położeń przegubu.
  2. Ruch za pomocą przemieszczenia przegubów nie jest w pełni intuicyjny, gdy musimy zmieniać dokładnie położenie punktu TCP. Dlatego kolejnym sposobem ruchu jest wykorzystanie przemieszczenia w układach ruchu robota. Do ruchu wykorzystywane są strzałki z lewej strony ekranu. Podstawowe płaszczyzny ruchu to:
    • View – w tej płaszczyźnie wykonujemy intuicyjne ruchy robota względem prezentacji robota na wizualizacji. Oznacza to, że gdy manipulator na wizualizacji jest ustawiony tak jak widzi go operator to, gdy zostanie wciśnięta strzałka w prawo, robot przemieści się w prawo, gdy lewo w lewo itd.
    • Base – płaszczyzna, w której jednoznacznie określone zostają osie ruchu robota względem środka układu odniesienia znajdującego się wewnątrz przegubu Base. Kierunki przemieszczenia robota określamy poprzez:

      Oś:
      • Y, jej dodatni zwrot zdefiniowany jest za pomocą przewodu zasilającego ramię robota.
      • Z, oś ta zawsze przecina przegub, dla płaszczyzny Base dodatni zwrot osi Z skierowany jest w górę.     
      • X, zwrot tej osi wyznaczany jest z reguły śruby prawoskrętnej względem dwóch pozostałych.

Wszystkie punkty pracy robota zapisywane są względem Bazy. Niemożliwa jest zmiana punktów referencyjnych określających płaszczyznę Bazy robota.

    • Tool – położenie środka układu odniesienia dla tej płaszczyzny znajduje się w punkcie TCP. Możemy zmienić kierunki działania osi poprzez odpowiednie zdefiniowanie orientacji narzędzia. W podstawowej wersji, gdy ani przesunięcie, ani orientacja narzędzia nie jest ustawiona zwrot osi określany jest następująco:

Oś:

      • Y, jej ujemny zwrot zdefiniowany jest za pomocą złącza 8-pin na kiści robota.
      • Z, tak jak dla płaszczyzny Base oś przecina przegub, w tym przypadku jest to moduł Wrist3. Zwrot osi Z+ jest ustalony zgodnie z kierunkiem narzędzia.
      • X, zwrot tej osi wyznaczany jest z reguły śruby prawoskrętnej względem dwóch pozostałych.

3. Czasami ze względu na niewystarczającą dokładność ustawienia pozycji konieczne jest zdefiniowanie pojedynczego przesunięcia robota lub ustalenie dokładnej docelowej pozycji. W takich przypadkach pomaga nam Edytor pozycji. Przechodzimy do niego poprzez wybranie jednego z okien aktualnej pozycji robota.

W tym oknie mamy możliwość ustawienia położenia, dodania lub odjęcia wartości od aktualnej pozycji dla puntu TCP oraz każdego z przegubów indywidualnie.

Funkcja Freedrive robota UR.

Rysunek 8. Funkcja Freedrive robota UR

4. Najszybszym sposobem ustawienia położenia ramienia jest zastosowanie funkcji Freedrive. Może ona zostać wyzwolona na trzy sposoby:

    • Za pomocą:
      • przycisku na obudowanie Ekranu Uczenia
      • odpowiednio sparametryzowanego sygnału wejściowego
      • przycisku Freedrive znajdującego się w zakładce Move

Po aktywacji mamy możliwość przemieszczania robota poprzez prowadzenie go ręką. W wersji oprogramowania 5.8, rozbudowano tą funkcję o możliwość poruszania się względem określonych płaszczyzna, ale także możliwość blokowania osi ruchu oraz ich rotacji. Zwiększyło to znacznie dokładność ustawienia położenia robota przy prowadzeniu go ręką.

Gdy ustalimy już położenie ramienia zatwierdzamy naszą decyzję klikając „OK”. Po zatwierdzeniu pozycji na wizualizacji zaprezentowane zostanie położenie ramienia robota.

Funkcja Waypoint po ustawieniu punktu.

Rysunek 9. Funkcja Waypoint po ustawieniu punktu

Pozostałymi elementami możliwymi do ustawiania w funkcji Waypoint są:

  1. Nazwa punktu – zwiększa przejrzystość całego programu i pozwala na jego łatwiejszą edycję
  2. Połączenie punktu – pozwala na skopiowanie parametrów wcześniej zapisanego punktu
  3. Edit pose – pozwala na zmianę pozycji bez przesuwania ramienia robota
  4. Move here – przesuwa robota do pozycji zapisanej w punkcie.
  5. Stop at this point / Blend with radius – ustala czy robot ma zatrzymywać się w danym punkcie czy mijać go w odległości określonej za pomocą parametru Blend. Zastosowanie omijania punktów pozwala na przyspieszenie pracy robota
  6. Indywidualne parametry dla punktu – pozwalają na ustawienie indywidualnych parametrów prędkości robota niezależnie od wartości ustawionych w funkcji ruchu.

Ustawienie pozycji domowej robota

Dla robota Universal Robots mamy możliwość zdefiniowania jednej pozycji Home, która może zostać zdefiniowana jako bezpieczne położenie ramienia robota. Ustawienie tej pozycji odbywa się w zakładce Instalacji -> General -> Home.

Ustawienie pozycji Home.

Rysunek 10. Ustawienie pozycji Home

Poprzez Edycję pozycji wskazujemy ustawienie bezpieczne i zapisujemy pozycję. W celu wykorzystania ustawienia w programie z obszaru struktur wymieramy zaawansowaną funkcję Home. Robot zawsze dojeżdża do tej pozycji w ruchu MoveJ.

Stworzenie aplikacji Pick&Place

Chcemy, aby przed rozpoczęciem programu robot znajdował się w pozycji Home. Dodajemy więc do naszego programu sekcję Before Start, poprzez zaznaczenie odpowiedniej opcji w funkcji Robot Program i wewnątrz niej dodajemy funkcję Home. W programie głównym w celu zwiększenia przejrzystości oraz ułatwienia późniejszych zmian rozpoczniemy od dodania funkcji Folder. Grupuje ona komendy robota, nadajemy jej nazwę „Pobranie”. Kolejnym krokiem do stworzenia programu przenoszenia elementu jest dodanie funkcji Move do naszego programu. Automatycznie wraz z dodaniem funkcji Move dodawana jest funkcja Waypoint. Ponieważ pierwszym ruchem w naszej aplikacji będzie ruch MoveJ, przechodzimy od razu do ustawienia pozycji robota.

Początek pisania aplikacji Pick&Place

Rysunek 11. Początek pisania aplikacji Pick&Place

W funkcji Waypoint wybieramy opcje Set Waypoint, z wykorzystaniem jednego ze sposobów ustawiamy położenie robota w pozycji Przed_pobraniem. Następnie dodajemy kolejną funkcje ruchu, tym razem skorzystamy z przemieszczenia liniowego, aby nie zahaczyć o element w czasie pobrania. Ustawiamy punkt Pobranie, który będzie określał położenie robota przy złapaniu elementu.

Operacje chwytaka

Aby pobrać element konieczne jest zamknięcie chwytaka. W zależności od zastosowanego efektora, jego akcja może być definiowana za pomocą sygnału wejściowego lub z wykorzystaniem specjalnego rozszerzenia URcaps. Rozszerzenia URcaps są to specjalne biblioteki pisane przez producentów dodatków do robota UR - znacznie upraszczają one sposób obsługi tych urządzeń. Więcej na ich temat mogą Państwo znaleźć w naszych pozostałych artykułach.

Na koniec, dodajemy funkcje działania chwytaka i go zamykamy. Następnym krokiem, jest podniesienie robota do pozycji Przed_pobraniem i wykonanie odłożenia. Struktura ruchu przy odłożeniu będzie identyczna jak przy pobieraniu, różnicom jest jedynie zmiana akcji chwytaka na otwarcie. Przykładowa gotowa struktura programu przedstawiona została poniżej.

Przykładowa struktura gotowego programu - Pick&Place

Rysunek 12. Przykładowa struktura gotowego programu

Powyższe przykłady zostały opracowane w wersji Polyscope v5.8.
Autor dołożył wszelkich starań, aby informacje przedstawione w opracowaniu były kompletne i rzetelne, nie ponosi jednak żadnej odpowiedzialności ani za ich wykorzystanie ani za szkody spowodowane ewentualnymi błędami.
Występujące w tekście zastrzeżone znaki firm są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.
Żadna część tej pracy nie może być powielana i rozpowszechniana w jakiejkolwiek formie i w jakikolwiek sposób włącznie z fotokopiowaniem lub przy użyciu innych systemów, bez pisemnej zgody autora.  

 

 

  •