Kwaterniony i rotacja przestrzenna - Quaternions and spatial rotation

Jednostka kwaterniony , znane jako wersorów , zapewniają wygodny matematycznej notacji do reprezentowania przestrzenne orientacje i obroty elementów w przestrzeni trójwymiarowej. W szczególności kodują informacje o obrocie kąta osi wokół dowolnej osi. Obrotu i orientacji kwaterniony mieć zastosowanie w grafice komputerowej , wizji komputerowej , robotyki , nawigacji , dynamiki molekularnej , dynamiki lotu , mechaniki orbitalnej z satelitów ikrystalograficzna analiza tekstury .

Gdy są używane do reprezentowania obrotu, kwaterniony jednostek są również nazywane kwaternionymi obrotu, ponieważ reprezentują grupę obrotu 3D . Gdy są używane do reprezentowania orientacji (obrót względem układu współrzędnych odniesienia), są nazywane kwaternionami orientacji lub kwaternionymi położenia . Obrót przestrzenny wokół ustalonego punktu w radianach wokół osi jednostkowej, która oznacza oś Eulera, jest podana przez kwaternion , gdzie i .

W porównaniu z macierzami rotacyjnymi kwaterniony są bardziej zwarte, wydajne i stabilne numerycznie . W porównaniu do kątów Eulera są prostsze w komponowaniu i unikają problemu blokady kardanowej . Jednak nie są one tak intuicyjne i łatwe do zrozumienia jak kąty Eulera. I, w związku z okresowym charakterem od sinus i cosinus, różne kąty obrotu dokładnie przez okres ziemnego być zakodowany w identycznych quaternions i odzyskiwane kąty będą ograniczone do (w radianach ).

Używanie kwaternionów jako rotacji

Wizualizacja 3D kuli i obrotu wokół osi Eulera ( ) o kąt

W przestrzeni trójwymiarowej, zgodnie z twierdzeniem Eulera o obrocie , każdy obrót lub sekwencja obrotów ciała sztywnego lub układu współrzędnych wokół stałego punktu jest równoważny pojedynczemu obrocie o dany kąt wokół stałej osi (zwanej osią Eulera ), która przebiega przez stały punkt. Oś Eulera jest zazwyczaj reprezentowana przez wektor jednostkowy u ( na rysunku). Dlatego każdy obrót w trzech wymiarach można przedstawić jako kombinację wektora u i skalara .   

Quaternions dają prosty sposób zakodowania tej reprezentacji osi-kąta w czterech liczbach i mogą być użyte do zastosowania odpowiedniego obrotu do wektora pozycji , reprezentującego punkt w stosunku do początku w R 3 . Wektory euklidesowe, takie jak (2, 3, 4) lub ( a x ,  a y ,  a z ) można przepisać jako 2  i + 3  j + 4  k lub a x i + a y j + a z k , gdzie i , j , k są wektorami jednostkowymi reprezentującymi trzy osie kartezjańskie (tradycyjnie x , y , z ), a także przestrzegają zasad mnożenia podstawowych jednostek kwaternionowych.

Dlatego obrót kąta wokół osi określonej przez wektor jednostkowy

może być reprezentowana przez kwaternion. Można to zrobić za pomocą rozszerzenia o Wzór Eulera :

Można wykazać, że pożądany obrót może być stosowany do zwykłego wektora w przestrzeni 3-wymiarowej, uważany jako kwaterniony z prawdziwym koordynować równą zero, przez ocenę sprzęganiaP przez  q :

używając iloczynu Hamiltona , gdzie p = ( p x ′,  p y ′,  p z ′) jest nowym wektorem położenia punktu po obrocie. W implementacji programowej, koniugacja jest osiągana przez skonstruowanie kwaternionu, którego część wektorowa to p, a część rzeczywista równa się zero, a następnie wykonanie mnożenia kwaternionów. Część wektorowa wynikowego kwaternionu jest pożądanym wektorem p .

Matematycznie ta operacja przenosi zbiór wszystkich „czystych” kwaternionów p (tych z częścią rzeczywistą równą zero) — które stanowią trójwymiarową przestrzeń między kwaternionymi — w sobie, przez pożądany obrót wokół osi u , o kąt . (Każdy prawdziwy kwaternion jest przenoszony do siebie przez tę operację. Ale dla celów rotacji w przestrzeni trójwymiarowej, ignorujemy rzeczywiste kwaterniony.)

Obrót jest zgodny z ruchem wskazówek zegara, jeśli nasza linia widzenia wskazuje w tym samym kierunku co u .

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ą kwaternionymi jednostkowymi, to rotacja (sprzężenie) przez  pq wynosi

,

co jest tym samym, co obracanie (sprzęganie) o  q, a następnie o  p . Składowa skalarna wyniku jest z konieczności równa zero.

Quaternion odwrotność obrotu jest przeciwną rotacją, ponieważ . Kwadrat obrotu kwaternionów to obrót o dwukrotność kąta wokół tej samej osi. Bardziej ogólnie q n to obrót o  n razy kąt wokół tej samej osi co q . Można to rozszerzyć do dowolnego rzeczywistego n , co pozwala na płynną interpolację między orientacjami przestrzennymi; zobacz Slerp .

Dwa kwaterniony obrotowe można połączyć w jeden równoważny kwaternion według relacji:

gdzie q odpowiada obrocie q 1 , po którym następuje obrót q 2 . (Zauważ, że mnożenie kwaternionów nie jest przemienne .) Tak więc dowolna liczba obrotów może być skomponowana razem, a następnie zastosowana jako pojedynczy obrót.

Przykładowa operacja koniugacji

Obrót o 120 ° wokół pierwszych ukośnych permutacji I , J i K cyklicznie

Sprzężenie p przez q odnosi się do operacji pqpq −1 .

Rozważ obrót f wokół osi , przy kącie obrotu 120°, lub2 π/3 radiany .

pq p dla q =1 + i + j + k/2na urządzeniu 3-sferowym . Zauważ, że to jednostronne (czyli lewe ) mnożenie daje obrót kwaternionów o 60 °

Długość v to 3 , półkąt toπ/3(60°) z cosinusem 1/2, ( cos 60° = 0,5 ) i sinus 3/2, ( 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 przez zmianę znaku jego urojonych składników. W konsekwencji,

oraz

Można to uprościć, stosując zwykłe zasady arytmetyki kwaternionów, aby:

Zgodnie z oczekiwaniami, obrót odpowiada utrzymywaniu sześcianu nieruchomego w jednym punkcie i obracaniu go o 120° wokół długiej przekątnej przez ustalony punkt (zaobserwuj, jak trzy osie są permutowane cyklicznie ).

Macierz rotacji pochodna kwaternionów

Rotacja kwaternionów (z ) może być algebraicznie manipulowana w rotację macierzy , gdzie jest macierzą rotacji wyrażoną przez:

Tu i jeśli q jest kwaternionem jednostkowym, .

Można to uzyskać za pomocą rachunku wektorowego i algebry liniowej, jeśli wyrażamy i jako części skalarne i wektorowe oraz używamy wzoru na operację mnożenia w równaniu . Jeśli napiszemy jako , jako i jako , gdzie , 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ą jednostkową i macierzą transformacji , która po pomnożeniu od prawej z wektorem daje iloczyn krzyżowy .

Ponieważ , możemy zidentyfikować jako , co po rozwinięciu powinno skutkować wyrażeniem zapisanym powyżej w postaci macierzowej.

Odzyskiwanie reprezentacji kąta osi

Wyrażenie obraca dowolny kwaternion wektora wokół osi określonej przez wektor o kąt , gdzie i zależy od kwaternionu .

i można je znaleźć z następujących równań:

gdzie jest arcus tangens z dwoma argumentami .

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.

Kompozycja rotacji przestrzennych

Zaletą kompozycji kwaternionów kompozycji dwóch obrotów R B i R A jest to, że otrzymuje się bezpośrednio z osią obrotową i kąt obrotu kompozytu R C = R B R A .

Niech kwaternion związany z rotacją przestrzenną R będzie skonstruowany z jego osi obrotu S z kątem obrotu wokół tej osi. Powiązany kwaternion jest podany przez

Wtedy złożenie rotacji R B z R A jest rotacją R C = R B R A z osią obrotu i kątem określonym przez iloczyn kwaternionów

to jest

Rozwiń ten produkt, aby uzyskać

Podziel obie strony tego równania przez tożsamość, która jest prawem cosinusów na sferze ,

i obliczyć

Jest to wzór Rodriguesa na oś obrotu złożonego zdefiniowaną w kategoriach osi dwóch obrotów. Formułę tę wyprowadził 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ł postać składową tych równań, pokazując, że iloczyn kwaternionów oblicza trzeci wierzchołek trójkąta sferycznego z dwóch danych wierzchołków i związanych z nimi długości łuku, co również definiuje algebrę dla punktów w geometrii eliptycznej .

Kompozycja kąta osi

Znormalizowana oś obrotu, usuwając z ekspandowanego produktu, pozostawia wektor będący osią obrotu, pomnożony przez pewną stałą. Należy zachować ostrożność normalizując wektor osi, gdy jest lub gdzie wektor jest blisko ; czyli identyczność lub obrót 0 wokół dowolnej osi.

Lub z podstawieniami trygonometrycznymi dodawania kąta ...

wreszcie normalizując oś obrotu : lub .

Zróżnicowanie względem kwaternionów rotacyjnych

Obrócony kwaternion p' = q p q -1 musi być zróżnicowany względem obracającego się kwaternionu q , gdy obrót jest szacowany na podstawie optymalizacji numerycznej. Szacowanie kąta obrotu jest niezbędną procedurą rejestracji obiektów 3D lub kalibracji kamer. Dla unitarnego q i czystego urojonego p , czyli dla obrotu w przestrzeni 3D, pochodne obróconego kwaternionu można przedstawić za pomocą notacji rachunku macierzowego jako

Wyprowadzenie można znaleźć w.

Tło

Kwateryny

Te liczby zespolone mogą być określone przez wprowadzenie streszczenie symbol i który spełnia zwykłe zasady z algebraicznie i dodatkowo zasada i 2 = -1 . To wystarczy, aby odtworzyć wszystkie zasady arytmetyki liczb zespolonych: na przykład:

W ten sam sposób kwaterniony może być określona poprzez wprowadzenie Streszczenie symboli I , j , k , które spełniają zasady i 2 = J 2 = K 2 = I J K = -1 i zwykłe algebraicznych zasady wyjątkiem w przemiennej prawa mnożenia (znanym przykładem takiego nieprzemiennego mnożenia jest mnożenie macierzy ). Z tego wynikają wszystkie zasady arytmetyki kwaternionów, takie jak zasady mnożenia elementów bazy kwaternionów . Korzystając z tych zasad 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 . Gdy kwaterniony są używane w geometrii, 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 razem, ponieważ ta operacja jest zwykle niezdefiniowana. Jednakże, jeśli ktoś pamięta, że ​​jest to zwykły zapis dla rzeczywistych i urojonych części kwaternionu, staje się on bardziej uzasadniony. Innymi słowy, prawidłowe rozumowanie to dodanie dwóch kwaternionów, jednego z zerową częścią wektorową/urojoną, a drugiego z zerową częścią skalarną/rzeczywistą:

Możemy wyrazić mnożenie kwaternionów we współczesnym języku iloczynów wektorowych krzyżowych i kropkowych (które w rzeczywistości zostały zainspirowane kwaternionymi w pierwszej kolejności). Gdy mnożymy wektor/części urojone, zamiast reguł i 2 = j 2 = k 2 = ijk = −1 mamy zasadę mnożenia kwaternionów:

gdzie:

  • jest otrzymany kwaternion,
  • 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 przecinaniu ), podczas gdy mnożenia skalarno-skalarne i skalarno-wektorowe przechodzą. Z tych zasad wynika od razu, że ( patrz szczegóły ):

(lewy i prawy) multiplikatywna odwrotność lub odwrotność niezerowego kwaternionu jest podana przez stosunek sprzężony do normy ( patrz szczegóły ):

co można zweryfikować za pomocą obliczeń bezpośrednich (zwróć uwagę na podobieństwo do odwrotności multiplikatywnej liczb zespolonych ).

Tożsamość rotacji

Niech będzie wektorem jednostkowym (oś obrotu) i niech . Naszym celem jest pokazanie tego

daje wektor obrócony o kąt wokół osi . Rozwijając się (i mając to na uwadze ), mamy

Korzystanie z tożsamości trygonometrycznych :

gdzie i są składowymi v (odpowiednio prostopadłe i równoległe do u ). Jest to formuła obrotu o około u osi.

Operacje rotacji kwaternionów

Bardzo formalne wyjaśnienie właściwości użytych w tej sekcji podaje Altman.

Hipersfera obrotów

Wizualizacja przestrzeni obrotów

Kwaterniony jednostkowe reprezentują grupę rotacji euklidesowych w trzech wymiarach w bardzo prosty sposób. Zależność między rotacjami i kwaternionymi można zrozumieć, najpierw wizualizując samą przestrzeń rotacji.

Dwa oddzielne obroty, różniące się zarówno kątem, jak i osią, w przestrzeni obrotów. Tutaj długość każdego wektora osi zależy od odpowiedniej wielkości obrotu wokół tej osi.

Aby zobrazować przestrzeń obrotów, warto rozważyć prostszy przypadek. Każdy obrót w trzech wymiarach można opisać jako obrót o pewien kąt wokół pewnej osi ; dla naszych celów użyjemy wektora osi, aby ustalić ręczność dla naszego kąta. Rozważmy szczególny przypadek, w którym oś obrotu leży w płaszczyźnie xy . Możemy wtedy określić oś jednego z tych obrotów za pomocą punktu na okręgu, przez który przechodzi wektor, i możemy wybrać promień okręgu, aby określić 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 stałym 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 określona oś obrotu, a kąt obrotu (zero) nie ma znaczenia. Obrót o bardzo małym kącie obrotu można określić przez wycinek przez sferę równoległą do płaszczyzny xy i bardzo blisko bieguna północnego. Okrąg określony przez ten wycinek będzie bardzo mały, co odpowiada małemu kątowi obrotu. Gdy kąty obrotu stają się większe, plasterek porusza się w ujemnym kierunku z , a okręgi stają się większe, aż do osiągnięcia równika kuli, co odpowiada kątowi obrotu 180 stopni. Idąc dalej na południe, promienie okręgów stają się teraz mniejsze (odpowiadając bezwzględnej wartości kąta obrotu traktowanego jako liczba ujemna). Wreszcie, gdy dotrzemy do bieguna południowego, okręgi ponownie się kurczą do rotacji tożsamości, która jest również określana jako punkt na biegunie południowym.

Zauważ, że na tej wizualizacji można zobaczyć szereg cech charakterystycznych takich rotacji i ich reprezentacji. Przestrzeń obrotów jest ciągła, każdy obrót ma sąsiedztwo obrotów, które są prawie takie same, a to sąsiedztwo staje się płaskie w miarę zmniejszania się sąsiedztwa. Ponadto każdy obrót jest w rzeczywistości reprezentowany przez dwa antypody 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że być reprezentowany jako obrót wokół jakiejś osi lub, równoważnie, jako obrót ujemny wokół osi skierowanej w przeciwnym kierunku (tzw. podwójna osłona ). „Szerokość” okręgu reprezentującego określony kąt obrotu będzie równa połowie kąta reprezentowanego przez ten obrót, ponieważ gdy punkt jest przesuwany 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 wtedy konkretną oś obrotu.) Zauważ jednak, że ten zestaw obrotów nie jest zamknięty w kompozycji. Dwa kolejne obroty z osiami w płaszczyźnie xy niekoniecznie dadzą obrót, którego oś leży na płaszczyźnie xy , a zatem nie mogą być reprezentowane jako punkt na sferze. Nie będzie tak w przypadku rotacji ogólnej w 3 przestrzeni, w której rotacje tworzą zbiór domknięty w kompozycji.

Sfera obrotów dla obrotów, które mają oś „poziomą” (w płaszczyźnie xy ).

Wizualizację tę można rozszerzyć do ogólnego obrotu w przestrzeni trójwymiarowej. Obrót tożsamości jest punktem, a mały kąt obrotu wokół jakiejś osi może być reprezentowany 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 punkcie kula zaczyna się kurczyć, stając się punktem, gdy kąt zbliża się do 360 stopni (lub zero stopni od kierunku ujemnego). Ten zestaw rozszerzających się i kurczących sfer reprezentuje hipersferę w czterowymiarowej przestrzeni (3-sfera). Tak 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ę „płaskie” (tj. będzie reprezentowane przez trójwymiarową euklidesową przestrzeń punktów) w miarę zmniejszania się sąsiedztwa. Zachowaniu temu odpowiada zbiór kwaternionów jednostkowych: Ogólny kwaternion reprezentuje punkt w przestrzeni czterowymiarowej, ale ograniczenie go do jednostki wielkości daje trójwymiarową przestrzeń równoważną powierzchni hipersfery. Wielkość kwaternionu jednostki będzie jednością, odpowiadającą hipersferze o promieniu jednostki. Część wektorowa kwaternionu jednostkowego reprezentuje promień 2-sfery odpowiadającej osi obrotu, a jej wielkość jest cosinusem połowy kąta obrotu. Każda rotacja jest reprezentowana przez dwie jednostki kwaternionów o przeciwnym znaku i, podobnie jak w przestrzeni obrotów w trzech wymiarach, iloczyn kwaternionów dwóch kwaternionów jednostkowych da jednostkę kwaternionów. Również przestrzeń kwaternionów jednostkowych jest „płaska” w każdym nieskończenie małym sąsiedztwie danego kwaternionów jednostkowych.

Parametryzacja przestrzeni obrotów

Możemy sparametryzować powierzchnię kuli dwoma współrzędnymi, takimi jak szerokość i długość geograficzna. Ale szerokość i długość geograficzna są źle zachowane ( zdegenerowane ) na biegunach północnym i południowym, chociaż bieguny nie różnią się wewnętrznie od innych punktów na kuli. Na biegunach (szerokości geograficzne +90° i -90°) długość geograficzna staje się bez znaczenia.

Można wykazać, że żaden dwuparametrowy układ współrzędnych nie jest w stanie uniknąć takiej degeneracji. Możemy uniknąć takich problemów poprzez osadzenie sfery w przestrzeni trójwymiarowej i parametryzację jej 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) , a równik w w = 0 , x 2 + y 2 = 1 . Punkty na sferze spełniają warunek w 2 + x 2 + y 2 = 1 , więc nadal mamy tylko dwa stopnie swobody, chociaż są trzy współrzędne. Punkt ( w ,  x ,  y ) na sferze reprezentuje obrót w zwykłej przestrzeni wokół osi poziomej skierowanej przez wektor ( x ,  y , 0 ) o kąt .

W ten sam sposób hipersferyczna przestrzeń obrotów 3D może być sparametryzowana trzema kątami (kątami 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 skierowanej przez wektor ( x ,  y ,  z ) o kąt

Wyjaśnianie własności kwaternionów za pomocą rotacji

Nieprzemienność

Mnożenie kwaternionów jest nieprzemienne . Ten fakt wyjaśnia, w jaki sposób formuła pq 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 złożeniu rotacji trójwymiarowych, właściwość ta może być intuicyjna, pokazując, że rotacje trójwymiarowe nie są w ogólności przemienne.

Ustaw dwie książki obok siebie. Obróć jeden z nich o 90 stopni zgodnie z ruchem wskazówek zegara wokół osi z , a następnie obróć go o 180 stopni wokół osi x . Weź drugą książkę, najpierw obróć ją o 180 ° wokół osi x , a później o 90 ° zgodnie z ruchem wskazówek zegara wokół z . Obie książki nie kończą się równolegle. To pokazuje, że generalnie kompozycja dwóch różnych obrotów wokół dwóch odrębnych osi przestrzennych nie będzie komutować.

Orientacja

Wektor iloczyn , używane do zdefiniowania reprezentację oś ogniskową, czy przyznawać orientacji ( „skrętów”) na powierzchni: w trójwymiarowej przestrzeni wektorowej trzy wektory w równaniu a  x  b = c zawsze tworzą prawy zbiór leworęczny (lub zbiór leworęczny, w zależności od tego, jak zdefiniowany jest iloczyn krzyżowy), ustalając w ten sposób orientację w przestrzeni wektorowej. Alternatywnie zależność od orientacji wyraża się w odniesieniu do takiego u →, które określa obrót względem wektorów osiowych . W formalizmie czwartorzędowym wybór orientacji przestrzeni odpowiada porządkowi mnożenia: ij = k ale ji = − k . Jeśli odwrócimy orientację, to powyższy wzór staje się pq −1 p q , tj. jednostka q zostaje zastąpiona sprzężonym kwaternionem – to samo zachowanie jak w przypadku wektorów osiowych.

Konwencje alternatywne

Poinformowano, że istnienie i dalsze stosowanie alternatywnej konwencji kwaternionów w przemyśle lotniczym i, w mniejszym stopniu, społeczności robotycznej wiąże się ze znacznymi i ciągłymi kosztami [ sic ]. Ta alternatywna konwencja została zaproponowana przez Shuster MD w i odchodzi od tradycji poprzez odwrócenie definicji mnożenia kwaternionowych elementów bazowych tak, że zgodnie z konwencją Shustera, podczas gdy definicja Hamiltona to .

Zgodnie z konwencją Shustera, wzór na mnożenie dwóch kwaternionów jest zmieniony w taki sposób, że

Wzór na obracanie wektora o kwaternion zmienia się na

Aby zidentyfikować zmiany w konwencji Shustera, sprawdź, czy znak przed iloczynem krzyżowym jest odwrócony z plusa na minus.

Wreszcie wzór na przekształcenie kwaternionu w macierz rotacji zmienia się na

co jest dokładnie transpozycją macierzy rotacji przekonwertowanej zgodnie z tradycyjną konwencją.

Poniższa tabela grupuje aplikacje według ich przestrzegania jednej z konwencji kwaternionów

Aplikacje programowe według stosowanej konwencji

Konwencja mnożenia Hamiltona Konwencja mnożenia Shuster
  • Wolfram Matematyka
  • MATLAB Robotics System Toolbox
  • Zestaw narzędzi MATLAB dla przemysłu lotniczego
  • ROS
  • Eigen
  • Kwaterniony doładowania
  • Quaternion.js
  • Ceres Solver
* Biblioteka matematyczna Microsoft DirectX

Chociaż użycie którejkolwiek z konwencji nie ma wpływu na możliwości ani poprawność stworzonych w ten sposób aplikacji, autorzy przekonywali, że konwencja Shustera powinna zostać porzucona, ponieważ odchodzi od znacznie starszej konwencji mnożenia kwaternionów autorstwa Hamiltona i może nigdy nie zostać przyjęta przez matematyczne lub teoretyczne obszary fizyki.

Porównanie z innymi reprezentacjami rotacji

Zalety kwaternionów

Reprezentacja obrotu jako kwaternion (4 liczby) jest bardziej zwarta niż reprezentacja jako macierz ortogonalna (9 liczb). Ponadto dla danej osi i kąta można łatwo skonstruować odpowiadający kwaternion i odwrotnie, dla danego kwaternionu można łatwo odczytać oś i kąt. Oba są znacznie trudniejsze z macierzami lub kątami Eulera .

W grach wideo i innych aplikacjach często interesują się „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 jakaś inna rotacja początkowa), a drugim jest zamierzony obrót końcowy. Jest to bardziej problematyczne w przypadku innych reprezentacji rotacji.

Podczas komponowania kilku obrotów na komputerze z konieczności kumulują się błędy zaokrąglania. Kwaternion, który jest nieco przesunięty, nadal reprezentuje obrót po znormalizowaniu: macierz, która jest nieco przesunięta, może nie być już ortogonalna i trudniej jest ją przekonwertować z powrotem do właściwej macierzy ortogonalnej.

Kwaterniony również unikają zjawiska zwanego blokadą przegubu, które może wystąpić, gdy, na przykład w systemach obrotowych pitch/odchylenia/przechyłu , skok jest obracany o 90 ° w górę lub w dół, tak że odchylenie i przechylenie odpowiadają temu samemu ruchowi i stopniowi utracona jest swoboda rotacji. Na przykład w lotniczym, inercyjnym systemie nawigacyjnym opartym na gimbalu może to mieć katastrofalne skutki, jeśli samolot stromo nurkuje lub wznosi się.

Konwersja do i z reprezentacji macierzowej

Od kwaterniony do macierzy ortogonalnej

Macierzą ortogonalną odpowiadający obrotową przez urządzenie kwaternionów Z = + b I + c J + d k (o | Z | = 1 ), gdy po pomnożenie wektora kolumny podaje się

Ta macierz rotacji jest używana na wektorze w as . Reprezentacja kwaternionów tego obrotu jest podana przez:

gdzie jest sprzężenie kwaternionu podanego przez

Również mnożenie kwaternionów jest zdefiniowane jako (zakładając, że a i b są kwaternionymi, tak jak z powyżej):

gdzie kolejność a , b jest ważna, ponieważ iloczyn krzyżowy dwóch wektorów nie jest przemienny.

Od macierzy ortogonalnej do kwaternionu

Należy być ostrożnym przy konwersji macierzy rotacji na kwaternion, ponieważ kilka prostych metod jest niestabilnych, gdy ślad (suma elementów przekątnych) macierzy rotacji jest zerowy lub bardzo mały. Aby uzyskać stabilną metodę konwersji macierzy ortogonalnej na kwaternion, zobacz podsekcję Quaternion w artykule macierz rotacji .

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). Tak otrzymany kwaternion będzie odpowiadał rotacji najbliższej pierwotnej macierzy Q .

Porównania wydajności

W tej sekcji omówiono wpływ używania kwaternionów na wydajność w porównaniu z innymi metodami (matryce osi/kąta lub obrotu) do wykonywania obrotów w 3D.

Wyniki

Wymagania dotyczące przechowywania
metoda Składowanie
Macierz rotacji 9
Kwaternion 3 lub 4 (patrz poniżej)
Kąt/oś 3 lub 4 (patrz poniżej)

Tylko trzy z elementów kwaternionów są niezależne, ponieważ obrót jest reprezentowany przez kwaternion jednostkowy. Do dalszych obliczeń zwykle potrzebne są wszystkie cztery elementy, więc wszystkie obliczenia wiązałyby się z dodatkowym kosztem odzyskania czwartego składnika. Podobnie kąt/oś można zapisać w trójskładnikowym wektorze poprzez pomnożenie kierunku jednostki przez kąt (lub jego funkcję), ale wiąże się to z dodatkowymi kosztami obliczeniowymi podczas używania go do obliczeń.

Porównanie wydajności operacji łańcucha rotacyjnego
metoda # mnoży # dodaj/odejmij łączna liczba operacji
Macierze rotacji 27 18 45
Kwateryny 16 12 28
Porównanie wydajności operacji obracania wektorów
metoda # mnoży # dodaj/odejmij # grzech/cos łączna liczba operacji
Macierz rotacji 9 6 0 15
Kwaterniony * Bez matrycy pośredniej 15 15 0 30
Kwaterniony * Z matrycą pośrednią 21 18 0 39
Kąt/oś Bez matrycy pośredniej 18 13 2 30 + 3
Kąt/oś Z matrycą pośrednią 21 16 2 37 + 2

* Uwaga: Quaternions można domyślnie przekształcić w macierz podobną do rotacji (12 mnożeń i 12 dodawania/odejmowania), co wyrównuje następujące wektory kosztu rotacji za pomocą metody macierzy rotacji.

Stosowane metody

Istnieją trzy podstawowe podejścia do obracania wektora v :

  1. Oblicz iloczyn macierzy z macierzy obrotu 3 × 3 R i oryginalnej macierzy kolumnowej 3 × 1 reprezentującej v . Wymaga to 3 × (3 zwielokrotnienia + 2 dodawania) = 9 zwielokrotnień i 6 dodanych, najbardziej wydajna metoda obracania wektora.
  2. Obrót może być reprezentowany przez kwaternion o jednostkowej długości q = ( w ,  r ) ze skalarną (rzeczywistą) częścią w i wektorową (urojoną) częścią r . Obrót można zastosować do wektora 3D v za pomocą wzoru . Wymaga to tylko 15 mnożenia i 15 dodawania do oceny (lub 18 mnożenia i 12 dodawania, jeśli współczynnik 2 jest wykonywany przez mnożenie). Ten wzór, pierwotnie uważany za używany z zapisem osi/kąta (wzór Rodriguesa), może być również stosowane do notacji kwaternionów. Daje to ten sam wynik, co mniej wydajna, ale bardziej zwarta formuła mnożenia kwaternionów .
  3. Użyj wzoru kąta/osi, aby przekonwertować kąt/oś na macierz obrotu R, a następnie pomnóż przez wektor, lub podobnie użyj wzoru, aby przekonwertować notację kwaternionów na macierz obrotu, a następnie pomnożyć przez wektor. Przekształcenie kąta/osi na R kosztuje 12 mnożenia, 2 wywołania funkcji (sin, cos) i 10 dodawania/odejmowania; od pozycji 1, obracanie za pomocą R dodaje dodatkowe 9 mnożenia i 6 dodawania, co daje w sumie 21 mnożeń, 16 dodawania/odejmowania i 2 wywołania funkcji (sin, cos). Zamiana kwaternionu na R kosztuje 12 mnożenia i 12 dodawania/odejmowania; od pozycji 1, obracanie za pomocą R dodaje dodatkowe 9 mnożenia i 6 dodawania, co daje w sumie 21 mnożeń i 18 dodawania/odejmowania.
Porównanie wydajności n wektorowych operacji obrotowych
metoda # mnoży # dodaj/odejmij # grzech/cos łączna liczba operacji
Macierz rotacji 9 n 6 n 0 15 n
Kwaterniony * Bez matrycy pośredniej 15 n 15 n 0 30 n
Kwaterniony * Z matrycą pośrednią 9 n + 12 6 n + 12 0 15 n + 24
Kąt/oś Bez matrycy pośredniej 18 n 12 n + 1 2 30 n + 3
Kąt/oś Z matrycą pośrednią 9 n + 12 6 n + 10 2 15 n + 24

Pary kwaternionów jednostkowych jako obroty 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 ten sposób:

Para macierzy reprezentuje obrót ℝ 4 . Zauważ, że ponieważ , dwie macierze muszą być komutowane. W związku z tym istnieją dwie podgrupy komutacyjne grupy czterowymiarowych obrotów. Dowolne czterowymiarowe rotacje mają 6 stopni swobody; każda macierz reprezentuje 3 z tych 6 stopni swobody.

Ponieważ generatory czterowymiarowych rotacji mogą być reprezentowane przez pary kwaternionów (w następujący sposób), wszystkie czterowymiarowe rotacje mogą być również reprezentowane.

Zobacz też

Bibliografia

Dalsza lektura

Linki zewnętrzne i zasoby