Od FK do problemu odwrotnego — postawienie zagadnienia, klasyfikacja, osiągalność, singularności.
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.
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:

🎯 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.
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
≈3-4 godziny lektury liniowej
🔬 Doktorant / researcher IK numerycznej
Porównać metody iteracyjne, optymalizacyjne i uczone na wspólnym benchmarku
≈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
≈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.
Manipulator o n stopniach swobody opisuje odwzorowanie , gdzie to przestrzeń konfiguracji (wektory wartości przegubów), a — grupa transformacji sztywnych 3D opisujących pozę efektora. Kinematyka prosta (FK) oblicza bezpośrednio z iloczynu macierzy transformacji kolejnych ogniw:
Problem odwrotny (IK) polega na wyznaczeniu takiego, że , gdzie 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:

Poniższy panel renderuje robota Puma560 z jego tabelą parametrów DH (modified / Craig). Suwaki po prawej sterują wartościami przegubów . 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.
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:
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.
| Kategoria | Reprezentanci | Zalety | Wady |
|---|---|---|---|
| Analityczne (zamknięte) | Pieper, Paul, PoE / Paden-Kahan, Raghavan-Roth | Dokładne, szybkie (µs), wszystkie rozwiązania | Wymagają ręcznego wyprowadzenia dla każdej rodziny robotów; trudniejsze geometrie wymagają zaawansowanych metod (rezultanty, równanie 16. stopnia) |
| Jakobianowe (iteracyjne) | Transpose, Pseudoinverse, DLS, SDLS | Dowolny robot, płynne trajektorie | Singularności, rozbieżność, lokalne minima |
| Optymalizacyjne | Nelder–Mead, SQP, CMA-ES | Dowolne cele i ograniczenia | Wolne, wrażliwe na parametry |
| Uczące się | MLP, MDN, IKFlow, diffusion | Wielomodalne, uczą się niejawnej struktury | Koszt treningu, ekstrapolacja, niepewność |
| Hybrydowe | NN→DLS warm-start, learned Jacobian | Najczęściej najlepszy kompromis w praktyce | Zł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.