Manipulatory i roboty mobilne AR S1 semestr 5

Podobne dokumenty
Rozszerzony konspekt preskryptu do przedmiotu Podstawy Robotyki

Konrad Słodowicz sk30792 AR22 Zadanie domowe satelita

Podstawy Robotyki Określenie kinematyki oraz dynamiki manipulatora

ROBOTYKA. Odwrotne zadanie kinematyki - projekt.

MODEL MANIPULATORA O STRUKTURZE SZEREGOWEJ W PROGRAMACH CATIA I MATLAB MODEL OF SERIAL MANIPULATOR IN CATIA AND MATLAB

Notacja Denavita-Hartenberga

Jakobiany. Kinematykę we współrzędnych możemy potraktować jako operator przekształcający funkcje czasu

Egzamin 1 Strona 1. Egzamin - AR egz Zad 1. Rozwiązanie: Zad. 2. Rozwiązanie: Koła są takie same, więc prędkości kątowe też są takie same

2.12. Zadania odwrotne kinematyki

Geometria analityczna

Wykład 14. Elementy algebry macierzy

Aby opisać strukturę krystaliczną, konieczne jest określenie jej części składowych: sieci przestrzennej oraz bazy atomowej.

Matematyka licea ogólnokształcące, technika

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

ALGEBRA z GEOMETRIA, ANALITYCZNA,

Układy równań liniowych

KINEMATYKA I DYNAMIKA CIAŁA STAŁEGO. dr inż. Janusz Zachwieja wykład opracowany na podstawie literatury

Wstęp. Ruch po okręgu w kartezjańskim układzie współrzędnych

( ) Arkusz I Zadanie 1. Wartość bezwzględna Rozwiąż równanie. Naszkicujmy wykresy funkcji f ( x) = x + 3 oraz g ( x) 2x

OPISY PRZESTRZENNE I PRZEKSZTAŁCENIA

Funkcje liniowe i wieloliniowe w praktyce szkolnej. Opracowanie : mgr inż. Renata Rzepińska

Informatyka I Lab 06, r.a. 2011/2012 prow. Sławomir Czarnecki. Zadania na laboratorium nr. 6

Geometria. Rozwiązania niektórych zadań z listy 2

VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa.

Rozwiązywanie równań nieliniowych

Zagadnienia brzegowe dla równań eliptycznych

Zakres na egzaminy poprawkowe w r. szk. 2013/14 /nauczyciel M.Tatar/

FUNKCJA LINIOWA - WYKRES

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

Liczby zespolone. x + 2 = 0.

3. FUNKCJA LINIOWA. gdzie ; ół,.

ZAGADNIENIA PROGRAMOWE I WYMAGANIA EDUKACYJNE DO TESTU PRZYROSTU KOMPETENCJI Z MATEMATYKI DLA UCZNIA KLASY II

Wymagania edukacyjne z matematyki klasa II technikum

III. Układy liniowe równań różniczkowych. 1. Pojęcie stabilności rozwiązań.

MECHANIKA 2 RUCH POSTĘPOWY I OBROTOWY CIAŁA SZTYWNEGO. Wykład Nr 2. Prowadzący: dr Krzysztof Polko

LUBELSKA PRÓBA PRZED MATURĄ 2017 poziom podstawowy

Lista nr 1 - Liczby zespolone

Z52: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania, zagadnienie brzegowe.

2) R stosuje w obliczeniach wzór na logarytm potęgi oraz wzór na zamianę podstawy logarytmu.

FIGURY I PRZEKSZTAŁCENIA GEOMETRYCZNE

3. KINEMATYKA Kinematyka jest częścią mechaniki, która zajmuje się opisem ruchu ciał bez wnikania w jego przyczyny. Oznacza to, że nie interesuje nas

FUNKCJA LINIOWA, RÓWNANIA I UKŁADY RÓWNAŃ LINIOWYCH

Funkcja liniowa i prosta podsumowanie

ODPOWIEDZI I SCHEMAT PUNKTOWANIA POZIOM PODSTAWOWY

ODPOWIEDZI I SCHEMAT PUNKTOWANIA POZIOM PODSTAWOWY

Manipulator OOO z systemem wizyjnym

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora.

Elementy geometrii analitycznej w R 3

FUNKCJA LINIOWA. A) B) C) D) Wskaż, dla którego funkcja liniowa określona wzorem jest stała. A) B) C) D)

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

LUBELSKA PRÓBA PRZED MATURĄ 2018 poziom podstawowy

KMO2D. Kolizje między-obiektowe w 2D

Trajektoria rzuconego ukośnie granatu w układzie odniesienia skręcającego samolotu

1. PODSTAWY TEORETYCZNE

Zakres na egzamin poprawkowy w r. szk. 2013/14 /nauczyciel M.Tatar/ Podręcznik klasa 1 ZAKRES PODSTAWOWY i ROZSZERZONY

Ćwiczenie M-2 Pomiar przyśpieszenia ziemskiego za pomocą wahadła rewersyjnego Cel ćwiczenia: II. Przyrządy: III. Literatura: IV. Wstęp. l Rys.

M10. Własności funkcji liniowej

Numeryczne rozwiązywanie równań różniczkowych ( )

========================= Zapisujemy naszą funkcję kwadratową w postaci kanonicznej: 2

Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych klasa druga zakres rozszerzony

FUNKCJA KWADRATOWA. 1. Definicje i przydatne wzory. lub trójmianem kwadratowym nazywamy funkcję postaci: f(x) = ax 2 + bx + c

Podstawy robotyki wykład V. Jakobian manipulatora. Osobliwości

Algebra liniowa. Macierze i układy równań liniowych

V. WYMAGANIA EGZAMINACYJNE

FUNKCJA KWADRATOWA. Zad 1 Przedstaw funkcję kwadratową w postaci ogólnej. Postać ogólna funkcji kwadratowej to: y = ax + bx + c;(

przy warunkach początkowych: 0 = 0, 0 = 0

Opis systemów dynamicznych w przestrzeni stanu. Wojciech Kurek , Gdańsk

KLUCZ PUNKTOWANIA ODPOWIEDZI

EGZAMIN MATURALNY Z MATEMATYKI

Pochodna funkcji c.d.-wykład 5 ( ) Funkcja logistyczna

PLAN WYNIKOWY DLA KLASY DRUGIEJ POZIOM PODSTAWOWY I ROZSZERZONY. I. Proste na płaszczyźnie (15 godz.)

Zad. 6: Sterowanie robotem mobilnym

Geometria. Hiperbola

Skrypt 19. Trygonometria: Opracowanie L3

FUNKCJA LINIOWA. Zadanie 1. (1 pkt) Na rysunku przedstawiony jest fragment wykresu pewnej funkcji liniowej y = ax + b.

ALGEBRA Z GEOMETRIĄ ANALITYCZNĄ zadania z odpowiedziami

ELEKTROTECHNIKA Semestr 1 Rok akad / ZADANIA Z MATEMATYKI Zestaw Przedstaw w postaci algebraicznej liczby zespolone: (3 + 2j)(5 2j),

= i Ponieważ pierwiastkami stopnia 3 z 1 są (jak łatwo wyliczyć) liczby 1, 1+i 3

Kurs ZDAJ MATURĘ Z MATEMATYKI MODUŁ 6 Teoria funkcje cz. 2

ZADANIA ZAMKNIETE W zadaniach 1-25 wybierz i zaznacz na karcie odpowiedzi poprawna

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Autor: mgr inż. Robert Cypryjański METODY KOMPUTEROWE

Definicje i przykłady

Pole magnetyczne magnesu w kształcie kuli

Matematyka. Poziom rozszerzony Próbna Matura z OPERONEM

Przykład Łuk ze ściągiem, obciążenie styczne. D A

Zadania egzaminacyjne

0 + 0 = 0, = 1, = 1, = 0.

KATEDRA AUTOMATYKI, BIOMECHANIKI I MECHATRONIKI. Laboratorium Mechaniki technicznej

Pochodna funkcji: zastosowania przyrodnicze wykłady 7 i 8

Standardy wymagań maturalnych z matematyki - matura

[ A i ' ]=[ D ][ A i ] (2.3)

5. Rozwiązywanie układów równań liniowych

KATEDRA AUTOMATYKI, BIOMECHANIKI I MECHATRONIKI. Laboratorium Mechaniki technicznej

Funkcja liniowa - podsumowanie

Geometria w R 3. Iloczyn skalarny wektorów

2. Układy równań liniowych

Własności wyznacznika

Matematyka stosowana i metody numeryczne

8. TRYGONOMETRIA FUNKCJE TRYGONOMETRYCZNE KĄTA OSTREGO.

Transkrypt:

Manipulatory i roboty mobilne AR S semestr 5 Konrad Słodowicz MN: Zadanie proste kinematyki manipulatora szeregowego - DOF Położenie manipulatora opisać można dwojako w przestrzeni kartezjańskiej lub zmiennych konfiguracyjnych (tu: kątów między członami. Aby sprawnie sterować robotem należy znaleźć sposób na przechodzenie pomiędzy owymi przestrzeniami. Przestrzeń kartezjańska Przestrzeń zmiennych konfiguracyjnych Łatwiej jest nam, bowiem, podawać pożądane położenie chwytaka robota w przestrzeni kartezjańskiej, do której jesteśmy przyzwyczajeni, lecz silniki obracające przeguby potrzebują jako wartości zadanych kątów, o które mają się obrócić.. Przestrzeń robocza manipulatora szeregowego Zanim jednak zaczniemy jakiekolwiek obliczenia, wyznaczmy przestrzeń roboczą naszego manipulatora. Zakładamy pewne ograniczenia: q 8 35 q 35. Dodatkowo, przyjmujemy długości ramion równe: l = l =.4. Wobec tego przestrzeń robocza wygląda następująco:

. Zadanie proste kinematyki Przejście z przestrzeni zmiennych konfiguracyjnych do przestrzeni kartezjańskiej nazywane jest zadaniem prostym kinematyki. Chcemy więc znaleźć funkcje kątów q i q takie, by w wyniku dawały współrzędne punktu P będącego położeniem chwytaka. Zadanie to rozwiążemy geometrycznie: Z rysunku otrzymujemy równania: x=cos(q l x=cos(q l a więc p x =cos(q l +cos(q l i analogicznie p y =sin (q l +sin(q l gdzie p x oraz p y to odpowiednie współrzędne położenia chwytaka w układzie związanym z podstawą. Do zapisu rotacji, natomiast, używa się tzw. macierzy rotacji o ogólnej postaci: =[ x x y x z x R x y y y z y ], x z y z z z gdzie x, y i z to wersory równoległe do odpowiednich osi układów współrzędnych. Tak zapisana macierz opisuje rotację układu względem układu. By jednocześnie zapisać przesunięcie i obrót używa się macierzy translacji o postaci: T 4x4 =[ R 3x3 P 3x x3 x], P=[ p x p y p z] gdzie R macierz rotacji, P macierz przesunięcia o postaci, macierz zerowa. Macierze translacji można łatwo łączyć, aby ułatwić obliczanie rotacji i przesunięcia między dwoma odległymi układami. Istnieje, bowiem, zależność, gdzie translacja między dwoma układami można zapisać jako iloczyn ciągu translacji jeśli zaczyna on i kończy się na odpowiednich układach. Dla przykładu:

3T = T T 3 T. Wykorzystajmy wspomniane zależności do wyznaczenia macierzy translacji w naszym układzie: sin q T =[cosq sin q cosq ] sin q l T =[cosq sin q cos q ] l T 3 =[ ] 3T = T T T 3 sin(q l cos(q +l cosq T 3 =[cos(q sin(q cos(q l sin(q +l sin q ] Na podstawie powyższej macierzy, znając kąty q oraz q, można obliczyć położenie chwytaka oraz jego rotację w układzie współrzędnych związanym z podstawą manipulatora. MN: Zadanie odwrotne kinematyki manipulatora szeregowego Zadaniem odwrotnym kinematyki nazywane jest przejście ze zmiennych kartezjańskich na zmienne konfiguracyjne. Ułatwia to znacznie sterowanie robotem, gdyż umożliwia zadawanie pożądanego położenia jako punkt w układzie kartezjańskim. Program ma wtedy za zadanie wyznaczenie odpowiednich ustawień kątów pomiędzy kolejnymi członami. Należy zauważyć, iż dla manipulatora dwuczłonowego, w przestrzeni roboczej, każdy punkt można osiągnąć maksymalnie dwoma położeniami manipulatora. Na poniższym rysunku na czerwono zaznaczone zostały obszary przestrzeni roboczej, które mogą zostać osiągnięte jedynie jednym położeniem:

Zadanie odwrotne rozwiążemy również geometrycznie. Poniższy rysunek przedstawia dwa położenia ramion dające to samo położenie końcowe chwytaka. d = P y +P x P y P x =tan α α=arctan P y P x Do wyznaczenia kątów β oraz q q : q =α β q =α+β q = q użyjemy twierdzenia cosinusów. analogicznie d =l +l l l cos(8 q cos(8 q = l +l d l l cos(q = d l l l l q =arccos( d l l l l

β : stąd ostatecznie otrzymujemy równania: l =l +d d l cos(β β=arccos( l l +d l d q =arctan P y arccos( l l +d P x l d q =arctan P y +arccos( l l +d P x l d q =arccos( d l l l l. q = q Ograniczenia przestrzeni roboczej należy osobno zaimplementować w programie. MN3: Generator trajektorii ruchu Choć rozwiązanie zadania odwrotnego pozwala nam na wyznaczenie zmiennych konfiguracyjnych dających pożądane położenie chwytaka, nie wystarczy to do sterowania manipulatorem. Chcemy, bowiem, by położenia ramion zmieniły się z początkowych na końcowe w pewnym, zadanym czasie. Musimy wiec znaleźć funkcję czasu Q(t, która pozwoli na określenie zmiennych konfiguracyjnych w każdym momencie. Postać funkcji Q(t zależy od przebiegu prędkości, jaki chcemy osiągnąć. Z praktycznego punktu widzenia silniki powinny powoli rozpędzić się i spokojnie wyhamować, aby uniknąć błędów statycznych wynikających z bezwładności oraz szybkiego ich zużywania się. Najprostszą, i najlepszą funkcją dającą taki właśnie przebieg jest wielomian 3. stopnia. Wobec tego, ogólna postać funkcji Q(t to: Q(t =a +a t+a t +a 3 t 3. Generator trajektorii będzie miał za zadanie znalezienie współczynników powyższego równania. Na

szczęście istnieje możliwość analitycznego ich wyznaczenia. Aby tego dokonać musimy znać: czas początkowy t czas końcowy położenie początkowe Q położenie końcowe Q k prędkość początkową Q prędkość końcową Q k Można wtedy ułożyć układ czterech równań, będący układem Cramera: {Q(t =a+a t t 3 +a +a 3 t Q k (t=a +a +a t 3 k +a 3 Q (t =a +a t +3a 3 t Q k (t=a +a +3a 3 Poprawne jego rozwiązanie pozwoli na łatwe znalezienie współczynników i wyznaczenie odpowiedniej trajektorii. Można jednak ułatwić sobie rozwiązywanie układu wprowadzając kilka uproszczeń. Na początek można przyjąć, iż czas początkowy t będzie zawsze równy. Uproszczenie to znacznie ułatwia rozwiązanie układu. W praktyce, nawet przy poszukiwaniu złożonych trajektorii przechodzących przez wiele zadanych punktów, jedyną zmianą jest to, iż dla kolejnych położeń, zamiast czasów liczonych od początku trajektorii, zadawane są długości odcinków czasu pomiędzy nimi. Rozwiązując układ w ten sposób otrzymujemy równania: a =Q a = Q a = 3(Q Q k Q Q k a 3 = (Q Q + k Q + Q k 3 Dodatkowo, jeśli chwytak ma zatrzymywać się w kolejnych punktach, pozwala to na przyjęcie Q k = =, co dalej ułatwia układ. Daje to równania: a =Q a = Q Q a = 3(Q k Q a 3 = (Q Q k 3 Dzięki tym wzorom możemy wyznaczać już złożone trajektorie omijające przeszkody lub wykonujące bardziej zaawansowane zadania. Pozostaje, jednak jeszcze jeden szczegół. Na samym początku rozwiązaliśmy zadanie odwrotne kinematyki, aby móc podawać współrzędne punktów chwytaka w przestrzeni kartezjańskiej. Przydałaby się więc możliwość podawania również prędkości liniowych chwytaka (początkowej i końcowej zamiasątowych każdego członu z

osobna. Ponieważ, jak wiadomo, prędkość jest pochodną położenia po czasie, wyznaczmy wzory na pochodne współrzędnych położenia chwytaka. p x =cos(q l +cos(q l p y =sin (q l +sin(q l Pamiętając, że kąty i położenie są teraz zmienne w czasie, otrzymujemy: ṗ x = l q sin(q l ( q + q sin(q ṗ y =l q cos(q +l ( q + q cos(q co można zapisać macierzowo jako: [ ṗ x l cos(q +l cos(q ṗ y] [ = l sin(q l sin (q +q l sin(q +q l cos(q ] [, q q ]. W ogólności równanie zapisywane jest jako V =J (Q, l, l Q (tzw. jakobian, o wzorze ogólnym =[ δ p x δ p x δ q J δ q ]. δ p y δ p y δ q δ q. Macierz J to macierz Jacobiego Ponieważ prędkości liniowe mają być wartościami zadanymi, a kątowe wielkościami sterującymi, które musimy wyznaczyć, należy odwrócić równanie: Q=J (Q,l, l V. Zadania: MN: [plik MN.m] Kilka przykładów położeń manipulatora. Obliczenia zostały następnie zawarte w funkcji własnej zad_prost.m do użycia w kolejnych zadaniach. Przykład: kąty 8, -3 :

MN: [plik MN.m] Przykład pokazujący dwie konfiguracje manipulatora dające to samo położenie chwytaka. Obliczenia zostały następnie zawarte w funkcji własnej zad_odwr.m do użycia w kolejnych zadaniach. MN3: a [plik MN3_zad.m] Wyznaczenie trajektorii między dwoma punktami: b [plik MN3.m] Wyznaczenie trajektorii między punktami pod osią x (lecz nadal w przestrzeni roboczej

c [plik Zad3_4.m] Wyznaczenie trajektorii z określonymi prędkościami początkową i końcową. Wykres modułu prędkości liniowej: Niebieski moduł prędkości, Czerwony moduł prędkości końcowej, Zielony moduł prędkości początkowej

Wykres wartości kąta q (w stopniach od czasu - q(t: Wykres wartości kąta q (w stopniach od czasu - q(t:

d [plik Zad4.m] Wyznaczenie trajektorii przechodzącej przez wiele punktów z odpowiednimi prędkościami: Opis kodu: Zmienne l i l to długości ramion manipulatora. Zmienna tk to długość trwania całego ruchu manipulatora. Zmienne v, v, v, v3 oraz vk to wektory prędkości w kolejnych punktach (v początkowa, vk końcowa. Domyślnie dobrane zostały tak, by łatwo można było zweryfikować poprawność animacji. Zmienne p, p, p, p3, pk wektory zawierające współrzędne kolejnych punktów, które mają zostać osiągnięte przez manipulator. Następnie, używając funkcji własnej zad_odwr.m wyznaczane są dwie możliwe konfiguracje manipulatora dla każdego z punktów. Spośród nich wybierane są następnie te, które nie łamią założonych ograniczeń manipulatora (dowolne, jeśli oba są odpowiednie. Dalej, używając funkcji własnej jacob.m wyznaczane są jakobiany dla wybranych konfiguracji i od razu, na ich podstawie, wyznaczane wektory prędkości kątowych odpowiadające zadanym prędkościom liniowym w kolejnych punktach. Cała trajektoria liczona jest jako połączenie trajektorii pomiędzy kolejnymi punktami. Dla każdej pary, funkcją własną trajektd.m wyznaczane są współczynniki wielomianu trzeciego stopnia opisującego zależność kątów konfiguracyjnych od czasu. Przyjęto, że czasy przemieszczenia pomiędzy punktami są równe i wynoszą tk/4 =.5. Ponieważ wielomiany obliczane są przy użyciu uproszczonych wzorów (czas początkowy zawsze, podczas animacji wskaźnik pokazujący aktualną wartość czasu dla którego rysowana jest pozycja musi zostać zmniejszony tak, by dla każdej z czterech części trajektorii zaczynał liczenie od nowa. Stąd dla trajektorii, 3 i 4, zamiast używać t(i, gdzie i to aktualna klatka animacji, używane jest t(k, gdzie 'k' to 'i' pomniejszone o łączną ilość klatek animacji aż do pierwszej klatki aktualnie rysowanej trajektorii.