Kinematyka prosta i odwrotna w robotyce – jak robot oblicza położenie i ruch?

Robot przemysłowy, humanoidalny lub kroczący nie porusza się przypadkowo. Każdy ruch ramienia, chwytaka, nogi albo stopy musi zostać wcześniej przeliczony przez układ sterowania. Robot powinien wiedzieć, w jakim położeniu znajdują się jego przeguby oraz jak należy je ustawić, aby efektor końcowy osiągnął wskazany punkt w przestrzeni. Właśnie tym zajmuje się kinematyka prosta i odwrotna w robotyce.

Kinematyka opisuje ruch robota bez analizowania sił, masy oraz momentów obrotowych działających na jego elementy. Pozwala natomiast określić zależności pomiędzy ustawieniem poszczególnych przegubów a położeniem całego mechanizmu. Dzięki temu możliwe jest obliczenie pozycji chwytaka ramienia robotycznego, stopy robota humanoidalnego lub narzędzia zamontowanego na końcu manipulatora.

W przypadku kinematyki prostej znane są kąty albo przesunięcia przegubów, a następnie obliczane jest położenie i orientacja efektora końcowego. Kinematyka odwrotna działa w przeciwnym kierunku — najpierw określane jest docelowe położenie narzędzia, dłoni lub stopy, a później wyznaczane są ustawienia przegubów potrzebne do osiągnięcia tego punktu.

Obliczenia te są wykorzystywane między innymi podczas chwytania przedmiotów, układania produktów, spawania, paletyzacji, planowania kroków robota oraz sterowania jego całym ciałem. Są również niezbędne w systemach symulacyjnych, środowisku ROS 2 i oprogramowaniu przeznaczonym do planowania ruchu robotów.

W artykule zostanie wyjaśnione, czym różni się kinematyka prosta od odwrotnej, jak zbudowany jest łańcuch kinematyczny robota oraz dlaczego jeden punkt może zostać osiągnięty przy kilku różnych ustawieniach przegubów. Omówione zostaną również stopnie swobody, układy współrzędnych, przestrzeń robocza oraz osobliwości, które mogą utrudniać lub uniemożliwiać wykonanie określonego ruchu.

Praktyczne zastosowanie robotyki

Dobierasz robota do projektu edukacyjnego, badawczego lub przemysłowego?

Pomożemy przeanalizować wymagany zasięg, liczbę stopni swobody, możliwości programowania oraz integrację robota z ROS 2 i środowiskiem badawczym.

W robotach mobilnych model kinematyczny może być łączony z pomiarami LiDAR-u, natomiast w robotach kroczących i humanoidalnych ważnym źródłem informacji o orientacji korpusu jest IMU. Przykładem platformy wymagającej koordynacji wielu przegubów i łańcuchów kinematycznych jest robot humanoidalny G1.

Spis treści

Czym jest kinematyka w robotyce?

Kinematyka w robotyce jest dziedziną zajmującą się opisem ruchu robota oraz wzajemnego położenia jego elementów. Analizowane są przede wszystkim pozycje, orientacje, prędkości i przyspieszenia poszczególnych członów, jednak nie są uwzględniane siły ani momenty obrotowe powodujące ten ruch.

Można więc powiedzieć, że kinematyka odpowiada na pytanie: gdzie znajduje się dany element robota i jak zmienia swoje położenie? Dzięki odpowiednim obliczeniom możliwe jest określenie pozycji chwytaka, narzędzia, dłoni, stopy lub innego efektora końcowego względem podstawy robota albo wybranego układu odniesienia.

W typowym ramieniu robotycznym kolejne człony są połączone za pomocą przegubów obrotowych lub liniowych. Zmiana położenia jednego przegubu wpływa na ustawienie wszystkich elementów znajdujących się dalej w łańcuchu kinematycznym. Dlatego nawet niewielki obrót osi położonej blisko podstawy może spowodować znaczne przesunięcie końcówki roboczej.

Kinematyka jest wykorzystywana zarówno podczas projektowania robota, jak i w trakcie jego codziennej pracy. Na jej podstawie może zostać sprawdzone, czy robot dosięgnie określonego punktu, czy nie przekroczy dopuszczalnych zakresów ruchu oraz jakie ustawienie przegubów powinno zostać przyjęte podczas wykonywania zadania.

Obliczenia kinematyczne są również niezbędne w symulatorach robotów, systemach sterowania oraz oprogramowaniu do planowania trajektorii. Dzięki nim ruch robota może zostać najpierw zweryfikowany w środowisku wirtualnym, a dopiero później wykonany przez rzeczywisty mechanizm. Pozwala to ograniczyć ryzyko kolizji, błędnego ustawienia narzędzia oraz uszkodzenia robota lub obsługiwanego obiektu.

Czym kinematyka różni się od dynamiki?

Kinematyka i dynamika opisują ruch robota, jednak analizują go z dwóch różnych perspektyw. Kinematyka koncentruje się na położeniu, orientacji, prędkości i przyspieszeniu elementów robota. Nie rozpatruje natomiast sił ani momentów obrotowych, które powodują ten ruch.

Dynamika uwzględnia fizyczne przyczyny ruchu. Analizowane są między innymi masa poszczególnych członów, bezwładność, grawitacja, tarcie, obciążenie oraz siły i momenty generowane przez napędy. Dzięki temu możliwe jest określenie, jakiego momentu obrotowego potrzebuje silnik, aby przegub osiągnął zadaną prędkość lub przyspieszenie.

W praktyce kinematyka odpowiada przede wszystkim na pytanie:

„Jak powinny zostać ustawione przeguby, aby robot osiągnął określone położenie?”

Dynamika pomaga natomiast odpowiedzieć na pytanie:

„Jakie siły i momenty obrotowe są potrzebne, aby robot wykonał ten ruch?”

Przykładowo kinematyka może zostać wykorzystana do obliczenia ustawienia ramienia potrzebnego do podniesienia przedmiotu. Model dynamiczny pozwala następnie sprawdzić, czy silniki i przekładnie będą w stanie wykonać zaplanowany ruch z uwzględnieniem masy ramienia, ciężaru przedmiotu oraz wymaganej prędkości.

W wielu systemach robotycznych najpierw planowana jest trajektoria na podstawie zależności kinematycznych, a następnie układ sterowania wykorzystuje model dynamiczny do obliczenia odpowiednich sygnałów sterujących. W przypadku robotów kroczących i humanoidalnych dynamika ma szczególne znaczenie, ponieważ ruch kończyn musi być połączony z utrzymaniem stabilności całego robota.

Robot pokazuje jak działa kinematyka w robocie humanoidalnym

Kinematyka a dynamika robota

Obie dziedziny opisują ruch, ale odpowiadają na inne pytania dotyczące działania mechanizmu.

Porównywany element Kinematyka Dynamika
Główne pytanie Gdzie znajduje się robot i jak zmienia swoje położenie? Jakie siły powodują ruch robota?
Analizowane wielkości Pozycja, orientacja, prędkość i przyspieszenie Siła, moment obrotowy, masa, bezwładność i energia
Uwzględnienie masy Nie jest wymagane Jest niezbędne do wykonania obliczeń
Wpływ grawitacji Zwykle nie jest analizowany Jest uwzględniany w modelu robota
Przykładowe zadanie Obliczenie pozycji chwytaka na podstawie kątów przegubów Obliczenie momentów silników potrzebnych do wykonania ruchu
Zastosowanie Planowanie pozycji, trajektorii i zasięgu robota Sterowanie napędami, stabilizacja i dobór mocy silników

Z jakich elementów składa się łańcuch kinematyczny robota?

Łańcuch kinematyczny robota jest układem sztywnych elementów połączonych za pomocą ruchomych przegubów. Rozpoczyna się zwykle w podstawie robota, a kończy na efektorze końcowym, którym może być chwytak, narzędzie, dłoń albo stopa. Zmiana położenia jednego przegubu wpływa na ustawienie kolejnych członów znajdujących się dalej w łańcuchu.

W klasycznym ramieniu przemysłowym stosowany jest najczęściej otwarty łańcuch kinematyczny. Oznacza to, że kolejne człony tworzą pojedynczą drogę od podstawy do końcówki roboczej. Taka konstrukcja jest spotykana również w nogach robotów kroczących i kończynach robotów humanoidalnych.

W robotach równoległych mogą być natomiast stosowane zamknięte łańcuchy kinematyczne, w których efektor końcowy jest połączony z podstawą za pomocą kilku gałęzi kinematycznychi. Rozwiązanie takie pozwala uzyskać dużą sztywność konstrukcji, ale sprawia, że obliczenia kinematyczne stają się bardziej złożone.

Podstawa robota

Podstawa stanowi punkt początkowy całego łańcucha kinematycznego. Jest ona zazwyczaj powiązana z głównym układem współrzędnych robota, względem którego określane jest położenie kolejnych przegubów, członów oraz efektora końcowego.

W robocie przemysłowym podstawa może zostać zamocowana:

  • do podłoża lub fundamentu,
  • do ściany albo sufitu,
  • na dodatkowej osi liniowej,
  • na autonomicznej platformie mobilnej.

W robocie mobilnym lub humanoidalnym położenie podstawy może zmieniać się podczas pracy. Z tego powodu jej pozycja musi być określana względem otoczenia albo globalnego układu świata.

Człony robota

Człony, nazywane również ogniwami lub segmentami, są sztywnymi elementami konstrukcyjnymi łączącymi kolejne przeguby. Przenoszą obciążenia i wyznaczają geometrię całego mechanizmu.

Członami robota mogą być między innymi:

  • ramiona i przedramiona manipulatora,
  • segmenty nóg robota kroczącego,
  • elementy tułowia robota humanoidalnego,
  • uchwyty, wsporniki i elementy konstrukcyjne,
  • części łączące napędy z efektorem końcowym.

Każdy człon ma określoną długość, geometrię i orientację względem sąsiednich elementów. Parametry te muszą zostać prawidłowo zapisane w modelu robota.

Nawet niewielki błąd w długości członu może spowodować nieprawidłowe obliczenie pozycji chwytaka lub narzędzia.

Przeguby robota

Przeguby umożliwiają wzajemny ruch dwóch sąsiadujących członów. W modelu kinematycznym każdemu przegubowi przypisywana jest zmienna opisująca jego aktualne położenie.

Najczęściej stosowane są:

  • przeguby obrotowe – zmienną jest kąt obrotu wokół określonej osi,
  • przeguby liniowe – zmienną jest wartość przesunięcia wzdłuż osi,
  • przeguby nieruchome – służą do trwałego połączenia elementów modelu.

Wartości wszystkich przegubów tworzą konfigurację robota. Na jej podstawie może zostać obliczone położenie oraz orientacja efektora końcowego względem podstawy.

Osie ruchu i układy współrzędnych

Każdy ruchomy przegub ma zdefiniowaną oś, wokół której wykonywany jest obrót lub wzdłuż której następuje przesunięcie. Kierunek osi wpływa bezpośrednio na możliwy sposób poruszania się mechanizmu.

Lokalne układy współrzędnych mogą być przypisywane do:

  • podstawy robota,
  • poszczególnych przegubów,
  • każdego członu,
  • efektora końcowego,
  • narzędzia i obsługiwanego obiektu.

Dzięki temu położenie każdego elementu może zostać opisane względem części poprzedzającej, a następnie przeliczone względem podstawy robota lub globalnego układu świata.

Efektor końcowy

Efektor końcowy jest ostatnim elementem łańcucha kinematycznego. To jego położenie i orientacja mają najczęściej największe znaczenie podczas realizacji zadania.

Efektorem końcowym może być:

  • chwytak mechaniczny lub podciśnieniowy,
  • przyssawka,
  • głowica spawalnicza albo tnąca,
  • narzędzie montażowe,
  • kamera lub czujnik pomiarowy,
  • dłoń robota humanoidalnego,
  • stopa robota kroczącego.

W obliczeniach wykorzystywany jest często punkt roboczy narzędzia, określany jako TCP – Tool Center Point. Punkt ten nie musi znajdować się bezpośrednio na końcu ostatniego członu.

TCP może zostać umieszczony pomiędzy palcami chwytaka, na końcu elektrody spawalniczej, w osi wiertła albo w innym punkcie, który ma bezpośredni kontakt z obrabianym obiektem.

Schemat mechanizmu

Otwarty łańcuch kinematyczny robota

Każdy kolejny element wpływa na położenie wszystkich części znajdujących się dalej od podstawy.

1

Podstawa

Początkowy układ odniesienia robota

2

Przegub

Umożliwia obrót albo przesunięcie

3

Człon

Łączy kolejne osie mechanizmu

4

Kolejne osie

Rozszerzają zakres i możliwości ruchu

5

Efektor końcowy

Wykonuje właściwe zadanie robota

Obrót przegubu znajdującego się blisko podstawy zmienia położenie całej dalszej części łańcucha. Ruch ostatniego przegubu wpływa natomiast głównie na efektor końcowy.

Czym są stopnie swobody robota?

Stopień swobody, określany skrótem DOF od angielskiego Degree of Freedom, oznacza niezależny parametr potrzebny do opisania konfiguracji lub ruchu robota. W praktyce może nim być obrót przegubu wokół osi albo przesunięcie członu wzdłuż określonego kierunku.

Liczba stopni swobody określa więc, ile niezależnych ruchów może zostać wykonanych bez wymuszania zmiany pozostałych parametrów. Jednemu przegubowi obrotowemu przypisywany jest zazwyczaj jeden kąt, natomiast przegubowi liniowemu — jedna wartość przesunięcia. Zbiór wszystkich tych wartości opisuje aktualną konfigurację robota. Wymiar przestrzeni konfiguracji jest równy liczbie stopni swobody mechanizmu.

Przykładowe ramię z dwoma niezależnymi przegubami obrotowymi ma dwa stopnie swobody. Do jednoznacznego opisania jego ustawienia potrzebne są dwa kąty:

q = [θ₁, θ₂]

Zmiana pierwszego kąta powoduje obrót pierwszego członu oraz całej dalszej części ramienia. Zmiana drugiego kąta wpływa głównie na ustawienie drugiego członu i efektora końcowego.

Stopnie swobody a osie robota

W opisach technicznych określenia oś robota i stopień swobody są często stosowane zamiennie, szczególnie w przypadku klasycznych manipulatorów przemysłowych. Robot sześcioosiowy ma zazwyczaj sześć sterowanych przegubów obrotowych, a więc również sześć stopni swobody.

Nie zawsze jednak liczba napędów, przegubów i stopni swobody musi być identyczna. W bardziej złożonych mechanizmach kilka napędów może wspólnie sterować jednym ruchem, a ograniczenia konstrukcyjne mogą zmniejszać liczbę niezależnych sposobów poruszania się robota. Stopień swobody opisuje przede wszystkim niezależną możliwość ruchu całego mechanizmu, a nie samą liczbę zamontowanych silników.

Dlaczego często stosuje się sześć stopni swobody?

Swobodnie poruszający się obiekt w przestrzeni trójwymiarowej musi mieć możliwość zmiany zarówno swojego położenia, jak i orientacji.

Ruch wzdłuż osi X Przemieszczenie w lewo lub w prawo.
Ruch wzdłuż osi Y Przemieszczenie do przodu lub do tyłu.
Ruch wzdłuż osi Z Przemieszczenie w górę lub w dół.
Obrót wokół osi X Zmiana orientacji określana jako roll.
Obrót wokół osi Y Zmiana orientacji określana jako pitch.
Obrót wokół osi Z Zmiana orientacji określana jako yaw.

Trzy ruchy translacyjne oraz trzy obrotowe tworzą łącznie sześć stopni swobody. Pozwalają one opisać pełną pozycję i orientację obiektu w przestrzeni.

Dlatego klasyczne ramię przemysłowe z sześcioma osiami może zazwyczaj ustawić efektor końcowy w zadanym punkcie oraz nadać mu odpowiednią orientację podczas spawania, montażu, malowania lub manipulowania przedmiotami.

Czym jest redundancja kinematyczna?

Robot jest kinematycznie redundantny, gdy ma więcej stopni swobody, niż jest bezwzględnie potrzebne do wykonania określonego zadania.

Przykładem może być ramię siedmioosiowe. Do ustawienia chwytaka w pełnej pozycji i orientacji przestrzennej wystarcza zazwyczaj sześć parametrów. Dodatkowy stopień swobody pozwala jednak zmieniać ustawienie łokcia bez przesuwania efektora końcowego.

  • Omijanie przeszkód znajdujących się w pobliżu robota
  • Pozostawanie z dala od ograniczeń zakresu przegubów
  • Unikanie niekorzystnych konfiguracji i osobliwości
  • Utrzymywanie wygodnego ustawienia ramienia lub łokcia
  • Wykonywanie ruchu w ograniczonej przestrzeni roboczej
  • Wybór konfiguracji wymagającej mniejszego zużycia energii

Redundancja zwiększa możliwości robota, ale jednocześnie komplikuje sterowanie. System musi wybrać jedno rozwiązanie spośród wielu konfiguracji prowadzących do tego samego położenia efektora.

Możliwości ruchu

Co daje robotowi większa liczba stopni swobody?

Każdy dodatkowy niezależny ruch zwiększa możliwości ustawienia mechanizmu, ale jednocześnie komplikuje obliczenia i sterowanie.

2 DOF

Prosty mechanizm płaski

Dwa niezależne przeguby pozwalają ustawić końcówkę w wybranym punkcie płaszczyzny.

  • robot edukacyjny,
  • prosty manipulator,
  • mechanizm dwuczłonowy.
3 DOF

Pozycjonowanie przestrzenne

Trzy niezależne ruchy mogą umożliwić zmianę położenia końcówki w trzech kierunkach.

  • robot typu Delta,
  • prosty manipulator XYZ,
  • pozycjonowanie bez pełnej orientacji.
6 DOF

Pełna pozycja i orientacja

Sześć stopni swobody pozwala kontrolować trzy współrzędne pozycji oraz trzy parametry orientacji.

  • ramię przemysłowe,
  • spawanie i montaż,
  • precyzyjna praca narzędziem.
7+ DOF

Robot redundantny

Dodatkowe stopnie swobody pozwalają zmieniać konfigurację bez przesuwania efektora końcowego.

  • omijanie przeszkód,
  • bardziej naturalny ruch,
  • ramiona humanoidalne.

Większa liczba stopni swobody nie zawsze oznacza większy zasięg. Przede wszystkim zwiększana jest liczba możliwych konfiguracji, orientacji oraz sposobów wykonania tego samego zadania.

kroczący robot w holograficznym laboratorium robotyki

Układy współrzędnych w robotyce

Położenie dowolnego elementu robota nie może zostać opisane w sposób całkowicie niezależny. Informacja, że chwytak znajduje się w punkcie o współrzędnych X = 500 mm, Y = 200 mm i Z = 700 mm, jest użyteczna dopiero wtedy, gdy wiadomo, względem jakiego układu odniesienia wartości te zostały podane.

Układ współrzędnych, nazywany również układem odniesienia lub ramą współrzędnych, składa się z punktu początkowego oraz trzech wzajemnie prostopadłych osi: X, Y i Z. W robotyce najczęściej stosowane są układy prawoskrętne, w których kierunek osi Z wynika z reguły prawej dłoni.

Do różnych elementów robota mogą zostać przypisane oddzielne układy współrzędnych. Własny układ może mieć podstawa, każdy człon, przegub, chwytak, narzędzie, kamera oraz obsługiwany przedmiot. Dzięki temu położenie jednego elementu może zostać przeliczone względem innego.

Przykładowo pozycja przedmiotu może być znana względem kamery, kamera względem nadgarstka robota, a nadgarstek względem podstawy. Po połączeniu kolejnych transformacji możliwe jest obliczenie położenia przedmiotu względem podstawy robota. Macierze transformacji jednorodnych są wykorzystywane między innymi do opisu konfiguracji ciała sztywnego oraz zmiany układu, w którym zapisane są pozycje, wektory i orientacje.

W środowisku ROS 2 relacje pomiędzy wieloma układami współrzędnych mogą być przechowywane i aktualizowane za pomocą biblioteki tf2. Pozwala ona sprawdzać położenie jednego układu względem drugiego również wtedy, gdy robot i jego elementy przemieszczają się w czasie.

Położenie i orientacja

Najważniejsze układy współrzędnych robota

Ten sam punkt może mieć inne wartości współrzędnych w zależności od tego, względem którego układu odniesienia jest opisywany.

Układ świata

Jest globalnym układem odniesienia dla całego środowiska pracy. Może zostać powiązany z pomieszczeniem, halą, mapą lub obszarem, w którym porusza się robot.

Przykład: pozycja robota mobilnego względem mapy magazynu.

Układ podstawy robota

Jest związany z podstawą mechanizmu i stanowi punkt początkowy większości obliczeń kinematycznych manipulatora.

Przykład: położenie chwytaka względem miejsca zamocowania ramienia.

Układy przegubów i członów

Każdy element łańcucha może mieć własny lokalny układ współrzędnych. Jego położenie zależy od konfiguracji wszystkich wcześniejszych przegubów.

Przykład: układ przedramienia obraca się razem z przegubem łokciowym.

Układ efektora końcowego

Jest przypisywany do ostatniego członu lub kołnierza montażowego. Opisuje pozycję i orientację końca łańcucha kinematycznego.

Przykład: orientacja kołnierza, do którego przykręcono chwytak.

Układ narzędzia i punkt TCP

Jest związany z rzeczywistym punktem roboczym narzędzia. Może być przesunięty i obrócony względem kołnierza robota.

Przykład: środek pomiędzy palcami chwytaka albo koniec elektrody spawalniczej.

Układ obiektu roboczego

Jest przypisywany do produktu, stołu, palety lub stanowiska. Dzięki niemu zadanie może być programowane względem obiektu, a nie wyłącznie względem podstawy robota.

Przykład: punkty odkładania zdefiniowane względem narożnika palety.

Układ świata Podstawa robota Przeguby i człony Efektor końcowy Punkt TCP

Położenie chwytaka względem układu świata jest obliczane przez połączenie kolejnych transformacji: od świata, przez podstawę i wszystkie przeguby, aż do efektora końcowego oraz punktu TCP.

Punkt TCP jest definiowany jako punkt narzędzia mający określone przesunięcie i orientację względem kołnierza montażowego robota. To właśnie jego położenie jest zwykle zapisywane podczas programowania punktów ruchu.

Czym jest kinematyka prosta?

Kinematyka prosta określa położenie i orientację efektora końcowego na podstawie znanych wartości przegubów robota. W przypadku przegubów obrotowych wartościami wejściowymi są kąty, natomiast dla przegubów liniowych wykorzystywane są wartości przesunięcia.

Kierunek obliczeń można zapisać w następujący sposób:

ustawienia przegubów → położenie i orientacja efektora końcowego

Jeżeli znana jest pełna konfiguracja robota, kinematyka prosta pozwala obliczyć, gdzie znajduje się chwytak, narzędzie, dłoń albo stopa względem podstawy lub innego wybranego układu odniesienia. Dla określonego zestawu wartości przegubów wynik kinematyki prostej jest jednoznaczny — robot ma konkretną konfigurację efektora końcowego.

Wartości wszystkich przegubów mogą zostać zapisane w postaci wektora konfiguracji:

q = [q₁, q₂, q₃, ..., qₙ]

Każdy element wektora opisuje położenie jednego przegubu. W ramieniu z sześcioma przegubami obrotowymi wektor będzie zawierał sześć kątów. Na ich podstawie obliczane są kolejne transformacje prowadzące od podstawy robota do efektora końcowego.

Obliczenia wykonywane są zgodnie z budową łańcucha kinematycznego. Najpierw uwzględniane jest położenie pierwszego przegubu względem podstawy, następnie drugiego względem pierwszego, kolejnych członów, a na końcu chwytaka lub narzędzia. Transformacje te są ze sobą łączone, dzięki czemu otrzymywana jest końcowa konfiguracja efektora.

Kierunek obliczeń

Jak działa kinematyka prosta?

Robot rozpoczyna obliczenia od znanych wartości przegubów, a kończy na położeniu i orientacji efektora końcowego.

Wartości przegubów

Kąty obrotu lub wartości przesunięcia poszczególnych osi robota.

Kolejne transformacje

Przeliczenie położenia każdego członu względem elementu poprzedzającego.

Poza efektora

Końcowa pozycja i orientacja chwytaka, narzędzia, dłoni lub stopy.

Pozycja

Określa miejsce efektora w przestrzeni za pomocą współrzędnych X, Y i Z względem wybranego układu odniesienia.

Orientacja

Określa kierunek ustawienia efektora, chwytaka lub narzędzia względem osi wybranego układu współrzędnych.

Pozycja i orientacja mogą zostać zapisane wspólnie w macierzy transformacji jednorodnej 4 × 4. Macierz zawiera część opisującą obrót efektora oraz wektor jego położenia.

Macierz transformacji jednorodnej pozwala połączyć pozycję i orientację ciała sztywnego w jednej reprezentacji oraz przeliczać je pomiędzy różnymi układami współrzędnych.

Przykład kinematyki prostej ramienia dwuczłonowego

Najprostszym sposobem zrozumienia kinematyki prostej jest analiza płaskiego ramienia złożonego z dwóch członów i dwóch przegubów obrotowych. Taki mechanizm jest często oznaczany jako ramię 2R, gdzie litera „R” oznacza przegub obrotowy.

Pierwszy człon ma długość L₁ i obraca się względem podstawy o kąt θ₁. Drugi człon ma długość L₂ i obraca się względem pierwszego członu o kąt θ₂. Na końcu drugiego członu znajduje się efektor, którego położenie jest opisywane za pomocą współrzędnych x i y.

Znając długości obu członów oraz kąty przegubów, można jednoznacznie obliczyć położenie efektora końcowego. Jest to klasyczny przykład kinematyki prostej: konfiguracja przegubów zostaje przekształcona w pozycję końcówki roboczej

Przykład obliczeniowy

Położenie efektora ramienia dwuczłonowego

Współrzędne końcówki są obliczane przez zsumowanie składowych położenia pierwszego i drugiego członu.

L1 Pierwszy człon Długość ramienia od podstawy do łokcia
L2 Drugi człon Długość ramienia od łokcia do efektora
θ1 Kąt podstawy Obrót pierwszego członu względem osi X
θ2 Kąt łokcia Obrót drugiego członu względem pierwszego
Współrzędna pozioma x = L1 · cos(θ1) + L2 · cos(θ1 + θ2)
Współrzędna pionowa y = L1 · sin(θ1) + L2 · sin(θ1 + θ2)

Przykład liczbowy

Długość L₁ 400 mm
Długość L₂ 300 mm
Kąt θ₁ 30°
Kąt θ₂ 45°
x = 400 · cos(30°) + 300 · cos(30° + 45°) ≈ 424 mm
y = 400 · sin(30°) + 300 · sin(30° + 45°) ≈ 490 mm
φ = θ1 + θ2 = 30° + 45° = 75°
Pozycja X 424 mm
Pozycja Y 490 mm
Orientacja 75°

Kąt drugiego członu względem osi X jest sumą kątów θ₁ i θ₂. Dlatego w drugim składniku równań wykorzystywana jest wartość θ₁ + θ₂, a nie wyłącznie kąt przegubu łokciowego.

Otrzymany wynik oznacza, że efektor znajduje się około 424 mm od podstawy w kierunku osi X oraz 490 mm w kierunku osi Y. Jego orientacja względem osi X wynosi 75°.

W rzeczywistym robocie podobna zasada jest stosowana dla większej liczby przegubów. Zamiast dwóch prostych zależności łączone są kolejne transformacje opisujące wszystkie człony i osie mechanizmu.

Czym jest kinematyka odwrotna?

Kinematyka odwrotna, określana również skrótem IK od angielskiego Inverse Kinematics, służy do wyznaczania ustawienia przegubów robota na podstawie zadanego położenia i orientacji efektora końcowego.

Kierunek obliczeń jest więc przeciwny niż w przypadku kinematyki prostej:

zadane położenie i orientacja efektora → wartości przegubów robota

Operator lub program sterujący może określić, gdzie powinien znaleźć się chwytak, narzędzie, dłoń albo stopa. Zadaniem algorytmu kinematyki odwrotnej jest następnie obliczenie takich kątów i przesunięć przegubów, aby wskazana konfiguracja efektora mogła zostać osiągnięta.

Problem kinematyki odwrotnej można zapisać symbolicznie jako:

q = IK(Td)

gdzie:

q oznacza poszukiwany zestaw wartości przegubów,

IK oznacza algorytm kinematyki odwrotnej,

Td jest zadaną konfiguracją efektora końcowego.

W przeciwieństwie do kinematyki prostej rozwiązanie problemu odwrotnego nie zawsze jest jednoznaczne. Dla zadanego położenia efektora może istnieć jedno rozwiązanie, kilka różnych konfiguracji przegubów albo żadne rozwiązanie, gdy punkt znajduje się poza przestrzenią roboczą robota.

Kinematyka odwrotna jest wykorzystywana podczas programowania robotów przemysłowych, chwytania obiektów, sterowania ramionami humanoidalnymi, planowania ustawienia nóg oraz wykonywania ruchów w środowiskach symulacyjnych. W systemie MoveIt 2 solvery IK są udostępniane jako wymienne moduły, dzięki czemu dla konkretnego robota może zostać zastosowany odpowiedni algorytm obliczeniowy.

Od celu do ruchu przegubów

Jak działa kinematyka odwrotna?

Najpierw zadawane jest położenie efektora, a następnie wyszukiwane jest odpowiednie ustawienie wszystkich osi robota.

Pozycja i orientacja celu

Określane jest miejsce oraz sposób ustawienia chwytaka, narzędzia, dłoni albo stopy.

Solver kinematyki odwrotnej

Algorytm analizuje geometrię robota, długości członów, osie oraz ograniczenia przegubów.

Konfiguracja przegubów

Wyznaczane są kąty lub przesunięcia pozwalające osiągnąć zadaną konfigurację efektora.

q

Wektor przegubów

Zestaw kątów i przesunięć opisujących poszukiwaną konfigurację mechanizmu.

IK

Algorytm odwrotny

Metoda analityczna lub numeryczna wykorzystywana do znalezienia odpowiednich wartości przegubów.

Td

Konfiguracja zadana

Docelowa pozycja i orientacja efektora względem wybranego układu współrzędnych.

Przykład praktyczny

Punkt chwytu przedmiotu Obliczenie IK Ustawienie barku, łokcia i nadgarstka Chwytak osiąga cel

Solver IK nie steruje jeszcze bezpośrednio silnikami. Najpierw wyznacza docelową konfigurację przegubów, która może zostać następnie wykorzystana przez planer ruchu i układ sterowania.

Dlaczego kinematyka odwrotna jest trudniejsza?

W kinematyce prostej każdemu określonemu zestawowi wartości przegubów odpowiada jedno położenie i orientacja efektora końcowego. W kinematyce odwrotnej sytuacja jest bardziej złożona: dla zadanego celu może istnieć jedno rozwiązanie, wiele różnych rozwiązań albo żadne rozwiązanie.

Przykładowo dwuczłonowe ramię może dosięgnąć tego samego punktu przy konfiguracji określanej jako „łokieć w górę” albo „łokieć w dół”. Położenie efektora pozostaje wówczas takie samo, lecz wartości kątów przegubów są inne.

Solver kinematyki odwrotnej nie powinien więc jedynie znaleźć matematycznego rozwiązania. Musi również uwzględnić ograniczenia osi, możliwość kolizji oraz aktualne ustawienie robota. W systemach planowania ruchu kontrolowane są między innymi limity przegubów, osobliwości i kolizje z samym robotem lub obiektami znajdującymi się w otoczeniu.

Możliwe wyniki obliczeń

Dlaczego znalezienie konfiguracji robota nie zawsze jest proste?

Matematyczne rozwiązanie musi być jednocześnie osiągalne, bezpieczne oraz zgodne z ograniczeniami rzeczywistego mechanizmu.

Jedno rozwiązanie

Dla określonego punktu może istnieć tylko jedna konfiguracja przegubów pozwalająca ustawić efektor w zadanej pozycji.

Przykład: ramię jest całkowicie wyprostowane na granicy swojego maksymalnego zasięgu.

Wiele rozwiązań

Ten sam punkt może zostać osiągnięty przy kilku różnych ustawieniach barku, łokcia, nadgarstka lub pozostałych osi.

Przykład: konfiguracja „łokieć w górę” oraz „łokieć w dół”.

Brak rozwiązania

Punkt docelowy może znajdować się poza geometrycznym zasięgiem robota albo wymagać orientacji, której mechanizm nie potrafi uzyskać.

Przykład: przedmiot znajduje się dalej niż suma długości wszystkich członów ramienia.

Ograniczenia przegubów

Rozwiązanie może być poprawne matematycznie, lecz wymagać obrotu osi poza jej dopuszczalny zakres mechaniczny.

Przykład: obliczony kąt łokcia wynosi 170°, podczas gdy dozwolony zakres kończy się przy 135°.

Kolizja robota lub otoczenia

Osiągalna konfiguracja może spowodować kontakt ramienia z jego podstawą, innym członem, stołem albo elementem stanowiska.

Przykład: łokieć przechodzi przez przeszkodę, mimo że sam chwytak dociera do prawidłowego punktu.

Wpływ punktu początkowego

Solver numeryczny rozpoczyna obliczenia od konfiguracji początkowej i może znaleźć rozwiązanie znajdujące się najbliżej tego ustawienia.

Przykład: dwa uruchomienia algorytmu z innymi ustawieniami początkowymi mogą prowadzić do różnych konfiguracji.

Łokieć w górę Jedna konfiguracja przegubów
Łokieć w dół Inna konfiguracja, ten sam punkt końcowy

Zadaniem systemu nie jest wyłącznie znalezienie dowolnego rozwiązania. Powinna zostać wybrana konfiguracja bezpieczna, płynna i możliwie bliska aktualnemu ustawieniu robota.

Dla płaskiego ramienia 2R punkt położony wewnątrz przestrzeni roboczej ma zwykle dwa rozwiązania, punkt na jej granicy może mieć jedno rozwiązanie, a punkt znajdujący się poza zasięgiem nie ma rozwiązania kinematyki odwrotnej.

Analityczne i numeryczne metody kinematyki odwrotnej

Równania kinematyki odwrotnej mogą być rozwiązywane dwiema głównymi grupami metod: analitycznie albo numerycznie. Wybór podejścia zależy przede wszystkim od geometrii robota, liczby stopni swobody, wymaganej szybkości obliczeń oraz tego, czy dla danego mechanizmu możliwe jest wyprowadzenie rozwiązania w postaci zamkniętych wzorów.

W metodzie analitycznej zależności pomiędzy położeniem efektora a kątami przegubów są przekształcane do postaci bezpośrednich równań. Po podstawieniu pozycji docelowej mogą zostać obliczone konkretne konfiguracje przegubów. Takie rozwiązanie jest zwykle bardzo szybkie, ale musi zostać opracowane dla określonej geometrii łańcucha kinematycznego. IKFast analizuje budowę mechanizmu pod kątem wzorców umożliwiających wygenerowanie analitycznego solvera w kodzie C++

Metoda numeryczna rozpoczyna obliczenia od konfiguracji początkowej, nazywanej również ziarnem rozwiązania lub seed state. Następnie wielokrotnie obliczana jest aktualna pozycja efektora, wyznaczany jest błąd względem celu i korygowane są wartości przegubów. Proces trwa do osiągnięcia wymaganej dokładności, przekroczenia limitu iteracji albo stwierdzenia, że solver nie zbiega się do rozwiązania. W podręczniku Modern Robotics jako podstawowy przykład numerycznej kinematyki odwrotnej przedstawiana jest iteracyjna metoda Newtona–Raphsona.

Wynik metody numerycznej może zależeć od konfiguracji początkowej. Dwa uruchomienia solvera z różnymi wartościami początkowymi mogą doprowadzić do innych ustawień przegubów, nawet gdy zadana pozycja efektora pozostaje taka sama. W konfiguracji MoveIt mogą być dlatego stosowane limity czasu, wielokrotne próby oraz losowe ponowne uruchomienia obliczeń.

Sposoby rozwiązywania IK

Metoda analityczna czy numeryczna?

Oba podejścia prowadzą do wyznaczenia wartości przegubów, ale wykorzystują inny sposób prowadzenia obliczeń.

Metoda analityczna

Wartości przegubów są wyznaczane za pomocą równań opracowanych dla konkretnej geometrii robota.

Najważniejsze zalety

  • Bardzo krótki czas obliczeń
  • Możliwość wyznaczenia różnych gałęzi rozwiązania
  • Powtarzalny wynik dla tych samych danych wejściowych
  • Brak konieczności prowadzenia kolejnych iteracji

Ograniczenia

  • Rozwiązanie zależy od konkretnej budowy mechanizmu
  • Wyprowadzenie wzorów może być bardzo złożone
  • Nie każda geometria pozwala uzyskać wygodne wzory zamknięte
  • Zmiana konstrukcji może wymagać przygotowania nowego solvera

Metoda numeryczna

Algorytm rozpoczyna obliczenia od konfiguracji początkowej i stopniowo zmniejsza błąd położenia efektora.

Najważniejsze zalety

  • Może być stosowana do złożonych łańcuchów kinematycznych
  • Łatwiej uwzględnia dużą liczbę stopni swobody
  • Może korzystać z dodatkowych funkcji kosztu
  • Nie wymaga wyprowadzania osobnych wzorów dla każdego przypadku

Ograniczenia

  • Wynik może zależeć od konfiguracji początkowej
  • Algorytm może nie osiągnąć wymaganej zbieżności
  • Obliczenia wymagają wielu kolejnych iteracji
  • Problemy mogą występować w pobliżu osobliwości

Uproszczony przebieg metody numerycznej

1
Konfiguracja początkowa Przyjmowany jest początkowy zestaw wartości przegubów.
2
Obliczenie pozycji Kinematyka prosta wyznacza aktualną pozę efektora.
3
Wyznaczenie błędu Porównywany jest aktualny i zadany stan efektora.
4
Korekta przegubów Wartości osi są zmieniane, a cykl rozpoczyna się ponownie.
Porównywana cecha Metoda analityczna Metoda numeryczna
Sposób obliczeń Bezpośrednie równania Iteracyjne zmniejszanie błędu
Konfiguracja początkowa Zwykle nie jest wymagana Ma istotny wpływ na wynik
Szybkość Zazwyczaj bardzo duża Zależna od liczby iteracji
Uniwersalność Ograniczona do określonej geometrii Większa dla złożonych robotów
Możliwe rozwiązania Może zwrócić kilka gałęzi rozwiązania Często znajduje rozwiązanie bliskie wartości początkowej
Ryzyko braku zbieżności Nie występuje proces iteracyjny Solver może zakończyć pracę bez rozwiązania

Nie istnieje jedna metoda najlepsza dla wszystkich robotów. Wybór solvera powinien uwzględniać geometrię mechanizmu, liczbę stopni swobody, wymagany czas obliczeń oraz sposób wyboru rozwiązania spośród wielu możliwych konfiguracji.

Przykłady solverów stosowanych w MoveIt 2

W aktualnej dokumentacji MoveIt domyślny plugin kinematyki odwrotnej wykorzystuje numeryczny solver KDL oparty na macierzy Jacobiego. Jako rozwiązanie analityczne może zostać zastosowany plugin IKFast, natomiast pick_ik łączy globalny algorytm ewolucyjny z lokalną optymalizacją metodą gradientową. Wybór solvera oraz jego parametry są określane w pliku kinematics.yaml.

Czym jest przestrzeń robocza robota?

Przestrzeń robocza robota określa zbiór położeń, które mogą zostać osiągnięte przez jego efektor końcowy. W zależności od przyjętej definicji mogą być analizowane jedynie współrzędne punktu roboczego albo pełne konfiguracje obejmujące również orientację chwytaka lub narzędzia.

Nie należy utożsamiać przestrzeni roboczej wyłącznie z maksymalnym zasięgiem podanym w danych technicznych. unkt może pozostawać poza przestrzenią roboczą z powodu geometrii mechanizmu, zakresów przegubów lub wymaganej orientacji efektora. Niezależnie od tego konfiguracja osiągalna kinematycznie może zostać odrzucona przez system planowania, jeżeli prowadzi do kolizji robota z samym sobą albo z otoczeniem.

Przykładowo ramię może dosięgnąć przedmiotu chwytakiem ustawionym pionowo, lecz nie być w stanie osiągnąć tego samego punktu przy chwytaku obróconym poziomo. W takim przypadku pozycja jest osiągalna, ale nie każda orientacja może zostać w niej uzyskana.

W literaturze rozróżniana jest również zręczna przestrzeń roboczadexterous workspace. Obejmuje ona pozycje, w których efektor może zostać ustawiony we wszystkich wymaganych orientacjach. Jest ona zazwyczaj mniejsza od całego obszaru, do którego robot może dotrzeć przynajmniej w jednej konfiguracji.

Zasięg efektora końcowego

Od czego zależy przestrzeń robocza robota?

Geometryczny zasięg jest tylko jednym z czynników. Rzeczywiste możliwości robota zależą również od orientacji, ograniczeń osi, narzędzia i otoczenia.

Długości członów

Wymiary ramienia wyznaczają jego maksymalny zasięg geometryczny oraz obszary położone zbyt blisko lub zbyt daleko od podstawy.

Przykład: ramię 2R nie sięgnie dalej niż suma długości obu członów.

Zakresy przegubów

Mechaniczne i programowe limity osi mogą wykluczać część pozycji, które byłyby osiągalne przy nieograniczonym obrocie przegubów.

Przykład: podstawa obracająca się tylko o 270° pozostawia obszar niedostępny za robotem.

Wymagana orientacja

Efektor może dotrzeć do punktu, ale nie zawsze może zostać ustawiony w nim pod dowolnym kątem.

Przykład: chwytak dosięga produktu od góry, ale nie może podejść do niego poziomo.

Narzędzie i punkt TCP

Długość oraz sposób zamocowania narzędzia zmieniają położenie punktu roboczego względem ostatniego członu.

Przykład: dłuższe narzędzie zwiększa zasięg TCP, ale może utrudnić ruch blisko podstawy.

Kolizje własne robota

Niektóre konfiguracje prowadzą do kontaktu ramienia z podstawą, innym członem albo przewodami i osłonami mechanizmu.

Przykład: chwytak osiąga punkt, ale łokieć uderza w korpus robota.

Przeszkody w otoczeniu

Stół, ogrodzenie, maszyna lub inny robot mogą ograniczyć praktycznie dostępny obszar pracy.

Przykład: punkt jest osiągalny geometrycznie, lecz żadna bezkolizyjna droga do niego nie istnieje.

Obszar osiągalny Efektor może osiągnąć punkt przynajmniej w jednej konfiguracji.
Obszar ograniczonej orientacji Punkt jest dostępny, ale tylko przy wybranych ustawieniach narzędzia.
Obszar nieosiągalny Żadna dopuszczalna konfiguracja przegubów nie prowadzi do celu.

Przestrzeń robocza idealnego ramienia 2R

Maksymalna odległość od podstawy rmax = L1 + L2
Minimalna odległość od podstawy rmin = |L1 − L2|

Zależności te obowiązują dla idealnego płaskiego ramienia dwuczłonowego z pełnym zakresem obrotu przegubów. W rzeczywistym robocie przestrzeń robocza jest dodatkowo ograniczana przez limity osi, kolizje oraz konstrukcję mechanizmu.

Maksymalny zasięg nie informuje jeszcze, czy robot osiągnie punkt pod wymaganą orientacją i bez kolizji. Dlatego podczas projektowania stanowiska analizowana powinna być pełna przestrzeń robocza, a nie tylko odległość efektora od podstawy.

Czym są osobliwości kinematyczne robota?

Osobliwość kinematyczna jest szczególną konfiguracją robota, w której efektor końcowy traci możliwość wykonywania ruchu w co najmniej jednym kierunku albo sterowanie ruchem staje się bardzo niekorzystne numerycznie.

Nie oznacza to zazwyczaj uszkodzenia mechanizmu. Problem wynika z geometrycznego ustawienia członów i osi robota. Przykładem może być całkowicie wyprostowane ramię dwuczłonowe. W takim położeniu niewielkie zmiany kątów przegubów umożliwiają ruch końcówki wzdłuż jednego kierunku, ale chwilowy ruch prostopadły do niego może być ograniczony lub niemożliwy.

Do analizy takich konfiguracji wykorzystywana jest macierz Jacobiego, która opisuje zależność pomiędzy prędkościami przegubów a prędkością liniową i kątową efektora końcowego. Gdy macierz Jacobiego traci rząd, robot traci jedną lub kilka niezależnych możliwości chwilowego ruchu. Jest to matematyczne kryterium wystąpienia osobliwości.

W pobliżu osobliwości nawet niewielka zadana prędkość efektora może wymagać bardzo dużych prędkości niektórych przegubów. W rzeczywistym robocie wartości te są ograniczone przez napędy i sterowniki, dlatego mogą pojawić się gwałtowne ruchy osi, utrata dokładności, spowolnienie ruchu albo zatrzymanie algorytmu.

Systemy sterowania i planowania ruchu powinny wykrywać zbliżanie się do osobliwości oraz odpowiednio reagować. Przykładowo MoveIt Servo może zmniejszać prędkość robota podczas zbliżania się do konfiguracji osobliwej, a po przekroczeniu określonego progu zatrzymać wykonywanie ruchu.

Szczególne konfiguracje robota

Co dzieje się w pobliżu osobliwości?

Niekorzystne ustawienie osi może ograniczyć kierunki ruchu efektora oraz wymagać bardzo dużych prędkości przegubów.

Prędkości przegubów

Silniki obracają lub przesuwają poszczególne osie robota.

Macierz Jacobiego

Przelicza prędkości przegubów na chwilowy ruch efektora.

Utrata kierunku ruchu

Przy utracie rzędu Jacobiego robot nie może chwilowo realizować wszystkich niezależnych ruchów efektora.

Osobliwość na granicy zasięgu

Może wystąpić, gdy człony ramienia zostaną ustawione w jednej linii, a efektor znajdzie się na skraju przestrzeni roboczej.

Przykład: całkowicie wyprostowane ramię 2R nie może chwilowo przesunąć efektora dalej od podstawy.

Osobliwość wewnątrz przestrzeni roboczej

Może wynikać ze szczególnego wyrównania kilku osi, mimo że efektor nie znajduje się na granicy maksymalnego zasięgu.

Przykład: współliniowe osie nadgarstka ograniczają możliwość niezależnej zmiany jego orientacji.

Wzrost wymaganych prędkości osi

Im bliżej osobliwości, tym większych prędkości niektórych przegubów może wymagać niewielki ruch efektora.

Skutek: napędy osiągają limity prędkości, a rzeczywisty ruch odbiega od polecenia.

Problemy z dokładnym sterowaniem

Niekorzystna kondycja Jacobiego zwiększa wrażliwość obliczeń na błędy pomiarowe i niewielkie zmiany zadanej pozycji.

Skutek: ruch może zostać spowolniony, zmieniony albo przerwany przez sterownik.

Jak może zachowywać się robot w pobliżu osobliwości?

Niektóre osie zaczynają poruszać się bardzo szybko
Ruch efektora zostaje automatycznie spowolniony
Robot nie może wykonać ruchu w zadanym kierunku
Solver IK przestaje znajdować stabilne rozwiązanie
Pojawiają się nagłe zmiany konfiguracji przegubów
Planer odrzuca trajektorię albo wybiera inną drogę

Prosty przykład ramienia dwuczłonowego

Ramię zgięte Zmiany kątów obu przegubów pozwalają przesuwać efektor w dwóch niezależnych kierunkach płaszczyzny.
Ramię całkowicie wyprostowane Człony znajdują się w jednej linii, a chwilowe możliwości ruchu efektora zostają ograniczone.

Jak system ogranicza ryzyko wejścia w osobliwość?

  • Sprawdzana jest kondycja macierzy Jacobiego
  • Zmniejszana jest prędkość ruchu przy zbliżaniu się do granicy
  • Planowana jest inna konfiguracja ramienia lub nadgarstka
  • Wykorzystywane są dodatkowe stopnie swobody robota
  • Trajektoria jest prowadzona z dala od niekorzystnych ustawień
  • Ruch może zostać bezpiecznie zatrzymany po przekroczeniu progu

Osobliwość nie oznacza, że robot jest niesprawny. Jest naturalną właściwością geometrii mechanizmu. Powinna jednak zostać uwzględniona podczas programowania punktów, planowania trajektorii i sterowania ruchem w czasie rzeczywistym.

Macierz Jacobiego nie opisuje bezpośrednio pełnej pozycji robota. Łączy ona chwilowe prędkości przegubów z chwilową prędkością efektora. Gdy robot znajduje się w osobliwości, obraz dostępnych prędkości efektora może zostać ograniczony do mniejszej liczby kierunków — dla prostego ramienia 2R elipsa prędkości może nawet zredukować się do odcinka.

Jak robot wybiera najlepsze rozwiązanie kinematyki odwrotnej?

Gdy dla jednego położenia efektora istnieje kilka poprawnych konfiguracji przegubów, solver kinematyki odwrotnej musi zdecydować, która z nich powinna zostać zwrócona. Nie istnieje jednak jedna konfiguracja najlepsza we wszystkich sytuacjach. Wybór zależy od aktualnego położenia robota, charakteru zadania, ograniczeń mechanicznych oraz przyjętej funkcji kosztu.

Najczęściej preferowane jest rozwiązanie znajdujące się blisko aktualnej konfiguracji. Ograniczana jest wtedy wielkość ruchu przegubów, co pomaga zachować płynność pomiędzy kolejnymi punktami trajektorii. W metodach wykorzystujących pseudoodwrotność Jacobiego może zostać wyznaczona korekta o najmniejszej normie, czyli wymagająca możliwie małej zmiany wartości przegubów.

Nowoczesne solvery mogą również oceniać rozwiązania za pomocą dodatkowych funkcji kosztu. Przykładowo pick_ik pozwala uwzględnić różnicę pomiędzy konfiguracją początkową a znalezionym rozwiązaniem, a także definiować własne kryteria optymalizacyjne. TRAC-IK udostępnia między innymi tryby wyboru rozwiązania według odległości w przestrzeni przegubów lub manipulowalności robota.

Należy jednocześnie odróżnić znalezienie konfiguracji IK od zaplanowania bezpiecznego ruchu do tej konfiguracji. Sam solver może wyznaczyć poprawne ustawienie przegubów, ale pełny system planowania powinien jeszcze sprawdzić ograniczenia osi, kolizje własne robota, kontakt z otoczeniem oraz możliwość poprowadzenia bezpiecznej trajektorii. MoveIt wykorzystuje w tym celu model robota, scenę planowania i mechanizmy kontroli ograniczeń oraz kolizji.

Ocena konfiguracji

Jakie kryteria decydują o wyborze rozwiązania IK?

Poprawna konfiguracja powinna osiągać zadany cel, ale także pozostawać bezpieczna, płynna i zgodna z ograniczeniami robota.

Najmniejszy ruch przegubów

Preferowana może być konfiguracja znajdująca się najbliżej aktualnego ustawienia robota.

Korzyść: krótszy i bardziej płynny ruch pomiędzy kolejnymi punktami.

Odległość od limitów osi

Rozwiązanie może być oceniane pod kątem pozostawienia odpowiedniego zapasu do mechanicznych i programowych granic przegubów.

Korzyść: mniejsze ryzyko zablokowania dalszego ruchu przez ograniczenie jednej z osi.

Brak kolizji

Konfiguracja musi zostać sprawdzona pod kątem kontaktu pomiędzy członami robota oraz obiektami znajdującymi się w otoczeniu.

Korzyść: odrzucane są rozwiązania poprawne matematycznie, ale niemożliwe do bezpiecznego wykonania.

Odległość od osobliwości

Preferowane może być ustawienie zapewniające korzystniejszą manipulowalność i większą swobodę dalszego ruchu efektora.

Korzyść: ograniczane są nagłe wzrosty prędkości osi i problemy numeryczne.

Ciągłość konfiguracji

Dla kolejnych punktów wybierane są rozwiązania należące do tej samej lub zbliżonej gałęzi kinematycznej.

Korzyść: robot nie przeskakuje nagle pomiędzy ustawieniem „łokieć w górę” i „łokieć w dół”.

Preferowana postawa robota

W robocie redundantnym mogą zostać określone dodatkowe wymagania dotyczące położenia łokcia, tułowia, kolan lub innych elementów.

Korzyść: zadanie jest wykonywane przy zachowaniu wygodnej i przewidywalnej konfiguracji całego mechanizmu.

Uproszczony proces wyboru rozwiązania

1
Wygenerowanie rozwiązań Solver znajduje jedną lub kilka konfiguracji osiągających cel.
2
Sprawdzenie ograniczeń Odrzucane są wartości przekraczające dopuszczalne zakresy osi.
3
Kontrola poprawności Sprawdzane są kolizje, osobliwości i dodatkowe warunki zadania.
4
Ocena funkcji kosztu Wybierane jest rozwiązanie najlepiej spełniające kryteria.

Przykład wyboru spośród trzech konfiguracji

Rozwiązanie A Krótki ruch, ale blisko limitu osi Konfiguracja jest osiągalna, lecz pozostawia niewielki zapas do dalszego obrotu przegubu.
Wybrane rozwiązanie Płynny ruch i bezpieczny zapas Konfiguracja znajduje się blisko aktualnego ustawienia, nie powoduje kolizji i pozostaje z dala od osobliwości.
Rozwiązanie C Osiągalne, ale kolizyjne Chwytak osiąga cel, jednak łokieć robota przecina obszar zajęty przez element stanowiska.

Solver IK może wybrać konfigurację na podstawie funkcji kosztu, ale za sprawdzenie całej drogi ruchu odpowiada zwykle planer trajektorii. Poprawny punkt końcowy nie gwarantuje jeszcze, że robot może bezpiecznie do niego dotrzeć.

Wybór rozwiązania bliskiego aktualnej konfiguracji jest szczególnie ważny podczas interpolacji kartezjańskiej i sterowania efektorem w czasie rzeczywistym. Mała zmiana wartości przegubów pomaga zachować ciągłość ruchu, ale nie zastępuje kontroli kolizji, limitów i osobliwości.

Modele ruchu

Jak zmienia się rola kinematyki zależnie od konstrukcji robota?

W każdym przypadku opisywane są zależności geometryczne ruchu, ale inne są zmienne, ograniczenia oraz elementy wykonujące zadanie.

Ramiona przemysłowe

Model opisuje zależność pomiędzy ustawieniem osi a położeniem i orientacją chwytaka, narzędzia lub punktu TCP.

  • Wyznaczanie pozycji narzędzia na podstawie kątów osi
  • Obliczanie ustawienia przegubów dla zadanego punktu TCP
  • Kontrola orientacji chwytaka lub narzędzia
  • Sprawdzanie zasięgu i ograniczeń przestrzeni roboczej
  • Współpraca z planerem ruchu i kontrolą kolizji

Roboty mobilne

Kinematyka podwozia przelicza prędkości kół na prędkość liniową i kątową platformy oraz zmianę jej pozycji na mapie.

  • Opis pozycji platformy za pomocą wartości x, y oraz θ
  • Przeliczanie prędkości lewego i prawego koła
  • Wyznaczanie ruchu liniowego oraz obrotu robota
  • Uwzględnianie ograniczenia ruchu bocznego
  • Obliczanie odometrii na podstawie ruchu kół
Napęd różnicowy v = r/2 · (ωR + ωL)
ω = r/b · (ωR − ωL)

Roboty kroczące

Każda noga może być analizowana jako osobny łańcuch kinematyczny prowadzący od korpusu do stopy.

  • Obliczanie położenia stopy względem korpusu
  • Wyznaczanie kątów stawu biodrowego, kolana i stopy
  • Planowanie punktów podparcia podczas wykonywania kroku
  • Utrzymywanie określonej wysokości i orientacji korpusu
  • Koordynowanie ruchu kilku nóg jednocześnie

Roboty humanoidalne

Model całego ciała obejmuje wiele połączonych łańcuchów: nogi, ramiona, dłonie, głowę oraz ruchomy tułów.

  • Jednoczesne wyznaczanie położenia dłoni i stóp
  • Koordynowanie postawy tułowia z ruchem kończyn
  • Wykorzystywanie redundancji wielu stopni swobody
  • Uwzględnianie kontaktu jednej lub obu stóp z podłożem
  • Realizowanie zadań manipulacyjnych całym ciałem

Model kinematyczny pozwala określić geometrię ruchu robota, ale w przypadku robotów kroczących i humanoidalnych nie wystarcza do zagwarantowania stabilności. Podczas chodzenia muszą zostać dodatkowo uwzględnione siły kontaktu, bezwładność, grawitacja oraz dynamika całego mechanizmu.

Ramiona przemysłowe

Sterowanie położeniem i orientacją narzędzia lub chwytaka.

W manipulatorach przemysłowych kinematyka prosta jest wykorzystywana do obliczania położenia efektora na podstawie aktualnych wartości osi. Kinematyka odwrotna pozwala natomiast wyznaczyć ustawienie przegubów potrzebne do osiągnięcia zadanego punktu roboczego.

  • Obliczanie położenia i orientacji punktu TCP
  • Wyznaczanie konfiguracji przegubów dla zadanego celu
  • Sprawdzanie zakresów ruchu poszczególnych osi
  • Analiza przestrzeni roboczej i osobliwości
  • Planowanie trajektorii pomiędzy punktami zadania
  • Kontrola kolizji robota i narzędzia z otoczeniem

W środowiskach takich jak MoveIt model kinematyczny robota jest wykorzystywany wspólnie z solverem IK, planerem ruchu oraz sceną kolizyjną. Sama konfiguracja przegubów nie wystarcza więc do wykonania zadania — musi zostać również wyznaczona bezpieczna trajektoria prowadząca do celu.

Kinematyka odpowiada za geometryczną poprawność ruchu, natomiast planer trajektorii sprawdza, czy robot może bezpiecznie przejść pomiędzy konfiguracją początkową i końcową.

Roboty mobilne

Przeliczanie ruchu kół na zmianę pozycji całej platformy.

W robocie mobilnym model kinematyczny opisuje zależność pomiędzy prędkościami kół a prędkością liniową i kątową platformy. Dla klasycznego napędu różnicowego oba koła są sterowane niezależnie.

Model napędu różnicowego v = r/2 · (ωR + ωL)
ω = r/b · (ωR − ωL)
v Prędkość liniowa robota
ω Prędkość kątowa platformy
r Promień koła
b Odległość pomiędzy kołami
  • Obliczanie ruchu do przodu i do tyłu
  • Wyznaczanie prędkości obrotu platformy
  • Przeliczanie danych z enkoderów na odometrię
  • Aktualizowanie pozycji x, y oraz orientacji θ
  • Realizowanie poleceń prędkości liniowej i kątowej
  • Uwzględnianie geometrii podwozia robota

Klasyczny robot z napędem różnicowym może jechać do przodu, cofać się i obracać, ale nie może wykonać bezpośredniego przesunięcia bocznego bez zmiany orientacji.

Roboty kroczące i humanoidalne

Koordynacja nóg, ramion, stóp, dłoni i całego korpusu.

W robocie kroczącym każda noga może być traktowana jako osobny łańcuch kinematyczny prowadzący od korpusu do stopy. Kinematyka odwrotna pozwala obliczyć kąty poszczególnych stawów potrzebne do ustawienia stopy w zaplanowanym punkcie.

  • Obliczanie położenia stóp względem korpusu
  • Wyznaczanie konfiguracji bioder, kolan i stawów skokowych
  • Planowanie punktów kontaktu z podłożem
  • Koordynowanie ruchu kilku nóg jednocześnie
  • Utrzymywanie zadanej wysokości i orientacji tułowia
  • Kontrolowanie pozycji dłoni, głowy i całego ciała humanoida

W robocie humanoidalnym jednocześnie analizowanych może być wiele powiązanych łańcuchów kinematycznych. Osobne zadania mogą określać położenie obu stóp, dłoni, głowy oraz tułowia. Ze względu na dużą liczbę stopni swobody stosowana może być kinematyka całego ciała, określana jako whole-body kinematics.

Sama poprawność kinematyczna nie gwarantuje zachowania równowagi. Podczas chodzenia muszą zostać dodatkowo uwzględnione siły kontaktu z podłożem, masa członów, bezwładność, grawitacja oraz dynamika całego robota.

Kinematyka w ROS 2 i MoveIt 2

W ROS 2 model kinematyczny robota jest budowany na podstawie opisu jego członów, przegubów, geometrii oraz wzajemnych transformacji. Podstawowym formatem opisu mechanizmu jest URDF – Unified Robot Description Format, zapisywany w języku XML. W pliku określane są między innymi elementy link, połączenia joint, osie ruchu, zakresy przegubów oraz geometria wizualna i kolizyjna robota.

Pakiet robot_state_publisher pobiera aktualne wartości przegubów i, korzystając z drzewa kinematycznego zdefiniowanego w modelu robota, oblicza oraz publikuje położenia poszczególnych członów do systemu tf2. Biblioteka tf2 przechowuje relacje pomiędzy układami współrzędnych w czasie, dzięki czemu można sprawdzić na przykład położenie chwytaka względem podstawy, kamery względem nadgarstka albo robota względem mapy.Aktualne wartości przegubów są najczęściej określane na podstawie pomiarów pochodzących z enkoderów w robotyce.

MoveIt 2 rozszerza ten model o informacje potrzebne do planowania ruchu i manipulacji. Plik SRDF – Semantic Robot Description Format może określać między innymi grupy planowania, efektory końcowe, połączenia wirtualne oraz ustawienia związane z kontrolą kolizji. Plik ten jest najczęściej przygotowywany za pomocą narzędzia MoveIt Setup Assistant.

W MoveIt 2 obiekt RobotModel reprezentuje strukturę robota, natomiast RobotState przechowuje konkretny zestaw wartości przegubów oraz opcjonalnie ich prędkości i przyspieszenia. Na podstawie aktualnego stanu mogą być obliczane transformacje członów, położenie efektora, kinematyka prosta oraz macierz Jacobiego. RobotState udostępnia również funkcje pozwalające wyznaczać konfigurację ramienia dla zadanej pozycji efektora, o ile dla danej grupy został skonfigurowany solver IK.

Solver kinematyki odwrotnej jest wybierany dla określonej grupy planowania w pliku kinematics.yaml. Mogą zostać w nim zapisane między innymi nazwa pluginu, limit czasu obliczeń, liczba prób oraz rozdzielczość przeszukiwania. Domyślnym rozwiązaniem konfigurowanym przez MoveIt Setup Assistant jest numeryczny plugin KDL, ale mogą być stosowane również inne solvery, na przykład IKFast, TRAC-IK lub pick_ik.

Własne węzły obsługujące cele ruchu, dane robota i komunikację z ROS 2 mogą być tworzone między innymi podczas programowania robotów w Pythonie.

Od modelu do wykonania ruchu

Jak ROS 2 i MoveIt 2 wykorzystują model kinematyczny?

Dane o geometrii robota, aktualnych pozycjach osi i otoczeniu są łączone, aby obliczyć konfigurację oraz zaplanować bezpieczny ruch.

1

Model URDF i SRDF

Opisywane są człony, przeguby, osie, limity, grupy planowania oraz efektory końcowe.

robot_description
2

Aktualny stan przegubów

Enkodery i sterowniki przekazują bieżące wartości osi do systemu ROS 2.

/joint_states
3

Transformacje tf2

Obliczane i publikowane są wzajemne położenia wszystkich układów współrzędnych robota.

/tf i /tf_static
4

RobotModel i RobotState

MoveIt buduje model mechanizmu i zapisuje aktualną konfigurację wszystkich przegubów.

moveit_core
5

Solver IK i kontrola celu

Dla zadanej pozycji efektora obliczane są wartości przegubów spełniające ograniczenia modelu.

kinematics.yaml
6

Planowanie trajektorii

Planer wyszukuje drogę pomiędzy stanem początkowym i docelowym z uwzględnieniem ograniczeń oraz kolizji.

PlanningScene

URDF i SRDF

Pliki opisują strukturę fizyczną i semantyczną robota.

  • Człony i przeguby mechanizmu
  • Osie oraz zakresy ruchu
  • Geometria wizualna i kolizyjna
  • Grupy planowania i efektory końcowe
  • Wirtualne połączenie robota ze światem

robot_state_publisher i tf2

Aktualne wartości przegubów są przeliczane na położenia wszystkich członów i układów współrzędnych.

  • Odczyt bieżących wartości przegubów
  • Obliczanie kinematyki prostej drzewa robota
  • Publikowanie transformacji ruchomych
  • Publikowanie transformacji stałych
  • Przeliczanie danych pomiędzy układami odniesienia

MoveIt 2 i plugin kinematyki

Solver kinematyki odwrotnej jest przypisywany do określonej grupy planowania robota.

  • Wyznaczanie konfiguracji dla zadanej pozycji efektora
  • Kontrola dopuszczalnych zakresów przegubów
  • Ustawianie limitu czasu i liczby prób
  • Możliwość zmiany pluginu IK
  • Obliczanie kinematyki prostej i macierzy Jacobiego

PlanningScene i planer ruchu

Poprawna konfiguracja końcowa jest analizowana w kontekście aktualnego stanu robota i jego otoczenia.

  • Przechowywanie aktualnego stanu robota
  • Reprezentacja przeszkód i obiektów roboczych
  • Kontrola kolizji własnych i środowiskowych
  • Sprawdzanie ograniczeń ruchu
  • Wyznaczanie bezpiecznej trajektorii

Przykład: polecenie przesunięcia chwytaka do przedmiotu

Pozycja przedmiotu z kamery Transformacja do układu podstawy Obliczenie rozwiązania IK Kontrola kolizji i ograniczeń Zaplanowanie i wykonanie trajektorii

Kinematyka odwrotna wyznacza konfigurację końcową robota, ale nie określa automatycznie całej drogi ruchu. Bezpieczna trajektoria jest wyznaczana przez planer z wykorzystaniem modelu robota, aktualnego stanu oraz reprezentacji otoczenia.

PlanningScene zawiera stan robota oraz reprezentację obiektów znajdujących się w jego otoczeniu. Może być wykorzystywana do kontroli kolizji i ograniczeń, natomiast interfejs pluginów planerów pozwala MoveIt 2 współpracować z różnymi algorytmami planowania ruchu.

Praktyczne zastosowania kinematyki w robotyce

Kinematyka jest wykorzystywana wszędzie tam, gdzie ruch robota musi zostać powiązany z konkretnym położeniem narzędzia, chwytaka, kamery, koła albo stopy. Model kinematyczny pozwala przeliczać wartości przegubów na położenie elementów robota, wyznaczać konfiguracje potrzebne do osiągnięcia celu oraz sprawdzać, czy zadanie mieści się w dostępnej przestrzeni roboczej.

Położenie obiektu wykorzystywane podczas chwytania może zostać określone za pomocą kamery 3D, która dostarcza informacje o głębi i przestrzennym położeniu przedmiotu.

W zadaniach manipulacyjnych planowanie musi uwzględniać geometryczne ograniczenia robota i otoczenia. Dotyczy to między innymi sięgania do wnętrza pojemników, chwytania obiektów, odkładania produktów i prowadzenia narzędzia wzdłuż zadanej ścieżki.

Kinematyka może być również łączona z ruchem platformy mobilnej. W takim systemie pozycja podstawy i konfiguracja ramienia są dobierane wspólnie, aby efektor końcowy mógł wykonać zadanie w obszarze większym niż zasięg samego manipulatora.

W robotach kroczących i humanoidalnych modele kinematyczne służą do określania położenia stóp, dłoni i korpusu. Nie zastępują jednak modeli dynamiki i kontaktu z podłożem, które są potrzebne do utrzymania stabilności podczas ruchu.

Od modelu do zadania

Gdzie kinematyka jest wykorzystywana w praktyce?

Obliczenia kinematyczne łączą polecenia programu z rzeczywistym położeniem elementów robota i jego efektora końcowego.

Chwytanie i odkładanie przedmiotów

Robot musi obliczyć ustawienie przegubów, które pozwoli doprowadzić chwytak do punktu chwytu i bezpiecznie przenieść obiekt.

  • Wyznaczenie pozycji chwytaka względem produktu
  • Dobór właściwej orientacji podejścia
  • Obliczenie konfiguracji ramienia za pomocą IK
  • Przeniesienie produktu do punktu odkładania

Spawanie, malowanie i obróbka

Punkt TCP musi być prowadzony po określonej ścieżce z zachowaniem wymaganej orientacji narzędzia względem obrabianej powierzchni.

  • Prowadzenie końcówki spawalniczej wzdłuż spoiny
  • Utrzymywanie kąta dyszy lub głowicy roboczej
  • Przeliczanie kolejnych punktów trajektorii na ruch osi
  • Kontrola dostępności całej ścieżki narzędzia

Inspekcja i pomiary

Kamera, skaner albo sonda pomiarowa muszą zostać ustawione w odpowiedniej odległości i orientacji względem badanego obiektu.

  • Ustawianie kamery względem kontrolowanej powierzchni
  • Planowanie kolejnych punktów pomiarowych
  • Przeliczanie danych pomiędzy układem czujnika i robota
  • Utrzymywanie wymaganej orientacji sensora

Manipulacja mobilna

Ruch podstawy i ramienia może być planowany wspólnie, aby robot sięgnął do przedmiotów znajdujących się poza zasięgiem samego ramienia.

  • Dobór pozycji platformy względem stanowiska
  • Wspólna optymalizacja ruchu podstawy i manipulatora
  • Zwiększanie dostępnej przestrzeni roboczej
  • Realizacja zadań w kilku miejscach bez stałego montażu

Chodzenie i sterowanie całym ciałem

W robotach kroczących kinematyka wyznacza konfigurację nóg, ustawienie stóp oraz wzajemne położenie kończyn i korpusu.

  • Ustawianie stopy w zaplanowanym punkcie kontaktu
  • Obliczanie kątów biodra, kolana i stawu skokowego
  • Koordynowanie dłoni, nóg i tułowia humanoida
  • Wykorzystanie redundancji wielu stopni swobody

Symulacja, edukacja i rozwój oprogramowania

Model kinematyczny pozwala analizować możliwości robota jeszcze przed uruchomieniem programu na rzeczywistym sprzęcie.

  • Weryfikacja zasięgu i konfiguracji robota
  • Testowanie solverów kinematyki odwrotnej
  • Wizualizacja układów współrzędnych i transformacji
  • Nauka programowania oraz planowania ruchu

Od wykrycia obiektu do wykonania ruchu

1
Określenie celu System wyznacza pozycję i orientację obiektu lub narzędzia.
2
Obliczenie IK Wyznaczana jest konfiguracja przegubów osiągająca cel.
3
Planowanie ruchu Sprawdzane są ograniczenia, kolizje i przebieg trajektorii.
4
Wykonanie zadania Sterowniki prowadzą osie po zaplanowanej trajektorii.

Kinematyka jest jednym z etapów całego procesu. W rzeczywistym systemie współpracuje z percepcją, planowaniem trajektorii, kontrolą kolizji, sterowaniem napędami oraz monitorowaniem aktualnego stanu robota.

W manipulatorach kinematyka pozwala określać konfigurację efektora i przegubów, natomiast macierz Jacobiego wiąże prędkości osi z chwilową prędkością końcówki roboczej.

Najczęstsze błędy w modelu kinematycznym robota

Model kinematyczny może być poprawny składniowo, a mimo to nie odzwierciedlać rzeczywistej konstrukcji robota. Nawet niewielki błąd w długości członu, położeniu przegubu lub kierunku jego osi jest przenoszony na wszystkie elementy znajdujące się dalej w łańcuchu. W rezultacie pozycja obliczona dla efektora może różnić się od jego rzeczywistego położenia.

W modelu URDF element origin określa położenie przegubu względem układu członu nadrzędnego, natomiast axis definiuje kierunek ruchu w układzie przegubu. Dla przegubów obrotowych granice położenia są zapisywane w radianach. Błędne wartości tych parametrów bezpośrednio zmieniają geometrię i zachowanie modelu

MoveIt 2 wykorzystuje geometrię kolizyjną z URDF, grupy planowania i reguły kolizji zapisane w SRDF oraz aktualny RobotState. Nieprawidłowa geometria kolizyjna, błędnie utworzona grupa planowania albo niewłaściwe wyłączenie kontroli kolizji może więc prowadzić do odrzucania poprawnych trajektorii lub zaakceptowania ruchu, którego model nie rozpoznaje jako kolizyjny.

Istotna może być również różnica pomiędzy nominalnym modelem robota a jego rzeczywistą geometrią. W niektórych systemach stosowane są indywidualne dane kalibracyjne, które powinny zostać wprowadzone do opisu wykorzystywanego przez ROS 2. Oficjalne narzędzia dla robotów Universal Robots umożliwiają na przykład pobranie korekty kalibracyjnej z konkretnego egzemplarza robota.

Weryfikacja modelu

Co należy sprawdzić przed uruchomieniem planowania ruchu?

Model powinien być zgodny nie tylko z plikiem CAD, ale przede wszystkim z rzeczywistą geometrią, kierunkami osi, limitami oraz konfiguracją konkretnego robota.

Błędne długości i położenia członów

Nieprawidłowe wartości w elementach <origin> zmieniają położenie kolejnych przegubów i całego efektora końcowego.

Objaw: model wygląda poprawnie w wybranej pozycji, ale błąd położenia TCP rośnie podczas ruchu ramienia.
Sprawdź: odległości pomiędzy osiami, przesunięcia XYZ i kąty RPY każdego połączenia.

Niewłaściwy kierunek osi przegubu

Wektor zapisany w elemencie <axis> określa kierunek obrotu lub przesunięcia w układzie przegubu.

Objaw: dodatnia wartość osi powoduje ruch w przeciwnym kierunku albo wokół niewłaściwej osi.
Sprawdź: orientację lokalnego układu przegubu oraz regułę prawej dłoni.

Nieprawidłowy typ przegubu

Przegub obrotowy, ciągły, liniowy, stały lub naśladujący powinien odpowiadać rzeczywistemu sposobowi ruchu mechanizmu.

Objaw: oś nie ma limitu, obraca się bez końca albo pozostaje nieruchoma mimo rzeczywistego napędu.
Sprawdź: typ przegubu, relację parent–child oraz konfigurację przegubów typu mimic.

Błędne limity i jednostki

Zakresy położenia, prędkości i obciążenia muszą być zgodne z rzeczywistymi możliwościami osi oraz konwencją jednostek ROS.

Objaw: planer odrzuca osiągalny punkt albo generuje konfigurację przekraczającą bezpieczny zakres osi.
Sprawdź: radiany zamiast stopni, metry zamiast milimetrów oraz wartości lower, upper i velocity.

Pomylone układy współrzędnych i TCP

Cel może być poprawny liczbowo, lecz zapisany względem niewłaściwego układu świata, podstawy, kamery lub narzędzia.

Objaw: chwytak przesuwa się w prawidłowym kierunku, ale z nieprawidłowym przesunięciem lub orientacją.
Sprawdź: nazwę ramy odniesienia, transformacje tf2 oraz rzeczywiste położenie punktu TCP.

Niedokładna geometria kolizyjna

Model wizualny może być szczegółowy, natomiast geometria kolizyjna powinna możliwie wiernie obejmować rzeczywistą przestrzeń zajmowaną przez robota i narzędzie.

Objaw: planer wykrywa kolizje w wolnej przestrzeni albo nie rozpoznaje rzeczywistego kontaktu.
Sprawdź: skalę, położenie i rozmiar brył kolizyjnych każdego członu.

Błędna konfiguracja semantyczna MoveIt 2

Nieprawidłowo utworzona grupa planowania, efektor końcowy albo macierz dozwolonych kolizji może zmienić sposób analizowania robota.

Objaw: solver nie obsługuje właściwego łańcucha, a kontrola kolizji pomija niewłaściwe pary członów.
Sprawdź: początek i koniec grupy, efektor, połączenie wirtualne oraz Allowed Collision Matrix.

Brak kalibracji i błędne położenia zerowe

Nominalne parametry konstrukcyjne mogą różnić się od geometrii konkretnego egzemplarza, a położenie zerowe enkodera może nie odpowiadać zeru zapisanemu w modelu.

Objaw: symulacja działa prawidłowo, lecz rzeczywisty robot systematycznie nie trafia w zadany punkt.
Sprawdź: offsety osi, korekty producenta, kalibrację TCP oraz zgodność modelu z konkretnym robotem.

Zalecana kolejność weryfikacji modelu

1
Kontrola struktury Sprawdzenie drzewa linków, przegubów i relacji parent–child.
2
Test pojedynczych osi Weryfikacja kierunku, zakresu i punktu zerowego każdego ruchu.
3
Porównanie TCP Zestawienie pozycji obliczonej z pomiarem rzeczywistego robota.
4
Test planowania Kontrola IK, limitów, kolizji i wykonania całej trajektorii.

Krótka lista kontrolna przed pierwszym ruchem

Wszystkie człony mają poprawne wymiary i orientacje
Osie przegubów poruszają się w oczekiwanym kierunku
Limity pozycji i prędkości odpowiadają dokumentacji robota
Położenia zerowe modelu i enkoderów są zgodne
Punkt TCP odpowiada zamontowanemu narzędziu
Geometria kolizyjna obejmuje rzeczywisty obrys mechanizmu
Grupa planowania zawiera właściwy łańcuch kinematyczny
Model został sprawdzony w symulacji i przy małej prędkości

Weryfikację należy rozpoczynać od pojedynczych osi i prostych konfiguracji. Dopiero po potwierdzeniu zgodności modelu z rzeczywistym robotem powinny być testowane złożone rozwiązania IK oraz trajektorie przebiegające blisko przeszkód i granic przestrzeni roboczej.

RobotModel przechowuje strukturę członów i przegubów, natomiast RobotState reprezentuje konkretną konfigurację osi. PlanningScene łączy model i stan robota z informacjami o otoczeniu oraz umożliwia sprawdzanie poprawności konfiguracji i kolizji.

Najważniejsze wnioski

Kinematyka opisuje geometryczne zależności pomiędzy ruchem przegubów a położeniem robota i jego efektora końcowego. Kinematyka prosta pozwala obliczyć pozycję chwytaka na podstawie znanych wartości osi, natomiast kinematyka odwrotna wyznacza konfigurację przegubów potrzebną do osiągnięcia zadanego celu.

W praktycznym systemie robotycznym same obliczenia kinematyczne nie wystarczają. Rozwiązanie musi respektować limity osi, przestrzeń roboczą, osobliwości, kolizje oraz wymagania dotyczące orientacji narzędzia. Następnie planer ruchu wyznacza trajektorię prowadzącą od aktualnego stanu robota do wybranej konfiguracji końcowej.

W ROS 2 i MoveIt 2 wszystkie te elementy są połączone w jeden proces: od modelu URDF i transformacji tf2, przez solver kinematyki odwrotnej, aż po kontrolę kolizji i wykonanie trajektorii.

Podsumowanie

Najważniejsze elementy kinematyki robota

Poprawne sterowanie ruchem wymaga połączenia modelu geometrycznego, obliczeń kinematycznych i kontroli ograniczeń całego systemu.

Kinematyka prosta

Oblicza położenie i orientację efektora na podstawie znanych wartości przegubów oraz geometrii łańcucha kinematycznego.

Kinematyka odwrotna

Wyznacza konfigurację przegubów potrzebną do osiągnięcia określonej pozycji i orientacji efektora końcowego.

Ograniczenia robota

Każde rozwiązanie musi uwzględniać limity osi, przestrzeń roboczą, osobliwości, orientację narzędzia oraz możliwość wystąpienia kolizji.

Planowanie trajektorii

Poprawna konfiguracja końcowa nie gwarantuje bezpiecznego ruchu. Planer musi jeszcze wyznaczyć dopuszczalną drogę do celu.

Dokładny model robota

Wyniki obliczeń zależą od poprawności geometrii, osi przegubów, układów współrzędnych, punktu TCP i danych kalibracyjnych.

Zastosowanie praktyczne

Kinematyka jest podstawą manipulacji, inspekcji, spawania, robotyki mobilnej, chodzenia oraz sterowania całym ciałem humanoida.

Pełny proces realizacji ruchu robota

1
Określenie celu Pozycja i orientacja narzędzia zostają zapisane w wybranym układzie współrzędnych.
2
Obliczenie konfiguracji Solver IK wyznacza wartości przegubów odpowiadające zadanemu celowi.
3
Weryfikacja rozwiązania Sprawdzane są limity, kolizje, osobliwości i pozostałe ograniczenia.
4
Zaplanowanie ruchu Robot wykonuje bezpieczną trajektorię od aktualnego stanu do celu.
Kinematyka odpowiada na pytanie, jak geometria robota przekłada się na ruch. Dopiero połączenie kinematyki z percepcją, kontrolą kolizji, planowaniem trajektorii i sterowaniem napędami pozwala robotowi wykonywać zadania dokładnie, płynnie i bezpiecznie.

Najczęściej zadawane pytania o kinematykę robotów

FAQ

Kinematyka prosta i odwrotna – pytania i odpowiedzi

Najważniejsze informacje dotyczące obliczania pozycji, konfiguracji przegubów i ruchu robotów.

Czym jest kinematyka w robotyce?

Kinematyka opisuje geometryczne zależności pomiędzy położeniem i ruchem przegubów a pozycją oraz orientacją pozostałych elementów robota.

Nie analizuje bezpośrednio sił, momentów, masy ani bezwładności. Te zagadnienia należą przede wszystkim do dynamiki robota.

Czym różni się kinematyka prosta od kinematyki odwrotnej?

Kinematyka prosta oblicza położenie efektora końcowego na podstawie znanych wartości przegubów.

Kinematyka odwrotna rozpoczyna od zadanej pozycji i orientacji efektora, a następnie wyznacza odpowiadające im wartości przegubów.

Czy jedno położenie chwytaka może mieć kilka rozwiązań IK?

Tak. Ten sam punkt może zostać osiągnięty przez kilka różnych konfiguracji robota, na przykład z łokciem skierowanym w górę albo w dół.

W robotach redundantnych liczba możliwych konfiguracji może być jeszcze większa, ponieważ dodatkowe stopnie swobody pozwalają zmieniać postawę robota bez zmiany położenia efektora.

Dlaczego solver kinematyki odwrotnej może nie znaleźć rozwiązania?

Cel może znajdować się poza przestrzenią roboczą, wymagać niemożliwej orientacji narzędzia albo prowadzić do przekroczenia limitów przegubów.

W metodach numerycznych przyczyną może być również niekorzystna konfiguracja początkowa, zbyt krótki czas obliczeń albo problem ze zbieżnością algorytmu.

Czym jest przestrzeń robocza robota?

Jest to zbiór położeń, które może osiągnąć efektor końcowy. Jej kształt zależy między innymi od długości członów, konstrukcji przegubów i zakresów ruchu poszczególnych osi.

Maksymalny zasięg nie oznacza jednak, że robot może osiągnąć każdy punkt pod dowolną orientacją i bez ryzyka kolizji.

Czym jest osobliwość kinematyczna?

Osobliwość jest szczególną konfiguracją robota, w której efektor traci możliwość chwilowego ruchu w jednym lub kilku niezależnych kierunkach.

W pobliżu osobliwości niewielki ruch efektora może wymagać bardzo dużych prędkości wybranych przegubów. Może to powodować spowolnienie, utratę dokładności albo zatrzymanie ruchu.

Jak robot wybiera najlepsze rozwiązanie kinematyki odwrotnej?

System może preferować konfigurację znajdującą się blisko aktualnego ustawienia osi, pozostającą z dala od limitów i osobliwości oraz zapewniającą ciągłość ruchu.

Rozwiązanie powinno również spełniać dodatkowe warunki, takie jak brak kolizji, właściwa postawa robota i odpowiedni zapas do wykonania kolejnego ruchu.

Czy rozwiązanie IK gwarantuje bezpieczny ruch robota?

Nie. Solver IK określa przede wszystkim konfigurację końcową, w której efektor osiąga zadany cel.

Bezpieczna droga pomiędzy stanem początkowym i końcowym musi zostać wyznaczona przez planer trajektorii z uwzględnieniem kolizji, limitów osi oraz ograniczeń całego zadania.

Jaką rolę pełni MoveIt 2 w obliczeniach kinematycznych?

MoveIt 2 wykorzystuje model robota do obliczania kinematyki prostej, macierzy Jacobiego oraz rozwiązań kinematyki odwrotnej. Solver IK może być skonfigurowany jako plugin dla określonej grupy planowania.

MoveIt 2 łączy obliczenia kinematyczne z kontrolą kolizji, ograniczeniami ruchu, aktualnym stanem robota i planowaniem trajektorii.

Jakie dane opisują model kinematyczny robota w ROS 2?

Podstawowy model może zostać zapisany w formacie URDF. Zawiera on informacje o członach, przegubach, osiach ruchu, limitach oraz geometrii wizualnej i kolizyjnej.

W MoveIt 2 opis jest uzupełniany między innymi przez SRDF, konfigurację solvera IK i dane dotyczące grup planowania.

Czy kinematyka wystarcza do sterowania robotem humanoidalnym?

Nie. Kinematyka pozwala określić konfigurację nóg, ramion, dłoni, stóp i korpusu, ale nie gwarantuje utrzymania równowagi.

Podczas chodzenia i wykonywania dynamicznych ruchów konieczne jest również uwzględnienie sił kontaktu z podłożem, grawitacji, bezwładności oraz dynamiki całego mechanizmu.

Dlaczego rzeczywisty robot może nie trafiać w pozycję z symulacji?

Przyczyną mogą być błędne długości członów, niewłaściwe kierunki osi, niezgodne położenia zerowe enkoderów, błędnie zdefiniowany punkt TCP albo brak danych kalibracyjnych konkretnego robota.

Model powinien zostać zweryfikowany przez porównanie pozycji obliczonych z rzeczywistymi pomiarami w kilku różnych konfiguracjach mechanizmu.

Poprawne rozwiązanie kinematyki odwrotnej jest tylko jednym z elementów sterowania ruchem. Rzeczywisty system musi jeszcze zweryfikować model robota, kolizje, ograniczenia oraz możliwość bezpiecznego wykonania całej trajektorii.

Od teorii do praktyki

Planujesz projekt wykorzystujący robota?

Pomagamy dobrać roboty do zastosowań edukacyjnych, badawczych i przemysłowych. Możemy omówić wymagany zasięg, liczbę stopni swobody, możliwości programowania oraz integrację z ROS 2 i MoveIt 2.

Wyślij zapytanie Zobacz Akademię Robotyki

Dobór robota · konsultacja projektu · możliwości integracji

Źródła i materiały uzupełniające

Artykuł został opracowany na podstawie materiałów akademickich oraz oficjalnej dokumentacji wykorzystywanych narzędzi. Teoria kinematyki, przestrzeni roboczej, macierzy Jacobiego, osobliwości i metod IK opiera się przede wszystkim na podręczniku Modern Robotics autorstwa Kevina M. Lyncha i Franka C. Parka oraz materiałach dydaktycznych MIT. Implementacja w środowisku robotycznym została zweryfikowana w oficjalnej dokumentacji ROS 2 i MoveIt 2.

Bibliografia i dokumentacja

Materiały wykorzystane przy opracowaniu artykułu

Zestawienie źródeł akademickich oraz oficjalnej dokumentacji technicznej dotyczącej kinematyki i planowania ruchu robotów.

Podstawy akademickie kinematyki

Definicje, modele matematyczne, przestrzeń robocza, macierz Jacobiego, osobliwości i metody IK.

Podręcznik akademicki

Modern Robotics – Lynch i Park

Materiały do podręcznika poświęconego mechanice, planowaniu i sterowaniu robotów.

Przejdź do materiałów
Modern Robotics

Task Space and Workspace

Wyjaśnienie przestrzeni zadania, przestrzeni roboczej oraz osiągalnych konfiguracji efektora końcowego.

Otwórz materiał
Modern Robotics

Inverse Kinematics of Open Chains

Wprowadzenie do analitycznego i numerycznego rozwiązywania kinematyki odwrotnej otwartych łańcuchów.

Otwórz materiał
Modern Robotics

Numerical Inverse Kinematics

Omówienie iteracyjnego wyznaczania rozwiązania IK z wykorzystaniem błędu konfiguracji i macierzy Jacobiego.

Otwórz materiał
Modern Robotics

Velocity Kinematics and Statics

Zależność pomiędzy prędkościami przegubów, macierzą Jacobiego i ruchem efektora.

Otwórz materiał
Modern Robotics

Singularities

Akademickie wyjaśnienie utraty rzędu macierzy Jacobiego i ograniczenia chwilowych kierunków ruchu.

Otwórz materiał

Oficjalna dokumentacja ROS 2

Opis modelu robota, publikowanie stanu oraz transformacje pomiędzy układami współrzędnych.

Dokumentacja ROS 2

URDF – Unified Robot Description Format

Oficjalne materiały dotyczące opisywania członów, przegubów, geometrii i struktury robota.

Otwórz dokumentację
Dokumentacja ROS 2

robot_state_publisher

Dokumentacja węzła publikującego położenia członów robota do systemu transformacji tf2.

Otwórz dokumentację

Oficjalna dokumentacja MoveIt 2

Praktyczne wykorzystanie modelu kinematycznego, solverów IK i planowania trajektorii.

Dokumentacja MoveIt 2

Kinematics

Architektura pluginów kinematyki oraz podstawowe informacje o solverach wykorzystywanych w MoveIt 2.

Otwórz dokumentację
Dokumentacja MoveIt 2

Kinematics Configuration

Konfiguracja solvera kinematyki odwrotnej, limitu czasu i parametrów w pliku kinematics.yaml.

Otwórz dokumentację
Dokumentacja MoveIt 2

Robot Model and Robot State

Reprezentacja modelu robota, aktualnych wartości przegubów, kinematyki prostej i macierzy Jacobiego.

Otwórz dokumentację
Dokumentacja MoveIt 2

Planning Scene

Kontrola kolizji, aktualny stan robota oraz reprezentacja obiektów znajdujących się w jego otoczeniu.

Otwórz dokumentację
Dokumentacja MoveIt 2

pick_ik Kinematics Solver

Dokumentacja konfigurowalnego solvera IK wykorzystującego metody optymalizacyjne.

Otwórz dokumentację
Dokumentacja MoveIt 2

Motion Planning Pipeline

Wyjaśnienie współpracy modelu robota, sceny planowania i algorytmu wyznaczającego trajektorię.

Otwórz dokumentację

Robotyka manipulacyjna i humanoidalna

Materiały akademickie łączące kinematykę z planowaniem, manipulacją, dynamiką i kontaktem z otoczeniem.

MIT Robotic Manipulation

Robotic Manipulation

Materiały dydaktyczne dotyczące percepcji, chwytania, kinematyki, optymalizacji i planowania ruchu.

Przejdź do materiałów
MIT Underactuated Robotics

Humanoid Robotics

Materiały dotyczące ruchu robotów humanoidalnych, kontaktu z podłożem, stabilności i dynamiki całego ciała.

Otwórz materiał

Metoda doboru źródeł: definicje i podstawy matematyczne zostały zweryfikowane w materiałach akademickich, natomiast informacje o konfiguracji i implementacji pochodzą z oficjalnej dokumentacji ROS 2 i MoveIt 2. Materiały sprawdzono w sierpniu 2026 roku.