Wymień rodzaje funkcji typowych dla języków programowania

Transkrypt

Wymień rodzaje funkcji typowych dla języków programowania
Wymień rodzaje funkcji typowych dla języków programowania
robotów.
związane z ruchem w przestrzeni wewnętrznej
związane z ruchem w przestrzeni zewnętrznej
realizujące obsługe sygnałów wejsciowych i wyjsciowych
realizujące operacje w funkcji czasu np. opóznienie
realizujące operacje na zmiennych – arytmetyczne, logiczne itp.
realizujące operacje typowe dla języków programowania wysokiego
poziomu (warunkowe pętle, wywołania funkcji itp.)
Cechy ruchu zaplanowanego w przestrzeni zewnętrznej.
po lini prostej
Robot prowadzi TCP ze zdefiniowaną prędkością do punktu
docelowego po najkrótszym torze. Tor najkrotszy jest zawsze
linia prostą.
po okręgu
Robot prowadzi TCP ze zdefiniowaną prędkością po okręgu do
punktu docelowego. Okrąg ten jest definiowny przez punkt
początkowy, punkt pomocniczy oraz punkt docelowy.
Cechy ruchu zaplanowanego w przestrzeni wewnętrznej.
Robot prowadzi TCP do punktu docelowego po torze najszybszym,
tor najszybszy nie jest z reguly torem najkrotszym, czyli nie jest linia
prosta, Dokladnego przebiegu ruchu nie da sie przewidziec.
Wymień podstawowe instrukcje ruchowe języka KRL.
PTP – ruch do zadanego punktu i orientacji w przestrzeni przy stałej
prędkości każdej osi z osobna (szczególnie przydatny, jeżeli na
drodze do zadanego punktu znajdują się punkty osobliwe kinematyki
manipulatora),
LIN oraz CIRC – ruch końcówki do zadanego punktu i orientacji po
linii prostej lub łuku w przestrzeni operacyjnej (kartezjańskiej).
Wymień podstawowe instrukcje ruchowe języka RAPID.
Wszystkie instrukcje ruchów w RAPID są typu PTP.
Stosowane są następujące metody interpolacji: kołowa (MoveC),
liniowa (MoveL) – obie w przestrzeni operacyjnej oraz liniowa w
przestrzeni złącz manipulatora (MoveJ).
Ruchy mogą być wykonywane względem globalnego układu
odniesienia (MoveAbsJ) lub układu związanego z aktualnym
położeniem manipulatora (MoveJ). W trakcie ruchu mogą być
aktywowane wyjścia sterownika (MoveCDO, MoveJDO,
MoveLDO).
Równolegle z wykonaniem ruchu może być uruchamiana
procedura, przykładowo sterująca urządzeniem współpracującym
(MoveCSync, MoveLSync). Mogą również być wykonywane
ruchy poszukiwawcze (SearchC, SearchL).
Wymień podstawowe instrukcje ruchowe języka AS.
Instrukcje ruchu są typu PTP, czyli ruch od bieżącej pozycji do
zadanej argumentem pozycji docelowej, przy określonym sposobie
interpolacji.
Możliwe są następujące rodzaje interpolacji: liniowa (LMOVE) i
kołowa (C1MOVE), w przestrzeni operacyjnej oraz liniowa w
przestrzeni konfiguracyjnej manipulatora (JMOVE).
Ruchy mogą być zadawane w postaci przyrostowej z interpolacją
liniową w przestrzeni operacyjnej (LDEPART) i w przestrzeni
konfiguracyjnej (JDEPART).
Instrukcje sterujące prędkością i dokładnością umożliwiają
ustawienie prędkości (SPEED), przyspieszenia (ACCEL)
hamowania (DECEL), dokładności (ACCURACY) osiągania
pozycji.
Sterowanie narzędziem odbywa się za pomocą instrukcji
otwarcia (OPEN) i zamknięcia (CLOSE) narzędzia.
Jaka jest różnica w określaniu prędkości dla ruchów PTP oraz LIN
lub CIRC?
PTP – ruch do zadanego punktu i orientacji w przestrzeni przy stałej
prędkości każdej osi z osobna (szczególnie przydatny, jeżeli na
drodze do zadanego punktu znajdują się punkty osobliwe kinematyki
manipulatora), w PTP prędkość jest określana procentowo (0% ­
100%).
LIN oraz CIRC – ruch końcówki do zadanego punktu i orientacji po
linii prostej lub łuku w przestrzeni operacyjnej (kartezjańskiej).
Prędkość określana jest w m/s (0,001 ­ 2 m/s).
Jaki jest cel ruchu robota z pozycjonowaniem przybliżonym?
Celem ruchu robota z pozycjonowaniem przybliżonym jest
wykonanie ruchu w jak najkrótszym czasie. Dzięki przybliżania robot
mniej hamuje, dzięki czemu ruchy są bardziej płynne, nie zużywają
się hamulce oraz napędy a program jest wykonywany szybciej, choć
mniej dokładnie.
Czy możliwy jest ruch robota z pozycjonowaniem precyzyjnym, bez
konieczności zatrzymania się w kolejnych punktach?
Pozycjonowanie robota w zarejestrowanych (nauczonych) punktach
może odbywac sie w sposób precyzyjny (wtedy robot musi sie
zatrzymac) lub przybliony (wtedy ruch odbywa sie w sposób ciagły).
Zalety trapezoidalnego profilu prędkości.
Ruch w złączach robota odbywa się najczęściej z trapezoidalnym
profilem prędkości.
Wybór takiego profilu predkosci wynika z faktu, że ruch (generowany
szczególnie w przestrzeni złączy) odbywa się głównie ze stałą
prędkościa, a przyspieszanie i hamowanie stanowi niewielki
fragment sekwencji ruchu.
Jaka jest różnica pomiędzy instrukcjami OUT i ANOUT języka KRL?
$OUT[] (dla wejść i wyjść cyfrowych)
$ANOUT[] (dla analogowych)
(są to zmienne globalne zapewniające dostęp do wyjść sterownika)
Jaka jest różnica pomiędzy instrukcjami WAIT i WAIT FOR języka
KRL?
Wait – zatrzymuje program na określony czas
WAITFOR – oczekiwanie np. na odpowiedni stan wejścia lub
wyzerowanie czasomierza
Jak wygenerować impuls o zadanym czasie trwania w języku KRL?
Instrukcja PULSE, parametry (pola formularzu):
Numer wyjscia
Jeśli wyjscie ma przypisana nazwe, nazwa ta jest wyswietlna
Stan, do ktorego przełączane jest wyjście
CONT, przetwarzanie podczas przebiegu Pusty ([]) ­ obróbka z
wstrzymaniem buforowania przebiegu
Długość impulsu
Do czego służy i jakie ma zastosowanie funkcja SYN OUT?
SYN OUT bądź SYN PULSE (ustawienie stanu wyjścia
synchronizowane z wykonaniem pewnej części
trajektorii).
Jaka jest różnica pomiędzy funkcjami SetDO i SetAO języka RAPID?
SetAO – zmienia wartość analogowego sygnału wyjściowego
SetDO – zmienia wartość cyfrowego sygnału wyjściowego (wartość
symboliczna, np. high/low)
Wymień instrukcje ruchu z jednoczesną obsługą wyjść binarnych w
języku RAPID.
TestDI
WaitDI
MoveJDO
MoveLDO
MoveCDO
Do czego służą instrukcje SIGNAL i SWAIT języka AS?
Signal ­ ustawianie sygnałów binarnych (Włacza lub wyłacza sygnał
zewnetrzny)
SWAIT ­ wstrzymanie wykonywania programu (Oczekiwanie, az
wymieniony sygnał osiagnie założony stan)
Dodatnia wartość numeru sygnału oznacza ustawienie na ON,
ujemna na OFF.
Co to jest przesuw SAK (BCO) dla robotów Kuka?
Aby uzyskać zgodność konfiguracji robota ze współrzędnymi
aktualnego punktu programu, wykonywany jest tzw. przesuw SAK.
Odbywa się ze zredukowana prędkością do 10%. Robot jest
przesuwany do współrzędnych rekordu ruchowego, w którym
znajduje się wskaźnik rekordu.
W jaki sposób rozpoczyna się tworzenie nowego programu w języku
AS?
W programie AS niezbędne jest wyuczenie robota dwóch rzeczy:
Warunków pracy (work conditions) robota.
Ścieżki (path) (pose ­ ustawienia) dla narzędzia robota.
Najpierw należy określić wszystkie ruchy wymagane do ukończenia
zadania:
W jaki sposób należy wykonać program w trybie krokowym dla
robotów Kawasaki?
Możliwa jest kontrola ruchu i treści programu poprzez wykonanie
programu krok po kroku. Użyj polecenia wprowadzonego z ekranu
STEP lub klawisza CHECK znajdującego się na programatorze
ręcznym.
Wymień podstawowe cechy współczesnych systemów
symulacyjnych robotów przemysłowych.
Podstawowe cechy współczesnych systemów symulacyjnych to:
dostępna biblioteka podstawowych struktur manipulatorów
możliwość definiowania struktury kinematycznej i geometrycznej
symulacja ruchu robota i generowanie trajektorii
badanie kolizji z przeszkodami
implementacja języka programowania np. Industrial Robot Language
model dynamiki manipulatora (Easy Rob, RobotiCad)
symulacja całego stanowiska (robot i urządzenia zewnętrzne)
symulacja linii produkcyjnej (Cosimir Festo, RobCad)
Wymień komercyjne systemy programowania robotów off­line.
RobotAssist
Easy­Rob
Cosmiro Festo
RobCad
Abb RobotStudio
Wymień elementy składowe systemów symulacyjnych.
interfejs użytkownika
definiowanie struktur kinematycznych i geometrycznych
planowanie zadań i generowanie trajektorii
wykrywanie kolizji
sterowanie rzeczywistymi manipulatorami
Metody wykrywania kolizji.
Jednym z istotniejszych zagadnień przy symulacji rzeczywistego
środowiska trójwymiarowego, jest wykrywanie kolizji robota z otoczeniem.
W wirtualnej rzeczywistości kolizje dzielimy na:
dyskretne (DCD Discrete Collision Detection)
Pierwsza metoda polega na badaniu w minimalnym odstępie
czasu, czyli w jednej klatce animacji, przecięcia trójkątów
składających się na poszczególne modele. Jeśli takie
podejście nie zapewnia zadowalającej dokładności
określania zajścia zdarzenia, na przykład ze względu na dużą
szybkość z która poruszają sie obiekty, wówczas konieczne
jest zastosowanie metod bazujących na ciągłym wykrywaniu
kolizji.
ciagłe (CCD Continous Collision Detection).
Określamy wtedy nie sam fakt przecięcia, tylko obliczamy
czas w jakim kolizja nastapi a dokładność, która możemy
uzyskać jest o wiele większa niż jedna klatka animacji. Można
również dokładnie określić miejsce kontaktu. Ze wzgledu na
ogromną liczbę testów, jakie należy przeprowadzić, aby
okreslić wszystkie możliwości kontaktu obiektów, jeżeli ich
powierzchnie składają się z trójkątów, potrzebne sa funkcje
optymalizujące proces wykrywania kolizji.
Wymień najważniejsze cechy systemu RobotStudio (RS) firmy ABB.
możliwość równoczesnej pracy wielu robotów
import modeli z różnych systemów CAD
wyznaczanie ścieżki na podstawie modeli CAD
badanie, czy poszczególne punkty sa osiagalne w przestrzeni
zewnętrznej
wykrywanie, czy ścieżka nie przebiega w pobliżu punktów osobliwych
wykrywanie kolizji
edycja i debugging programu
możliwość definiowania sygnałów i tworzenia połączeń pomiędzy
różnymi elementami sceny
możliwość reakcji na zdarzenia zewnetrzne
możliwość programowania w C# i Visual Basic
możliwość modelowania narzędzi robota z uwzględnieniem
parametrów umożliwiających obliczenia dynamiki
rozbudowane
możliwosci
symulacyjne
poprzez
tworzenie
obiektów
o
wielu
cechach (SmartComponent)
Co kryje się pod pojęciami „System” i „Station” w systemie RS?
Station – stanowisko z robotem lub wieloma robotami,
otoczeniem itp. System – robot + wirtualny kontroler
Do czego służy Workobject?
Miejsce, w którym umieszczany jest obrabiany przedmiot. Dla
robota jest to obszar roboczy.
Wymień układy współrzędnych w systemie RS.
World – układ współrzędnych stanowiska
Controller world – układ współrzędnych sterownika
Base – układ współrzędnych robota
TCP – układ współrzędnych narzędzia
WorkObject – układ współrzędnych przedmiotu
User frame – układ współrzędnych względem Workobject frame
User – układ współrzędnych użytkownika
Parent – nadrzędny układ współrzędnych
Local – lokalny układ współrzędnych
Wymień sposoby ręcznego poruszania robotem.
Joint jog – ruch węzłów
Linear jog (Freehand) – ruch koncówki w zadanym układzie
współrzędnych
Reorient jog (Freehand) – rotacje koncówki w zadanym układzie
współrzędnych
Do czego służą współczynniki konfiguracji osi?
Służą do kodowania konfiguracji osi robota, gdyż to samo
położenie i orientacja TCP może byc osiągniete przez różne
konfiguracje robota.
Czym się różni macro od programu?
Makra są niesamodzielnymi programami i w celu wykonania
muszą być uruchamiane w środowisku innego programu.
Czym się różni flaga od markera?
Marker to punkt odniesienia, względem którego robot jest
pozycjonowany w przestrzeni. Jest aktualizowany cyklicznie.
Flaga jest stosowana do wskazania stanu lub do stymulowania
szczególnej
reakcji
podczas
wykonywania
programu
komputerowego. Aktualizowana tylko podczas przypisania.
Rola instrukcji RP.
jesli chodziło o CP to:
Włącza lub wyłącza ciągłą ścieżkę ruchu. Gdy znajduje
się w pozycji ON, robot wykonuje płynne przejścia
pomiędzy odcinkami ruchu. Gdy wyłącznik jest w pozycji
OFF, robot zwalnia i zatrzymuje się na końcu każdego
odcinka ruchu.
Wymienić instrukcje ruchowe w Robot Studio, czyli moveJoint itp.
MoveJ – szybki ruch, który nie musi być linią prostą, z jednego punktu
do drugiego
MoveL – ruch liniowy
MoveC – ruch kołowy
Układy współrzędnych Robot Studio.
TCP – centralny punkt narzędzia
World – reprezentuje całą stację roboczą
Workobejct – reprezentuje fizyczny obrabiany przedmiot
Base Frame – zawsze zlokalizowany u podstawy robota
User – wykorzystywany do tworzenia punktów odniesienia według
własnego uznania
Tryb FB ONL.
FB ONL = E150 & E151 & E153
Robot wykonuje ruch, kiedy warunek logiczny jest
spełniony. Warunek moze byc wykorzystany do
zatrzymania robota, w kontrolowany sposob, kiedy
warunki nie są spełnione lub następuje błąd czy też
blokada, ograniczenie innego typu. Funkcja ta jest
sprawdzana podczas ruchu robota, dzięki czemu można
też zatrzymać robota podczas ruchu między dwoma
punktami. Jest resetowana na koncu programu.
(by sid niech ktos to sprawdzi)
Opis współrzędnej w Robot Studio (RAPID).
Position – pozycja zdefiniowana w układzie współrzędnych
Workobject
Orientation – orientacja względem orientacji obrabianego przedmiotu
Configuration – wartości konfiguracyjne określające w jaki sposób
robot powinien osiągnąć cel
Kod programu.
Dla przykładowej linii kodu ­ wykonanie ruchu typu
CIRCLE:
MoveC
Target_40,Target_50,
v150,z100,Pen_TCP\WO
bj:=wobj0;
poszczególne argumenty
to:
MoveC ToPoint1, ToPoint2, Speed
(prędkość), Zone (błąd), Tool
(narzędzie)
ruch po okręgu w przestrzeni kartezjańskiej ­ MoveC
ma 2 punkty, MoveL jeden, tu MoveC:
ToPoint1 ­ współrzędne punktu dodatkowego.
ToPoint2 ­ współrzędne punktu docelowego.
MoveJ Target_Home,v1000,z100,Pen_TCP\WObj:=wobj0
MoveL Target_20,v100,z100,Pen_TCP\WObj:=wobj0;
CONST robtarget
Target_60:=[[1214.132108706,144.30910478
,200],[0,0,1,0],[0,­2,1,0],[9E9,9
E9,9E9,9E9,9E9,9E9]]; Korwin królem
polski!
robtarget(pos trans, orient rot,
confdata robconf, extjoint extax);
Target_60 ­ nazwa zmiennej (cel)
[1214.132108706,144.30910478,200]
=>
[X, Y, Z] ­ pozycja (do tej pozycji będzie
wykonany ruch TCP)
[0,0,1,0] ­ konfiguracja (orientacja) narzędzia ­>
TCP
[0,­2,1,0]­ konfiguracja (orientacja) robota
[9E9,9E9,9E9,9E9,9E9,9E9] ­ określa położenie
logicznych osi zewnętrznych [external axes] ­
określane w stopniach (6­osi, bo manipulator 6­osiowy)
Kolejność
obliczeń
w ruchu PTP
i LIN punktu
·
współrzędne
wewnętrzne
zewnętrzne
i wewnętrzne
docelowego
robota (aktualne) ·
1. Wyliczenie współrzędnych zewnętrznych punktu docelowego.
1. Wyliczenie drogi kątowej lub liniowej.
3. Interpolacja1 przejścia pomiędzy macierzami punktu początkowego i końcowego z
uwzględnieniem profilu trapezoidalnego.
Pytania z wykładów:
1.
Korzystając z robota, z jakich układów współrzędnych korzystamy?
układ wewnętrzny osi konfiguracyjnych, naturalnych (współrzędne osi)
układ zewnętrzny => układ Kartezjański, prostokątny
Układ zadaniowy (w tym układzie definiowane jest zadanie) Można
wyszczególnić układ elementu obrabiania
układ BASE
Jaka operacja łączy układ wewnętrzny i zewnętrzny?
Zadanie proste kinematyki pozwala na przeliczenie układów.
Wektor X będzie funkcją wektora U, X=F(q)
q=[q1,...,q6]
X=[X,Y,Z,,,], gdzie ,,to kąty Eulera (rotacje względem układu współrzędnych)
11. Różnice między trybami T1 i T2.
a. T1: prędkość ograniczona w trybie ręcznym i automatycznym.
b. T2: prędkość ograniczona tylko w trybie ręcznym.
1