Moduł 00 · wprowadzenie

Wprowadzenie do IK

Od FK do problemu odwrotnego — postawienie zagadnienia, klasyfikacja, osiągalność, singularności.

Po co właściwie potrzebujemy odwrotnej kinematyki?

Wyobraź sobie, że pokazujesz palcem punkt w przestrzeni i mówisz robotowi: „chwyć to". Człowiek robi to bez myślenia — mózg automatycznie znajduje konfigurację ramienia, dłoni i palców. Robot potrzebuje tłumacza między „gdzie ma być końcówka" a „jakie kąty muszą przyjąć przeguby" — i tym tłumaczem jest właśnie algorytm kinematyki odwrotnej (IK).

Bez IK żadna z poniższych aplikacji nie działa:

Programowanie ścieżki przemysłowej

Spawanie karoserii, lakierowanie, montaż PCB. Inżynier projektuje ścieżkę w przestrzeni 3D (CAD); IK przelicza ją na sekwencję konfiguracji przegubów. Bez tego programowanie byłoby ręczne — przegub po przegubie.

Lead-through teaching

Operator prowadzi rękę cobota (np. UR, Franka) do pozycji, naciska „zapisz”. Robot zapamiętuje nie tylko pozę końcówki, ale całą konfigurację — IK jest niezbędne by odtworzyć ruch z innej startowej pozycji.

Teleoperacja / VR

Chirurg porusza joystickiem; robot da Vinci w ciele pacjenta podąża. Rękawica VR steruje awatarem. Każdy ruch dłoni → pose w SE(3) → IK robota → kąty silników. Latencja musi być < 20 ms.

Pick-and-place z wizją

Kamera wykrywa pozycję paczki na taśmie → IK liczy konfigurację → robot chwyta. Kluczowe w logistyce (Amazon, DHL) i sortowniach żywności. Wymaga IK uruchamianego setki razy na sekundę.

Animacja postaci w grach

Postać podnosi przedmiot, otwiera drzwi, opiera rękę o ścianę. Inverse Kinematics w silnikach gier (Unreal, Unity) ustawia ramię, żeby dłoń trafiła w cel — bez ręcznej animacji każdego klatki.

Robotyka kosmiczna i podwodna

Ramię na Międzynarodowej Stacji Kosmicznej (Canadarm2) albo na ROV-ie. Operator widzi tylko widok z kamery; klika punkt w przestrzeni; IK przekształca to na ruch przegubów w stanie nieważkości / pod wodą.

Każda z tych aplikacji ma własne wymagania: szybkość (gry, VR), niezawodność (medycyna), powtarzalność (przemysł). Stąd różne metody IK — i stąd ten moduł. Nie ma jednego algorytmu „najlepszego" — jest algorytm najlepszy do Twojego problemu.

Czym jest PUMA 560 i dlaczego cały kurs jej używa?

Wszystkie moduły 0–7 pracują na jednym konkretnym robocie: PUMA 560. Wybór nie jest przypadkowy — to klasyczny manipulator, którego każdy podręcznik robotyki używa jako modelu referencyjnego. Krótko, dlaczego:

PUMA 560 — robot przemysłowy o sześciu stopniach swobody, klasyczny obiekt badawczy w robotyce
PUMA 560 w laboratorium NASA Ames Research Center (1990). Charakterystyczny kształt antropomorficzny: ramię, łokieć, sferyczny nadgarstek — geometria odpowiadająca ludzkiej ręce, dzięki czemu wzory IK dają się wyprowadzić ręcznie.
Źródło: Wikimedia Commons · autor: NASA / Dominic Hart · licencja: Public Domain

Krótka historia

  • 1969 — Victor Scheinman buduje na Uniwersytecie Stanforda „Stanford Arm" (poprzednik PUMA), pierwszy elektryczny manipulator komputerowo sterowany przeznaczony do prac montażowych.
  • 1978 — firma Unimation (założona przez Josepha Engelbergera, „ojca robotyki") wprowadza komercyjnie PUMA Programmable Universal Machine for Assembly. Główny klient: General Motors, z myślą o linii montażowej.
  • Lata 80.–90. — dominacja na liniach motoryzacyjnych w USA i Europie. Setki tysięcy sztuk w produkcji.
  • Dzisiaj — wycofana z produkcji nowych jednostek, ale pozostaje kanonicznym przykładem dydaktycznym w każdym podręczniku robotyki (Craig, Spong, Siciliano, Murray–Li–Sastry). Niemal każda praca o IK manipulatora 6-DOF pokazuje wyniki na Pumie.

Dlaczego idealna jako przykład dydaktyczny

🎯 Spełnia formę A warunku Piepera

Osie trzech ostatnich przegubów przecinają się w jednym punkcie (środek nadgarstka). Dzięki temu IK rozpada się na dwa łatwiejsze podproblemy 3-DOF: pozycja i orientacja. Da się wyprowadzić ręcznie w jeden wykład.

🧬 Geometria antropomorficzna

Bark (q₁ — obrót talii, q₂ — podniesienie), łokieć (q₃), nadgarstek sferyczny (q₄ q₅ q₆) — odwzorowuje strukturę ludzkiego ramienia. Intuicje geometryczne z własnego ciała przekładają się 1:1 na konfiguracje robota.

📐 8 rozwiązań na każdą pozę

shoulder L/R × elbow up/down × wrist flip/no-flip. Idealna ilustracja wielokrotności rozwiązań IK — fundamentalnej trudności, której nie da się obejść w żadnym manipulatorze 6-DOF.

⚠️ Wszystkie pułapki na małym przykładzie

Singularności (oś 1 nad bazą, gimbal lock w nadgarstku), problemy wyboru gałęzi rozwiązania, ograniczenia zasięgu. Wszystko widać dla 6 osi — łatwiej niż na 7-DOF France czy redundantnych ramionach kosmicznych.

Co robimy w innych modułach: M9–M11 (dynamika, silnik DC, dobór napędów) korzystają z robota ES5 z dysertacji [Gruszka 2024] — ma inną geometrię (forma B Piepera, równoległe osie q₂q₃q₄), ale algorytmy dynamiki działają identycznie. Pokazujemy więc dwa przykłady obok siebie.

Jak korzystać z tej aplikacji — mapa modułów

Aplikacja zawiera 11 modułów, ale nie wszystkie są równie ważne dla każdego. Poniżej trzy ścieżki dla różnych odbiorców — wybierz tę, która pasuje do Twoich celów:

🎓 Student ZBR / podstawowy kurs robotyki

Zrozumieć IK od podstaw, umieć rozwiązać dla manipulatora 6-DOF, znać klasyfikację metod

  1. 1.M0Wprowadzenie (jesteś tutaj)
  2. 2.M1Wyprowadzenie analityczne Pumy
  3. 3.M2Playground 8 rozwiązań
  4. 4.M8Reprezentacje orientacji (Eulera, kwaterniony)
  5. 5.M7Singularności — kiedy IK traci jednoznaczność

≈3-4 godziny lektury liniowej

🔬 Doktorant / researcher IK numerycznej

Porównać metody iteracyjne, optymalizacyjne i uczone na wspólnym benchmarku

  1. 1.M3Metody Jakobianowe (Transpose, DLS, SDLS)
  2. 2.M4Metody optymalizacyjne (Nelder-Mead, SQP)
  3. 3.M5Sieci neuronowe (MLP, MDN, IKFlow)
  4. 4.M6Wspólny benchmark dla wszystkich solverów
  5. 5.M7Analiza singularności (det J, manipulability)

≈5-6 godzin · materiał na seminarium grupy badawczej

🛠️ Inżynier projektowy / R&D producenta robotów

Od kinematyki do decyzji zakupowej — wybór silników i przekładni

  1. 1.M9Dynamika odwrotna (Newton-Euler) — wyliczenie τ
  2. 2.M10Silnik DC i energia napędów
  3. 3.M11Dobór napędów — pipeline projektowy

≈2-3 godziny · pakiet decyzji projektowych

Wszystkie moduły działają jako referencja — wracaj do nich wybiórczo gdy potrzebujesz konkretnego wzoru, wyprowadzenia albo przykładu liczbowego. Każdy moduł zawiera ściągę formuł na końcu i co najmniej jeden wzorzec liczbowy, który możesz sprawdzić we własnej implementacji.

Od kinematyki prostej do odwrotnej

Manipulator o n stopniach swobody opisuje odwzorowanie f:QSE(3)f: Q \to SE(3), gdzie QRnQ \subset \mathbb{R}^n to przestrzeń konfiguracji (wektory wartości przegubów), a SE(3)SE(3) — grupa transformacji sztywnych 3D opisujących pozę efektora. Kinematyka prosta (FK) oblicza T0n=f(q1,,qn)T_0^{n} = f(q_1,\dots,q_n) bezpośrednio z iloczynu macierzy transformacji kolejnych ogniw:

T0n(q)  =  0 ⁣T1(q1)1 ⁣T2(q2)n1 ⁣Tn(qn).T_0^{n}(q) \;=\; {}^{0}\!T_1(q_1) \cdot {}^{1}\!T_2(q_2) \cdot \dots \cdot {}^{n-1}\!T_n(q_n).

Problem odwrotny (IK) polega na wyznaczeniu qQq \in Q takiego, że f(q)=Tf(q) = T^*, gdzie TT^* to zadana poza. Jest on zasadniczo trudniejszy: nieliniowy, wielokrotnie zdegenerowany, a często nieposiadający rozwiązania analitycznego. Poniższy diagram zestawia obie kierunki rozumowania:

Kinematyka prosta vs odwrotna — porównanie kierunku obliczeń
Kinematyka prosta (FK): kąty przegubów → poza efektora. Kinematyka odwrotna (IK): poza efektora → kąty. FK zawsze ma jednoznaczne rozwiązanie; IK często nie.
Źródło: Wikimedia Commons · autor: Haendy-freak · licencja: CC BY-SA 4.0

Manipulacja interaktywna — Puma560

Poniższy panel renderuje robota Puma560 z jego tabelą parametrów DH (modified / Craig). Suwaki po prawej sterują wartościami przegubów q1,,q6q_1, \dots, q_6. Triady pokazują układy współrzędnych każdego ogniwa — to te same układy współrzędnych, na których opiera się każdy z solverów IK w kolejnych modułach.

Konfiguracja przegubów

θ₁2.8°
θ₂-77.7°
θ₃6.8°
θ₄8.5°
θ₅-19.3°
θ₆172.0°

Poza efektora (T₀⁶)

Pozycja [m]
x = 0.5000
y = 0.1500
z = 0.3000
Orientacja RPY [°]
R = 0.00
P = 90.00
Y = 0.00

Nie tylko Puma — różne typy manipulatorów

Większość modułów koncentruje się na klasycznym manipulatorze przegubowym (anthropomorphic, articulated) — sześć przegubów obrotowych w łańcuchu szeregowym (typowy układ Puma560, Fanuc R-2000, ABB IRB). Ale w przemyśle istnieje cała rodzina innych konstrukcji, każda z własną charakterystyką i podejściem do IK:

  • SCARA (Selective Compliance Articulated Robot Arm) — cztery osie, dwa pierwsze obroty w płaszczyźnie poziomej, jeden ruch wzdłuż Z, jedna rotacja narzędzia. Idealny do montażu PCB i przenoszenia.
  • Delta — równoległy, trzy ramiona połączone u góry, ruch translacyjny TCP. Bardzo szybki (pick-and-place), ale małą przestrzeń roboczą.
  • Kartezjański (gantry) — trzy osie translacyjne, prostokątna przestrzeń robocza. IK trywialne (każda oś niezależna), ale duże gabaryty.
  • Cylindryczny / sferyczny — historyczne układy, ograniczone zastosowania.
Schemat manipulatora SCARA
Manipulator SCARA — 4 osie, 2 obrotowe w płaszczyźnie XY, jedna translacyjna w Z, jedna obrotowa narzędzia. IK ma znacznie prostsze wzory niż Puma.
Źródło: Wikimedia Commons · autor: EBatlleP · licencja: CC BY-SA 4.0

Każdy z tych typów ma specyficzne wzory IK — często znacznie prostsze niż dla Pumy. Metody iteracyjne (Jakobianowe, optymalizacyjne) z modułów 3–4 są uniwersalne — działają niezależnie od typu konstrukcji.

Kluczowe trudności IK

  1. Wielokrotność rozwiązań. Dla typowego przemysłowego manipulatora 6-DOF (Puma, Fanuc, ABB) istnieje do ośmiu konfiguracji osiągających tę samą pozę — shoulder L/R, elbow up/down, wrist flip. Solver musi wybrać jedną, np. najbliższą bieżącej konfiguracji.
  2. Osiągalność. Zbiór poz osiągalnych jest ograniczony (workspace) — zadanie poza nim nie ma rozwiązania.
  3. Singularności. W punktach, w których jakobian traci rząd (np. przy q5=0q_5 = 0 w nadgarstku sferycznym), solver numeryczny rozbiega się albo traci stabilność; rozwiązanie zamknięte w tym miejscu jest ciągłe, ale kierunek ruchu nadgarstka staje się niejednoznaczny.
  4. Ograniczenia przegubowe i kolizje. Matematyczne rozwiązanie może być fizycznie nierealizowalne.

Klasyfikacja metod IK

KategoriaReprezentanciZaletyWady
Analityczne (zamknięte)Pieper, Paul, PoE / Paden-Kahan, Raghavan-RothDokładne, szybkie (µs), wszystkie rozwiązaniaWymagają ręcznego wyprowadzenia dla każdej rodziny robotów; trudniejsze geometrie wymagają zaawansowanych metod (rezultanty, równanie 16. stopnia)
Jakobianowe (iteracyjne)Transpose, Pseudoinverse, DLS, SDLSDowolny robot, płynne trajektorieSingularności, rozbieżność, lokalne minima
OptymalizacyjneNelder–Mead, SQP, CMA-ESDowolne cele i ograniczeniaWolne, wrażliwe na parametry
Uczące sięMLP, MDN, IKFlow, diffusionWielomodalne, uczą się niejawnej strukturyKoszt treningu, ekstrapolacja, niepewność
HybrydoweNN→DLS warm-start, learned JacobianNajczęściej najlepszy kompromis w praktyceZłożoność implementacji

W kolejnych modułach każda z tych rodzin jest omówiona osobno — z wyprowadzeniem, implementacją referencyjną i porównaniem na tym samym zbiorze testowych poz.