Skrót matematyki i mechaniki niezbędnej w pozostałych modułach: wektory, macierze, SO(3), SE(3), bryła sztywna — referencja, do której wracasz w razie potrzeby.
Ten moduł to skrót matematyki i mechaniki potrzebnej w pozostałych modułach aplikacji. Nie jest to pełny wykład — to referencja do której wracasz, gdy w którymś z modułów pojawi się wzór, który Cię zaskoczy.
Inspirację stanowi pierwszy rozdział „Modelowania i sterowania robotów" Kozłowskiego — taki sam mini-słownik narzędzi matematycznych przed wejściem w robotykę właściwą. Każda sekcja kończy się pointą „gdzie tego używasz dalej" z linkami do konkretnych modułów.
Wskazówka praktyczna
Przy pierwszym czytaniu możesz przejrzeć cały moduł raz pobieżnie, żeby zorientować się w jego zawartości. Potem wracaj wybiórczo — np. gdy w M9 zobaczysz i chcesz przypomnieć sobie iloczyn wektorowy, wracaj do sekcji „Wektory 3D". Każdy krok jest klikalny w nagłówku — zwiniesz/rozwiniesz osobno.
Dla wektorów :
Wzór jawny dla iloczynu wektorowego:
Łatwy do zapamiętania zapis przez wyznacznik formalny:
Rozwijając wzdłuż pierwszego wiersza dostajesz dokładnie 3 składowe z wzoru wyżej. To trick dydaktyczny — formalnie macierz nie jest „liczbowa" (zawiera wektory bazy), ale operacja rozwinięcia daje poprawny wynik.
Gdzie tego używasz dalej: iloczyn wektorowy w M3 (Jakobiany) — kolumna jakobianu dla przegubu obrotowego ma postać ; w M9 (Newton-Euler) — człon żyroskopowy i prawie każdy człon propagacji prędkości.
Dla i wynik ma wymiar , a element:
Czyli element (i, j) wyniku to iloczyn skalarny i-tego wiersza A z j-tą kolumną B. Kolejność ma znaczenie: w ogólności. To podstawowa przyczyna trudności DH (kolejność transformacji ważna).
— odbicie względem przekątnej. Ważna tożsamość: (kolejność się odwraca!).
Dla macierzy kwadratowej wyznacznik to czynnik skalujący objętość: jeśli jednostkowy n-sześcian zostanie odwzorowany przez A, to powstaje równoległoboczy obiekt o objętości . Znak mówi czy orientacja została zachowana (+) czy odwrócona (−).
Konsekwencja praktyczna: ⟺ A jest osobliwa (singular) — odwzorowuje przestrzeń do mniejszego wymiaru, nie jest odwracalna. To dokładnie definicja singularności kinematycznej w robotyce (jakobian J ma ).
spełnia . Istnieje tylko gdy .
Macierz ortogonalna: , czyli . Ogromnie tanie odwracanie — zamiast wywoływać numeryczną inwersję (eliminacja Gaussa, koszt ), wystarczy przepisać współrzędne. Wszystkie macierze rotacji są ortogonalne — stąd w kodzie zawsze widzisz R^T a nie inv(R).
Gdzie tego używasz dalej: mnożenie macierzy w każdej FK (T_0^n = T_0^1 · T_1^2 · …); transpozycja zamiast inwersji w wszystkich modułach kinematyki (R^T = R⁻¹); wyznacznik J w M7 (singularności).
Grupa (Special Orthogonal Group w 3D) to zbiór macierzy 3×3 spełniających dwa warunki:
To dokładnie 3 stopnie swobody (np. 3 kąty Eulera albo oś + kąt). Pomimo że R ma 9 elementów, tylko 3 są niezależne — pozostałe 6 jest wymuszonych przez ograniczenia ortogonalności.
Rotacja wokół osi x o kąt α:
Wokół y o β:
Wokół z o γ:
Składanie: rotacja „najpierw wokół z o γ, potem wokół y o β, potem wokół x o α" to mnożenie macierzy w kolejności od prawej do lewej:
Ta kolejność (xyz „intrinsic" vs „extrinsic", zyx itd.) to klasyczna pułapka — dlatego w aplikacji konsekwentnie używamy kwaternionów jako reprezentacji wewnętrznej, a kątów Eulera tylko do UI.
Gdzie tego używasz dalej: M8 (Reprezentacje orientacji) — pełne porównanie macierzy rotacji, kątów Eulera, axis-angle i kwaternionów, z interaktywnym demo gimbal-locka.
Dla wektora definiujemy macierz skew-symmetric (antysymetryczną) :
Kluczowa własność: iloczyn wektorowy zapisuje się jako mnożenie macierzy:
Dlaczego to istotne? Bo pozwala traktować iloczyn wektorowy jako operację liniową, co odblokowuje cały aparat algebry liniowej (diagonalizacja, wartości własne, gradient). W jakobianach manipulatora kolumny zawierają — dzięki temu sam jakobian J jest macierzą, którą można odwracać/pseudoinwertować.
Macierz symetryczna spełnia . Macierz skew-symmetric (antysymetryczna) spełnia . Tu rzeczywiście — sprawdź transponując wyżej, każdy element zamienia znak.
Konsekwencja: skew-symmetric matrix ma zerową przekątną i tylko 3 niezależne elementy (powyżej przekątnej), co dokładnie odpowiada 3 składowym wektora . Stąd bijekcja:
Gdzie tego używasz dalej: M3 — kolumny jakobianu jako ; M9 — propagacja momentu pędu i implementacja iloczynów wektorowych w kodzie (Newton-Euler korzysta wprost z [w]× v).
Grupa (Special Euclidean Group w 3D) opisuje transformacje sztywne — rotacje + translacje. Naturalna reprezentacja: para gdzie , . Razem 6 stopni swobody (3 rotacji + 3 translacje).
Pojedyncza transformacja punktu :
To nie jest mnożenie macierzowe, bo dochodzi addytywne . Składanie dwóch transformacji wymaga wtedy osobnej formuły:
Sztuczka: dodajemy „wirtualną" czwartą współrzędną równą 1 i pakujemy R i t w jedną macierz 4×4. Wtedy zarówno transformacja punktu, jak i składanie transformacji sprowadzają się do zwykłego mnożenia macierzy:
Punkt zapisujemy jako wektor 4-elementowy (wektor jednorodny):
Składanie wielu transformacji to teraz po prostu iloczyn macierzy: — i o to chodziło. Dlatego cała kinematyka manipulatora opiera się na tej reprezentacji (DH zwraca macierze 4×4).
Gdzie tego używasz dalej: M0, M1 i każdy moduł kinematyki — wszystko czego dotyka FK manipulatora jest mnożeniem macierzy 4×4.
Bryła sztywna to ciało, w którym odległości między dowolnymi dwoma punktami są niezmienne w czasie. Może się obracać i poruszać (translacja+rotacja jako całość), ale nie deformować.
Kluczowy wzór: jeśli środek bryły O porusza się z prędkością , a bryła obraca się z prędkością kątową , to prędkość dowolnego punktu P położonego względem O w odległości wynosi:
Pierwsza składowa () — wspólna dla wszystkich punktów bryły (translacja jako sztywne ciało). Druga () — dodatkowy ruch z powodu obrotu wokół O, prostopadły do r i do osi obrotu.
Różniczkując wzór na prędkość po czasie dostajemy:
Trzy składowe: dziedziczone , tangencjalne (od — przyspieszenia kątowego), dośrodkowe (od — zawsze skierowane do osi obrotu).
Gdzie tego używasz dalej: M9 (Dynamika Newton-Euler) — dokładnie te dwa wzory są stosowane do propagacji ω, ε, v, a od jednego ogniwa do następnego w forward sweep. Wzór na prędkość punktu wraca w każdym kroku 2–3 algorytmu. Bez niego dynamika manipulatora nie ma sensu.
Najczęściej powracające wzory, zebrane w jednym miejscu:
| Operacja | Wzór |
|---|---|
| Iloczyn skalarny | |
| Iloczyn wektorowy (norma) | |
| Iloczyn wektorowy (macierz) | |
| Macierz ortogonalna | |
| Transpozycja iloczynu | |
| SE(3) — punkt jednorodny | |
| Prędkość punktu na bryle | |
| Przyspieszenie punktu na bryle |
Mając te narzędzia, jesteś gotów na pozostałe moduły: