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.

2. Matice rotace a SO(3)

Matice rotace je devět čísel se šesti vazbami. Ty vazby jsou to podstatné:

RTR = I     det R = +1definice SO(3)

První říká, že sloupce jsou navzájem kolmé jednotkové vektory — rotace nemění délky ani úhly. Druhá vylučuje zrcadlení: matice s determinantem −1 je taky ortogonální, ale převrací orientaci prostoru, a to fyzické těleso neumí.

Z první vazby plyne nejužitečnější vlastnost v celé téhle učebnici:

R−1 = RT

Inverze rotace je její transpozice. Žádné řešení soustavy, žádná determinantová gymnastika — prohodíš řádky se sloupci a máš opačnou rotaci.

Co ty sloupce znamenají

Sloupce R jsou obrazy jednotkových vektorů: první sloupec je to, kam se dostane x̂, druhý kam ŷ, třetí kam ẑ. Když se na matici díváš takhle, je čitelná na první pohled a dá se z ní přečíst orientace tělesa bez počítání.

Drift

Vynásobíš-li tisíce rotací za sebou, zaokrouhlovací chyby se nasčítají a matice přestane být přesně ortonormální. Přestanou platit vzorce, které na tom stojí — z acos vypadne NaN, převod na kvaternion vrátí nesmysl. Léčba je levná: občas matici reortonormalizovat (Gram-Schmidt na sloupce). Nástroj ukazuje, jak moc je od SO(3) daleko, a umí to opravit.

Ověřeno v testech: 5000 poskládaných rotací drží ortonormalitu lépe než 10⁻¹⁰, takže u běžných řetězců se drift neprojeví. Problém nastává až u dlouho běžících integrací, kde se matice aktualizuje po malých krůčcích — tam se renormalizuje vždycky.

Vzorce v této kapitole

SO(3) — podmínky matice rotace
RᵀR = I, det R = +1, R⁻¹ = Rᵀ [—] definition