Maticový tvar: M q̈ + c + g = τ
Rekurze vrátí číslo. To je použitelné, ale nedá se z toho nic vyčíst — nevíš, kolik z toho momentu je za co. Když se táž rovnice zapíše maticově, rozpadne se na tři kusy a každý z nich odpovídá na jinou otázku:
| Člen | Závisí na | Je nulový, když |
|---|---|---|
| M(q)·q̈ | poloze a zrychlení | rameno se pohybuje rovnoměrně |
| c(q,q̇) | poloze a rychlosti, kvadraticky | rameno stojí |
| g(q) | jenom poloze | nikdy, pokud je rameno v tíhovém poli |
Jak se ty tři kusy vytáhnou z jednoho výpočtu
Tohle je nejužitečnější trik v celé labce a stojí za to si ho zapamatovat: druhý algoritmus na to není potřeba. Stačí zavolat tutéž inverzní dynamiku s vypnutými vstupy.
| Chci | Zavolej ID s | Proč to funguje |
|---|---|---|
g(q) | q̇ = 0, q̈ = 0, gravitace zapnutá | zbyde jen gravitační člen |
j-tý sloupec M(q) | q̇ = 0, q̈ = e | zbyde M·e |
c(q,q̇) | q̈ = 0, gravitace vypnutá | zbydou jen rychlostní členy |
Pro rameno s n klouby to znamená n + 2 volání a celý strukturovaný
model je hotový. Featherstone tomu říká metoda složeného tuhého tělesa; v praxi je to řádek kódu
navíc, ne nový soubor.
Ještě jednou pomalu: co který člen dělá
M(q) je matice, ne číslo, a to je celá pointa. Prvek m
říká, kolik setrvačnosti cítí kloub i sám za sebe. Prvek m
říká něco jinačího a mnohem méně intuitivního: když zrychlím kloub j, jaký moment to vyvolá
v klidně stojícím kloubu i. Rameno je propojené a nedá se hýbat jedním kloubem bez toho, aby
to ostatní cítily.
c(q,q̇) jsou odstředivé a Coriolisovy členy. Jdou s kvadrátem rychlosti, takže se u pomalého ramene dají zanedbat a u rychlého v žádném případě. Osmá kapitola.
g(q) je gravitace. Nezávisí ani na rychlosti, ani na zrychlení — je to čistě otázka polohy, a proto je to jediný člen, který nezmizí, když rameno vypnete. Devátá kapitola.
Rozklad není jen estetika. Když vyjde moment příliš velký, tenhle zápis rovnou říká, co s tím dělat: velký M q̈ se řeší lehčím ramenem nebo delším časem, velký c se řeší jenom delším časem, a velký g se časem nevyřeší vůbec — na ten se musí protizávažím, pružinou nebo jinou polohou. Bez rozkladu to člověk hádá.