1
Definiowanie układów kinematycznych
manipulatorów
Definicja Robota
Według Encyklopedii Powszechnej PWN:
robotem nazywa się urządzenie służące do wykonywania niektórych funkcji manipulacyjnych, lokomocyjnych, informacyjnych i intelektualnych człowieka.
Według Amerykańskiego Instytutu Robotyki (Robot Institute of America):
robot jest programowanym wielofunkcyjnym manipulatorem, przeznaczonym do operowania materiałami, częściami lub wyspecjalizowanymi urządzeniami, poprzez różne programowane ruchy, w celu wykonania różnych zadań.
Podstawowym aspektem wymienionej definicji jest programowalność robota, możliwość zmiany programu. Dzięki ternu robot ma zdolność przystosowania się do zmiennych wymagań zadania. [1]
Roboty pierwszej generacji (pierwszy etap rozwoju)
Przeznaczone do cyklicznego powtarzania tych samych operacji. Wyposażone w pamięć
zaprogramowaną przez operatora (w procesie programowania pamięci umieszcza się w niej rozkazy). Wykonują samodzielnie zaprogramowane czynności. Sterowanie ruchem odbywa się w układzie otwartym, bez sprzężenia zwrotnego od rzeczywistego położenia.
Druga generacja
Nazywane są adaptacyjnymi ponieważ potrafią dostosowywać się do otoczenia; wyposażone w odpowiednie czujniki są zdolne korygować swoje ruchy w zależności od położenia i kształtu obiektu.
2
Trzecia generacja
Ta generacja robotów ma możliwość uczenia się na podstawie własnych doświadczeń w tym możliwość modyfikacji programu działania, dostosowując się do zmiennych warunków otoczenia.
Elementy i swoboda
Manipulatory przemysłowe są złożone z członów połączonych przegubami w otwarty łańcuch
kinematyczny. Przeguby są zwykle obrotowe (rotacyjne) lub pryzmatyczne (liniowe).
Przeguby obrotowe umożliwiają obrót jednego członu względem drugiego.
Przeguby pryzmatyczne umożliwiają ruch liniowy jednego członu względem drugiego. Przeguby manipulatora mogą być napędzane elektrycznie, hydraulicznie lub pneumatycznie.
Liczba przegubów określa liczbę stopni swobody manipulatora. Manipulator powinien mieć, na ogół, co najmniej sześć stopni swobody — trzy do tzw. pozycjonowania oraz trzy do tzw. orientowania. Jeżeli ma mniej stopni swobody, to manipulator nie może osiągnąć każdego punktu przestrzeni z zadaną orientacją.
Niektóre zadania wymagają większej niż sześć liczby stopni swobody (sięganie za przeszkodę, wokół niej). Ze wzrostem liczby stopni swobody zwiększają się trudności sterowania manipulatora.
Jakość (sterowania) manipulatora
Dokładność manipulatora jest miara określająca, jak blisko manipulator może dotrzeć do zadanego
punktu przestrzeni.
Powtarzalność jest miarą określającą jak blisko manipulator może ponownie dotrzeć do wcześniej
osiągniętego punktu przestrzeni. Na ogół manipulatory maja. dobrą powtarzalność, lecz niezbyt dobrą dokładność. Najczęściej pozycję narzędzia oblicza się na podstawie pomiaru kątów lub przesunięć w przegubach zakładając geometrię manipulatora i jego sztywność. Nie stosuje się ani bezpośredniego pomiaru pozycji narzędzia, ani jego orientacji.
Na dokładność wpływają więc błędy obliczeniowe, dokładność wykonania (obróbki) elementów, efekt elastyczności elementów, luzy w przekładniach itp. Dlatego wymagana jest duża sztywność robotów.
Na powtarzalność wpływa w tych warunkach tzw. rozdzielczość układu sterowania, rozumiana jako najmniejsza zmiana ruchu, którą układ sterowania może rozpoznać. Jest ona obliczana jako iloraz całkowitej drogi przebywanej przez dany człon oraz liczby 2n. gdzie n jest liczbą bitów tzw. enkodera sterującego ruchem danego członu.
3
Układ sterowania robota
Pod względem sterowania roboty dzieli się na działające w układzie otwartym (bez sprzężenia zwrotnego) i działające w układzie zamkniętym.
Roboty działające w układzie otwartym były używane, przede wszystkim, do przenoszenia materiałów.
Roboty działające w układzie ze sprzężeniem zwrotnym dzieli się na dwa rodzaje:
1) PTP (point to point) — przechodzi od punktu do punktu przestrzeni roboczej według programu, bez narzucania trajektorii,
2) CP (continuous path — ciągła ścieżka), kontrolowana jest cała droga końcówki roboczej.
Parametry członu – podsumowanie
Kinematykę każdego robota można opisać przez podanie dla każdego członu wartości czterech parametrów. Pierwsze dwa opisują sam człon, a dwa następne — połączenie członu z sąsiednim członem.
W zazwyczaj spotykanym przypadku pary obrotowej, i jest zmienną konfiguracyjną, a pozostałe trzy wielkości są ustalonymi parametrami członu. Dla par przesuwnych d1 jest zmienna, konfiguracyjną, a pozostałe trzy wielkości są ustalonymi parametrami członu.
Określanie mechanizmów za pomocą tych wielkości odpowiada konwencji, znanej pod nazwą notacji Denavita-Hartenberga (Można stosować również inne metody opisu mechanizmów). Określanie parametrów Denavita-Hartenberga: Pełny opis stałych parametrów kinematyki sześcioczłonowego manipulatora wymaga podania 18 liczb. W przypadku manipulatora sześcioczłonowego z wszystkimi parami obrotowymi te 18 liczb podaje się w postaci sześciu zbiorów (ai, i, di).
Długość członu
• Na rys. przedstawiono człon i-1 oraz prostą obustronnie prostopadłą do osi, wzdłuż której mierzy się długość członu ai-1.
4
• Inny sposób ułatwiający znalezienie parametru ai-1 polega na wyobrażeniu sobie cylindra o zwiększającej się średnicy, o osi pokrywającej się z osią pary obrotowej i-1. W momencie zetknięcia powierzchni cylindra z osią przegubu i promień cylindra odpowiada odległości ai-1.
Kąt skręcenia członu
• Drugi parametr, niezbędny do zdefiniowania względnego usytuowania dwóch osi, nazywany jest kątem skręcenia członu. Jeśli wyobrazimy sobie płaszczyznę, której normalna odpowiada dopiero co znalezionej obustronnie prostopadłej do osi połączeń ruchowych, a następnie zrzutujemy obie osie i-1 oraz i na tę płaszczyznę, to możemy zmierzyć kąt zawarty między nimi.
• Kąt ten jest mierzony w kierunku od osi i-1 do osi i, zgodnie z regułą prawej ręki wokół prostej ai-1.
Długość a i kąt
Na rys. kąt i-1 odpowiada kątowi między osiami i-1 oraz i (gdzie linie równoległe oznaczono trzema kreskami).
W przypadku przecinania się osi kąt skręcenia jest mierzony w płaszczyźnie zawierającej obie osie. Jednak nie można określić znaku W tym specjalnym przypadku znak kąta można przyjąć dowolnie.
Odsunięcie
Połączenie członu i-1 z członem i (ai-1 jest prostą obustronnie prostopadłą do obu osi członu i-1; ai jest prostą obustronnie prostopadła, do osi członu i-1).
Pierwszy parametr połączenia, tzn. odsunięcie członu di, określa odległość ze znakiem, mierzoną wzdłuż osi połączenia i od punktu, w którym ai-1 przecina tę oś, do punktu przecięcia prostej ai ze wspólną osią.
Odsunięcie di pokazano na rys.
5
Kąt
• Drugim parametrem połączenia jest kąt zawarty między przedłużeniem ai-1 oraz ai, mierzony wokół osi połączenia i.
• Pokazano to na poprzednim rys., przy czym dwoma kreskami oznaczono linie równoległe. • Parametr ten oznaczono i. Jest on zmlenną konfiguracyjną dla pary obrotowej.
Odsunięcie oraz kąt
Odsunięcie członu d oraz kąt konfiguracji pary obrotowej są wystarczającymi parametrami, za pomocą których można opisać istotę połączenia dwóch sąsiednich członów
6
A. Przygotowanie stanowiska
Ze strony http://controlsystemslab.com/rtsx/download/ ściągnąć plik RTSX_beta1.zip
Utworzyć katalog i rozpakować
RTSX_beta1.zip
Następnie w programie Scilab wskazać go jako „bieżący katalog”Rys. 1 Wskazywanie katalogu roboczego w programie Scilab W konsoli Scilab wpisać polecenie:
exec("startup_rtsx.sce",-1); aby uruchomić program. Następnie
7
Robot 1
W konsoli Scilab wpisać:
Definicje członów i przegubów:
L(1)=Link([0 1 0 -pi/2]);
L(2)=Link([-pi/2 1 0 -pi/2]);
Rob00=SerialLink(L);
PlotRobot(Rob00, [0 0]);
Robot 2
L(2)=Link([-pi/2 1 0 0]);
L(3)=Link([-pi/2 1 0 –pi/2]);
rob01=SerialLink(L);
PlotRobot(rob01, [0 0 0]);
Robot Puma
-->L(1)=Link([0 1 0 -pi/2]);
-->L(2)=Link([-pi/2 0.2 1 0]);
-->L(3)=Link([-pi/2 0.2 1 0]);
-->L(4)=Link([-pi/2 0.2 0 -pi/2]);
-->rob02=SerialLink(L);
-->PlotRobot(rob02, [0 0 0 0]);
Wykorzystano materiały z książki Domachowski ”Automatyka i robotyka” Industrial Robot: An International Journal,
8
Zadanie 1:
Korzystając z dokumentacji programu RTSX (http://controlsystemslab.com/rtsx/online-help/) uzupełnić układ kinematyczny, aby uzyskać model robota Puma 562
Rys. 2 Robot Puma 562 [2]
Zadanie 2:
Zbudować model robota o konstrukcji jak na rys. i następujących długościach i przesunięciach kolejnych członów: 0: (80, 15); 1: (75,10); 3 (55) [cm]
9
Opisy wybranych poleceń
Link() – definiowanie przegubu robota
Składnia L = Link(lparam, jtype,options)parametry: lparam – wektor [1x4] lub [1x5] zawierający odstępy i kąty w następującej kolejności: [ theta d a alpha (offset)], gdzie offset jest opcjonalny.
jtype — typ przegubu (domyśłnie) ‘R’ = obrotowy (revolute), ‘P’ = (prismatic) sigma, (RP) — typ połączenia: 0 (‘R’) = revolute, 1 (‘P’) = prismatic
theta — kąt przegubu d — odsunięcie członu a — długość członu
alpha — kąt skręcenia członu offset — odsunięcie przegubu
Przykłady: L = Link([0 1 1 pi/2]); // tworzy pojedynczy obrotowy człon, d=1, a=1, alpha=pi/2 // theta jest zmienną przegubu (połączenia)
// tworzenie łańcucha członów L(1) = Link([0 0 1 0]);
L(2) = Link([pi/2 1 0 0],'P'); // człon jest liniowy d=zmienna o początkowej wartości 1 L(3) = Link([0 0 2 pi],'R','m',0.43,'r',[0, 0.018, 0],'qlim',[-pi/2 pi/2]);
SerialLink( )
SerialLink( ) – funkcja składania członów robota w łańcuch na podstawie z członów zdefiniowanych za pomocą polecenia Link( ).
Robotinfo ()
Robotinfo — wyświetla informacja na temat struktury kinematycznej robota
PlotRobot()
PlotRobot() - otwiera okno graficzne zawierające scenę, na której umieszczany jest model kinematyczny robota
Składnia: T=PlotRobot(robot, q, options) robot –model robota
q –wektor [1 x nq] zmiennych określających pozycje członów w przegubach, gdzie nq = liczba zmiennych przegubów.
10
AnimateRobot()
AnimateRobot() wyświetla poruszającego się robota według sekwencji wartości opisujących zmienne przegubów (kąty lub przesunięcia).
Przykład:
clear L;
a1 = 1.2; a2 = 1;
L(1)=Link([0 0 a1 0]);
L(2)=Link([0 0 a2 0]);
twolink=SerialLink(L); // a 2-członowy manipulator
// generowane są zbiory punktów trajektorii ruchów, które obejmują tutaj ruch po pełnych okręgach
t = [0:0.01:1]'; // szereg czasowy do obliczenia zbiór
punktów trajektorii
qs = [2*pi*t 2*pi*t];