Kwaterniony i rotacja przestrzenna
Kwaterniony jednostkowe , zwane wersorami , zapewniają wygodną notację matematyczną do przedstawiania orientacji przestrzennych i obrotów elementów w przestrzeni trójwymiarowej. W szczególności kodują informacje o obrocie kąta osi wokół dowolnej osi. Kwaterniony rotacyjne i orientacyjne mają zastosowanie w grafice komputerowej , wizji komputerowej , robotyce , nawigacji , dynamice molekularnej , dynamika lotu , mechanika orbitalna satelitów i analiza tekstur krystalograficznych .
Kiedy są używane do reprezentowania rotacji, kwaterniony jednostkowe są również nazywane kwaternionami rotacyjnymi , ponieważ reprezentują grupę rotacyjną 3D . Kiedy są używane do przedstawienia orientacji (obrót względem układu współrzędnych odniesienia), nazywane są kwaternionami orientacji lub kwaternionami położenia . Obrót przestrzenny wokół stałego punktu osi jednostkowej oznacza Eulera kwaternion = i .
W porównaniu do macierzy rotacyjnych kwaterniony są bardziej zwarte, wydajne i numerycznie stabilne . W porównaniu do kątów Eulera są one prostsze do skomponowania . Nie są one jednak tak intuicyjne i łatwe do zrozumienia i ze względu na okresowy charakter sinusa cosinusa kąty obrotu różniące się dokładnie okresem naturalnym zostaną zakodowane w identycznych kwaternionach, a odzyskane kąty w radianach zostaną ograniczone do [ .
Używanie kwaternionów jako rotacji
W przestrzeni trójwymiarowej, zgodnie z twierdzeniem Eulera o rotacji , dowolny obrót lub sekwencja obrotów ciała sztywnego lub układu współrzędnych wokół stałego punktu jest równoważna pojedynczemu obrotowi o dany kąt wokół ustalonej osi (zwaną osią Eulera ), która przebiega przez stały punkt. Oś Eulera jest zwykle reprezentowana przez jednostkowy \ displaystyle {\ kapelusz {e} na obrazie). trzech wymiarach można przedstawić wektora i skalara
Kwaterniony umożliwiają prosty sposób zakodowania reprezentacji kąta osi w czterech liczbach i można ich użyć do zastosowania (obliczenia) odpowiedniego obrotu do wektora położenia (x,y,z) , reprezentującego punkt względem początku w R 3 .
Wektory euklidesowe takie jak (2, 3, 4) lub ( a x , a y , a z ) można zapisać jako 2 i + 3 j + 4 k lub a x i + a y j + a z k , gdzie i , j , k to wektory jednostkowe reprezentujące trzy osie kartezjańskie (tradycyjnie x , y , z ), a także przestrzegać zasad mnożenia podstawowych jednostek kwaternionów.
Dlatego obrót kąta określonej przez wektor jednostkowy
można przedstawić za pomocą kwaternionu. Można to zrobić za pomocą rozszerzenia wzoru Eulera :
Można wykazać [ potrzebne dalsze wyjaśnienia ] , że żądany obrót można zastosować do zwykłego wektora. w przestrzeni trójwymiarowej, traktowanej jako kwaternion o rzeczywistej współrzędnej równej zero, poprzez ocenę koniugacji p przez q :
korzystając z iloczynu Hamiltona , gdzie p ′ = ( p x ′, p y ′, p z ′) jest nowym wektorem położenia punktu po obrocie. W implementacji programowej koniugację osiąga się poprzez skonstruowanie kwaternionu, którego część wektorowa wynosi p , a część rzeczywista równa zero, a następnie wykonując mnożenie kwaternionów. Część wektorowa powstałego kwaternionu jest pożądanym wektorem p ′ .
Faktem geometrycznym niezależnym od kwaternionów jest istnienie odwzorowania dwa do jednego z rotacji fizycznych na macierze transformacji rotacyjnej. Jeśli , obrót o przez i fizyczny obrót o o oba osiągają tę samą końcową orientację poprzez rozłączne ścieżki poprzez orientacje pośrednie. Wstawiając te wektory i kąty do powyższego wzoru na q , okazuje się, że jeśli q oznacza pierwszy obrót, - q oznacza drugi obrót. Jest to geometryczny dowód, że koniugacja przez q i przez - q musi dać tę samą macierz transformacji rotacyjnej. Fakt ten potwierdza się algebraicznie zauważając, że koniugacja jest kwadratowa w q , więc znak q anuluje i nie ma wpływu na wynik. (Patrz mapowanie 2: 1 SU (2) na SO (3) ) Jeśli oba obroty są o pół obrotu, zarówno q , jak i - q będą miały rzeczywista współrzędna równa zeru. W przeciwnym razie jedna będzie miała dodatnią część rzeczywistą, reprezentującą obrót o kąt mniejszy niż , druga będzie miała ujemną część rzeczywistą, reprezentującą obrót o kąt większy niż .
Matematycznie operacja ta przenosi do siebie zbiór wszystkich „czystych” kwaternionów p (tych, których część rzeczywista jest równa zeru) – które tworzą trójwymiarową przestrzeń pomiędzy kwaternionami – w sobie, poprzez pożądany obrót wokół osi u , o kąt θ. (W wyniku tej operacji każdy prawdziwy kwaternion jest przenoszony w siebie. Jednak na potrzeby obrotów w przestrzeni trójwymiarowej ignorujemy rzeczywiste kwaterniony.)
w tym samym kierunku, .
W tym przypadku q jest kwaternionem jednostkowym i
Wynika z tego, że koniugacja przez iloczyn dwóch kwaternionów jest złożeniem koniugacji przez te kwaterniony: Jeśli p i q są kwaternionami jednostkowymi, to rotacja (sprzężenie) o pq wynosi
- ,
co jest równoznaczne z obracaniem (sprzęganiem) o q , a następnie o p . Składnik skalarny wyniku musi koniecznie wynosić zero.
Kwaternion odwrotny do rotacji jest przeciwną rotacją, ponieważ . Kwadrat obrotu kwaternionu to obrót o dwukrotność kąta wokół tej samej osi. Mówiąc bardziej ogólnie, q n jest obrotem o n razy kąt wokół tej samej osi co q . Można to rozszerzyć na dowolną wartość rzeczywistą n , pozwalający na płynną interpolację pomiędzy orientacjami przestrzennymi; zobacz Slerp .
Dwa kwaterniony rotacyjne można połączyć w jeden równoważny kwaternion według zależności:
gdzie q ′ odpowiada obrotowi q 1 , po którym następuje obrót q 2 . W ten sposób można złożyć dowolną liczbę obrotów, a następnie zastosować je jako pojedynczy obrót. (Zauważ, że mnożenie kwaternionów nie jest przemienne .)
Przykładowa operacja koniugacji
Koniugacja p przez q odnosi się do operacji p ↦ qpq −1 .
Rozważ obrót f wokół osi , przy kącie obrotu wynoszącym 120°, czyli 2 π / 3 radiany .
Długość √ 3 , półkąt π / 3 (60°) z cosinusem √ } } 1/2 ( } 3/2 cos 60° = 0,5 ) i sinusem v , ( grzech 60° ≈ 0,866 ). Mamy zatem do czynienia z koniugacją przez kwaternion jednostkowy
Jeśli f jest funkcją rotacji,
Można udowodnić, że odwrotność kwaternionu jednostkowego uzyskuje się po prostu zmieniając znak jego urojonych składników. W konsekwencji,
I
Można to uprościć, stosując zwykłe zasady arytmetyki kwaternionów
Zgodnie z oczekiwaniami, obrót odpowiada utrzymaniu sześcianu nieruchomego w jednym punkcie i obróceniu go o 120° wokół długiej przekątnej przechodzącej przez stały punkt (zaobserwuj, jak trzy osie są cyklicznie permutowane ).
Macierz rotacji pochodząca z kwaternionów
Rotacja kwaternionów z ) można algebraicznie przekształcić w obrót macierzy gdzie jest macierzą rotacji wyrażoną wzorem:
Tutaj i jeśli q jednostkowym, .
uzyskać za pomocą rachunku wektorowego i algebry liniowej jeśli wyrazimy i jako części skalarne i wektorowe oraz wzór na operację mnożenia w równanie . Jeśli napiszemy jako , jako i jak } nasze równanie zamienia się w . Korzystając ze wzoru na mnożenie dwóch kwaternionów wyrażonych jako części skalarne i wektorowe,
to równanie można przepisać jako
gdzie oznacza iloczyn zewnętrzny , jest macierzą tożsamości i { macierz transformacji, która pomnożona od prawej strony przez wektor daje iloczyn krzyżowy .
Ponieważ możemy zidentyfikować jako , co po rozwinięciu powinno dać w wyniku wyrażenie zapisane w powyższej postaci macierzowej.
Odzyskiwanie reprezentacji osi i kąta
Wyrażenie obraca dowolny wektora wokół osi określonej przez wektor kąt gdzie i zależy od kwaternionu .
i można znaleźć na podstawie następujących równań: za
gdzie jest dwuargumentowym arcus .
Należy zachować ostrożność, gdy kwaternion zbliża się do skalara , ponieważ z powodu degeneracji oś rotacji tożsamości nie jest dobrze zdefiniowana.
Skład obrotów przestrzennych
Zaletą sformułowania kwaternionowego składu dwóch obrotów R B i RA jest to, że daje ono bezpośrednio oś obrotu i kąt złożonego obrotu R C = R B R A .
Niech kwaternion związany z obrotem przestrzennym zostanie zbudowany z jego osi obrotu S z kątem obrotu tej osi. Powiązany kwaternion jest podany przez
Rozwiń ten produkt, aby uzyskać
Podziel obie strony tego równania przez tożsamość, czyli prawo cosinusów na kuli ,
Jest to wzór Rodriguesa na oś złożonego obrotu określoną w kategoriach osi dwóch obrotów. Wyprowadził tę formułę w 1840 r. (patrz strona 408).
Trzy osie obrotu A , B i C tworzą trójkąt sferyczny, a kąty dwuścienne pomiędzy płaszczyznami utworzonymi przez boki tego trójkąta są określone przez kąty obrotu. Hamilton przedstawił składową postać tych równań, pokazując, że iloczyn kwaternionów oblicza trzeci wierzchołek trójkąta sferycznego na podstawie dwóch danych wierzchołków i powiązanych z nimi długości łuków, co definiuje również algebrę punktów w geometrii eliptycznej .
Kompozycja osiowo-kątowa
Znormalizowana oś obrotu, usuwająca wektor będący osią obrotu razy ostrożność wektor osi, gdy jest blisko ; γ { co jest tożsamością lub 0 obrotem wokół dowolnej osi.
Lub z podstawieniami trygonometrycznymi z dodawaniem kątów ...
ostatecznie normalizowanie osi obrotu: lub \
Różniczkowanie ze względu na kwaternion rotacji
Obrócony kwaternion p' = q p q −1 należy różniczkować względem obracającego się kwaternionu q , gdy rotacja jest szacowana na podstawie optymalizacji numerycznej. Oszacowanie kąta obrotu jest niezbędną procedurą podczas rejestracji obiektów 3D lub kalibracji kamery. Dla unitarnego q i czystego urojonego p , czyli dla rotacji w przestrzeni 3D, pochodne obróconego kwaternionu można przedstawić za pomocą zapisu rachunku macierzowego jako
Wyprowadzenie można znaleźć w.
Tło
Kwaterniony
Liczby zespolone można zdefiniować wprowadzając abstrakcyjny symbol i , który spełnia zwykłe zasady algebry i dodatkowo regułę i 2 = −1 . To wystarczy, aby odtworzyć wszystkie zasady arytmetyki liczb zespolonych: na przykład:
W ten sam sposób kwaterniony można zdefiniować wprowadzając abstrakcyjne symbole i , j , k spełniające reguły i 2 = j 2 = k 2 = i j k = −1 i zwykłe reguły algebraiczne z wyjątkiem przemiennego prawa mnożenia (znany przykład takiego nieprzemiennego mnożenia jest mnożeniem macierzy ). Z tego wynikają wszystkie zasady arytmetyki kwaternionów, takie jak zasady mnożenia elementów bazowych kwaternionów . Korzystając z tych reguł, można wykazać, że:
Część urojona kwaternionu zachowuje się jak wektor w trójwymiarowej przestrzeni wektorowej , a część rzeczywista a zachowuje się jak skalar w R . Kiedy w geometrii używane są kwaterniony, wygodniej jest zdefiniować je jako skalar plus wektor :
Niektórym może wydawać się dziwne dodawanie liczby do wektora , ponieważ są to obiekty o bardzo różnej naturze, lub mnożenie dwóch wektorów przez siebie, ponieważ operacja ta jest zwykle nieokreślona. Jeśli jednak pamięta się, że jest to zwykły zapis rzeczywistych i urojonych części kwaternionu, staje się to bardziej uzasadnione. Innymi słowy, prawidłowym rozumowaniem jest dodanie dwóch kwaternionów, jednego z zerowym wektorem/częścią urojoną, a drugiego z zerową częścią skalarną/rzeczywistą:
Możemy wyrazić mnożenie kwaternionów we współczesnym języku wektorowych iloczynów krzyżowych i kropkowych (które w rzeczywistości były inspirowane przede wszystkim kwaternionami). Przy mnożeniu części wektorowych/urojonych zamiast zasad i 2 = j 2 = k 2 = ijk = −1 mamy zasadę mnożenia kwaternionów:
Gdzie:
- jest wynikowym kwaternionem,
- jest iloczynem wektorowym (wektorem),
- jest wektorowym iloczynem skalarnym (skalarem).
Mnożenie kwaternionów jest nieprzemienne (ze względu na iloczyn krzyżowy, który przeciwdziała dojazdom ), podczas gdy mnożenia skalarno-skalarne i skalarno-wektorowe dojeżdżają do pracy. Z tych zasad wynika od razu, że ( patrz szczegóły ):
(lewa i prawa) multiplikatywna odwrotność lub odwrotność niezerowego kwaternionu jest określona przez stosunek koniugatu do normy ( zobacz szczegóły ):
co można sprawdzić za pomocą bezpośrednich obliczeń (zwróć uwagę na podobieństwo do multiplikatywnej odwrotności liczb zespolonych ).
Tożsamość rotacyjna
Niech będzie wektorem jednostkowym (oś obrotu) i niech . Naszym celem jest to pokazać
wektor obrócony o kąt wokół osi \ Rozszerzanie się (i pamiętanie, że , mamy
Używanie tożsamości trygonometrycznych :
gdzie i są składnikami v → (prostopadłymi i równoległymi do u → odpowiednio). To jest wzór na obrót o oś u → .
Operacje rotacyjne kwaternionów
Bardzo formalne wyjaśnienie właściwości użyte w tej sekcji podaje Altman.
Hipersfera obrotów
Wizualizacja przestrzeni obrotów
Kwaterniony jednostkowe w bardzo prosty sposób reprezentują grupę obrotów euklidesowych w trzech wymiarach . Zależność między obrotami i kwaternionami można zrozumieć, najpierw wizualizując samą przestrzeń obrotów.
Aby zwizualizować przestrzeń obrotów, warto rozważyć prostszy przypadek. Dowolny obrót w trzech wymiarach można opisać obrotem o pewien kąt wokół jakiejś osi ; dla naszych celów użyjemy wektora osi, aby ustalić kierunek naszego kąta. Rozważmy szczególny przypadek, w którym oś obrotu leży w xy . Możemy wówczas określić oś jednego z tych obrotów poprzez punkt na okręgu, przez który przecina się wektor, oraz możemy wybrać promień okręgu, który będzie oznaczał kąt obrotu .
Podobnie obrót, którego oś obrotu leży w płaszczyźnie xy , można opisać jako punkt na kuli o ustalonym promieniu w trzech wymiarach. Zaczynając od bieguna północnego kuli w przestrzeni trójwymiarowej, określamy punkt na biegunie północnym jako obrót tożsamościowy (obrót o kąt zerowy). Podobnie jak w przypadku obrotu tożsamościowego nie jest zdefiniowana oś obrotu, a kąt obrotu (zero) jest nieistotny. Obrót o bardzo małym kącie obrotu można określić poprzez przecięcie kuli równoległej do xy płaszczyźnie i bardzo blisko bieguna północnego. Okrąg wyznaczony przez ten wycinek będzie bardzo mały, co odpowiada małemu kątowi obrotu. Gdy kąty obrotu stają się większe, plasterek przesuwa się w kierunku ujemnego z kierunku, a okręgi stają się większe, aż do osiągnięcia równika kuli, co będzie odpowiadać kątowi obrotu wynoszącemu 180 stopni. Kierując się dalej na południe, promienie okręgów stają się teraz mniejsze (co odpowiada wartości bezwzględnej kąta obrotu uznawanego za liczbę ujemną). Wreszcie, gdy dotrze się do bieguna południowego, okręgi ponownie się kurczą do rotacji tożsamości, która jest również określona jako punkt na biegunie południowym.
Zauważ, że na tej wizualizacji można zobaczyć wiele cech takich obrotów i ich reprezentacji. Przestrzeń obrotów jest ciągła, każdy obrót ma prawie takie same sąsiedztwo obrotów, a otoczenie to staje się płaskie w miarę kurczenia się sąsiedztwa. Ponadto każdy obrót jest w rzeczywistości reprezentowany przez dwa antypodalne punkty na kuli, które znajdują się na przeciwległych końcach linii przechodzącej przez środek kuli. Odzwierciedla to fakt, że każdy obrót można przedstawić jako obrót wokół jakiejś osi lub, równoważnie, jako ujemny obrót wokół osi skierowanej w przeciwnym kierunku (tzw. podwójne pokrycie ). „Szerokość geograficzna” okręgu reprezentującego określony kąt obrotu będzie równa połowie kąta reprezentowanego przez ten obrót, ponieważ w miarę przesuwania się punktu z bieguna północnego na południowy szerokość geograficzna waha się od zera do 180 stopni, podczas gdy kąt obrotu waha się od 0 do 360 stopni. („długość” punktu reprezentuje wówczas określoną oś obrotu). Należy jednak pamiętać, że ten zestaw obrotów nie jest zamknięty w ramach kompozycji. Dwa kolejne obroty z osiami w xy niekoniecznie dadzą obrót, którego oś leży w xy płaszczyźnie, a zatem nie można go przedstawić jako punktu na kuli. Nie będzie tak w przypadku ogólnego obrotu w przestrzeni 3, w którym rotacje tworzą zamknięty zbiór w ramach kompozycji.
Wizualizację tę można rozszerzyć na ogólny obrót w przestrzeni trójwymiarowej. Rotacja tożsamości jest punktem, a mały kąt obrotu wokół jakiejś osi można przedstawić jako punkt na kuli o małym promieniu. Wraz ze wzrostem kąta obrotu kula rośnie, aż kąt obrotu osiągnie 180 stopni, w którym to momencie kula zaczyna się kurczyć, stając się punktem, gdy kąt zbliża się do 360 stopni (lub zera stopni od kierunku ujemnego). Ten zbiór rozszerzających się i kurczących sfer reprezentuje hipersferę w przestrzeni czterowymiarowej (3-kula). Podobnie jak w prostszym przykładzie powyżej, każdemu obrotowi reprezentowanemu jako punkt na hipersferze odpowiada jego antypodalny punkt na tej hipersferze. „Szerokość geograficzna” hipersfery będzie równa połowie odpowiedniego kąta obrotu, a sąsiedztwo dowolnego punktu stanie się „bardziej płaskie” (tj. będzie reprezentowane przez trójwymiarową euklidesową przestrzeń punktów), gdy sąsiedztwo się kurczy. Zachowaniu temu odpowiada zbiór kwaternionów jednostkowych: Ogólny kwaternion reprezentuje punkt w przestrzeni czterowymiarowej, ale ograniczenie go do jednostkowej wielkości daje trójwymiarową przestrzeń równoważną powierzchni hipersfery. Wielkość kwaternionu jednostkowego będzie jednością, co odpowiada hipersferze o promieniu jednostkowym. Część wektorowa kwaternionu jednostkowego reprezentuje promień 2-sfery odpowiadający osi obrotu, a jej wielkość jest cosinusem połowy kąta obrotu. Każdy obrót jest reprezentowany przez dwa kwaterniony jednostkowe o przeciwnych znakach i, podobnie jak w przestrzeni obrotów w trzech wymiarach, iloczyn kwaternionów dwóch kwaternionów jednostkowych da kwaternion jednostkowy. Ponadto przestrzeń kwaternionów jednostkowych jest „płaska” w dowolnym nieskończenie małym sąsiedztwie danego kwaternionu jednostkowego.
Parametryzacja przestrzeni obrotów
Możemy sparametryzować powierzchnię kuli za pomocą dwóch współrzędnych, takich jak szerokość i długość geograficzna. Ale szerokość i długość geograficzna są niewłaściwie ( zdegenerowane ) na biegunie północnym i południowym, chociaż bieguny nie różnią się wewnętrznie od żadnych innych punktów na kuli. Na biegunach (szerokości geograficzne +90° i -90°) długość geograficzna traci znaczenie.
Można wykazać, że żaden dwuparametrowy układ współrzędnych nie pozwala uniknąć takiej degeneracji. Możemy uniknąć takich problemów osadzając kulę w przestrzeni trójwymiarowej i parametryzując ją trzema współrzędnymi kartezjańskimi ( w , x , y ) , umieszczając biegun północny w ( w , x , y ) = (1, 0, 0) , biegun południowy w ( w , x , y ) = (-1, 0, 0) i równik w w = 0 , x 2 + y 2 = 1 . Punkty na kuli spełniają ograniczenie w 2 + x 2 + y 2 = 1 , więc nadal mamy tylko dwa stopnie swobody , chociaż istnieją trzy współrzędne. Punkt ( w , x , y ) na kuli reprezentuje obrót w zwykłej przestrzeni wokół osi poziomej skierowanej przez wektor ( x , y , 0) o kąt .
W ten sam sposób przestrzeń hipersferyczną obrotów 3D można sparametryzować za pomocą trzech kątów ( kątów Eulera ), ale każda taka parametryzacja jest zdegenerowana w niektórych punktach hipersfery, co prowadzi do problemu blokady gimbala . Możemy tego uniknąć, używając czterech współrzędnych euklidesowych w , x , y , z , gdzie w 2 + x 2 + y 2 + z 2 = 1 . Punkt ( w , x , y , z ) reprezentuje obrót wokół osi kierowanej przez wektor ( x , y , z ) o kąt
Wyjaśnianie właściwości kwaternionów za pomocą rotacji
Nieprzemienność
Mnożenie kwaternionów jest nieprzemienne . Fakt ten wyjaśnia, jak p ↦ q p q −1 może w ogóle działać, mając z definicji q q −1 = 1 . Ponieważ mnożenie kwaternionów jednostkowych odpowiada składaniu rotacji trójwymiarowych, właściwość tę można uczynić intuicyjną, pokazując, że rotacje trójwymiarowe w ogóle nie są przemienne.
Ustaw dwie książki obok siebie. Obróć jeden z nich o 90 stopni zgodnie z ruchem wskazówek zegara wokół z , a następnie odwróć go o 180 stopni wokół osi x . Weź drugą książkę i obróć ją najpierw o 180° wokół osi x , a później o 90° zgodnie z ruchem wskazówek zegara wokół osi z . Obie książki nie kończą się równolegle. To pokazuje, że ogólnie rzecz biorąc, złożenie dwóch różnych obrotów wokół dwóch odrębnych osi przestrzennych nie będzie się zmieniać.
Orientacja
Iloczyn wektorowy wektorowy , używany do zdefiniowania reprezentacji osi i kąta, rzeczywiście nadaje przestrzeni orientację („ręczność”): w trójwymiarowej przestrzeni wektorowej trzy wektory w równaniu a × b = c zawsze będą tworzyć prawą zbiór -ręczny (lub zbiór lewoskrętny, w zależności od definicji iloczynu krzyżowego), ustalający w ten sposób orientację w przestrzeni wektorowej. Alternatywnie zależność od orientacji wyraża się w odniesieniu do takiego, który określa obrót co do wektory osiowe . W formalizmie kwaternionowym wybór orientacji przestrzeni odpowiada porządkowi mnożenia: ij = k ale ji = − k . Jeśli odwrócimy orientację, wówczas powyższy wzór przyjmie postać p ↦ q −1 p q , tj. jednostka q zostanie zastąpiona kwaternionem sprzężonym – zachowuje się tak samo jak wektory osiowe.
Alternatywne konwencje
Donoszono, że istnienie i dalsze stosowanie alternatywnej konwencji kwaternionów w przemyśle lotniczym i, w mniejszym stopniu, w społeczności robotyki wiąże się ze znacznymi i ciągłymi kosztami [ sic !]. Ta alternatywna konwencja została zaproponowana przez Shustera MD i odchodzi od tradycji, odwracając definicję mnożenia elementów podstawy kwaternionów w taki sposób, że zgodnie z konwencją Shustera ja , podczas gdy definicja Hamiltona to } Konwencja ta jest również nazywana „konwencją JPL” ze względu na jej zastosowanie w niektórych częściach Laboratorium Napędów Odrzutowych NASA .
Zgodnie z konwencją Shustera wzór na pomnożenie dwóch kwaternionów zostaje zmieniony w taki sposób, że
Wzór na obrót wektora o kwaternion zostaje zmieniony na:
Aby zidentyfikować zmiany zgodnie z konwencją Shustera, zobacz, że znak przed iloczynem krzyżowym jest odwrócony z plusa na minus.
Na koniec zmienia się wzór na konwersję kwaternionu na macierz rotacji
co jest dokładnie transpozycją macierzy rotacji przeliczonej zgodnie z tradycyjną konwencją.
Aplikacje programowe według stosowanej konwencji
Poniższa tabela grupuje aplikacje według ich zgodności z konwencją kwaternionów:
Konwencja mnożenia Hamiltona | Konwencja mnożenia Shustera |
---|---|
|
|
Choć użycie żadnej konwencji nie wpływa na możliwości i poprawność tworzonych w ten sposób aplikacji, autorzy argumentowali, że należy porzucić konwencję Shustera, ponieważ odbiega ona od znacznie starszej konwencji mnożenia kwaternionów Hamiltona i może nigdy nie zostać przyjęta przez świat matematyczny lub teoretyczny obszary fizyki.
Porównanie z innymi reprezentacjami obrotów
Zalety kwaternionów
Reprezentacja rotacji w postaci kwaternionu (4 liczby) jest bardziej zwarta niż reprezentacja w postaci macierzy ortogonalnej (9 liczb). Co więcej, dla danej osi i kąta można łatwo skonstruować odpowiedni kwaternion i odwrotnie, dla danego kwaternionu można łatwo odczytać oś i kąt. Obydwa są znacznie trudniejsze w przypadku macierzy lub kątów Eulera .
W grach wideo i innych zastosowaniach często interesują nas „płynne obroty”, co oznacza, że scena powinna obracać się powoli, a nie w jednym kroku. Można to osiągnąć wybierając krzywą , taką jak sferyczna interpolacja liniowa w kwaternionach, przy czym jednym punktem końcowym jest transformacja tożsamości 1 (lub inny obrót początkowy), a drugim jest zamierzony obrót końcowy. Jest to bardziej problematyczne w przypadku innych reprezentacji obrotów.
Podczas komponowania kilku obrotów na komputerze błędy zaokrągleń koniecznie się kumulują. Kwaternion, który jest nieco przesunięty, nadal reprezentuje rotację po normalizacji: macierz, która jest nieco odchylona, może nie być już ortogonalna i trudniej jest ją przekonwertować z powrotem do właściwej macierzy ortogonalnej.
Kwaterniony unikają również zjawiska zwanego blokadą przegubu Cardana , które może wystąpić, gdy na przykład w układach obrotowych typu pitch/yaw/roll nachylenie jest obracane o 90° w górę lub w dół, tak że odchylenie i przechylenie odpowiadają temu samemu ruchowi, a stopień swoboda obrotu zostaje utracona. Na przykład w lotniczym systemie nawigacji inercyjnej opartym na przegubie Cardana może to mieć katastrofalne skutki, jeśli statek powietrzny gwałtownie nurkuje lub wznosi się.
Konwersja do i z reprezentacji macierzowej
Od kwaternionu do macierzy ortogonalnej
Macierz ortogonalna odpowiadająca obrotowi o kwaternion jednostkowy z = a + b i + c j + d k (przy | z | = 1 ) po mnożeniu przez wektor kolumnowy jest dana wzorem
Ta macierz rotacji jest używana na wektorze w jako . Kwaternionową reprezentację tego obrotu podaje wzór:
gdzie koniugatem przez
Ponadto mnożenie kwaternionów definiuje się jako (zakładając, że a i b są kwaternionami, jak z powyżej):
gdzie rząd a , b jest ważny, ponieważ iloczyn krzyżowy dwóch wektorów nie jest przemienny.
Bardziej efektywne obliczenie, w którym kwaternion nie musi być znormalizowany jednostkowo, jest podane przez
gdzie określono następujące wielkości pośrednie:
Od macierzy ortogonalnej do kwaternionu
Należy zachować ostrożność podczas konwersji macierzy rotacji na kwaternion, ponieważ kilka prostych metod jest zwykle niestabilnych, gdy ślad ( suma elementów przekątnych) macierzy rotacji jest zerowy lub bardzo mały. Aby zapoznać się ze stabilną metodą konwersji macierzy ortogonalnej na kwaternion, zobacz macierz rotacji#Kwaternion .
Dopasowanie kwaternionów
W powyższej sekcji opisano, jak odzyskać kwaternion q z macierzy rotacji 3 × 3 Q . Załóżmy jednak, że mamy pewną macierz Q , która nie jest czystą rotacją – na przykład z powodu błędów zaokrągleń – i chcemy znaleźć kwaternion q , który najdokładniej reprezentuje Q . W takim przypadku konstruujemy symetryczną macierz 4 × 4
i znajdź wektor własny ( x , y , z , w ) odpowiadający największej wartości własnej (ta wartość będzie wynosić 1 wtedy i tylko wtedy, gdy Q jest czystym obrotem). Otrzymany w ten sposób kwaternion będzie odpowiadał rotacji najbliższej pierwotnej macierzy Q [ wątpliwe ] .
Porównania wydajności
W tej sekcji omówiono konsekwencje wydajnościowe stosowania kwaternionów w porównaniu z innymi metodami (macierze osi/kąta lub obrotu) do wykonywania obrotów w 3D.
Wyniki
metoda | Składowanie |
---|---|
Macierz rotacyjna | 9 |
Kwaternion | 3 lub 4 (patrz poniżej) |
Oś kątowa | 3 lub 4 (patrz poniżej) |
Tylko trzy składniki kwaternionów są niezależne, ponieważ obrót jest reprezentowany przez kwaternion jednostkowy. Do dalszych obliczeń zwykle potrzebne są wszystkie cztery elementy, zatem wszystkie obliczenia wiązałyby się z dodatkowymi kosztami w przypadku odzyskania czwartego składnika. Podobnie oś kąta można zapisać w wektorze trójskładnikowym, mnożąc kierunek jednostki przez kąt (lub jego funkcję), ale wiąże się to z dodatkowymi kosztami obliczeniowymi w przypadku używania jej do obliczeń.
metoda | # mnoży się | # dodaj/odejmij | ogółem operacji |
---|---|---|---|
Macierze rotacyjne | 27 | 18 | 45 |
Kwaterniony | 16 | 12 | 28 |
metoda | # mnoży się | # dodaj/odejmij | # grzech/cos | ogółem operacji | |
---|---|---|---|---|---|
Macierz rotacyjna | 9 | 6 | 0 | 15 | |
Kwaterniony * | Bez matrycy pośredniej | 15 | 15 | 0 | 30 |
Z matrycą pośrednią | 21 | 18 | 0 | 39 | |
Oś kątowa | Bez matrycy pośredniej | 18 | 13 | 2 | 30 + 3 |
Z matrycą pośrednią | 21 | 16 | 2 | 37 + 2 |
* Kwaterniony można w sposób dorozumiany przekształcić w macierz rotacyjną (12 mnożeń i 12 dodawania/odejmowań), która wyrównuje koszt rotacji następujących wektorów metodą macierzy rotacji.
Stosowane metody
Istnieją trzy podstawowe podejścia do obracania wektora v → :
- Oblicz iloczyn macierzowy macierzy rotacji 3 × 3 R i pierwotnej macierzy kolumnowej 3 × 1 reprezentującej v → . Wymaga to 3 × (3 mnożenia + 2 dodawania) = 9 mnożeń i 6 dodawania, co jest najbardziej efektywną metodą obracania wektora.
- Obrót można przedstawić za pomocą kwaternionu o jednostkowej długości q = ( w , r → ) z częścią skalarną (rzeczywistą) w i częścią wektorową (urojoną) r → . Obrót można zastosować do wektora 3D v → za pomocą wzoru . Wymaga to jedynie 15 mnożeń i 15 dodań do obliczenia (lub 18 mnożeń i 12 dodań, jeśli współczynnik 2 odbywa się poprzez mnożenie). Ten wzór, pierwotnie uważany za używany z notacją osi/kąta (wzór Rodriguesa), może być również stosowane do notacji kwaternionów. Daje to taki sam wynik, jak mniej wydajny, ale bardziej zwarty wzór na mnożenie kwaternionów .
- Użyj wzoru na kąt/oś , aby przekonwertować kąt/oś na macierz obrotu R , a następnie pomnóż przez wektor, lub podobnie użyj wzoru, aby przekonwertować zapis kwaternionów na macierz obrotu, a następnie pomnóż przez wektor. Konwersja kąta/osi na R kosztuje 12 mnożeń, 2 wywołania funkcji (sin, cos) i 10 dodawania/odejmowania; z punktu 1, obracanie za pomocą R dodaje dodatkowych 9 mnożeń i 6 dodań, co daje w sumie 21 mnożeń, 16 dodawania/odejmowania i 2 wywołania funkcji (sin, cos). Konwersja kwaternionu na R kosztuje 12 mnożeń i 12 dodawania/odejmowania; z punktu 1, obracanie za pomocą R dodaje dodatkowych 9 mnożeń i 6 dodań, co daje w sumie 21 mnożeń i 18 dodawania/odejmowań.
metoda | # mnoży się | # dodaj/odejmij | # grzech/cos | ogółem operacji | |
---|---|---|---|---|---|
Macierz rotacyjna | 9 rz | 6 rz | 0 | 15 n | |
Kwaterniony * | Bez matrycy pośredniej | 15 n | 15 n | 0 | 30 n |
Z matrycą pośrednią | 9 n + 12 | 6 n + 12 | 0 | 15 n + 24 | |
Oś kątowa | Bez matrycy pośredniej | 18 n | 12 n + 1 | 2 | 30 n + 3 |
Z matrycą pośrednią | 9 n + 12 | 6 n + 10 | 2 | 15 n + 24 |
Pary kwaternionów jednostkowych jako rotacje w przestrzeni 4D
Para kwaternionów jednostkowych z l i z r może reprezentować dowolny obrót w przestrzeni 4D . Mając czterowymiarowy wektor v → i zakładając, że jest to kwaternion, możemy obrócić wektor v → w następujący sposób:
Para macierzy reprezentuje obrót ℝ 4 . Zauważ, że ponieważ muszą dojeżdżać. Dlatego też istnieją dwie podgrupy dojeżdżających do pracy grupy czterowymiarowych rotacji. Dowolne czterowymiarowe obroty mają 6 stopni swobody; każda macierz reprezentuje 3 z tych 6 stopni swobody.
Ponieważ generatory czterowymiarowych rotacji można przedstawić za pomocą par kwaternionów (w następujący sposób), można również przedstawić wszystkie czterowymiarowe rotacje.
Zobacz też
- Mechanizm zapobiegający skręcaniu
- Binarna grupa wielościenna
- Bikwaternion
- Wykresy na SO(3)
- Algebry Clifforda
- Konwersja kwaternionów na kąty Eulera
- Zakrywanie przestrzeni
- Podwójny kwaternion
- Liczba podwójnie zespolona
- Geometria eliptyczna
- Formalizmy rotacyjne w trzech wymiarach
- Obrót (matematyka)
- Grupa spinowa
- Slerp , sferyczna interpolacja liniowa
- Olinde Rodrigues
- Williama Rowana Hamiltona
Dalsza lektura
- Grubin, Carl (1970). „Wyprowadzenie schematu kwaternionów za pomocą osi i kąta Eulera”. Dziennik statków kosmicznych i rakiet . 7 (10): 1261–1263. Bibcode : 1970JSpRo...7.1261G . doi : 10,2514/3,30149 .
- Battey-Pratt, EP; Racey, TJ (1980). „Model geometryczny cząstek podstawowych”. International Journal of Fizyki Teoretycznej . 19 (6): 437–475. Kod Bib : 1980IJTP...19..437B . doi : 10.1007/BF00671608 . S2CID 120642923 .
- Arribas, M.; Elipe, A.; Palacios, M. (2006). „Kwaterniony i obroty ciała sztywnego”. Celeste. Mech. Dyn. Astron . 96 (3–4): 239–251. Kod Bib : 2006CeMDA..96..239A . doi : 10.1007/s10569-006-9037-6 . S2CID 123591599 .
Zewnętrzne linki i zasoby
- Szewc, Ken. „Kwaterniony” (PDF) . Zarchiwizowane (PDF) od oryginału w dniu 2020-05-03.
- „Prosty typ kwaternionów i operacje w ponad siedemdziesięciu pięciu językach komputerowych” . w sprawie Kodeksu Rosetty
- Hart, John C. „Demonstrator kwaternionów” .
- Dam, Eik B.; Koch, Martin; Lillholm, Martin (1998). „Kwaterniony, interpolacja i animacja” (PDF) .
- Leandra, Vicci (2001). „Kwaterniony i obroty w 3 przestrzeni: algebra i jej interpretacja geometryczna” (PDF) .
- Howell, Thomas; Lafon, Jean-Claude (1975). „Złożoność produktu czwartorzędowego, TR75-245” (PDF) . Uniwersytet Cornella.
- Róg, Berthold KP (2001). „Kilka uwag na temat kwaternionów jednostek i rotacji” (PDF) .
- Lee, Byung-Uk (1991). Kwaternion jednostkowy Reprezentacja rotacji - Załącznik A, Różniczkowanie za pomocą kwaternionów - Załącznik B (PDF) (praca doktorska). Uniwersytet Stanford.
- Vance, Rod. „Kilka przykładów połączonych grup Liego” . Zarchiwizowane od oryginału w dniu 2018-12-15.
- „Wizualne przedstawienie rotacji kwaternionów” .