Do Projektu iAutomatyka dołączyli:

Publikacja zgłoszona do 🎁 Konkursu iAutomatyka

Nie taki robot straszny, jak go malują. Kilka podstawowych informacji o programowaniu robotów

autor: mirase609.

Pomimo, że żyjemy w XXI wieku, w czasach 4 rewolucji przemysłowej, wielu ludzi oglądając filmy z pracującymi robotami przemysłowymi nawet nie śmie zastanowić się jak i dla czego to działa. W końcu, czy to w rzeczywistym świecie, czy na filmie, robot wykonuje tyle skomplikowanych ruchów, jego ramię ma wiele przegubów obracających się w różnych kierunkach, z różnymi prędkościami. Sprawa komplikuje się całkowicie, kiedy ktoś był na studiach i choćby słyszał o wyznaczaniu współrzędnych wektora potrzebnych do transponowania macierzy. Obliczenia te zajmowałyby nam mnóstwo czasu i pewnie ich wyniki nie zawsze byłby poprawne. Na szczęście, znane są algorytmy według których powinny być one prowadzone. Ta wiedza, pozwoliła zaimplementować te algorytmy i wzory do systemów komputerowych zabudowanych w robotach, które to za nas przeliczają kolejne przesunięcia poszczególnych osi. Skoro algorytmy są zaszyte w systemie to co pozostaje programiście robotów? W dużym przybliżeniu wystarczy wskazać punkt do którego robot ma się przesunąć.

Poruszanie robotem

Na przykładzie robotów antropomorficznych (jakich? – antropomorficznych czyli przypominających ludzką rękę), postaram się wyjaśnić, jakie mamy podstawowe, dostępne typy ruchów.

Antropomorficzny układ osi

Poruszanie osiami mechanicznymi

Mechanika najbardziej popularnych robotów przeznaczonych m.in do zadań typu pick&place najczęściej oparta jest o 6 osi mechanicznych. Ich wymiary i ułożenie (szczególnie w okolicach „nadgarstka” u różnych producentów bywa odmienne, czasem nawet okazuje się, że ruch jednej osi mechanicznej zależny jest od innej. Niezmienny natomiast pozostaje kierunek odliczania osi. Osie mechaniczne mają kolejne numery i liczymy je zaczynając od podstawy. Tak więc pierwsza oś mechaniczna służy do obrotu całego robota wokół własnej osi (znajdującej się w podstawie), kolejne dwie (druga i trzecia) generują zasięg robota. Poruszając osiami 4-6 zauważamy natomiast zmiany położenia naszego narzędzia przy niewielkiej różnicy w położeniu ramion robota.

Umiejscowienie osi robota antropomorficznego

W przypadku robotów ABB (których przykładami będę się posługiwał), aby poruszyć robotem, po spełnieniu warunków sprzętowych dla załączenia silników w trybie ręcznym, wystarczy poruszyć joystickiem. Warto wspomnieć, że jest on analogowy, więc prędkość osi zależy od kąta wychylenia, ponadto, w starszych wersjach RobotWare’u można było wyraźniej zauważyć zwłokę pomiędzy naszymi manipulacjami a odpowiedzią robota. Powiązanie osi mechanicznej z kierunkiem joysticka przedstawia wycinek z RobotStudio – darmowego oprogramowania  wspierającego  programowanie  robotów.

Osie mechaniczne, widok okna jogging (poruszanie)

Kursor myszy znajduje się nad fizycznym przyciskiem panelu który powoduje zmianę wyboru aktywnych osi. Pole Joystick directions podpowiada, w którą stronę powinniśmy wychylić manipulator aby oś robota przesunęła się w kierunku „+”.

Poruszanie po osiach kartezjańskich

Tę nazwę (od Kartezjusza) powinniśmy pamiętać już ze szkoły podstawowej – wtedy związana była z mapami i siatką potrzebną od określenia współrzędnych punktu. Nie inaczej jest w robotach. Do określenia punktu na mapie potrzebowaliśmy szerokości i długości geograficznej. Tutaj podajemy współrzędne punktu X i Y. Każdy punkt na mapie, a w zasadzie na kuli ziemskiej, ma jakąś wysokość względem poziomu morza. Tak w robotach też mamy trzecią współrzędną – Z.

Tak więc ogólnie wygląda kartezjański układ współrzędnych w robocie. Sprawa komplikuje się nieco, gdyż układów takich możemy mieć więcej. Potrzebujemy takiej opcji kiedy np. mamy pracować na stole, który nie jest ustawiony prostopadle (równolegle) do osi wstępnie predefiniowanych w naszym robocie. Jak są zorientowane wstępnie osie w naszym robocie i gdzie ich początek:

Orientacja domyślna układów WORD i BASE

Mamy więc już układ odniesienia. Żeby poruszać się w układzie współrzędnych wzdłuż jego osi potrzebujemy punktu. Cóż to za punkt? Dla ułatwienia naszej pracy tym punktem staje się nasze narzędzie: chwytak, palnik, dysza, głowica. Na samym początku jednak jej nie mamy. Mamy za to narzędzie domyślne „tool0”, którego TCP (tool center point) znajduje się po środku flanszy na końcu jego mechaniki. Tutaj zaczyna się praca kontrolera robota, o której wspomniałem na początku. My wybieramy jakim narzędziem (punktem), po jakiej osi i w jakim układzie, a on sam oblicza to, którym silnikiem, w którą stronę i z jaką szybkością obracać aby utrzymać zadany kierunek.

Ruch po osiach kartezjańskich, widok okna jogging (poruszanie)

Przyciskiem nad którym znajduje się kursor wybieramy tryb poruszania po osiach kartezjańskich. Podobnie jak poprzednio, pole Joystick directions wskazuje powiązanie osi układu współrzędnych z naszym joystickiem. Ponowne naciśnięcie przycisku wyboru poruszania po osiach kartezjańskich przełączy nas w tryb reorientacji. I znów trudne, niepopularne słowo, ale daję słowo, będzie takich ich coraz mniej. Teraz, kiedy już wiemy co to TCP, zrozumienie czym jest reorientacja nie powinno być trudne. Reorientacja to nic innego jak poruszanie robotem w taki sposób aby TCP pozostawało nieruchome. Przydaje się to szczególnie kiedy finalnie ustawiamy pozycje odbioru, odłożenia, czy też mamy zamiar ustawić dyszę podającą klej w tej samej pozycji (odległości) ale pod innym kątem do materiału.

Instrukcje ruchu

Zakładając, że znajdujemy się w głównym oknie edycji programu (procedura MAIN), aby dodać instrukcję ruchu wystarczy skorzystać z kafelka ADD INSTRUCTION i wybrać odpowiedni typ ruchu

Zamiast tekstu pojawi się wybrana instrukcja. W wyświetlonej zakładce widzimy najbardziej typowe, najczęściej używane instrukcje języka RAPID. Wśród nich znajdują się również podstawowe instrukcje ruchu.

MoveJ (move joint – ruch połączony)

Instrukcja ruchu, używana najczęściej do dojazdów pomiędzy obszarami pracy, tam gdzie nie ma konieczności poruszania się po linii prostej. Kontroler realizując tę instrukcję oblicza różnice pomiędzy aktualną wartością położenia kątowego osi oraz ich wartościom po osiągnięciu zadanego punktu. Znając te różnice dla każdej z osi, kontroler ustawia ich prędkości tak, aby wszystkie równocześnie rozpoczęły ruch oraz zatrzymały się w tym samym momencie. Może to oznaczać, że osie będą poruszały się z różną prędkością. Ta instrukcja zapewnia najszybsze osiągnięcie punktu docelowego, przy minimum ruchu robota.

MoveL (move line – ruch po linii)

Tę instrukcję wybieramy kiedy zależy nam na tym, aby narzędzie robota poruszało się dokładnie po linii prostej. Najczęściej w punktach procesowych. Robot pomiędzy punktami porusza się po linii prostej (podobnie jak ruchy ręczne w układzie kartezjańskim). Kontroler zajmuje się obliczaniem i korygowaniem parametrów pracy silników poszczególnych osi tak, aby uzyskać ruch po linii.

MoveC (move circle – ruch po łuku)

O ile nazwa bywa nieco mylna ponieważ wskazuje ruch po okręgu, faktycznie robot może zrealizować ruch po łuku. Aby wykreślić koło, potrzebujemy dwóch takich instrukcji. Obliczenia dla ruchu po łuku wymagają podania dwóch punktów, punktu pośredniego i końcowego. Dodatkowo istnieją pewne warunki dotyczące w szczególności położenia punktu pośredniego. Jeśli nie spełnimy tych warunków możemy spodziewać się komunikatu „Circle Uncertain” czyli „Okrąg niemożliwy”.

MoveAbsJ (move absolute joint – ruch łączony absolutny)

Instrukcja używana do zapisywania stałych pozycji robota bez względu na zdefiniowany TCP i Wobj (układ odniesienia). Najczęściej są to pozycje serwisowe, domowe, konserwacyjne. W definicji zmiennej określającej taki punkt znajdują się informacje o położeniu kątowym poszczególnych osi.

P-T-P czy T-P

Zwykło mówić się, że robot porusza się wg. reguły Point-To-Piont. Czy to określenie jest poprawne? W naszych instrukcjach ruchu występuje przecież tylko informacja w jakim punkcie robot ma się zatrzymać. Poprawna zatem zdaje się być forma To-Point. Punktem rozpoczęcie ruchu w robotach ABB jest punkt w którym robot aktualnie się znajduje. I tak w przypadku normalnego, kontrolowanego przepływu programu robot porusza się po kolejnych punktach jakie mu zaprogramowaliśmy. Uwagę należy jednak zwrócić w przypadku przechodzenia pomiędzy procedurami, uruchamianiu programu nie od początku (wtedy robot będzie starał się dojechać do zadanej pozycji z pozycji aktualnej, która może być odmienna od normalnie poprzedzającej pozycji), czy też w trakcie modyfikacji punktów. Modyfikacja jednego punktu  może zaowocować tym, że ruch do kolejnego (w przypadku kolejnej instrukcji MoveJ) będzie się odbywał po innej trajektorii albo będzie zupełnie niemożliwy (np. w przypadku ruchu MoveC). Edytując więc pozycję warto, przed uruchomieniem programu przetestować dojazd do modyfikowanej pozycji z punktu poprzedniego jak i wykonać kolejną instrukcję ruchu następującą po tej zmodyfikowanej.

Metody zapisu punktów w systemie robota

Dodając pierwsze punkty spotkamy się z takim zapisem jak na ekranie poniżej (po lewej) w linii 4.

Okno programu robota i definicja punktów

Linia 4 oznacza bowiem dla kontrolera robota „porusz się ruchem połączonym do pozycji *”. Czym jest „*”? Jest to definicja pozycji zapisana bezpośrednio w tej instrukcji. Zajmuje ona niestety tak dużo miejsca, że cała jej definicja została zwinięta do jednego znaku. Całą zawartość widać w RobotStudio. Niestety nigdzie dalej w programie nie możemy się do tak zapisanej pozycji odwołać. Co zrobić, aby zapisać współrzędne punktu w taki sposób, aby później można było skorzystać z tej samej pozycji? Nic trudnego. Klikając w „*” otwiera nam się okno definicji zmiennej opisującej punkt do którego robot ma dotrzeć. Wybierając pozycję NEW (ekran powyżej po prawej) mamy możliwość nazwania jej oraz przypisania dodatkowych parametrów. Zakładając, że nic nie zmieniamy, nazwa ustala się na wartość „p10”, a nowa instrukcja przyjmuje wygląd tak jak ta z linii 5 ekranu powyżej. Oznacza to mniej więcej tyle, co „porusz do punktu p10 ruchem liniowym”. W każdym punkcie programu możemy ponownie wykorzystać ten punkt. Warto zauważyć, że pod dodawanymi zmiennymi definiującymi punkty znajdują się wartości aktualne położenia robota. Oznacza to, że podczas programowania najpierw dojeżdżamy w wybrany sposób do punktu, który jest naszym celem, a później wybieramy dodaj instrukcję i definiujemy nowy punkt. Analogicznie, jeśli osiągnęliśmy jakąś pozycję w programie (np. wykonując kolejne linie przyciskami ruchu krokowego), i chcemy ją zmienić, wystarczy przesunąć ręcznie robota na wybraną pozycję i użyć klawisza MODIFY POSITION, kontroler zapyta czy na pewno (uwaga, operacja nieodwracalna, nie można cofnąć), a po potwierdzeniu aktualna pozycja robota zostanie zapisana w zmiennej podświetlonej przez kursor. Wynikiem może być schematyczny program przedstawiony poniżej

Kroki programu i ruch manipulatora

Dodatkowe argumenty instrukcji ruchu

Oprócz informacji o punkcie docelowym dla robota, w instrukcji ruchu musimy zawrzeć jeszcze kilka innych informacji. Logiczne jest bowiem, że informacja do kontrolera „jedź na pozycję „p10″” jest dla niego nie kompletna. O co może kontroler zapytać, jakich potrzebuje jeszcze informacji? Odpowiedzią na to pytanie może być poniższa ilustracja

Opis każdej z tych zmiennych zająłby dość dużo miejsca, pozwolę sobie opis ten skrócić do informacji, że klikając w dowolną część tej instrukcji, wyświetli się okno z którego będzie można wybrać odfiltrowane po typie zmienne, pasujące typem w daną część instrukcji.

Artykuł został nagrodzony w Konkursie iAutomatyka – edycja Marzec 2020.

Nagrodę Zestaw do obsługi technicznej Fluke 179 z multimetrem przemysłowym  dostarcza ambasador konkursu, firma FLUKE.



19 marca 2020 / Kategoria: , ,

Reklama

Newsletter

Zapisz się i jako pierwszy otrzymuj nowości!

Zapoznałem się i akceptuję klauzulę informacyjną.



.

NAJNOWSZE PUBLIKACJE OD UŻYTKOWNIKÓW I FIRM

>KLIKNIJ<

Co ma wspólnego sterownik PLC WAGO z układem sterowania pneumatycznego lub hydraulicznego?

Co ma wspólnego sterownik PLC WAGO z układem sterowania pneumatycznego lub hydraulicznego?

>KLIKNIJ<

Nowe roboty w ofercie YAMAHA

Nowe roboty w ofercie YAMAHA

>KLIKNIJ<

SILNIK WIELOTŁOKOWO OSIOWY O ZMIENNEJ CHŁONNOŚCI A1OVER SERIA 52

SILNIK WIELOTŁOKOWO OSIOWY O ZMIENNEJ CHŁONNOŚCI A1OVER SERIA 52

>KLIKNIJ<

Fabryka Przyszłości – rozwijaj się dzięki technologii

Fabryka Przyszłości – rozwijaj się dzięki technologii

>KLIKNIJ<

DBS60I-W – firma SICK prezentuje nowy enkoder dla branży spożywczej z opatentowaną technologią „Deflector Shield”

DBS60I-W – firma SICK prezentuje nowy enkoder dla branży spożywczej z opatentowaną technologią „Deflector Shield”

>KLIKNIJ<

BEYOND – zawsze ponad standard

BEYOND – zawsze ponad standard

>KLIKNIJ<

Sterowanie Węzłem Cieplnym w Rabczańskiej Spółdzielni Mieszkaniowej

Sterowanie Węzłem Cieplnym w Rabczańskiej Spółdzielni Mieszkaniowej

>KLIKNIJ<

Monitoring zużycia mediów w Domach Studenckich Politechniki Wrocławskiej

Monitoring zużycia mediów w Domach Studenckich Politechniki Wrocławskiej

>KLIKNIJ<

Jakie trendy będą wyznaczać kierunki zsieciowanej fabryki jutra?

Jakie trendy będą wyznaczać kierunki zsieciowanej fabryki jutra?

>KLIKNIJ<

SmartRunner Matcher — jeden czujnik, wiele zastosowań

SmartRunner Matcher — jeden czujnik, wiele zastosowań

>KLIKNIJ<

Ocena ryzyka niezbędnym elementem każdej aplikacji wykorzystującej robota współpracującego

Ocena ryzyka niezbędnym elementem każdej aplikacji wykorzystującej robota współpracującego

>KLIKNIJ<

Nowe przetworniki ciśnienia i różnicy ciśnień gotowe na Przemysł 4.0

Nowe przetworniki ciśnienia i różnicy ciśnień gotowe na Przemysł 4.0

>KLIKNIJ<

LKAB Malmberget inwestuje w wydajność głęboko pod ziemią

LKAB Malmberget inwestuje w wydajność głęboko pod ziemią

>KLIKNIJ<

Mikroskopy cyfrowe w branży elektronicznej

Mikroskopy cyfrowe w branży elektronicznej

>KLIKNIJ<

Oszczędzaj energię i tym samym pieniądze!

Oszczędzaj energię i tym samym pieniądze!

>KLIKNIJ<

Mitsubishi rozdaje falowniki, iPada, głośniki i vouchery na szkolenia!!!

Mitsubishi rozdaje falowniki, iPada, głośniki i vouchery na szkolenia!!!

>KLIKNIJ<

Technologia push-in oraz inne usprawnienia ułatwiające pracę z przekaźnikami

Technologia push-in oraz inne usprawnienia ułatwiające pracę z przekaźnikami

>KLIKNIJ<

Sterowniki PFC200 do zarządzania produkcją energii z OZE

Sterowniki PFC200 do zarządzania produkcją energii z OZE

>KLIKNIJ<

Jakie narzędzia znajdziesz w skrzynce automatyka?

Jakie narzędzia znajdziesz w skrzynce automatyka?

>KLIKNIJ<

Zastosowanie modeli uczenia maszynowego może być łatwe, nawet bez wiedzy eksperckiej w zakresie nauki o danych

Zastosowanie modeli uczenia maszynowego może być łatwe, nawet bez wiedzy eksperckiej w zakresie nauki o danych

Reklama



MOŻESZ SIĘ TYM ZAINTERESOWAĆ

  • 0 PLN
    Szkolenia dla Działów Utrzymania Ruchu, na których uczymy jak dbać o sterowniki Beckhoff znajdujące się na maszynach i jak zapewnić gwarancję ciągłej, nieprzerwanej pracy oraz nie dopuścić do powstania uszkodzeń i awarii maszyn. Pokazujemy ...
    Czas trwania: 3 dni
  • Sterowniki  z serii SIMATIC S7-1200 oferują szeroki zakres funkcjonalności i zintegrowane wejścia/wyjścia zamknięte w kompaktowej obudowie. Są doskonałym narzędziem do realizacji standardowych projektów i zadań automatyki, a jednostki S7-12...
  • Seria FX-100 Czujniki z serii FX-100 to najlepsze rozwiązanie pod względem stosunku jakości do ceny. Wyposażone są w funkcje szybkiego uczenia, co pozwala użytkownikom w szybki i prosty sposób przystosować czujnik do pracy z nieskomplikowan...
  • RPI-1ZI-U24A, to przekaźnik  instalacyjny wytrzymujący maksymalny prąd załączania 120A w czasie 20ms. Przekaźnik ten dedykowany jest do załączania obwodów o wysokim prądzie początkowym, w szczególności do obwodów oświetleniowych, potwi...
  • ÖLFLEX® CLASSIC 110 – elastyczny przewód sterowniczy do różnych zastosowań, w płaszczu z PVC, aprobata VDE, odporność na oleje, 300/500 V, również do YSLY lub YY CPR: informacje pod adresem www.lapppolska.pl Certyfikat zgodności VDE z...
  • Szkolenie oparte na TwinCAT 3 dotyczące systemu bezpieczeństwa w maszynach. Czego nauczysz się na tym szkoleniu? Na tym szkoleniu uczymy Cię jak stworzyć logikę systemów bezpieczeństwa w najczęściej spotykanych maszynach, konfiguracjach i s...