Żyroskop w kontrolerze lotu mierzy prędkość kątową kadłuba, a nie jego bezwzględny kąt. To podstawowy sensor szybkiej pętli sterowania: regulator porównuje zadaną i zmierzoną prędkość obrotu, po czym koryguje moment wytwarzany przez napęd lub powierzchnie sterowe. Jakość tego sygnału zależy nie tylko od modelu układu scalonego. Równie istotne są mechanika montażu, widmo drgań, częstotliwość próbkowania, filtr antyaliasingowy, timestamp, zasilanie, temperatura i sposób odczytu magistrali.

Spis treści#

Co mierzy żyroskop#

Wyjściem trójosiowego żyroskopu jest wektor prędkości kątowej:

ω = [ωx, ωy, ωz]ᵀ

Jednostką SI jest radian na sekundę, lecz datasheety i firmware często używają stopni na sekundę. Relacja wynosi 1 rad/s = 180/π °/s. Każda składowa opisuje obrót wokół osi sensora zgodnie z regułą prawej dłoni. Dopiero po transformacji sensor → płytka → kadłub można interpretować osie jako roll, pitch i yaw pojazdu.

Sensor nie zna północy ani kierunku grawitacji. Nieruchomy żyroskop idealny raportuje zero w każdej osi, niezależnie od orientacji. Rzeczywisty układ pokazuje bias i szum. Obrót o stałej prędkości daje sygnał o stałej wartości, ale wyznaczenie kąta wymaga całkowania w czasie. Każdy stały błąd prędkości rośnie wtedy liniowo jako błąd kąta.

Prędkość kątowa jest wielkością fizyczną, nie pochodną trzech kątów Eulera liczonych niezależnie. Przy większych orientacjach zależność między ωx,ωy,ωz a pochodnymi roll/pitch/yaw zawiera transformację zależną od bieżących kątów. Dlatego estymator integruje obrót macierzą lub kwaternionem.

Zasada działania MEMS#

W żyroskopie MEMS mikromechaniczna masa jest pobudzana do drgań w osi napędowej. Gdy cały układ obraca się, na poruszającą się masę działa efekt Coriolisa. Dla masy m, prędkości liniowej elementu v i prędkości kątowej Ω siła ma postać:

F_C = 2m(v × Ω)

Powstałe przemieszczenie w osi detekcji jest bardzo małe. Elektrody pojemnościowe zamieniają je na sygnał elektryczny, a pętla sterująca strukturą drgającą utrzymuje odpowiednią amplitudę i częstotliwość wzbudzenia. Tor analogowy, przetwornik, kompensacja fabryczna i filtry cyfrowe tworzą wynik dostępny w rejestrze.

To wyjaśnia wrażliwość sensora na mechaniczne pobudzenie. Drgania ramy bliskie częstotliwościom struktur wewnętrznych lub nieliniowości toru mogą wytworzyć pozorną prędkość kątową. Zjawisko nie zawsze znika po zwykłym filtrze dolnoprzepustowym, ponieważ prostowanie drgań i aliasing mogą przenieść energię do niższego pasma.

Nowoczesny sześcioosiowy IMU zawiera trzy żyroskopy i trzy akcelerometry. Przykładowy ICM‑42688‑P oferuje wybierane zakresy żyroskopu od ±15,625 do ±2000°/s, zakresy akcelerometru ±2…±16 g, programowalne filtry, FIFO oraz interfejs SPI. BMI088 rozdziela część żyroskopową i akcelerometryczną wewnątrz układu z myślą o środowiskach o dużych drganiach. Parametry konkretnego wariantu i rewizji zawsze należy sprawdzać w aktualnym datasheetcie.

Od wielkości analogowej do próbki#

Tor pomiarowy można przedstawić jako:

struktura MEMS → front-end analogowy → ADC → filtr cyfrowy → FIFO → magistrala → sterownik → estymator

Każdy blok ma własne pasmo, opóźnienie i zegar. Rejestr odczytany z częstotliwością 8 kHz nie musi zawierać 8 tysięcy niezależnych próbek na sekundę. Jeśli wewnętrzny ODR wynosi 1 kHz, host może wielokrotnie pobrać tę samą próbkę. Odwrotnie, odczyt 1 kHz przy produkcji 8 kHz bez FIFO może pomijać dane w sposób zależny od fazy.

Wymagany jest opis domeny czasu: moment fizycznego próbkowania, czas umieszczenia danych w FIFO, chwila przerwania i czas odebrania przez MCU. Estymator powinien używać czasu pomiaru. Opóźnienie stałe można modelować, ale zmienny jitter magistrali przekłada się na błąd integracji.

Zakres, czułość i rozdzielczość#

Zakres pełnoskalowy określa największą prędkość kątową, jaką można zmierzyć bez saturacji. Dla wyjścia 16-bitowego przy zakresie ±2000°/s nominalna liczba jednostek na stopień na sekundę jest mniejsza niż przy ±250°/s. Mniejszy zakres daje drobniejszy krok kwantyzacji, ale ogranicza margines na gwałtowny manewr i uderzenie.

Dobór zakresu powinien wynikać z logów maksymalnych prędkości, a nie z założenia, że większa czułość zawsze poprawia lot. Saturacja żyroskopu jest poważna: estymator przestaje obserwować część rzeczywistego obrotu, więc po ustaniu przeciążenia może mieć błędną orientację. Zapas powinien obejmować manewry, podmuchy, odbicie przy lądowaniu i krótkie zdarzenia mechaniczne.

Rozdzielczość cyfrowa nie jest dokładnością. Jeśli szum RMS obejmuje kilka lub kilkanaście najmłodszych bitów, dodatkowe bity formatu nie tworzą informacji. Z kolei ograniczenie wyjścia do małej liczby bitów może dodać mierzalny szum kwantyzacji. Porównując sensory, trzeba zestawiać gęstość szumu, pasmo, stabilność biasu, błąd skali i opóźnienie, a nie wyłącznie liczbę bitów.

Bias i dryf orientacji#

Model pojedynczej osi można zapisać:

ω_m = (1 + s)ω + b + n

gdzie s jest błędem skali, b biasem, a n szumem. Wektorowy model dodaje macierz nieortogonalności i sprzężeń osi.

Bias to wyjście przy zerowej rzeczywistej prędkości. Składa się z błędu początkowego, powtarzalności między uruchomieniami, zależności od temperatury, naprężeń mechanicznych i wolnych procesów losowych. Jeżeli bias wynosi 0,1°/s, naiwna integracja przez minutę daje około błędu. Dlatego orientacja bez zewnętrznych obserwacji nie pozostaje dokładna dowolnie długo.

Kalibracja przy starcie estymuje bieżące zero pod warunkiem, że pojazd jest nieruchomy. Uśrednianie zmniejsza składową białego szumu, ale nie usuwa dryfu w trakcie lotu. Zbyt długa kalibracja nie zawsze pomaga: po rozgrzewaniu zmienia się temperatura, a wolny bias może odejść od wartości początkowej.

W locie estymator może korygować część biasu na podstawie kierunku grawitacji, magnetometru, GNSS, wizyjnej pozy lub innych obserwacji. Obserwowalność zależy od ruchu. Bias yaw jest trudniejszy do odróżnienia od błędu kursu, gdy brakuje wiarygodnej obserwacji kierunku.

Szum i angle random walk#

Datasheet może podawać gęstość szumu w °/s/√Hz, mdps/√Hz albo rad/s/√Hz. Całkowity szum RMS zależy od efektywnego pasma szumowego filtra, nie wyłącznie od ODR:

σ_rate ≈ density · sqrt(BW_noise)

Przykładowo dwukrotne zwiększenie pasma podnosi RMS białego szumu około √2 razy. Dokładny współczynnik zależy od charakterystyki filtra. Częstotliwość odcięcia -3 dB nie zawsze równa się efektywnemu pasmu szumowemu.

Całkowanie białego szumu prędkości tworzy angle random walk. Niepewność kąta rośnie w przybliżeniu z pierwiastkiem czasu, w przeciwieństwie do stałego biasu, którego efekt rośnie liniowo. Oznaczenia ARW w datasheetach wymagają kontroli jednostek, zwłaszcza przejść między sekundą a godziną.

Filtrowanie zmniejsza szum, ale dodaje opóźnienie. Regulator prędkości kątowej potrzebuje dostatecznego pasma fazowego, więc nie można bez końca obniżać częstotliwości filtra. Projekt jest kompromisem pomiędzy szumem, rezonansami konstrukcji i opóźnieniem pętli.

Analiza Allana#

Odchylenie Allana analizuje stabilność sygnału dla różnych czasów uśredniania τ. Z długiego zapisu nieruchomego sensora tworzy się średnie w kolejnych przedziałach i bada różnice sąsiednich średnich. Kształt wykresu log–log pomaga rozdzielać procesy losowe, których zwykłe odchylenie standardowe całego pliku nie identyfikuje.

Dla krótkich τ może dominować biały szum. Wraz z uśrednianiem jego wpływ maleje. Minimum krzywej wiąże się praktycznie z najlepszą osiągalną stabilnością średniej w danych warunkach, a wzrost dla długich czasów sygnalizuje wolny dryf. Analog Devices pokazuje użycie krzywych Allana do wyboru czasu kalibracyjnego i oceny biasu.

Badanie wymaga długiego, równomiernie próbkowanego zapisu w stabilnej temperaturze, informacji o rzeczywistym ODR i braku ruchu stanowiska. Krótki log może nie ujawnić procesów długookresowych. Wibracje budynku, ruch stołu i zmiana temperatury nie są wewnętrznym szumem sensora, lecz wpływają na wynik systemowy — co bywa właśnie celem badania gotowego kontrolera.

Nie należy przepisywać jednego minimum z wykresu producenta jako gwarantowanej dokładności autopilota. Datasheet opisuje warunki testowe układu. Lutowanie, obudowa, mocowanie, zasilanie i środowisko temperaturowe tworzą inną charakterystykę.

Temperatura i rozgrzewanie#

Bias i współczynnik skali zależą od temperatury struktury MEMS. Wbudowany czujnik temperatury mierzy temperaturę układu, nie powietrza. Po włączeniu elektronika nagrzewa się własną mocą; słońce, przepływ powietrza i sąsiednie przetwornice zmieniają stan cieplny podczas lotu.

Kalibracja temperaturowa polega na rejestracji biasu w wielu temperaturach przy pewnym stanie nieruchomym, a następnie dopasowaniu funkcji lub tabeli. Dla każdej osi parametry są inne. Przebieg ogrzewania i chłodzenia może wykazywać histerezę oraz opóźnienie, więc sama chwilowa temperatura nie zawsze wyjaśnia pełny błąd.

Projekt kontrolera może stabilizować termicznie obszar IMU albo przynajmniej ograniczać szybkie zmiany. Izolacja termiczna zmniejsza przepływ, lecz podnosi temperaturę ustaloną i wydłuża rozgrzewanie. Grzejnik daje kontrolowany punkt pracy kosztem energii i złożoności. Należy walidować cały zakres środowiskowy, a nie tylko temperaturę pomieszczenia.

Błąd skali, nieortogonalność i cross-axis#

Fabryczna czułość nie jest idealna. Błąd skali powoduje, że obrót o znanej prędkości jest raportowany z proporcjonalnym błędem. Do jego pomiaru potrzebne jest stanowisko zapewniające znaną prędkość lub kąt. Ręczny obrót „około jednego pełnego koła” może służyć jako test zgrubny, lecz nie jako precyzyjna kalibracja dynamiczna.

Osie mikromechaniczne nie są idealnie prostopadłe, a obudowa nie jest idealnie ustawiona względem PCB. W modelu macierzowym:

ω_m = Mω + b + n

macierz M zawiera skale i małe sprzężenia między osiami. Obrót wyłącznie wokół X może więc pojawić się w Y i Z. Kalibracja macierzy wymaga pobudzeń w różnych orientacjach i dostatecznej jakości wzorca.

Cross-axis sensitivity podawana przez producenta nie obejmuje błędu montażu całej płytki w ramie. Transformację stałą sensor → body należy zachować osobno od kalibracji wewnętrznej sensora. Dzięki temu przełożenie płytki nie unieważnia parametrów samego IMU.

Drgania, rezonans i aliasing#

Silnik, śmigło, zęby komutacji, rama i luzy tworzą wiele linii widmowych. Podstawowa częstotliwość przejścia łopat wynosi:

f_BPF = liczba_łopat · RPM / 60

Do tego dochodzą harmoniczne, częstotliwości elektryczne napędu i rezonanse konstrukcji. RPM zmienia się w locie, więc wąska linia przesuwa się po widmie.

Aliasing zachodzi, gdy składowa powyżej połowy częstotliwości próbkowania zostaje odwzorowana do niższego pasma. Filtr cyfrowy działający po próbkowaniu nie może odtworzyć utraconej informacji. Potrzebny jest odpowiedni filtr analogowy lub wewnętrzny tor sensora przed decymacją. ODR, pasmo wewnętrzne i częstotliwość odczytu trzeba traktować jako osobne parametry.

Miękkie mocowanie FC działa jak filtr mechaniczny, ale ma własną częstotliwość rezonansową. Zbyt miękkie elementy mogą wzmacniać niskie częstotliwości, pozwalać płytce uderzać o ograniczniki albo zmieniać położenie przy przyspieszeniu. Dobre rozwiązanie wynika z pomiaru widma, nie z maksymalnego „odizolowania”.

Nieliniowa odpowiedź na wibrację może powodować vibration rectification error: sygnał o średniej bliskiej zeru generuje offset. Wtedy notch usuwający widoczną częstotliwość po fakcie może nie usunąć powstałego niskoczęstotliwościowego błędu.

ODR, filtr i opóźnienie#

ODR określa tempo powstawania próbek. Pasmo filtra określa, jakie częstotliwości przechodzą. Częstotliwość pętli firmware mówi, jak często regulator wykonuje obliczenia. Te liczby mogą być różne.

Wyższy ODR ułatwia filtrację i ogranicza aliasing, ale zwiększa transfery, obciążenie CPU oraz wrażliwość na błędy harmonogramu. Obniżenie pasma redukuje szum, lecz zwiększa opóźnienie grupowe. Filtry IIR mają fazę zależną od częstotliwości; FIR może zapewnić bardziej przewidywalną fazę kosztem opóźnienia i obliczeń.

Opóźnienie od ruchu do aktuatora obejmuje sensor, filtr, oczekiwanie na odczyt, estymator, regulator, protokół ESC i dynamikę silnika. Parametr filtra żyroskopu należy oceniać w całym tym łańcuchu. Stabilna pętla wymaga zapasu fazy przy częstotliwości przecięcia.

SPI, I²C, FIFO i timestamp#

SPI jest często wybierane dla szybkiego IMU, ponieważ zapewnia dużą przepustowość, osobny chip select i przewidywalną transakcję. I²C może wystarczyć dla wolniejszych sensorów, lecz współdzielona magistrala, rozciąganie zegara i obsługa błędów zwiększają zmienność czasu. O jakości nie decyduje nazwa magistrali, tylko kompletna implementacja.

Sygnał data-ready pozwala rozpocząć odczyt po powstaniu próbki. Polling niezwiązany fazowo z ODR może dublować lub pomijać dane. FIFO amortyzuje krótkie opóźnienia MCU i umożliwia burst read, ale wymaga dekodowania kolejności, licznika próbek, znaczników typów i przepełnienia.

Po utracie bajtu strumień FIFO może zostać źle zramkowany. Sterownik powinien sprawdzać liczbę dostępnych rekordów, status overflow, monotoniczność timestampów i wartości rejestrów identyfikacyjnych. Reset sensora w locie musi być jawnie przekazany estymatorowi; ciche wznowienie z inną konfiguracją może dać pozornie poprawne liczby o innej skali.

Orientacja sensora na płytce#

Datasheet definiuje dodatnie osie obudowy. Schemat i layout definiują obrót układu względem płytki. Konfiguracja autopilota definiuje obrót płytki względem kadłuba. Poprawność sprawdza się fizycznie: dodatni obrót wokół każdej osi powinien wywołać oczekiwany znak dokładnie jednej dominującej składowej.

ROS REP 145 rozróżnia surowe dane sensora od danych po transformacji do konwencji ramki. Niezależnie od użytego ekosystemu nie należy publikować danych „już jakoś obróconych” bez wskazania frame ID.

Jeżeli dwa IMU są zamontowane w różnych orientacjach, porównanie surowych osi jest bezcelowe. Najpierw oba wektory trzeba przenieść do wspólnej ramki i zsynchronizować w czasie.

Kalibracja zerowa i pełna#

Kalibracja zerowa przed startem powinna:

  1. wykryć rzeczywistą nieruchomość z użyciem żyroskopu i akcelerometru;
  2. zebrać próbki po początkowym ustaleniu konfiguracji sensora;
  3. odrzucić serię poruszoną lub z saturacją;
  4. obliczyć średnią każdej osi i miarę rozrzutu;
  5. porównać wynik z dopuszczalnym zakresem;
  6. zapisać temperaturę i czas;
  7. oznaczyć estymatę biasu jako niepewną, nie absolutnie prawdziwą.

Pełna kalibracja może obejmować błąd skali, macierz osi i model temperatury. Wymaga wzorca ruchu. Parametry muszą być wersjonowane dla konkretnego egzemplarza, zakresu i konfiguracji filtra. Po wymianie sensora lub zmianie naprężeń montażowych należy powtórzyć walidację.

Self-test wbudowany w układ pobudza strukturę i sprawdza zmianę odpowiedzi względem limitów producenta. Nie zastępuje kalibracji ani testu pasma, ale pomaga wykryć uszkodzenie po montażu.

Integracja prędkości kątowej#

Najprostsza jednowymiarowa integracja ma postać:

θ[k+1] = θ[k] + (ω[k] - b[k])Δt

W trzech wymiarach taki zapis osobno dla kątów Eulera jest niewłaściwy przy ogólnym ruchu. Stosuje się przyrost obrotu w grupie rotacji, zwykle aktualizację kwaternionu. Dla małego kroku wektor przyrostu wynosi około δθ = ωΔt, po czym tworzy się kwaternion przyrostowy i normalizuje wynik.

Dokładny Δt jest krytyczny. Przy nominalnym 1 kHz stałe użycie 0,001 s jest poprawne tylko wtedy, gdy próbki rzeczywiście są równomierne i żadnej nie zgubiono. Timestamp sprzętowy lub licznik ODR jest lepszy niż czas zakończenia odczytu SPI.

Coning występuje, gdy kolejność małych obrotów w różnych osiach ma znaczenie w obrębie przedziału integracji. W precyzyjnych INS stosuje się korekcje coning oparte na kilku podpróbkach. W małym UAV znaczenie zależy od dynamiki, ODR i wymaganej dokładności, ale bezmyślna decymacja wektorów może pogorszyć orientację.

Rola w estymatorze i regulatorze#

Żyroskop zapewnia szybką propagację orientacji, a inne sensory korygują wolny dryf. Akcelerometr pomaga obserwować kierunek grawitacji tylko wtedy, gdy estymator potrafi oddzielić przyspieszenie translacyjne. Magnetometr, GNSS course, dual-antenna heading lub system wizyjny mogą dostarczać informacji o yaw.

W regulatorze rate surowy bias wygląda jak stałe żądanie momentu. Regulator integralny może go częściowo skompensować, ale nie naprawia błędnej orientacji estymatora. Szum żyroskopu przechodzi do członu D i sygnałów silników, zwiększając nagrzewanie oraz pobudzenie rezonansów.

Filtrowanie dla estymatora i regulatora nie zawsze musi być identyczne. Estymator potrzebuje znanej charakterystyki i prawidłowej kowariancji, a regulator niskiego opóźnienia. Rozgałęzienie sygnału wymaga jednak jasnego timestampu i kontroli, aby oba tory nie używały próbek z różnych epok.

Redundancja#

Dwa identyczne sensory na jednej płytce nie eliminują wspólnych przyczyn: drgań, temperatury, błędu zasilania, błędnej konfiguracji i błędu firmware. Pomagają wykrywać awarię pojedynczego układu, ale ich błędy mogą być skorelowane.

Porównanie odbywa się po transformacji do wspólnej ramki i wyrównaniu czasowym. Próg stałej różnicy powinien uwzględniać szum i dynamikę. Voting trzech sensorów nie rozwiązuje sytuacji, gdy dwa są obciążone tym samym błędem systemowym. Wybór sensora może powodować skok biasu, więc estymator powinien utrzymywać osobne stany lub wykonać kontrolowane przejście.

Diagnostyka z logów#

W logach warto rejestrować dane przed i po filtracji, temperaturę, status FIFO, liczbę błędów magistrali, timestamp, clipping oraz wybrany sensor. Przydatne widoki to:

  • histogram i średnia podczas postoju;
  • PSD każdej osi przy rozbrojonym i pracującym napędzie;
  • spektrogram podczas zmiany RPM;
  • korelacja widma z telemetrią ESC;
  • bias względem temperatury;
  • różnica między redundantnymi IMU;
  • opóźnienie względem znanego pobudzenia;
  • liczba zgubionych lub zdublowanych próbek.

Wąskie linie podążające za RPM wskazują napęd. Stała linia niezależna od obrotów może pochodzić z rezonansu innego urządzenia lub z elektroniki. Szeroki wzrost tła sugeruje luzy, turbulencję, szum konstrukcji albo clipping. Saturację należy wykrywać na danych możliwie blisko rejestru, ponieważ filtr może ukryć płaski wierzchołek.

Procedura uruchomienia#

  1. Zweryfikuj identyfikator układu i reset rejestrów.
  2. Ustaw zakres z zapasem do przewidywanej dynamiki.
  3. Ustal ODR, pasmo, filtr i tryb zasilania na podstawie datasheetu.
  4. Skonfiguruj data-ready lub FIFO i kontroluj overflow.
  5. Przelicz surowe jednostki dopiero po sprawdzeniu rewizji konfiguracji.
  6. Zmierz rzeczywisty odstęp próbek i latency.
  7. Sprawdź osie oraz znaki ruchem w jednym kierunku.
  8. Zapisz co najmniej kilkadziesiąt minut danych nieruchomych dla szumu i temperatury.
  9. Uruchom napęd na stanowisku i zbadaj widmo bez śmigieł oraz ze śmigłami w bezpiecznej konfiguracji.
  10. Przeprowadź testy zakresu, clippingu i reakcji na reset.
  11. Dopiero potem włącz sensor do estymatora i regulatora, zachowując możliwość logowania toru surowego.

Powiązane tematy#

Przypisy#

  1. TDK InvenSense, ICM‑42688‑P — zakresy, gęstość szumu, interfejsy, filtry i FIFO.
  2. Bosch Sensortec, BMI088 — charakterystyka IMU projektowanego do środowisk o dużych drganiach.
  3. Analog Devices, AN‑1041: Bias Optimization Tips — bias, uśrednianie i interpretacja analizy Allana.
  4. Analog Devices, The Basics of MEMS IMU/Gyroscope Alignment — błąd osi i wymagania stanowiska kalibracyjnego.
  5. ROS, REP 145: Conventions for IMU Sensor Drivers — ramki, znaki i semantyka komunikatów IMU.

Utworzono: 15 sierpnia 2026. Ostatnia aktualizacja: 15 sierpnia 2026. Źródła zweryfikowano: 15 sierpnia 2026.

Źródła z centralnego rejestru

  1. TDK InvenSense: ICM-42688-P [datasheet]
  2. Bosch Sensortec: BMI088 [datasheet]
  3. Analog Devices AN-1041: iSensor IMU Quick Start Guide and Bias Optimization Tips [nota aplikacyjna producenta]
  4. Analog Devices: The Basics of MEMS IMU/Gyroscope Alignment [artykuł techniczny producenta]
  5. ROS REP 145: Conventions for IMU Sensor Drivers [standard projektu open source]