W kolejnym odcinku cyklu Rzadko zadawanych pytań przyjrzymy się filtracji sygnałów pochodzących z modułów inercyjnych (IMU), służących do pomiarów ruchu przedmiotów. IMU to moduł składający się z akcelerometrów, żyroskopów, magnetometrów itp. który pozwala urządzeniu na detekcję własnego ruchu w przestrzeni 3D.
Pytanie: Podczas konfiguracji modułu IMU możliwy jest wybór różnych rodzajów filtracji sygnałów z sensora. Do wyboru są decymujące filtry FIT oraz filtry Kalmana. Jaki jest najlepszy w takiej aplikacji?
Odpowiedź: Każdy z tych filtrów ma swoje wady i zalety i każdy z nich pełni osobną rolę w obsłudze IMU. W większości aplikacji działają one niezależnie, a ich wykorzystanie zależne jest od tego gdzie IMU zostało zastosowane. Przyjrzyjmy się bliżej, aby zrozumieć detale, w jaki sposób aplikować tego rodzaju filtry w systemach sensorowych.
Wykorzystanie decymacji w połączeniu z filtrem o skończonej odpowiedzi impulsowej (FIR) jest metodą, która umożliwia zredukowanie pasma sygnałów z IMU do wąskiego zakresu niskich częstotliwości, które jest dla nas interesujące. Może to być przydatne, gdy system poddawany jest ruchowi i rotacji o wielu różnych częstotliwościach, a jedynie część z nich jest istotna dla dalszej ich analizy. Dodatkowo, sygnały wyższej częstotliwości, pochodzące z sensora, mogą aliasować się do interesującego nas pasm, jeśli nie odfiltruje się ich dolnoprzepustowym filtrem FIR.
Filtr FIR jest najbardziej przydatny, gdy do analizy nie potrzebujemy pełnego pasma filtru. Zamiast tego analizujemy jedynie wąskie pasmo poniżej częstotliwości odcięcia filtra, a sygnały o wyższej częstotliwości są odfiltrowane. Na przykład w naszym systemie interesuje nas jedynie ruch i rotacja o częstotliwości pomiędzy 20 Hz a 50 Hz. Jeśli IMU poddawane jest ruchowi z wyższą częstotliwością, lub w sygnale występuje szum o wyższych częstotliwościach niż 50 Hz, jeśli wykorzystamy decymujący filtr FIR to sygnały te i szum nie zakłócą naszego pomiaru. Na rysunku 1 zaprezentowano metodę stosowania filtrów opisywanego rodzaju do stworzenia filtra dolnoprzepustowego i tłumienia pasma o czynnik 16.
Rys.1. Odpowiedź filtra FIR układu ADIS16480 (po lewej) i przykład B wykorzystania takiego filtra (po prawej), w jakim wykorzystano filtr do usunięcia niepożądanych sygnałów z pomocą filtra dolnoprzepustowego.
Filtr Kalmana, nazwany na część inżyniera Rudolfa Kálmána, dostarcza z kolei innej funkcjonalności. Opisywanie tego układu jako filtr jest trochę mylące. Układ precyzyjniej nazwać można by "rekursywnym estymatorem". Filtr Kalmana jest nieoceniony w sytuacji w której przewidywanie pozycji jest o wiele bardziej istotne, a zaszumione dane z sensora prowadziłyby do powstania błędów w pozycjonowaniu. Filtr Kalmana służy estymacji kątów orientacji IMU wykorzystując wszystkie osie swobody IMU.
Filtr tego rodzaju jest o wiele bardziej skomplikowany niż poniższe równanie, ale można go uprościć usuwając z wyrażenia matryce stanów. Dzięki temu otrzymujemy proste równania:
gdzie:
$$X_k$$ to aktualna estymacja pozycji
$$K_k$$ to wzmocnienie Kalmana
$$Z_k$$ to zmierzona wartość
$$X_{k-1}$$ to poprzednia estymacja pozycji.
Każde k-ty krok możemy traktować jako identyfikację pozycji w dyskretnym czasie, związanym z poszczególnymi próbkami pochodzącymi z poszczególnych osi sensora w IMU. Aktualna estymacja pozycji oparta jest na estymacji pozycji z k-1-tego kroku zmieniona o odczyt z sensora z odpowiednim wzmocnieniem Kalmana, które zależne jest od systemu i czynników środowiskowych. Wstępne wzmocnienie lub kowariancja filtra zapisywane są w ustawieniach sensora, aby oszacować spodziewaną korelację pomiędzy wektorami wyjściowymi sensorów. Optymalne wartości kowariancji dla danego IMU zależą od różnych czynników, dlatego też ich ustalenie wymaga wielu iteracji - obserwowania układu, analizy zachowania i poprawiania wartości tego parametru w czasie kalibracji filtra.
W układu ADIS16480 wbudowany jest algorytm kalibracji, który pozwala na adaptację wartości kowariancji w diltrze Kalmana w czasie rzeczywistym, podczas pracy IMU.
Rys.2. Przykładowy model filtra Kalmana gdzie dwie zmienne - pozycja i prędkość w tym przypadku - są w pewnym stopniu ze sobą skorelowane. Aktualna pozycja może być estymowana na podstawie poprzedniej pozycji, zmierzonego przyspieszenia przez IMU oraz kowariancji w której zawarta jest waga korelacji pomiędzy tymi dwoma wartościami.
Źródło: http://www.analog.com/library/analogdialogue/archives/50-03/raq_127.HTML
Pytanie: Podczas konfiguracji modułu IMU możliwy jest wybór różnych rodzajów filtracji sygnałów z sensora. Do wyboru są decymujące filtry FIT oraz filtry Kalmana. Jaki jest najlepszy w takiej aplikacji?
Odpowiedź: Każdy z tych filtrów ma swoje wady i zalety i każdy z nich pełni osobną rolę w obsłudze IMU. W większości aplikacji działają one niezależnie, a ich wykorzystanie zależne jest od tego gdzie IMU zostało zastosowane. Przyjrzyjmy się bliżej, aby zrozumieć detale, w jaki sposób aplikować tego rodzaju filtry w systemach sensorowych.
Wykorzystanie decymacji w połączeniu z filtrem o skończonej odpowiedzi impulsowej (FIR) jest metodą, która umożliwia zredukowanie pasma sygnałów z IMU do wąskiego zakresu niskich częstotliwości, które jest dla nas interesujące. Może to być przydatne, gdy system poddawany jest ruchowi i rotacji o wielu różnych częstotliwościach, a jedynie część z nich jest istotna dla dalszej ich analizy. Dodatkowo, sygnały wyższej częstotliwości, pochodzące z sensora, mogą aliasować się do interesującego nas pasm, jeśli nie odfiltruje się ich dolnoprzepustowym filtrem FIR.
Filtr FIR jest najbardziej przydatny, gdy do analizy nie potrzebujemy pełnego pasma filtru. Zamiast tego analizujemy jedynie wąskie pasmo poniżej częstotliwości odcięcia filtra, a sygnały o wyższej częstotliwości są odfiltrowane. Na przykład w naszym systemie interesuje nas jedynie ruch i rotacja o częstotliwości pomiędzy 20 Hz a 50 Hz. Jeśli IMU poddawane jest ruchowi z wyższą częstotliwością, lub w sygnale występuje szum o wyższych częstotliwościach niż 50 Hz, jeśli wykorzystamy decymujący filtr FIR to sygnały te i szum nie zakłócą naszego pomiaru. Na rysunku 1 zaprezentowano metodę stosowania filtrów opisywanego rodzaju do stworzenia filtra dolnoprzepustowego i tłumienia pasma o czynnik 16.
Rys.1. Odpowiedź filtra FIR układu ADIS16480 (po lewej) i przykład B wykorzystania takiego filtra (po prawej), w jakim wykorzystano filtr do usunięcia niepożądanych sygnałów z pomocą filtra dolnoprzepustowego.
Filtr Kalmana, nazwany na część inżyniera Rudolfa Kálmána, dostarcza z kolei innej funkcjonalności. Opisywanie tego układu jako filtr jest trochę mylące. Układ precyzyjniej nazwać można by "rekursywnym estymatorem". Filtr Kalmana jest nieoceniony w sytuacji w której przewidywanie pozycji jest o wiele bardziej istotne, a zaszumione dane z sensora prowadziłyby do powstania błędów w pozycjonowaniu. Filtr Kalmana służy estymacji kątów orientacji IMU wykorzystując wszystkie osie swobody IMU.
Filtr tego rodzaju jest o wiele bardziej skomplikowany niż poniższe równanie, ale można go uprościć usuwając z wyrażenia matryce stanów. Dzięki temu otrzymujemy proste równania:
$$ X_k = K_k \times X_k + (1 - K_k) \times X_{k-1}$$
gdzie:
$$X_k$$ to aktualna estymacja pozycji
$$K_k$$ to wzmocnienie Kalmana
$$Z_k$$ to zmierzona wartość
$$X_{k-1}$$ to poprzednia estymacja pozycji.
Każde k-ty krok możemy traktować jako identyfikację pozycji w dyskretnym czasie, związanym z poszczególnymi próbkami pochodzącymi z poszczególnych osi sensora w IMU. Aktualna estymacja pozycji oparta jest na estymacji pozycji z k-1-tego kroku zmieniona o odczyt z sensora z odpowiednim wzmocnieniem Kalmana, które zależne jest od systemu i czynników środowiskowych. Wstępne wzmocnienie lub kowariancja filtra zapisywane są w ustawieniach sensora, aby oszacować spodziewaną korelację pomiędzy wektorami wyjściowymi sensorów. Optymalne wartości kowariancji dla danego IMU zależą od różnych czynników, dlatego też ich ustalenie wymaga wielu iteracji - obserwowania układu, analizy zachowania i poprawiania wartości tego parametru w czasie kalibracji filtra.
W układu ADIS16480 wbudowany jest algorytm kalibracji, który pozwala na adaptację wartości kowariancji w diltrze Kalmana w czasie rzeczywistym, podczas pracy IMU.
Rys.2. Przykładowy model filtra Kalmana gdzie dwie zmienne - pozycja i prędkość w tym przypadku - są w pewnym stopniu ze sobą skorelowane. Aktualna pozycja może być estymowana na podstawie poprzedniej pozycji, zmierzonego przyspieszenia przez IMU oraz kowariancji w której zawarta jest waga korelacji pomiędzy tymi dwoma wartościami.
Źródło: http://www.analog.com/library/analogdialogue/archives/50-03/raq_127.HTML
Fajne? Ranking DIY