Podstawy programowania robotów
Manipulatory robotów przemysłowych są mechanizmami składającymi się z kilku członów. Człony te są ze sobą połączone i przemieszczają się wzajemnie w celu uchwycenia lub przeniesienia części lub narzędzia zgodnie z zadawanymi sygnałami sterującymi na podstawie wskazań operatora lub zgodnie z zapisanym i uruchomionym programem robota. We wszystkich tych przypadkach opis ruchu robota wymaga znajomości położenia poszczególnych członów systemu zrobotyzowanego względem siebie w funkcji czasu. W związku z powyższym zagadnienie zarówno sterowania, jak i programowania łączy się nierozerwalnie z koniecznością zastosowania odpowiednich układów współrzędnych, względem których realizowany będzie ruch manipulatora. Niezależnie od konstrukcji robota, zgodnie z normą ISO 9787:2013 możemy wyróżnić kilka standardowych układów współrzędnych stosowanych w robotyce.
Pierwszym jest globalny układ współrzędnych (ang. World Coordinate System), będący układem kartezjańskim odniesionym do Ziemi i niezależnym od ruchu robota. Umiejscowienie tego układu jest szczególnie istotne, gdy na stanowisku zrobotyzowanym znajduje się kilka robotów i/lub maszyn, z którymi roboty współpracują – wówczas ich wzajemne posadowienie określane jest właśnie w tym układzie współrzędnych.
Drugim podstawowym układem współrzędnych, z którym można się spotkać analizując zadania z zakresu robotyki jest podstawowy układ współrzędnych (ang. Base Coordinate System), odniesiony do bazowej powierzchni montażowej (powierzchni łączącej robota z konstrukcją nośną dla niego przeznaczoną). Położenie narzędzia i innych układów w przestrzeni roboczej konkretnego robota wyznaczane są względem tego układu współrzędnych. Najczęściej układ ten jest układem kartezjańskim nieruchomym, jednak w przypadku posadowienia robota na osi zewnętrznej suwliwej (tor jezdny) układ ten przesuwa się wraz z robotem.
Kolejnym układem (rys. 2.1) – naturalnym z punktu widzenia konstrukcji robota – jest układ współrzędnych połączenia (ang. Joint Coordinate System).
Rys. 2.1. Układ współrzędnych połączenia (źródło: FANUC)
Układ ten w zależności od konstrukcji robota opisany jest za pomocą kątów poszczególnych osi robota lub przemieszczeń liniowych w przypadku połączeń suwliwych. Istotnymi układami z punktu widzenia lokalizacji innych układów (wykorzystywanymi
podczas konfi guracji pozostałych układów współrzędnych) występującymi w robotyce są:
• układ współrzędnych interfejsu mechanicznego (ang. Mechanical Interface Coordinate System),
• układ współrzędnych narzędzia (ang. Tool Coordinate System).
Układ współrzędnych narzędzia jest odniesiony do interfejsu mechanicznego (rys. 2.2), do którego przyłączany jest element wykonawczy robota (np. chwytak, palnik spawalniczy) i często oznaczany w systemie robota jako TOOL0. Środek układu współrzędnych interfejsu mechanicznego znajduje się domyślnie w punkcie środkowym kołnie rza (nazywany jest potocznie układem współrzędnych kołnierza – ang. fl ange). W przypadku układu współrzędnych narzędzia w zasadzie można mówić o grupie układów współrzędnych, gdyż podczas programowania robota, często dochodzi do sytuacji, kiedy robot ma kilka zainstalowanych efektorów lub też za pomocą systemu wymiany narzędzi dokonuje wymiany efektora podczas pracy. Układ współrzędnych narzędzia (ang. tool) jest kartezjańskim układem współrzędnych, odniesionym do narzędzia lub elementu roboczego i związany jest z interfejsem mechanicznym robota (powierzchnią montażową na końcu struktury przegubowej, do której przymocowany jest element roboczy, np. chwytak). Układ współrzędnych TOOL jest przesuwany przez użytkownika do punktu roboczego narzędzia i orientowany zgodnie z osią narzędzia. Dlatego, jeśli narzędziem jest np. palnik, charak teryzujący się zgiętym kształtem, układy TOOL0 i TOOLi będą względem siebie przesunięte i obrócone (nie będą układami równoległymi).
Rys. 2.2. Umiejscowienie układów współrzędnych systemu zrobotyzowanego: 1 – globalny układ współrzędnych (World Coordinate System), 2 – układ współrzędnych podstawy (Base Coordinate System), 3 – układ współrzędnych interfejsu mechanicznego (Mechanical Interface Coordinate System), 4 – układ współrzędnych narzędzia (Tool Coordinate System), 5 – układ współrzędnych zadania (Task Coordinate System), 6 – układ współrzędnych obiektu (Object Coordinate System), 7 – układ współrzędnych kamery (Camera Coordinate System), 8 – punkt środkowy narzędzia (Tool Centre Point), 9 – chwytak (gripper)
Kolejnym układem współrzędnych wymienionym w normie ISO 9787:2013 jest układ współrzędnych zadania (ang. Task Coordinate System). Układ współrzędnych zadania również jest układem kartezjańskim, umiejscowionym przez użytkownika w przestrzeni roboczej robota i wykorzystywanym w celu ułatwienia manipulacji robotem podczas określonych zadań realizowanych w ramach procesu technologicznego. W zależności od potrzeby może być on defi niowany wewnątrz maszyny, z którą współpracuje robot, na palecie, na stole, podajniku lub innym urządzeniu technologicznym. Część producentów robotów dla określenia układu współrzędnych w którym realizowane są operacje procesowe używa określenia User Frame (firma FANUC) lub Base Frame (firma KUKA). Układ ten (jego dowiązanie i orientowanie) może być zdefi niowane przez użytkownika w dowolnym punkcie przestrzeni roboczej.
Poza wymienionymi układami współrzędnych (zgodnie z normą ISO 9787:2013), czasami można spotkać dodatkowo układ współrzędnych obiektu (ang. Object Coordinate System) oraz układ współrzędnych kamery (ang. Camera Coordinate System). Pierwszy z nich powiązany jest z obiektem roboczym, zaś drugi – z kamerą systemu wizyjnego sprzężonego z robotem. Zanim omówione zostanie zagadnienie programowania robota, warto przypomnieć podstawowe zależności związane z przekształceniami (transformacjami) poszczególnych układów współrzędnych względem siebie, ponieważ proces programowania nierozerwanie wiąże się z generowaniem trajektorii robota od punktu do punktu. Każde miejsce w przestrzeni roboczej może być określone przez wektor miejsca (rys. 2.3). Wektor ten tworzony jest za pomocą tzw. wektorów jednostkowych (i j k), charakteryzujących dowolny układ współrzędnych.
lub w zapisie macierzowym
gdzie T jako indeks górny oznacza macierz transponowaną (zamiana w macierzy kolumn na wiersze).
Rys. 2.3. Wektory jednostkowe układu współrzędnych
W rozważaniach kinematyki manipulatorów bardzo ważne są zależności pomiędzy współrzędnymi inercjalnymi (nieruchomymi) i współrzędnymi lokalnymi poszczególnych członów (rys. 2.4). Jak widać, przemieszczenie układu lokalnego względem bazowego opisuje wektor miejsca. Łatwo zauważyć, że układ lokalny może być nie tylko przesunięty względem układu bazowego, ale również obrócony (względem poszczególnych osi układu – rys. 2.4). Tę drugą operację (obrót) można opisać poprzez tworzoną za pomocą cosinusów kierunkowych macierzy obrotu o wymiarach 3 x 3.
Obroty elementarne
Zgodnie z ogólnie panującymi zasadami przyjęto prawoskrętny układ współrzędnych (rys. 2.5a). Założono, że zmienne/wektory związane z obróconym układem
współrzędnych będą oznaczane indeksem R (rys. 2.5b). Można wówczas zapisać:
Rys. 2.5. Oznaczenie obrotów poszczególnych osi układu
Dla poszczególnych obrotów elementarnych można zapisać następujące zależności:
Obrót wokół osi x (rys. 2.6a)
Związek między współrzędnymi punktu C w bazowym układzie współrzędnych i w obróconym układzie współrzędnych ma postać:
Obrót wokół osi y (rys. 2.6b)
Macierz obrotu wokół osi y można opisać wyrażeniem:
Obrót wokół osi z (rys. 2.6c)
Macierz obrotu wokół osi z można opisać wyrażeniem:
Rys. 2.6. Obroty elementarne wokół: a) osi x; b) osi y; c) osi z
Obroty złożone
Obroty złożone mogą być tworzone z trzech kolejno po sobie wykonywanych obrotów elementarnych. Należy pamiętać o tym, iż mnożenie macierzy nie jest przemienne, dlatego kolejność wykonywania obrotów elementarnych jest ważna i wpływa na wynik końcowy (postać macierzy obrotów złożonych). Dowodem tego są macierze przedstawione poniżej jako wzory (2.18) i (2.19).
Współrzędne i transformacje jednorodne
Przedstawione wyżej rozważania przeprowadzano, opierając się na współrzędnych niejednorodnych. Jednak już od 1969 roku, kiedy to do obliczeń wykorzystano komputery, wszystkie problemy związane z kinematyką manipulatorów rozwiązywane są przy wykorzystaniu współrzędnych homogenicznych (jednorodnych). Zasada wykorzystania współrzędnych jednorodnych polega na tym, że punkt o współrzędnych kartezjańskich x, y, z opisuje się czterema liczbami x1 , x2 , x3 , x4, przy czym nie wszystkie z nich mogą być jednocześnie równe zeru. Zależność między współrzędnymi prostokątnymi (x, y, z) i współrzędnymi jednorodnymi można zapisać następująco:
Czynnik skali może opisywać np. odkształcenie (przeskalowanie) obiektu w trójwymiarowej przestrzeni i jest szeroko stosowany w grafi ce komputerowej. W robotyce, ze względu na to, iż rozpatrywane ciała są ciałami sztywnymi, przyjmuje się go jednak, jako równy jeden. W efekcie tego macierz transformacji jednorodnej T przybiera następującą ogólną postać:
Programowanie robotów przemysłowych, Warszawa 2017, Autorzy: dr inż. Panasiuk Jarosław, ppłk dr inż. Wojciech Kaczmarek, Wydawca: Wydawnictwo Naukowe PWN