O ruchach robotów przemysłowych – część druga ..
Podstawowe typy ruchów
Ruch jednostki kinematycznej, jaką jest ramię robota przemysłowego, możemy zrealizować na 3 sposoby w zależności od naszych priorytetów:
1. Ruch złączowy – znany szerzej jako Move Joint lub point to point to nic innego jak ruch ramienia po krzywej z punktu startowego do punktu końcowego w najszybszy i „najwygodniejszy” sposób dla robota. Jeżeli punkty te mają taką samą orientację narzędzia, w trakcie tego ruchu, robot nie musi jej zachowywać. Ponadto, w trakcie ruchu robot nie bierze pod uwagę konfiguracji osi – liczy się tylko efekt końcowy. Robot tak optymalizuje pracę każdego z silników, aby zadany punkt osiągnąć w najszybszym czasie. Nie zawsze jest to linia prosta.
Zazwyczaj możemy z niewielką trudnością przewidzieć ruch ramienia – jednakże zawsze należy zachować ostrożność i sprawdzić dokładnie zachowanie się jednostki kinematycznej w przestrzeni jej pracy, na różnych prędkościach.
Ruchy złączowe wykorzystujemy zazwyczaj w nieograniczonych i lekko ograniczonych przestrzeniach pracy robota. Wszędzie tam, gdzie sama przebyta trajektoria nie ma znaczenia, a najważniejsze jest przemieszczenie się do zadanego punktu. Dobrym przykładem będzie tutaj poruszanie się pomiędzy dwoma maszynami, z których wyciągane są elementy. Popularne komendy dla tego typu ruchu to: J, PTP, MoveJ, MOVJ, Mvs itp.
2. Ruch liniowy – tutaj robot musi się nieco bardziej postarać. Ruch odbywa się po prostej łączącej punkt startowy i końcowy z zachowaniem zdefiniowanej orientacji. Oznacza to, że punkt, w którym znajduje się nasze TCP będzie poruszał się po ”wirtualnym sznurku”. Ruch ten idealnie sprawdza się, kiedy wymagana jest precyzja i ruch wzdłuż prostej. Mówimy tu o wszelkich przejazdach do i z pozycji końcowych (np. pobrania, gdzie wjazd musi być wzdłuż ścianek), ruchy w trakcie cięcia, spawania czy ruch narzędziem wzdłuż detalu. Popularne komendy dla tego typu ruchu to: L, LIN, MoveL, MOVL, Mvl itp.
3. Ruch po okręgu – ruch po łuku. Zazwyczaj komenda ruchu po okręgu zawiera tylko punkt pomocniczy i końcowy – punktem startowym jest punkt osiągnięty bezpośrednio przed tym ruchem. Punkt pomocniczy staramy się nauczyć w przewidywanym środku łuku w zakresie 25% – 75% kąta środkowego pomiędzy punktami początkowym i końcowym. Ruch ten stosujemy w przypadku ruchu narzędzia po zaokrąglonej powierzchni detalu – najczęściej przy spawaniu, klejeniu czy cięciu. Popularne komendy dla tego typu ruchu to: C, CIRC, MoveC, MOVC, Mvc itp
Opis Parametrów ruchu, aproksymacja
Mamy już za sobą opis typu ruchów – czas przejść do parametrów danego ruchu. W tym celu przedstawię przykładową linijkę komendy ruchowej:
1: L P[3] 500mm/sec CNT10
Jest to najprostsza komenda ruchowa jaką możemy zobaczyć w programie robota. Główne części tej komendy to:
1. Sama komenda, określająca typ ruchu – w tym przypadku to L czyli ruch liniowy.
2. Zmienna zawierające dane o punkcie docelowym (czyli o P[3]), takie jak wartości przesunięć na poszczególnych osiach (układu XYZ lub osiach robota J1 … J6), jaki numer narzędzia jest przypisany do tej zmiennej oraz do którego z układów bazy odnosi się ta pozycja. W przypadku niektórych producentów, należy osobnym parametrem określić bazę oraz narzędzie, do których odwołuje się punkt.
3. Prędkość – w naszym przypadku prędkość liniową podajemy w [mm/s]. Natomiast prędkość ruchów złączowych jest podawana w [%]maksymalnej prędkości.
4. Zaokrąglenie ruchu podawane w [mm] bądź stopniach zaokrąglenia określonych przez użytkownika (np. 0 – 8), co czasem odnosi się również do promienia wyrażonego w milimetrach. Jest to odległość od punktu docelowego, w której robot zacznie kierować ramię do następnego punktu. Ten parametr zapewnia płynność i dokładność ruchu. Parametr CNT0 pozwoli na dokładne dojechanie do punktu praktycznie bez zatrzymania. Możemy tutaj również użyć zamiennie instrukcji FINE, która to pozwoli na możliwie najdokładniejszy dojazd do pozycji z zatrzymaniem w tejże.
5. Przyśpieszenie (opóźnienie) najczęściej określane jako ACC (DCC). Wyrażona w procentach wartość przyśpieszenia (zwolnienia) ruchu pomiędzy punktami – im mniejsza wartość tym robot wolniej osiąga zadaną prędkość. Analogicznie, większa wartość oznacza szybsze osiąganie zadanej prędkości.
Istnieje jeszcze kilka dodatkowych funkcji i ich wariacji jakie może sprzęgnąć z tą linią np. offset, składanie ruchów, dodatkowa logika pozwalająca na przerwanie danego ruchu czy dodanie odwołania do zmiennych i programów. Dzięki tak rozbudowanym możliwościom, w jednej linii robot może wykonać wiele rzeczy. Pamiętajcie, aby z tego korzystać – dzięki temu Wasz kod będzie bardziej optymalny.
W tym momencie zakończę rozważania nad tematem ruchów robota przemysłowego. Z pewnością tą wiedzę będziecie mogli wykorzystać na projektach, a wtedy i sami ją zgłębicie, podchodząc do tego od strony praktycznej. Teoria to tylko przygotowanie naszej wyobraźni na to co czeka nas w rzeczywistości. A bywa ona nieraz zaskakująca 😊. W kolejnych artykułach pojawi się m.in. omówienie dodatkowych zagadnień dotyczących ruchów robota. Sprawdźcie już teraz stronę robochallenge.pl aby przeczytać inne nasze publikacje.
Autor: Kamil Mamoń