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.
5. Eulerovy úhly a dvanáct konvencí
Tři po sobě jdoucí rotace kolem souřadnicových os. Lidsky čitelné, a proto se používají
na vstupu i na výstupu — a proto je kolem nich tolik chyb.
Eulerovy úhly ZYX (roll-pitch-yaw) krok za krokem. Každá další rotace se dělá kolem osy tělesa v poloze, do které ho dostaly ty předchozí — proto „vnitřní“. Tatáž orientace vznikne i opačným pořadím kolem pevných os světa, což je ta záměna, na které se nejvíc chybuje.
0.527-0.2810.8020.6280.765-0.144-0.5740.5790.579
Každá další rotace je kolem osy tělesa v poloze, kam ho dostaly předchozí — proto „vnitřní". Rezerva ke gimbal locku je 55°, tedy přesně 90° minus pitch.
Táhni jedním jezdcem a dívej se, který panel se pohne. Yaw otočí vším, pitch už jde kolem nové osy y a roll kolem ještě novější osy x — proto „vnitřní". A pod obrázkem sleduj rezervu ke gimbal locku: je to přesně 90° minus pitch.
Kolik jich vlastně je
Sekvencí je dvanáct: šest „Tait-Bryanových“, kde jsou všechny tři osy různé
(XYZ, ZYX, …), a šest „vlastních Eulerových“, kde se první a poslední osa opakují (ZYZ, XYX, …).
K tomu ×2 za vnitřní/vnější, takže dohromady 24 způsobů, jak zapsat tutéž
orientaci třemi čísly. Tvrzení „Eulerovy úhly jsou (30°, 40°, 50°)“ tedy samo o sobě nic
neznamená.
Vnitřní versus vnější
Vnitřní (intrinsic): každá další rotace je kolem osy tělesa
v poloze, kam ho dostaly předchozí. Osy se hýbou s tělesem.
Vnější (extrinsic): všechny rotace jsou kolem pevných os světa.
Nejsou to dva různé světy — jedno je druhé pozpátku:
To, co používá robotika i letectví, je ZYX vnitřní, ekvivalentně
XYZ vnější:
R = Rz(yaw) · Ry(pitch) · Rx(roll)
Všimni si, že se v součinu píše v pořadí z-y-x, ale jmenuje se roll-pitch-yaw, tedy x-y-z.
Zdroj nedorozumění sám o sobě.
Jak nástroj získává úhly zpátky. Místo dvanácti opsaných uzavřených
vzorců (dvanáct příležitostí splést znaménko) je tu jedna obecná rutina, ověřená round-tripem
přes hustou mřížku úhlů pro všech dvanáct sekvencí v obou variantách. Když jsem ji psal,
právě takhle se ukázalo, že tři sekvence (XZX, YXY, ZYZ) vracely orientaci o celé π vedle —
znaménko permutace patří jen do druhého argumentu atan2, ne do obou.
Vzorce v této kapitole
RPY — roll-pitch-yaw jako ZYX vnitřní
R = Rz(yaw)·Ry(pitch)·Rx(roll); ZYX vnitřní ≡ XYZ vnější (obráceně)[rad]ECE276A