Як моделювати непередбачуваний шум у Kalman Filter?


9

Фон:

Я реалізую простий фільтр Kalman, який оцінює напрямок заголовка робота. Робот оснащений компасом і гіроскопом.

Моє розуміння:

Я думаю про те, щоб представляти свій стан як двовимірний вектор (x,x˙), де x - поточний напрямок заголовка і x˙ - швидкість обертання, про яку повідомляє гіроскоп.

Запитання:

  1. Якщо моє розуміння правильне, термін контролю не буде, uв моєму фільтрі. Це правда? Що робити, якщо я сприймаю стан як 1D-вектор(x)? Тоді робить моєx˙стає терміном контролю u? Чи дадуть ці два методи різні результати?
  2. Як ми знаємо, основне джерело шуму надходить від компаса, коли компас знаходиться в спотвореному магнітному полі. Тут, я думаю, шум Гаусса менш значний. Але магнітне спотворення абсолютно непередбачуване. Як ми моделюємо його у фільтрі Кальмана?
  3. Чи є у «Фільтрі Кальмана» припущення, що «всі шуми білі» необхідні? Скажіть, якщо мій розподіл шуму насправді є лапласіанським розподілом, чи можу я все-таки використовувати фільтр Кальмана? Або мені доведеться перейти на інший фільтр, наприклад, розширений фільтр Kalman?

Відповіді:


6
  1. Я б моделював це як однодержавну систему (x), з гіроскопом як контрольним входом. Шум гіроскопа стає станом вхідного шуму, шум компаса стає шумом вимірювання. Так ваша модель системи стає
    θ˙^=ωgyro+w
    y^=x^
    де y^ - оцінка напрямку фільтра, яку ви порівнюєте з напрямком компаса, щоб отримати оновлення від Kalman.
  2. Магнітне спотворення буде важко, тому що якщо ви сидите в будь-якому одному місці, це буде представляти собою постійний термін зміщення - фільтр Калмана не впорається з цим добре. Я впевнений, що вам або потрібно буде зіставити спотворення, отримати якусь другу абсолютну орієнтацію напрямку, або просто прийняти спотворення.
  3. Ви плутаєте спектральний вміст з розподілом ймовірностей. Якщо шум білий, то кожен зразок абсолютно не залежить від будь-якого іншого зразка. Якщо шум лаплаціан, кожен зразок підпорядковується розподілу Лапласа. Фільтри Калмана не люблять кольоровий шум (але ви можете вирішити це, додавши стани). Фільтр Кальмана - це лише загальний оптимальний фільтр, коли шум має гауссовий розподіл, а функціональна вартість - сума квадратів. Для будь-якої іншої функції шуму та витрат оптимальний фільтр, ймовірно, нелінійний. Але для будь-якої функції нульового середнього рівня, білого шуму та вартості суми квадратів фільтр Калмана - найкращий лінійний фільтр, який можна знайти.

(Зауважте, що системна модель, яку я дав, закінчується досить тривіальним фільтром Калмана - вам може бути краще, якщо ви не зможете знайти якісь інші засоби оцінки зміщення компаса, використовуючи додатковий фільтр для комбінування цих двох входів датчиків. всі розрахунки Кальмана все одно просто викашлять безкоштовний фільтр, і, швидше за все, ви матимете достатньо здогадок для своїх констант, що ви також можете просто здогадатися в точці перехрестя в додатковому фільтрі і зробити це з ним).

(Також зауважте, що якщо у вас є абсолютна орієнтація на положення , а деякі засоби оцінюють швидкість, і транспортний засіб, який завжди їде в напрямку, який ви вказуєте, ви можете використовувати витягнутий фільтр Kalman дуже вигідно, щоб виправити спотворення компаса за допомогою напрямок, який він насправді рухає, для корекції напрямку компаса).

Оптимальна оцінка стану Деном Саймоном, Wiley 2006, - на мій погляд, - це дуже насичене і чітке поводження з предметом фільтрації Кальмана та його більш досконалих братів (Н-нескінченність, розширений Калман, недушистий Кальман і навіть трохи про фільтрування Байєса та частинок). Це не скаже вам, як застосувати це до таких проблем навігації, але де було б задоволення в житті, якби всі проблеми були вирішені ?. Якщо ви не можете слідувати математиці в книзі Саймона, то, ймовірно, ви повинні запитати себе, чи зможете ви застосувати фільтр Калмана будь-яким розумним способом.


+1 Для додаткового фільтра для цієї програми здається більш підходящим. Також дуже хороша книга Дамона Саймона. Ця стаття є хорошим вступом до фільтра Кальмана (того ж автора) masys.url.tw/AU/2013SP/OpenCV/0513/kalman-dan-simon.pdf
ddevaz

@ddevaz Так, я насправді ЗАРАЗ впроваджую додатковий фільтр. Але проблема в тому, що це не дає дуже хороших результатів. Тож я думаю про перехід на інший «складніший» фільтр ...
Сіббс Азартні ігри

Розумію. Я відредагував свою відповідь, щоб включити деякі довідкові матеріали про реалізацію фільтра Kalman з гіроскопами, акселерометрами та магнітометром.
ddevaz

3
  1. Термін керування введенням не буде. Ви повинні взяти (x, xdot) як вектор свого стану, щоб правильно сформулювати фільтр Калмана.

  2. Основними джерелами шуму є компас та гіроскоп . Шум і дрейф гіроскопа значні. Подолати магнітні спотворення в цілому досить складно, але є методи компенсації .

  3. Припущення нульового середнього багатоваріантного нормального шуму розподілу є необхідним, проте білий шум є лише особливим випадком цього. Для розширеного фільтра Калмана це припущення ще має бути вірним. Ви можете подивитися на інші типи фільтрів ( фільтри частинок , недушістий фільтр Калмана ).

Документ про розробку / реалізацію фільтра Kalman:

Реалізація алгоритму термоядерного синтезу датчика для 3D-орієнтації на виявлення орієнтації за допомогою інерційних / магнітних датчиків


Тож я не можу залишити КФ, щоб впоратися з непередбачуваним магнітним викривленням? Я повинен якось відкинути спотворені значення спочатку, а потім залишити KF, щоб мати справу з шумом датчика. Правильно?
Сіббс Азартні ігри

Так. Фільтр Кальмана не зможе точно компенсувати магнітні спотворення, оскільки зміни можуть бути різкими. Я спробую спершу здійснити деяку магнітну компенсацію, а потім застосувати фільтр Кальмана.
дедеваз
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.