Nauka #44: Kinematyka robota — od kątów przegubów do przestrzeni kartezjańskiej i z powrotem

Nowoczesne sześcioosiowe ramię przemysłowe potrafi pozycjonować swój efektor końcowy z powtarzalnością do 0,02 mm — a przecież matematyka rządząca tą precyzją została sformalizowana w latach 50. XX wieku. Ten wpis rozkłada na czynniki pierwsze kinematykę prostą, konwencję Denavita-Hartenberga, Jakobian oraz trudne problemy osobliwości i granic przestrzeni roboczej, z którymi musi zmierzyć się każdy inżynier robotyki.

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:

Jednorodna macierz transformacji z układu i−1 do układu i jest iloczynem czterech elementarnych transformacji:

Ti = Rotzi) · Transz(di) · Transx(ai) · Rotxi)

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:

˙x = J(q) ˙q

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):

Δq = JT(JJT + λ2I)−1 Δx

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:

det(JJT) = 0  ⇒  osobliwość

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:

  1. Ustaw wszystkie skręcenia ogniw DH αi = 0, aby utworzyć ramię płaskie, a następnie zweryfikuj analitycznie pierścieniową granicę przestrzeni roboczej.
  2. 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.
  3. 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.