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.

10. Úhlová rychlost a integrace

Orientace se mění v čase a úhlová rychlost ω je vektor, který ten pohyb popisuje: směr je osa otáčení, velikost je rychlost v rad/s. Vazba na reprezentace:

Ṙ = [ω]× R      q̇ = 12 ω ⊗ qω ve světovém rámci

Obojí je v testech ověřené proti numerické derivaci přesné integrace — ne opsané.

ω není derivace Eulerových úhlů. Tohle je asi nejčastější skrytá chyba v této oblasti. Derivace roll, pitch a yaw jsou rychlosti kolem tří různých a navzájem nekolmých os (každá patří jinému mezikroku sekvence), kdežto ω je jeden vektor v jednom rámci. Vztah mezi nimi je matice, která navíc v gimbal locku singulární — takže tam, kde selhávají úhly, selže i tenhle přepočet.

Integrace

Při konstantní ω po dobu dt je odpověď přesná a v uzavřeném tvaru: je to rotace kolem osy ω̂ o úhel |ω|·dt. Nemusí se nic aproximovat.

Když se ω mění, integruje se po krocích — a tam se objeví problém, kvůli kterému se to dělá v kvaternionech:

  • Matice driftuje z SO(3) a musí se reortonormalizovat.
  • Kvaternion driftuje jen v délce a stačí ho vydělit normou. Jedna operace, žádná ztráta.

Proto drží kvaternion každý IMU filtr, každá navigace a každý stavový odhad, který běží hodiny v kuse. V testech: tisíc malých kroků skončí tam, kde jeden velký, na 10⁻⁹.

Vzorce v této kapitole

ω — úhlová rychlost a integrace
Ṙ = [ω]×R; q̇ = ½ ω ⊗ q; konstantní ω za dt = rotace o |ω|dt kolem ω̂ [rad/s] kinematics