Вопрос

Я заинтересован, как двойной вход в сенсорной установке в моделировании фильтра Kalman?

Скажите, например, у вас есть акселерометр и гироскоп и хочется представить «уровень горизонта», например, в самолете, хорошая демонстрация чего-то вроде этого здесь.

Как вы на самом деле собираете два датчика положительных свойств и минимизировать отрицательный?

Это моделируется в матрице модели наблюдения (обычно символизируется капиталом H)?


Примечание: этот вопрос был также задан без ответов на math.stackexchange.com.

Это было полезно?

Решение

Обычно проблема слияния датчика получена из теоремы Байеса. На самом деле у вас есть что ваша оценка (в этом случае уровень горизонта) будет взвешенной суммой ваших датчиков, которая карактизируется моделью датчика. Для двойных датчиков у вас есть два общих варианта: модель двух датчиков и выводят усиление Kalman для каждого датчика (используя модель системы в качестве предиктора), либо запускать две стадии коррекции, используя различные модели наблюдения. Вы должны взглянуть на Predictors Bayesian (немного более общее, чем фильтр Kalman), который точно получен от минимизации дисперсии оценки, учитывая два разных источника информации. Если у вас есть взвешенная сумма, и минимизируйте дисперсию суммы, для двух датчиков, тогда вы получаете усиление Kalman.

Свойства датчика могут быть «видны» в двух частях фильтра. Во-первых, у вас есть матрица ошибок для ваших наблюдений. Это матрица, которая представляет шум в наблюдении на датчиках (предполагается, что нулевой средний гауссовый шум, который не является слишком большим предположением, учитывая, что во время калибровки вы можете достичь нулевого среднего шума).

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

О «Уборке хороших характеристик», то, что вы должны сделать, это сделать хорошую калибровку и шумную характеристику (это написано в порядке?) Датчиков. Лучший способ получить фильтр Kalman, чтобы сходиться состоит в том, чтобы иметь хорошую модель шума для ваших датчиков, и это на 100% экспериментальная. Попробуйте определить дисперсию для вашей системы (не всегда доверяйте таблицам).

Надеюсь, что немного поможет.

Другие советы

Меры Gyro частота изменений угла (например, в радианах в секунду), а от чтения акселерометра вы можете рассчитать сам угол. Вот простой способ объединения этих измерений:

При каждом полученном Gyro чтение получено:

angle_radians+=gyro_reading_radians_per_sec * seconds_since_last_gyro_reading

При каждом чтении акселерометра получено:

angle_radians+=0.02 * (angle_radians_from_accelerometer - angle_radians)

Константа 0,02 предназначена для настройки - он выбирает компромисс между шумом и отзывчивостью (вы не можете иметь оба одновременно). Это также зависит от точности обоих датчиков, так и временных интервалов, при которых получены новые показания.

Эти две строки кода реализуют простые одномерные (скалярные) фильтр Kalman. Предполагается, что

  • то Гиро имеет очень низкий уровень шума по сравнению с акселерометром (верно с большинством потребительских датчиков). Поэтому мы не моделируем гироскопический шум вообще, но вместо этого используете гироскоп в модели состояния (обычно обозначаются на F).
  • Чтения акселерометра принимаются в целом регулярные временные интервалы и уровень шума акселерометра (обычно R) постоянен
  • Угол_радицы были инициализированный С начальной оценкой (F.Ex, усреднение Engle_radians_from_accelerometer в течение некоторого времени)
  • Поэтому также оценить ковариацию (P) и оптимальное усиление Калмана (K) постоянны, что означает, что нам не нужно постоянно соблюдать ковариацию в переменной.

Как видите, этот подход упрощен. Если вышеуказанные предположения не выполнены, вы должны узнать некоторые теории фильтра Kalman и соответствующим образом изменили код.

Линия горизонта - g '* (u, v, f) = 0, где g представляет собой гравитационные векторы, u и v изображения центрированные координатами и focal dime. Сейчас плюсы и минусы датчиков: Gyro - это супер быстрый и точный, но дрейфцы, акселерометр менее точен, но (если калиброван) имеет нулевую смещение и не дрейфует (не дано ускорению, кроме гравитации). Они измеряют разные вещи - акселерометр измеряет ускорение и, следовательно, ориентацию относительно вектора тяжести, в то время как гировые измеряют скорость вращения и, следовательно, изменение ориентации. Чтобы преобразовать его в ориентацию, нужно интегрировать его значения (к счастью, его можно пробовать на высоком FPS, как 100-200). Таким образом, фильтр Калмана, который должен быть линейным, не применяется к гироскому языку. На данный момент мы можем просто упростить слияние датчика как взвешенную сумму показаний и предсказаний.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top