Automatyka w praktyce

Robot edukacyjny Astorino: zastosowanie funkcji FRAME i przykładowa aplikacja paletyzacji

Kontakt w sprawie artykułu: Łukasz Giza - 2026-07-21

Dzięki temu poradnikowi dowiesz się, jak używać funkcji FRAME w języku KAWASAKI AS oraz zbudować i zaprogramować proste stanowisko zrobotyzowane z wykorzystaniem robota edukacyjnego Astorino. Celem aplikacji będzie realizacja schematu paletyzacji dostarczanych detali z wykorzystaniem funkcji FRAME.

Po utworzeniu programu i jego przetestowaniu w bezpiecznych warunkach z użyciem symulacji w środowisku programistycznym Astorino, zostanie on uruchomiony i zweryfikowany na fizycznym robocie edukacyjnym.

Zaczynamy!

Przybliżony czas wykonywania aplikacji na Kawasaki Robotics Astorino: 60 min

Potrzebne urządzenia oraz oprogramowanie

W celu wykonania aplikacji potrzebne są następujące elementy:

  • robot Astorino wraz z oprogramowaniem,
  • wydrukowane kostki lub ich odpowiednik: 12 sztuk – zależnie od liczby iteracji,
  • podajnik kostek sterowany sygnałami I/O z poziomu Astorino,
  • czujnik optyczny do detekcji kostek podłączony do Astorino,
  • chwytak dla Astorino umożliwiający manipulacje kostkami,
  • komputer z portem Ethernet oraz USB.

Opis stanowiska

Do wykonania tego ćwiczenia wykorzystano stację PRO wyposażoną w robota Astorino, podajnik kostek z czujnikiem oraz system wizyjny 2D. Jednak do realizacji przedstawionego zadania w pełni wystarczy stacja ECO, wyposażona jedynie w robota Astorino oraz podajnik kostek. Opcjonalnie można również wykorzystać paletę do odkładania detali.

Rys. 1. Stacja PRO wraz z robotem Astorino oraz dodatkowym osprzętem. (Źródło: ASTOR)
Rys. 2. Chwytak szczękowy wykorzystany podczas realizacji poradnika. (Źródło: ASTOR)

Czym jest funkcja FRAME

Definicja:

FRAME(P1, P2, P3, P4)

Funkcja FRAME zwraca transformację współrzędnych nowo utworzonego układu odniesienia (FRAME) względem bazowego układu współrzędnych robota (BASE). Do wyznaczenia położenia i orientacji układu wykorzystywane są wyłącznie współrzędne kartezjańskie wskazanych punktów – wartości orientacji (kąty OAT) nie są brane pod uwagę. Geometria układu FRAME jest definiowana następująco: prosta przechodząca przez punkty P1 i P2 wyznacza dodatni kierunek osi X, prosta przechodząca przez punkty P1 i P3 określa kierunek osi Y, punkt P4 definiuje początek nowego układu współrzędnych (FRAME). W większości zastosowań punkty P1 i P4 są tożsame, dzięki czemu początek układu współrzędnych znajduje się w punkcie, od którego wyznaczane są osie X i Y.

Rys. 3. Przykładowa definicja FRAME na płaszczyźnie fizycznej. (Źródło: ASTOR)

Konfiguracja Robota i programu Astorino

Sprawdzenie pozycji domowej robota

Przed rozpoczęciem pracy należy zweryfikować konfigurację pozycji domowej robota.

1. Otwórz zakładkę Home/Tool.

2. Sprawdź, czy dla pozycji HOME trzecie i piąte złącze (Joint 3 i 5) mają wartości −90°.

3. Jeżeli wartość jest inna, zaznacz opcję Manual i ręcznie ustaw oraz zapisz wymagane parametry (rys. 4).

Rys. 4. Ustawianie pozycji domowej HOME. (Źródło: ASTOR)

Tworzenie nowego programu

Poniżej (rys. 5) przedstawiono sposób tworzenia nowego programu.

Rys. 5. Tworzenie nowego programu. (Źródło: ASTOR)

Wgrywanie programu do robota

Po przygotowaniu programu (wybraniu gotowego lub napisaniu własnego) należy przesłać go do sterownika robota. Proces ten przedstawiono na rys. 6.

Rys. 6. Wgrywanie programu. (Źródło: ASTOR)

WAŻNE: Żółty kolor przycisku oznacza, że najnowsza wersja programu nie została jeszcze wgrana do robota.

Uruchamianie programu

Po poprawnym wgraniu programu można go uruchomić z poziomu tej samej zakładki, wybierając przycisk przedstawiony na rysunku 7.

Rys. 7. Uruchamianie nowego programu. (Źródło: ASTOR)

Tryby pracy robota

Robot Astorino może pracować w dwóch trybach: TEACH oraz REPEAT.

Tryb TEACH przeznaczony jest do:

  • nauki punktów,
  • wgrywania programów,
  • testowania aplikacji.

W tym trybie prędkość robota jest ograniczona, a zwolnienie przycisku Dead Man Switch na teach pendancie powoduje natychmiastowe zatrzymanie robota.

Tryb REPEAT służy do wykonywania gotowego programu. W tym trybie robot może pracować z dowolnie ustawioną prędkością roboczą, jednak nie jest możliwe wgrywanie nowych programów. Dodatkowo robot nie reaguje na zwolnienie przycisku Dead Man Switch, dlatego podczas pracy należy zachować szczególną ostrożność.

Miejsce zmiany trybu pracy robota zostało przedstawione na rys. 8.

Rys. 8. Menu zmiany trybu pracy. (Źródło: ASTOR)

Wizualizacja stanowiska

Na rysunku 9 przedstawiono wizualizację stanowiska roboczego wraz z rozmieszczeniem punktów oraz kolejnością wykonywanych ruchów wykorzystanych w niniejszym poradniku.

Rys. 9. Wizualizacja stanowiska zrobotyzowanego. (Źródło: ASTOR)

Następnie należy nauczyć robota punktów pokazanych na rysunku i zapisać je pod podanymi nazwami. W przedstawionym przykładzie punkty zostały zapisane jako współrzędne złączowe (Joint). Robotem można sterować zarówno z poziomu aplikacji Astorino (zakładka JOG), jak i za pomocą teach pendanta (rys. 10 i 11).

Rys. 10. Zakładka JOG. (Źródło: ASTOR)
Rys. 11. Teach Pendant. (Źródło: ASTOR)

Definiowanie pola roboczego

Poniżej przedstawiono przykładową implementację funkcji FRAME wraz z opisem kolejnych etapów działania programu.

Program rozpoczyna się od konwersji punktów zapisanych jako współrzędne złączowe na współrzędne kartezjańskie. Jest to konieczne, ponieważ funkcja FRAME wykorzystuje wyłącznie współrzędne kartezjańskie do wyznaczenia nowego układu odniesienia.

Następnie tworzony jest nowy układ współrzędnych FRAME, którego orientacja jest wyznaczana na podstawie punktów A1, A2 oraz A3, natomiast jego początek znajduje się w punkcie A1.

W kolejnym kroku definiowany jest punkt PUT, odsunięty o 20 mm wzdłuż osi X bazowego układu współrzędnych (BASE). Do tego punktu dodawana jest transformacja FRAME, dzięki czemu jego położenie zostaje przeliczone względem nowo utworzonego układu współrzędnych.

Na końcu program nadaje punktowi PUT taką samą orientację (OAT), jaką posiada punkt A1. Zapewnia to odpowiednie ustawienie chwytaka podczas wykonywania ruchu do wyznaczonej pozycji.

.PROGRAM FRAME_DEMO
  ;Konwersja współrzędnych punktów
  ;ze współrzędnych złączowych
  ;na kartezjańskie
  POINT A1 = #P1
  POINT A2 = #P2
  POINT A3 = #P3
  
  ;Utworzenie układu współrzędnych FRAME
  FR = FRAME(A1, A2, A3, A1)
  
  ;Deklaracja punktu PUT – przesunięcie
  ;o 20 mm w osi X względem
  ;początku układu BASE.
  ;Współrzędne PUT: (X=20, Y=0, Z=0)
  POINT PUT = SHIFT(NULL BY 20, 0, 0)
  
  ;Dodanie transformacji FRAME
  ;do punktu PUT
  POINT PUT = PUT + FR
  
  ;Nadanie orientacji punktu PUT
  ;takiej samej jak punkt A1,
  ;aby chwytak dojechał
  ;z odpowiednim ustawieniem
  POINT/OAT PUT = A1
.END 

Program paletyzacji

Użyte funkcje i ich opisy

Program paletyzacji wykorzystuje następujące funkcje oraz instrukcje języka Kawasaki AS:

  • SPEED – określa prędkość wykonywania ruchów robota.
  • ACCEL – ustawia przyspieszenie robota podczas rozpoczynania ruchu.
  • DECEL – ustawia opóźnienie robota podczas zatrzymywania ruchu.
  • POINT – służy do deklarowania oraz przechowywania punktów i pozycji robota.
  • HOME – powoduje przejazd robota do zdefiniowanej pozycji bazowej.
  • FRAME – tworzy lokalny układ współrzędnych na podstawie wskazanych punktów.
  • SIGNAL – umożliwia sterowanie sygnałami wejść i wyjść robota, np. chwytakiem lub innymi urządzeniami peryferyjnymi.
  • FORTOEND – pętla realizująca wielokrotne wykonywanie wybranego fragmentu programu.
  • JAPPRO – realizuje ruch złączowy do punktu pośredniego znajdującego się nad celem, zapewniając bezpieczny dojazd.
  • LMOVE – wykonuje ruch liniowy robota do wskazanego punktu.
  • LDEPART – realizuje liniowe odejście od aktualnej pozycji o zadaną odległość.
  • TWAIT – wstrzymuje wykonywanie programu na określony czas.
  • SHIFT(P BY X, Y, Z) – tworzy nowy punkt poprzez przesunięcie wskazanego punktu o zadane wartości w osiach X, Y oraz Z.
  • SWAIT – wstrzymuje wykonywanie programu, dopóki na określonym wejściu pojawi się wymagany stan.

Kod programu do symulacji

W tej części przedstawiono kompletny kod programu realizującego proces paletyzacji z wykorzystaniem funkcji FRAME. Program pobiera detal z podajnika, a następnie odkłada go na kolejne pozycje palety wyznaczane względem lokalnego układu współrzędnych. Dzięki zastosowaniu funkcji FRAME zmiana położenia lub orientacji palety wymaga jedynie ponownego wyznaczenia układu odniesienia, bez konieczności modyfikowania współrzędnych wszystkich punktów odkładania.

.PROGRAM PALETYZACJA_SIM
  ;Maciej Palka, ASTOR
  
  ;ustawienie parametrow robota
  SPEED 50 ALWAYS
  ACCEL 80 ALWAYS
  DECEL 80 ALWAYS
  
  ;deklaracja punktow do frame'a
  POINT PICK = #P0
  POINT A1 = #P1
  POINT A2 = #P2
  POINT A3 = #P3
  
  ;deklaracja stalych
  gripper = 57
  feeder = 7
  x_shift = 50
  y_shift = 100
  z_shift = 25
  rowmax = 2
  colmax = 3
  layers_max = 2
  
  ;kod startowy
  HOME
  SIGNAL -gripper
  
  ;deklaracja frame'a
  POINT FR = FRAME(A1, A2, A3, A1)
  
  FOR .LAYER = 0 TO layers_max - 1
    FOR .ROW = 0 TO rowmax - 1
      FOR .COL = 0 TO colmax - 1
        ;pobranie detalu
        JAPPRO PICK, 100
        SIGNAL feeder
        TWAIT 1
        SIGNAL -feeder
        LMOVE PICK
        SIGNAL gripper
        TWAIT 1
        LDEPART PICK, 100
        
        ;odlozenie detalu
        POINT PUT = SHIFT(NULL BY x_shift*.COL, y_shift*.ROW, z_shift*.LAYER)
        POINT PUT = FR + PUT
        POINT/OAT PUT = A1
        JAPPRO PUT, 100
        LMOVE PUT
        SIGNAL -gripper
        TWAIT 1
        LDEPART PUT, 100
        
      END
    END
  END
  
  HOME

.END

Kod programu na fizycznego robota

Kod przeznaczony dla fizycznego robota został nieznacznie zmodyfikowany ze względu na inne mapowanie pinów wejścia/wyjścia (I/O). Wgrywając poniższy kod na własnego robota należy uwzględnić te różnice. Użytkownik ponosi pełną odpowiedzialność za prawidłowe działanie robota oraz za wszelkie ewentualne uszkodzenia lub zniszczenia wynikające z działania programu.

.PROGRAM PALETYZACJA_REAL
  ;Maciej Palka, ASTOR
 
  ;ustawienie parametrow robota
  SPEED 50 ALWAYS
  ACCEL 80 ALWAYS
  DECEL 80 ALWAYS
 
  ;deklaracja punktow do frame'a
  POINT PICK = #P0
  POINT A1 = #P1
  POINT A2 = #P2
  POINT A3 = #P3
 
  ;deklaracja stalych
  ;gripper = 57, -58
  feeder = 1
  cube_detection = 1001
  x_shift = 50
  y_shift = 100
  z_shift = 25
  rowmax = 2
  colmax = 3
  layers_max = 2
 
  ;kod startowy
  HOME
  SIGNAL -57, 58
 
  ;deklaracja frame'a
  POINT FR = FRAME(A1, A2, A3, A1)
 
  FOR .LAYER = 0 TO layers_max - 1
    FOR .ROW = 0 TO rowmax - 1
      FOR .COL = 0 TO colmax - 1
        ;pobranie detalu
        JAPPRO PICK, 100
        SIGNAL feeder
        TWAIT 1
        SIGNAL -feeder
        SWAIT cube_detection
        LMOVE PICK
        SIGNAL 57, -58
        TWAIT 1
        LDEPART PICK, 100
 
        ;odlozenie detalu
        POINT PUT = SHIFT(NULL BY x_shift*.COL, y_shift*.ROW, z_shift*.LAYER)
        POINT PUT = FR + PUT
        POINT/OAT PUT = A1
        JAPPRO PUT, 100
        LMOVE PUT
        SIGNAL -57, 58
        TWAIT 1
        LDEPART PUT, 100
 
      END
    END
  END
 
  SPEED 30
  HOME
 
.END

Testowanie programu w symulacji

Przed uruchomieniem programu na rzeczywistym stanowisku przeprowadzono jego weryfikację w środowisku symulacyjnym Astorino. Celem testów było sprawdzenie poprawności działania algorytmu, trajektorii ruchu robota oraz procesu paletyzacji z wykorzystaniem funkcji FRAME.

Symulacja potwierdziła poprawne działanie programu. Robot prawidłowo pobierał detale z podajnika oraz odkładał je na kolejne pozycje palety wyznaczane względem zdefiniowanego układu współrzędnych.

Rys. 12. Wynik działania programu w symulacji. (Źródło: ASTOR)

Testowanie programu na fizycznym robocie

Po pomyślnym zakończeniu testów w środowisku symulacyjnym program został uruchomiony na fizycznym robocie edukacyjnym Astorino. Przed rozpoczęciem testów nauczono robota wszystkich wymaganych punktów oraz zweryfikowano ich poprawność.

Program został początkowo uruchomiony w trybie TEACH, co umożliwiło bezpieczną kontrolę wykonywanych ruchów. Po potwierdzeniu poprawności działania przełączono robota w tryb REPEAT i wykonano pełny cykl pracy.

Przeprowadzone testy potwierdziły zgodność działania programu z przyjętymi założeniami. Robot poprawnie realizował proces paletyzacji, wykorzystując lokalny układ współrzędnych utworzony za pomocą funkcji FRAME, a wszystkie detale były odkładane w zaplanowanych pozycjach.

Mapowanie I/O:

Operand symbolicznyOperand absolutny
gripper-57, 58
feeder1
cube_detection1001

Poniższe zdjęcia prezentują wynik działania programu na fizycznym robocie.

Błędy i rozwiązania

Resetowanie błędów – roboty Astorino

W przypadku pojawienia się błędu należy go zresetować, klikając odpowiedni przycisk:

Rys. 13. Resetowanie błędów robota. (Źródło: ASTOR)

Błąd E099

Rys. 14. Błąd E099. (Źródło: ASTOR)

Błąd E099 oznacza, że robot nie jest w stanie osiągnąć zadanej pozycji. W przypadku programu wykorzystującego funkcję FRAME najczęściej wynika to z nieprawidłowo zdefiniowanej orientacji punktu docelowego (kątów OAT) lub z ich całkowitego braku. Problem ten występuje głównie podczas pracy na współrzędnych kartezjańskich.

Rozwiązanie

Należy nadać punktowi docelowemu poprawną orientację. W przypadku punktów tworzonych za pomocą funkcji SHIFT po dodaniu transformacji FRAME należy skopiować orientację z punktu odniesienia (najczęściej punktu początkowego układu FRAME, np. A1/P1), wykorzystując instrukcję:

POINT/OAT PUT = A1

Dzięki temu punkt docelowy otrzyma odpowiednie kąty OAT, co umożliwi robotowi wyznaczenie poprawnej konfiguracji i wykonanie ruchu bez wystąpienia błędu E099.

Pozostałe błędy

W przypadku innych błędów, należy skontaktować się z pomocą techniczną ASTOR:

Telefonicznie: 12 424 00 88 

Mailowo: support@astor.com.pl

Lub przez stronę internetową: https://www.astor.com.pl/wsparcie.html

Zobacz też:

Robot edukacyjny Astorino – kurs dla początkujących

Jak zasymulować stanowisko zrobotyzowane za pomocą K-ROSET oraz KIDE na robocie Kawasaki Robotics, a następnie przenieść aplikację na robota edukacyjnego Astorino

Automatyzacja procesu sortowania z wykorzystaniem robota Astorino

Autor artykułu:

Maciej Pałka

Praktykant ASTOR

Student III roku kierunku Automatyka i robotyka na Akademii Górniczo-Hutniczej w Krakowie

Newsletter Poradnika Automatyka

Czytaj trendy i inspiracje, podstawy automatyki, automatykę w praktyce

Please wait...

Dziękujemy za zapis do newslettera!

Czy ten artykuł był dla Ciebie przydatny?

Średnia ocena artykułu: 0 / 5. Ilość ocen: 0

Ten artykuł nie był jeszcze oceniony.

Zadaj pytanie

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *