Как смоделировать непредсказуемый шум в Kalman Filter?


9

Фон:

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

Мое понимание:

Я думаю о том, чтобы представить свое состояние в виде 2D-вектора , где - текущее направление движения, а - скорость вращения, сообщаемая гироскопом.(Икс,Икс˙)ИксИкс˙

Вопросов:

  1. Если я правильно понимаю, что не будет никакого термина управления, в моем фильтре. Это правда? Что если я возьму состояние в качестве одномерного вектора ? Тогда мой становится управляющим членом ? Дадут ли эти два метода разные результаты?U(Икс)Икс˙U
  2. Как мы знаем, основной источник шума исходит от компаса, когда он находится в искаженном магнитном поле. Здесь, я полагаю, гауссовский шум менее значим. Но магнитное искажение совершенно непредсказуемо. Как мы моделируем его в фильтре Калмана?
  3. В фильтре Калмана необходимо ли предположение, что «все шумы белые»? Скажем, если мое распределение шума на самом деле является распределением Лапласа, могу ли я по-прежнему использовать фильтр Калмана? Или я должен переключиться на другой фильтр, например Extended Kalman Filter?

Ответы:


6
  1. θ˙^знак равноωгYро+вес
    Y^знак равноИкс^
    Y^
  2. Магнитное искажение будет трудным, потому что если вы сидите в каком-то одном месте, оно будет выглядеть как член с постоянным смещением - фильтр Калмана не справится с этим хорошо. Я почти уверен, что вам нужно либо отобразить искажение, получить какое-либо второе абсолютное направление, либо просто принять искажение.
  3. Вы путаете спектральное содержание с вероятностным распределением. Если шум белый, то каждый образец полностью независим от любого другого образца. Если шум лапласовский, каждый образец подчиняется распределению Лапласа. Фильтры Калмана не любят цветной шум (но вы можете справиться с этим, добавив состояния). Фильтр Калмана - это всего лишь оптимальный оптимальный фильтр, когда шум имеет гауссово распределение, а функция стоимости равна сумме квадратов. Для любой другой функции шума и стоимости оптимальный фильтр, вероятно, нелинейный. Но для любой функции стоимости с нулевым средним, белым шумом и суммой квадратов фильтр Калмана - лучший линейный фильтр, который можно найти.

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

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

Оценка оптимального состояния Дэном Саймоном, Wiley 2006, - это, на мой взгляд, очень богатая и четкая трактовка предмета фильтрации Калмана и его более искушенных братьев (H-бесконечность, расширенный Кальман, без запаха Кальман и даже немного по Байсиану и фильтрации частиц). Он не скажет вам, как применить это к таким проблемам навигации, но где было бы весело в жизни, если бы все проблемы были решены? Если вы не можете следовать математике в книге Саймона, то вам, вероятно, следует спросить себя, сможете ли вы применить фильтр Калмана любым разумным способом.


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

@ddevaz Да, я сейчас СЕЙЧАС внедряю дополнительный фильтр. Но проблема в том, что это не дает очень хороших результатов. Так что я думаю о переходе на другой «более сложный» фильтр ...
Sibbs Gambling

Понимаю. Я отредактировал свой ответ, включив в него некоторые справочные материалы по реализации фильтра Калмана с гироскопами, акселерометрами и магнитометром.
ddevaz

3
  1. Не будет никакого контрольного входного термина. Вы должны взять (x, xdot) в качестве вектора состояния, чтобы правильно сформулировать фильтр Калмана.

  2. Основными источниками шума являются компас и гироскоп . Шум и дрейф гироскопа значительны. В общем, преодолеть магнитные искажения довольно сложно, но существуют методы компенсации .

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

Kalman Фильтр Дизайн / Реализация бумаги:

Реализация алгоритма слияния датчиков для трехмерного определения ориентации с инерционными / магнитными датчиками


Так что я не могу оставить KF, чтобы справиться с непредсказуемым магнитным искажением, верно? Я должен сначала отбросить искаженные значения, а затем оставить KF, чтобы справиться с шумом датчика. Правильно?
Sibbs Gambling

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