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.

1. Proč je orientace těžká

Poloha v prostoru jsou tři čísla a nikdo se u nich nikdy nepohádal. Orientace je taky tři stupně volnosti — a je to jeden z nejčastějších zdrojů chyb v robotice vůbec.

Důvod je matematický, ne nedbalostní: množina rotací není plochý prostor. Je to grupa SO(3), zakřivená a bez okrajů, a neexistuje způsob, jak ji pokrýt třemi čísly tak, aby to nikde neselhalo. To není nedostatek Eulerových úhlů, to je vlastnost té množiny. Každá reprezentace tedy něco obětuje:

ReprezentaceČíselZa co se platíK čemu je dobrá
Matice rotace9šest vazeb navíc, driftpočítání, skládání, transformace vektorů
Osa a úhel4singularita při 0 a πintuice, „o kolik a kolem čeho“
Kvaternion4jedna vazba, dvojité pokrytíinterpolace, integrace, ukládání
Eulerovy úhly3gimbal lock, 12 konvencíčtení člověkem, zadávání

Pravidlo, které z toho plyne a kterého se drží skoro celá robotika: počítej s maticemi nebo kvaterniony, ukazuj Eulerovy úhly. Nikdy naopak.

světR1základnaR2ramenoR3nástroj
Řetěz rámců. Každý článek nese svou rotaci vůči tomu předchozímu a orientace koncového efektoru je jejich součin ve stejném pořadí, ve kterém řetězem jdeš: R_svět,nástroj = R_svět,základna · R_základna,rameno · R_rameno,nástroj. Pořadí je celý vtip — rotace nekomutují a prohozením dvou článků dostaneš úplně jinou orientaci.
Skoro každá chyba v rotacích je neshoda konvencí, ne aritmetika. Kód bývá správně; jen si dvě jeho části myslí něco jiného o tom, co znamenají. Proto má tenhle nástroj celou kapitolu 9 jen o konvencích a proto každou z nich vypisuje na obrazovku.