RotLab orientace v prostoru
Otevřít interaktivní verzi →

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.

výchozíyaw kolem zpitch kolem y′xyzroll kolem x″
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.
výchozípo yawpo pitchxyzpo roll
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:

Rvnitřní(a, b, c; XYZ) = Rvnější(c, b, a; ZYX)ověřeno v testech

Roll-pitch-yaw

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