Gdy robotyczny asystent chirurga przewleka nić przez pętlę o średnicy 2 mm, albo robot spawający karoserię samochodu prowadzi spoinę z prędkością 1,2 m/s, żaden z nich nie odczytuje gotowej tabeli póz. Oba polegają na dwóch wzajemnie odwrotnych transformacjach leżących u podstaw robotyki: kinematyce prostej (kąty przegubów → poza kartezjańska) i kinematyce odwrotnej (pożądana poza → kąty przegubów). Poprawne ich zastosowanie — i wiedza, kiedy się załamują — to różnica między robotem, który działa, a takim, który niszczy sam siebie w osobliwości.
Kinematyka prosta i konwencja Denavita-Hartenberga
Szeregowe ramię robota jest łańcuchem kinematycznym: sekwencją sztywnych ogniw połączonych przegubami. Każdy przegub ma jeden stopień swobody — jest to przegub obrotowy (rotacja) albo pryzmatyczny (translacja). Aby opisać pozę (pozycję + orientację) każdego ogniwa względem poprzedniego, roboticy używają parametryzacji Denavita-Hartenberga (DH), wprowadzonej przez Jacques'a Denavita i Richarda Hartenberga w 1955 roku.
Każda transformacja między ogniwami jest ujęta dokładnie czterema parametrami:
- θi — kąt przegubu (rotacja wokół zi−1)
- di — przesunięcie ogniwa (translacja wzdłuż zi−1)
- ai — długość ogniwa (translacja wzdłuż xi)
- αi — skręcenie ogniwa (rotacja wokół xi)
Jednorodna macierz transformacji z układu i−1 do układu i jest iloczynem czterech elementarnych transformacji:
Ti = Rotz(θi) · Transz(di) · Transx(ai) · Rotx(αi)Dla ramienia z n przegubami poza efektora końcowego w układzie bazowym jest iloczynem wszystkich macierzy ogniw:
T0n = T1 · T2 · … · Tn
Każda macierz Ti to macierz 4×4
zawierająca blok rotacji 3×3 oraz wektor translacji 3×1,
wszystko we współrzędnych jednorodnych. Kinematyka prosta jest zatem
domkniętym mnożeniem macierzy — szybkim, dokładnym i zawsze
dającym jednoznaczną odpowiedź dla danego zestawu kątów przegubów.
Dlaczego współrzędne jednorodne? Ułożenie rotacji 3D (3×3) i translacji (3×1) w pojedynczą macierz 4×4 pozwala złożyć dowolny łańcuch transformacji bryły sztywnej za pomocą zwykłego mnożenia macierzy, zamiast mieszać dodawanie i mnożenie. Każda biblioteka robotyczna, od ROS 2 po Drake, wewnętrznie korzysta z tej konwencji.
Kinematyka odwrotna przez transpozycję Jakobianu
Kinematyka prosta jest łatwa; kinematyka odwrotna (IK) jest trudna.
Mając zadaną pozycję i orientację efektora końcowego
xd, trzeba znaleźć kąty przegubów
q takie, że f(q) = xd, gdzie
f to odwzorowanie kinematyki prostej. Problem jest na
ogół nieliniowy i może mieć zero, jedno albo nieskończenie wiele
rozwiązań.
Najczęściej stosowane podejście numeryczne opiera się na
macierzy Jakobianu J(q), która
odwzorowuje prędkości przegubów na prędkości efektora końcowego:
Jakobian to macierz m×n, gdzie
m to liczba wymiarów przestrzeni zadania (zwykle 6 dla
pozycji 3D + orientacji), a n to liczba przegubów. Każda
kolumna Ji opisuje, jak przegub
i przyczynia się do ruchu efektora końcowego.
Metoda transpozycji Jakobianu iteruje w kierunku celu za pomocą aktualizacji przypominającej gradient prosty:
Δq = α JT(q) Δx
gdzie Δx = xd − f(q) to błąd
kartezjański, a α to współczynnik kroku. Ta
aktualizacja jest obliczeniowo tania — unika odwracania
macierzy J — ale zbiega się wolno w pobliżu
rozwiązań i może oscylować bez starannego tłumienia. Bardziej
odporną alternatywą jest pseudoodwrotność metodą
tłumionych najmniejszych kwadratów (DLS):
Współczynnik tłumienia λ zapobiega dużym
prędkościom przegubów w pobliżu osobliwości, gdzie wyznacznik
JJT zbliżałby się w przeciwnym razie do zera.
Ograniczenia przegubów i przycinanie
Każdy fizyczny robot ma ograniczenia kąta przegubu — mechaniczne ograniczniki, poza które ramię nie może się obrócić bez uszkodzenia. Po każdej iteracji IK zaktualizowane kąty przegubów muszą zostać przycięte:
// Pseudokod — przytnij każdy przegub po aktualizacji
for i in 0..n_joints:
q[i] = q[i] + delta_q[i]
q[i] = clamp(q[i], q_min[i], q_max[i])
Naiwne przycinanie może spowodować zatrzymanie solvera: cel wymaga, by przegub przekroczył swój limit, więc ramię dociera do granicy i przestaje się zbiegać. Bardziej wyrafinowane podejścia wykorzystują projekcję w przestrzeni zerowej, aby wykorzystać nadmiarowość ramienia (gdy n > m) do spełnienia celów drugorzędnych — takich jak utrzymywanie przegubów blisko środka zakresu — bez wpływu na główny cel efektora końcowego.
Osobliwości, granice przestrzeni roboczej i liczby uwarunkowania
Osobliwość kinematyczna występuje, gdy Jakobian
traci rząd — gdy dwie lub więcej osi przegubów staje się
współliniowa albo gdy ramię jest w pełni wyprostowane lub w pełni
złożone. W osobliwości efektor końcowy traci zdolność poruszania
się w jednym lub kilku kierunkach kartezjańskich, niezależnie od
tego, jak szybko obracają się przeguby. Wyznacznik
JJT spada do zera:
Praktyczną miarą tego, jak blisko ramię znajduje się osobliwości, jest indeks manipulowalności, wprowadzony przez Tsuneo Yoshikawę w 1985 roku:
w(q) = √det(J(q) JT(q))
Gdy w → 0, niewielkie błędy kartezjańskie wymagają
ogromnych prędkości przegubów, nasycając siłowniki i powodując
nieregularny ruch. Strategie sterowania utrzymujące
w powyżej progu — albo stosujące DLS z
adaptacyjnym λ, które rośnie wraz ze spadkiem
w — pozwalają uniknąć najgorszych skutków.
Granice przestrzeni roboczej
Osiągalna przestrzeń robocza to zbiór wszystkich pozycji efektora końcowego, jakie można osiągnąć dla dowolnej kombinacji kątów przegubów. Dla płaskiego ramienia dwuogniwowego o długościach l1 i l2 osiągalna przestrzeń robocza jest pierścieniem:
|l1 − l2| ≤ r ≤ l1 + l2
Granica zewnętrzna (r = l1 + l2)
to konfiguracja osobliwa (w pełni wyprostowana). Granica wewnętrzna
jest również osobliwa (w pełni złożona). W 3D ograniczenia
przegubów wycinają dalsze wnęki z tej przestrzeni, pozostawiając
zręczną przestrzeń roboczą — podzbiór pozycji, które
można osiągnąć z pełną swobodą orientacji — zwykle znacznie
mniejszą od osiągalnej przestrzeni roboczej.
Zasada praktyczna: dla ramienia szeregowego o 6 stopniach swobody zręczna przestrzeń robocza jest w przybliżeniu kulą o promieniu 0,5×(l1 + l2 + …) wyśrodkowaną nie w podstawie, lecz w „ramieniu” łańcucha kinematycznego. Ramiona przemysłowe są zwykle montowane lekko podniesione i pod precyzyjnym kątem, by umieścić przedmiot obrabiany wewnątrz tej kuli.
Osobliwość nadgarstka: konkretny przykład
Najbardziej znaną osobliwością w ramionach o 6 stopniach swobody
jest osobliwość nadgarstka, która występuje, gdy przeguby
4 i 6 stają się współliniowe (nadgarstek jest wyprostowany). W tej
konfiguracji ramię traci jeden obrotowy stopień swobody; próba
przejścia przez nią powoduje, że przeguby 4 i 6 obracają się z
bardzo dużą prędkością w przeciwnych kierunkach, aby osiągnąć to,
co w innym przypadku byłoby drobnym obrotem kartezjańskim. Sterowniki
robotów przemysłowych wykrywają ten stan poprzez liczbę uwarunkowania
macierzy J i albo zatrzymują ruch, albo automatycznie
przekierowują ścieżkę, aby uniknąć tej konfiguracji.
Wypróbuj sam
Poniższe symulacje mysimulator.uk pozwalają eksplorować te pojęcia interaktywnie. Przeciągaj suwaki, obserwuj macierze aktualizujące się w czasie rzeczywistym i celowo prowadź ramię w kierunku osobliwości, by zobaczyć, co się dzieje.
Eksplorując symulację kinematyki robota, wypróbuj te eksperymenty:
- Ustaw wszystkie skręcenia ogniw DH
αi = 0, aby utworzyć ramię płaskie, a następnie zweryfikuj analitycznie pierścieniową granicę przestrzeni roboczej. - Ustaw przegub 5 ramienia o 6 stopniach swobody na 0° i obserwuj, jak indeks manipulowalności zapada się w kierunku zera w miarę zbliżania się do osobliwości nadgarstka.
- W symulacji IK porównaj, jak szybko każdy solver się zbiega, gdy cel jest umieszczony blisko granicy przestrzeni roboczej, a jak blisko środka zręcznej przestrzeni roboczej.
Myśl na zakończenie
Kinematyka robota to dziedzina, w której elegancka matematyka spotyka się z brutalną rzeczywistością fizyczną. Konwencja DH jest pięknym skompresowaniem geometrii bryły sztywnej do czterech liczb na przegub. Jakobian łączy przestrzeń przegubów z przestrzenią kartezjańską za pomocą pojedynczej macierzy. Jednak oba te narzędzia zawodzą dokładnie tam, gdzie są najbardziej potrzebne — przy osobliwościach i granicach przestrzeni roboczej — dlatego praktyczne solvery IK nigdy nie są tylko podręcznikowym wzorem. Są podręcznikowym wzorem plus dziesięciolecia inżynierii wokół jego trybów awarii.
Zrozumienie, dlaczego matematyka zawodzi — a nie tylko tego, że zawodzi — oddziela programistę robotyki od inżyniera robotyki. Następnym razem, gdy zobaczysz ramię robota zatrzymujące się w połowie ścieżki i przekierowujące się, będziesz wiedzieć, że właśnie uniknęło osobliwości wykrytej przez sterownik dzięki spadającemu indeksowi manipulowalności. Ta krótka przerwa to Jakobian ratujący silniki nadgarstka.