Moduł 22 · Badania: redundancja + planowanie

WP1 — Planowanie NA rozmaitości ruchu własnego

Reaktywny null-space wpada w minimum lokalne (łokieć utyka za przeszkodą); constrained-RRT planuje globalnie na 2-wymiarowej rozmaitości ruchu własnego i omija ją — przy tym samym, unieruchomionym zadaniu chwytaka. Interaktywny sandbox z przeszkodą.

TL;DR — dlaczego reaktywny null-space to za mało

Kanoniczne rozwiązanie redundancji (rozdz. 11) rzutuje gradient drugorzędnego kryterium w przestrzeń zerową: q˙=J+x˙+(IJ+J)h(q)\dot q = J^{+}\dot x + (I - J^{+}J)\,\nabla h(q). Problem: h\nabla h jest lokalny. Gdy między aktualną a pożądaną postawą stoi przeszkoda, gradient tworzy barierę → łokieć utyka w minimum lokalnym, nie potrafiąc jej obejść (ta sama patologia, co pola potencjału z rozdz. 09 i CHOMP z rozdz. 07).

WP1 wypełnia lukę: globalny planer próbkowy działający wprost na rozmaitości ruchu własnego. Więz zadania (poza chwytaka) jest zachowany dokładnie, a planer widzi całą topologię wolnej przestrzeni — więc omija przeszkodę tam, gdzie reaktywny utyka. Poniżej: oba planery obok siebie, na tym samym zadaniu.

Na czym planujemy: rozmaitość ruchu własnego

Bierzemy planarne ramię 4R z unieruchomioną końcówką(zadanie 2-DOF). Zostają 42=24 - 2 = 2 stopnie swobody — 2-wymiarowa rozmaitość konfiguracji dających tę samą pozę narzędzia:

M={qQ:f(q)=xd},dimM=nm=42=2,TqM=null(J)\mathcal{M} = \{\, q \in \mathcal{Q} : f(q) = x_d \,\}, \qquad \dim \mathcal{M} = n - m = 4 - 2 = 2, \qquad T_q\mathcal{M} = \mathrm{null}(J)

Parametryzujemy M\mathcal{M} dwoma kątami (φ1,φ2)(\varphi_1, \varphi_2) (pierwsze dwa ogniwa); dwa ostatnie domykają łańcuch do celu przez 2R IK. To daje kartę rozmaitości — płaską mapę 2D (lewy panel), na której planowanie wygląda jak zwykłe planowanie na mapie z przeszkodami. Czerwony region to C-obstacle: postawy, w których ramię zderza się z przeszkodą. To jest kluczowy pomysł: redukujemy planowanie redundancji do planowania na 2D rozmaitości, gdzie działają wszystkie metody z tego kursu.

Reaktywny vs globalny — na żywo

Przełącz planer. Reaktywny utyka za przeszkodą (czerwony status). Constrained-RRT rozrasta drzewo na rozmaitości i omija ją. Prawy panel pokazuje to samo w przestrzeni zadania: chwytak (zielony pierścień) stoi, a łokieć wędruje. Suwaki przesuwają przeszkodę — środowisko badawcze.

Ramię 4R, chwytak przybity do celu (zadanie 2-DOF) ⇒ zostają 2 stopnie swobody = 2-wymiarowa rozmaitość poz (łokieć może krążyć, chwytak stoi). Ten sam cel, ta sama przeszkoda, ten sam start — poniżej różni się tylko planer (reaktywny ↔ globalny).
UTKNĄŁ w minimum lokalnym
Karta rozmaitości ruchu własnego — TU planujemy
rozmaitość (wolne) ·kolizja (przeszkoda w przestrzeni konfiguracji) ·poza rozmaitością (chwytak nie sięga celu)
φ₁, φ₂ = dwa swobodne kąty ramienia; pozostałe dwa dobiera IK, tak by chwytak został na celu. Każdy punkt karty = jedna poza ramienia (biała kropka ◉ = poza po prawej).
Przestrzeń zadania — chwytak (zielony) stoi, łokieć wędruje
┄ przerywana zieleń = poza docelowa,której reaktywny NIE osiągaJ0łokiećchwytak
zielony pierścień = unieruchomiony cel narzędzia · pomarańczowy ślad = tor łokcia (ruch własny)

Reaktywny null-space podąża za lokalnym gradientem (przyciąganie do celu + odpychanie od przeszkody), więc skręca w bok i utyka 1.38 rad od celu — klasyczne minimum lokalne pola potencjału. Widmowa (przerywana) poza po prawej to cel, którego reaktywnie nie osiąga. Przesuń suwaki przeszkody — środowisko badawcze przelicza kartę i obie ścieżki.

Metoda (constrained-RRT na rozmaitości)

  1. Próbkuj punkt karty (φ1,φ2)(\varphi_1,\varphi_2); odrzuć, jeśli poza rozmaitością lub w kolizji.
  2. Rozszerz drzewo o krok w kierunku próbki (krawędź sprawdzana na kolizję przez dyskretyzację).
  3. Bias do celu (10%) przyspiesza domknięcie; przy dojściu w pobliże celu — połącz.
  4. Wynik — ścieżka φ(t)\varphi(t) → po wygładzeniu qset(t)q_{set}(t) dla pasywnego sterownika OSC (moduł 21).

Więz zadania zachowany dwukrotnie: kinematycznie (plan leży na M\mathcal{M}) i — przy wykonaniu — dynamicznie (projektor NN sterownika, JM1N=0JM^{-1}N=0), a bak energii czyni całość pasywną. To jest pełny łańcuch plan → pasywne, podatne wykonanie.

Ściąga

  • Rozmaitość ruchu własnego: M={q:f(q)=xd}\mathcal{M}=\{q:f(q)=x_d\}, TqM=null(J)T_q\mathcal{M}=\mathrm{null}(J), dim=nm\dim=n-m.
  • Patologia reaktywnego: h\nabla h lokalny → minimum lokalne za przeszkodą (jak pola potencjału).
  • WP1: constrained-RRT NA M\mathcal{M} — globalne omijanie, więz zadania zachowany dokładnie.
  • Wykonanie: qset(t)q_{set}(t) → pasywny OSC (moduł 21), JM1N=0JM^{-1}N=0 + bak energii.

Źródła

  • Berenson, Srinivasa, Kuffner — CBiRRT / Task Space Regions (2009, 2011).
  • Jaillet & Porta — planowanie na rozmaitościach (AtlasRRT, 2013).
  • Kingston, Moll, Kavraki — „Sampling-Based Methods for Motion Planning with Constraints" (Annual Review 2018).
  • Pełne rozpisanie: PROPOZYCJA_BADAWCZA.md (WP1). Wykonawca: moduł 21 + projekt Franka Redundancy Control.