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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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ń.
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ń robocza — dexterous 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.
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.
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.
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.
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.
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.
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.
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.
Najczęściej zadawane pytania o kinematykę robotów
Ź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.
