Зачем мне фильтр Калмана?


61

Я проектирую беспилотный летательный аппарат, который будет включать в себя несколько типов датчиков:

  • 3-х осевой акселерометр
  • 3-х осевой гироскоп
  • 3-х осевой магнитометр
  • датчик горизонта
  • GPS
  • направленный вниз ультразвук.

Мой друг сказал мне, что мне нужно будет передать все эти данные датчика через фильтр Калмана, но я не понимаю, почему. Почему я не могу просто вставить это прямо в мой микроконтроллер. Как фильтр Калмана помогает мне с данными моего датчика?

Ответы:


52

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

Датчики, которые вы перечислили, дают микроконтроллеру 14 или 15 необработанных чисел каждый раз, когда они все обновляются.

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

Мне нужно что-то, что дает мне эти 7 номеров.

В идеале я хочу новую оценку этих 7 чисел каждый раз через мой цикл управления. Раз в секунду обновления, которые я получаю от моего дешевого GPS, не достаточно быстры. (Люди, на какой частоте должен быть стабильным цикл обновления моего квадрокоптера «выход-смысл-вычисление-выход»? Говорят, что даже 50 раз в секунду не будет достаточно быстрым).

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

Как указал Джош, существует много специальных способов преобразования этих необработанных чисел в пригодные для использования данные. Любая процедура, которая преобразует 15 чисел в 7 чисел, может быть описана как «фильтр».

Вам не нужно использовать оптимальный фильтр. Но вы будете использовать какой-то фильтр - то есть что-то, что преобразует 15 чисел необработанных данных, которые у вас есть (оценки) в 7 чисел, которые вам действительно нужны.

Фильтр Калмана , в некоторых условиях «оптимальный» фильтр, лучший способ преобразования , что исходные данные в 7 номеров я действительно хочу.

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


28

Короткий, простой ответ: «попробуй без него». Лучшим ответом является пример: когда ваши акселерометры говорят, что вы на 10 градусов от вертикали, но ваш гироскоп говорит, что вы не повернули от вертикали, а ваши магнитометры сообщают о смещении на 30 градусов с севера, а ваш гироскоп говорит о 32 градусах. Каков текущий курс и наклон?

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


1
Именно ответ я искал. «Что будет, если я не использую Kalman Filter». Спасибо!
Манав Катария

22

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

Фильтр Калмана является особенно мощным фильтром. Требуется модель системы и модели шума как для системы, так и для ваших датчиков. Затем он оценивает состояние транспортного средства на основе предоставленной оценки состояния и средств управления, применяемых в любой момент времени. Это оценочное состояние будет более точным, чем то, что сообщают датчики.


8

Вы также можете использовать фильтры частиц. Базовое введение в Particle Filters вы можете посмотреть в видео профессора Труна «Программирование роботизированной машины».

http://www.youtube.com/watch?v=H0G1yslM5rc

http://www.youtube.com/watch?v=QgOUu2sUDzg

Фильтры частиц являются более надежными и имеют гораздо меньшую вероятность ошибки закрытия цикла, которая обычно возникает при реализации EKF.

Видео описывают работу фильтра частиц.


Обычно ответы, содержащие не более одной ссылки, не являются предпочтительными. Если бы вы могли написать параграф или два по сути видео, это было бы неплохо ..
Manishearth

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

8

Фильтр Калмана - это алгоритм, который обычно используется в БПЛА для объединения нескольких измерений датчиков, чтобы обеспечить «оптимальную» оценку положения и / или ориентации БПЛА. Например, фильтр Калмана может объединять измерения акселерометра, гироскопа и магнитометра с оценкой скорости для оценки отклонения, отклонения и отклонения БПЛА.

Для получения дополнительной информации о датчиках и алгоритмах, используемых при оценке состояния беспилотного летательного аппарата, попробуйте отдельную статью « Основы полета малых беспилотных летательных аппаратов» .

В статье также дается ссылка на сопровождающий код Matlab, реализующий описанные алгоритмы оценки состояния БПЛА Kalman Filter.

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