Bod, vektor, geometrie, algebra a A b v B Bod a vektor v geometrii a algebře Pojem bod v geometrii považuji a dostatečně námý a protože jeho definice není matematick snadná, nebudu ho definovat. Jen chci připomenout, že je dobré ho vnímat jako místo v prostoru, které eistuje neávisle na nějakých číslech. Pojem vektor v geometrii můžeme definovat jako uspořádanou dvojici bodů, počáteční a koncový bod. Značíme AB. V geometrii pak můžeme používat obrat jako bod A je průsečíkem kružnice k se středem v bodě B, procháející bodem C a přímk procháející bod D a E. Naše problém v robotice jsou svou podstatou geometrické problém (přinejmenším v kinematice). Velmi často potřebujeme repreentovat geometrii v počítači, který ale s geometrickými pojm přímo pracovat neumí. Matematická teorie lineárních prostorů nám umožňuje pracovat s matematickými objekt tpu uspořádaná n-tice čísel. Le ukáat, že pro geometrické a lineární prostor konečné dimene eistuje vájemně jednonačné obraení (isomorfismus) mei geometrickými a algebraickými objekt. Abchom mohli avést tento isomorfismus, musíme v geometrii avést souřadnicovou soustavu. Geometrický bod v prostoru pak můžeme totožnit s uspořádanou trojicí (vektorem, de algebraický pojem) reálných čísel, kde uvedená čísla popisují souřadnice geometrického bodu v dané souřadnicové soustavě. Takovému vektoru v geometrii říkáme polohový vektor bodu, jeho počáteční bod je počátek souřadnicového sstému, jeho koncový bod je pak repreentovaný geometrický bod. Lineární prostor tak tvoří univerální model geometrického prostoru a jeho pomocí můžeme repreentovat všechn vlastnosti geometrického prostoru a naopak. To, že geometrické pojm můžeme považovat a ákladní, ospravedlňuje například to, že geometrie bla matematik úspěšně pěstována přibližně let be potřeb avádění souřadnic. To, že eistuje isomorfismus, ale ároveň ukauje, že oba popis jsou v principu ekvivalentní a můžeme libovolně přecháet jednoho do druhého. Mei bod a vektor v geometrii můžeme avést řadu operací: dva bod definují vektor v = AB, bod a vektor definují bod A + v = B vektor le sčítat a odčítat b = a + v Tto operace platí be avedení souřadnicového sstému. Stejné operace můžeme avést v algebře mei uspořádanými trojicemi (n-ticemi) repreentující bod a vektor. Zápis vorců ástává stejný, jen operátor namenají něco jiného. Algebraické objekt v rovnicích správně repreentují geometrické objekt, pokud jsou všechn vjádřen ve stejné souřadnicové soustavě. Na volbě souřadnicové soustav přitom neáleží. Formálně budou popis geometrie algebraickými rovnicemi vžd stejné, číselně se liší v ávislosti na volbě souřadnicové soustav. K situaci, kd máme růné souřadnicové sstém, se dostaneme dále. RBTICS: Vladimír Smutný Slide, Page
Technická ponámka A v α B u C β α γ Běžný přístup pro určení parametrů trojúhelníku je používat kosinovou nebo sinovou větu, Pthagorovu větu a podobně. Tto vět a podobné vorce, jako například součet úhlů v trojúhelníku, je v analtické geometrii obtížné používat. Problém je v tom, že naleené řešení musíme interpretovat do příslušných kvadrantů, uměle vrábět další řešení, či naleená řešení testovat na splnění vstupních podmínek. To může být pracné a drojem řad chb, které se mohou projevit až při provou aříení. Niže uvádím některá doporučení, jak se chbám vhnout: Snažte se počítat souřadnice rohů trojúhelníků místo délek stran či velikostí úhlů v trojúhelníku. Používejte pro určení úhlů vorec φ = atan(, ) vžd, kdž je to možné. Vhýbejte se použití funkce arccos a podobně. Kdž počítáte úhl a souřadnice, načte je do obráků a interpretujte je vžd orientovaně. Takto spočítané úhl a souřadnice mohou být pak snadno sčítán a odčítán be nutnosti analý příslušné situace. Pokud pracujete s analtickým tvarem přímk, používejte tvar a + b + c =, který na rodíl od směrnicového tvaru = k + q bechbně pracuje ve všech kvadrantech. Výpočet úhlu mei osou a vektorem AB vnačeným na obráku. rientovaný, čtřkvadrantový úhel α le spočítat α = atan(b A, B A ). Nejrchlejší a nejbepečnější cesta, jak spočítat úhel β mei vektor v a u je následující: α = atan(b A, B A ), () γ = atan(c B, C B ), () β = γ α. () Srovnej běžný prací prášek. RBTICS: Vladimír Smutný Slide, Page
Technická ponámka II C u A w α δ v B β α γ Nechť máme dán souřadnice bodů A a C a délk vektorů v a u. Nejbepečnější cesta, jak určit souřadnice bodu B a příslušné úhl je místo použití kosinové vět a boje s úhlem δ nalét bod B jako průsečík dvou kružnic se střed v bodech A a C a příslušnými poloměr. Tím dostaneme pro bod B dvě řešení. Úhl pak spočítáme pomocí výše uvedených rovnic. RBTICS: Vladimír Smutný Slide, Page
Těleso v souřadnicovém sstému Těleso v rovině má DF. Těleso v prostoru má DF. Kontrolní oták: Kolik stupňů volnosti má skládací metr na stole? Kolik stupňů volnosti má gumička? Tuhé těleso v našem výkladu uvažujeme jen tuhá tělesa. S tuhým tělesem můžeme sváat souřadnicový sstém a polohu jednotlivých bodů tělesa v tomto souřadnicovém sstému pak náme, např. výkresu předmětu, kterým manipulujeme. Aktuální poloha tělesa v čase le ji popsat polohou souřadnicového sstému s tělesem sváaným v jiném, nepohblivém, světovém souřadnicovém sstému. Jak konkrétně popsat polohu tělesa bude ukááno dále. Pohb tělesa v čase můžeme popsat jako funkci aktuální poloh tělesa v ávislosti na čase. Vájemná poloha dvou souřadnicových soustav le vžd roložit na posun a otočení. Zvolíme souřadnicový sstém rámu. S tělesem svážeme souřadnicový sstém b b b. Popis souřadnicového sstému b b b v souřadnicovém sstému rámu je: = o = o o o (n, t, b). Utvořme matici R = (n, t, b), n, t, b jsou jednotkové a ortogonální vektor, matice R je ortonormální, ted R = R T. RBTICS: Vladimír Smutný Slide, Page
Popis poloh tělesa Bod v D prostoru popsán třemi souřadnicemi. Tuhé těleso v D prostoru popsáno šesti souřadnicemi: souřadnice referenčního bodu t =, orientace může být popsána jedním e působů: souřadnicemi vektorů spojených s tělesem (n, t, b), Eulerovými úhl (φ, θ, ψ), rotační maticí R, osou úhlem, kvaternionem, rotačním vektorem. Souřadnice referenčního bodu a rotační matice mohou být kombinován do transformační matice. Pro rotační matici srovnej heslo Eric W. Weisstein. Rotation Matri. From MathWorld A Wolfram Web Resource. http://mathworld.wolfram.com/rotationmatri.html Převodní vtah jsou přehledně na stránce http://www.euclideanspace.com/maths/geometr /rotations/conversions/inde.htm Je třeba dávat poor na použité definice, ab se nesmíchali vorce používající růnou notaci. RBTICS: Vladimír Smutný Slide, Page
sa úhel, kvaternion a rotační vektor S p r s P θ r P Eulerova věta o rotaci říká, že každá rotace ve D le repreentovat jako rotace okolo určité os s o určitý úhel θ. Tuto dvojici (s, θ) naýváme osa úhel. Kvaternion popisují rotaci pomocí poloh os rotace s a úhlu otočení θ takto: q = (cos(θ/), sin(θ/)s T ) = (cos(θ/), sin(θ/)s, sin(θ/)s, sin(θ/)s ) Rotační vektor vužívá skutečnosti, že směrový vektor s definující osu rotace je jednotkový a má ted jen dva stupně volnosti. Rotaci ted můžeme vjádřit vektorem délk tři: v = (θs). Rodriguesův vorec: / r = r cos θ + (s r ) sin θ + s(s r )( cos θ) R = I cos θ + [s] sin θ + ss T ( cos θ) Kvaternion jsou ajímavý matematický nástroj. Mei jejich důležité vlastnosti patří všechn souřadnice mají ekvivalentní postavení, q a q popisují stejnou rotaci, v kvaternionech je relativně jednoduché interpolovat rotaci. Úlohu interpolovat rotaci (např. pro manipulaci v robotice nebo pro viualiaci v počítačové grafice) le snadno řešit pomocí kvaternionů. Metoda se naývá Spherical linear interpolation (SLERP). Interpolujeme q do q a dostáváme q, interpolační parametr je t, α repreentuje celkový úhel, o který rotujeme (úhel mei kvaternion je polovina tohoto úhlu, absolutní hodnota skalárního součinu nám garantuje kratší rotaci): Srovnej Eric W. Weisstein. Quaternion. From MathWorld A Wolfram Web Resource. http://mathworld.wolfram.com/quaternion.html Interpolace v soustavě osa-úhel je rotace okolo dané os, přičemž úhel se mění lineárně od do θ. Rotační vektor je neredundantní a má dobrou topologii takže je hodně používán například v počítačovém vidění při odhadování rotace. Dobrá topologie namená, že blíké vektor (jejich rodíl je malý) repreentují podobné rotace. Rotační vektor spojitě repreentuje rotaci i v okolí nul, atímco repreentaci malých rotací odpovídají silně nespojité Eulerov úhl. Rodriguesův vorec umožňuje vpočítat otočený vektor r nebo jeho koncový bod P při nalosti repreentace osa-úhel. Upravený vorec pak dává návod na výpočet rotační matice repreentace osa-úhel. pačnou transformace je: q = (q q )t q, () q = sin(( t)α) q + sin(tα) sin(α) sin(α) q, () cos(α/) = q q, () t <, >. () ( ) trace(r ) θ = arccos () r, r, s = r, r, () sin θ r, r, RBTICS: Vladimír Smutný Slide, Page
Definice Eulerových úhlů precese nutace rotace Eulerov úhl Matice R má devět koeficientů, ale má hodnost poue tři. Je ted redundantní repreentací, omeující podmínk jsou právě jednotkovost a kolmost vektorů n, t, b: n T t = t T b = b T n = n = t = b = Matici R le snadno konstruovat pomocí Eulerových úhlů. točme souřadnicový sstém okolo os o úhel φ. Dostaneme.. točme souřadnicový sstém okolo os o úhel θ. Dostaneme.. točme souřadnicový sstém okolo os o úhel ψ. Dostaneme b b b. R = R (φ)r (θ)r (ψ) R = R (φ) = R (θ) = R (ψ) = cos φ sin φ sin φ cos φ cos θ sin θ sin θ cos θ cos ψ sin ψ sin ψ cos ψ () () () [ cos φ cos ψ cos θ sin φ sin ψ cos θ cos ψ sin φ cos φ sin ψ sin φ sin θ cos ψ sin φ + cos φ cos θ sin ψ cos φ cos θ cos ψ sin φ sin ψ cos φ sin θ sin θ sin ψ cos ψ sin θ cos θ () Trojice Eulerových úhlů dává jednonačně otočení v prostoru, poloha v prostoru nedává jednonačně trojici úhlů. Eistují další podobné definice, které mají podobné vlastnosti, ale jiné rovnice. Jestliže je dána matice R, le Eulerov úhl vpočítat porovnání prvků r, r, r. ] RBTICS: Vladimír Smutný Slide, Page
Rotation Matri Resulting from Euler Angles Eulerov úhl podle definice v těchto přednáškách (Asada, Slotine): cos ϕ cos ψ cos ϑ sin ϕ sin ψ cos ϑ cos ψ sin ϕ cos ϕ sin ψ sin ϑ sin ϕ cos ψ sin ϕ + cos ϑ cos ϕ sin ψ cos ϑ cos ϕ cos ψ sin ϕ sin ψ cos ϕ sin ϑ sin ϑ sin ψ cos ψ sin ϑ cos ϑ / Rotační matice definována úhl Yaw, Pitch, Roll použitými například v robotu CRS, ted rotujeme postupně okolo,, : cos α cos β cos α sin β sin γ cos γ sin α cos α cos γ sin β + sin α sin γ cos β sin α cos α cos γ + sin α sin β sin γ cos γ sin α sin β cos α sin γ sin β cos β sin γ cos β cos γ Jak vpočítat e námé rotační matice Eulerov úhl Mějme námou matici R ( ) a smbolickou matici, která vnikla složením tří rotací definovaných třemi úhl. Máme najít tto tři úhl. Smbolická matice, která vnikla rotacemi okolo kolmých os má vláštní tvar, podobný maticím na výše uvedeném slidu. Máme ted řešit rovnici podobnou (ne nutně stejnou) jako rovnice () se třemi nenámými φ, θ, ψ. Nejdříve je nutné najít v smbolické matici prvek, který je funkcí jen jedné proměnné (v našem případe je to monom). Tento prvek (v příkladu na třetím řádku ve třetím sloupci) je ve tvaru buď ± cos nebo ± sin. Tento prvek může být přímo použit k naleení hodnot první nenámé. Ponamenejme, že obecně jsou v každém intervalu délk π dvě řešení. Kdž je určen první úhel, další mohou být určen pomocí funkce atan porovnáním elementů v řádku a sloupci, v kterém se nacháí pivot. Je nutné ošetřit situaci, kd pivot v konstantní matici má hodnotu blíkou ±. Jedná se o degenerovaný případ, kd v každém intervalu délk π máme jen jedno řešení. Dalším problémem v této situaci je, že prvk ve sloupci a řádku pivota nele použít pro určení dalších nenámých, protože konstantní matice obsahuje nul. Soustředíme se ted na blou podmatici a dosadíme již vpočtenou proměnnou. Zjistíme, že daná podmatice je funkcí součtu nebo rodílu nenámých a tak dostáváme obecně jednodimenionální množinu řešení. Při smbolickém řešení můžeme vjádřit tuto množinu. Pokud úlohu řešíme numerick, můžeme například jeden úhel afiovat (např. ). becně bchom měli vužít další omeení daná úlohou. V robotice tato situace tpick indikuje singulární řešení, např. požadavek kontinuit trajektorie nám napovídá, že máme jistit polohu ramene před daným bodem a požadovaný pohb po průchodu daným bodem. Jinou situací, kterou je nutné ošetřit, jsou problém spojené s nepřesností měření nebo výpočtů. T mohou například působit, že prvk v konstantní matici budou větší než a podobně. RBTICS: Vladimír Smutný Slide, Page
Jiné sstém popisu orientace třemi úhl RBTICS: Vladimír Smutný Slide, Page
Srovnání popisů rotace Sstém Smbol Ekvivalent Par. Podmínk Matice rotace R orthonormální Vektor os n, t, b R vektor jednotkové, navájem kolmé Eulerov úhl φ, θ, ψ aw, pitch, roll,... sa, úhel s, θ jednotkový vektor Kvaternion q osa, úhel jednotkový vektor Vektor rotace v osa, úhel Sstém Výhod Nevýhod Užíván R snadné výpočt poloh redundantní Matlab toolbo n, t, b sroumitelný redundantní φ, θ, ψ neredundantní složitá topologie Mitsubishi Staubli, CRS s, θ sroumitelný redundantní snadná interpolace q snadná interpolace redundantní ABB v dobrá topologie odhadování rotace neredundantní RBTICS: Vladimír Smutný Slide, Page
Transformace souřadnic p t b n P p u A t w v B Známe souřadnice (polohu) bodu P v souřadnicovém sstému u : P = p = v a hledáme polohu v w souřadnicovém sstému : P = p =. Pravý dolní inde se většinou vtahuje k souřadnicovému sstému, ke kterému daný element patří. Pravý horní inde říká, v kterém souřadnicovém sstému jsou souřadnice elementu vjádřen. Například počátek souřadnicového sstému (bod) má souřadnice v souřadnicovém sstému : = (,, ) T, ale v souřadnicovém sstému má souřadnice = t. Geometrick: Algebraick: Přepsáno: P = + A + AB + BP. P = p = t + un + vt + wb. brácená transformace: p = t + Rp. p = R T t + R T p. RBTICS: Vladimír Smutný Slide, Page
Homogenní souřadnice Pe Ph Homogenní souřadnice Zaveďme homogenní souřadnice takto: Euklidovské (metrické) Homogenní - projektivní = = = /w /w /w neeistuje (nevlastní bod) = w = w Le snadno ukáat, že v homogenních souřadnicích: kde A je matice : Inverní matice: A = A = = A b, [ R t ] [ R T R T t ] RBTICS: Vladimír Smutný Slide, Page
Posloupnost transformací souřadnic P a b pa p b p b c c a a t a b b t c c c Transformace přes více souřadnicových sstémů v euklidovských souřadnicích a v homogenních souřadnicích: P a = p a a = A a b A b cp c c = A a b A b cp c P a = p a a = t a + R a b p b b = t a + R a b (t b + R b cp c c) P = A A A A... A n n P n. () RBTICS: Vladimír Smutný Slide, Page