Вы же подключить все эти датчики непосредственно к микроконтроллеру. Фильтр Калмана не является электронным фильтром, подобным фильтру LRC, который проходит между датчиками и микроконтроллером. Фильтр Калмана - это математический фильтр, реализованный в виде программной подпрограммы внутри микроконтроллера.
Датчики, которые вы перечислили, дают микроконтроллеру 14 или 15 необработанных чисел каждый раз, когда они все обновляются.
Когда я летаю на небольшом самолете, я действительно хочу узнать его положение и ориентацию, а также то, как далеко он находится над землей - 7 цифр.
Мне нужно что-то, что дает мне эти 7 номеров.
В идеале я хочу новую оценку этих 7 чисел каждый раз через мой цикл управления. Раз в секунду обновления, которые я получаю от моего дешевого GPS, не достаточно быстры. (Люди, на какой частоте должен быть стабильным цикл обновления моего квадрокоптера «выход-смысл-вычисление-выход»? Говорят, что даже 50 раз в секунду не будет достаточно быстрым).
Каким-то образом мне придется сократить те 14 или 15 необработанных чисел, которые у меня есть, некоторые из которых обновляются лишь изредка, в (оценки) семи чисел, которые мне действительно нужны.
Как указал Джош, существует много специальных способов преобразования этих необработанных чисел в пригодные для использования данные. Любая процедура, которая преобразует 15 чисел в 7 чисел, может быть описана как «фильтр».
Вам не нужно использовать оптимальный фильтр. Но вы будете использовать какой-то фильтр - то есть что-то, что преобразует 15 чисел необработанных данных, которые у вас есть (оценки) в 7 чисел, которые вам действительно нужны.
Фильтр Калмана , в некоторых условиях «оптимальный» фильтр, лучший способ преобразования , что исходные данные в 7 номеров я действительно хочу.
С вашей стороны может потребоваться меньше усилий, чтобы использовать фильтр Калмана, который кто-то другой уже написал и отладил, чем написать какой-то другой фильтр с нуля, отладить его и продолжать добавлять к нему что-либо, пока он не будет использоваться - фильтр, который будет неизбежно оказываются неоптимальными.
Данные датчика зашумлены. Если вы не отфильтруете его, то ваш автомобиль будет работать по крайней мере беспорядочно, если он будет достаточно устойчивым, чтобы летать. Фильтрация с помощью фильтра Калмана или иным образом может уменьшить шум при правильном выполнении, улучшая стабильность в свою очередь.
Фильтр Калмана является особенно мощным фильтром. Требуется модель системы и модели шума как для системы, так и для ваших датчиков. Затем он оценивает состояние транспортного средства на основе предоставленной оценки состояния и средств управления, применяемых в любой момент времени. Это оценочное состояние будет более точным, чем то, что сообщают датчики.
источник
Вы также можете использовать фильтры частиц. Базовое введение в Particle Filters вы можете посмотреть в видео профессора Труна «Программирование роботизированной машины».
http://www.youtube.com/watch?v=H0G1yslM5rc
http://www.youtube.com/watch?v=QgOUu2sUDzg
Фильтры частиц являются более надежными и имеют гораздо меньшую вероятность ошибки закрытия цикла, которая обычно возникает при реализации EKF.
Видео описывают работу фильтра частиц.
источник
Фильтр Калмана - это алгоритм, который обычно используется в БПЛА для объединения нескольких измерений датчиков, чтобы обеспечить «оптимальную» оценку положения и / или ориентации БПЛА. Например, фильтр Калмана может объединять измерения акселерометра, гироскопа и магнитометра с оценкой скорости для оценки отклонения, отклонения и отклонения БПЛА.
Для получения дополнительной информации о датчиках и алгоритмах, используемых при оценке состояния беспилотного летательного аппарата, попробуйте отдельную статью « Основы полета малых беспилотных летательных аппаратов» .
В статье также дается ссылка на сопровождающий код Matlab, реализующий описанные алгоритмы оценки состояния БПЛА Kalman Filter.
источник