TrajLab plánování trajektorií
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.

5. Polynomy a okrajové podmínky

Úplně jiný přístup: místo skládání úseků napiš jednu hladkou funkci a nech si od ní splnit okrajové podmínky. Kolik podmínek, tolik koeficientů.

Kubický: poloha a rychlost na obou koncích

Čtyři podmínky, čtyři koeficienty. Pro pohyb z klidu do klidu vyjde s τ = t/T:

q(t) = q₀ + Δq · ( 3τ² − 2τ³ )
vvrchol = 1,5 ΔqT     avrchol = 6 Δq

Zrádnost kubického polynomu: zrychlení na začátku a na konci není nulové. Skočí. Je hladší než lichoběžník, ale ryv na koncích je pořád nekonečný.

Kvintický: navíc i zrychlení

Šest podmínek, šest koeficientů. Zrychlení na obou koncích se dá předepsat — a když je nula, ryv je konečný všude:

q(t) = q₀ + Δq · ( 10τ³ − 15τ⁴ + 6τ⁵ )
vvrchol = 1,875 ΔqT     avrchol = 10√3 Δq ≈ 5,77 Δq
— — kubický——— kvintickýrychlostzrychleníčas [s]
Kubický: v 2.50 = 1,5·Δq/T · a 3.33 = 6·Δq/T²
Kvintický: v 3.13 = 1,875·Δq/T · a 3.21 = (10/√3)·Δq/T²
Kvintický jede uprostřed rychleji a přesto potřebuje menší špičkové zrychlení. Rozprostře ho po delší části pohybu, místo aby ho nacpal na začátek — a navíc má na koncích nulové zrychlení, takže konečný ryv. Ty poměry se s T ani Δq nemění; jsou to vlastnosti tvaru.
Táhni čas pohybu a sleduj špičky. Kvintický jede uprostřed rychleji než kubický (1,875 proti 1,5), a přesto potřebuje menší špičkové zrychlení (5,77 proti 6). To není protimluv: rozprostře zrychlení po delší části pohybu místo aby ho nacpal na začátek.
Zásadní omezení polynomů. Polynom se zadává časem, ne limity. Nedokáže říct „jeď co nejrychleji, ale nepřekroč v_max" — musíš mu čas dát a pak zkontrolovat, jestli se do limitů vešel. Vzorce výše to umožňují obrátit: z limitů spočítat nejkratší přípustný čas. Proto je polynom vždycky pomalejší než S-křivka pro tytéž limity, a v testech je to změřené.

Vzorce v této kapitole

q₃(t) — kubický polynom z klidu do klidu
q = q₀ + Δq(3τ² − 2τ³); v_peak = 1.5 Δq/T; a_peak = 6 Δq/T² [—] Biagiotti & Melchiorri
q₅(t) — kvintický polynom z klidu do klidu
q = q₀ + Δq(10τ³ − 15τ⁴ + 6τ⁵); v_peak = 1.875 Δq/T; a_peak = (10/√3) Δq/T² [—] Biagiotti & Melchiorri