Filtr Kalmana nie jest algorytmem, który automatycznie „wygładza wszystkie sensory”. Jest rekurencyjnym estymatorem stanu opartym na modelu dynamiki, modelach pomiaru i jawnych założeniach o niepewności. W UAV rozszerzony filtr Kalmana łączy szybkie przyrosty IMU z wolniejszymi obserwacjami GNSS, barometru, magnetometru, dalmierza, przepływu optycznego i wizji. Jego jakość zależy przede wszystkim od poprawności ramek, timestampów, biasów, kowariancji oraz logiki wykrywania pomiarów sprzecznych z modelem.
Spis treści#
- Co jest stanem
- Model liniowy Kalmana
- Predykcja
- Aktualizacja pomiarem
- Innowacja i jej kowariancja
- Dlaczego UAV potrzebuje EKF
- Linearyzacja i jakobiany
- Error-state i orientacja
- Przykładowy stan nawigacyjny
- Proces strapdown INS
- Macierz Q
- Macierz R
- GNSS
- Barometr i dalmierz
- Magnetometr
- Przepływ optyczny i wizja
- Opóźnienia i horyzont fuzji
- Lever arm
- Bramkowanie innowacji
- Joseph form i stabilność numeryczna
- Reset stanu i przełączanie źródeł
- Obserwowalność
- Strojenie
- Diagnostyka
- Replay i testy
- Typowe błędy
- Powiązane tematy
- Przypisy
Co jest stanem#
Stan x jest minimalnym zestawem wielkości potrzebnych do przewidywania przyszłego stanu i pomiarów w przyjętym modelu. Dla prostego ruchu pionowego może to być:
x = [wysokość, prędkość pionowa, bias akcelerometru, bias barometru]ᵀ
Dla pełnej nawigacji dochodzą orientacja, prędkość i pozycja 3D, biasy żyroskopu i akcelerometru, pole magnetyczne, wiatr, wysokość terenu oraz parametry sensorów. Większy stan nie jest automatycznie lepszy. Każdy składnik musi mieć model dynamiki i być obserwowalny z dostępnych pomiarów.
Estymata x̂ bez niepewności jest niepełna. Filtr przechowuje macierz kowariancji P. Elementy diagonalne opisują wariancje stanów, a pozadiagonalne — korelacje. Jeżeli błąd orientacji jest skorelowany z biasem żyroskopu, aktualizacja obserwacją kierunku może skorygować oba.
P nie jest arbitralnym „confidence score”. Musi być zgodna z definicją błędu stanu i jednostkami. Wariancja pozycji ma m², wariancja biasu żyroskopu (rad/s)², a kowariancja między nimi jednostkę mieszaną.
Model liniowy Kalmana#
Dyskretny model liniowy zapisuje się:
x[k+1] = F[k] x[k] + B[k] u[k] + w[k]
z[k] = H[k] x[k] + v[k]
F opisuje przejście stanu, u sterowanie lub znane wejście, H mapuje stan na przewidywany pomiar. Szumy w i v są zwykle modelowane jako zerowe, o kowariancjach Q i R oraz bez wzajemnej korelacji w podstawowej postaci.
Założenie Gaussa sprawia, że średnia i kowariancja opisują rozkład. Rzeczywiste błędy GNSS, magnetometru i wizyjnych detektorów często mają ciężkie ogony lub outliery. Dlatego praktyczny filtr dodaje testy jakości, bramkowanie i stany awarii.
Filtr jest optymalny tylko względem modelu i założeń. Zaniżone R dla zakłóconego sensora może dać gorszy wynik niż prosty filtr komplementarny.
Predykcja#
Dla modelu liniowego:
x̂⁻ = F x̂⁺ + B u
P⁻ = F P⁺ Fᵀ + Q
Minus oznacza estymatę przed nowym pomiarem, plus po poprzedniej aktualizacji. Predykcja przenosi stan modelem oraz zwiększa niepewność o Q. Jeśli długo nie ma obserwacji, P powinna rosnąć. Filtr, który utrzymuje stałą wysoką pewność bez pomiarów, ma błędny model kowariancji.
W nawigacji wejściem są przyrosty kąta i prędkości z IMU. Biasy są odejmowane przed propagacją. Orientacja obraca siłę właściwą z body do navigation, dodawana jest grawitacja, a wynik całkowany do prędkości i pozycji.
Predykcja stanu nominalnego jest nieliniowa. Predykcja błędu i kowariancji używa lokalnej linearyzacji.
Aktualizacja pomiarem#
Dla liniowego pomiaru:
y = z - H x̂⁻
S = H P⁻ Hᵀ + R
K = P⁻ Hᵀ S⁻¹
x̂⁺ = x̂⁻ + K y
P⁺ = (I - KH)P⁻
y jest innowacją, S jej przewidywaną kowariancją, a K wzmocnieniem Kalmana. Gdy R jest duże względem przewidywanej niepewności, filtr ufa bardziej modelowi. Gdy P rośnie i pomiar jest precyzyjny, korekta jest silniejsza.
Nie należy jawnie odwracać dużej macierzy S, jeśli można rozwiązać układ liniowy stabilną metodą. Dla pomiaru skalarnego dzielenie jest proste. Dla wektorowego używa się dekompozycji dostosowanej do własności macierzy.
Kolejność niezależnych aktualizacji skalarnych może zmniejszyć koszt, ale wymaga ostrożności, gdy składniki R są skorelowane. Dekorelacja lub pełna aktualizacja zachowuje model.
Innowacja i jej kowariancja#
Innowacja jest najważniejszym sygnałem diagnostycznym. Powinna być w przybliżeniu zerowa w średniej i zgodna statystycznie z S. Znormalizowana innowacja:
r = y / sqrt(S)
dla pomiaru skalarnego mówi, ile przewidywanych odchyleń dzieli pomiar od modelu. Dla wektora używa się odległości Mahalanobisa:
d² = yᵀ S⁻¹ y
Stała niezerowa średnia innowacji wskazuje bias, zły model, ramkę albo opóźnienie. Zbyt mały rozrzut względem S oznacza prawdopodobnie zawyżone niepewności. Zbyt duży — niedoszacowane Q/R, outliery albo brakujący stan.
Analiza tylko estymowanego toru jest niewystarczająca, bo filtr może wyglądać płynnie mimo sprzeczności. Innowacje, test ratio i powody odrzucenia muszą być logowane.
Dlaczego UAV potrzebuje EKF#
Modele UAV są nieliniowe z kilku powodów:
- orientacja obraca wektory przez macierz zależną od stanu;
- propagacja kwaternionu jest nieliniowa;
- GNSS geodetic→local zależy od geometrii Ziemi;
- magnetometr obserwuje pole po obrocie do body;
- przepływ optyczny zależy od odległości i prędkości kątowej;
- barometr ma nieliniową relację ciśnienie–wysokość.
EKF propaguje stan funkcją f i pomiar funkcją h:
x[k+1] = f(x[k], u[k]) + w
z[k] = h(x[k]) + v
Kowariancję propaguje przez jakobiany F = ∂f/∂x i H = ∂h/∂x obliczone wokół bieżącej estymaty. To lokalne przybliżenie. Przy dużym błędzie inicjalnym lub silnej nieliniowości może być słabe.
Linearyzacja i jakobiany#
Jakobian mówi, jak mała zmiana stanu wpływa na funkcję. Błąd znaku lub indeksu może nie ujawnić się w kompilacji, ale prowadzić do niespójnej kowariancji.
Jakobiany można wyprowadzać ręcznie, generować symbolicznie albo różniczkować automatycznie. PX4 wskazuje użycie SymForce do wyprowadzania równań części EKF. Niezależnie od metody potrzebne są testy numeryczne przez finite differences:
J_col_i ≈ [f(x + εe_i) - f(x - εe_i)] / (2ε)
ε dobiera się do skali stanu. Jedna wartość dla pozycji w metrach, kąta w radianach i biasu może powodować błąd numeryczny.
Test porównuje jakobian analityczny z numerycznym w wielu stanach, w tym blisko granic. Automatyczne wyprowadzenie nie naprawia złej definicji modelu.
Error-state i orientacja#
Kwaternion nominalny ma cztery składowe i ograniczenie normy, choć orientacja ma trzy stopnie swobody. Bezpośrednie dodawanie czterowymiarowej korekty z liniowego EKF jest niewygodne. Error-state filter utrzymuje pełny stan nominalny, ale mały błąd orientacji reprezentuje trójwektorem w przestrzeni stycznej SO(3).
Typowo:
q_true = δq(δθ) ⊗ q_nominal
albo z odwrotną kolejnością, zależnie od definicji błędu. Dla małego δθ kwaternion błędu jest przybliżony przez [1, 1/2 δθ]. Po aktualizacji korekta jest wstrzykiwana do stanu nominalnego, kwaternion normalizowany, a błąd resetowany do zera. Kowariancja wymaga odpowiedniej transformacji resetu.
PX4 dokumentuje użycie error-state m.in. dla stabilnej reprezentacji niepewności rotacji. Pominięcie Jacobianu resetu może dać subtelnie niespójne P.
Przykładowy stan nawigacyjny#
Praktyczny stan może zawierać:
q_nb orientacja navigation→body lub body→navigation
v_n prędkość NED
p pozycja globalna/lokalna
b_g bias żyroskopu
b_a bias akcelerometru
B_earth_n pole Ziemi w NED
B_body_bias lokalny bias magnetyczny
w_NE wiatr poziomy
h_terrain wysokość terenu
b_baro bias barometru
Nie każdy filtr używa dokładnie tego zestawu. PX4 EKF2 dokumentuje stan obejmujący kwaternion, prędkość, pozycję, biasy IMU, pole magnetyczne, bias pola body, wiatr i teren.
Stan nominalny i błąd nie muszą mieć tej samej liczby składowych. Pozycja może być przechowywana globalnie, a jej niepewność lokalnie w NED. Interfejs musi jasno to opisywać.
Proces strapdown INS#
IMU dostarcza przyrost kąta Δθ i prędkości Δv albo surowe rate/accel. Wysokiej jakości preintegracja uwzględnia rzeczywisty czas, coning i sculling. Schemat:
- odjąć biasy;
- skorygować skalę i osie;
- zaktualizować orientację przyrostem kąta;
- obrócić przyrost prędkości do navigation;
- dodać grawitację;
- zaktualizować prędkość i pozycję;
- propagować biasy modelem random walk;
- propagować
P.
Kolejność i punkt czasowy rotacji mają znaczenie. Obrót siły orientacją końca przedziału zamiast średnią może wprowadzić błąd w dynamicznym ruchu.
W długim locie uwzględnia się model Ziemi, zmianę lokalnej ramki i ewentualnie efekty obrotu Ziemi zależnie od klasy INS. Dla małego UAV wybór musi wynikać z wymaganej dokładności, a nie z kopiowania lotniczego modelu bez weryfikacji.
Macierz Q#
Q opisuje niepewność procesu w kroku dyskretnym: szum IMU, random walk biasów, niedokładność modelu i zmienność parametrów. Nie jest po prostu tabelą gęstości szumu z datasheetu. Trzeba przeliczyć jednostki, pasmo i czas dyskretyzacji.
Dla białego szumu ciągłego o gęstości spektralnej dyskretny wkład zależy od Δt oraz sposobu, w jaki szum wchodzi do stanu. Różne bloki mają potęgi Δt. Ręczne mnożenie całej Q przez dt jest poprawne tylko dla określonego modelu.
Zbyt małe Q sprawia, że filtr jest nadmiernie pewny modelu i odrzuca poprawne pomiary. Zbyt duże daje zaszumiony stan i nadmierne śledzenie obserwacji. Jeśli model nie uwzględnia przyspieszenia, zwiększenie process noise może częściowo pokryć manewry, ale nie zastępuje właściwej dynamiki.
Bias żyroskopu może być modelem random walk:
b[k+1] = b[k] + w_b
albo procesem Gaussa–Markowa z czasem korelacji. Wybór powinien wynikać z danych temperaturowych i analizy Allana.
Macierz R#
R opisuje szum obserwacji po całym torze przetwarzania. Dla GNSS obejmuje nie tylko termiczny szum odbiornika, lecz multipath, środowisko anteny i tryb rozwiązania. Dla barometru — szum, przepływ i temperaturę. Dla magnetometru — lokalne pole instalacji.
Wartość raportowana przez sensor może być dynamiczna. GNSS dostarcza szacunki dokładności, system wizyjny kowariancję, a dalmierz status jakości. Nie wolno bezwarunkowo ufać zerowej lub absurdalnie małej kowariancji z zewnętrznego modułu. Potrzebne są minima, maksima i walidacja.
Kowariancję transformuje się wraz z ramką:
R' = J R Jᵀ
Przestawienie ENU→NED samych wartości bez R powoduje, że filtr ufa niewłaściwej osi.
GNSS#
GNSS może obserwować pozycję i prędkość. Prędkość Dopplerowska ma często inne właściwości niż różniczkowana pozycja. Należy używać właściwych timestampów i osobnych kowariancji.
Pozycję globalną przelicza się do stanu z odpowiednim datum i wysokością. Wysokość elipsoidalna nie jest barometryczną ani MSL bez transformacji. Prędkość może być NED, ENU albo ECEF zależnie od odbiornika.
Testy jakości obejmują liczbę satelitów, geometrię, fix type, accuracy, prędkość, dryf i zgodność z predykcją. Status RTK nie gwarantuje braku multipath. Skok pozycji z małą zadeklarowaną wariancją nadal wymaga bramkowania.
Kurs z ruchu nie obserwuje kierunku kadłuba w spoczynku ani przy bocznym wietrze w prosty sposób. Fuzja yaw z GNSS wymaga właściwego modelu. Dual-antenna heading jest innym typem obserwacji.
Barometr i dalmierz#
Barometr obserwuje wysokość z wolnym biasem zależnym od pogody i temperatury. Stan b_baro może być korygowany GNSS. Błąd portu zależny od prędkości wymaga modelu aerodynamicznego lub zwiększenia niepewności.
Dalmierz obserwuje odległość wzdłuż własnej osi do powierzchni. Aby uzyskać pionowe AGL, trzeba uwzględnić orientację i geometrię terenu. Przy przechyleniu płaski grunt daje inną drogę wiązki. Nad krawędzią lub roślinnością pomiar może przeskoczyć.
Przejście źródła wysokości wymaga wyrównania offsetów. Natychmiastowe zastąpienie barometru dalmierzem może skokowo zmienić stan. Lepiej estymować osobne biasy lub wykonać kontrolowany reset z raportem delta.
Magnetometr#
Model pełnego wektora:
z_mag = R_nb B_earth + B_body_bias + v
pozwala estymować orientację, pole Ziemi i lokalny bias. Wymaga jednak wystarczającego ruchu, dobrej kalibracji i kontroli zakłóceń. Stany pola mogą wchłonąć błąd orientacji, jeśli problem jest słabo obserwowalny.
Alternatywą jest fuzja headingu. Upraszcza pomiar, lecz wyrzuca inklinację i wymaga wcześniejszej kompensacji przechylenia. W obu przypadkach zakłócenie zależne od prądu nie jest białym szumem i powinno uruchomić odrzucenie lub model kompensacyjny.
Po utracie magnetometru kowariancja yaw powinna rosnąć. Powrót obserwacji wymaga bramki i kontrolowanej korekty.
Przepływ optyczny i wizja#
Optical flow mierzy ruch obrazu w radianach lub pikselach na czas. Do przeliczenia na prędkość potrzebna jest wysokość, orientacja kamery, parametry optyczne i kompensacja prędkości kątowej. Błąd skali wysokości staje się błędem prędkości.
Wizyjna odometria może dostarczać pozycję, prędkość lub pełną pozę w ENU/FLU, podczas gdy autopilot pracuje w NED/FRD. Transformacja obejmuje wartości, orientację, prędkości i kowariancję. frame_id, origin i timestamp są częścią pomiaru.
System wizyjny może po loop closure skorygować mapę skokowo. Estymator musi wiedzieć, czy wejście jest ciągłą odometrią, czy globalną pozą podlegającą resetom. Delta resetu powinna być przekazana, nie udawać ekstremalnej prędkości.
Opóźnienia i horyzont fuzji#
Sensory mają różne opóźnienia: IMU kilka milisekund lub mniej, GNSS dziesiątki/setki ms, wizja zależna od ekspozycji i obliczeń. Aktualizacja starego pomiaru na bieżącym stanie tworzy błąd proporcjonalny do ruchu.
Jedno rozwiązanie utrzymuje historię stanów i IMU. Pomiar jest fuzowany na opóźnionym horyzoncie odpowiadającym jego timestampowi, a następnie stan propagowany ponownie do teraz. PX4 EKF2 opisuje wspólny delayed fusion horizon oraz komplementarną propagację wyjścia do czasu bieżącego.
Bufor musi być dłuższy niż największe opóźnienie z marginesem. Zbyt duży horyzont zwiększa pamięć i błąd propagacji wyjścia; zbyt mały wymusza fuzję w złym czasie. Parametr delay powinien pochodzić z pomiaru end-to-end.
Timestamp odbioru pakietu nie jest timestampem pomiaru. Kamera potrzebuje chwili ekspozycji, GNSS — epoki rozwiązania, a FIFO IMU — czasu każdej próbki.
Lever arm#
GNSS mierzy pozycję anteny, wizja centrum kamery, a stan może dotyczyć IMU lub środka kadłuba. Przy obrocie punkty mają różne prędkości:
v_sensor = v_ref + ω × r
Pozycja różni się o obrócony lever arm. Pominięcie tworzy pozorne ruchy podczas yaw. Dla długiego stałopłata lub dokładnego RTK błąd jest istotny.
PX4 dokumentuje parametry pozycji IMU względem body oraz korektę wyjść. Każdy sensor powinien mieć własną, skalibrowaną transformację. Lever arm należy obracać aktualną orientacją i synchronizować w czasie.
Bramkowanie innowacji#
Pomiar akceptuje się, gdy znormalizowana innowacja mieści się w bramce. Dla skalaru:
y² / S < gate²
gate jest liczbą odchyleń standardowych w przyjętej heurystyce. Dla wektora próg wiąże się z rozkładem chi-kwadrat i liczbą wymiarów.
Odrzucenie pojedynczej obserwacji nie oznacza awarii sensora. Seria odrzuceń wymaga zmiany stanu zdrowia. Histereza zapobiega migotaniu. Jednocześnie filtr nie może przez długi czas ignorować wszystkich danych bez zwiększenia niepewności.
Inflating R po wykryciu outliera jest łagodniejsze niż twarde odrzucenie, ale musi mieć uzasadnioną regułę. Robust loss może zmniejszać wpływ ciężkich ogonów. Nie należy dobierać ogromnej bramki tylko po to, by log przestał raportować błędy.
Joseph form i stabilność numeryczna#
Prosta aktualizacja kowariancji (I-KH)P może tracić symetrię i dodatnią półokreśloność wskutek zaokrągleń. Joseph stabilized form:
P⁺ = (I-KH)P⁻(I-KH)ᵀ + K R Kᵀ
jest kosztowniejsza, ale stabilniejsza. PX4 dokumentuje użycie Joseph form i dodatkowych kontroli ujemnych wariancji, limitów oraz wymuszania symetrii.
Po aktualizacji warto wymusić:
P ← 1/2(P + Pᵀ)
To koryguje drobny błąd numeryczny, lecz nie naprawia złego modelu. Ujemna duża wariancja jest symptomem wymagającym flagi i resetu bloku.
Skalowanie stanów wpływa na kondycję. Pozycja w milionach metrów ECEF obok biasu 1e-4 jest trudniejsza numerycznie niż lokalne błędy o podobnych rzędach. Error-state i lokalne ramki pomagają.
Reset stanu i przełączanie źródeł#
Reset może być konieczny po odzyskaniu globalnej pozycji, zmianie origin, przełączeniu sensora lub dużej rozbieżności. Powinien być jawny i zawierać delta pozycji/orientacji przekazywaną regulatorom. Inaczej kontroler interpretuje skok współrzędnych jako ruch.
Po resecie trzeba ustawić P zgodnie z nową informacją, nie pozostawić starej pewności. Biasy, które nadal są ważne, można zachować; stany związane z uszkodzonym sensorem trzeba zresetować.
Przełączenie między redundantnymi IMU wymaga różnicy biasów i alignmentu. Wielo-EKF może utrzymywać oddzielne instancje, dzięki czemu zmiana jest bardziej kontrolowana niż podmiana wejścia w jednej instancji.
Obserwowalność#
Stan jest obserwowalny, gdy dostępne pomiary i ruch pozwalają go rozróżnić. Bez zewnętrznego kierunku yaw i bias żyroskopu Z mogą być słabo rozdzielalne. Bez zmian prędkości niektóre parametry wiatru i skali pozostają nieobserwowalne. Bias akcelerometru miesza się z przechyleniem, bo oba tworzą pozorne przyspieszenie poziome.
Dodanie stanu nie tworzy informacji. Może zwiększyć korelacje i spowolnić zbieżność. Warto analizować rangę macierzy obserwowalności w uproszczonym modelu i eksperymentalnie wymuszać manewry pobudzające.
Proces inicjalizacji powinien wiedzieć, które stany mają dobre obserwacje. W spoczynku można estymować część biasów i roll/pitch, ale nie pełny heading bez magnetometru lub dual GNSS.
Strojenie#
Strojenie zaczyna się od kalibracji sensorów, ramek i opóźnień. Następnie:
- oszacuj szum IMU z danych statycznych i Allana;
- zweryfikuj
Rsensorów niezależnym odniesieniem; - ustaw realistyczne initial
P; - uruchom symulację i replay;
- analizuj średnią i wariancję innowacji;
- sprawdź bramki w różnych warunkach;
- dopiero potem koryguj
Q/R; - waliduj na logach niewykorzystanych do strojenia.
Jeśli filtr odrzuca GNSS podczas przyspieszenia, przyczyną może być zły timestamp lub lever arm, a nie za mała bramka. Jeśli wysokość rozbiega się przy wibracji, najpierw usuwa się aliasing i clipping. Zwiększenie process noise może ukryć symptom kosztem odporności na glitch.
Parametry powinny mieć jednostki i opis modelu. Nazwa GYRO_NOISE może oznaczać gęstość ciągłą, odchylenie próbki albo process noise biasu — nie są zamienne.
Diagnostyka#
Loguj:
- stan nominalny i jego wariancje;
- innowacje oraz
Sdla każdego źródła; - test ratios i wyniki bramek;
- biasy IMU i ich limity;
- flagi zdrowia, resetów i przełączeń;
- timestampy i opóźnienia;
- wybrane źródła pozycji, wysokości i yaw;
- vibration/coning metrics;
- origin i delty resetów.
Średnia znormalizowana innowacja powinna być bliska zero. Jej wariancja znacząco większa od jedności wskazuje niespójność. Długie okresy przy samym progu sugerują dostrojenie bramki do danych zamiast naprawy modelu.
Macierz P nie może zawierać NaN, ujemnych diagonalnych elementów ani rosnąć bez kontroli. Korelacje bliskie ±1 przez długi czas mogą wskazywać słabą obserwowalność lub zły scaling.
Replay i testy#
Tryb replay odtwarza zapis z timestampów sensorów i powinien dawać deterministyczny wynik. PX4 EKF2 ma tryb, który opiera czas na tematach sensorów zamiast zegarze systemowym. To umożliwia porównanie commitów na identycznym wejściu.
Zestaw testów obejmuje:
- stationary convergence;
- znany ruch syntetyczny bez szumu;
- biasy i random walk;
- opóźnione GNSS/wizję;
- skoki i dropouty;
- złe ramki oraz lever arm;
- pole magnetyczne zależne od prądu;
- dryf barometru;
- zmianę origin i reset źródła;
- przełączenie redundantnego IMU;
- wysokie drgania i clipping;
- duże początkowe błędy orientacji.
Monte Carlo z wieloma realizacjami szumu ocenia statystyczną spójność. NEES porównuje błąd stanu z P, a NIS innowację z S. Pojedynczy „udany lot” nie waliduje kowariancji.
Typowe błędy#
Pomylenie ENU i NED#
Pozycja może wyglądać częściowo poprawnie, ale Z oraz yaw mają zły znak. Transformacji wymagają także kowariancje i orientacje.
Użycie czasu odbioru#
Innowacja koreluje z prędkością lub rate. Zwiększanie R łagodzi objaw, lecz prawidłowym rozwiązaniem jest timestamp pomiaru i compensation delay.
Zaniżone R#
Filtr śledzi każdy glitch, P staje się sztucznie małe, a kolejne poprawne źródła są odrzucane jako niespójne.
Zaniżone Q#
Model jest zbyt pewny. Innowacje rosną podczas manewru, a obserwacje nie mają wystarczającego wpływu.
Dodawanie biasów bez obserwowalności#
Stany dryfują lub wchłaniają inne błędy. Potrzebne są ograniczenia, właściwa inicjalizacja i analiza ruchu.
Normalizacja kwaternionu bez resetu error-state#
Stan nominalny i kowariancja przestają opisywać ten sam lokalny błąd.
Ciche clampowanie P#
Maskuje błąd numeryczny. Clamp może chronić system, ale musi ustawić flagę i być widoczny w logu.
Jedna konfiguracja R dla wszystkich trybów#
RTK fixed, GNSS 3D, optical flow nad teksturą i nad wodą mają inne właściwości. Model jakości powinien reagować na tryb i diagnostykę.
Powiązane tematy#
- Filtr komplementarny orientacji
- Kwaterniony w kontrolerze lotu
- IMU w dronie
- GNSS w UAV
- Barometr w UAV
- Układy współrzędnych w UAV
Przypisy#
- PX4, Using PX4’s Navigation Filter EKF2 — stan, error-state, horyzont fuzji, Joseph form i diagnostyka.
- PX4, PX4 Autopilot source repository — implementacja EKF2, definicje wiadomości, testy i narzędzia replay.
- Analog Devices, AN‑1041 — bias IMU, zależność od temperatury i analiza stabilności.
- ESA Navipedia, Transformations between ECEF and ENU — ramki globalne i lokalne wykorzystywane w modelach pomiaru.
Utworzono: 15 sierpnia 2026. Ostatnia aktualizacja: 15 sierpnia 2026. Źródła zweryfikowano: 15 sierpnia 2026.
Źródła z centralnego rejestru
- PX4: Using PX4 Navigation Filter EKF2 [dokumentacja projektu]
- PX4 Autopilot source repository [repozytorium open source]
- Sumit Sharma, „Drone Development from Concept to Flight” [książka]
- Analog Devices AN-1041: iSensor IMU Quick Start Guide and Bias Optimization Tips [nota aplikacyjna producenta]