Jak działa IMU w robotyce? Akcelerometr, żyroskop i orientacja robota

Robot poruszający się w przestrzeni musi wiedzieć, czy przyspiesza, obraca się, przechyla albo traci równowagę. Jednym z najważniejszych czujników dostarczających takich informacji jest IMU, czyli inercyjna jednostka pomiarowa. Urządzenie to znajduje zastosowanie między innymi w robotach mobilnych, humanoidalnych, czworonożnych, dronach, manipulatorach oraz autonomicznych platformach badawczych.

Typowy moduł IMU łączy trójosiowy akcelerometr i trójosiowy żyroskop. Akcelerometr rejestruje przyspieszenia działające wzdłuż trzech osi, w tym wpływ grawitacji, natomiast żyroskop mierzy prędkość kątową, czyli szybkość obrotu urządzenia. Niektóre systemy wykorzystują dodatkowo magnetometr, który dostarcza informacji o kierunku pola magnetycznego.

Dane z pojedynczego czujnika nie wystarczają zwykle do stabilnego określania orientacji robota. Oprogramowanie łączy więc pomiary akcelerometru, żyroskopu, a czasami również magnetometru, kamery, LiDAR-u i enkoderów. Proces ten nazywany jest fuzją sensorów.

W tym artykule wyjaśniamy, jak działa IMU w robotyce, jakie informacje przekazują akcelerometr i żyroskop, czym różnią się moduły 6- i 9-osiowe oraz dlaczego dryft, drgania, temperatura i kalibracja mają tak duże znaczenie. Pokażemy również, jak dane IMU są wykorzystywane w ROS 2, SLAM-ie, autonomicznej nawigacji i stabilizacji ruchu robota.

Typowy współczesny moduł IMU zawiera trójosiowy akcelerometr i trójosiowy żyroskop, natomiast standardowa wiadomość sensor_msgs/msg/Imu w ROS 2 może przenosić orientację, prędkość kątową i przyspieszenie liniowe wraz z macierzami kowariancji.

LEDIO Robotics
Planujesz zakup lub wdrożenie robota?

Pomagamy dobrać robota do zastosowań edukacyjnych, badawczych, przemysłowych i pokazowych. Zapewniamy wsparcie na etapie wyboru rozwiązania, uruchomienia, szkolenia oraz dalszej integracji systemu.

Dobór odpowiedniego robota Wsparcie techniczne Szkolenia i uruchomienie Integracja ROS 2 i Python
Skontaktuj się z nami Odpowiemy na pytania i omówimy zastosowanie robota.

Czym jest IMU?

IMU, czyli Inertial Measurement Unit, jest zespołem czujników służących do pomiaru ruchu urządzenia. Moduł nie obserwuje otoczenia tak jak kamera 3D lub LiDAR. Rejestruje natomiast zjawiska zachodzące bezpośrednio w poruszającym się robocie, takie jak przyspieszenie i obrót.

Najczęściej spotykana jednostka IMU zawiera trójosiowy akcelerometr oraz trójosiowy żyroskop. Taki układ dostarcza sześciu kanałów pomiarowych i jest określany jako IMU 6-osiowe. Liczby tej nie należy mylić ze stopniami swobody przegubów robota ani z sześcioma stopniami swobody opisującymi położenie i orientację bryły w przestrzeni.

Robot może posiadać znacznie więcej stopni swobody niż liczba osi jego IMU. Przykładowo robot humanoidalny może mieć kilkadziesiąt niezależnie sterowanych przegubów, mimo że zamontowany w jego korpusie moduł IMU nadal wykorzystuje trójosiowy akcelerometr i trójosiowy żyroskop.

Szczególnie istotnym problemem jest narastanie błędu w czasie. Nawet niewielki błąd żyroskopu, wielokrotnie sumowany podczas obliczania kąta obrotu, może prowadzić do stopniowego odchylenia wyniku od rzeczywistej orientacji. Zjawisko to nazywane jest dryftem i stanowi jeden z głównych powodów stosowania fuzji sensorów.

Czujniki inercyjne są w praktyce oparte przede wszystkim na akcelerometrach i żyroskopach, a kompletne moduły MEMS IMU często integrują oba trójosiowe układy w jednej obudowie.

Jakie elementy zawiera moduł IMU?

Moduł IMU nie jest pojedynczym czujnikiem. Najczęściej integruje kilka układów pomiarowych oraz elektronikę odpowiedzialną za przetwarzanie, synchronizację i przesyłanie danych. Podstawę stanowią trójosiowy akcelerometr i trójosiowy żyroskop, ale bardziej rozbudowane urządzenia mogą zawierać również magnetometr, czujnik temperatury, procesor ruchu oraz układy cyfrowego filtrowania.

Dokładna konstrukcja zależy od przeznaczenia urządzenia. Niewielki układ MEMS może udostępniać głównie surowe pomiary, natomiast przemysłowy moduł inercyjny może dodatkowo wykonywać kompensację temperaturową, synchronizację czasu, kalibrację i wstępną fuzję danych.

Element Funkcja Znaczenie w robotyce Występowanie
Akcelerometr trójosiowy Mierzy przyspieszenie właściwe wzdłuż osi X, Y i Z, uwzględniające między innymi wpływ grawitacji. Pomaga wykrywać ruch liniowy, przechylenie, drgania, uderzenia i zmianę orientacji względem kierunku grawitacji. Podstawowy element typowego IMU.
Żyroskop trójosiowy Mierzy prędkość kątową wokół osi X, Y i Z. Pozwala określać szybkość obrotu, śledzić zmiany orientacji oraz stabilizować ruch robota. Podstawowy element typowego IMU.
Magnetometr trójosiowy Mierzy kierunek i natężenie pola magnetycznego w trzech osiach. Może dostarczać odniesienia dla kierunku yaw i ograniczać narastanie błędu orientacji wokół osi pionowej. Element opcjonalny, czasem umieszczony w osobnym układzie.
Czujnik temperatury Rejestruje temperaturę wewnętrzną układu pomiarowego. Umożliwia kompensowanie zmian offsetu i czułości akcelerometru oraz żyroskopu powodowanych temperaturą. Często zintegrowany z układem MEMS.
Przetwornik analogowo-cyfrowy Zamienia sygnały pochodzące z elementów MEMS na wartości cyfrowe. Wpływa na rozdzielczość pomiaru, poziom szumu i zakres wartości dostępnych dla oprogramowania. Zintegrowany wewnątrz cyfrowych układów IMU.
Filtry cyfrowe Ograniczają szum oraz niepożądane składowe częstotliwościowe sygnału. Pomagają zmniejszać wpływ drgań silników, przekładni, śmigieł i konstrukcji mechanicznej robota. Typowe w nowoczesnych cyfrowych IMU.
Bufor FIFO Tymczasowo przechowuje kolejne próbki akcelerometru, żyroskopu i innych czujników. Zmniejsza liczbę operacji wykonywanych przez procesor robota i ogranicza ryzyko utraty danych. Często dostępny w nowoczesnych układach.
Procesor ruchu Może wykonywać wstępne filtrowanie, detekcję ruchu lub fuzję danych bezpośrednio w module. Zmniejsza obciążenie głównego komputera i może dostarczać gotową estymację orientacji. Element opcjonalny, zależny od modelu.
Układ synchronizacji czasu Przypisuje próbkom znaczniki czasu i może współpracować z zewnętrznym zegarem lub sygnałem synchronizującym. Umożliwia prawidłowe łączenie pomiarów IMU z obrazem kamery, LiDAR-em, enkoderami i odometrią. Zależny od klasy oraz przeznaczenia urządzenia.
Interfejs komunikacyjny Przesyła dane do mikrokontrolera lub komputera robota, najczęściej przez SPI, I²C, UART, USB albo magistralę przemysłową. Wpływa na częstotliwość odczytu, opóźnienie, długość przewodów i sposób integracji modułu. Występuje w każdym kompletnym module IMU.
Pamięć kalibracyjna Przechowuje współczynniki korekcji, offsety i dane kompensacji temperaturowej. Pozwala ograniczyć systematyczne błędy pomiarowe i różnice pomiędzy egzemplarzami czujników. Typowa dla bardziej rozbudowanych modułów.
Układ zasilania Stabilizuje napięcie i może zabezpieczać elektronikę przed zakłóceniami. Zapewnia prawidłową pracę czujników oraz ogranicza wpływ szumu elektrycznego na pomiary. Obecny w kompletnych modułach, nie zawsze w samym układzie scalonym.
Gdzie IMU znajduje zastosowanie w robotyce

Nie każdy moduł określany jako IMU zawiera magnetometr lub procesor wykonujący fuzję danych. Typowy czujnik 6-osiowy łączy trójosiowy akcelerometr z trójosiowym żyroskopem. Rozwiązania nazywane 9-osiowymi dodają trzy kanały magnetometru, choć magnetometr może znajdować się w osobnym układzie scalonym. Oficjalne opisy współczesnych czujników TDK i Bosch potwierdzają taką konstrukcję układów 6-osiowych, natomiast rozwiązania 9-osiowe mogą integrować dodatkowo trójosiowy kompas i procesor ruchu.

Wewnętrzny czujnik temperatury służy przede wszystkim do kontroli i kompensowania zachowania samego układu pomiarowego. Nie powinien być traktowany jako precyzyjny termometr mierzący temperaturę otoczenia robota. Nowoczesne IMU mogą również zawierać programowalne filtry cyfrowe, bufor danych i mechanizmy ograniczające wpływ temperatury na wyniki żyroskopu oraz akcelerometru.

Jak działa akcelerometr?

Akcelerometr jest czujnikiem mierzącym przyspieszenie właściwe działające wzdłuż jednej lub kilku osi. W typowym module IMU stosuje się akcelerometr trójosiowy, który dostarcza osobne wyniki dla osi X, Y i Z związanych z obudową czujnika.

W robotyce akcelerometr pozwala wykrywać przyspieszanie, hamowanie, przechylenie, drgania, uderzenia i gwałtowne zmiany ruchu. Może również służyć do określania orientacji względem kierunku grawitacji, szczególnie gdy robot pozostaje nieruchomy albo porusza się powoli.

Większość współczesnych akcelerometrów stosowanych w robotach wykorzystuje technologię MEMS, czyli mikroukłady elektromechaniczne. Wewnątrz niewielkiego układu znajduje się mikroskopijna masa zawieszona na sprężystych elementach. Pod wpływem przyspieszenia masa przemieszcza się względem obudowy, a elektronika mierzy powstałą zmianę, najczęściej metodą pojemnościową.

Jak akcelerometr MEMS zamienia ruch na sygnał?

  1. Wewnątrz czujnika znajduje się mikroskopijna masa pomiarowa zawieszona na sprężystych elementach.
  2. Obudowa akcelerometru porusza się razem z robotem lub jego elementem konstrukcyjnym.
  3. Pod wpływem przyspieszenia masa przemieszcza się nieznacznie względem obudowy czujnika.
  4. Zmiana położenia masy powoduje zmianę pojemności pomiędzy mikroskopijnymi elektrodami.
  5. Układ elektroniczny mierzy zmianę pojemności i przelicza ją na wartość przyspieszenia.
  6. Sygnał jest wzmacniany, filtrowany i zamieniany na postać cyfrową.
  7. Akcelerometr udostępnia osobne wartości dla osi X, Y i Z.
  8. Dane są przesyłane do sterownika IMU, mikrokontrolera albo komputera robota.

Zasada ta przypomina zachowanie niewielkiego ciężarka zawieszonego na sprężynach wewnątrz obudowy. Gdy obudowa przyspiesza, masa chwilowo pozostaje w tyle i zmienia swoje położenie. W rzeczywistym układzie MEMS przemieszczenie jest bardzo małe, ale może zostać precyzyjnie wykryte przez układ pomiarowy.

Akcelerometry MEMS wykorzystują mikroskopijne elementy mechaniczne oraz zintegrowane obwody elektroniczne. W wielu konstrukcjach położenie masy pomiarowej jest rozpoznawane przez zmianę pojemności elektrycznej, a wynik zostaje przekształcony w sygnał cyfrowy

Co właściwie mierzy akcelerometr?

W potocznym uproszczeniu mówi się, że akcelerometr mierzy przyspieszenie i grawitację. Dokładniej czujnik mierzy jednak przyspieszenie właściwe, czyli oddziaływanie sił niegrawitacyjnych na jego masę pomiarową. Z tego powodu nieruchomy akcelerometr leżący na stole nie wskazuje zera, lecz wartość zbliżoną do 1 g w osi skierowanej przeciwnie do grawitacji.

Stół podtrzymuje czujnik i wywiera na niego siłę, która odkształca wewnętrzną strukturę pomiarową. Gdyby czujnik znajdował się w idealnym swobodnym spadku, jego wskazania zbliżyłyby się do zera, mimo że cały układ przyspieszałby w kierunku Ziemi.

Ta właściwość pozwala określać przechylenie nieruchomego robota. Wektor o wartości około 1 g rozkłada się pomiędzy osie X, Y i Z zależnie od orientacji czujnika. Na tej podstawie można oszacować kąty roll i pitch. Sam akcelerometr nie zapewnia jednak stabilnej informacji o kącie yaw, ponieważ obrót wokół osi zgodnej z kierunkiem grawitacji nie zmienia rozkładu tego wektora. Akcelerometry mogą mierzyć zarówno składową statyczną związaną z podparciem względem grawitacji, jak i przyspieszenia dynamiczne wynikające z ruchu, drgań lub uderzeń.

Jak zachowują się wskazania akcelerometru?

Sytuacja Przykładowe wskazanie Interpretacja
Robot stoi nieruchomo na poziomym podłożu Dwie osie wskazują wartości zbliżone do 0 g, a oś pionowa około ±1 g, zależnie od przyjętego zwrotu osi. Czujnik rejestruje siłę podparcia związaną z przeciwdziałaniem grawitacji.
Robot przechyla się Wartość około 1 g rozkłada się pomiędzy dwie lub trzy osie. Na podstawie proporcji składowych można oszacować kąty roll i pitch.
Robot gwałtownie rusza Do składowej związanej z grawitacją dodawane jest przyspieszenie dynamiczne. Sam akcelerometr nie pozwala łatwo rozdzielić ruchu liniowego od zmiany orientacji.
Robot hamuje W osi ruchu pojawia się składowa o przeciwnym znaku niż podczas przyspieszania. Można wykryć zmianę prędkości, ale wynik zależy od orientacji czujnika.
Robot doświadcza drgań Wartości szybko zmieniają się wokół poziomu średniego. Drgania silników, przekładni lub podłoża mogą zwiększać szum pomiaru.
Robot zostaje uderzony Pojawia się krótki impuls o dużej wartości. Czujnik może wykrywać kolizje, upadki i gwałtowne obciążenia.
Czujnik znajduje się w swobodnym spadku Wszystkie osie wskazują wartości zbliżone do 0 g. Masa pomiarowa i obudowa poruszają się razem bez siły podparcia.
Robot obraca się wokół osi pionowej Przy braku dodatkowego ruchu wskazania mogą pozostać prawie niezmienione. Akcelerometr nie zapewnia bezpośredniej informacji o zmianie kąta yaw.

Jednostką przyspieszenia w układzie SI jest metr na sekundę do kwadratu, czyli m/s². Producenci akcelerometrów często podają jednak wyniki i zakres pomiarowy w jednostkach g. Standardowe przyspieszenie ziemskie wynosi około 9,81 m/s².

Typowy czujnik może pracować na przykład w zakresie ±2 g, ±4 g, ±8 g lub ±16 g. Węższy zakres zazwyczaj pozwala dokładniej rejestrować niewielkie zmiany, natomiast szerszy zakres jest potrzebny w robotach narażonych na gwałtowne ruchy, uderzenia i intensywne drgania.

Dlaczego sam akcelerometr nie wystarcza do określania orientacji?

Akcelerometr może dobrze wskazywać kierunek grawitacji, gdy robot pozostaje nieruchomy. Podczas ruchu wynik zawiera jednak jednocześnie wpływ przechylenia, przyspieszenia liniowego, drgań i uderzeń. Oprogramowanie nie może na podstawie pojedynczej próbki jednoznacznie ustalić, która część sygnału wynika z grawitacji, a która z ruchu robota.

Przykładowo robot przyspieszający do przodu może wygenerować wskazania podobne do wskazań robota przechylonego do tyłu. Dopiero połączenie danych z żyroskopem, enkoderami, kamerą albo innym źródłem informacji pozwala prawidłowo rozróżnić te sytuacje.

Z tego powodu akcelerometr jest bardzo dobrym źródłem długoterminowego odniesienia dla kierunku grawitacji, ale słabszym źródłem informacji o szybkich zmianach orientacji. Żyroskop zachowuje się odwrotnie: dobrze śledzi krótkotrwałe obroty, lecz jego wynik stopniowo obciąża dryft. Połączenie obu czujników stanowi podstawę estymacji orientacji w typowym module IMU.

Jak działa żyroskop?

Żyroskop jest czujnikiem mierzącym prędkość kątową, czyli szybkość obrotu urządzenia wokół określonej osi. Trójosiowy żyroskop znajdujący się w typowym module IMU dostarcza osobne pomiary obrotu wokół osi X, Y i Z.

W robotyce żyroskop pozwala wykrywać obrót korpusu, przechylenie, zmianę kierunku jazdy oraz szybkość ruchu kątowego poszczególnych elementów konstrukcji. Dane te są szczególnie ważne w robotach humanoidalnych, czworonożnych i dronach, ponieważ umożliwiają szybkie rozpoznawanie zmian orientacji oraz wspierają utrzymywanie równowagi.

Żyroskop nie mierzy jednak bezpośrednio kąta ani absolutnej orientacji robota. Dostarcza informację, jak szybko i w którą stronę zmienia się orientacja. Aby obliczyć kąt obrotu, oprogramowanie musi całkować kolejne pomiary prędkości kątowej w czasie.

Współczesne moduły IMU wykorzystują najczęściej żyroskopy MEMS. W ich wnętrzu znajdują się mikroskopijne struktury wprawiane w kontrolowane drgania. Gdy czujnik obraca się, na poruszającą się masę działa efekt Coriolisa, powodujący niewielkie przemieszczenie w kierunku prostopadłym do pierwotnego ruchu. Elektronika mierzy to przemieszczenie i przelicza je na prędkość kątową.

Jak żyroskop MEMS zamienia obrót na sygnał?

  1. Wewnątrz czujnika znajduje się mikroskopijna masa pomiarowa zawieszona na sprężystych elementach.
  2. Układ elektroniczny wprawia masę w kontrolowane drgania o określonej częstotliwości.
  3. Gdy żyroskop pozostaje nieruchomy, masa porusza się głównie w zaprojektowanym kierunku drgań.
  4. Podczas obrotu czujnika na drgającą masę zaczyna działać efekt Coriolisa.
  5. Masa przemieszcza się nieznacznie w kierunku prostopadłym do pierwotnych drgań.
  6. Elektrody pojemnościowe wykrywają wielkość i kierunek tego przemieszczenia.
  7. Układ elektroniczny przelicza zmianę pojemności na prędkość kątową.
  8. Sygnał jest wzmacniany, filtrowany i zamieniany na postać cyfrową.
  9. Żyroskop udostępnia osobne wyniki obrotu wokół osi X, Y i Z.
  10. Dane są przekazywane do algorytmu estymacji orientacji lub sterownika ruchu robota.

W żyroskopie MEMS nie znajduje się klasyczny wirujący krążek znany z dawnych żyroskopów mechanicznych. Zamiast niego wykorzystywane są mikroskopijne struktury rezonansowe wykonujące szybkie drgania. Obrót całego czujnika powoduje powstanie dodatkowego ruchu wynikającego z efektu Coriolisa.

Przemieszczenie struktur jest bardzo niewielkie, dlatego musi zostać wykryte przez precyzyjny układ pojemnościowy. Analog Devices opisuje tę zasadę jako pomiar przemieszczenia drgającej masy wywołanego przyspieszeniem Coriolisa.

Co właściwie mierzy żyroskop?

Żyroskop mierzy prędkość kątową, a nie sam kąt obrotu. Wynik informuje, jak szybko orientacja czujnika zmienia się wokół danej osi. Najczęściej jest podawany w stopniach na sekundę, oznaczanych jako °/s lub dps, albo w radianach na sekundę, czyli rad/s.

Przykładowo wartość 90°/s oznacza, że przy utrzymaniu takiej prędkości urządzenie obróciłoby się o 90 stopni w ciągu jednej sekundy. Wartość 360°/s odpowiada jednemu pełnemu obrotowi na sekundę.

Aby oszacować zmianę kąta, oprogramowanie mnoży prędkość kątową przez czas, który upłynął pomiędzy pomiarami. Dla zmiennego ruchu wykonywane jest numeryczne całkowanie kolejnych próbek:

zmiana kąta ≈ prędkość kątowa × czas

Jeżeli robot obraca się ze stałą prędkością 30°/s przez dwie sekundy, obliczona zmiana orientacji wyniesie około 60°. W praktyce wynik zawiera jednak również offset, szum, niedokładność skali i błędy znaczników czasu.

Jak interpretować osie żyroskopu?

Każdy z trzech kanałów żyroskopu opisuje obrót wokół jednej osi związanej z obudową czujnika. Przypisanie osi do ruchów roll, pitch i yaw zależy od sposobu zamontowania IMU oraz przyjętej konwencji układu współrzędnych.

W typowym układzie robota oś X może być skierowana do przodu, Y w bok, a Z do góry. W takim przypadku obrót wokół osi X odpowiada zmianie roll, obrót wokół osi Y zmianie pitch, a obrót wokół osi Z zmianie yaw. Nie jest to jednak reguła uniwersalna — orientację osi zawsze należy sprawdzić w dokumentacji konkretnego czujnika i modelu robota

Sytuacja Przykładowe wskazanie Interpretacja
Robot stoi nieruchomo Wszystkie osie powinny wskazywać wartości zbliżone do 0°/s. Niewielkie wartości różne od zera mogą wynikać z offsetu, szumu i temperatury czujnika.
Robot obraca się w miejscu Największa wartość pojawia się w osi odpowiadającej obrotowi yaw. Znak wyniku wskazuje kierunek obrotu zgodnie z przyjętą konwencją osi.
Robot pochyla się do przodu Zmienia się kanał odpowiadający obrotowi pitch. Wartość opisuje szybkość pochylania, a nie końcowy kąt.
Robot przechyla się na bok Zmienia się kanał odpowiadający obrotowi roll. System sterowania może wykorzystać wynik do szybkiej korekcji równowagi.
Robot utrzymuje stałe przechylenie Po zakończeniu ruchu żyroskop ponownie wskazuje wartość zbliżoną do zera. Czujnik mierzy szybkość zmiany orientacji, a nie samą orientację.
Robot wykonuje gwałtowny obrót Pojawia się krótki sygnał o dużej wartości bezwzględnej. Zakres pomiarowy musi być wystarczająco szeroki, aby uniknąć nasycenia czujnika.
Konstrukcja robota drga Wskazania szybko zmieniają znak i wartość. Drgania silników, przekładni lub podłoża mogą zwiększać szum pomiaru.
Czujnik wykonuje pełny obrót i zatrzymuje się Sygnał występuje podczas obrotu, a po zatrzymaniu wraca w pobliże zera. Pełny kąt obrotu można oszacować dopiero przez całkowanie pomiarów w czasie.

Znak dodatni i ujemny zależy od orientacji osi czujnika oraz przyjętej reguły prawej dłoni. Dlatego przed wykorzystaniem danych należy sprawdzić, jak moduł IMU został zamontowany w robocie i czy jego układ współrzędnych jest zgodny z układem korpusu.

W ROS 2 układy współrzędnych stosowane w robotach powinny być zgodne z konwencjami REP-103. Nieprawidłowe przypisanie osi może powodować, że robot będzie interpretował obrót w prawo jako obrót w lewo albo mylił przechylenie boczne z pochyleniem do przodu.

Zakres pomiarowy żyroskopu

Żyroskopy mogą pracować w różnych zakresach pomiarowych, na przykład ±125°/s, ±250°/s, ±500°/s, ±1000°/s lub ±2000°/s. Wybrany zakres określa największą prędkość kątową, jaką czujnik może poprawnie zmierzyć.

Węższy zakres pozwala zazwyczaj uzyskać większą czułość dla powolnych ruchów, ale szybki obrót może przekroczyć możliwości czujnika. W takim przypadku wynik zostanie ograniczony do wartości maksymalnej, co określa się jako nasycenie.

Szerszy zakres umożliwia rejestrowanie gwałtownych ruchów, ale pojedyncza jednostka cyfrowego wyniku odpowiada większej zmianie prędkości kątowej. Dobór zakresu powinien więc uwzględniać dynamikę konkretnego robota.

Przykładowe współczesne układy IMU udostępniają programowalne zakresy żyroskopu, między innymi od ±250°/s do ±2000°/s.

Dlaczego żyroskop powoduje dryft orientacji?

Idealny żyroskop pozostający nieruchomo powinien przez cały czas wskazywać dokładnie 0°/s. Rzeczywisty czujnik generuje jednak niewielki offset oraz szum. Przykładowo zamiast zera może wskazywać stałą wartość 0,1°/s.

Pojedynczy błąd wydaje się niewielki, ale jest wielokrotnie dodawany podczas całkowania. Jeżeli nie zostanie skorygowany, po jednej minucie może spowodować błąd orientacji wynoszący około sześciu stopni. Zmiany temperatury, drgania i niestabilność offsetu mogą dodatkowo zmieniać tempo narastania błędu.

Dryft nie oznacza, że robot rzeczywiście się obraca. Jest błędem oszacowania powstającym dlatego, że oprogramowanie interpretuje niewielkie niezerowe wskazania jako ciągły ruch.

Z tego powodu żyroskop jest bardzo dobrym źródłem informacji o szybkich i krótkotrwałych zmianach orientacji, ale nie zapewnia samodzielnie stabilnego odniesienia długoterminowego. Nawet niewielka niestabilność wartości zerowej prowadzi do narastania błędu po całkowaniu sygnału.

Dlaczego sam żyroskop nie wystarcza?

Żyroskop nie posiada bezwzględnego odniesienia dla orientacji. Po uruchomieniu może bardzo dokładnie śledzić krótkotrwałe zmiany obrotu, ale nie wie samodzielnie, gdzie znajduje się kierunek pionowy, północ ani początkowa orientacja robota.

Akcelerometr może korygować kąty roll i pitch na podstawie kierunku grawitacji. Magnetometr może dostarczać odniesienia dla kierunku yaw, chociaż jego pomiary są podatne na zakłócenia magnetyczne. Kamera, LiDAR, enkodery i system SLAM mogą natomiast korygować orientację na podstawie ruchu względem otoczenia.

Połączenie krótkoterminowej stabilności żyroskopu z długoterminowym odniesieniem innych czujników jest podstawą fuzji sensorów. W praktyce wykorzystuje się do tego między innymi filtr komplementarny, rozszerzony filtr Kalmana oraz algorytmy optymalizacyjne.

Czym są roll, pitch i yaw?

Roll, pitch i yaw to trzy składowe opisujące orientację bryły w przestrzeni. W robotyce mogą przedstawiać przechylenie korpusu, pochylenie do przodu lub do tyłu oraz zmianę kierunku, w którym zwrócony jest robot.

Pojęć tych nie należy mylić ze stopniami swobody przegubów robota. Humanoid może posiadać kilkadziesiąt niezależnie sterowanych stawów, natomiast orientacja jego korpusu nadal może być opisana za pomocą trzech składowych obrotu: roll, pitch i yaw.

W typowej konwencji robotycznej roll oznacza obrót wokół osi X, pitch obrót wokół osi Y, a yaw obrót wokół osi Z. Znaczenie tych ruchów zależy jednak od sposobu zdefiniowania układu współrzędnych oraz zamontowania czujnika IMU.

W standardowej konwencji ROS dla korpusu robota oś X jest skierowana do przodu, Y w lewo, a Z do góry. Jest to prawoskrętny układ współrzędnych, a dodatnie kierunki obrotów wynikają z reguły prawej dłoni.

Jakie ruchy opisują roll, pitch i yaw?

Składowa Oś obrotu Opis ruchu Przykład w robocie
Roll Obrót wokół osi X Przechylenie bryły na lewą albo prawą stronę. Robot czworonożny przechyla korpus podczas stawiania nogi na nierównej powierzchni.
Pitch Obrót wokół osi Y Pochylenie bryły do przodu albo do tyłu. Humanoid pochyla tułów podczas ruszania, hamowania albo podnoszenia przedmiotu.
Yaw Obrót wokół osi Z Zmiana kierunku zwrócenia bryły w płaszczyźnie poziomej. Robot mobilny skręca w lewo lub w prawo podczas jazdy.

Przypisanie roll do osi X, pitch do osi Y i yaw do osi Z odpowiada konwencji RPY opisanej w ROS REP-103.

Przykład orientacji robota

Załóżmy, że robot mobilny stoi na poziomym podłożu i jest skierowany na wprost. Jego orientację można umownie opisać jako:

roll = 0°, pitch = 0°, yaw = 0°

Jeżeli robot przechyli się o 10° na bok, zmieni się przede wszystkim wartość roll. Jeżeli zacznie wjeżdżać na pochyłą rampę, zmieni się pitch. Gdy skręci na skrzyżowaniu o 90°, zmianie ulegnie yaw.

W rzeczywistym systemie wszystkie trzy składowe mogą zmieniać się jednocześnie. Robot czworonożny poruszający się po nierównym terenie może jednocześnie przechylać się na bok, pochylać korpus oraz zmieniać kierunek marszu.

Jak działa reguła prawej dłoni?

Reguła prawej dłoni określa dodatni kierunek obrotu wokół osi. Jest stosowana w prawoskrętnych układach współrzędnych, takich jak standardowy układ ROS.

Aby wyznaczyć dodatni kierunek obrotu, należy skierować kciuk prawej dłoni zgodnie z dodatnim zwrotem wybranej osi. Kierunek, w którym zawijają się pozostałe palce, wskazuje dodatni kierunek obrotu.

  1. Wybierz oś, wokół której odbywa się obrót.
  2. Skieruj kciuk prawej dłoni zgodnie z dodatnim zwrotem tej osi.
  3. Zegnij pozostałe palce w naturalny sposób.
  4. Kierunek zagięcia palców oznacza dodatni kierunek obrotu.
  5. Obrót w przeciwną stronę otrzymuje wartość ujemną.

Dla osi Z skierowanej do góry dodatni yaw oznacza obrót przeciwny do ruchu wskazówek zegara, gdy patrzymy na robota z góry. Robot skręcający w lewo zwiększa wtedy wartość yaw, a skręcający w prawo ją zmniejsza.

Znaki mogą wyglądać inaczej w urządzeniu wykorzystującym inny układ osi, dlatego zawsze należy sprawdzić dokumentację IMU i transformację pomiędzy układem czujnika a układem korpusu robota.

Dlaczego układ współrzędnych czujnika ma znaczenie?

IMU mierzy przyspieszenie i prędkość kątową we własnym układzie współrzędnych. Jeżeli moduł zostanie zamontowany bokiem, odwrócony albo pod kątem, jego osie nie będą pokrywać się z osiami korpusu robota.

Przykładowo obrót robota wokół osi Z może zostać zarejestrowany przez inną oś żyroskopu, jeżeli płytka IMU została zamontowana w nietypowej orientacji. Bez odpowiedniej transformacji oprogramowanie mogłoby pomylić zmianę yaw z roll albo pitch.

W systemie robotycznym należy więc znać relację pomiędzy układem czujnika a układem bazowym robota. W ROS 2 relacja ta jest zwykle opisywana przez transformację tf2. Dane mogą następnie zostać przeliczone do wspólnego układu współrzędnych wykorzystywanego przez sterowanie, lokalizację i nawigację.

Konwencje sterowników IMU w ROS wymagają, aby publikowane dane były odpowiednio powiązane z układem czujnika, a orientacja układu względem robota została opisana za pomocą transformacji.

Dlaczego kolejność obrotów ma znaczenie?

Obroty w przestrzeni nie są przemienne. Oznacza to, że wykonanie najpierw roll, a następnie pitch może prowadzić do innej orientacji końcowej niż wykonanie najpierw pitch, a później roll.

Dlatego zapis trzech kątów musi określać również kolejność osi i rodzaj obrotów. Można obracać obiekt wokół osi nieruchomego układu odniesienia albo wokół osi związanych z poruszającą się bryłą. Są to odpowiednio obroty zewnętrzne i wewnętrzne.

W dokumentacji oraz bibliotekach matematycznych można spotkać między innymi sekwencje XYZ, ZYX i inne kombinacje osi. Sam zestaw trzech liczb nie wystarcza więc do jednoznacznego odtworzenia orientacji bez znajomości zastosowanej konwencji. Dokumentacja SciPy rozróżnia obroty wewnętrzne, wykonywane wokół osi poruszającego się obiektu, oraz zewnętrzne, wykonywane wokół osi nieruchomego układu odniesienia.

Czym jest gimbal lock?

Kąty roll, pitch i yaw są intuicyjne dla człowieka, ale posiadają ograniczenie matematyczne określane jako gimbal lock. W określonych orientacjach dwie osie obrotu mogą się pokryć, przez co reprezentacja traci możliwość niezależnego rozróżniania części ruchów.

W często stosowanej reprezentacji RPY problem pojawia się, gdy pitch zbliża się do ±90°. Nie oznacza to, że robot fizycznie traci możliwość wykonania ruchu. Ograniczenie dotyczy wyłącznie sposobu zapisania orientacji za pomocą trzech kolejnych kątów Eulera.

Z tego powodu oprogramowanie robotyczne często przechowuje i przetwarza orientację w postaci kwaternionu. Kąty roll, pitch i yaw są następnie obliczane głównie na potrzeby prezentacji danych, diagnostyki albo konfiguracji systemu.

Biblioteka tf2 w ROS 2 udostępnia kwaterniony oraz funkcje pozwalające tworzyć orientację z wartości roll, pitch i yaw albo ponownie odczytywać z kwaternionu kąty Eulera.

Czy IMU bezpośrednio mierzy roll, pitch i yaw?

Podstawowy akcelerometr i żyroskop nie mierzą bezpośrednio gotowych wartości roll, pitch i yaw. Akcelerometr dostarcza składowe przyspieszenia właściwego, a żyroskop prędkości kątowe wokół trzech osi.

Orientacja jest wyznaczana przez algorytm na podstawie kolejnych pomiarów. Roll i pitch mogą być długoterminowo korygowane za pomocą kierunku grawitacji obserwowanego przez akcelerometr. Yaw nie może zostać ustalony na podstawie samej grawitacji, ponieważ obrót wokół osi pionowej nie zmienia jej kierunku względem czujnika.

Do uzyskania bezwzględnego odniesienia dla yaw można wykorzystać magnetometr albo zewnętrzne źródło informacji, takie jak kamera, LiDAR, GNSS lub system SLAM. ROS REP-145 wskazuje, że IMU pozbawione bezwzględnego odniesienia kierunku może wyrównać orientację względem świata w roll i pitch dzięki grawitacji, natomiast orientacja wokół osi Z pozostaje arbitralna.

Jak działa magnetometr?

Magnetometr jest czujnikiem mierzącym wektor pola magnetycznego wzdłuż trzech osi. Dostarcza osobne wartości dla osi X, Y i Z, dzięki czemu system może określić kierunek pola magnetycznego względem obudowy urządzenia.

W module IMU magnetometr pełni funkcję elektronicznego kompasu. Pole magnetyczne Ziemi może stanowić zewnętrzne odniesienie dla orientacji wokół osi pionowej, czyli kąta yaw. Pozwala to ograniczać dryft kierunku, którego nie można skorygować na podstawie samego akcelerometru i grawitacji.

Magnetometr nie mierzy jednak gotowego kąta yaw. Rejestruje pole magnetyczne pochodzące ze wszystkich źródeł znajdujących się w jego otoczeniu. Oprócz pola Ziemi wpływają na niego silniki, przewody zasilające, magnesy, stalowa konstrukcja robota i urządzenia elektryczne. Dopiero po kalibracji, kompensacji przechylenia i połączeniu z innymi czujnikami można obliczyć użyteczny kierunek.

System określany jako 9-osiowy łączy zwykle trzy osie akcelerometru, trzy osie żyroskopu oraz trzy osie magnetometru. Liczba dziewięć oznacza więc kanały pomiarowe, a nie dziewięć stopni swobody przegubów robota. Współczesne rozwiązania mogą integrować wszystkie czujniki w jednym układzie albo łączyć 6-osiowe IMU z osobnym magnetometrem

Jak magnetometr zamienia pole magnetyczne na sygnał?

W magnetometrach stosuje się różne technologie pomiarowe, między innymi efekt Halla oraz rozwiązania magnetorezystancyjne, takie jak AMR, GMR i TMR. Niezależnie od konstrukcji ich zadaniem jest wykrycie wpływu pola magnetycznego na element pomiarowy i przekształcenie go w sygnał elektryczny.

Trzy elementy pomiarowe lub odpowiednio zaprojektowana struktura czujnika pozwalają mierzyć składowe pola w trzech prostopadłych kierunkach. Na podstawie tych wartości oprogramowanie może odtworzyć kierunek i wartość wektora pola magnetycznego.

  1. Pole magnetyczne oddziałuje na element pomiarowy znajdujący się wewnątrz czujnika.
  2. Element reaguje zmianą napięcia, rezystancji albo innej wielkości elektrycznej, zależnie od zastosowanej technologii.
  3. Układ mierzy składowe pola w trzech prostopadłych osiach X, Y i Z.
  4. Sygnały są wzmacniane i przekształcane na wartości cyfrowe.
  5. Elektronika może zastosować kompensację temperaturową oraz fabryczne współczynniki korekcyjne.
  6. Magnetometr udostępnia trzy składowe wektora pola magnetycznego.
  7. Oprogramowanie usuwa wyznaczone podczas kalibracji przesunięcia i deformacje pomiaru.
  8. Dane są przeliczane do układu współrzędnych korpusu robota.
  9. Akcelerometr pomaga skompensować przechylenie czujnika względem poziomu.
  10. Algorytm fuzji wykorzystuje wynik do korygowania orientacji, szczególnie kąta yaw.

Magnetometr działa również wtedy, gdy robot pozostaje nieruchomy, ponieważ mierzy istniejące w otoczeniu pole magnetyczne. Pod tym względem różni się od żyroskopu, który dostarcza sygnał przede wszystkim podczas zmiany orientacji.

Pomiar nie rozróżnia jednak automatycznie pola Ziemi od pola generowanego przez robot. Czujnik reaguje na ich sumę, dlatego jego wskazanie może być poprawne na stole testowym, ale zmienić się po zamontowaniu obok silników, przewodów zasilających albo stalowych elementów konstrukcyjnych.

Co właściwie mierzy magnetometr?

Magnetometr mierzy składowe wektora indukcji magnetycznej. W układzie SI jednostką jest tesla, ale ze względu na niewielkie wartości pola otoczenia wyniki czujników są najczęściej podawane w mikroteslach, oznaczanych jako µT.

Trzy liczby reprezentujące osie X, Y i Z nie są jeszcze kierunkiem kompasowym. Aby obliczyć azymut, trzeba uwzględnić orientację czujnika, kalibrację oraz przechylenie robota. Prosty wzór wykorzystujący wyłącznie dwie poziome składowe działa poprawnie tylko wtedy, gdy magnetometr pozostaje poziomo.

W robocie pochylającym się lub przechylającym należy zastosować kompensację przechylenia. Oprogramowanie wykorzystuje wtedy orientację wyznaczoną z akcelerometru i żyroskopu, aby prawidłowo zrzutować wektor pola na płaszczyznę poziomą. Oprogramowanie eCompass firmy NXP również łączy dane akcelerometru i magnetometru oraz uwzględnia kalibrację zakłóceń magnetycznych.

Jak magnetometr pomaga określić yaw?

Źródło danych Co wnosi do estymacji orientacji? Najważniejsze ograniczenie
Żyroskop Szybko i płynnie śledzi krótkotrwałe zmiany yaw. Po całkowaniu niewielkiego offsetu powstaje narastający dryft.
Akcelerometr Dostarcza odniesienia dla kierunku grawitacji i pomaga korygować roll oraz pitch. Grawitacja nie daje odniesienia dla obrotu wokół osi pionowej.
Magnetometr Dostarcza zewnętrznego odniesienia magnetycznego, które może korygować yaw. Jest podatny na lokalne pola magnetyczne i elementy ferromagnetyczne.
Kamera lub LiDAR Określa zmianę orientacji na podstawie ruchu względem otoczenia. Wynik zależy od widoczności, geometrii sceny i działania algorytmu lokalizacji.
GNSS z odpowiednią orientacją Może dostarczać kierunek związany z układem geograficznym. W budynkach i przy słabym sygnale satelitarnym może być niedostępny.

Jeżeli urządzenie nie ma magnetometru ani innego bezwzględnego odniesienia kierunku, orientacja może zostać wyrównana względem grawitacji w roll i pitch, ale początkowy kierunek yaw pozostaje arbitralny i może stopniowo dryfować. Takie rozróżnienie opisuje również konwencja ROS REP-145.

Magnetometr nie musi być jedynym sposobem korygowania yaw. W wielu robotach przemysłowych i mobilnych jego pomiar jest zastępowany albo uzupełniany przez lokalizację wizyjną, LiDAR SLAM, enkodery, GNSS lub zewnętrzne systemy pozycjonowania.

Północ magnetyczna a północ geograficzna

Magnetometr wskazuje kierunek związany z lokalnym polem magnetycznym Ziemi, czyli północ magnetyczną. Nie jest ona dokładnie tym samym kierunkiem co północ geograficzna wyznaczona przez oś obrotu Ziemi.

Kąt pomiędzy północą magnetyczną i geograficzną nazywa się deklinacją magnetyczną. Jego wartość zależy od miejsca i czasu. Jeżeli robot ma podawać kierunek względem północy geograficznej, system powinien zastosować odpowiednią korektę deklinacji.

Wewnątrz budynku błąd wywołany lokalną konstrukcją stalową lub instalacją elektryczną może być jednak większy niż sama deklinacja. Dlatego w autonomicznej nawigacji wewnętrznej magnetometr często pełni jedynie funkcję pomocniczą, a nie główne źródło kierunku.

Co zakłóca pomiary magnetometru?

Źródło zakłócenia Wpływ na pomiar Przykład w robocie
Magnes trwały Dodaje silne lokalne pole zmieniające kierunek i wartość mierzonego wektora. Magnes w enkoderze, głośniku, zamku lub uchwycie robota.
Silnik elektryczny Generuje pole zależne od prądu, obciążenia i położenia wirnika. Napędy nóg, kół, ramion i chwytaków.
Przewód dużego prądu Tworzy pole magnetyczne zmieniające się wraz z poborem energii. Przewody akumulatora, falownika i zasilania napędów.
Elementy stalowe Zniekształcają lokalny przebieg pola magnetycznego. Rama, śruby, obudowa, przekładnia albo stalowe wyposażenie hali.
Prądy zmienne Powodują szybkozmienne zakłócenia i niestabilne wskazania. Falowniki, przetwornice, transformatory i przewody sieciowe.
Inny robot lub maszyna Zmienia lokalne pole w sposób zależny od położenia i stanu urządzenia. Przejazd obok wózka, silnika przemysłowego albo stalowej maszyny.
Zmiana konfiguracji robota Przesunięcie ramienia, przewodów albo narzędzia może zmienić pole w pobliżu czujnika. Humanoid poruszający rękami w pobliżu IMU umieszczonego w korpusie.

Zakłócenia mogą być stałe względem czujnika albo zmieniać się podczas pracy. Stały magnes zamontowany w obudowie może powodować względnie powtarzalny błąd, który da się częściowo uwzględnić w kalibracji. Pole silnika zmieniające się wraz z prądem i ruchem robota jest trudniejsze do skorygowania.

Z tego powodu magnetometr powinien być umieszczany możliwie daleko od silników, przewodów dużego prądu, magnesów i elementów ferromagnetycznych. Ostateczną ocenę należy wykonać po zmontowaniu robota i podczas pracy napędów.

Czym są błędy hard iron i soft iron?

Zakłócenia związane z konstrukcją urządzenia są często dzielone na błędy typu hard iron i soft iron. Nie odnoszą się one bezpośrednio do twardości materiału, lecz do sposobu, w jaki otoczenie wpływa na wyniki magnetometru.

Błąd hard iron działa jak dodatkowe, w przybliżeniu stałe pole związane z urządzeniem. Powoduje przesunięcie wszystkich pomiarów o określoną wartość. Źródłem może być między innymi magnes trwały albo namagnesowany element konstrukcyjny.

Błąd soft iron wynika ze zniekształcania pola przez materiały ferromagnetyczne. Może powodować różną czułość w poszczególnych kierunkach oraz wzajemne mieszanie składowych osi. Zbiór pomiarów, który idealnie powinien tworzyć kulę, zostaje wtedy rozciągnięty i obrócony do postaci elipsoidy.

Dokumentacja kalibracyjna NXP opisuje osobną korekcję przesunięcia hard iron oraz macierzową kompensację deformacji soft iron.

Rodzaj błędu Charakterystyka Typowa korekcja
Hard iron W przybliżeniu stałe przesunięcie pomiarów w osiach X, Y i Z. Odjęcie wyznaczonego wektora offsetu.
Soft iron Skalowanie, obrót i deformacja rozkładu pomiarów zależna od kierunku. Zastosowanie macierzy korekcyjnej wyznaczonej podczas kalibracji.
Zakłócenie dynamiczne Pole zmieniające się podczas pracy silnika, przepływu prądu albo ruchu urządzenia. Odrzucanie niewiarygodnych pomiarów, zmiana miejsca montażu i fuzja z innymi czujnikami.

Jak przebiega kalibracja magnetometru?

Kalibracja wymaga zebrania pomiarów przy wielu różnych orientacjach czujnika. Celem jest obserwacja pola magnetycznego z możliwie wszystkich kierunków i wyznaczenie parametrów opisujących przesunięcie oraz deformację wyników.

Popularny ruch przypominający cyfrę osiem może być wystarczający w prostych urządzeniach konsumenckich, ale dokładna kalibracja trójosiowa powinna obejmować zróżnicowane obroty w przestrzeni. Robot lub jego moduł należy poruszać tak, aby wszystkie osie magnetometru zmieniały orientację względem pola.

Algorytmy mogą dopasować do zebranych punktów kulę albo elipsoidę, a następnie obliczyć offset hard iron i macierz kompensacji soft iron. NXP opisuje kalibrację opartą na zbiorze trójwymiarowych pomiarów i wyznaczaniu obu rodzajów korekcji.

  1. Zamontuj magnetometr w jego docelowym miejscu w robocie.
  2. Uruchom wszystkie elementy, które będą pracowały podczas normalnego użytkowania.
  3. Oddal robota od dużych, obcych źródeł pola magnetycznego, jeżeli nie są częścią jego normalnego środowiska.
  4. Zbieraj pomiary magnetometru podczas obracania urządzenia w wielu kierunkach.
  5. Zapewnij możliwie szerokie pokrycie orientacji wokół wszystkich trzech osi.
  6. Usuń próbki nieprawidłowe i pomiary wykonane podczas wyjątkowych zakłóceń.
  7. Wyznacz przesunięcie hard iron dla osi X, Y i Z.
  8. Oblicz korekcję skali, nieprostopadłości i deformacji soft iron.
  9. Zapisz współczynniki kalibracyjne w sterowniku lub pamięci urządzenia.
  10. Sprawdź, czy po korekcji wartość wektora pozostaje podobna dla różnych orientacji.
  11. Porównaj obliczony kierunek z wiarygodnym odniesieniem.
  12. Powtórz test podczas pracy napędów i różnych konfiguracji mechanicznych robota.

Kalibrację należy wykonać po zamontowaniu czujnika w gotowym urządzeniu. Przeniesienie płytki, wymiana przewodów, akumulatora, silnika albo metalowej obudowy może zmienić lokalne pole i unieważnić wcześniejsze współczynniki.

Kalibracja nie usuwa wszystkich zakłóceń. Parametry wyznaczone dla nieruchomych silników mogą nie kompensować pola pojawiającego się podczas dużego obciążenia napędów. System powinien więc kontrolować wiarygodność pomiaru również podczas normalnej pracy.

Kiedy nie należy ufać magnetometrowi?

  • Gdy wartość mierzonego pola gwałtownie różni się od oczekiwanego zakresu.
  • Podczas pracy silników generujących silne i zmienne pole magnetyczne.
  • W pobliżu stalowych konstrukcji, transformatorów, falowników i przewodów dużego prądu.
  • Po zmianie narzędzia, akumulatora, przewodów lub elementów mechanicznych robota.
  • Gdy kolejne pomiary kierunku wykonane w tym samym miejscu są niestabilne.
  • Gdy kierunek magnetyczny jest sprzeczny z kamerą, LiDAR-em, GNSS albo odometrią.
  • W czasie nasycenia czujnika lub przekroczenia jego zakresu pomiarowego.
  • Po zmianie miejsca montażu bez wykonania ponownej kalibracji.

Algorytm fuzji nie powinien bezwarunkowo korygować orientacji na podstawie każdego pomiaru magnetometru. Może sprawdzać wartość pola, tempo jego zmian oraz zgodność kierunku z innymi czujnikami. Pomiar uznany za niewiarygodny powinien otrzymać mniejszą wagę albo zostać tymczasowo odrzucony.

W środowisku przemysłowym magnetometr może być mniej użyteczny niż w otwartej przestrzeni. Nie oznacza to, że całe IMU przestaje działać. Akcelerometr i żyroskop nadal mogą dostarczać wartościowych danych, natomiast yaw jest korygowany przez kamerę, LiDAR, enkodery, GNSS lub system lokalizacji.

Jak magnetometr jest publikowany w ROS 2?

Dane magnetometru są publikowane oddzielnie od standardowej wiadomości sensor_msgs/msg/Imu. Wiadomość Imu zawiera orientację, prędkość kątową i przyspieszenie liniowe, ale nie posiada pola przeznaczonego na surowy pomiar magnetyczny.

Do publikowania trójosiowego pola magnetycznego służy wiadomość sensor_msgs/msg/MagneticField. Typowy temat może mieć nazwę imu/mag, zgodnie z konwencją REP-145. Wiadomość zawiera wektor pola oraz macierz kowariancji opisującą niepewność pomiaru.

Sterownik powinien jasno określać, czy dane są surowe, czy zostały już skorygowane o bias i współczynniki kalibracyjne. Przed użyciem pomiaru w fuzji należy również sprawdzić układ współrzędnych, jednostki, znacznik czasu oraz transformację czujnika względem korpusu robota.

Czym różni się IMU 6-osiowe od 9-osiowego?

Określenia IMU 6-osiowe i 9-osiowe odnoszą się do liczby kanałów pomiarowych udostępnianych przez zestaw czujników. Nie opisują liczby przegubów robota ani liczby stopni swobody jego konstrukcji.

IMU 6-osiowe łączy trójosiowy akcelerometr i trójosiowy żyroskop. Czujnik udostępnia więc trzy składowe przyspieszenia właściwego oraz trzy składowe prędkości kątowej. Taka konfiguracja jest podstawą większości systemów inercyjnych stosowanych w robotyce. Przykładowe współczesne układy Bosch integrują właśnie trójosiowy akcelerometr i trójosiowy żyroskop

System 9-osiowy rozszerza ten zestaw o trójosiowy magnetometr. Otrzymujemy wtedy trzy osie akcelerometru, trzy osie żyroskopu i trzy osie pomiaru pola magnetycznego. Magnetometr może znajdować się w tej samej obudowie albo być osobnym układem współpracującym z 6-osiowym IMU. TDK oferuje zarówno zintegrowane czujniki 9-osiowe, jak i rozwiązania dwukomponentowe łączące IMU z zewnętrznym magnetometrem.

Ściśle technicznie magnetometr nie jest czujnikiem inercyjnym, ponieważ mierzy zewnętrzne pole magnetyczne. Mimo to określenie „9-osiowe IMU” jest powszechnie stosowane w dokumentacji producentów i opisach gotowych modułów. Można również spotkać określenie MARG, czyli Magnetic, Angular Rate and Gravity.

Porównanie IMU 6-osiowego i 9-osiowego

Cecha IMU 6-osiowe System 9-osiowy
Czujniki Trójosiowy akcelerometr i trójosiowy żyroskop. Trójosiowy akcelerometr, trójosiowy żyroskop i trójosiowy magnetometr.
Liczba kanałów Sześć: trzy składowe przyspieszenia i trzy składowe prędkości kątowej. Dziewięć: dodatkowo trzy składowe pola magnetycznego.
Pomiar inercyjny Akcelerometr i żyroskop dostarczają pełnego podstawowego zestawu danych inercyjnych. Dane inercyjne pozostają takie same, ale zostają uzupełnione o zewnętrzne odniesienie magnetyczne.
Roll i pitch Mogą być stabilizowane długoterminowo na podstawie kierunku grawitacji. Wyznaczane podobnie jak w systemie 6-osiowym.
Yaw Jest śledzony za pomocą żyroskopu, dlatego bez zewnętrznej korekcji stopniowo dryfuje. Magnetometr może dostarczać odniesienia pozwalającego ograniczać dryft yaw.
Orientacja po uruchomieniu Kierunek pionowy może zostać ustalony z grawitacji, ale początkowy yaw jest zwykle arbitralny. Po prawidłowej kalibracji możliwe jest odniesienie yaw do kierunku pola magnetycznego.
Odporność na zakłócenia magnetyczne Nie wykorzystuje magnetometru, więc pole magnetyczne nie wpływa bezpośrednio na estymację orientacji. Błędne dane magnetometru mogą powodować nieprawidłowe korekty kierunku.
Kalibracja Wymaga kalibracji offsetów, skali, osi i wpływu temperatury akcelerometru oraz żyroskopu. Wymaga dodatkowo kalibracji błędów hard iron i soft iron magnetometru.
Miejsce montażu Należy ograniczać drgania, zmiany temperatury i odkształcenia mechaniczne. Dodatkowo należy unikać silników, magnesów, stali i przewodów dużego prądu.
Złożoność algorytmu Fuzja obejmuje głównie akcelerometr i żyroskop oraz ewentualne zewnętrzne źródła lokalizacji. Algorytm musi również oceniać jakość i wiarygodność pomiarów magnetycznych.
Typowe środowisko Dobrze sprawdza się w robotach wykorzystujących kamerę, LiDAR, enkodery albo inne źródło korekcji yaw. Może być przydatny w otwartej przestrzeni o stabilnym polu magnetycznym.
Typowe zastosowania Roboty mobilne, humanoidalne, czworonożne, manipulatory, drony i systemy stabilizacji. Kompasy elektroniczne, orientacja urządzeń, roboty terenowe i systemy wymagające odniesienia magnetycznego.
Najważniejsza zaleta Prostszy i bardziej odporny na lokalne zakłócenia magnetyczne system pomiarowy. Możliwość długoterminowej korekcji yaw względem zewnętrznego pola magnetycznego.
Najważniejsze ograniczenie Brak samodzielnego bezwzględnego odniesienia dla kierunku yaw. Silna zależność jakości kierunku od kalibracji i warunków magnetycznych.

W systemie 6-osiowym akcelerometr umożliwia długoterminową korekcję orientacji względem grawitacji, ale nie dostarcza odniesienia dla obrotu wokół osi pionowej. Bez magnetometru lub innego zewnętrznego źródła początkowy yaw może być dowolny, a później stopniowo dryfować. Takie zachowanie opisuje również konwencja sterowników IMU w ROS.

System 9-osiowy może ograniczać ten problem, ale tylko wtedy, gdy pole magnetyczne jest prawidłowo zmierzone. W pobliżu napędów, stalowych konstrukcji, falowników i przewodów dużego prądu magnetometr może pogorszyć wynik zamiast go poprawić.

Czy IMU 9-osiowe jest zawsze lepsze?

Większa liczba kanałów pomiarowych nie oznacza automatycznie większej dokładności całego systemu. Magnetometr dostarcza dodatkowej informacji, ale jest również kolejnym źródłem błędów, które trzeba prawidłowo skalibrować i kontrolować.

W otwartej przestrzeni, z dala od dużych elementów metalowych i silnych pól elektrycznych, magnetometr może skutecznie stabilizować kierunek. W hali produkcyjnej, wewnątrz stalowego robota lub obok napędów jego wskazania mogą być zmienne i niewiarygodne.

Nowoczesny robot może osiągnąć bardzo dobrą estymację orientacji przy użyciu IMU 6-osiowego, jeżeli yaw jest korygowany przez kamerę, LiDAR, enkodery, GNSS albo system SLAM. W takim rozwiązaniu rezygnacja z magnetometru może być świadomą decyzją konstrukcyjną, a nie ograniczeniem technologicznym.

  • Dziewięć osi oznacza dziewięć kanałów pomiarowych, a nie większą liczbę stopni swobody robota.
  • Magnetometr nie poprawia dokładności akcelerometru ani żyroskopu.
  • Nieprawidłowa kalibracja może powodować systematyczny błąd kierunku.
  • Silniki i przewody zasilające mogą zmieniać pomiar zależnie od obciążenia robota.
  • Stalowa konstrukcja budynku może zakłócać kierunek nawet po kalibracji urządzenia.
  • Algorytm powinien zmniejszać wagę magnetometru, gdy jego wskazania są niewiarygodne.
  • W wielu robotach lepszym odniesieniem yaw jest kamera, LiDAR, GNSS albo lokalizacja względem mapy.

Kiedy wybrać IMU 6-osiowe?

  • Robot pracuje wewnątrz hali lub w pobliżu dużych konstrukcji stalowych.
  • W pobliżu czujnika znajdują się silniki, magnesy lub przewody dużego prądu.
  • Yaw jest korygowany przez kamerę, LiDAR, enkodery albo system SLAM.
  • Najważniejsze są szybkie pomiary ruchu, stabilizacja i utrzymywanie równowagi.
  • System wymaga prostej i przewidywalnej integracji bez pomiaru magnetycznego.
  • Robot posiada zewnętrzny system lokalizacji dostarczający wiarygodną orientację.

Kiedy rozważyć system 9-osiowy?

  • Robot pracuje w otwartej przestrzeni o względnie stabilnym polu magnetycznym.
  • Potrzebne jest niezależne odniesienie kierunku przy braku kamery, LiDAR-u lub GNSS.
  • Magnetometr można zamontować z dala od silników i przewodów zasilających.
  • System umożliwia wykonanie pełnej kalibracji hard iron i soft iron.
  • Algorytm potrafi wykrywać zakłócenia i odrzucać niewiarygodne pomiary.
  • Kierunek magnetyczny jest rzeczywiście potrzebny do realizacji zadania robota.

Przed wyborem należy analizować jakość konkretnych czujników, a nie tylko liczbę osi. Dobre IMU 6-osiowe o niskim szumie, stabilnym offsecie i poprawnej synchronizacji może zapewnić lepsze wyniki niż przeciętny system 9-osiowy pracujący w zakłóconym środowisku.

Ważne są również częstotliwość próbkowania, opóźnienie, stabilność temperaturowa, zakres pomiarowy, sposób montażu i algorytm fuzji. Liczba osi jest tylko jednym z parametrów całego systemu estymacji ruchu.

Jak z danych IMU wyznaczana jest orientacja robota?

Podstawowe czujniki IMU nie mierzą bezpośrednio gotowej orientacji robota. Akcelerometr dostarcza trzy składowe przyspieszenia właściwego, żyroskop trzy składowe prędkości kątowej, a opcjonalny magnetometr trzy składowe pola magnetycznego. Dopiero algorytm estymacji łączy te pomiary i oblicza orientację czujnika względem przyjętego układu odniesienia.

Żyroskop bardzo dobrze rejestruje szybkie zmiany orientacji. Jego pomiary są całkowane w czasie, dzięki czemu system może na bieżąco aktualizować obrót robota. Nawet niewielki offset żyroskopu powoduje jednak narastający dryft.

Akcelerometr dostarcza długoterminowego odniesienia dla kierunku grawitacji, dlatego pomaga korygować roll i pitch. Podczas przyspieszania, hamowania, drgań lub uderzeń jego wynik nie przedstawia jednak wyłącznie kierunku pionowego. Algorytm musi wtedy zmniejszyć wagę tego pomiaru albo wykorzystać dodatkowe źródła informacji.

Magnetometr może dostarczyć odniesienia dla yaw, ale tylko wtedy, gdy lokalne pole magnetyczne jest wystarczająco stabilne. W robotach pracujących obok silników i stalowych konstrukcji korekcja kierunku może zamiast poprawy powodować dodatkowy błąd.

Pakiet ROS 2 imu_filter_madgwick łączy prędkości kątowe, przyspieszenia oraz opcjonalne pomiary magnetyczne w estymację orientacji. Oprogramowanie fuzji sensorów może zwracać wynik między innymi jako kwaternion albo kąty Eulera.

JAK z danych IMU wyznaczana jest orientacja robot

Jak przebiega estymacja orientacji?

  1. Moduł IMU wykonuje pomiary akcelerometru, żyroskopu i opcjonalnie magnetometru.
  2. Każdej próbce przypisywany jest dokładny znacznik czasu.
  3. Od surowych pomiarów odejmowane są wyznaczone wcześniej offsety czujników.
  4. Stosowane są współczynniki skali, korekcja osi oraz ewentualna kompensacja temperaturowa.
  5. System oblicza czas, który upłynął od poprzedniej próbki.
  6. Prędkość kątowa z żyroskopu służy do przewidzenia nowej orientacji.
  7. Przewidywany kierunek grawitacji jest porównywany z pomiarem akcelerometru.
  8. Jeżeli pomiar akcelerometru jest wiarygodny, algorytm koryguje błędy roll i pitch.
  9. Jeżeli dostępny i wiarygodny jest magnetometr, może zostać skorygowany również yaw.
  10. Algorytm może dodatkowo aktualizować oszacowanie offsetu żyroskopu.
  11. Orientacja jest normalizowana i zapisywana najczęściej w postaci kwaternionu.
  12. Wynik wraz z informacją o niepewności jest przekazywany do systemu sterowania robota.

Etap wykorzystujący żyroskop jest często określany jako przewidywanie lub propagacja stanu. Na podstawie wcześniejszej orientacji, prędkości kątowej i czasu między próbkami obliczana jest przewidywana orientacja w kolejnym momencie.

Akcelerometr i magnetometr są następnie wykorzystywane do korekcji. Ich pomiary zapewniają odniesienia zewnętrzne, których nie ma sam żyroskop. Algorytm nie powinien jednak traktować wszystkich pomiarów jako jednakowo wiarygodnych.

Gdy robot gwałtownie przyspiesza, długość wektora akcelerometru może znacząco odbiegać od wartości związanej z samą grawitacją. Podobnie nagła zmiana pola magnetycznego może wskazywać na zakłócenie magnetometru. Dobrze zaprojektowany system powinien wykrywać takie sytuacje i czasowo ograniczać wpływ niepewnego czujnika.

Jaką rolę pełnią poszczególne czujniki?

Źródło danych Rola w estymacji orientacji Mocna strona Najważniejsze ograniczenie
Żyroskop Przewiduje zmianę orientacji przez całkowanie prędkości kątowej. Szybko i płynnie reaguje na dynamiczne obroty robota. Offset oraz szum powodują narastający dryft.
Akcelerometr Dostarcza odniesienia dla kierunku grawitacji i koryguje roll oraz pitch. Nie powoduje nieograniczonego narastania błędu przechylenia. Podczas ruchu mierzy jednocześnie grawitację, przyspieszenia liniowe, drgania i uderzenia.
Magnetometr Może korygować yaw względem lokalnego kierunku pola magnetycznego. Dostarcza zewnętrznego odniesienia kierunku również podczas postoju. Jest podatny na silniki, magnesy, stal i przewody dużego prądu.
Enkodery Opisują ruch kół, przegubów albo elementów napędowych. Dostarczają bezpośredniej informacji o wykonanym ruchu mechanicznym. Poślizg kół, luzy i odkształcenia powodują rozbieżność względem rzeczywistego ruchu.
Kamera Koryguje orientację na podstawie zmian położenia cech wizualnych otoczenia. Zapewnia odniesienie do świata zewnętrznego i może ograniczać dryft wszystkich osi. Wymaga odpowiedniej widoczności, tekstury, oświetlenia i mocy obliczeniowej.
LiDAR Wyznacza zmianę orientacji przez dopasowywanie kolejnych skanów lub lokalizację względem mapy. Dobrze opisuje geometrię otoczenia i może stabilnie korygować yaw. Wynik zależy od geometrii sceny, zasięgu i widoczności powierzchni.
GNSS Może dostarczać pozycji oraz w wybranych konfiguracjach kierunku geograficznego. Zapewnia globalne odniesienie w otwartej przestrzeni. Jest ograniczony w budynkach, tunelach i przy zasłoniętym niebie.

IMU zapewnia wysoką częstotliwość pomiarów i bardzo szybko reaguje na ruch. Kamera, LiDAR, enkodery i GNSS mogą działać wolniej, ale dostarczają informacji pozwalających ograniczać narastający błąd estymacji.

Połączenie szybkiego przewidywania z IMU i okresowej korekcji pochodzącej z innych czujników jest podstawą wielu systemów lokalizacji robotów. Pakiet robot_localization w ROS 2 może łączyć wiele źródeł danych, w tym wiadomości sensor_msgs/Imu, odometrię oraz pomiary pozycji i orientacji.

Orientacja względna i orientacja bezwzględna

Orientacja względna opisuje zmianę względem przyjętego stanu początkowego. Po uruchomieniu robota system może przyjąć aktualny kierunek jako yaw równy zero, a następnie śledzić wszystkie późniejsze obroty względem tego ustawienia.

Orientacja bezwzględna jest odniesiona do zewnętrznego układu świata, na przykład kierunku północy, mapy budynku albo układu współrzędnych stanowiska. Jej wyznaczenie wymaga zewnętrznego odniesienia, takiego jak magnetometr, kamera, LiDAR, GNSS albo system lokalizacji.

IMU 6-osiowe może wykorzystać grawitację do wyznaczenia pionu i początkowych wartości roll oraz pitch. Nie posiada jednak samodzielnego bezwzględnego odniesienia dla yaw. Dlatego po uruchomieniu kierunek wokół osi Z może zostać przyjęty umownie, a później stopniowo dryfować.

Rozróżnienie to jest szczególnie ważne podczas integrowania kilku systemów. Orientacja publikowana przez sterownik IMU może opisywać obrót względem chwili uruchomienia, podczas gdy lokalizacja SLAM przedstawia orientację względem utworzonej mapy.

Dlaczego orientacja jest zwykle zapisywana jako kwaternion?

Kąty roll, pitch i yaw są łatwe do zrozumienia, ale nie są najlepszą reprezentacją do wykonywania kolejnych obliczeń. Ich wynik zależy od kolejności obrotów, a w określonych konfiguracjach występuje problem gimbal lock.

Kwaternion opisujący orientację składa się z czterech wartości oznaczanych najczęściej jako x, y, z i w. Pozwala wykonywać złożenia obrotów i płynnie aktualizować orientację bez osobliwości charakterystycznych dla kątów Eulera.

Algorytm może więc przechowywać aktualną orientację jako kwaternion, a roll, pitch i yaw obliczać dopiero wtedy, gdy wartości mają zostać przedstawione człowiekowi, zapisane w konfiguracji lub wykorzystane przez konkretny element oprogramowania.

Oprogramowanie Bosch do fuzji sensorów może udostępniać orientację zarówno w postaci kwaternionu, jak i kątów Eulera. Podobnie pakiet ROS 2 imu_filter_madgwick oblicza orientację na podstawie danych inercyjnych i opcjonalnych pomiarów magnetycznych.

Cecha Roll, pitch i yaw Kwaternion
Liczba wartości Trzy kąty. Cztery składowe: x, y, z i w.
Czytelność Łatwe do interpretacji przez człowieka. Mniej intuicyjny bez przeliczenia na kąty.
Kolejność obrotów Musi być jednoznacznie określona. Złożenie obrotów wykonuje się algebraicznie.
Gimbal lock Może wystąpić w określonych orientacjach. Nie występuje w tej samej postaci.
Aktualizacja orientacji Mniej wygodna podczas złożonych ruchów przestrzennych. Dobrze nadaje się do całkowania obrotu i łączenia transformacji.
Zastosowanie Prezentacja, diagnostyka i prosta konfiguracja. Obliczenia, sterowanie, transformacje i fuzja sensorów.

Dlaczego dokładny czas pomiaru jest tak ważny?

Orientacja obliczana z żyroskopu zależy bezpośrednio od czasu pomiędzy kolejnymi próbkami. Nawet poprawny pomiar prędkości kątowej da błędny wynik, jeżeli algorytm użyje niewłaściwego odstępu czasu.

Opóźnienie, nieregularna częstotliwość odczytu albo błędne znaczniki czasu mogą powodować nieprawidłowe całkowanie obrotu. Problem staje się szczególnie widoczny podczas szybkiego ruchu robota.

Synchronizacja jest również potrzebna podczas łączenia IMU z kamerą albo LiDAR-em. Pomiar orientacji musi odpowiadać dokładnie tej chwili, w której został zarejestrowany obraz lub skan. Kilkanaście milisekund różnicy może powodować zauważalne przesunięcie danych podczas dynamicznego ruchu.

Z tego powodu zaawansowane moduły mogą wykorzystywać sprzętowe znaczniki czasu, sygnały synchronizujące, bufory FIFO oraz wspólny zegar dla kilku czujników. Częstotliwość publikowania danych nie jest jedynym istotnym parametrem — równie ważne są stabilność opóźnienia i poprawność czasu każdej próbki.

Czym jest fuzja sensorów w systemie IMU?

Fuzja sensorów to proces łączenia pomiarów pochodzących z kilku czujników w celu uzyskania dokładniejszej, stabilniejszej i bardziej kompletnej informacji o ruchu robota. W przypadku IMU podstawowym zadaniem jest połączenie danych akcelerometru i żyroskopu, a w systemie 9-osiowym również magnetometru.

Każdy z tych czujników posiada inne właściwości. Żyroskop szybko reaguje na obrót, ale jego niewielkie błędy prowadzą do narastającego dryftu. Akcelerometr zapewnia odniesienie do kierunku grawitacji, lecz podczas ruchu rejestruje również przyspieszenia liniowe, drgania i uderzenia. Magnetometr może stabilizować yaw, ale jest podatny na zakłócenia generowane przez konstrukcję i napędy robota.

Fuzja nie polega na prostym obliczeniu średniej z pomiarów. Algorytm wykorzystuje model ruchu, znaczniki czasu, kalibrację oraz informacje o niepewności poszczególnych czujników. Najczęściej żyroskop służy do szybkiego przewidywania zmian orientacji, a akcelerometr, magnetometr lub zewnętrzne systemy lokalizacji wykonują okresową korekcję wyniku.

Należy odróżnić fuzję wykonywaną wewnątrz modułu IMU od fuzji całego systemu robotycznego. Pierwsza łączy przede wszystkim akcelerometr, żyroskop i opcjonalny magnetometr w estymację orientacji. Druga może dodatkowo wykorzystywać enkodery, kamerę, LiDAR, GNSS, odometrię oraz lokalizację względem mapy.

W ROS 2 pakiet imu_complementary_filter łączy prędkości kątowe, przyspieszenia i opcjonalne dane magnetyczne w kwaternion orientacji. Pakiet imu_filter_madgwick realizuje podobne zadanie za pomocą filtra Madgwicka. Z kolei robot_localization może łączyć dowolną liczbę źródeł, w tym wiadomości sensor_msgs/Imu, odometrię i pomiary pozycji, wykorzystując estymator EKF albo UKF.

Dlaczego dane z jednego czujnika nie wystarczają?

Czujnik Najważniejsza zaleta Najważniejsze ograniczenie Rola w fuzji
Żyroskop Szybko i płynnie rejestruje obroty oraz dynamiczne zmiany orientacji. Offset i szum powodują narastający błąd po całkowaniu. Przewidywanie krótkoterminowej zmiany orientacji.
Akcelerometr Dostarcza odniesienia dla kierunku grawitacji. Podczas ruchu nie pozwala łatwo oddzielić grawitacji od przyspieszeń liniowych. Długoterminowa korekcja roll i pitch.
Magnetometr Może wskazywać kierunek lokalnego pola magnetycznego również podczas postoju. Jest podatny na silniki, stal, magnesy i przewody dużego prądu. Opcjonalna długoterminowa korekcja yaw.
Enkodery Dokładnie mierzą ruch napędów, kół lub przegubów. Nie uwzględniają poślizgu, deformacji i niezamierzonego ruchu konstrukcji. Korekcja prędkości oraz ruchu względem układu robota.
Kamera Zapewnia odniesienie do charakterystycznych elementów otoczenia. Może tracić jakość przy słabym świetle, rozmyciu lub braku tekstury. Korekcja pozycji i orientacji względem świata.
LiDAR Dostarcza stabilnej informacji o geometrii otoczenia. Wymaga widocznej i odpowiednio zróżnicowanej przestrzeni. Korekcja pozycji i orientacji przez dopasowanie skanów lub lokalizację na mapie.
GNSS Dostarcza globalnej pozycji w otwartej przestrzeni. Może być niedostępny lub niedokładny w budynkach i przy zasłoniętym niebie. Długoterminowa korekcja położenia względem układu geograficznego.

Czujniki uzupełniają się przede wszystkim dlatego, że ich błędy mają inny charakter. Żyroskop jest bardzo użyteczny w krótkim przedziale czasu, natomiast akcelerometr i zewnętrzne źródła lokalizacji zapobiegają nieograniczonemu narastaniu błędu.

Algorytm fuzji może wykorzystywać szybkie pomiary IMU pomiędzy wolniejszymi aktualizacjami kamery lub LiDAR-u. Dzięki temu robot zachowuje płynną estymację ruchu również wtedy, gdy bardziej złożony czujnik chwilowo nie dostarcza nowego wyniku.

Jak przebiega fuzja danych krok po kroku?

  1. Czujniki wykonują pomiary przyspieszenia, prędkości kątowej i innych obserwowanych wielkości.
  2. Każdej próbce zostaje przypisany znacznik czasu oraz układ współrzędnych.
  3. Surowe wartości są przeliczane do właściwych jednostek fizycznych.
  4. Od pomiarów odejmowane są offsety wyznaczone podczas kalibracji.
  5. Stosowane są korekcje skali, osi, temperatury i wzajemnego ustawienia czujników.
  6. Algorytm przewiduje nowy stan robota na podstawie wcześniejszego stanu i modelu ruchu.
  7. Prędkość kątowa żyroskopu aktualizuje przewidywaną orientację.
  8. Pomiary akcelerometru, magnetometru lub zewnętrznych czujników są porównywane z przewidywaniem.
  9. Wyznaczana jest różnica pomiędzy pomiarem a oczekiwanym stanem.
  10. Algorytm ocenia wiarygodność każdego źródła na podstawie jego szumu i niepewności.
  11. Stan zostaje skorygowany proporcjonalnie do zaufania przypisanego pomiarom.
  12. Aktualizowane mogą być również offset żyroskopu i inne parametry modelu.
  13. Wynik jest publikowany jako orientacja, prędkość, pozycja albo pełny stan robota.
  14. Proces powtarza się po nadejściu kolejnej próbki.

W wielu algorytmach proces jest dzielony na dwa główne etapy: przewidywanie i korekcję. Podczas przewidywania model ruchu oraz dane IMU określają, jak powinien zmienić się stan robota. Podczas korekcji wynik jest porównywany z kolejnymi obserwacjami.

Korekcja nie powinna być równie silna w każdej sytuacji. Gdy robot porusza się gwałtownie, przyspieszenie zmierzone przez akcelerometr może nie reprezentować kierunku grawitacji. Gdy robot przejeżdża obok silnika lub stalowej konstrukcji, magnetometr może nie przedstawiać prawidłowego kierunku. Algorytm powinien wtedy ograniczyć wpływ takiego pomiaru.

Najczęściej stosowane metody fuzji danych

Metoda Zasada działania Najważniejsze zalety Typowe zastosowanie
Filtr komplementarny Łączy szybkozmienną informację z żyroskopu z długoterminowym odniesieniem akcelerometru i opcjonalnie magnetometru. Prosta implementacja, niewielkie wymagania obliczeniowe i małe opóźnienie. Stabilizacja, niewielkie roboty, urządzenia wbudowane i podstawowa estymacja orientacji.
Filtr Madgwicka Aktualizuje kwaternion z żyroskopu i koryguje go za pomocą kierunku grawitacji oraz opcjonalnie pola magnetycznego. Dobra relacja jakości do wymagań obliczeniowych oraz możliwość pracy z IMU 6- i 9-osiowym. Drony, roboty mobilne, systemy ubieralne i orientacja modułów IMU.
Filtr Mahony’ego Wykorzystuje nieliniową korekcję orientacji i sprzężenie zwrotne mogące uwzględniać błąd żyroskopu. Niewielka złożoność oraz możliwość estymowania wolnozmiennego biasu. Systemy czasu rzeczywistego i platformy o ograniczonej mocy obliczeniowej.
Rozszerzony filtr Kalmana – EKF Przewiduje stan z modelu ruchu, a następnie koryguje go na podstawie pomiarów i ich kowariancji. Może łączyć wiele typów danych i estymować pozycję, orientację, prędkość oraz biasy. Nawigacja, odometria, roboty mobilne, drony i systemy wielosensorowe.
Unscented Kalman Filter – UKF Reprezentuje rozkład stanu za pomocą zestawu punktów sigma przekształcanych przez nieliniowy model. Może lepiej odwzorowywać silne nieliniowości bez ręcznego wyznaczania części linearyzacji. Rozbudowane modele ruchu i systemy, w których koszt obliczeniowy jest akceptowalny.
Optymalizacja grafowa Łączy pomiary jako ograniczenia pomiędzy stanami robota i optymalizuje większy fragment trajektorii. Może ponownie korygować wcześniejsze stany po uzyskaniu nowych informacji. Visual-Inertial SLAM, LiDAR-Inertial SLAM i przetwarzanie trajektorii.

Wybór metody zależy od tego, jaki stan ma zostać oszacowany. Filtr komplementarny lub Madgwicka może wystarczyć do wyznaczania samej orientacji modułu IMU. Estymacja pełnej pozycji, prędkości i orientacji robota zwykle wymaga jednak połączenia IMU z odometrią, kamerą, LiDAR-em lub GNSS.

ROS 2 udostępnia gotowy filtr komplementarny łączący prędkości kątowe, przyspieszenia i opcjonalne dane magnetyczne w kwaternion orientacji. Pakiet robot_localization zawiera natomiast węzły ekf_localization_node i ukf_localization_node, które mogą łączyć wiele źródeł stanu robota.

Jak działa filtr komplementarny?

Filtr komplementarny wykorzystuje fakt, że żyroskop i akcelerometr są użyteczne w różnych zakresach czasu. Żyroskop dobrze opisuje szybkie zmiany orientacji, ale jego długoterminowy wynik obciąża dryft. Akcelerometr zapewnia odniesienie do grawitacji, lecz jego krótkotrwałe pomiary są zakłócane przez ruch i drgania.

W uproszczonym ujęciu filtr przepuszcza szybkie zmiany pochodzące z żyroskopu oraz wolniejsze, długoterminowe odniesienie z akcelerometru. Wyniki są następnie łączone w jedną estymację orientacji.

Siłę korekcji określa parametr nazywany często wzmocnieniem lub wagą. Zbyt mała korekcja powoduje szybkie narastanie dryftu. Zbyt duża może sprawić, że orientacja będzie reagowała na każde drganie i przyspieszenie liniowe.

Implementacja ROS 2 imu_complementary_filter może łączyć prędkość kątową, przyspieszenie i opcjonalne dane magnetyczne w kwaternion. Udostępnia również mechanizmy estymowania biasu żyroskopu i adaptacyjnej zmiany wzmocnienia.

Jak działa filtr Madgwicka?

Filtr Madgwicka również wykorzystuje żyroskop do przewidywania zmian orientacji, ale korekcję wyznacza za pomocą algorytmu gradientowego. Przewidywany kierunek grawitacji i opcjonalnie pola magnetycznego jest porównywany z rzeczywistymi pomiarami czujników.

Różnica pomiędzy przewidywaniem i obserwacją służy do wyznaczenia korekty kwaternionu. W ten sposób filtr ogranicza dryft żyroskopu, zachowując jednocześnie szybką reakcję na obrót.

Istotnym parametrem jest współczynnik określający siłę korekcji. Zbyt mała wartość powoduje wolne usuwanie dryftu, natomiast zbyt duża może zwiększyć wpływ szumu i dynamicznych przyspieszeń.

Filtr może działać w konfiguracji IMU, wykorzystującej akcelerometr i żyroskop, albo MARG, obejmującej również magnetometr. Oryginalne opracowanie Madgwicka opisuje estymację orientacji w postaci kwaternionu z zastosowaniem korekcji gradientowej, a pakiet ROS 2 imu_filter_madgwick udostępnia tę metodę dla typowych danych IMU.

Jak działa rozszerzony filtr Kalmana?

Rozszerzony filtr Kalmana, czyli EKF, może estymować znacznie więcej niż samą orientację. Stan może obejmować pozycję, orientację, prędkości liniowe, prędkości kątowe, przyspieszenia oraz biasy czujników.

Najpierw model ruchu przewiduje, jak stan robota powinien zmienić się w czasie. Przewidywana jest również niepewność tego wyniku. Po pojawieniu się nowego pomiaru filtr oblicza różnicę pomiędzy obserwacją i przewidywaniem, a następnie wykonuje korekcję.

Siła korekcji zależy od niepewności przewidywania i niepewności pomiaru. Jeżeli czujnik jest uznawany za dokładny, jego wynik wywiera większy wpływ na stan. Jeżeli posiada wysoki poziom szumu albo niewielką wiarygodność, korekcja jest słabsza.

EKF rozszerza klasyczny filtr Kalmana na modele nieliniowe, stosując lokalną linearyzację. UKF wykorzystuje natomiast zestaw punktów sigma, które są przekształcane przez model nieliniowy. Pakiet ROS 2 robot_localization udostępnia oba rodzaje estymatorów i może przetwarzać wiadomości Odometry, Imu, PoseWithCovarianceStamped oraz TwistWithCovarianceStamped.

Co oznacza niepewność i kowariancja pomiaru?

Każdy pomiar posiada pewien poziom niepewności. Nawet nieruchomy żyroskop nie zwraca idealnie stałego zera, a kolejne próbki akcelerometru różnią się pod wpływem szumu, drgań i temperatury.

Kowariancja jest matematycznym opisem niepewności oraz zależności pomiędzy poszczególnymi składowymi pomiaru. Mała wartość wariancji oznacza zwykle większe zaufanie do danego kanału, natomiast duża informuje filtr, że wynik może znacząco odbiegać od rzeczywistości.

Nieprawidłowe ustawienie kowariancji może prowadzić do złej fuzji. Zbyt mała wartość sprawia, że filtr nadmiernie ufa czujnikowi. Zbyt duża może praktycznie wyłączyć jego wpływ na estymację.

Ustawienie Interpretacja Możliwy skutek
Zbyt mała niepewność Filtr uznaje pomiar za niemal idealny. Stan może gwałtownie podążać za zaszumionym lub błędnym czujnikiem.
Realistyczna niepewność Zaufanie odpowiada rzeczywistej jakości pomiaru. Filtr prawidłowo równoważy informacje z wielu źródeł.
Zbyt duża niepewność Pomiar jest uznawany za mało wiarygodny. Czujnik może mieć zbyt mały wpływ na wynik lub nie korygować dryftu.
Stała niepewność Jakość pomiaru jest traktowana jako jednakowa w każdych warunkach. Prosta konfiguracja może nie reagować na drgania, zakłócenia lub zmianę oświetlenia.
Niepewność adaptacyjna Zaufanie zmienia się zależnie od aktualnej jakości danych. System może ograniczyć wpływ akcelerometru podczas gwałtownego ruchu albo magnetometru przy zakłóceniu.

W wiadomości sensor_msgs/msg/Imu osobne macierze kowariancji są przewidziane dla orientacji, prędkości kątowej i przyspieszenia liniowego. Pozwalają one przekazywać kolejnym komponentom systemu informację nie tylko o wartości pomiaru, ale także o jego przewidywanej jakości.

Kowariancje powinny wynikać z dokumentacji czujnika, pomiarów wykonanych na nieruchomym urządzeniu oraz testów w rzeczywistych warunkach pracy. Wartości dobrane przypadkowo mogą sprawić, że filtr będzie matematycznie działał, ale wynik nie będzie odpowiadał rzeczywistemu ruchowi robota.

Fuzja orientacji a estymacja pełnego stanu robota

Filtr orientacji i filtr lokalizacji wykonują powiązane, ale nieidentyczne zadania. Filtr orientacji wykorzystujący dane IMU może zwracać kwaternion opisujący obrót czujnika. Nie musi jednak znać pozycji robota ani jego prędkości względem mapy.

Estymator pełnego stanu łączy znacznie więcej informacji. Może uwzględniać położenie X, Y i Z, orientację, prędkość liniową, prędkość kątową oraz przyspieszenie. W tym przypadku IMU jest tylko jednym z wielu źródeł.

Pakiet robot_localization śledzi stan obejmujący pozycję, orientację, prędkości liniowe i kątowe oraz przyspieszenia liniowe. Może przyjmować dowolną liczbę źródeł i pozwala określić, które składowe poszczególnych wiadomości mają być wykorzystywane.

Rodzaj fuzji Typowe dane wejściowe Typowy wynik
Fuzja wewnątrz IMU Akcelerometr, żyroskop i opcjonalnie magnetometr. Orientacja, kwaternion, roll, pitch, yaw oraz czasami oszacowanie biasu.
Fuzja inercyjno-wizyjna IMU oraz obrazy z jednej lub kilku kamer. Ruch kamery, trajektoria i położenie względem otoczenia.
Fuzja LiDAR–IMU IMU oraz kolejne skany lub chmury punktów. Trajektoria, orientacja i mapa geometryczna.
Fuzja odometrii robota IMU, enkodery, prędkości kół i model ruchu platformy. Płynna lokalna odometria robota.
Globalna lokalizacja IMU, odometria, GNSS, mapa, kamera albo LiDAR. Pozycja i orientacja robota w globalnym układzie odniesienia.

Gotowa orientacja opublikowana przez sterownik IMU może zostać następnie przekazana do kolejnego filtra razem z odometrią, pozycją GNSS albo wynikiem SLAM. Należy jednak uważać, aby nie łączyć wielokrotnie tych samych informacji w sposób powodujący sztuczne zwiększenie zaufania.

Przykładowo orientacja obliczona wewnątrz kamery Visual-Inertial może już wykorzystywać to samo IMU, które publikowane jest oddzielnie. Traktowanie obu wyników jako całkowicie niezależnych pomiarów może prowadzić do nieprawidłowej oceny niepewności.

Czym jest dryft IMU i skąd biorą się błędy pomiarowe?

Dryft IMU to stopniowe odchodzenie obliczonej orientacji, prędkości lub pozycji od rzeczywistego stanu robota. Czujnik może pozostawać nieruchomy, a mimo to oprogramowanie po pewnym czasie zacznie wskazywać niewielki obrót, zmianę prędkości albo przesunięcie.

Dryft nie jest pojedynczym rodzajem błędu. Powstaje wskutek łącznego wpływu offsetu, niestabilności biasu, szumu, temperatury, drgań, niedokładności skali, nieprawidłowego ustawienia osi oraz błędów synchronizacji czasu. Ponieważ pomiary żyroskopu i akcelerometru są całkowane, nawet niewielkie odchylenia mogą narastać wraz z czasem.

W żyroskopie istotne znaczenie mają między innymi niestabilność biasu i szum określany przez parametr angular random walk. Analog Devices wskazuje te dwa zjawiska jako podstawowe składniki dryftu powstającego podczas całkowania prędkości kątowej.

W przypadku akcelerometru błąd jest szczególnie dotkliwy podczas obliczania pozycji. Przyspieszenie trzeba najpierw scałkować do prędkości, a następnie drugi raz do położenia. Powoduje to szybkie narastanie nawet niewielkiego offsetu, szumu lub błędu orientacji.

Czym różnią się offset, szum i dryft?

Pojęcie Co oznacza? Przykład Wpływ na robota
Offset Stałe lub wolnozmienne przesunięcie wyniku względem wartości prawidłowej. Nieruchomy żyroskop wskazuje 0,08°/s zamiast 0°/s. Po całkowaniu powstaje systematycznie narastający błąd kąta.
Bias Składowa błędu dodawana do prawidłowego pomiaru. Może zmieniać się między uruchomieniami i podczas pracy. Akcelerometr leżący w tej samej pozycji po ponownym uruchomieniu zwraca nieco inną wartość. Powoduje błąd orientacji, prędkości i pozycji.
Niestabilność biasu Powolne, losowe zmiany wartości zerowej czujnika w czasie. Offset żyroskopu stopniowo zmienia się mimo stałej temperatury i braku ruchu. Nie może zostać całkowicie usunięta jednorazową kalibracją początkową.
Szum Szybkie, losowe zmiany kolejnych próbek wokół wartości średniej. Nieruchomy akcelerometr zwraca nieznacznie różne wyniki w każdej próbce. Powoduje drgania estymowanego stanu i losowy błąd po całkowaniu.
Dryft Narastająca rozbieżność pomiędzy estymowanym i rzeczywistym stanem. Robot stoi nieruchomo, ale obliczony yaw powoli zmienia się w czasie. Prowadzi do błędnej orientacji, prędkości, pozycji i lokalizacji.
Błąd skali Rzeczywista czułość czujnika różni się od wartości zastosowanej podczas przeliczania danych. Obrót 100°/s jest raportowany jako 102°/s. Błąd rośnie proporcjonalnie do wielkości i czasu trwania ruchu.
Błąd osi Osie pomiarowe nie są idealnie prostopadłe albo nie pokrywają się z osiami robota. Obrót wyłącznie wokół osi Z wywołuje niewielki sygnał także w osi X. Powoduje wzajemne mieszanie się roll, pitch i yaw.

Stały offset można częściowo wyznaczyć podczas postoju i odjąć od kolejnych pomiarów. Nie usuwa to jednak niestabilności biasu, szumu ani zmian powodowanych temperaturą. Dlatego kalibracja początkowa zmniejsza dryft, ale zwykle nie eliminuje go całkowicie.

W dokumentacji precyzyjnych modułów IMU osobno podawane są między innymi: powtarzalność biasu, stabilność biasu podczas pracy, szum, angular random walk, błąd skali, nieprostopadłość osi oraz wpływ przyspieszeń i drgań na żyroskop.

Jak błędy narastają podczas całkowania?

Żyroskop mierzy prędkość kątową. Aby obliczyć zmianę orientacji, oprogramowanie całkuje pomiary w czasie. Jeżeli wynik zawiera stały bias, błąd kąta rośnie w przybliżeniu liniowo.

Błąd orientacji ≈ bias żyroskopu × czas

Jeżeli nieruchomy żyroskop błędnie wskazuje 0,1°/s, po minucie całkowania błąd orientacji może osiągnąć około 6°. W rzeczywistym czujniku bias nie musi być stały, dlatego tempo dryftu może zmieniać się podczas pracy.

Akcelerometr jest wykorzystywany do obliczania prędkości i pozycji. Stały błąd przyspieszenia powoduje liniowo narastający błąd prędkości, a błąd pozycji rośnie w przybliżeniu proporcjonalnie do kwadratu czasu:

Błąd prędkości ≈ bias akcelerometru × czas

Błąd pozycji ≈ ½ × bias akcelerometru × czas²

Zależności te są uproszczone, ale dobrze pokazują, dlaczego samodzielne wyznaczanie pozycji z niewielkiego IMU szybko staje się niedokładne.

Źródło błędu Operacja wykonywana przez system Sposób narastania błędu
Bias żyroskopu Jednokrotne całkowanie prędkości kątowej do orientacji. Błąd kąta narasta w przybliżeniu liniowo z czasem.
Szum żyroskopu Całkowanie losowych zmian prędkości kątowej. Powstaje losowe błądzenie orientacji określane między innymi przez angular random walk.
Bias akcelerometru Pierwsze całkowanie do prędkości i drugie do pozycji. Błąd prędkości rośnie liniowo, a błąd pozycji może rosnąć w przybliżeniu z kwadratem czasu.
Błąd orientacji Odejmowanie grawitacji i przeliczanie przyspieszenia do układu świata. Część grawitacji zostaje błędnie uznana za przyspieszenie ruchu robota.
Błąd czasu Całkowanie z nieprawidłowym odstępem pomiędzy próbkami. Każda aktualizacja stanu jest zbyt duża albo zbyt mała.

Szczególnie niebezpieczny jest błąd orientacji. Aby uzyskać przyspieszenie ruchu robota, system musi prawidłowo odjąć wpływ grawitacji. Jeżeli orientacja jest wyznaczona niepoprawnie, część wektora grawitacji zostaje potraktowana jako rzeczywiste przyspieszenie liniowe.

Oznacza to, że niewielki błąd roll lub pitch może wygenerować pozorne przyspieszenie poziome. Po dwukrotnym całkowaniu prowadzi ono do szybko narastającego błędu pozycji, nawet gdy właściwy akcelerometr ma stosunkowo niewielki offset.

Najważniejsze źródła błędów IMU

Źródło błędu Na czym polega? Typowy skutek Możliwe ograniczenie
Bias początkowy Wartość zerowa czujnika różni się od idealnego zera po uruchomieniu. Systematyczny dryft orientacji, prędkości lub pozycji. Kalibracja podczas nieruchomego postoju.
Niestabilność biasu Offset zmienia się losowo podczas pracy. Dryft pozostaje nawet po wykonaniu kalibracji początkowej. Estymowanie biasu w filtrze i korekcja z innych czujników.
Szum biały Kolejne próbki losowo zmieniają się wokół wartości średniej. Niestabilny wynik i random walk po całkowaniu. Filtrowanie oraz właściwy dobór pasma i częstotliwości próbkowania.
Zmiana temperatury Temperatura wpływa na offset, czułość i częstotliwość elementów MEMS. Wynik zmienia się podczas rozgrzewania lub chłodzenia robota. Kompensacja temperaturowa i kalibracja w wymaganym zakresie temperatur.
Błąd skali Przelicznik pomiędzy sygnałem cyfrowym i jednostką fizyczną jest niedokładny. Zbyt duży albo zbyt mały pomiar ruchu. Kalibracja wielopunktowa i współczynniki skali dla każdej osi.
Nieprostopadłość osi Osie pomiarowe nie tworzą idealnie prostopadłego układu. Ruch jednej osi pojawia się częściowo w pozostałych kanałach. Macierz kalibracyjna korygująca wzajemne ustawienie osi.
Błąd montażu Obudowa IMU nie jest ustawiona zgodnie z osiami korpusu robota. Mylenie kierunków ruchu i nieprawidłowa interpretacja roll, pitch oraz yaw. Dokładna transformacja pomiędzy układem IMU i układem robota.
Nieliniowość Odpowiedź czujnika nie jest idealnie proporcjonalna w całym zakresie. Dokładność zmienia się zależnie od wartości przyspieszenia lub prędkości kątowej. Charakterystyka wielopunktowa i model korekcyjny.
Nasycenie Rzeczywisty ruch przekracza ustawiony zakres pomiarowy. Utrata części informacji podczas gwałtownego obrotu lub uderzenia. Dobór odpowiedniego zakresu akcelerometru i żyroskopu.
Drgania Konstrukcja przekazuje do czujnika ruch silników, przekładni, śmigieł lub podłoża. Zwiększony szum, błędy średniej i pozorne przyspieszenia lub obroty. Odpowiednie mocowanie, filtracja i analiza widma drgań.
Vibration Rectification Error Nieliniowość czujnika może zamieniać drgania o zerowej średniej w niezerowy błąd wyjściowy. Pozorny bias pojawiający się tylko podczas drgań. Dobór IMU odpornego na drgania i właściwe projektowanie mocowania.
G-sensitivity żyroskopu Przyspieszenie liniowe lub drgania wpływają na wynik prędkości kątowej. Pozorny obrót podczas uderzenia, jazdy lub ruchu nóg robota. Kalibracja, odpowiednia konstrukcja czujnika i korekcja programowa.
Błąd znacznika czasu Czas próbki nie odpowiada rzeczywistemu momentowi pomiaru. Błędy całkowania i niewłaściwa synchronizacja z kamerą lub LiDAR-em. Sprzętowe znaczniki czasu, synchronizacja zegarów i stabilne opóźnienie.
Aliasing Drgania powyżej użytecznego pasma są próbkowane z niewystarczającą częstotliwością. Pojawienie się fałszywych, wolniejszych składowych sygnału. Filtr antyaliasingowy oraz prawidłowa częstotliwość próbkowania.
Kwantyzacja Wynik cyfrowy może przyjmować tylko skończoną liczbę wartości. Najmniejsze zmiany ruchu nie są widoczne albo pojawiają się skokowo. Dobór zakresu, rozdzielczości i jakości przetwornika.

Precyzyjne moduły IMU są charakteryzowane osobno pod względem stabilności biasu, angular random walk, błędu skali, nieprostopadłości osi, wpływu przyspieszenia liniowego oraz błędu wywołanego drganiami. Parametry te mogą znacząco różnić się pomiędzy niewielkim czujnikiem konsumenckim a przemysłowym modułem inercyjnym.

Jak temperatura wpływa na IMU?

Elementy MEMS zmieniają swoje właściwości wraz z temperaturą. Podczas uruchamiania robota układ elektroniczny oraz czujniki stopniowo się nagrzewają, dlatego offset obserwowany bezpośrednio po włączeniu może różnić się od wartości po kilku lub kilkunastu minutach pracy.

Zmianie mogą ulegać między innymi wartość zerowa, czułość oraz wzajemne zachowanie poszczególnych osi. Jednorazowa kalibracja wykonana w temperaturze pokojowej nie musi więc zapewnić odpowiedniej dokładności podczas pracy na mrozie, w nasłonecznionej obudowie albo w pobliżu rozgrzanych napędów.

Bardziej zaawansowane moduły są fabrycznie kalibrowane w szerokim zakresie temperatur i posiadają wewnętrzne modele kompensacyjne. Nie oznacza to jednak całkowitego braku wpływu temperatury. Dokumentacje precyzyjnych IMU nadal podają osobne błędy czułości, biasu i ustawienia osi w funkcji temperatury.

  • Zapewnić IMU czas na osiągnięcie stabilnej temperatury roboczej.
  • Rejestrować temperaturę razem z pomiarami akcelerometru i żyroskopu.
  • Nie umieszczać czujnika bezpośrednio przy silniku, radiatorze lub źródle zmiennego ciepła.
  • Wykonać kalibrację w zakresie temperatur występujących podczas rzeczywistej pracy.
  • Stosować współczynniki kompensacyjne właściwe dla konkretnego egzemplarza czujnika.
  • Sprawdzić zachowanie offsetu podczas nagrzewania i chłodzenia urządzenia.
  • Nie zakładać, że kompensacja fabryczna usuwa wszystkie zmiany temperaturowe.

Jak drgania wpływają na pomiary IMU?

Drgania są jednym z najważniejszych problemów podczas montowania IMU w robocie. Źródłem mogą być silniki, przekładnie, pompy, śmigła, uderzenia nóg o podłoże, nierówności nawierzchni albo rezonanse elementów konstrukcyjnych.

Część drgań jest widoczna jako szybkozmienny szum, który można ograniczać filtrem dolnoprzepustowym. Nie wszystkie błędy można jednak usunąć przez proste uśrednianie. Nieliniowość elementu MEMS może powodować vibration rectification error, czyli niezerowy błąd średni powstający pod wpływem drgań o średniej zbliżonej do zera.

Żyroskop może również reagować na przyspieszenia liniowe, co określa się jako g-sensitivity. Podczas uderzenia albo dynamicznego ruchu nóg robot może więc odczytać pozorną prędkość kątową, mimo że część sygnału wynika z przyspieszenia, a nie rzeczywistego obrotu.

Producenci precyzyjnych IMU podają parametry opisujące wpływ przyspieszenia liniowego i drgań na bias żyroskopu, ponieważ zjawiska te mogą mieć istotne znaczenie w dynamicznych platformach.

Jak ocenia się stabilność IMU?

Najprostszym testem jest pozostawienie nieruchomego czujnika i obserwowanie jego wskazań przez określony czas. Pozwala to oszacować średni offset, odchylenie standardowe próbek, zmianę biasu podczas nagrzewania oraz tempo narastania błędu po całkowaniu.

Bardziej zaawansowaną metodą jest analiza wariancji lub odchylenia Allana. Polega ona na analizowaniu stabilności średnich pomiarów dla różnych długości przedziałów czasu. Kształt wykresu pozwala rozróżnić niektóre rodzaje szumu i wyznaczyć parametry takie jak angular random walk oraz in-run bias stability.

Analiza Allana nie zastępuje testów dynamicznych ani temperaturowych. Czujnik może zachowywać się bardzo dobrze na nieruchomym stole, a znacznie gorzej po zamontowaniu w drgającym robocie. Jest jednak przydatnym narzędziem do porównywania czujników i konfigurowania modeli szumu. Analog Devices wskazuje metodę Allana jako sposób oceny stabilności biasu i angle random walk żyroskopów.

  1. Zamocuj IMU nieruchomo na stabilnym podłożu.
  2. Rejestruj surowe dane akcelerometru, żyroskopu i temperatury.
  3. Obserwuj zachowanie czujnika od chwili uruchomienia do osiągnięcia stabilnej temperatury.
  4. Wyznacz średni offset każdej osi dla nieruchomego urządzenia.
  5. Oblicz szum i rozrzut kolejnych próbek.
  6. Scałkuj dane żyroskopu i sprawdź tempo narastania błędu orientacji.
  7. Scałkuj skorygowane dane akcelerometru i oceń dryft prędkości oraz pozycji.
  8. Wykonaj analizę Allana dla odpowiednio długiego zestawu danych.
  9. Powtórz test w różnych temperaturach.
  10. Wykonaj test po zamontowaniu czujnika w docelowym robocie.
  11. Uruchom kolejno silniki i napędy, aby rozpoznać źródła drgań.
  12. Porównaj wynik IMU z zewnętrznym systemem referencyjnym.

Dlaczego IMU nie wyznacza samodzielnie dokładnej pozycji przez długi czas?

Teoretycznie pozycję można obliczyć wyłącznie z akcelerometru. Wymaga to prawidłowego wyznaczenia orientacji, odjęcia grawitacji, przeliczenia przyspieszenia do układu świata oraz dwukrotnego całkowania w czasie.

W praktyce każda z tych operacji wprowadza błędy. Niewielki offset akcelerometru powoduje narastający błąd prędkości i pozycji. Błąd orientacji prowadzi do nieprawidłowego odjęcia grawitacji, a szum po całkowaniu zamienia się w losowe błądzenie wyniku.

Z tego powodu niedrogie IMU MEMS nie zapewnia samodzielnie stabilnej, długoterminowej pozycji robota. Może bardzo dobrze opisywać szybkie zmiany ruchu pomiędzy kolejnymi aktualizacjami innych czujników, ale wymaga okresowej korekcji.

Źródłem korekcji mogą być enkodery, kamera, LiDAR, GNSS, znaczniki wizyjne, system motion capture albo lokalizacja względem mapy. IMU zwiększa częstotliwość i płynność estymacji, natomiast czujniki obserwujące otoczenie ograniczają jej długoterminowy dryft.

Jak ograniczyć dryft IMU?

  • Wykonać kalibrację offsetu, skali i wzajemnego ustawienia osi.
  • Zapewnić czujnikowi stabilną temperaturę roboczą.
  • Stosować indywidualną kompensację temperaturową.
  • Zamontować IMU blisko sztywnej części korpusu robota.
  • Ograniczyć drgania mechaniczne bez wprowadzania niekontrolowanego ruchu mocowania.
  • Dobrać zakres pomiarowy do maksymalnych przyspieszeń i obrotów.
  • Ustawić odpowiednią częstotliwość próbkowania i pasmo filtrów.
  • Zapewnić dokładne znaczniki czasu i synchronizację z innymi czujnikami.
  • Estymować zmieniający się bias żyroskopu podczas pracy.
  • Wykrywać okresy nieruchomości i stosować aktualizację zerowej prędkości, gdy jest uzasadniona.
  • Łączyć IMU z enkoderami, kamerą, LiDAR-em, GNSS lub lokalizacją względem mapy.
  • Przekazywać filtrom realistyczne wartości kowariancji.
  • Testować czujnik po zamontowaniu w gotowym robocie, a nie wyłącznie na stole.

Ograniczanie dryftu jest zadaniem całego systemu, a nie wyłącznie samego czujnika. Nawet bardzo dobre IMU wymaga właściwego montażu, czasu, kalibracji, filtracji oraz wiarygodnego zewnętrznego odniesienia.

Różnice pomiędzy modułami mogą być bardzo duże. W dokumentacji przemysłowych IMU spotyka się osobno określone wartości stabilności biasu, angular random walk, błędu temperaturowego i odporności na drgania. Parametry te są bardziej miarodajne niż samo określenie „6-osiowe” lub „9-osiowe”.

Jak kalibruje się IMU?

Kalibracja IMU polega na wyznaczeniu i skorygowaniu przewidywalnych błędów akcelerometru, żyroskopu oraz ewentualnego magnetometru. Obejmuje między innymi offset, współczynniki skali, nieprostopadłość osi, wpływ temperatury oraz ustawienie czujnika względem konstrukcji robota.

Nie każda kalibracja oznacza to samo. Producent może wykonać kalibrację fabryczną samego układu, projektant urządzenia kalibrację po zamontowaniu płytki, a oprogramowanie robota dodatkową korekcję wykonywaną po uruchomieniu lub w czasie pracy.

Nawet dobrze skalibrowany fabrycznie moduł może wymagać sprawdzenia po montażu. Lutowanie, naprężenia płytki, tolerancje mocowania i niewielkie odchylenie obudowy względem osi robota mogą zmienić końcowe zachowanie systemu. Analog Devices wskazuje, że dokładność ustawienia zależy zarówno od błędów samego IMU, jak i od mechanicznego sposobu jego zamontowania.

Jakie rodzaje kalibracji można wyróżnić?

Rodzaj kalibracji Co obejmuje? Kiedy jest wykonywana? Przykładowy rezultat
Kalibracja fabryczna Charakterystykę biasu, czułości, osi, temperatury i innych parametrów konkretnego czujnika. Podczas produkcji układu lub kompletnego modułu IMU. Współczynniki korekcyjne zapisane w pamięci urządzenia.
Kalibracja po montażu Błędy powstałe po lutowaniu, zamocowaniu płytki i umieszczeniu czujnika w obudowie. Po złożeniu urządzenia lub robota. Korekcja offsetu, skali i wzajemnego ustawienia osi.
Kalibracja początkowa Aktualny offset żyroskopu i stan czujnika po uruchomieniu. Przy każdym włączeniu albo przed rozpoczęciem zadania. Średni bias odejmowany od kolejnych pomiarów.
Kalibracja akcelerometru Offset, czułość i ewentualne mieszanie pomiędzy osiami. Podczas procedury statycznej w kilku znanych położeniach. Macierz i wektor korekcyjny dla osi X, Y i Z.
Kalibracja żyroskopu Offset zerowy, czułość, ustawienie osi i wpływ temperatury. Podczas postoju oraz, dla dokładniejszej kalibracji, przy znanych obrotach. Poprawne zero i właściwy przelicznik prędkości kątowej.
Kalibracja magnetometru Zakłócenia hard iron, soft iron, skale i nieprostopadłość osi. Po zamontowaniu czujnika w gotowym urządzeniu. Wektor offsetu i macierz korygująca deformację pomiarów.
Kalibracja temperaturowa Zmianę biasu i czułości w funkcji temperatury. Podczas kontrolowanego nagrzewania i chłodzenia czujnika. Model kompensacyjny zależny od temperatury.
Kalibracja ustawienia Obrót pomiędzy osiami IMU i osiami korpusu robota. Po ostatecznym zamontowaniu modułu. Transformacja lub macierz przeliczająca dane do układu robota.
Kalibracja czasowa Opóźnienie i przesunięcie czasu względem kamery, LiDAR-u lub innych czujników. Podczas integracji systemu wielosensorowego. Poprawne dopasowanie pomiarów wykonanych w tej samej chwili.
Kalibracja w czasie pracy Powolne zmiany biasu i innych parametrów podczas eksploatacji. Automatycznie przez algorytm fuzji sensorów. Bieżąca korekcja offsetu bez zatrzymywania całego systemu.

Rozbudowane przemysłowe moduły IMU mogą być fabrycznie kalibrowane indywidualnie dla każdego egzemplarza. Korekcja obejmuje wtedy między innymi bias, czułość, ustawienie osi i zachowanie w szerokim zakresie temperatur. W prostszych układach część tych zadań musi zostać wykonana po zmontowaniu urządzenia.

Kalibracja fabryczna nie zawsze uwzględnia błędy całego robota. Nawet poprawny czujnik może zostać zamontowany pod niewielkim kątem albo pracować na odkształconej płytce. Dlatego należy rozróżniać kalibrację wewnętrzną IMU od kalibracji jego położenia względem korpusu robota.

Jak przebiega kalibracja IMU krok po kroku?

  1. Zamontuj IMU w docelowym miejscu i orientacji w robocie.
  2. Sprawdź dokumentację czujnika, jego zakresy, jednostki oraz kierunki osi.
  3. Zapewnij stabilne zasilanie i prawidłową częstotliwość próbkowania.
  4. Pozostaw urządzenie włączone do osiągnięcia temperatury zbliżonej do normalnej temperatury pracy.
  5. Unieruchom robota i zbierz serię próbek żyroskopu oraz akcelerometru.
  6. Wyznacz początkowy offset żyroskopu dla osi X, Y i Z.
  7. Wykonaj statyczną kalibrację akcelerometru w kilku znanych orientacjach.
  8. Wyznacz współczynniki offsetu, skali i ewentualnego mieszania osi.
  9. Jeżeli system zawiera magnetometr, przeprowadź jego osobną kalibrację przestrzenną.
  10. Określ transformację pomiędzy układem IMU i układem korpusu robota.
  11. Sprawdź zachowanie czujnika w różnych temperaturach.
  12. Zweryfikuj znaczniki czasu i synchronizację z kamerą, LiDAR-em oraz enkoderami.
  13. Zapisz współczynniki kalibracyjne w sterowniku, pamięci urządzenia albo konfiguracji robota.
  14. Powtórz pomiary kontrolne po zastosowaniu korekcji.
  15. Wykonaj test dynamiczny i porównaj wynik z wiarygodnym systemem odniesienia.

Procedura powinna być przeprowadzona po zamontowaniu IMU, ponieważ naprężenia płytki, tolerancje mechaniczne oraz ustawienie obudowy mogą powodować dodatkowe błędy offsetu i osi. Część błędów po montażu może zostać zmniejszona przez kalibrację programową, ale nie wszystkie zmiany starzeniowe, temperaturowe i mechaniczne dają się całkowicie usunąć.

Jak kalibruje się offset żyroskopu?

Najprostszą kalibrację żyroskopu wykonuje się podczas całkowitego postoju urządzenia. W idealnym przypadku wszystkie trzy osie powinny wtedy wskazywać 0 rad/s albo 0°/s. Rzeczywisty czujnik zwraca jednak niewielkie wartości różne od zera.

Oprogramowanie zbiera serię próbek, oblicza średnią dla każdej osi i zapisuje ją jako bieżący bias. Wartość ta jest następnie odejmowana od kolejnych pomiarów.

Im dłuższy i stabilniejszy jest okres pomiarowy, tym lepiej można oszacować średni offset. Czujnik musi jednak rzeczywiście pozostawać nieruchomy. Drgania konstrukcji, praca wentylatora, silników albo dotykanie robota mogą zniekształcić wynik.

Analog Devices wskazuje, że stały błąd żyroskopu można oszacować przez uśrednianie wyników w czasie, gdy urządzenie nie obraca się. Znane okresy postoju mogą być również wykorzystywane do ponownego zerowania prędkości kątowej podczas pracy.

  1. Ustaw robota na stabilnym i nieruchomym podłożu.
  2. Wyłącz napędy i inne elementy powodujące drgania, o ile procedura producenta na to pozwala.
  3. Poczekaj, aż temperatura IMU przestanie szybko się zmieniać.
  4. Odrzuć pierwsze próbki zebrane bezpośrednio po uruchomieniu.
  5. Zbieraj dane żyroskopu przez kilka lub kilkadziesiąt sekund.
  6. Sprawdź, czy wartości nie zawierają impulsów świadczących o ruchu.
  7. Oblicz średnią osobno dla osi X, Y i Z.
  8. Zapisz średnie wartości jako offset początkowy.
  9. Odejmij offset od kolejnych pomiarów żyroskopu.
  10. Pozostaw urządzenie nieruchomo i sprawdź, czy skorygowane wartości oscylują wokół zera.
  11. Scałkuj wynik przez dłuższy czas i oceń pozostały dryft orientacji.

Kalibracja statyczna koryguje przede wszystkim bieżący offset zerowy. Nie wyznacza dokładnie współczynnika skali ani zachowania czujnika podczas obrotu. Do pełnej kalibracji żyroskopu potrzebne są znane prędkości kątowe, zwykle generowane przez precyzyjny stół obrotowy.

Offset może również zmienić się po ponownym uruchomieniu i w wyniku temperatury. Dlatego wiele systemów wykonuje krótką kalibrację przy każdym starcie albo estymuje bias żyroskopu w filtrze podczas pracy.

Jak kalibruje się akcelerometr metodą sześciu położeń?

Akcelerometr można kalibrować z wykorzystaniem znanego kierunku i wartości grawitacji. W czasie postoju każda oś jest kolejno ustawiana zgodnie i przeciwnie do kierunku pionowego. Otrzymujemy sześć podstawowych położeń: +X, −X, +Y, −Y, +Z i −Z.

Gdy wybrana oś jest skierowana pionowo, powinna wskazywać wartość zbliżoną do +1 g albo −1 g, zależnie od orientacji i przyjętej konwencji. Pozostałe dwie osie powinny wskazywać wartości zbliżone do zera.

Na podstawie wyników można wyznaczyć offset i czułość każdej osi. Bardziej rozbudowany model pozwala dodatkowo oszacować błędy wzajemnego ustawienia i wpływ jednej osi na pozostałe.

STMicroelectronics opisuje kalibrację sześciopołożeniową jako metodę umożliwiającą wyznaczenie offsetów, wzmocnień i wpływów między osiami trójosiowego czujnika.

Położenie Oczekiwane X Oczekiwane Y Oczekiwane Z
+X pionowo Około +1 g Około 0 g Około 0 g
−X pionowo Około −1 g Około 0 g Około 0 g
+Y pionowo Około 0 g Około +1 g Około 0 g
−Y pionowo Około 0 g Około −1 g Około 0 g
+Z pionowo Około 0 g Około 0 g Około +1 g
−Z pionowo Około 0 g Około 0 g Około −1 g

Znaki w tabeli mogą być odwrócone zależnie od konwencji wyjścia danego czujnika. Najważniejsze jest ustawienie każdej osi w dwóch przeciwnych kierunkach i znajomość oczekiwanej wartości.

Podczas każdego położenia urządzenie powinno pozostawać nieruchomo przez kilka sekund. Zebrane próbki należy uśrednić, ponieważ pojedynczy pomiar zawiera szum i może zostać zakłócony przez niewielki ruch.

Sześć położeń musi być ustawionych możliwie dokładnie. Jeżeli nie można zapewnić precyzyjnej orientacji, można zebrać większą liczbę nieruchomych pomiarów w różnych ustawieniach i zastosować dopasowanie kuli albo elipsoidy. STMicroelectronics wskazuje, że dokładność takiej kalibracji poprawia równomierne rozmieszczenie punktów w przestrzeni.

Jak kalibruje się ustawienie IMU względem robota?

Wewnętrzne osie czujnika nie muszą idealnie pokrywać się z osiami korpusu robota. Przyczyną może być sposób ustawienia płytki, tolerancja otworów montażowych, nierówna powierzchnia, lutowanie albo celowe zamontowanie modułu pod kątem.

Kalibracja ustawienia polega na wyznaczeniu obrotu pomiędzy układem IMU i układem robota. Korekcja może zostać zapisana jako macierz obrotu, kwaternion albo stała transformacja.

Jeżeli moduł został zamontowany dokładnie pod znanym kątem, wystarczy zastosować transformację wynikającą z projektu mechanicznego. W systemach wymagających większej dokładności ustawienie należy zweryfikować pomiarem względem znanego ruchu albo zewnętrznego systemu referencyjnego.

Błąd ustawienia powoduje również mieszanie kanałów. Przykładowo obrót robota wyłącznie wokół osi Z może pojawić się częściowo w kanałach X i Y żyroskopu. Elektroniczna macierz korekcyjna może ograniczyć taki błąd, o ile wzajemne ustawienie zostało prawidłowo scharakteryzowane.

  1. Określ układ współrzędnych czujnika na podstawie dokumentacji.
  2. Określ układ bazowy korpusu robota.
  3. Zmierz lub odczytaj z projektu mechanicznego orientację IMU względem korpusu.
  4. Wprowadź stałą transformację pomiędzy oboma układami.
  5. Ustaw robota w znanej orientacji i sprawdź kierunek wektora grawitacji.
  6. Wykonaj kontrolowane obroty osobno wokół osi roll, pitch i yaw.
  7. Sprawdź, czy główny sygnał pojawia się w odpowiednim kanale żyroskopu.
  8. Oceń, czy pozostałe kanały wskazują nadmierny ruch poprzeczny.
  9. W razie potrzeby wyznacz dokładniejszą macierz korekcji ustawienia.
  10. Zweryfikuj wynik podczas rzeczywistego ruchu robota.

Jak wykonuje się kalibrację temperaturową?

Kalibracja temperaturowa polega na obserwowaniu zachowania czujnika w wielu temperaturach i tworzeniu modelu opisującego zmianę biasu, czułości oraz innych parametrów.

IMU umieszcza się w kontrolowanym środowisku, a następnie stopniowo nagrzewa i chłodzi. W wybranych punktach temperatury zbierane są dane nieruchomego czujnika, a w bardziej rozbudowanej procedurze również pomiary wykonywane podczas znanych przyspieszeń i obrotów.

Na podstawie wyników można utworzyć tabelę, wielomian albo inny model korekcyjny. Podczas pracy sterownik odczytuje temperaturę wewnętrzną IMU i stosuje odpowiednie współczynniki.

Zaawansowane moduły mogą być indywidualnie charakteryzowane przez producenta w szerokim zakresie temperatur. Taka kalibracja zmniejsza nakład pracy integratora, ale nie usuwa potrzeby sprawdzenia całego systemu po montażu.

Jak sprawdzić, czy kalibracja jest poprawna?

Test Oczekiwany wynik Możliwy problem
Żyroskop podczas postoju Średnia każdej osi pozostaje blisko zera. Nieprawidłowy offset albo zmiana temperatury.
Akcelerometr podczas postoju Długość wektora wynosi około 1 g. Błąd skali, offset lub drgania.
Sześć położeń Oś pionowa wskazuje około ±1 g, a pozostałe osie około 0 g. Błąd skali, wzajemne mieszanie osi albo niedokładne ustawienie.
Kontrolowany obrót Całka żyroskopu odpowiada znanemu kątowi obrotu. Błąd skali, czasu albo nasycenie czujnika.
Powrót do pozycji początkowej Obliczona orientacja wraca w pobliże wartości początkowej. Dryft, niepoprawna fuzja albo błędna kolejność transformacji.
Test temperatury Offset pozostaje w dopuszczalnym zakresie podczas nagrzewania. Niewystarczająca kompensacja temperaturowa.
Test pracy napędów Drgania nie powodują dużego pozornego ruchu lub utraty stabilności. Nieprawidłowe mocowanie, aliasing albo zbyt szerokie pasmo.
Porównanie z referencją Orientacja i ruch są zgodne z kamerą, stołem obrotowym lub systemem motion capture. Błąd osi, czasu, skali lub algorytmu fuzji.

Weryfikacja powinna wykorzystywać dane inne niż te, na których wyznaczono współczynniki kalibracyjne. Jeżeli system zostanie oceniony wyłącznie w tych samych sześciu położeniach, może działać poprawnie w punktach kalibracyjnych, ale wykazywać większy błąd w orientacjach pośrednich.

Najbardziej wiarygodny test obejmuje rzeczywisty zakres ruchu, temperatury i drgań robota. Kalibracja wykonana na stole nie gwarantuje identycznych wyników po uruchomieniu wszystkich napędów.

Najczęstsze błędy podczas kalibracji IMU

  • Kalibrowanie czujnika przed ostatecznym zamontowaniem w robocie.
  • Zbieranie danych żyroskopu, gdy konstrukcja delikatnie drga albo się porusza.
  • Rozpoczynanie kalibracji bezpośrednio po uruchomieniu zimnego IMU.
  • Używanie pojedynczej próbki zamiast średniej z dłuższego pomiaru.
  • Niedokładne ustawienie osi podczas kalibracji sześciopołożeniowej.
  • Pomijanie błędów skali i wzajemnego ustawienia osi.
  • Mylenie układu czujnika z układem korpusu robota.
  • Stosowanie współczynników wyznaczonych dla innego egzemplarza IMU.
  • Ignorowanie wpływu temperatury i nagrzewania elektroniki.
  • Brak ponownej kalibracji po zmianie mocowania, płytki albo obudowy.
  • Kalibrowanie magnetometru przy wyłączonych napędach, gdy podczas pracy generują one silne pole.
  • Nieprawidłowe znaczniki czasu i brak synchronizacji z innymi czujnikami.
  • Brak oddzielnego zestawu danych do weryfikacji wyniku.

Nie wszystkie błędy można skorygować jednorazową procedurą. Niestabilność biasu, starzenie, naprężenia mechaniczne i dynamiczne zakłócenia mogą zmieniać się w czasie. Dlatego dokładny system łączy kalibrację początkową z bieżącą estymacją parametrów i korekcją pochodzącą z innych czujników.

Niektóre nowoczesne układy posiadają wbudowane mechanizmy samokalibracji żyroskopu. Przykładem jest funkcja Component Retrimming firmy Bosch, umożliwiająca korekcję czułości bez wymuszania ruchu obrotowego. Dostępność takiej funkcji zależy jednak od konkretnego modelu i nie zastępuje kalibracji ustawienia całego modułu w robocie.

Jak częstotliwość próbkowania i filtrowanie wpływają na dane IMU?

Częstotliwość próbkowania określa, jak często IMU wykonuje lub udostępnia nowe pomiary akcelerometru i żyroskopu. Parametr ten wpływa na zdolność wykrywania szybkich ruchów, dokładność całkowania, opóźnienie systemu, ilość przesyłanych danych oraz obciążenie procesora robota.

Zbyt niska częstotliwość może powodować pomijanie krótkich impulsów, zniekształcenie dynamicznych ruchów i błędy podczas całkowania prędkości kątowej. Samo ustawienie bardzo wysokiej częstotliwości również nie gwarantuje lepszych wyników. Zwiększa ilość danych, może ujawniać więcej drgań i szumu oraz wymaga odpowiedniego pasma interfejsu i wydajności oprogramowania.

Istotne jest również filtrowanie. Filtr dolnoprzepustowy ogranicza szybkie zmiany sygnału, które mogą wynikać z szumu, drgań silników i rezonansów konstrukcji. Zbyt silne filtrowanie może jednak opóźnić reakcję układu i usunąć rzeczywiste informacje o gwałtownym ruchu robota.

Częstotliwość próbkowania, pasmo filtra i dynamika systemu powinny być dobierane razem. Analog Devices wskazuje, że przy cyfrowych akcelerometrach należy uwzględniać zarówno pasmo filtrów, jak i ryzyko aliasingu sygnałów znajdujących się powyżej użytecznego zakresu częstotliwości.

Czym różnią się częstotliwość próbkowania, ODR i częstotliwość publikacji?

W dokumentacji IMU można spotkać kilka podobnie brzmiących parametrów. Nie zawsze opisują one dokładnie ten sam etap przetwarzania danych.

ODR, czyli Output Data Rate, określa częstotliwość, z jaką czujnik udostępnia kolejne wyniki pomiarowe. Wewnętrzne elementy pomiarowe, przetworniki i filtry mogą działać z inną częstotliwością niż końcowy strumień danych.

Sterownik robota może odczytywać próbki z częstotliwością równą ODR albo rzadziej. Następnie dane mogą być publikowane w ROS 2 z jeszcze inną częstotliwością. Jeżeli czujnik mierzy szybciej niż sterownik pobiera wyniki, potrzebny może być bufor FIFO, aby kolejne próbki nie zostały utracone.

Parametr Co oznacza? Dlaczego jest ważny?
Wewnętrzna częstotliwość pomiaru Częstotliwość pracy elementu pomiarowego, przetwornika i wewnętrznego toru cyfrowego. Może wpływać na sposób powstawania danych oraz działanie filtrów wewnętrznych.
ODR Częstotliwość, z jaką IMU udostępnia nową próbkę na wyjściu. Określa maksymalną częstość otrzymywania kolejnych wyników przez sterownik.
Częstotliwość odczytu Tempo, z jakim mikrokontroler lub komputer pobiera dane z czujnika. Zbyt wolny odczyt może powodować pomijanie próbek, jeżeli nie jest używany bufor FIFO.
Częstotliwość publikacji Tempo, z jakim sterownik przekazuje dane do pozostałych komponentów, na przykład przez ROS 2. Wpływa na płynność estymacji, transmisję sieciową i obciążenie węzłów odbierających.
Częstotliwość filtra Tempo wykonywania aktualizacji przez filtr orientacji, EKF albo inny estymator. Powinna być zgodna ze znacznikami czasu i dostępnością nowych pomiarów.
Częstotliwość sterowania Tempo aktualizacji regulatora równowagi, trajektorii albo napędów robota. Dane IMU powinny być dostarczane wystarczająco szybko i z przewidywalnym opóźnieniem.
Pasmo sygnału Zakres częstotliwości ruchu, który ma zostać zachowany w danych. Określa, jakie rzeczywiste ruchy i drgania są widoczne dla systemu.
Opóźnienie Czas od wystąpienia ruchu do udostępnienia przetworzonego wyniku. Zbyt duże opóźnienie może pogorszyć stabilizację i sterowanie dynamiczne.
Jitter czasowy Nieregularna zmiana odstępu pomiędzy kolejnymi próbkami lub publikacjami. Utrudnia poprawne całkowanie i synchronizację z innymi czujnikami.

Przykładowo IMU może generować dane z częstotliwością 800 Hz, sterownik odczytywać je pakietami z bufora FIFO, a do wybranego komponentu publikować przetworzony wynik z częstotliwością 200 Hz. Nie oznacza to automatycznie, że pozostałe próbki zostały utracone — mogą zostać wcześniej wykorzystane przez filtr albo przesłane w grupach.

Nie należy jednak tworzyć sztucznie nowych informacji przez wielokrotne publikowanie tej samej próbki. Jeżeli temat ROS 2 jest publikowany częściej niż pojawiają się rzeczywiste dane z czujnika, odbiornik powinien wiedzieć, że kolejne wiadomości mogą zawierać powtórzoną wartość.

Współczesne IMU udostępniają wybieralne wartości ODR, filtry i bufory danych. Przykładowa dokumentacja Bosch opisuje osobny wybór częstotliwości wyjściowej i pasma filtracji akcelerometru oraz żyroskopu.

Jak dobrać częstotliwość próbkowania IMU?

Częstotliwość próbkowania powinna być wyższa niż częstotliwość najszybszego ruchu, który system musi prawidłowo odwzorować. Zgodnie z kryterium Nyquista sygnał należy próbkować z częstotliwością większą niż dwukrotność najwyższej istotnej częstotliwości.

Jest to jednak warunek teoretyczny, a nie gotowa wartość projektowa. Rzeczywiste filtry nie odcinają wszystkich sygnałów dokładnie w jednym punkcie, dlatego w praktyce potrzebny jest dodatkowy zapas oraz odpowiedni filtr antyaliasingowy. Analog Devices wskazuje, że pasmo powinno być ograniczone w stosunku do ODR, aby sygnały znajdujące się powyżej połowy częstotliwości próbkowania nie zostały błędnie odwzorowane.

  1. Określ najszybszy rzeczywisty ruch, który musi zostać rozpoznany przez system.
  2. Uwzględnij częstotliwość regulatora równowagi, napędów i planowania ruchu.
  3. Sprawdź częstotliwości drgań wytwarzanych przez silniki, przekładnie, śmigła i konstrukcję.
  4. Ustal wymagane pasmo użytecznego sygnału akcelerometru i żyroskopu.
  5. Dobierz ODR wyraźnie wyższy niż dwukrotność najwyższej zachowywanej częstotliwości.
  6. Ustaw filtr antyaliasingowy odpowiednio poniżej połowy ODR.
  7. Sprawdź, czy interfejs komunikacyjny może przesłać wszystkie próbki bez opóźnień i utraty danych.
  8. Uwzględnij jednoczesną transmisję akcelerometru, żyroskopu, temperatury i znaczników czasu.
  9. Sprawdź, czy komputer robota może przetwarzać dane z wybraną częstotliwością.
  10. Zweryfikuj opóźnienie wprowadzane przez filtry i buforowanie.
  11. Wykonaj test dynamiczny z rzeczywistymi ruchami robota.
  12. Porównaj ustawienia pod względem szumu, opóźnienia i stabilności całego układu sterowania.

Dobór nie powinien opierać się wyłącznie na zasadzie „im szybciej, tym lepiej”. Zwiększenie ODR może poprawić odwzorowanie szybkich ruchów, ale jednocześnie zwiększa liczbę próbek szumu, obciążenie magistrali oraz zapotrzebowanie na moc obliczeniową.

Bardzo wysoka częstotliwość ma sens wtedy, gdy robot rzeczywiście wykonuje szybkie ruchy albo system sterowania wymaga krótkiego czasu reakcji. W wolniejszej platformie mobilnej część takiego pasma może przedstawiać głównie drgania konstrukcji, a nie użyteczny ruch korpusu.

Czym jest pasmo przenoszenia IMU?

Pasmo przenoszenia określa zakres częstotliwości ruchu, który czujnik i jego tor przetwarzania mogą odwzorować z określoną dokładnością. Nie jest ono tym samym co częstotliwość publikowania danych.

Czujnik może udostępniać próbki z wysokim ODR, ale wcześniej ograniczać ich pasmo za pomocą filtra dolnoprzepustowego. W takim przypadku kolejne próbki pojawiają się często, lecz nie zawierają pełnej informacji o zmianach znajdujących się powyżej częstotliwości odcięcia filtra.

Ograniczenie pasma zmniejsza ilość wysokoczęstotliwościowego szumu, ale jednocześnie usuwa szybkie zmiany sygnału. Wybór powinien więc odpowiadać ruchom ważnym dla sterowania robota.

Ustawienie pasma Najważniejsza zaleta Możliwe ograniczenie Przykładowa sytuacja
Wąskie pasmo Mniejszy poziom szumu i ograniczony wpływ szybkich drgań. Wolniejsza odpowiedź oraz możliwość usunięcia rzeczywistych ruchów dynamicznych. Powolne określanie przechylenia nieruchomej platformy.
Średnie pasmo Kompromis pomiędzy szybkością reakcji i poziomem szumu. Może nadal przepuszczać część drgań albo tłumić najszybsze ruchy. Robot mobilny poruszający się po typowym podłożu.
Szerokie pasmo Rejestruje gwałtowne ruchy, uderzenia i szybkie obroty. Więcej szumu, drgań i większe wymagania dla dalszego przetwarzania. Dron, robot czworonożny albo dynamicznie poruszający się humanoid.
Pasmo niedopasowane do ODR Brak rzeczywistej zalety systemowej. Ryzyko aliasingu częstotliwości, których nie można poprawnie przedstawić przy wybranym ODR. Silne drgania silnika powyżej połowy częstotliwości próbkowania.

Zmniejszenie pasma może obniżyć całkowity szum widoczny w danych. Nie oznacza to jednak, że sam czujnik stał się dokładniejszy w każdym rodzaju ruchu. Szybka reakcja na uderzenie lub zmianę orientacji może zostać osłabiona i rozciągnięta w czasie.

Producenci niektórych IMU pozwalają wybierać osobno ODR i parametry cyfrowego filtra dolnoprzepustowego. Dokumentacja Bosch BMI088 opisuje możliwość wyboru częstotliwości danych i pasma filtra dla toru prędkości kątowej.

Czym jest aliasing w pomiarach IMU?

Aliasing powstaje wtedy, gdy sygnał zmienia się szybciej, niż pozwala na to częstotliwość próbkowania. Wysokoczęstotliwościowe drganie może zostać błędnie zarejestrowane jako wolniejsza zmiana, której w rzeczywistości nie było.

Problem jest szczególnie istotny w robotach, ponieważ silniki, przekładnie, śmigła i drgające elementy konstrukcji mogą generować częstotliwości znacznie wyższe niż właściwy ruch korpusu. Po wystąpieniu aliasingu późniejsze filtrowanie cyfrowe może nie odróżnić fałszywego sygnału od prawdziwego ruchu w paśmie użytecznym.

Dlatego filtr antyaliasingowy powinien ograniczyć pasmo przed ostatecznym zmniejszeniem częstotliwości próbek. Sam filtr zastosowany już po zarejestrowaniu zafałszowanego sygnału nie odtworzy utraconej informacji. Analog Devices zwraca uwagę, że cyfrowe akcelerometry mogą odwzorować wysokoczęstotliwościowe składowe w niższym paśmie, jeżeli tor pomiarowy i ODR nie zostały odpowiednio dobrane.

  • Drganie silnika może pojawić się w danych jako znacznie wolniejszy fałszywy ruch.
  • Zmniejszenie częstotliwości publikacji bez wcześniejszego filtrowania może powodować aliasing.
  • Wybranie wysokiego ODR nie pomaga, jeżeli późniejszy etap pomija próbki bez odpowiedniego filtra.
  • Filtr cyfrowy zastosowany po powstaniu aliasingu nie może odzyskać oryginalnej częstotliwości.
  • Źródła drgań mogą zmieniać częstotliwość wraz z prędkością silnika i obciążeniem robota.
  • Aliasing może przypominać rzeczywiste przechylenie, obrót albo oscylację regulatora.
  • Problem należy oceniać na danych zebranych przy pracujących napędach, a nie wyłącznie na nieruchomym stole.

Jak działają filtry stosowane w IMU?

Filtr zmienia udział poszczególnych częstotliwości w sygnale. W IMU najczęściej stosuje się filtr dolnoprzepustowy, który zachowuje wolniejsze zmiany i tłumi składowe znajdujące się powyżej wybranego zakresu.

Filtrowanie może być wykonywane wewnątrz układu scalonego, w sterowniku, w filtrze orientacji albo w kolejnym komponencie systemu robotycznego. Wielokrotne filtrowanie tych samych danych może niepotrzebnie zwiększać opóźnienie, dlatego trzeba znać cały tor przetwarzania.

Rodzaj przetwarzania Działanie Przykładowe zastosowanie Możliwe ograniczenie
Filtr dolnoprzepustowy Przepuszcza wolniejsze zmiany i tłumi wysokie częstotliwości. Ograniczanie szumu oraz drgań silników i konstrukcji. Wprowadza opóźnienie i może tłumić szybkie rzeczywiste ruchy.
Filtr górnoprzepustowy Usuwa składowe stałe i bardzo wolne zmiany. Wydzielanie drgań, uderzeń albo dynamicznej części przyspieszenia. Usuwa informację o grawitacji i długoterminowym przechyleniu.
Filtr pasmowoprzepustowy Zachowuje wybrany zakres częstotliwości. Analiza konkretnego pasma drgań lub rezonansu. Nie nadaje się jako uniwersalny filtr danych do estymacji orientacji.
Filtr zaporowy Tłumi wąski zakres częstotliwości. Ograniczanie znanej częstotliwości silnika albo rezonansu konstrukcji. Źródło zakłócenia może zmieniać częstotliwość wraz z prędkością napędu.
Średnia ruchoma Uśrednia określoną liczbę kolejnych próbek. Proste wygładzanie zaszumionych danych. Może powodować zauważalne opóźnienie i rozmycie krótkich impulsów.
Filtr medianowy Zastępuje próbkę medianą z lokalnego zestawu wartości. Usuwanie pojedynczych impulsów i wartości odstających. Może zniekształcać szybki rzeczywisty ruch oraz wymaga buforowania.
Filtr antyaliasingowy Ogranicza pasmo przed zmniejszeniem częstotliwości próbkowania. Zapobieganie odwzorowaniu wysokich częstotliwości jako fałszywych wolnych sygnałów. Musi działać przed etapem, na którym częstotliwość zostaje zmniejszona.
Decymacja Zmniejsza liczbę próbek po wcześniejszym ograniczeniu pasma. Redukcja przepływu danych przy zachowaniu informacji z użytecznego zakresu. Pomijanie próbek bez filtracji może powodować aliasing.
Filtr adaptacyjny Zmienia parametry zależnie od aktualnego ruchu i jakości sygnału. Inne traktowanie postoju, szybkiego ruchu i intensywnych drgań. Większa złożoność oraz ryzyko niewłaściwego przełączania parametrów.

Dlaczego zbyt silne filtrowanie może pogorszyć działanie robota?

Wygładzony wykres nie zawsze oznacza lepszy pomiar. Filtr może wyglądać korzystnie podczas obserwacji danych, ale jednocześnie opóźniać informację potrzebną regulatorowi.

Robot utrzymujący równowagę musi bardzo szybko wykryć początek przechylenia. Jeżeli filtr zbyt mocno wygładzi sygnał żyroskopu, sterownik otrzyma informację dopiero wtedy, gdy korpus zdąży wykonać większy ruch.

Opóźnienie jest szczególnie ważne w pętli sprzężenia zwrotnego. Regulator oblicza korekcję na podstawie stanu, który może już nie odpowiadać aktualnej pozycji robota. Nadmierne opóźnienie może powodować oscylacje, pogorszenie stabilności albo upadek platformy.

  • Opóźnione wykrycie przechylenia korpusu robota.
  • Zbyt wolna reakcja regulatora równowagi.
  • Wygładzenie rzeczywistego uderzenia albo krótkiego impulsu.
  • Niedoszacowanie maksymalnej prędkości kątowej.
  • Zmiana fazy sygnału względem danych z enkoderów, kamery lub LiDAR-u.
  • Pozorne rozbieżności czasowe pomiędzy czujnikami.
  • Oscylacje układu sterowania wynikające z opóźnionej korekcji.
  • Utrata informacji potrzebnej do wykrywania poślizgu, kontaktu lub kolizji.

Parametry filtra należy oceniać na podstawie zachowania całego robota, a nie tylko wyglądu wykresu. Właściwym wynikiem jest stabilne sterowanie, prawidłowe odwzorowanie ruchu i akceptowalny poziom szumu przy możliwie małym opóźnieniu.

Filtry o ostrzejszym odcięciu mogą skuteczniej tłumić częstotliwości poza pasmem, ale często wymagają większej złożoności i mogą wprowadzać większe opóźnienie lub zmianę fazy. Dobór zależy od konkretnej architektury czujnika i układu sterowania.

Jak bufor FIFO pomaga w obsłudze szybkich danych?

Bufor FIFO przechowuje kolejne próbki wewnątrz czujnika do momentu ich odczytania przez procesor. Dzięki temu sterownik nie musi wykonywać osobnej operacji komunikacyjnej dokładnie przy każdej nowej próbce.

Procesor może odczytywać większy pakiet danych jednocześnie, co zmniejsza narzut komunikacyjny i ryzyko utraty próbek podczas chwilowego obciążenia systemu. Rozwiązanie jest szczególnie przydatne przy wysokim ODR oraz podczas korzystania z wolniejszej magistrali.

Buforowanie nie zwalnia jednak z konieczności prawidłowego przypisania czasu do poszczególnych próbek. Wszystkie pomiary odczytane w jednym pakiecie nie zostały wykonane w tej samej chwili. Sterownik powinien wykorzystać znaczniki czasu czujnika albo odtworzyć czas kolejnych próbek na podstawie znanego ODR.

Przepełnienie FIFO oznacza, że najstarsze lub najnowsze dane mogą zostać utracone, zależnie od konfiguracji urządzenia. System powinien monitorować stan bufora i wykrywać takie zdarzenia.

Jak częstotliwość IMU wpływa na fuzję sensorów?

IMU często działa znacznie szybciej niż kamera, LiDAR albo GNSS. Filtr może wykorzystywać każdą nową próbkę żyroskopu i akcelerometru do przewidywania ruchu, a wolniejsze czujniki stosować tylko podczas korekcji.

Przykładowo pomiędzy dwoma kolejnymi obrazami kamery może pojawić się wiele próbek IMU. Pozwalają one oszacować obrót i przyspieszenie w czasie, w którym kamera nie dostarczyła jeszcze nowego wyniku.

Warunkiem jest poprawna synchronizacja. Filtr musi wiedzieć, które próbki IMU odpowiadają przedziałowi czasu pomiędzy konkretnymi obrazami albo skanami. Błąd znacznika czasu może zostać błędnie zinterpretowany jako błąd ruchu lub kalibracji.

Nie wszystkie komponenty muszą pracować z jednakową częstotliwością. Powinny jednak korzystać ze spójnego czasu, prawidłowych transformacji i danych o znanej kolejności. Stabilna częstotliwość oraz niewielki jitter są często ważniejsze niż sama wysoka wartość ODR.

Jak praktycznie sprawdzić ustawienia próbkowania i filtrów?

  1. Zarejestruj surowe dane z najwyższym praktycznym ODR dostępnym dla systemu.
  2. Wykonaj pomiar podczas postoju oraz przy wyłączonych napędach.
  3. Uruchamiaj kolejno silniki, przekładnie i pozostałe źródła drgań.
  4. Zarejestruj dane przy różnych prędkościach i obciążeniach napędów.
  5. Przeanalizuj widmo częstotliwościowe akcelerometru i żyroskopu.
  6. Rozpoznaj pasmo właściwego ruchu oraz częstotliwości zakłóceń.
  7. Ustaw filtr antyaliasingowy przed zmniejszeniem częstotliwości danych.
  8. Porównaj kilka wartości pasma filtra dolnoprzepustowego.
  9. Zmierz opóźnienie pomiędzy rzeczywistym ruchem i przefiltrowanym sygnałem.
  10. Sprawdź częstotliwość oraz regularność znaczników czasu publikowanych wiadomości.
  11. Monitoruj utratę próbek i przepełnienie bufora FIFO.
  12. Porównaj orientację z niezależnym czujnikiem lub systemem referencyjnym.
  13. Wykonaj test całej pętli sterowania, a nie tylko analizę zapisanych danych.
  14. Wybierz ustawienie zapewniające akceptowalny szum bez nadmiernego opóźnienia.

Przydatne jest zapisanie danych przed i po każdym etapie filtracji. Pozwala to ustalić, czy szum został ograniczony przez filtr sprzętowy w IMU, sterownik, filtr orientacji czy kolejny komponent oprogramowania.

Należy również sprawdzić, czy częstotliwość raportowana przez system odpowiada rzeczywistości. Sam parametr konfiguracyjny nie gwarantuje, że wszystkie próbki docierają na czas. Obciążenie procesora, magistrali, sieci lub systemu operacyjnego może powodować nieregularną publikację i utratę danych.

Wybór ODR, pasma i filtrów powinien zostać potwierdzony podczas najbardziej dynamicznego zadania przewidzianego dla robota. Ustawienia poprawne podczas wolnego przejazdu mogą okazać się niewystarczające podczas biegu, skoku, gwałtownego hamowania albo szybkiego ruchu manipulatora.

Jak IMU współpracuje z ROS 2?

W systemie ROS 2 moduł IMU jest zazwyczaj obsługiwany przez sterownik sprzętowy działający jako osobny węzeł. Sterownik odczytuje dane z czujnika, przelicza je do jednostek wymaganych przez ROS 2, przypisuje znacznik czasu i układ współrzędnych, a następnie publikuje wiadomości na odpowiednich tematach.

Pozostałe komponenty robota nie muszą znać sposobu komunikacji z konkretnym układem scalonym. Filtr orientacji, system lokalizacji, sterownik równowagi albo algorytm SLAM subskrybuje standardową wiadomość sensor_msgs/msg/Imu, niezależnie od tego, czy czujnik wykorzystuje magistralę SPI, I²C, UART, CAN czy USB.

Standardowa wiadomość IMU może zawierać orientację zapisaną jako kwaternion, prędkość kątową, przyspieszenie liniowe oraz osobne macierze kowariancji. Magnetometr jest publikowany oddzielnie za pomocą wiadomości sensor_msgs/msg/MagneticField.

Wytyczne REP-145 definiują wspólne konwencje dotyczące tematów, jednostek, układów współrzędnych i sposobu oznaczania dostępności danych IMU. Dzięki temu jeden sterownik może współpracować z wieloma filtrami i systemami robotycznymi bez tworzenia niestandardowego formatu danych. REP-145 pozostaje dokumentem o statusie Draft, ale jest szeroko wykorzystywany jako praktyczna konwencja integracyjna.

Jak IMU współpracuje z ROS 2

Jak wygląda przepływ danych IMU w ROS 2?

  1. Akcelerometr, żyroskop i opcjonalny magnetometr wykonują pomiary ruchu.
  2. Elektronika IMU filtruje i zapisuje kolejne próbki w rejestrach albo buforze FIFO.
  3. Sterownik sprzętowy odczytuje dane przez SPI, I²C, UART, CAN, USB lub inny interfejs.
  4. Surowe wartości cyfrowe są przeliczane na jednostki fizyczne wymagane przez ROS 2.
  5. Do pomiaru przypisywany jest znacznik czasu oraz identyfikator układu współrzędnych.
  6. Sterownik tworzy wiadomość sensor_msgs/msg/Imu.
  7. Dane surowe mogą zostać opublikowane na temacie imu/data_raw.
  8. Filtr orientacji łączy akcelerometr i żyroskop, a opcjonalnie również magnetometr.
  9. Obliczona orientacja może zostać opublikowana na temacie imu/data.
  10. Magnetometr jest publikowany osobno jako sensor_msgs/msg/MagneticField.
  11. Biblioteka tf2 opisuje położenie i orientację IMU względem korpusu robota.
  12. System lokalizacji, SLAM albo sterowania wykorzystuje dane do estymacji stanu robota.

Sterownik urządzenia powinien przede wszystkim udostępniać poprawnie opisane dane pomiarowe. Bardziej złożone operacje, takie jak fuzja z kamerą, LiDAR-em lub odometrią, są zazwyczaj wykonywane przez osobne węzły.

Taki podział ułatwia wymianę czujnika. Jeżeli nowy sterownik publikuje zgodne wiadomości, prawidłowe jednostki, znaczniki czasu i układy współrzędnych, pozostała część systemu może działać bez większych zmian.

Co zawiera wiadomość sensor_msgs/msg/Imu?

sensor_msgs/msg/Imu jest podstawowym formatem służącym do przesyłania danych inercyjnych w ROS 2. Wiadomość zawiera nagłówek, trzy grupy danych pomiarowych oraz trzy odpowiadające im macierze kowariancji.

Przyspieszenie musi być podawane w m/s², a prędkość kątowa w rad/s. Orientacja jest zapisywana jako kwaternion. Oficjalna definicja wiadomości przewiduje również szczególny sposób oznaczania danych niedostępnych oraz pomiarów o nieznanej kowariancji.

Pole wiadomości Zawartość Jednostka lub format Znaczenie w systemie robota
header.stamp Znacznik czasu przypisany do pomiaru. Sekundy i nanosekundy. Umożliwia całkowanie danych i synchronizację z kamerą, LiDAR-em oraz enkoderami.
header.frame_id Nazwa układu współrzędnych, w którym wyrażono dane. Łańcuch znaków, na przykład imu_link. Łączy pomiar z drzewem transformacji tf2.
orientation Oszacowana orientacja układu czujnika względem przyjętego układu świata. Kwaternion x, y, z, w. Może zostać wykorzystana przez sterowanie, lokalizację i wizualizację.
orientation_covariance Niepewność oszacowanej orientacji. Macierz 3 × 3 zapisana w kolejności wierszowej. Informuje filtr, jak silnie powinien ufać podanej orientacji.
angular_velocity Prędkość kątowa wokół osi X, Y i Z. rad/s. Służy do szybkiego śledzenia zmian orientacji.
angular_velocity_covariance Niepewność pomiarów prędkości kątowej. Macierz 3 × 3. Określa poziom zaufania do poszczególnych osi żyroskopu.
linear_acceleration Składowe przyspieszenia właściwego mierzonego przez akcelerometr. m/s². Pomagają wyznaczać kierunek grawitacji i dynamiczny ruch robota.
linear_acceleration_covariance Niepewność pomiarów akcelerometru. Macierz 3 × 3. Wpływa na sposób wykorzystania przyspieszeń przez filtr estymacji.

Macierz orientation_covariance nie opisuje bezpośrednio niepewności czterech składowych kwaternionu. Jest to macierz 3 × 3 odnosząca się do małych błędów orientacji wokół osi X, Y i Z.

Wartości kowariancji są zapisywane w kolejności wierszowej. Elementy znajdujące się na głównej przekątnej reprezentują wariancje poszczególnych osi, natomiast pozostałe elementy mogą opisywać zależności pomiędzy błędami osi.

Pole nazwane linear_acceleration zawiera wynik akcelerometru. Zgodnie z REP-145 nieruchomy czujnik z osią Z skierowaną do góry powinien wskazywać w tej osi około +9,81 m/s². Wartość nie oznacza wtedy ruchu robota do góry, lecz przyspieszenie właściwe wynikające z podparcia względem grawitacji.

Jakie tematy IMU zaleca konwencja REP-145?

Temat Typ wiadomości Zawartość Typowe zastosowanie
imu/data_raw sensor_msgs/msg/Imu Przyspieszenie i prędkość kątowa bez gotowej estymacji orientacji. Dane wejściowe do zewnętrznego filtra orientacji albo systemu SLAM.
imu/data sensor_msgs/msg/Imu Przyspieszenie, prędkość kątowa oraz obliczony kwaternion orientacji. Sterowanie, diagnostyka, wizualizacja i dalsza fuzja danych.
imu/mag sensor_msgs/msg/MagneticField Trójosiowy wektor pola magnetycznego. Filtr 9-osiowy, elektroniczny kompas i korekcja yaw.

Temat imu/data_raw powinien zawierać dane akcelerometru i żyroskopu. Jeżeli sterownik nie udostępnia orientacji, pierwsza wartość tablicy orientation_covariance powinna wynosić −1. Informuje to odbiornik, że pole orientation nie zawiera użytecznego oszacowania.

Temat imu/data może być publikowany bezpośrednio przez urządzenie posiadające własny algorytm fuzji albo przez osobny węzeł, na przykład filtr komplementarny lub filtr Madgwicka.

Magnetometr nie jest umieszczany w wiadomości Imu. REP-145 przewiduje dla niego osobny temat imu/mag wykorzystujący wiadomość MagneticField.

Jak ROS 2 oznacza dane niedostępne i nieznaną kowariancję?

Zerowa macierz kowariancji i wartość −1 w jej pierwszym elemencie mają odmienne znaczenie. Nie należy używać ich zamiennie.

Jeżeli pomiar jest dostępny, ale jego kowariancja nie została określona, wszystkie elementy odpowiedniej macierzy mogą pozostać równe zero. Odbiornik powinien wtedy uznać kowariancję za nieznaną i przyjąć ją z konfiguracji albo innego źródła.

Jeżeli konkretnego rodzaju danych w ogóle nie ma, pierwszy element odpowiadającej macierzy należy ustawić na −1. Odbiornik powinien wtedy całkowicie zignorować powiązane pole. Taki mechanizm jest zapisany zarówno w definicji wiadomości Imu, jak i w REP-145.

Wartość macierzy Znaczenie Postępowanie odbiornika
Realistyczne wartości dodatnie Kowariancja pomiaru została określona. Wykorzystać ją do ustalenia wagi danych w filtrze.
Wszystkie elementy równe 0 Pomiar jest dostępny, ale jego kowariancja jest nieznana. Przyjąć wartości z konfiguracji albo innego wiarygodnego źródła.
Pierwszy element równy −1 Dany rodzaj pomiaru nie jest dostarczany. Zignorować odpowiadające mu pole wiadomości.

Ustawienie wszystkich wariancji na bardzo małe wartości tylko po to, aby filtr zaakceptował dane, jest błędem. Oznaczałoby to, że system powinien niemal bezwarunkowo ufać IMU.

Kowariancja powinna wynikać z dokumentacji, testów nieruchomego czujnika i obserwacji w rzeczywistych warunkach pracy. Drgania robota mogą powodować, że praktyczna niepewność będzie znacznie większa niż wartość zmierzona na stabilnym stole.

Jakie jednostki i kierunki osi obowiązują w ROS 2?

Dane publikowane przez sterownik powinny wykorzystywać prawoskrętny układ współrzędnych oraz jednostki układu SI. Sterownik nie powinien przekazywać wartości w g, stopniach na sekundę ani mikroteslach bez odpowiedniego przeliczenia.

REP-145 wymaga podawania przyspieszenia w m/s², prędkości kątowej w rad/s, a pola magnetycznego w teslach. Wszystkie dane powinny zostać wyrażone w jednym, spójnym układzie czujnika.

Wielkość Jednostka w ROS 2 Częsty format urządzenia Wymagana operacja
Przyspieszenie m/s² g albo surowe jednostki cyfrowe. Przeliczyć z użyciem czułości i wartości przyspieszenia ziemskiego.
Prędkość kątowa rad/s °/s, dps albo surowe jednostki cyfrowe. Przeliczyć stopnie na radiany i zastosować współczynnik skali.
Pole magnetyczne T µT, gauss albo surowe jednostki cyfrowe. Przeliczyć na tesle i zastosować kalibrację magnetometru.
Orientacja Kwaternion bez jednostki. Kąty Eulera, macierz obrotu albo kwaternion w innej konwencji. Przeliczyć do prawidłowo znormalizowanego kwaternionu ROS.
Kowariancja orientacji rad² Dokładność podana w stopniach albo brak danych. Przeliczyć odchylenie na radiany, a następnie podnieść do kwadratu.

Jeżeli producent podaje szum albo odchylenie standardowe, nie należy wpisywać tej wartości bezpośrednio jako wariancji. Elementy na przekątnej macierzy kowariancji powinny zawierać kwadrat odchylenia standardowego.

Sterownik musi również uwzględniać znaki osi. Wiele urządzeń wykorzystuje konwencję NED: X na północ, Y na wschód, Z w dół. Typowa konwencja ROS jest prawoskrętna i często wykorzystuje układ ENU, w którym Z jest skierowane do góry.

REP-145 zaleca, aby standardowy identyfikator ramy IMU miał nazwę imu_link. Dla urządzenia pozostawionego świadomie w konwencji NED sugerowana jest nazwa imu_link_ned, dzięki czemu odmienna konwencja jest widoczna dla integratora.

Jaką rolę pełnią frame_id i tf2?

Pole header.frame_id wskazuje układ współrzędnych, w którym wyrażone są dane wiadomości. Dla IMU będzie to najczęściej imu_link.

Układ imu_link powinien odpowiadać rzeczywistemu położeniu i orientacji osi czujnika. Jeżeli moduł jest zamontowany 10 cm przed środkiem korpusu i obrócony o 90°, relacja ta powinna zostać opisana w drzewie transformacji tf2.

Stała transformacja pomiędzy base_link i imu_link opisuje miejsce montażu czujnika. Biblioteka tf2 przechowuje relacje pomiędzy układami współrzędnych i pozwala przeliczać dane do układu wymaganego przez konkretny komponent. Statyczne transformacje są publikowane dla relacji, które nie zmieniają się podczas pracy robota.

Układ Co reprezentuje? Relacja z IMU
imu_link Układ osi fizycznego modułu IMU. W tym układzie powinny być wyrażone dane publikowane przez sterownik.
base_link Główny układ korpusu robota. Transformacja do imu_link opisuje położenie i obrót czujnika w konstrukcji.
odom Lokalny, ciągły układ odometrii. Estymator może określać orientację robota w tym układzie na podstawie IMU i odometrii.
map Globalny układ mapy lub lokalizacji. SLAM albo lokalizacja może korygować długoterminowy dryft orientacji względem mapy.
imu_link_ned Układ IMU wykorzystujący odniesienie NED. Nazwa sygnalizuje odmienną konwencję osi i świata.

Samo wpisanie frame_id: base_link nie przelicza danych z osi czujnika do osi korpusu. Jeżeli IMU jest fizycznie obrócone, wartości wektorów muszą zostać odpowiednio transformowane albo wiadomość powinna wskazywać rzeczywisty układ imu_link.

Nieprawidłowy frame_id jest szczególnie niebezpieczny, ponieważ dane mogą wyglądać liczbowo poprawnie, ale zostaną zinterpretowane w złych kierunkach. Obrót wokół osi X czujnika może zostać omyłkowo uznany za obrót wokół osi Z robota.

REP-145 wskazuje, że frame_id wiadomości reprezentuje układ czujnika, natomiast konfiguracja tego układu względem base_link opisuje pozycję i orientację montażową IMU.

Orientacja IMU a układ świata w ROS 2

Kwaternion zawarty w polu orientation opisuje orientację układu czujnika względem układu świata przyjętego przez urządzenie lub filtr. Sam układ świata nie musi być osobnym elementem drzewa tf2.

Jeżeli IMU wykorzystuje akcelerometr, może wyrównać świat względem grawitacji w roll i pitch. Jeżeli dodatkowo wykorzystuje poprawnie skalibrowany magnetometr, może odnieść yaw do lokalnego kierunku magnetycznego.

W systemie pozbawionym bezwzględnego odniesienia yaw początkowy kierunek wokół osi Z może być arbitralny. Po uruchomieniu aktualna orientacja zostaje przyjęta jako kierunek początkowy, a następnie zmienia się na podstawie żyroskopu.

Jeżeli urządzenie nie posiada również odniesienia grawitacyjnego, cały układ świata może zostać związany z orientacją czujnika w chwili uruchomienia. Takie przypadki zostały rozróżnione w konwencji REP-145.

Jak magnetometr jest przesyłany w ROS 2?

Pomiar magnetometru jest przesyłany za pomocą wiadomości sensor_msgs/msg/MagneticField. Wiadomość zawiera nagłówek, trójosiowy wektor pola magnetycznego oraz macierz kowariancji 3 × 3.

Wartości pola powinny być podawane w teslach. Jeżeli dokumentacja czujnika podaje wyniki w mikroteslach, należy je podzielić przez milion. Przykładowo 50 µT odpowiada 0,00005 T.

Podobnie jak w wiadomości Imu, macierz wypełniona zerami oznacza nieznaną kowariancję. Jeżeli znane są jedynie wariancje poszczególnych osi, można umieścić je na głównej przekątnej macierzy.

Pole Zawartość Jednostka
header.stamp Znacznik czasu pomiaru magnetometru. Czas ROS 2.
header.frame_id Układ współrzędnych magnetometru. Na przykład imu_link.
magnetic_field.x Składowa pola w osi X. T.
magnetic_field.y Składowa pola w osi Y. T.
magnetic_field.z Składowa pola w osi Z. T.
magnetic_field_covariance Niepewność i zależności pomiędzy osiami. T².

Jeżeli magnetometr znajduje się w innym miejscu albo ma inne osie niż akcelerometr i żyroskop, jego wiadomość powinna wskazywać właściwy frame_id. Transformacja pomiędzy układami musi być znana przed połączeniem pomiarów.

Filtr nie powinien zakładać, że wszystkie wiadomości rozpoczynające się od imu/ automatycznie dotyczą tego samego fizycznego układu współrzędnych.

Jak profil QoS wpływa na transmisję danych IMU?

IMU może publikować setki lub tysiące wiadomości na sekundę. W ROS 2 sposób dostarczania danych jest kontrolowany przez ustawienia QoS, czyli Quality of Service.

Typowy profil SensorDataQoS wykorzystuje historię Keep Last, głębokość 5, niezawodność Best Effort i trwałość Volatile. Jego celem jest ograniczenie opóźnienia strumieni czujnikowych — nowa próbka jest zwykle ważniejsza niż retransmisja starej.

Ustawienie QoS Znaczenie Wpływ na dane IMU
Best Effort System nie gwarantuje retransmisji każdej utraconej wiadomości. Zmniejsza ryzyko opóźnienia spowodowanego oczekiwaniem na starsze próbki.
Reliable Middleware próbuje niezawodnie dostarczać wiadomości. Może być przydatne podczas rejestracji, ale przy problemach z transmisją może zwiększać kolejki i opóźnienie.
Keep Last Przechowywana jest ograniczona liczba najnowszych wiadomości. Zapobiega nieograniczonemu wzrostowi kolejki przy wolnym odbiorniku.
Depth Liczba wiadomości przechowywanych w historii. Zbyt mała wartość może powodować utratę próbek, a zbyt duża zwiększać opóźnienie zaległych danych.
Volatile Nowy subskrybent otrzymuje dopiero wiadomości opublikowane po połączeniu. Odpowiada ciągłemu strumieniowi aktualnych pomiarów.
Transient Local Wydawca przechowuje historię dla później dołączających odbiorników. Zwykle nie jest potrzebne dla szybkozmiennych danych IMU.

Profil wydawcy i subskrybenta musi być kompatybilny. Niewłaściwa konfiguracja QoS może spowodować, że węzły będą widoczne w systemie, ale subskrybent nie otrzyma wiadomości.

Nie każdy sterownik wykorzystuje profil SensorDataQoS. Ustawienia należy sprawdzić za pomocą informacji o temacie i dokumentacji konkretnego pakietu.

W systemach lokalizacji inercyjnej utrata lub zmiana kolejności próbek może pogorszyć całkowanie danych. Dlatego trzeba monitorować zarówno QoS, jak i znaczniki czasu, częstotliwość wiadomości oraz numerację próbek, jeżeli urządzenie ją udostępnia.

Jak sprawdzić dane IMU za pomocą poleceń ROS 2?

Narzędzia wiersza poleceń ROS 2 pozwalają sprawdzić strukturę wiadomości, częstotliwość publikacji, ustawienia QoS, układy współrzędnych oraz rzeczywiste wartości czujnika. Dane można również zapisać do pliku rosbag2 i przeanalizować później. Oficjalna dokumentacja ROS 2 opisuje ros2 bag jako narzędzie przeznaczone do rejestrowania wiadomości publikowanych na tematach.

Tworzenie własnych węzłów, odbieranie wiadomości z czujników oraz zapisywanie i przetwarzanie danych można realizować również w Pythonie. Podstawy takiej pracy opisaliśmy w poradniku „Programowanie robotów w Pythonie – od czego zacząć?”.

Wyświetlenie tematów wraz z typami wiadomości ros2 topic list -t

Pozwala sprawdzić, czy sterownik publikuje tematy IMU i jakich interfejsów używa.

Wyświetlenie definicji wiadomości IMU ros2 interface show sensor_msgs/msg/Imu

Pokazuje wszystkie pola wiadomości, w tym orientację, prędkość kątową, przyspieszenie i kowariancje.

Podgląd publikowanych wartości ros2 topic echo /imu/data_raw

Umożliwia sprawdzenie jednostek, znaków osi, frame_id, znacznika czasu i wartości pomiarowych.

Pomiar rzeczywistej częstotliwości wiadomości ros2 topic hz /imu/data_raw

Pokazuje średnią częstotliwość oraz zmienność odstępów pomiędzy wiadomościami.

Sprawdzenie wydawców, subskrybentów i QoS ros2 topic info /imu/data_raw --verbose

Pomaga rozpoznać niezgodność profili QoS i liczbę połączonych węzłów.

Sprawdzenie transformacji montażowej ros2 run tf2_ros tf2_echo base_link imu_link

Wyświetla przesunięcie i obrót pomiędzy korpusem robota a czujnikiem.

Zapis danych do późniejszej analizy ros2 bag record /imu/data_raw /imu/data /imu/mag /tf /tf_static

Rejestruje pomiary oraz transformacje potrzebne do odtworzenia warunków testu.

Podczas testu nieruchomego IMU warto sprawdzić, czy prędkości kątowe oscylują wokół zera, a długość wektora akcelerometru jest zbliżona do 9,81 m/s². Nie należy oczekiwać, że wszystkie składowe akcelerometru będą równe zero.

Częstotliwość wyświetlana przez ros2 topic hz opisuje wiadomości docierające do narzędzia, a niekoniecznie wewnętrzny ODR czujnika. Jeżeli sterownik grupuje próbki, filtruje je albo publikuje rzadziej, obie wartości mogą się różnić.

Podczas nagrywania szybkiego strumienia należy upewnić się, że rosbag2 wykorzystuje kompatybilne ustawienia QoS. Oficjalna dokumentacja opisuje możliwość nadpisywania profili QoS podczas rejestracji i odtwarzania danych.

Surowe dane czy orientacja obliczona przez urządzenie?

Niektóre moduły publikują wyłącznie akcelerometr i żyroskop. Inne posiadają wewnętrzny procesor fuzji i dostarczają również gotowy kwaternion orientacji

Orientacja obliczona w urządzeniu może być wygodna i charakteryzować się niewielkim opóźnieniem. Integrator nie zawsze zna jednak dokładny algorytm, sposób kalibracji, zachowanie przy drganiach ani zasady wykorzystywania magnetometru.

Własny filtr działający w ROS 2 zapewnia większą kontrolę nad parametrami i pozwala łatwiej łączyć IMU z innymi czujnikami. Wymaga jednak prawidłowej konfiguracji, kalibracji i realistycznych kowariancji.

Rozwiązanie Zalety Ograniczenia
Surowe dane z IMU Pełna kontrola nad filtracją, kalibracją i sposobem fuzji. Konieczność samodzielnego uruchomienia i dostrojenia algorytmu orientacji.
Orientacja obliczana w urządzeniu Prosta integracja, małe obciążenie komputera i często niewielkie opóźnienie. Ograniczony dostęp do wewnętrznego algorytmu i jego parametrów.
Orientacja z filtra ROS 2 Możliwość dostrajania, zapisu danych i wymiany algorytmu bez zmiany sprzętu. Wynik zależy od poprawnej konfiguracji czasu, osi, kowariancji i parametrów filtra.
Pełna fuzja systemowa IMU może zostać połączone z odometrią, kamerą, LiDAR-em i GNSS. Największa złożoność integracyjna i ryzyko podwójnego wykorzystania tych samych danych.

Dobrym rozwiązaniem jest publikowanie zarówno imu/data_raw, jak i imu/data, o ile urządzenie lub sterownik posiada oba zestawy informacji. Dane surowe umożliwiają późniejszą zmianę algorytmu oraz diagnostykę problemów, natomiast gotowa orientacja może być wykorzystywana przez prostsze komponenty.

Trzeba jednak jasno dokumentować, czy dane określane jako „raw” są rzeczywiście surowymi wartościami przeliczonymi jedynie do jednostek SI, czy zostały już skorygowane o bias, temperaturę i kalibrację osi.

Najczęstsze błędy integracji IMU z ROS 2

  • Publikowanie przyspieszenia w g zamiast w m/s².
  • Publikowanie prędkości kątowej w °/s zamiast w rad/s.
  • Publikowanie pola magnetycznego w µT zamiast w teslach.
  • Ustawienie frame_id niezgodnego z rzeczywistymi osiami danych.
  • Brak transformacji pomiędzy base_link i imu_link.
  • Mylenie konwencji ENU i NED.
  • Odwrócony znak jednej lub kilku osi.
  • Publikowanie nieznormalizowanego kwaternionu orientacji.
  • Umieszczanie zerowego kwaternionu zamiast oznaczenia braku orientacji przez kowariancję −1.
  • Traktowanie zerowej kowariancji jako pomiaru o idealnej dokładności.
  • Stosowanie przypadkowych, zbyt małych wartości kowariancji.
  • Przypisywanie czasu odbioru zamiast możliwie dokładnego czasu wykonania pomiaru.
  • Niezgodne profile QoS wydawcy i subskrybenta.
  • Pomijanie próbek bez wcześniejszej filtracji i kontroli aliasingu.
  • Łączenie orientacji z urządzenia i tych samych surowych danych jako niezależnych źródeł.
  • Wykorzystywanie magnetometru bez kontroli zakłóceń i kalibracji.
  • Brak testu z pracującymi silnikami i napędami robota.

Szczególnie częstym błędem jest nieprawidłowe oznaczenie braku orientacji. Jeżeli sterownik publikuje tylko akcelerometr i żyroskop, nie powinien pozostawiać pozornie poprawnego kwaternionu bez informacji, że nie jest on dostępny. Pierwszy element orientation_covariance powinien wtedy wynosić −1.

Drugim istotnym problemem jest transformacja osi. Zmiana samej nazwy frame_id nie obraca wartości wektorów. Układ wskazany w nagłówku musi rzeczywiście odpowiadać kierunkom, w których wyrażono dane.

Prawidłowa integracja IMU z ROS 2 wymaga jednoczesnej kontroli wartości pomiarowych, jednostek, czasu, transformacji, kowariancji i QoS. Poprawne działanie jednego z tych elementów nie kompensuje błędów pozostałych.

Lista kontrolna integracji IMU z ROS 2

  • Sprawdzić typy i nazwy publikowanych tematów.
  • Zweryfikować jednostki wszystkich pomiarów.
  • Porównać kierunki osi z dokumentacją modułu.
  • Sprawdzić konwencję ENU albo NED.
  • Ustawić prawidłowy frame_id.
  • Dodać transformację pomiędzy base_link i imu_link.
  • Sprawdzić, czy kwaternion jest znormalizowany.
  • Oznaczyć niedostępne dane wartością −1 w odpowiedniej kowariancji.
  • Ustawić realistyczne kowariancje dla dostępnych pomiarów.
  • Zweryfikować częstotliwość i regularność publikacji.
  • Sprawdzić opóźnienie oraz znaczniki czasu.
  • Dopasować QoS wydawcy i wszystkich subskrybentów.
  • Zarejestrować dane nieruchomego czujnika za pomocą rosbag2.
  • Wykonać osobne ruchy wokół osi roll, pitch i yaw.
  • Sprawdzić dane podczas pracy silników i napędów.
  • Porównać orientację z wiarygodnym systemem referencyjnym.
  • Udokumentować, które dane są surowe, skalibrowane i przefiltrowane.

Dopiero po przejściu całej listy warto przekazać dane IMU do systemu lokalizacji, sterowania równowagą albo SLAM. W przeciwnym razie filtr może próbować kompensować błędy wynikające nie z jakości czujnika, lecz z niewłaściwych jednostek, osi lub czasu.

Standardowe interfejsy ROS 2 upraszczają integrację, ale nie weryfikują automatycznie poprawności danych. Wiadomość może mieć prawidłowy typ i jednocześnie zawierać błędne jednostki, znaki albo układ współrzędnych.

Jakie zastosowania ma IMU w robotyce?

IMU jest jednym z podstawowych źródeł informacji o ruchu robota. Dostarcza szybkich pomiarów przyspieszenia i prędkości kątowej, dzięki którym system może rozpoznawać przechylenie, obrót, gwałtowne przyspieszenie, drgania, uderzenie albo upadek konstrukcji.

Dane inercyjne są wykorzystywane przede wszystkim do estymacji orientacji, stabilizacji ruchu, utrzymywania równowagi i krótkoterminowego przewidywania zmiany położenia. W połączeniu z enkoderami, kamerą, LiDAR-em, GNSS i czujnikami kontaktu IMU staje się częścią systemu wyznaczającego pełny stan robota.

Znaczenie IMU zależy od rodzaju platformy. W dronie dane inercyjne są niezbędne do stabilizacji lotu. W robocie humanoidalnym lub czworonożnym pomagają kontrolować orientację korpusu i utrzymywać równowagę. W robocie mobilnym wspierają odometrię oraz lokalizację, natomiast w manipulatorze mogą służyć do analizowania ruchu narzędzia, drgań, kontaktu i kolizji.

IMU zwykle nie działa jako samodzielny system lokalizacji. Jego pomiary są szybkie i dostępne niezależnie od wyglądu otoczenia, ale narastający dryft wymaga okresowej korekcji z innych źródeł. Pakiet ROS 2 robot_localization może łączyć wiadomości IMU z odometrią, pozycją, prędkością i innymi źródłami stanu robota.

Najważniejsze zastosowania IMU w robotach

Zastosowanie Rola IMU Przykładowe roboty Dodatkowe źródła danych
Utrzymywanie równowagi Pomiar przechylenia, pochylenia i prędkości obrotu korpusu. Roboty humanoidalne, czworonożne i dwukołowe platformy balansujące. Enkodery, czujniki siły, czujniki kontaktu i model dynamiki.
Stabilizacja lotu Szybkie wykrywanie zmian roll, pitch i yaw oraz ruchów dynamicznych. Drony wielowirnikowe, samoloty bezzałogowe i platformy VTOL. Barometr, magnetometr, GNSS, kamera i czujniki przepływu optycznego.
Estymacja orientacji Łączenie żyroskopu z kierunkiem grawitacji i opcjonalnie polem magnetycznym. Praktycznie wszystkie roboty poruszające się w przestrzeni. Magnetometr, kamera, LiDAR, GNSS i system motion capture.
Odometria Krótkoterminowe przewidywanie obrotu, prędkości i ruchu platformy. AMR, AGV, roboty terenowe i autonomiczne pojazdy. Enkodery kół, kamera, LiDAR i GNSS.
Lokalizacja i SLAM Zapewnienie szybkiej informacji o ruchu pomiędzy kolejnymi obrazami lub skanami. Roboty mobilne, drony, roboty inspekcyjne i systemy mapujące. Kamera, LiDAR, GNSS i mapa otoczenia.
Kontrola chodu Pomiar orientacji i ruchu korpusu podczas stawiania kolejnych kroków. Roboty humanoidalne, czworonożne i egzoszkielety. Enkodery przegubów, czujniki nacisku oraz informacja o kontakcie stóp.
Wykrywanie kontaktu Rozpoznawanie charakterystycznych zmian przyspieszenia i drgań podczas zetknięcia z podłożem lub obiektem. Roboty kroczące, manipulatory i chwytaki. Czujniki siły, momentu, prądu silników i dotyku.
Wykrywanie kolizji Rejestrowanie krótkiego impulsu przyspieszenia albo prędkości kątowej. Roboty współpracujące, manipulatory i platformy mobilne. Obserwatory momentu, czujniki siły i modele dynamiki.
Wykrywanie upadku Rozpoznawanie swobodnego spadku, gwałtownej zmiany orientacji i uderzenia. Humanoidy, roboty czworonożne i urządzenia mobilne. Czujniki kontaktu, enkodery oraz analiza stanu napędów.
Analiza drgań Pomiar częstotliwości i amplitudy drgań konstrukcji. Roboty przemysłowe, napędy, przekładnie i platformy inspekcyjne. Czujniki prądu, mikrofony i systemy diagnostyczne.
Stabilizacja narzędzia Pomiar ruchu kamery, chwytaka, ramienia albo głowicy pomiarowej. Manipulatory, roboty inspekcyjne i mobilne systemy wizyjne. Enkodery, kamera i czujniki siły.
Rejestracja ruchu Pomiar ruchu poszczególnych segmentów konstrukcji lub ciała użytkownika. Egzoszkielety, roboty rehabilitacyjne i systemy teleoperacji. Enkodery, kamery, czujniki nacisku i system motion capture.
Nawigacja bez GNSS Krótkoterminowe podtrzymywanie estymacji podczas utraty zewnętrznego pozycjonowania. Roboty w budynkach, tunelach, magazynach i przestrzeniach podziemnych. LiDAR, kamera, odometria i znaczniki lokalizacyjne.

W praktyce jedna próbka IMU może być jednocześnie wykorzystywana przez kilka komponentów. Prędkość kątowa może trafiać do regulatora równowagi, filtra orientacji, systemu odometrii i algorytmu wykrywania kolizji.

Każde zastosowanie może jednak wymagać innego zakresu pomiarowego, pasma i sposobu filtrowania. Dane odpowiednio wygładzone do prezentacji orientacji mogą być zbyt opóźnione dla szybkiego regulatora stabilizacji albo zbyt mocno przefiltrowane do wykrywania uderzeń.

Utrzymywanie równowagi robota

Robot humanoidalny, czworonożny lub balansujący na kołach musi stale kontrolować orientację swojego korpusu. Nawet niewielkie odchylenie od oczekiwanej pozycji może wymagać szybkiej zmiany momentów w przegubach, położenia stóp albo prędkości kół.

Żyroskop dostarcza informacji o szybkości przechylania się robota, dzięki czemu regulator może zareagować jeszcze przed wystąpieniem dużej zmiany kąta. Akcelerometr pomaga natomiast wyznaczyć długoterminowy kierunek pionowy i korygować dryft orientacji.

IMU nie określa samodzielnie, w jaki sposób robot powinien odzyskać równowagę. Dane są łączone z modelem dynamiki, położeniem przegubów, pozycją środka masy, punktami podparcia i pomiarami kontaktu z podłożem.

W robotach kroczących estymatory często łączą IMU z kinematyką nóg i informacją o kontakcie stóp. Badania nad estymacją stanu robotów kroczących pokazują, że takie połączenie pozwala ograniczać dryft rozwiązania inercyjnego i dokładniej wyznaczać ruch korpusu.

  1. IMU mierzy prędkość kątową i przyspieszenie korpusu robota.
  2. Filtr wyznacza bieżącą orientację oraz tempo jej zmiany.
  3. Stan jest porównywany z orientacją oczekiwaną dla aktualnego ruchu.
  4. System sprawdza położenie przegubów i punkty kontaktu z podłożem.
  5. Model dynamiki ocenia, czy robot zbliża się do granicy stabilności.
  6. Regulator oblicza korekty momentów, położenia kończyn albo prędkości kół.
  7. Napędy wykonują korektę równowagi.
  8. IMU mierzy reakcję konstrukcji i zamyka pętlę sprzężenia zwrotnego.

Taki proces może być wykonywany setki razy na sekundę. Z tego powodu w sterowaniu równowagą liczy się nie tylko dokładność, ale także małe opóźnienie, regularne znaczniki czasu i wystarczająco szerokie pasmo pomiarowe.

Zbyt silne filtrowanie może sprawić, że robot rozpozna przechylenie z opóźnieniem. Z kolei zbyt szerokie pasmo może przekazywać do regulatora intensywne drgania napędów i konstrukcji. Parametry trzeba dostroić do dynamiki konkretnej platformy.

IMU w robotach humanoidalnych i czworonożnych

W robotach kroczących główny korpus nie jest sztywno połączony z podłożem. Jego położenia i orientacji nie można więc wyznaczyć wyłącznie na podstawie enkoderów przegubów. Potrzebna jest estymacja tak zwanej pływającej podstawy, obejmująca orientację, prędkość i pozycję korpusu.

IMU dostarcza szybkiej informacji o ruchu podstawy. Enkodery opisują konfigurację nóg, a informacja o kontakcie określa, które stopy można chwilowo potraktować jako punkty podparcia. Połączenie tych danych umożliwia obliczanie ruchu całej konstrukcji.

Podczas chodu robot może wykorzystywać IMU między innymi do wykrywania nadmiernego przechylenia, oceny stabilności, korygowania trajektorii korpusu, rozpoznawania poślizgu i reagowania na nierówności.

W dokumentacji sterowania przegubami robota Spot strumień stanu obejmuje informacje z IMU, stany kontaktu stóp, położenia przegubów i stan kinematyczny. Pokazuje to, że dane inercyjne są jednym z elementów szerszego systemu propriocepcji robota kroczącego.

Zadanie Informacja z IMU Informacja uzupełniająca
Estymacja korpusu Orientacja, prędkość kątowa i przyspieszenie podstawy. Kinematyka nóg, kontakty stóp i model robota.
Kontrola przechylenia Roll, pitch oraz szybkość ich zmian. Momenty przegubów i położenie środka masy.
Reakcja na nierówność Gwałtowna zmiana przyspieszenia lub orientacji korpusu. Położenie stóp, czujniki kontaktu i mapa terenu.
Wykrywanie poślizgu Ruch korpusu niezgodny z przewidywaniem kinematycznym. Enkodery, kontakt stopy i obserwacja otoczenia.
Wykrywanie upadku Nietypowa orientacja, szybki obrót, swobodny spadek i uderzenie. Stan przegubów, brak kontaktu lub przeciążenie napędów.
Wstawanie po upadku Bieżąca orientacja korpusu względem grawitacji. Położenie kończyn i wybrana sekwencja ruchu.
Zmiana chodu Poziom drgań, przechylenie i dynamika korpusu. Prędkość, rodzaj podłoża i planowane punkty podparcia.

W bardziej złożonych konstrukcjach można stosować kilka modułów IMU rozmieszczonych w korpusie i kończynach. Pozwalają one obserwować ruch poszczególnych segmentów, wykrywać kontakt stóp albo kompensować elastyczność konstrukcji.

Badania nad wieloma IMU w robotach humanoidalnych pokazują, że dodatkowe czujniki na segmentach mogą zostać połączone z głównym estymatorem stanu w celu lepszego odwzorowania ruchu całego robota

Większa liczba IMU oznacza jednak konieczność dokładnej kalibracji wzajemnego ustawienia, synchronizacji czasu i transformacji każdego czujnika względem modelu robota.

IMU w robotach mobilnych, AMR i AGV

W robocie kołowym IMU uzupełnia odometrię pochodzącą z enkoderów. Enkodery mierzą obrót kół, ale nie wykrywają bezpośrednio poślizgu, unoszenia koła, przechylenia platformy ani ruchu wynikającego z uderzenia.

Żyroskop pomaga dokładniej śledzić zmianę kierunku jazdy, szczególnie podczas skrętu. Akcelerometr może wskazywać ruszanie, hamowanie, wibracje, najechanie na przeszkodę albo przechylenie platformy.

Połączenie odometrii kół z IMU pozwala uzyskać płynniejszą lokalną estymację ruchu. Kamera, LiDAR albo znaczniki lokalizacyjne ograniczają następnie długoterminowy dryft i korygują pozycję względem mapy.

robot_localization w ROS 2 obsługuje jednoczesną fuzję wielu wiadomości Odometry oraz Imu, umożliwiając estymację ruchu robota w przestrzeni trójwymiarowej.

Sytuacja Enkodery kół IMU Wspólna interpretacja
Prawidłowy skręt Wskazują różne prędkości kół. Żyroskop rejestruje zgodną zmianę yaw. Robot rzeczywiście zmienia kierunek.
Poślizg koła Wskazują duży ruch. Zmiana orientacji lub przyspieszenia jest mniejsza od oczekiwanej. Część obrotu koła nie została zamieniona na ruch platformy.
Pchanie robota Mogą nie wykazywać ruchu napędowego. Rejestruje przyspieszenie albo obrót korpusu. Platforma została przemieszczona przez zewnętrzną siłę.
Najechanie na próg Wskazują dalszy obrót kół. Rejestruje pionowy impuls i zmianę pitch. Robot pokonuje nierówność terenu.
Zablokowanie robota Koła mogą obracać się albo próbować ruszyć. Brak oczekiwanego przyspieszenia i zmiany orientacji. Ruch napędów nie powoduje przemieszczania platformy.
Gwałtowne hamowanie Wykazują szybki spadek prędkości. Rejestruje przyspieszenie o przeciwnym kierunku. Robot rzeczywiście zmniejsza prędkość.
Przechylenie platformy Nie dostarczają pełnej informacji o orientacji korpusu. Wskazuje zmianę roll albo pitch. Robot znajduje się na pochyłości lub traci stabilność.

W typowym robocie magazynowym IMU nie zastępuje enkoderów ani LiDAR-u. Dostarcza innego rodzaju informacji, dzięki której filtr może rozpoznawać sytuacje, w których ruch kół nie odpowiada rzeczywistemu ruchowi platformy.

Skuteczność takiej fuzji zależy od poprawnego modelu ruchu. W robocie różnicowym, pojeździe z układem Ackermanna i platformie wielokierunkowej zależności pomiędzy ruchem kół i zmianą orientacji są inne.

IMU w systemach Visual-Inertial i LiDAR-Inertial

Kamera i LiDAR dostarczają informacji o ruchu względem otoczenia, ale ich kolejne wyniki mogą pojawiać się znacznie rzadziej niż pomiary IMU. Dane inercyjne wypełniają odstępy pomiędzy obrazami albo skanami i pozwalają przewidywać zmianę orientacji oraz prędkości.

W odometrii wizyjno-inercyjnej, określanej jako VIO, ruch jest wyznaczany na podstawie obrazów i zsynchronizowanych pomiarów IMU. Kamera dostarcza odniesienia do cech otoczenia, natomiast IMU zapewnia szybką informację o ruchu oraz pomaga podczas gwałtownych obrotów.

Analogicznie system LiDAR-Inertial łączy skany laserowe z pomiarami inercyjnymi. Orientacja przewidywana przez IMU może ułatwiać dopasowanie kolejnych chmur punktów, a geometria otoczenia ogranicza dryft rozwiązania inercyjnego.

Badania nad VIO pokazują, że obrazy i pomiary IMU mogą być wspólnie wykorzystywane do estymacji ruchu czujnika oraz rekonstrukcji otoczenia. Dokładne znaczniki czasu i kalibracja transformacji kamera–IMU są w takich systemach warunkiem poprawnego działania.

System Rola IMU Rola czujnika zewnętrznego Najważniejsze wymaganie
Visual-Inertial Odometry Przewiduje szybkie zmiany orientacji i ruch pomiędzy obrazami. Kamera ogranicza dryft na podstawie cech wizualnych. Dokładna synchronizacja i kalibracja kamera–IMU.
LiDAR-Inertial Odometry Przewiduje ruch podczas powstawania skanu i pomiędzy kolejnymi chmurami punktów. LiDAR zapewnia odniesienie do geometrii otoczenia. Znajomość czasu każdego punktu lub fragmentu skanu.
Visual-Inertial SLAM Zapewnia lokalne przewidywanie stanu o wysokiej częstotliwości. Kamera buduje mapę i umożliwia ponowne rozpoznawanie miejsc. Spójne modele szumu, kalibracja i wystarczająca jakość obrazu.
LiDAR-Inertial SLAM Pomaga kompensować ruch robota podczas wykonywania skanu. LiDAR tworzy geometryczną mapę przestrzeni. Małe opóźnienie oraz dokładna transformacja LiDAR–IMU.
System GNSS–Inertial Podtrzymuje płynną estymację pomiędzy aktualizacjami satelitarnymi. GNSS ogranicza długoterminowy dryft pozycji. Właściwe odniesienie kierunku i synchronizacja czasu.

IMU może również pomagać w kompensacji zniekształcenia skanu. Jeżeli robot porusza się podczas wykonywania pełnego obrotu LiDAR-u, poszczególne punkty powstają w różnych położeniach. Znając ruch czujnika w czasie, system może przeliczyć je do wspólnego momentu odniesienia.

Podobny problem występuje w kamerach z migawką kroczącą. Poszczególne wiersze obrazu mogą być rejestrowane w innych chwilach, dlatego szybki ruch powoduje deformację. Dane IMU mogą wspierać modelowanie tego ruchu, ale wymagają bardzo dokładnej synchronizacji.

IMU w manipulatorach, chwytakach i narzędziach robota

W klasycznym manipulatorze o nieruchomej podstawie główne położenie ramienia jest wyznaczane z enkoderów przegubów. IMU może jednak dostarczyć dodatkowej informacji o rzeczywistym ruchu narzędzia, drganiach elastycznej konstrukcji, uderzeniu albo kontakcie z obiektem.

Czujnik można umieścić w nadgarstku, chwytaku, narzędziu albo przenoszonym ładunku. Pozwala to obserwować ruch końcówki niezależnie od modelu kinematycznego i luzów występujących wcześniej w łańcuchu mechanicznym.

W ramieniu robota Spot zintegrowane czujniki chwytaka obejmują między innymi IMU, czujnik czasu przelotu i kamerę RGB. Producent wskazuje, że czujniki te wspierają kontrolę działania narzędzia.

Zastosowanie Co mierzy IMU? Przykładowy cel
Kontrola ruchu narzędzia Rzeczywiste przyspieszenia i obroty końcówki. Porównanie ruchu wykonanego z trajektorią zadaną.
Wykrywanie kontaktu Impuls przyspieszenia i zmianę drgań podczas zetknięcia z obiektem. Rozpoznanie rozpoczęcia operacji montażowej lub manipulacyjnej.
Wykrywanie kolizji Nagłą zmianę ruchu niezgodną z planowaną trajektorią. Zatrzymanie albo ograniczenie siły robota.
Analiza drgań Oscylacje narzędzia, chwytaka lub elastycznego ramienia. Ograniczenie rezonansu i poprawa jakości procesu.
Ocena chwytu Ruch ładunku względem chwytaka oraz impulsy podczas przesuwania. Wykrywanie poślizgu albo niestabilnego zamocowania przedmiotu.
Teleoperacja Orientację ręki operatora lub elementu sterującego. Przeniesienie ruchu człowieka na ramię robota.
Kontrola procesu Charakterystyczny profil drgań i ruchu narzędzia. Rozpoznawanie wiercenia, szlifowania, dokręcania albo cięcia.

IMU nie zastępuje czujnika siły i momentu. Rejestruje ruch będący skutkiem oddziaływania, ale nie mierzy bezpośrednio wartości siły kontaktu. Jej oszacowanie wymaga modelu masy, dynamiki i sposobu zamontowania czujnika.

W dynamicznej manipulacji charakterystyka sygnału IMU może również pomagać rozróżniać zamierzony kontakt od przypadkowej kolizji. Badania wykorzystują dane inercyjne między innymi do klasyfikacji zdarzeń kontaktowych w czasie rzeczywistym.

Wykrywanie kolizji, upadku i nietypowych zdarzeń

Gwałtowne zdarzenia pozostawiają charakterystyczny ślad w danych IMU. Uderzenie powoduje krótki impuls akcelerometru, obrót konstrukcji zmianę żyroskopu, a swobodny spadek chwilowe zmniejszenie długości wektora przyspieszenia właściwego.

Na podstawie pojedynczego progu trudno jednak jednoznacznie rozpoznać rodzaj zdarzenia. Silne hamowanie, podskok, uderzenie stopy o podłoże i kolizja mogą wytworzyć podobne wartości maksymalne. Skuteczny algorytm analizuje więc kilka cech oraz kontekst pracy robota

Zdarzenie Możliwy sygnał IMU Dane uzupełniające Możliwa reakcja
Kolizja Krótki impuls przyspieszenia i nagła zmiana prędkości kątowej. Prąd napędów, czujnik siły i planowana trajektoria. Zatrzymanie, ograniczenie momentu lub wycofanie robota.
Swobodny spadek Długość wektora akcelerometru zbliża się do zera. Brak kontaktu, położenie kończyn i wysokość. Przyjęcie pozycji ochronnej albo przygotowanie do lądowania.
Uderzenie o podłoże Bardzo duży, krótki impuls przyspieszenia. Orientacja, stan kontaktu i prędkość przed uderzeniem. Wyłączenie napędów i rozpoczęcie diagnostyki.
Przewrócenie Duża zmiana roll lub pitch i nietypowa orientacja końcowa. Położenie nóg, kontakt z podłożem i obciążenie silników. Zatrzymanie zadania albo uruchomienie procedury wstawania.
Poślizg Ruch korpusu niezgodny z odometrią lub ruchem przegubów. Enkodery, kamera, LiDAR i kontakt stóp. Zmiana chodu, prędkości lub strategii sterowania.
Rezonans Rosnąca oscylacja w określonym paśmie częstotliwości. Prędkość napędów i położenie konstrukcji. Zmiana prędkości, trajektorii albo parametrów regulatora.
Zablokowanie narzędzia Brak oczekiwanego ruchu mimo działania napędu lub nagłe drganie. Prąd silnika, enkoder i czujnik siły. Zatrzymanie procesu i wycofanie narzędzia.

Próg powinien uwzględniać zakres normalnej pracy robota. W humanoidzie uderzenie stopy o podłoże jest elementem prawidłowego chodu, natomiast podobny impuls w nieruchomym manipulatorze może oznaczać kolizję.

Algorytm może analizować wartość maksymalną, czas trwania impulsu, energię sygnału, zmianę orientacji, widmo częstotliwości oraz zgodność z poleceniami sterowania. W systemach bardziej zaawansowanych klasyfikator może być uczony na zarejestrowanych przykładach zdarzeń.

Detekcja oparta wyłącznie na IMU nie powinna zastępować funkcji bezpieczeństwa wymaganych dla konkretnej maszyny. Może stanowić dodatkową warstwę diagnostyczną lub źródło informacji dla systemu sterowania.

IMU w robotach terenowych i systemach GNSS–inercyjnych

Robot pracujący na zewnątrz może łączyć IMU z GNSS, odometrią i czujnikami otoczenia. GNSS dostarcza globalnej pozycji, ale zwykle działa wolniej niż IMU i może okresowo tracić dokładność w pobliżu budynków, drzew, konstrukcji lub w tunelu.

IMU podtrzymuje płynną estymację ruchu pomiędzy kolejnymi aktualizacjami satelitarnymi. Pozwala również obserwować przechylenie pojazdu na zboczu, gwałtowne hamowanie, jazdę po nierównym podłożu i zmianę kierunku.

W ROS 2 węzeł navsat_transform_node może wykorzystywać odometrię, orientację pochodzącą z IMU oraz pozycję GNSS, aby utworzyć dane zgodne z układem świata robota.

  • Podtrzymywanie orientacji pomiędzy kolejnymi aktualizacjami GNSS.
  • Wygładzanie lokalnej trajektorii pojazdu.
  • Wykrywanie przechylenia bocznego na zboczu.
  • Kontrola pochylenia podczas podjazdu i zjazdu.
  • Rozpoznawanie gwałtownego przyspieszania i hamowania.
  • Wsparcie odometrii podczas chwilowej utraty sygnału satelitarnego.
  • Określanie orientacji czujnika LiDAR lub kamery podczas mapowania.
  • Analiza wibracji i obciążeń podczas jazdy terenowej.
  • Wykrywanie przewrócenia albo niebezpiecznego kąta platformy.

System inercyjny nie powinien być traktowany jako nieograniczone zastępstwo dla GNSS. Podczas dłuższej utraty sygnału błędy prędkości i pozycji będą narastać, chyba że zostaną skorygowane przez odometrię, kamerę, LiDAR albo inne punkty odniesienia

Istotne jest również ustawienie anteny GNSS względem IMU. Jeżeli czujniki znajdują się w różnych miejscach, ruch obrotowy pojazdu powoduje inny ruch liniowy obu punktów. W systemach wymagających wysokiej dokładności należy uwzględnić to przesunięcie.

IMU w egzoszkieletach, rehabilitacji i teleoperacji

Niewielkie moduły IMU można umieszczać na kończynach człowieka, elementach egzoszkieletu albo urządzeniach sterujących robotem. Każdy czujnik mierzy orientację i ruch segmentu, na którym został zamocowany.

Kilka zsynchronizowanych modułów może opisywać ruch ramienia, tułowia, uda lub podudzia. Informacje te mogą służyć do sterowania robotem, analizy chodu, wspomagania rehabilitacji albo rejestrowania gestów.

W tego rodzaju systemach szczególnie ważna jest kalibracja położenia czujnika względem segmentu ciała. IMU może być poprawnie skalibrowane wewnętrznie, ale źle ustawione względem kości albo elementu egzoszkieletu.

Magnetometr może pomagać stabilizować yaw, lecz metalowa konstrukcja egzoszkieletu, silniki i przewody zasilające mogą powodować zakłócenia. W praktyce część systemów wykorzystuje przede wszystkim akcelerometr i żyroskop, uzupełniając je modelami biomechanicznymi lub zewnętrznym systemem odniesienia.

Kiedy warto stosować kilka modułów IMU?

Jedno IMU umieszczone w głównym korpusie opisuje ruch tego konkretnego punktu konstrukcji. Nie przedstawia bezpośrednio ruchu elastycznego ramienia, kończyny, chwytaka ani głowicy znajdującej się w innej części robota.

Kilka czujników pozwala obserwować ruch różnych segmentów i porównywać go z modelem kinematycznym. Może również zapewnić redundancję albo umożliwiać wykrywanie lokalnych drgań i kontaktu.

Rozmieszczenie czujników Możliwe zastosowanie Najważniejsze wyzwanie
IMU w korpusie i stopach Estymacja ruchu korpusu oraz wykrywanie kontaktu z podłożem. Uderzenia i duże drgania występujące podczas stawiania kroków.
IMU w korpusie i kończynach Obserwacja ruchu segmentów humanoida albo egzoszkieletu. Kalibracja względem przegubów i synchronizacja wszystkich modułów.
IMU w podstawie i narzędziu Pomiar odkształcenia, drgań lub ruchu końcówki względem korpusu. Rozdzielenie ruchu sztywnego od elastyczności konstrukcji.
Dwa lub więcej IMU w korpusie Redundancja oraz wykrywanie uszkodzonego czujnika. Ustalenie, któremu pomiarowi zaufać podczas rozbieżności.
IMU w kamerze i korpusie Dokładniejsza kompensacja ruchu układu wizyjnego. Precyzyjna transformacja i synchronizacja obu urządzeń.
IMU w przewożonym ładunku Kontrola przechylenia, uderzeń i stabilności transportowanego obiektu. Łączność, zasilanie oraz niezależny ruch ładunku.

Dane z kilku IMU nie powinny być po prostu uśredniane bez uwzględnienia miejsca montażu. Podczas obrotu każdy punkt sztywnej bryły ma tę samą prędkość kątową, ale może doświadczać innego przyspieszenia liniowego zależnego od odległości od osi obrotu.

Każdy moduł wymaga osobnej kalibracji, transformacji i znacznika czasu. Należy również kontrolować, czy wszystkie urządzenia wykorzystują te same jednostki, konwencje osi i częstotliwości próbkowania.

Czego IMU nie potrafi określić samodzielnie?

  • Nie mierzy bezpośrednio położenia robota na mapie.
  • Nie rozpoznaje samodzielnie przeszkód ani geometrii otoczenia.
  • Nie wyznacza stabilnej pozycji przez długi czas bez zewnętrznej korekcji.
  • IMU 6-osiowe nie posiada bezwzględnego odniesienia dla yaw.
  • Nie odróżnia automatycznie grawitacji od przyspieszenia liniowego podczas dynamicznego ruchu.
  • Nie mierzy bezpośrednio siły kontaktu ani momentu działającego na robota.
  • Nie określa, która stopa robota dotyka podłoża, bez dodatkowego modelu lub czujnika.
  • Nie rozpoznaje przyczyny drgań, jeżeli nie zostanie połączone z kontekstem pracy urządzenia.
  • Nie kompensuje automatycznie błędnego montażu, jednostek ani układu współrzędnych.
  • Nie usuwa dryftu jedynie przez zwiększenie częstotliwości próbkowania.
  • Nie zastępuje wymaganych systemów bezpieczeństwa maszyny.

Największa wartość IMU wynika z szybkości i ciągłości pomiarów. Czujnik działa również w ciemności, bez widocznych punktów otoczenia i bez sygnału satelitarnego. Nie zapewnia jednak samodzielnie stabilnego globalnego odniesienia.

Dlatego IMU jest najczęściej elementem większego systemu. Enkodery dostarczają informacji o napędach, kamera i LiDAR obserwują otoczenie, GNSS określa pozycję globalną, a czujniki kontaktu i siły opisują oddziaływanie robota z podłożem lub obiektem.

Odpowiednio połączone źródła pozwalają wykorzystać mocne strony IMU bez uzależniania całego systemu od jego narastającego dryftu.

Jak dobrać moduł IMU do robota?

Dobór modułu IMU powinien wynikać z dynamiki robota, środowiska pracy oraz wymaganej dokładności estymacji ruchu. Sama informacja, że czujnik jest 6-osiowy lub 9-osiowy, nie wystarcza do oceny jego przydatności.

Innych parametrów wymaga powoli poruszający się robot mobilny, innych dynamiczny robot czworonożny, a jeszcze innych system pomiarowy przeznaczony do precyzyjnej lokalizacji. Należy uwzględnić maksymalne przyspieszenia i prędkości kątowe, poziom drgań, pasmo ruchu, temperaturę, częstotliwość próbkowania oraz możliwość synchronizacji z pozostałymi czujnikami.

Do najważniejszych parametrów należą poziom szumu, stabilność i powtarzalność biasu, zakres pomiarowy oraz pasmo. Zbyt wąski zakres może powodować nasycenie podczas gwałtownego ruchu, natomiast niepotrzebnie szeroki zakres może zmniejszyć użyteczną rozdzielczość pomiaru.

Najważniejsze parametry modułu IMU

Parametr Co określa? Znaczenie przy wyborze
Zakres akcelerometru Największe przyspieszenie, które może zostać poprawnie zmierzone. Roboty narażone na uderzenia i dynamiczny ruch wymagają szerszego zakresu.
Zakres żyroskopu Maksymalną mierzoną prędkość kątową. Zbyt mały zakres może powodować nasycenie podczas szybkiego obrotu lub upadku.
Gęstość szumu Poziom losowych zmian pomiaru odniesiony do pasma. Niższy szum ułatwia wykrywanie niewielkich ruchów i stabilną estymację orientacji.
Stabilność biasu Jak bardzo wartość zerowa zmienia się podczas pracy. Ma bezpośredni wpływ na tempo narastania dryftu żyroskopu i akcelerometru.
Powtarzalność biasu Jak bardzo offset różni się pomiędzy kolejnymi uruchomieniami. Wpływa na konieczność wykonywania kalibracji przy każdym starcie.
Pasmo pomiarowe Zakres częstotliwości ruchu odwzorowywany przez czujnik. Musi obejmować dynamikę robota, ale nie powinno niepotrzebnie przepuszczać drgań.
ODR i częstotliwość próbkowania Częstotliwość udostępniania kolejnych próbek. Powinna odpowiadać szybkości sterowania i częstotliwości ruchów robota.
Zakres temperatury Warunki, w których producent określa prawidłową pracę czujnika. Jest istotny w robotach terenowych, przemysłowych i pracujących w zmiennych temperaturach.
Odporność na drgania i udary Zdolność zachowania parametrów podczas obciążeń mechanicznych. Szczególnie ważna w robotach kroczących, napędach i konstrukcjach przemysłowych.
Opóźnienie Czas od wykonania pomiaru do udostępnienia wyniku. Duże lub niestabilne opóźnienie może pogarszać utrzymywanie równowagi i fuzję sensorów.
Znaczniki czasu Możliwość dokładnego określenia momentu wykonania każdej próbki. Niezbędne podczas integracji IMU z kamerą, LiDAR-em i innymi czujnikami.
Interfejs komunikacyjny Sposób przesyłania danych, na przykład SPI, I²C, UART, CAN lub USB. Musi zapewniać wymagane pasmo, niezawodność i łatwą integrację ze sterownikiem robota.
Kalibracja fabryczna Zakres korekcji wykonanej przez producenta. Dokładniejsze moduły mogą posiadać indywidualną kalibrację biasu, skali, osi i temperatury.
Pobór energii Zapotrzebowanie energetyczne czujnika i jego elektroniki. Ma znaczenie w niewielkich robotach mobilnych i systemach zasilanych akumulatorowo.
Dostępność sterownika Wsparcie dla systemu operacyjnego, mikrokontrolera albo ROS 2. Może znacząco skrócić czas integracji i ograniczyć ryzyko błędów jednostek oraz osi.

Parametry takie jak szum, pasmo, stabilność biasu i zakres pomiarowy są podawane również w dokumentacjach profesjonalnych modułów IMU oraz współczesnych czujników przeznaczonych do robotyki i zastosowań przemysłowych.

Pytania, które warto zadać przed wyborem IMU

  • Jakie maksymalne przyspieszenia i prędkości kątowe występują podczas pracy robota?
  • Czy IMU będzie wykorzystywane do równowagi, lokalizacji, diagnostyki czy wykrywania uderzeń?
  • Jak szybko działa pętla sterowania robota?
  • Jakie drgania generują silniki, przekładnie i konstrukcja?
  • W jakim zakresie temperatur będzie pracował czujnik?
  • Czy potrzebny jest magnetometr, czy yaw będzie korygowany przez kamerę albo LiDAR?
  • Czy wymagane są sprzętowe znaczniki czasu i synchronizacja z innymi urządzeniami?
  • Czy moduł posiada bufor FIFO i odpowiednie filtry wewnętrzne?
  • Czy dostępny jest sterownik dla ROS 2 lub używanego kontrolera?
  • Czy producent podaje parametry szumu i stabilności biasu, a nie tylko rozdzielczość cyfrową?
  • Czy czujnik będzie można zamontować w sztywnej części korpusu, z dala od nadmiernych drgań?
  • Czy możliwe będzie przeprowadzenie kalibracji po zamontowaniu IMU w robocie?

Do podstawowej stabilizacji i wykrywania ruchu może wystarczyć niewielkie, dobrze zintegrowane IMU MEMS. W systemach wymagających precyzyjnej lokalizacji, niewielkiego dryftu lub pracy w trudnych warunkach większe znaczenie mają stabilność biasu, odporność na temperaturę i drgania oraz jakość kalibracji.

Nie należy wybierać czujnika wyłącznie na podstawie liczby bitów, maksymalnej częstotliwości próbkowania albo liczby osi. Dobre IMU to połączenie odpowiednich parametrów pomiarowych, poprawnego montażu, dokładnego czasu, kalibracji i właściwego algorytmu fuzji sensorów.

Najczęściej zadawane pytania o IMU w robotyce

Co oznacza skrót IMU?

IMU to skrót od Inertial Measurement Unit, czyli inercyjnej jednostki pomiarowej. Typowy moduł IMU zawiera trójosiowy akcelerometr oraz trójosiowy żyroskop. Niektóre systemy są dodatkowo wyposażone w trójosiowy magnetometr.

Co mierzy moduł IMU?

Akcelerometr mierzy przyspieszenie właściwe w osiach X, Y i Z, natomiast żyroskop mierzy prędkość kątową wokół tych osi. Na podstawie kolejnych pomiarów algorytm może oszacować orientację i zmiany ruchu robota.

Czy IMU bezpośrednio mierzy roll, pitch i yaw?

Nie. Podstawowe czujniki IMU nie mierzą bezpośrednio gotowych kątów roll, pitch i yaw. Akcelerometr dostarcza składowe przyspieszenia, a żyroskop prędkości kątowe. Orientacja jest obliczana przez algorytm fuzji sensorów i może zostać przedstawiona jako kwaternion albo kąty Eulera.

Czy IMU może określić pozycję robota?

Teoretycznie pozycję można oszacować przez dwukrotne całkowanie przyspieszenia. W praktyce nawet niewielkie błędy akcelerometru i orientacji powodują szybko narastający dryft. Z tego powodu IMU jest zwykle łączone z enkoderami, kamerą, LiDAR-em, GNSS albo lokalizacją względem mapy.

Czym różni się IMU 6-osiowe od 9-osiowego?

IMU 6-osiowe zawiera trzy osie akcelerometru i trzy osie żyroskopu. System określany jako 9-osiowy dodaje do tego trzy osie magnetometru. Liczby te odnoszą się do kanałów pomiarowych, a nie do liczby przegubów ani stopni swobody robota.

Czy magnetometr jest potrzebny w każdym robocie?

Nie. Magnetometr może dostarczać odniesienia dla kierunku yaw, ale jest podatny na zakłócenia powodowane przez silniki, magnesy, przewody dużego prądu i stalowe konstrukcje. W wielu robotach kierunek jest skuteczniej korygowany przez kamerę, LiDAR, GNSS lub system SLAM.

Dlaczego orientacja obliczona z IMU dryfuje?

Żyroskop posiada niewielki offset i szum. Podczas całkowania kolejnych pomiarów nawet mały błąd jest wielokrotnie dodawany, co powoduje stopniowe odchodzenie oszacowanej orientacji od rzeczywistej. Akcelerometr może ograniczać dryft roll i pitch, ale nie zapewnia bezwzględnego odniesienia dla yaw.

Czy IMU trzeba kalibrować?

Tak. Kalibracja może obejmować offset, skalę, ustawienie osi, wpływ temperatury oraz położenie czujnika względem korpusu robota. Żyroskop często jest dodatkowo zerowany po uruchomieniu, gdy robot pozostaje nieruchomy.

Gdzie najlepiej zamontować IMU w robocie?

IMU powinno być sztywno połączone z główną konstrukcją robota, możliwie blisko miejsca reprezentującego ruch jego korpusu. Należy ograniczyć wpływ drgań, odkształceń płytki i źródeł ciepła. W przypadku magnetometru trzeba również unikać silników, magnesów i przewodów dużego prądu.

Czy IMU działa bez kamery, LiDAR-u i GNSS?

Tak. IMU samodzielnie mierzy przyspieszenia i prędkości kątowe, dlatego działa również w ciemności, wewnątrz budynków i bez sygnału satelitarnego. Bez zewnętrznego odniesienia nie zapewnia jednak stabilnej, długoterminowej pozycji, a kierunek yaw może stopniowo dryfować.

Jak dane IMU są przesyłane w ROS 2?

Podstawowym formatem jest wiadomość sensor_msgs/msg/Imu, zawierająca orientację, prędkość kątową, przyspieszenie liniowe oraz odpowiadające im macierze kowariancji. Dane bez gotowej orientacji są często publikowane na temacie imu/data_raw, a dane z obliczonym kwaternionem na imu/data.

Czy droższe IMU zawsze zapewnia dokładniejszą orientację?

Nie zawsze. Wynik zależy również od montażu, temperatury, drgań, częstotliwości próbkowania, znaczników czasu, kalibracji oraz algorytmu fuzji. Przy wyborze należy analizować między innymi stabilność biasu, szum, pasmo, opóźnienie i odporność na warunki pracy.

Podsumowanie – dlaczego IMU jest tak ważne w robotyce?

IMU jest jednym z podstawowych układów pomiarowych współczesnego robota. Połączenie trójosiowego akcelerometru i trójosiowego żyroskopu pozwala szybko wykrywać przyspieszenia, przechylenia oraz obroty korpusu. W systemach 9-osiowych dodatkowy magnetometr może dostarczać odniesienia dla kierunku yaw, o ile warunki magnetyczne pozwalają uzyskać wiarygodny pomiar.

Sam moduł IMU nie mierzy bezpośrednio gotowej orientacji ani pozycji robota. Akcelerometr dostarcza składowe przyspieszenia właściwego, a żyroskop prędkości kątowe. Dopiero algorytm fuzji sensorów łączy te dane, ogranicza błędy poszczególnych czujników i wyznacza orientację, najczęściej zapisywaną w postaci kwaternionu.

Największą zaletą IMU jest szybkie i ciągłe dostarczanie informacji o ruchu niezależnie od oświetlenia, widoczności otoczenia oraz dostępności sygnału GNSS. Dzięki temu jednostki inercyjne wspierają utrzymywanie równowagi robotów humanoidalnych i czworonożnych, odometrię platform mobilnych, systemy Visual-Inertial i LiDAR-Inertial, wykrywanie kolizji, analizę drgań oraz kontrolę ruchu manipulatorów.

Jednocześnie wyniki IMU są obciążone szumem, offsetem, wpływem temperatury, drganiami i narastającym dryftem. Z tego powodu czujnik wymaga prawidłowego montażu, kalibracji, synchronizacji czasu i odpowiedniego filtrowania. W zadaniach wymagających stabilnej pozycji lub orientacji długoterminowej IMU powinno współpracować z enkoderami, kamerą, LiDAR-em, GNSS albo systemem lokalizacji względem mapy.

O jakości rozwiązania nie decyduje wyłącznie liczba osi. Równie istotne są stabilność biasu, poziom szumu, zakres pomiarowy, pasmo, opóźnienie, znaczniki czasu oraz poprawna integracja z oprogramowaniem robota. Dobrze dobrane i prawidłowo skonfigurowane IMU jest szybkim źródłem informacji o ruchu, na którym mogą opierać się systemy sterowania, lokalizacji i autonomii robota.

Najważniejsze wnioski

  • Typowe IMU 6-osiowe zawiera trójosiowy akcelerometr i trójosiowy żyroskop.
  • System 9-osiowy dodaje trójosiowy magnetometr, ale nie zawsze zapewnia lepszą orientację.
  • IMU nie mierzy bezpośrednio pozycji ani gotowych kątów roll, pitch i yaw.
  • Orientacja powstaje przez połączenie pomiarów w algorytmie fuzji sensorów.
  • Żyroskop dobrze śledzi szybkie obroty, lecz jego wynik stopniowo dryfuje.
  • Akcelerometr stabilizuje roll i pitch względem grawitacji, ale reaguje również na ruch i drgania.
  • Dokładność zależy od kalibracji, temperatury, montażu, filtrowania i synchronizacji czasu.
  • W długoterminowej lokalizacji IMU powinno współpracować z innymi czujnikami robota.
  • W ROS 2 dane inercyjne są standardowo przesyłane za pomocą wiadomości sensor_msgs/msg/Imu.
  • Dobór IMU powinien wynikać z dynamiki i środowiska pracy konkretnego robota.

Więcej poradników dotyczących czujników, programowania, systemów autonomicznych i technologii wykorzystywanych w robotach znajdziesz w Akademii Robotyki LEDIO Robotics.

Źródła i materiały techniczne

Artykuł opracowano na podstawie dokumentacji technicznej producentów czujników, materiałów dotyczących kalibracji oraz oficjalnej dokumentacji systemu ROS 2.

Budowa, działanie i parametry IMU
Kalibracja i błędy pomiarowe
ROS 2, orientacja i fuzja sensorów

Dokumentacje poszczególnych czujników i pakietów mogą być aktualizowane. Podczas projektowania konkretnego systemu należy zawsze sprawdzić wersję materiałów właściwą dla używanego modułu, sterownika i dystrybucji ROS 2.