Čtveřice a prostorová rotace - Quaternions and spatial rotation
Jednotka čtveřice, také známý jako versors, poskytnout pohodlné matematický zápis pro reprezentaci prostoru orientace a rotace předmětů ve třech rozměrech. Ve srovnání s Eulerovy úhly jsou jednodušší komponovat a vyhnout se problému kardanový zámek. Ve srovnání s rotační matice jsou kompaktnější, více numericky stabilní a efektivnější. Čtvrtiny mají aplikace v počítačová grafika,[1] počítačové vidění, robotika,[2] navigace, molekulární dynamika, letová dynamika,[3] orbitální mechanika z satelity[4] a krystalografická struktura analýza.[5]
Pokud se používá k reprezentaci rotace, nazývají se také čtverce jednotek rotační čtveřice protože představují Skupina 3D rotace. Když se používá k reprezentaci orientace (rotace vzhledem k referenčnímu souřadnicovému systému), jsou voláni orientační čtveřice nebo čtveřice postojů. Rovnici pro prostorové rotace lze shrnout pro radiány kolem jednotkové osy jako čtveřice kde a .
Úvod
Čtveřice
The komplexní čísla lze definovat zavedením abstraktního symbolu i který splňuje obvyklá pravidla algebry a navíc pravidlo i2 = −1. To stačí k reprodukci všech pravidel aritmetiky komplexního čísla: například:
Stejným způsobem lze čtveřice definovat zavedením abstraktních symbolů i, j, k které splňují pravidla i2 = j2 = k2 = já j k = −1 a obvyklá algebraická pravidla až na komutativní zákon násobení (známým příkladem takového nekomutativního násobení je násobení matic ). Z toho vyplývají všechna pravidla čtveřičné aritmetiky, například pravidla pro násobení čtvercových základních prvků. Pomocí těchto pravidel lze ukázat, že:
Fiktivní část čtveřice se chová jako vektor ve trojrozměrném vektorovém prostoru a skutečné části A chová se jako skalární v R. Když se čtverce používají v geometrii, je pohodlnější je definovat jako skalární plus vektor:
Některým by se mohlo zdát divné přidat a číslo do a vektor, protože jsou objekty velmi odlišné povahy, nebo násobit dva vektory společně, protože tato operace není obvykle definována. Pokud si však člověk pamatuje, že jde o pouhý zápis skutečných a imaginárních částí čtveřice, stává se legitimnějším. Jinými slovy, správným uvažováním je přidání dvou čtveřic, jednoho s nulovou vektorovou / imaginární částí a druhého s nulovou skalární / skutečnou částí:
Můžeme vyjádřit násobení čtveřice v moderním jazyce vektoru přejít a tečkované výrobky (které byly vlastně vlastně inspirovány čtveřicemi [6]). Při vynásobení vektorové / imaginární části místo pravidel i2 = j2 = k2 = ijk = −1 máme pravidlo pro násobení čtveřice:
kde:
- je výsledný čtveřice,
- je vektorový součinový produkt (vektor),
- je vektorový skalární součin (skalární).
Násobení čtveřic je nekomutativní (kvůli křížovému součinu, který bojuje proti dojíždění), zatímco násobení skalárem a skalárem a vektorem je dojíždění. Z těchto pravidel okamžitě vyplývá, že (zobrazit podrobnosti ):
(Levý a pravý) multiplikativní inverzní nebo reciproční nenulový čtveřice je dán poměrem konjugátu k normě (zobrazit podrobnosti ):
jak lze ověřit přímým výpočtem.
Identita rotace čtveřice
Nechat být jednotkovým vektorem (osa otáčení) a nechat . Naším cílem je ukázat to
získá vektor otočeno o úhel kolem osy . Rozšiřujeme se, máme
kde a jsou komponenty proti→ kolmo a rovnoběžně s u→ resp. To je vzorec rotace podle okolo u→ osa.
Použití čtveřice jako rotace
V trojrozměrném prostoru, podle Eulerova věta o rotaci, jakákoli rotace nebo sekvence rotací tuhého tělesa nebo souřadného systému kolem pevného bodu je ekvivalentní jedné rotaci o daný úhel kolem pevné osy (tzv Eulerova osa), který prochází pevným bodem. Osa Euler je obvykle reprezentována a jednotkový vektor u→. Libovolnou rotaci ve třech rozměrech lze proto reprezentovat jako kombinaci vektoruu→ a skalární . Quaternions poskytují jednoduchý způsob, jak to zakódovat reprezentace osového úhlu ve čtyřech číslech a lze je použít k aplikování odpovídající rotace na a vektor polohy, představující a směřovat ve vztahu k původ v R3.
A Euklidovský vektor jako (2, 3, 4) nebo (AX, Ay, Az) lze přepsat jako 2 i + 3 j + 4 k nebo AX i + Ay j + Az k, kde i, j, k jsou jednotkové vektory představující tři Kartézské osy. Otočení o úhel kolem osy definované jednotkovým vektorem
může být reprezentován čtveřicí. To lze provést pomocí rozšíření z Eulerův vzorec:
Je možné ukázat, že požadovanou rotaci lze použít na běžný vektor v trojrozměrném prostoru, který je vyhodnocen jako čtveřice se skutečnou souřadnicí rovnou nule časování zstr podleq:
za použití Produkt Hamilton, kde str′ = (strX′, stry′, strz′) je nový poziční vektor bodu po rotaci. V programové implementaci je toho dosaženo konstrukcí čtveřice, jejíž vektorová část je str a skutečná část se rovná nule a poté se provede násobení čtveřice. Vektorová část výsledného čtveřice je požadovaný vektor str′.
Matematicky tato operace nese soubor ze všech „čistých“ čtveřic str (ty, jejichž skutečná část se rovná nule) - které tvoří trojrozměrný prostor mezi čtveřicemi - do sebe, požadovanou rotací kolem osy u, o úhel θ. (Každý skutečný čtveřice je touto operací přenesen do sebe. Ale pro účely rotací v trojrozměrném prostoru ignorujeme skutečné čtveřice.)
Rotace je ve směru hodinových ručiček, pokud naše přímá viditelnost směřuje stejným směrem jako u→.
V tomto případě q je jednotka čtveřice a
Z toho vyplývá, že konjugace součinem dvou čtveřic je složení konjugací těchto čtveřic: str a q jsou jednotkové čtveřice, pak rotace (konjugace) opq je
- ,
což je stejné jako otáčení (konjugace) pomocíq a potéstr. Skalární složka výsledku je nutně nulová.
Čtvrtek inverzní rotace je opačná rotace, protože . Čtverec rotace čtveřice je rotace o dvojnásobek úhlu kolem stejné osy. Obecněji qn je rotace on krát úhel kolem stejné osy jako q. To lze rozšířit na libovolné skutečné numožňující hladkou interpolaci mezi prostorovými orientacemi; vidět Slerp.
Dva rotační čtveřice lze kombinovat do jednoho ekvivalentního čtveřice vztahem:
ve kterém q′ odpovídá rotaci q1 následuje rotace q2. (Všimněte si, že násobení čtveřic není komutativní.) Lze tedy sestavit libovolný počet rotací dohromady a poté je použít jako jednu rotaci.
Příklad
Konjugační operace
Konjugace str podle q odkazuje na operaci str ↦ qpq−1.
Zvažte rotaci F kolem osy , s úhlem otáčení 120 °, nebo 2π/3 radiány.
Délka proti→ je √3, poloviční úhel je π/3 (60 °) s kosinus 1/2, (cos 60 ° = 0,5) a sinus √3/2, (hřích 60 ° ≈ 0,866). Máme tedy do činění s konjugací jednotkového čtveřice
Li F je funkce rotace,
Lze dokázat, že inverze jednotkového čtveřice se získá jednoduše změna znamení jejích imaginárních komponent. Jako následek,
a
To lze zjednodušit pomocí běžných pravidel pro čtvercovou aritmetiku
Podle očekávání rotace odpovídá zachování a krychle držen pevně v jednom bodě a otočit jej o 120 ° kolem dlouhé úhlopříčky přes pevný bod (pozorujte, jak jsou tři osy cyklicky permutované ).
Rotační matice odvozená od čtveřice
Rotace čtveřice (s ) lze algebraicky manipulovat do a rotace matice , kde R je rotační matice dána:[7]
Tady a pokud q je čtveřice jednotek,
Toho lze dosáhnout pomocí vektorový počet a lineární algebra pokud vyjádříme a tak jako skalární a vektorové části a použijte vzorec pro operaci násobení v rovnici . Pokud píšeme tak jako , tak jako a tak jako , kde , naše rovnice se změní na . Použitím vzorce pro násobení dvou čtveřic, které jsou vyjádřeny jako skalární a vektorová část,
tuto rovnici lze přepsat na
kde označuje vnější produkt, je matice identity a je transformační matice, která při násobení zleva vektorem dává křížový produkt .
Od té doby , můžeme identifikovat tak jako , což by při expanzi mělo vyústit ve výraz napsaný výše v matici.
Obnova reprezentace osového úhlu
Výraz otočí libovolné vektor čtveřice kolem osy dané vektorem o úhel , kde a záleží na čtveřici .
a lze najít z následujících rovnic:
kde je dvou argumentů arkustangens. Je třeba postupovat opatrně, když se čtveřice přiblíží a skalární, protože kvůli zvrhlost osa rotace identity není přesně definována.
Složení prostorových rotací
Výhoda čtveřice formulace složení dvou rotací RB a R.A je to, že poskytuje přímo osa otáčení a úhel složené rotace RC= R.BRA.
Nechte z ní sestrojit čtveřici spojenou s prostorovou rotací R. osa otáčení S s úhlem otáčení φ kolem této osy. Přidružený čtveřice je dána,
Pak složení rotace RB s R.A je rotace RC= R.BRA s osou otáčení a úhlem definovaným součinem čtveřic
to je
Rozbalte tento produkt a získejte
Vydělte obě strany této rovnice identitou, kterou je zákon kosinů na kouli,
a počítat
Toto je Rodriguesův vzorec pro osu složené rotace definovanou z hlediska os obou rotací. Tento vzorec odvodil v roce 1840 (viz strana 408).[8]
Tři rotační osy A, B, a C tvoří sférický trojúhelník a vzepětí mezi rovinami tvořenými stranami tohoto trojúhelníku jsou definovány úhly rotace. Hamilton[9] představil komponentní formu těchto rovnic, která ukazuje, že kvaternionový produkt počítá třetí vrchol sférického trojúhelníku ze dvou daných vrcholů a jejich přidružených délek oblouku, což také definuje algebru pro body v Eliptická geometrie.
Normalizovaná osa otáčení, odstranění z rozšířeného produktu opouští vektor, který je osou otáčení, krát nějakou konstantu. Měli byste být opatrní, když je nebo kde je vektor blízko .
konečně normalizace osy otáčení:.
Diferenciace vzhledem k rotačnímu čtveřici
Otočený čtveřice p '= q p q−1 je třeba rozlišovat s ohledem na rotující čtveřice q, kdy je rotace odhadnuta z numerické optimalizace. Odhad úhlu rotace je základním postupem při registraci 3D objektů nebo kalibraci kamery. Derivát lze vyjádřit pomocí Maticový počet notace.
Derivaci najdete v.[10]
Operace rotace čtveřic
Velmi formální vysvětlení vlastností použitých v této části podává Altman.[11]
Hypersféra rotací
Vizualizace prostoru rotací
Čtverečky jednotek představují skupina euklidovský rotace v tři rozměry velmi přímočarým způsobem. Soulad mezi rotacemi a čtveřicemi lze pochopit nejprve vizualizací samotného prostoru rotací.
Aby bylo možné vizualizovat prostor rotací, pomůže zvážit jednodušší případ. Jakékoli rotace ve třech rozměrech lze popsat rotací některými úhel o některých osa; pro naše účely použijeme osu vektor založit předání pro náš úhel. Zvažte speciální případ, ve kterém osa otáčení leží v xy letadlo. Potom můžeme určit osu jedné z těchto rotací o bod na kružnici, kterým prochází vektor, a můžeme vybrat poloměr kruhu k označení úhel otáčení.
Podobně rotace, jejíž osa rotace leží v xy rovinu lze popsat jako bod na kouli o pevný poloměr dovnitř tři rozměry. Počínaje severním pólem koule v trojrozměrném prostoru určíme bod na severním pólu jako rotaci identity (rotace nulového úhlu). Stejně jako v případě rotace identity není definována žádná osa rotace a úhel rotace (nula) je irelevantní. Rotaci, která má velmi malý úhel rotace, lze určit řezem sférou rovnoběžnou s xy letadlo a velmi blízko severního pólu. Kruh definovaný tímto řezem bude velmi malý, což odpovídá malému úhlu rotace. Jak se úhly rotace zvětšují, řez se pohybuje v záporném směru z směru a kruhy se zvětšují, dokud není dosaženo rovníku koule, což bude odpovídat úhlu rotace 180 stupňů. Pokračováním na jih se nyní poloměry kruhů zmenšují (což odpovídá absolutní hodnotě úhlu rotace považované za záporné číslo). Nakonec, když je dosaženo jižního pólu, kruhy se ještě jednou zmenší na rotaci identity, která je také specifikována jako bod na jižním pólu.
Všimněte si, že tato charakteristika může vidět řadu charakteristik takových rotací a jejich reprezentací. Prostor rotací je spojitý, každá rotace má sousedství rotací, které jsou téměř stejné, a toto sousedství se při zmenšování sousedství stává ploché. Každá rotace je také ve skutečnosti reprezentována dvěma antipodálními body na kouli, které jsou na opačných koncích čáry procházející středem koule. To odráží skutečnost, že každá rotace může být reprezentována jako rotace kolem nějaké osy, nebo ekvivalentně jako negativní rotace kolem osy směřující v opačném směru (tzv. dvojitý kryt ). „Zeměpisná šířka“ kruhu představujícího určitý úhel rotace bude polovinou úhlu představovaného touto rotací, protože při pohybu bodu od severního k jižnímu pólu se zeměpisná šířka pohybuje v rozmezí od nuly do 180 stupňů, zatímco úhel rotace rozmezí od 0 do 360 stupňů. („Zeměpisná délka“ bodu pak představuje konkrétní osu rotace.) Všimněte si však, že tato sada rotací není ve složení uzavřena. Dvě po sobě jdoucí rotace s osami v xy rovina nemusí nutně poskytovat rotaci, jejíž osa leží v xy rovina, a proto ji nelze reprezentovat jako bod na kouli. To nebude případ obecné rotace ve 3 prostoru, ve které rotace tvoří uzavřenou množinu pod kompozicí.
Tuto vizualizaci lze rozšířit na obecnou rotaci v trojrozměrném prostoru. Otočení identity je bod a malý úhel otáčení kolem některé osy lze reprezentovat jako bod na kouli s malým poloměrem. Jak úhel rotace roste, koule roste, dokud úhel rotace nedosáhne 180 stupňů, přičemž se koule začne zmenšovat a stane se bodem, když se úhel blíží 360 stupňům (nebo nula stupňů od záporného směru). Tato sada rozšiřujících a uzavírajících sfér představuje a hypersféra ve čtyřrozměrném prostoru (3 koule). Stejně jako v jednodušším příkladu výše je každá rotace představovaná jako bod v hypersféře porovnána se svým antipodálním bodem v této hypersféře. „Zeměpisná šířka“ na hypersféře bude polovinou odpovídajícího úhlu rotace a okolí libovolného bodu se stane „plošší“ (tj. Bude představováno trojrozměrným euklidovským prostorem bodů), jak se sousedství zmenšuje. Tomuto chování odpovídá množina jednotkových čtveřic: Obecný čtveřice představuje bod ve čtyřrozměrném prostoru, ale jeho omezení, že má jednotkovou velikost, poskytuje trojrozměrný prostor ekvivalentní povrchu hypersféry. Velikost jednotkového čtveřice bude jednota odpovídající hypersféře poloměru jednotky. Vektorová část čtveřice jednotek představuje poloměr 2-koule odpovídající ose otáčení a její velikost je kosinus poloviny úhlu otáčení. Každá rotace je reprezentována dvěma jednotkovými čtveřicemi opačného znaménka, a stejně jako v prostoru rotací ve třech rozměrech, produkt čtveřice dvou jednotkových čtveřic získá jednotkový čtveřici. Prostor čtveřic jednotek je také „plochý“ v jakémkoli nekonečně malém sousedství daného čtveřice jednotek.
Parametrizace prostoru otáčení
Můžeme parametrizovat povrch koule se dvěma souřadnicemi, jako je zeměpisná šířka a délka. Zeměpisná šířka a délka jsou ale špatně vychované (degenerovat ) na severním a jižním pólu, i když se póly neodlišují od ostatních bodů koule. U pólů (zeměpisné šířky + 90 ° a -90 °) se zeměpisná délka stává bezvýznamnou.
Je možné ukázat, že žádný dvouparametrový souřadný systém se takové degeneraci nemůže vyhnout. Těmto problémům se můžeme vyhnout vložením koule do trojrozměrného prostoru a jeho parametrizací třemi kartézskými souřadnicemi (w, X, y), umístění severního pólu na (w, X, y) = (1, 0, 0), jižní pól v (w, X, y) = (−1, 0, 0)a rovník v w = 0, X2 + y2 = 1. Body na kouli splňují omezení w2 + X2 + y2 = 1, takže stále máme jen dva stupně svobody i když existují tři souřadnice. Bod (w, X, y) na kouli představuje rotaci v běžném prostoru kolem vodorovné osy směrované vektorem (X, y, 0) o úhel .
Stejným způsobem lze hypersférický prostor 3D rotací parametrizovat třemi úhly (Eulerovy úhly ), ale jakákoli taková parametrizace je v některých bodech hypersféry zdegenerována, což vede k problému kardanový zámek. Tomu se můžeme vyhnout použitím čtyř euklidovských souřadnic w, X, y, z, s w2 + X2 + y2 + z2 = 1. Bod (w, X, y, z) představuje rotaci kolem osy směrované vektorem (X, y, z) o úhel
Vysvětlení vlastností čtveřice s rotacemi
Nekomutativita
Násobení čtveřic je nekomutativní. Tato skutečnost vysvětluje, jak str ↦ q p q−1 vzorec může vůbec fungovat, mít q q−1 = 1 podle definice. Vzhledem k tomu, že násobení čtverců jednotek odpovídá složení trojrozměrných rotací, lze tuto vlastnost učinit intuitivní ukázáním, že trojrozměrné rotace nejsou obecně komutativní.
Postavte vedle sebe dvě knihy. Otočte jeden z nich o 90 stupňů ve směru hodinových ručiček kolem z osu, pak ji otočte o 180 stupňů kolem X osa. Vezměte druhou knihu a otočte ji o 180 ° X osa první a 90 ° ve směru hodinových ručiček kolem z později. Tyto dvě knihy nekončí paralelně. To ukazuje, že složení dvou různých rotací kolem dvou odlišných prostorových os obecně nebude dojíždět.
Orientace
The vektorový křížový produkt, který se používá k definování reprezentace osového úhlu, uděluje orientace ("předání") do vesmíru: v trojrozměrném vektorovém prostoru tři vektory v rovnici A × b = C bude vždy tvořit sadu pro praváky (nebo sadu pro leváky, v závislosti na tom, jak je definován křížový součin), čímž fixuje orientaci ve vektorovém prostoru. Alternativně je závislost na orientaci vyjádřena odkazem na takovou u→ , který určuje rotaci axiální vektory. V kvaternionickém formalismu volba orientace prostoru odpovídá řádu násobení: ij = k ale ji = −k. Pokud jeden obrátí orientaci, stane se výše uvedený vzorec str ↦ q−1 p q, tj. jednotka q je nahrazen konjugovaným čtveřicí - stejné chování jako u axiálních vektorů.
Alternativní konvence
Uvádí se v [12] že existence a pokračující používání alternativní konvence čtveřice v letectví a v menší míře i v robotické komunitě významné a průběžné náklady [sic ]. Tuto alternativní konvenci navrhuje Shuster M. D. v [13], a odchyluje se od tradice obrácením definice pro znásobení čtvercových základních prvků tak, že podle Shusterovy konvence zatímco Hamiltonova definice je .
Podle Shusterovy konvence je vzorec pro násobení dvou čtveřic změněn tak, že
Vzorec pro rotaci vektoru čtveřicí je změněn tak, aby byl
Chcete-li identifikovat změny podle Shusterovy konvence, zkontrolujte, zda je znaménko před křížovým produktem převráceno z plus na mínus.
Nakonec je změněn vzorec pro převod čtveřice na rotační matici
což je přesně transpozice rotační matice převedená podle tradiční konvence.
V následující tabulce jsou seskupeny aplikace podle jejich dodržování konvenci čtveřice
Použité softwarové aplikace
Hamiltonova konvence násobení | Shusterova multiplikační konvence |
---|---|
| Microsoft DirectX Matematická knihovna |
Zatímco použití jedné z konvencí nemá vliv na schopnost ani správnost takto vytvořených aplikací, autoři [14] tvrdil, že Shusterova konvence by měla být opuštěna, protože se odchyluje od mnohem starší konvence násobení čtveřic Hamiltonem a nemusí být nikdy přijata v oblastech matematické nebo teoretické fyziky.
Srovnání s jinými reprezentacemi rotací
Výhody čtveřic
Reprezentace rotace jako čtveřice (4 čísla) je kompaktnější než reprezentace jako ortogonální matice (9 čísel). Kromě toho lze pro danou osu a úhel snadno sestrojit odpovídající čtverce a naopak pro daný čtveřice lze snadno odečíst osu a úhel. Oba jsou mnohem těžší s maticemi nebo Eulerovy úhly.
v videohry a další aplikace se často zajímají o „plynulé otáčení“, což znamená, že scéna by se měla otáčet pomalu a ne v jediném kroku. Toho lze dosáhnout výběrem a křivka tak jako sférická lineární interpolace in the quaternions, with one endpoint being the identity transformation 1 (or some other initial rotation) and the other being the intended final rotation. This is more problematic with other representations of rotations.
When composing several rotations on a computer, rounding errors necessarily accumulate. A quaternion that is slightly off still represents a rotation after being normalized: a matrix that is slightly off may not be ortogonální any more and is harder to convert back to a proper orthogonal matrix.
Quaternions also avoid a phenomenon called kardanový zámek which can result when, for example in pitch/yaw/roll rotational systems, the pitch is rotated 90° up or down, so that yaw and roll then correspond to the same motion, and a degree of freedom of rotation is lost. V kardanový -based aerospace inerciální navigační systém, for instance, this could have disastrous results if the aircraft is in a steep dive or ascent.
Conversion to and from the matrix representation
From a quaternion to an orthogonal matrix
The ortogonální matice corresponding to a rotation by the unit quaternion z = A + b i + C j + d k (s | z | = 1) when post-multiplying with a column vector is given by
This rotation matrix is used on vector w tak jako . The quaternion representation of this rotation is given by:
kde is the conjugate of the quaternion , dána
Also, quaternion multiplication is defined as (assuming a and b are quaternions, like z above):
where the order a,b is important since the cross product of two vectors is not commutative.
From an orthogonal matrix to a quaternion
One must be careful when converting a rotation matrix to a quaternion, as several straightforward methods tend to be unstable when the stopa (sum of the diagonal elements) of the rotation matrix is zero or very small. For a stable method of converting an orthogonal matrix to a quaternion, see the Quaternion subsection of the Rotační matice článek.
Fitting quaternions
The above section described how to recover a quaternion q od a 3×3 rotační matice Q. Suppose, however, that we have some matrix Q that is not a pure rotation—due to chyby zaokrouhlování, for example—and we wish to find the quaternion q that most accurately represents Q. In that case we construct a symmetric 4×4 matice
a najděte vlastní vektor (X, y, z, w) corresponding to the largest eigenvalue (that value will be 1 if and only if Q is a pure rotation). The quaternion so obtained will correspond to the rotation closest to the original matrix Q[pochybný ].[15]
Performance comparisons
This section discusses the performance implications of using quaternions versus other methods (axis/angle or rotation matrices) to perform rotations in 3D.
Výsledek
Metoda | Úložný prostor |
---|---|
Rotační matice | 9 |
Čtveřice | 3 or 4 (see below) |
Angle/axis | 3 or 4 (see below) |
Only three of the quaternion components are independent, as a rotation is represented by a unit quaternion. For further calculation one usually needs all four elements, so all calculations would suffer additional expense from recovering the fourth component. Likewise, angle/axis can be stored in a three-component vector by multiplying the unit direction by the angle (or a function thereof), but this comes at additional computational cost when using it for calculations.
Metoda | # multiplies | # add/subtracts | celkový počet operací |
---|---|---|---|
Rotation matrices | 27 | 18 | 45 |
Čtveřice | 16 | 12 | 28 |
Metoda | # multiplies | # add/subtracts | # sin/cos | celkový počet operací | |
---|---|---|---|---|---|
Rotační matice | 9 | 6 | 0 | 15 | |
Quaternions * | Without intermediate matrix | 15 | 15 | 0 | 30 |
Quaternions * | With intermediate matrix | 21 | 18 | 0 | 39 |
Angle/axis | Without intermediate matrix | 18 | 13 | 2 | 30 + 3 |
Angle/axis | With intermediate matrix | 21 | 16 | 2 | 37 + 2 |
* Note: Quaternions can be implicitly converted to a rotation-like matrix (12 multiplies and 12 add/subtracts), which levels the following vectors rotating cost with the rotation matrix method
Used methods
There are three basic approaches to rotating a vector proti→:
- Compute the matrix product of a 3×3 rotační matice R and the original 3×1 sloupec matrix representing proti→. This requires 3 × (3 multiplications + 2 additions) = 9 multiplications and 6 additions, the most efficient method for rotating a vector.
- A rotation can be represented by a unit-length quaternion q = (w, r→) with scalar (real) part w and vector (imaginary) part r→. The rotation can be applied to a 3D vector proti→ via the formula . This requires only 15 multiplications and 15 additions to evaluate (or 18 multiplications and 12 additions if the factor of 2 is done via multiplication.) This formula, originally thought to be used with axis/angle notation (Rodrigues' formula), can also be applied to quaternion notation. This yields the same result as the less efficient but more compact formula of quaternion multiplication .
- Použijte angle/axis formula to convert an angle/axis to a rotační matice R then multiplying with a vector, or, similarly, use a formula to convert quaternion notation to a rotation matrix, then multiplying with a vector. Converting the angle/axis to R costs 12 multiplies, 2 function calls (sin, cos), and 10 add/subtracts; from item 1, rotating using R adds an additional 9 multiplications and 6 additions for a total of 21 multiplies, 16 add/subtracts, and 2 function calls (sin, cos). Converting a quaternion to R costs 12 multiplies and 12 add/subtracts; from item 1, rotating using R adds an additional 9 multiplications and 6 additions for a total of 21 multiplies and 18 add/subtracts.
Metoda | # multiplies | # add/subtracts | # sin/cos | celkový počet operací | |
---|---|---|---|---|---|
Rotační matice | 9n | 6n | 0 | 15n | |
Quaternions * | Without intermediate matrix | 15n | 15n | 0 | 30n |
Quaternions * | With intermediate matrix | 9n + 12 | 6n + 12 | 0 | 15n + 24 |
Angle/axis | Without intermediate matrix | 18n | 12n + 1 | 2 | 30n + 3 |
Angle/axis | With intermediate matrix | 9n + 12 | 6n + 10 | 2 | 15n + 24 |
Pairs of unit quaternions as rotations in 4D space
A pair of unit quaternions zl a zr can represent any rotation in 4D space. Given a four dimensional vector proti→, and assuming that it is a quaternion, we can rotate the vector proti→ takhle:
The pair of matrices represents a rotation of ℝ4. Všimněte si, že od té doby , the two matrices must commute. Therefore, there are two commuting subgroups of the set of four dimensional rotations. Arbitrary four dimensional rotations have 6 degrees of freedom, each matrix represents 3 of those 6 degrees of freedom.
Since the generators of the four-dimensional rotations can be represented by pairs of quaternions (as follows), all four-dimensional rotations can also be represented.
Viz také
- Anti-twister mechanism
- Binary polyhedral group
- Biquaternion
- Grafy na SO (3)
- Clifford algebras
- Převod mezi čtveřicemi a Eulerovými úhly
- Krycí prostor
- Duální čtveřice
- Dvojité komplexní číslo
- Eliptická geometrie
- Rotační formalizmy ve třech rozměrech
- Rotace (matematika)
- Spin skupina
- Slerp, spherical linear interpolation
- Olinde Rodrigues
- William Rowan Hamilton
Reference
- ^ Shoemake, Ken (1985). "Animace rotace se čtveřičkovými křivkami" (PDF). Počítačová grafika. 19 (3): 245–254. doi:10.1145/325165.325242. Prezentováno v SIGGRAPH '85.
- ^ J. M. McCarthy, 1990, Úvod do teoretické kinematiky, MIT Stiskněte
- ^ Amnon Katz (1996) Computational Rigid Vehicle Dynamics, Krieger Publishing Co. ISBN 978-1575240169
- ^ J. B. Kuipers (1999) Čtvrtečky a rotační sekvence: Primer s aplikacemi na oběžné dráhy, letectví a virtuální realitu, Princeton University Press ISBN 978-0-691-10298-6
- ^ Karsten Kunze, Helmut Schaeben (November 2004). "The Bingham Distribution of Quaternions and Its Spherical Radon Transform in Texture Analysis". Matematická geologie. 36 (8): 917–943. doi:10.1023/B:MATG.0000048799.56445.59. S2CID 55009081.
- ^ Altmann, Simon L. (1989). „Hamilton, Rodrigues a skandál Quaternion“. Matematický časopis. 62 (5): 306. doi:10.2307/2689481. JSTOR 2689481.
- ^ "comp.graphics.algorithms FAQ". Citováno 2. července 2017.
- ^ Rodrigues, O. (1840), Des lois géométriques qui régissent les déplacements d'un système solide dans l'espace, et la variation des coordonnées provenant de ses déplacements con- sidérés indépendamment des causes qui peuvent les produire, Journal de Mathématiques Pures et Appliquées de Liouville 5, 380–440.
- ^ William Rowan Hamilton (1844 až 1850) Na čtveřicích nebo na novém systému imaginářů v algebře, Philosophical Magazine, odkaz na sbírku Davida R. Wilkinse v Trinity College, Dublin
- ^ Lee, Byung-Uk (1991), "Differentiation with Quaternions, Appendix B" (PDF), Ph. D. Thesis, Stereo Matching of Skull Landmarks, Stanford University: 57–58
- ^ Simon L. Altman (1986) Rotace, čtveřice a dvojité skupiny, Dover Publications (see especially Ch. 12).
- ^ Sommer, H. (2018), "Why and How to Avoid the Flipped Quaternion Multiplication", Letectví a kosmonautika, 5 (3): 72, arXiv:1801.07478, doi:10.3390/aerospace5030072, ISSN 2226-4310
- ^ Shuster, M.D (1993), "A Survey of attitude representations", Journal of the Astronautical Sciences, 41 (4): 439–517, Bibcode:1993JAnSc..41..439S, ISSN 0021-9142
- ^ Sommer.
- ^ Bar-Itzhack, Itzhack Y. (Nov–Dec 2000), "New method for extracting the quaternion from a rotation matrix", AIAA Journal of Guidance, Control and Dynamics, 23 (6): 1085–1087, Bibcode:2000JGCD...23.1085B, doi:10.2514/2.4654, ISSN 0731-5090
- ^ Eberly, D., Rotation Representations and performance issues
- ^ "Bitbucket". bitbucket.org.
- Grubin, Carl (1970). "Derivation of the quaternion scheme via the Euler axis and angle". Journal of Spacecraft and Rockets. 7 (10): 1261–1263. Bibcode:1970JSpRo...7.1261G. doi:10.2514/3.30149.
- Battey-Pratt, E. P.; Racey, T. J. (1980). "Geometric Model for Fundamental Particles". International Journal of Theoretical Physics. 19 (6): 437–475. Bibcode:1980IJTP...19..437B. doi:10.1007/BF00671608. S2CID 120642923.
- Arribas, M.; Elipe, A.; Palacios, M. (2006). "Quaternions and the rotations of a rigid body". Celest. Mech. Dyn. Astron. 96 (3–4): 239–251. Bibcode:2006CeMDA..96..239A. doi:10.1007/s10569-006-9037-6. S2CID 123591599.
Externí odkazy a zdroje
- Shoemake, Ken. "Quaternions" (PDF).
- "Simple Quaternion type and operations in over thirty computer languages". na Rosettský kód
- Hart, John C. "Quaternion Demonstrator".
- Dam, Eik B.; Koch, Martin; Lillholm, Martin (1998). „Quaternions, Interpolation and Animation“ (PDF).
- Leandra, Vicci (2001). "Quaternions and Rotations in 3-Space: The Algebra and its Geometric Interpretation" (PDF).
- Howell, Thomas; Lafon, Jean-Claude (1975). "The Complexity of the Quaternion Product, TR75-245" (PDF). Cornell University.
- Horn, Berthold K.P. (2001). "Some Notes on Unit Quaternions and Rotation" (PDF).
- Lee, Byung-Uk (1991). Unit Quaternion Representation of Rotation - Appendix A, Differentiation with Quaternions - Appendix B (PDF) (Ph. D. Thesis). Stanfordská Univerzita.
- Vance, Rod. "Some examples of connected Lie groups".
- "Visual representation of quaternion rotation".