DynaLab dynamika ramene

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.

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:

M(q)·q̈  +  c(q,q̇)  +  g(q)  =  τpohybová rovnice ramene
ČlenZávisí naJe nulový, když
M(q)·q̈poloze a zrychlenírameno se pohybuje rovnoměrně
c(q,q̇)poloze a rychlosti, kvadratickyrameno stojí
g(q)jenom polozenikdy, 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.

ChciZavolej ID sProč to funguje
g(q)q̇ = 0, q̈ = 0, gravitace zapnutázbyde jen gravitační člen
j-tý sloupec M(q)q̇ = 0, q̈ = ej, gravitace vypnutázbyde M·ej, což je ten sloupec
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 mii říká, kolik setrvačnosti cítí kloub i sám za sebe. Prvek mij ří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á.

Vzorce v této kapitole

M — matice setrvačnosti ze sloupců
M(q)·eⱼ = ID(q, 0, eⱼ) bez gravitace [kg·m²] Featherstone
g — gravitační vektor
g(q) = ID(q, 0, 0) s gravitací [N·m] Featherstone
c — rychlostní vektor
c(q,q̇) = ID(q, q̇, 0) bez gravitace [N·m] Featherstone