Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.
6. Gimbal lock
Když u ZYX dosáhne pitch ±90°, splynou osy prvního a třetího otočení. Yaw i roll od té chvíle
dělají totéž a určený je jen jejich rozdíl. Tři čísla najednou popisují dvourozměrnou
množinu — jeden stupeň volnosti se ztratil.
Spočítáno ze samotné definice. Rezerva ZYX je přesně 90° minus pitch, takže při pitch 90° je nula: yaw a roll přestanou být rozlišitelné a určený je jen jejich rozdíl. Orientace sama je přitom naprosto v pořádku — selhávají souřadnice, ne těleso. Sekvence ZYZ má singularitu jinde, při svém středním úhlu 0°, což je vidět jako druhá křivka.
Přitáhni pitch na 90° a dívej se: ať posuneš yaw a roll o cokoliv, obě orientace jsou totožné — rozdíl je 37.2°. Zatím se liší, protože pitch ještě není u singularity.
Dva rámce, které se liší jen tím, že jsou yaw i roll posunuté o stejný kus. Při malém pitchi jsou to viditelně různé orientace. Přitáhni pitch na 90° a rozdíl spadne na nulu — ať posuneš o cokoliv. To je gimbal lock, změřený, ne tvrzený.
Co přesně se pokazí
Neztratí se stupeň volnosti tělesa. Těleso se pořád může otáčet, jak chce.
Ztratí se schopnost souřadnic ten pohyb popsat. Rozdíl je zásadní: fyzika je v pořádku,
selhala mapa.
Prakticky se to projeví takhle:
Čísla poskakují. Blízko singularity odpovídá nepatrná změna orientace
obrovské změně yaw i roll. Regulátor, který na ta čísla reaguje, zešílí.
Rozklad není jednoznačný. Nekonečně mnoho dvojic (yaw, roll) dá tutéž
orientaci. Nástroj v takovém případě položí roll na nulu a řekne to.
Interpolace se rozjede. Viz kapitola 8.
Kde je singularita u ostatních sekvencí
Není to vlastnost pitchu, je to vlastnost sekvence. Tait-Bryanovy sekvence
(ZYX a spol.) mají singularitu při prostředním úhlu ±90°. Vlastní Eulerovy (ZYZ a spol.) ji mají
při prostředním úhlu 0° nebo 180° — tedy přesně tam, kde je ZYX nejzdravější,
a naopak. Proto se v mechanice a astronomii často používá ZYZ: singularita padne do polohy,
kterou daná úloha stejně nikdy nenavštíví.
Vyhnout se tomu volbou sekvence nejde, jde to jen přesunout.
Singularita existuje u každé trojice čísel — je to důsledek toho, že SO(3) je zakřivená.
Jediné skutečné řešení je nepočítat v Eulerových úhlech. Uvnitř drž kvaternion nebo matici
a Eulerovy úhly ukazuj až na výstupu.
Vzorce v této kapitole
lock — kde je singularita Eulerových úhlů
Tait-Bryan (ZYX…): prostřední úhel = ±90°; vlastní Eulerova (ZYZ…): prostřední = 0° nebo 180°[°]Stelzer et al.