Orientacja w 3D: macierz obrotu, kąty Eulera, oś i kąt, kwaterniony
Pozycję samolotu opisują trzy liczby i nikt się nad tym nie zastanawia. Z orientacją jest gorzej: trzy kąty, którymi posługuje się pilot, w pewnym położeniu przestają działać, a obrotów nie da się dodawać jak wektorów. Ta lekcja zestawia cztery sposoby zapisu orientacji, pokazuje, gdzie każdy z nich się psuje, i kończy na tym, którego używa prawie każdy kontroler lotu, od drona po stację kosmiczną: kwaternionie. To czysta kinematyka. Siły i momenty, które orientację zmieniają, przyjdą w następnej lekcji.
Czas
ok. 2,5 h teorii + ok. 2,5 h zadań
Zadania
15 zadań w treści + 5 do przemyślenia, z odpowiedziami
Źródła
H. Schaub, J. L. Junkins, Analytical Mechanics of Aerospace Systems, rozdz. 3.1–3.4; F. L. Markley, J. L. Crassidis, Fundamentals of Spacecraft Attitude Determination and Control, rozdz. 2.7–2.9 i 3.1–3.2
0 Prolog: czwarty przegub na Gwiazdkę
Statek Apollo wiedział, jak jest zorientowany, dzięki platformie żyroskopowej zawieszonej w trzech pierścieniach kardanowych. Platforma trzymała stały kierunek w przestrzeni, a kąty między pierścieniami odczytywane z czujników to były wprost trzy kąty orientacji statku. Inżynierowie wiedzieli, że przy jednym ustawieniu dwa pierścienie układają się w jednej płaszczyźnie i platforma traci jeden stopień swobody. Zamiast dodawać czwarty pierścień, woleli prostszy i lżejszy układ z ostrzeżeniem: komputer sygnalizował zbliżanie się do tego położenia, a dalej zamrażał platformę i trzeba ją było ustawiać na nowo według gwiazd. Michael Collins, który w czasie pobytu modułu księżycowego Apollo 11 na Księżycu krążył samotnie po orbicie i sam pilnował orientacji statku, zażartował w rozmowie z Houston, czy ktoś nie przysłałby mu czwartego przegubu na Gwiazdkę.
Ta sama osobliwość siedzi w trzech kątach, którymi opisujemy orientację samolotu na co dzień. Nie jest wadą konkretnego urządzenia, tylko geometrii: żaden zapis orientacji trzema liczbami nie działa wszędzie. Dlatego kontrolery lotu liczą na czterech liczbach.
Pytanie na start. Obracasz książkę o 90∘ wokół osi północ–południe, a potem o 90∘ wokół pionu. Czy da się ją przeprowadzić z położenia wyjściowego do końcowego jednym obrotem? Jeśli tak, wokół jakiej osi i o jaki kąt? Odpowiedź w części 3 i w przykładzie 6.2.
1 Układy odniesienia i macierz orientacji
Potrzebujemy dwóch układów osi.
Układ nawigacyjny NED (ang. north, east, down): oś x na północ, y na wschód, z w dół. Przy lotach blisko Ziemi i na krótkich odcinkach traktujemy go jak układ inercjalny. Oś z w dół wygląda dziwnie, ale ma zalety: wysokość to −z, a dodatni kąt pochylenia oznacza nos do góry.
Układ ciała, sztywno związany z samolotem: x do przodu przez nos, y wzdłuż prawego skrzydła, z w dół przez podłogę kabiny. Prędkość kątową samolotu zapisujemy w tych osiach jako ω=(p,q,r): przechylanie, pochylanie, odchylanie. To mierzą żyroskopy przykręcone do kadłuba.
Orientacja to położenie układu ciała względem układu nawigacyjnego. Najpełniejszy jej opis to macierz, która przelicza składowe dowolnego wektora z osi ciała na osie NED. W lekcji 2.2 Przekształcenia liniowe: obroty, zmiana bazy, transformacja Lorentza widzieliśmy, że macierz przekształcenia ma w kolumnach obrazy wektorów bazy. Tu oznacza to coś bardzo konkretnego:
Kolumny R to osie samolotu zapisane w osiach NED. Pierwsza kolumna mówi, gdzie wskazuje nos. Przeliczenie w drugą stronę to transpozycja: vb=RTvn.
Każdy element Rij to iloczyn skalarny dwóch wektorów jednostkowych, czyli kosinus kąta między osią i układu NED a osią j układu ciała. Stąd druga nazwa: macierz kosinusów kierunkowych (ang. direction cosine matrix, DCM).
Macierz ma 9 liczb, ale nie są niezależne. Warunek RTR=I to 6 równań (trzy kolumny mają długość 1, trzy pary kolumn są prostopadłe). Zostają 3 stopnie swobody, tyle co w intuicji: orientację wyznaczają trzy liczby. Macierz jest zapisem nadmiarowym, ale bez żadnych osobliwości i z prostym składaniem: obrót R1, a po nim obrót R2 (oba opisane w osiach stałych) to R2R1.
Zadania · część 1
3 zadania · ok. 20 min
Pierwsza kolumna macierzy orientacji samolotu to [0,814;0,470;−0,342]. W którą stronę świata leci samolot i czy nos jest uniesiony?
Odpowiedź
Nos wskazuje na północny wschód (azymut atan2(0,470;0,814)=30∘) i do góry, bo składowa „w dół” jest ujemna: arcsin0,342=20∘ nad poziomem.
Ile niezależnych równań daje warunek RTR=I dla macierzy 3×3? Dlaczego nie 9?
Odpowiedź
6. Macierz RTR jest symetryczna, więc równania pod przekątną powtarzają te nad nią: 3 na przekątnej (długości kolumn) i 3 nad nią (prostopadłość par). Zostaje 9−6=3 stopnie swobody.
W osiach NED przyspieszenie grawitacyjne to [0;0;g]. Jakie składowe ma w osiach ciała? Policz dla pochylenia 20∘ i przechylenia 10∘ (macierz z przykładu 6.1, trzeci wiersz [−0,342;0,163;0,925]).
Odpowiedź
gb=RT[0;0;g] to g razy trzecia kolumna RT, czyli trzeci wiersz R: g[−0,342;0,163;0,925]. Ogólnie g[−sinθ;sinφcosθ;cosφcosθ]. Ten wzór zobaczymy jeszcze raz w lekcji 3 Fuzja czujników w 3D: estymacja orientacji na kwaternionach: z niego akcelerometr „wie”, gdzie jest dół.
2 Kąty Eulera i blokada przegubu
Pilot nie myśli macierzą. Myśli trzema kątami: kurs, pochylenie, przechylenie. W lotnictwie to kąty Eulera w kolejności 3-2-1 (oś z, potem y, potem x). Zaczynamy od samolotu ustawionego osiami zgodnie z NED i obracamy go kolejno:
Dlaczego macierze w tej kolejności? Obroty „wokół nowych osi” można zastąpić obrotami wokół osi stałych wykonanymi w odwrotnej kolejności: najpierw φ wokół x, potem θ wokół y, na końcu ψ wokół z, wszystkie wokół osi NED. Obrót wykonany jako pierwszy stoi w iloczynie po prawej, stąd RzRyRx. Tę zamianę warto sprawdzić samemu na dwóch obrotach o 90∘ (zadanie 2.1).
Gdzie się psuje? Przy θ=±90∘ nos wskazuje pion, czyli oś pierwszego obrotu (ψ) i oś ostatniego (φ) się pokrywają. Zmiana ψ i zmiana φ dają wtedy ten sam obrót wokół pionu, a macierz zależy tylko od różnicy ψ−φ (zadanie 2.2). Mamy trzy liczby, ale tylko dwa niezależne kierunki obrotu. To jest blokada przegubu (ang. gimbal lock). W platformie Apollo trzy kąty były fizycznymi kątami pierścieni, więc blokada oznaczała prawdziwą utratę stopnia swobody mechanizmu. W komputerze nic się nie blokuje, ale wzory na pochodne kątów dzielą przez cosθ (część 5).
Symulacja 1 Samolot ustawiony kątami Eulera, z trzema osiami, wokół których te kąty obracają. Pełna oś to pion (oś ψ), przerywane to oś skrzydeł po odchyleniu (oś θ) i oś nosa (oś φ). Ustaw θ=90∘ i porównaj działanie suwaków ψ i φ.
Zadania · część 2
4 zadania · ok. 35 min
Sprawdź na książce albo telefonie: obrót o 90∘ wokół osi z, a potem o 90∘ wokół nowej osi y daje to samo położenie co obrót o 90∘ wokół stałej osi y, a potem o 90∘ wokół stałej osi z.
Odpowiedź
Tak. W macierzach oba opisy dają Rz(90∘)Ry(90∘). Obroty wokół osi związanych z ciałem składa się „od lewej do prawej” w kolejności wykonywania, wokół osi stałych „od prawej do lewej”.
Wstaw θ=90∘ do macierzy z ramki i pokaż, że zależy ona tylko od ψ−φ.
Odpowiedź
cθ=0, sθ=1: R=00−1sφcψ−cφsψsφsψ+cφcψ0cφcψ+sφsψcφsψ−sφcψ0=00−1sin(φ−ψ)cos(φ−ψ)0cos(φ−ψ)−sin(φ−ψ)0. Np. (ψ,φ)=(40∘,10∘) i (50∘,20∘) dają tę samą macierz. Kąty Eulera nie są tu jednoznaczne.
Odczytaj kąty Eulera z macierzy R=010−100001.
Odpowiedź
θ=−arcsin0=0, φ=atan2(0,1)=0, ψ=atan2(1,0)=90∘. Lot poziomy na wschód.
Samolot jest w ustalonym zakręcie: przechylenie φ=30∘, pochylenie 0, kurs zmienia się o ψ˙=0,1 rad/s. Jakie prędkości kątowe p,q,r mierzą żyroskopy na kadłubie? (Wzory na p,q,r w części 5.)
Odpowiedź
p=φ˙−ψ˙sinθ=0, q=θ˙cosφ+ψ˙cosθsinφ=0,05 rad/s, r=−θ˙sinφ+ψ˙cosθcosφ=0,087 rad/s. Obrót wokół pionu widziany z przechylonego samolotu rozkłada się na pochylanie i odchylanie. Dlatego w zakręcie trzeba ściągnąć drążek: samolot musi się stale pochylać w swoich osiach.
3 Twierdzenie Eulera: oś i kąt
Euler udowodnił w 1775 roku coś, co wcale nie jest oczywiste: każdą zmianę orientacji bryły można wykonać jednym obrotem wokół pewnej osi. Niezależnie od tego, ile obrotów i w jakiej kolejności wykonaliśmy po drodze. Dowód jest krótki, jeśli znamy wartości własne (lekcja 2.3 Wartości i wektory własne).
R zachowuje długości, więc każda wartość własna ma moduł 1: ∣λ∣=1.
Wielomian charakterystyczny jest stopnia 3 o współczynnikach rzeczywistych, więc ma co najmniej jeden pierwiastek rzeczywisty, a zespolone występują w parach sprzężonych.
Iloczyn wartości własnych to detR=1. Możliwości: {1,eiα,e−iα} albo {1,−1,−1} (to drugie to szczególny przypadek α=180∘). W obu jest λ=1.
Wektor własny n dla λ=1 spełnia Rn=n: ten kierunek nie zmienia się przy obrocie. To oś obrotu. W płaszczyźnie prostopadłej do niej R działa jak obrót płaski o kąt α.
W drugą stronę: trR=1+2cosα, a dla 0<α<180∘: n=2sinα1[R32−R23;R13−R31;R21−R12].
Macierz [n]× zapisuje iloczyn wektorowy: [n]×v=n×v. Wzór Rodriguesa rozkłada wektor na część wzdłuż osi (nie zmienia się) i część prostopadłą (obraca się o α w płaszczyźnie). Ślad wynika wprost z wartości własnych: 1+eiα+e−iα=1+2cosα.
Oś i kąt to cztery liczby z jednym więzem (∣n∣=1) albo trzy, jeśli zapiszemy je jako jeden wektor αn (wektor obrotu). Ten zapis jest najbardziej naturalny dla człowieka, ale ma kłopoty: przy α=0 oś jest nieokreślona, a przy α=180∘ wektory αn i −αn dają tę samą orientację. Składanie dwóch obrotów w tym zapisie jest uciążliwe. Wszystkie te kłopoty usuwa jedna sztuczka: zamiast kąta używać połowy kąta.
Zadania · część 3
3 zadania · ok. 30 min
Ślad macierzy orientacji wynosi 2,62. O jaki kąt trzeba obrócić samolot jednym obrotem, żeby przejść do tej orientacji z położenia zerowego?
Odpowiedź
cosα=(2,62−1)/2=0,81, α=35,9∘ (dokładnie, dla macierzy z przykładu 6.1: 35,8∘).
Znajdź oś i kąt dla R=Rx(90∘)Rz(90∘) (najpierw 90∘ wokół stałej osi z, potem wokół stałej osi x).
Odpowiedź
R=001−1000−10, trR=0, więc cosα=−21, α=120∘. n=2⋅0,8661[0−(−1);0−1;0−(−1)]=[1;−1;1]/3. Odwrotna kolejność (przykład 6.2) daje inną oś, [1;1;1]/3: obroty nie są przemienne.
Dlaczego wzór na n z ramki zawodzi przy α=180∘? Jak wtedy znaleźć oś?
Odpowiedź
sinα=0 i R jest symetryczna, więc licznik i mianownik są zerowe. Przy α=180∘ wzór Rodriguesa daje R=I+2[n]×2=2nnT−I, więc nnT=(R+I)/2: każda niezerowa kolumna R+I jest równoległa do osi. To samo pokazuje wektor własny dla λ=1.
4 Kwaterniony
Hamilton przez lata szukał liczb, które robią w przestrzeni to, co liczby zespolone robią na płaszczyźnie (lekcja 1.7 Liczby zespolone i fazory: obrót o θ to mnożenie przez eiθ). Znalazł je w 1843 roku, w czterech wymiarach: q=q0+q1i+q2j+q3k, gdzie i2=j2=k2=ijk=−1. Dla nas wygodniejszy jest zapis „skalar plus wektor”: q=(q0,q).
Brak osobliwości. Każda orientacja ma kwaternion i każdy kwaternion jednostkowy jest orientacją. Przy α=0 kwaternion to po prostu (1,0), bez nieokreślonej osi.
Tanie składanie. Iloczyn kwaternionów to 16 mnożeń, iloczyn macierzy 27.
Jeden więz zamiast sześciu. Błędy numeryczne usuwa się, dzieląc przez normę.
Prosta kinematyka, liniowa w q (część 5).
Ceną jest podwójne pokrycie: q i −q dają tę samą macierz, bo R jest kwadratowa w składowych q. Obrót o 360∘ zmienia kwaternion z (1,0) na (−1,0), a do wartości wyjściowej wraca on dopiero po 720∘. To nie jest artefakt rachunku. Obrót o 360∘ i obrót o 720∘ są naprawdę różne jako drogi w przestrzeni orientacji: trzymając talerz na płasko na dłoni, możesz obrócić go dwa razy wokół pionu i wrócić z ręką w położeniu wyjściowym, a po jednym obrocie ramię zostaje skręcone (tzw. sztuczka z talerzem). W praktyce sterowania wynika z tego jedna reguła: przed porównaniem dwóch kwaternionów wybierz znak tak, żeby q0≥0, bo inaczej regulator „obróci samolot naokoło” o prawie 360∘ (więcej w kursie astronautyki, przy sterowaniu orientacją satelity).
Symulacja 2 Wybierz oś obrotu i kąt. Rysunek 3D: samolot obrócony wokół tej osi (blady: położenie wyjściowe, czerwona linia: droga nosa). Wykres: składowe kwaternionu w funkcji kąta. Porównaj kąty 120∘ i 480∘: ta sama orientacja, przeciwne znaki kwaternionu.
Zadania · część 4
3 zadania · ok. 30 min
Zapisz kwaternion obrotu o 90∘ wokół osi z. Podnieś go do kwadratu (pomnóż przez siebie). Jaki obrót otrzymałeś?
Odpowiedź
q=(cos45∘,0,0,sin45∘)=(0,707;0;0;0,707). q⊗q=(0,5−0,5,2⋅0,707⋅0,707k+0)=(0,0,0,1): obrót o 180∘ wokół z, bo cos90∘=0, sin90∘=1.
Obróć wektor v=[1;0;0] kwaternionem q=(0,707;0;0;0,707) ze wzoru q⊗(0,v)⊗q∗.
Odpowiedź
q⊗(0,v)=(−0,0,707v+q×v)=(0;0,707;0,707;0) (bo k×i=j). Mnożąc przez q∗=(0,707;0;0;−0,707): (0;0;1;0). Wynik [0;1;0], zgodnie z obrotem o 90∘ wokół z.
Pokaż, że q i −q dają tę samą macierz R. Czy to samo jest prawdą dla wzoru q⊗(0,v)⊗q∗?
Odpowiedź
Każdy element R to iloczyn dwóch składowych q; zmiana znaku wszystkich składowych nie zmienia iloczynów. We wzorze z mnożeniem q występuje dwa razy (q i q∗), więc znaki się znoszą: tak, wynik ten sam.
5 Kinematyka: jak orientacja zmienia się w czasie
Żyroskopy mierzą ω=(p,q,r) w osiach ciała. Żeby wiedzieć, jak samolot jest zorientowany, trzeba z nich policzyć zmianę orientacji i scałkować. Jak zależy od ω pochodna każdego z zapisów?
Skąd wzór na R˙? Wektor v przyklejony do samolotu ma stałe składowe w osiach ciała, a w osiach NED zmienia się jak punkt bryły obracającej się z prędkością ω: v˙n=ωn×vn (lekcja Dział 4: Ruch obrotowy i bryła sztywna). Wstawiając vn=Rvb i ωn=Rωb, dostajemy R˙vb=R(ωb×vb) dla każdego vb.
Porównajmy trzy wzory.
Kąty Eulera: nieliniowe, z cosθ w mianowniku. Przy θ→±90∘ pochodne ψ˙ i φ˙ rosną bez ograniczeń, nawet gdy samolot obraca się powoli. Np. przy θ=85∘ i powolnym odchylaniu r=0,1 rad/s kurs zmienia się o 66∘/s, a przy 89∘ o 328∘/s.
Macierz: liniowa w R, bez osobliwości, ale 9 równań, a błędy całkowania psują ortogonalność. Prosty schemat Eulera z krokiem 0,01 s przy ω=(0,3;0,5;0,2) rad/s po minucie daje detR=1,26: „samolot” rozciągnął się o 12% w każdym kierunku prostopadłym do ω (wzdłuż ω nie zmienił się).
Kwaternion: liniowy w q, cztery równania, jeden więz łatwy do przywrócenia normalizacją. Bez normalizacji ten sam schemat odchodzi od ∣q∣=1 o 3%, z normalizacją błąd znika.
Symulacja 3 Samolot robi pętlę (q=0,5 rad/s) i przy okazji lekko się przechyla (p). Prędkość kątowa w osiach ciała jest stała, więc prawdziwą orientację znamy dokładnie. Ten sam integrator (RK4, stały krok) całkuje kąty Eulera i kwaternion. Zmniejsz p do ok. 0,005 rad/s: nos przechodzi bliżej pionu, a błąd kątów Eulera rośnie o rzędy wielkości.
Zjawisko w symulacji ma prosty opis: przy p=0,005 rad/s nos mija pion o 0,6∘, kąty ψ i φ w ułamku sekundy przeskakują o 180∘, a ich pochodne sięgają dziesiątek radianów na sekundę. RK4 z krokiem 0,1 s robi na tym odcinku błąd kilkunastu stopni, który zostaje do końca pętli. Kwaternion przy tym samym kroku ma błąd poniżej 10−5 stopnia. Dlatego kontroler lotu całkuje kwaternion (albo macierz), a kąty Eulera liczy z niego tylko do wyświetlenia na ekranie.
Twierdzenie Stuelpnagla (1964) mówi, że tak musi być: żaden zapis orientacji trzema liczbami nie jest jednocześnie globalny (jednoznaczny dla wszystkich orientacji) i wszędzie nieosobliwy. Cztery liczby z jednym więzem to najmniejszy zapis bez osobliwości.
Zadania · część 5
2 zadania · ok. 20 min
Samolot startuje z q=(1,0) i obraca się ze stałą prędkością ω=(0,0,r). Sprawdź, że q(t)=(cos2rt,0,0,sin2rt) spełnia równanie q˙=21q⊗(0,ω).
Odpowiedź
q˙=2r(−sin2rt,0,0,cos2rt). Prawa strona: 21(−sin2rt⋅r,cos2rt(0,0,r)+q×ω), a q×ω=0, bo oba wektory leżą na osi z. Wyniki się zgadzają.
Samolot leci z pochyleniem θ=85∘ (prawie pionowo), φ=0, i powoli odchyla się z r=0,1 rad/s. Policz ψ˙ i φ˙. Co zobaczy pilot na sztucznym horyzoncie?
Odpowiedź
ψ˙=r/cos85∘=1,15 rad/s =66∘/s, φ˙=rtan85∘=1,14 rad/s. Samolot obraca się powoli (0,1 rad/s), ale kurs i przechylenie wirują. Wskaźnik kursu przy locie w pionie jest bezużyteczny, a przyrządy z mechanicznymi przegubami mogą się „rozkręcić”.
6 Metoda i przykłady rozwiązane
Metoda: praca z orientacją
Ustal konwencje: osie (NED czy ENU), kierunek macierzy (ciało → NED czy odwrotnie), kolejność kątów, położenie skalara w kwaternionie. Sprawdź na obrocie o 90∘.
Licz i całkuj na kwaternionie albo macierzy; normalizuj co krok.
Składaj obroty mnożeniem (R2R1, q2⊗q1); nigdy nie dodawaj kątów.
Kąty Eulera licz tylko na wyjściu, dla człowieka. Pamiętaj o osobliwości przy θ=±90∘.
Wynik:q=(0,9515;0,038;0,189;0,239); jeden obrót o 35,8∘ wokół osi skierowanej głównie w dół i na wschód.
Sprawdzenie:4q02−1=2,622=trR ✓. Ten sam kwaternion daje iloczyn qz(30∘)⊗qy(20∘)⊗qx(10∘) ✓. Uwaga: kąt 35,8∘ to nie suma 30+20+10 ani długość wektora (30,20,10), równa 37,4.
Przykład 6.2 Dwa obroty o 90°, jeden obrót o 120°
Pytanie z prologu: obrót o 90∘ wokół stałej osi x, a potem o 90∘ wokół stałej osi z. Jaki jeden obrót daje ten sam efekt?
qx=(0,707;0,707;0;0), qz=(0,707;0;0;0,707).
q=qz⊗qx: skalar 0,5−0=0,5; wektor 0,707⋅(0,707;0;0)+0,707⋅(0;0;0,707)+(0;0;0,707)×(0,707;0;0)=(0,5;0,5;0,5).
q0=0,5=cos(α/2), więc α=120∘; oś ∝(0,5;0,5;0,5), czyli n=[1;1;1]/3.
Wynik: jeden obrót o 120∘ wokół przekątnej sześcianu. Trzy osie układu zamieniają się cyklicznie miejscami: x→y→z→x.
W symulacji 3 samolot robi pętlę z q=0,5 rad/s i przechyla się z p=0,005 rad/s. Jak blisko pionu przechodzi nos i co dzieje się z kątami Eulera?
Prędkość kątowa ω=(0,005;0,5;0) jest stała, więc samolot obraca się wokół jednej osi, odchylonej od osi skrzydeł o arctan(0,005/0,5)=0,57∘. Nos zatacza stożek i po π/(2⋅0,5)=3,1 s mija pion właśnie o 0,57∘.
W tym miejscu cosθ spada do 0,01, a ψ i φ muszą w kilka setnych sekundy przeskoczyć o prawie 180∘ (nos przechodzi „przez biegun”). Pochodne sięgają dziesiątek rad/s; w symulacji największe ∣ψ˙∣ to 40–70 rad/s, zależnie od tego, gdzie wypadają kroki.
RK4 z krokiem 0,1 s nie rozdziela tego przeskoku: błąd orientacji po pętli ≈15∘ (wynik jest bardzo czuły na dokładną wartość p); z krokiem 0,02 s ≈0,004∘. Kwaternion: poniżej 10−5 stopnia przy obu krokach.
Wynik: kąty Eulera wymagają tym mniejszego kroku, im dokładniej samolot przechodzi przez pion. Kwaternion nie ma takiego miejsca.
Sprawdzenie: przy p=0 (pętla idealnie w płaszczyźnie) φ i ψ są stale zerowe i kąty Eulera całkują się bezbłędnie; kłopot robi dopiero mała składowa „w bok” ✓.
7 Błędne intuicje, których trzeba się oduczyć
„Kąty Eulera to wektor obrotu.”
Nie da się ich dodawać ani składać po współrzędnych, a ich pochodne nie są prędkością kątową: (φ˙,θ˙,ψ˙)=(p,q,r). W zakręcie z przechyleniem żyroskop pochylania pokazuje q=0, choć θ się nie zmienia.
„Blokada przegubu to problem starych platform mechanicznych.”
To własność każdego zapisu trzema liczbami. W oprogramowaniu objawia się dzieleniem przez cosθ i skokami kątów, nie zatrzymaniem mechanizmu.
„Kwaternion to cztery kąty.”
To oś pomnożona przez sinus połowy kąta plus kosinus połowy kąta. Ma jeden więz, więc niesie trzy stopnie swobody, tyle co orientacja.
„Obrót o 360° to to samo co brak obrotu.”
Dla orientacji tak, dla kwaternionu nie: q zmienia znak. Regulator, który porównuje kwaterniony bez sprawdzenia znaku, może wykonać zbędny pełny obrót.
„Kolejność obrotów nie ma znaczenia, jeśli kąty są małe.”
Dla małych kątów różnica jest małego rzędu drugiego (iloczyn kątów). Dlatego małe obroty można dodawać, i na tym opiera się linearyzacja w lekcjach o samolocie. Dla kątów rzędu dziesiątek stopni różnica jest duża.
8 Zadania do przemyślenia
Te zadania wymagają więcej myślenia niż liczenia.
Zadania do przemyślenia
5 zadań · ok. 1,5 godziny
Kwaternion z macierzy. Z ramki: q0=211+trR, q=4q01[R32−R23;R13−R31;R21−R12]. Kiedy ten wzór jest numerycznie zły i jak sobie wtedy poradzić?
Rozwiązanie
Gdy q0→0 (obrót o prawie 180∘): dzielimy małe różnice przez małą liczbę i błędy zaokrągleń rosną.
Rozwiązanie (metoda Shepperda): z przekątnej policz kwadraty wszystkich czterech składowych, np. 4q12=1+R11−R22−R33, wybierz największą i z niej licz pozostałe. Największa składowa ma kwadrat co najmniej 1/4, więc dzielenie jest bezpieczne.
Małe obroty. Pokaż, że dla małych kątów R≈I+[δ]×, gdzie δ=(δφ,δθ,δψ), a q≈(1,δ/2). Dlaczego to ważne dla filtru Kalmana orientacji?
Rozwiązanie
Wzór Rodriguesa z sinα≈α, 1−cosα≈0: R≈I+α[n]×=I+[δ]×, gdzie δ=αn. Kąty Eulera dla małych obrotów są składowymi δ (kolejność nie ma znaczenia w pierwszym rzędzie). Kwaternion: cos(α/2)≈1, sin(α/2)≈α/2.
Filtr Kalmana potrzebuje stanu w przestrzeni wektorowej (dodawanie, kowariancja). Dlatego w lekcji 3 Fuzja czujników w 3D: estymacja orientacji na kwaternionach estymujemy nie kwaternion, tylko mały wektor błędu orientacji δ wokół bieżącej estymaty, i składamy go z kwaternionem mnożeniem.
Inna kolejność kątów. Dla satelitów i bąków używa się często kątów 3-1-3 (precesja, nutacja, obrót własny). Gdzie mają osobliwość? Dlaczego dla samolotu lepsze są 3-2-1?
Rozwiązanie
Kąty 3-1-3 mają osobliwość przy nutacji 0 i 180∘: wtedy pierwszy i trzeci obrót są wokół tej samej osi z. Dla bąka (lekcja Dział 4: Ruch obrotowy i bryła sztywna) to rzadki przypadek pionowej osi, a nutacja ma czytelny sens fizyczny.
Samolot prawie zawsze lata blisko poziomu (θ≈0), a kąty 3-2-1 są tam najdalej od osobliwości i mają sens dla pilota. Kąty 3-1-3 miałyby osobliwość właśnie w locie poziomym.
Najkrótsza droga. Regulator orientacji dostaje błąd qe=qzad∗⊗q. Prawdziwy błąd to obrót o 350∘ wokół pewnej osi. Co się stanie, jeśli regulator będzie dążył do qe=(1,0), a co, jeśli zaakceptuje też (−1,0)?
Rozwiązanie
Obrót o 350∘ to ta sama orientacja co obrót o −10∘. Kwaternion qe ma wtedy q0=cos175∘<0.
Regulator dążący tylko do (1,0) „odkręci” 350∘ naokoło. Zmiana znaku qe, gdy q0<0, daje obrót o 10∘ w drugą stronę. Markley i Crassidis nazywają niechciany pełny obrót unwinding.
Sprawdzian telefonem. Telefon z aplikacją pokazującą kąty orientacji (wiele aplikacji z czujnikami ma taki tryb) połóż płasko, a potem podnieś do pionu ekranem do siebie. Co dzieje się z kątem „kursu” i „przechylenia” tuż przy pionie i dlaczego?
Rozwiązanie
Przy pionie (pochylenie ±90∘) kąty kursu i przechylenia zaczynają skakać albo zmieniać się gwałtownie przy drobnych ruchach: to osobliwość kątów Eulera.
Telefon wewnętrznie liczy na kwaternionie lub macierzy (system Android udostępnia „wektor obrotu” właśnie w tej postaci), a kąty to tylko przeliczenie na wyjściu. Dlatego sam obraz w grach i aplikacjach AR się nie psuje.
9 Sprawdź się
Odpowiedz w myślach, zanim rozwiniesz odpowiedź.
1 Co jest w kolumnach macierzy orientacji R (ciało → NED)?
Osie samolotu zapisane w osiach NED; pierwsza kolumna to kierunek nosa.
2 Ile stopni swobody ma orientacja i ile liczb ma każdy zapis?
Obowiązkowo: H. Schaub, J. L. Junkins, Analytical Mechanics of Aerospace Systems, rozdz. 3.1–3.4 (macierz kosinusów kierunkowych, kąty Eulera, wektor obrotu, parametry Eulera, czyli kwaterniony).
Dla chętnych: F. L. Markley, J. L. Crassidis, Fundamentals of Spacecraft Attitude Determination and Control, rozdz. 2.7–2.9 (kwaterniony i wszystkie zapisy orientacji, także parametry Rodriguesa) oraz 3.1–3.2 (ich kinematyka, z blokadą przegubu w ogólnej postaci). Uwaga na ich konwencję kwaternionu.
Wiemy już, jak opisać orientację i jak ją całkować, gdy znamy prędkość kątową. Ale skąd się bierze prędkość kątowa? Z momentów sił i z tego, jak masa jest rozłożona w bryle. W następnej lekcji zobaczymy, że w trzech wymiarach moment pędu i prędkość kątowa nie muszą być równoległe, a obrót wokół jednej z trzech osi bryły jest niestabilny. Klucz francuski rzucony w stanie nieważkości to pokazuje.