У меня есть 3-осевой акселерометр и 2-осевой гироскоп. Я намерен измерить то, что движется только по осям X и Z. Я слышал об использовании фильтров Калмана для сглаживания векторов ускорения, но я не могу найти хороший учебник для начинающего в этой теме. Кроме того, я знаю, что могу дважды интегрировать ускорение, чтобы получить положение, но как мне сделать это с конечным числом выбранных векторов ускорения? Буду признателен за ссылки на хорошие учебники для начинающих по обеим этим темам.
33
Ответы:
Вот учебник по реализации матрицы направленного косинуса для IMU: http://gentlenav.googlecode.com/files/DCMDraft2.pdf
Взгляните на страницы ArduIMU: http://code.google.com/p/ardu-imu/wiki/Theory
Вот пара проектов с открытым исходным кодом, которые делают это. Чтение кода должно дать некоторые подсказки:
http://code.google.com/p/gluonpilot/source/browse/trunk/Firmware/#Firmware/rtos_pilot%3Fstate%3Dclosed
http://code.google.com/p/sf9domahrs/
источник
Ну, фильтр Калмана - это своего рода магия, которая работает таинственно. :)
Я начал с цифровых фильтров . Хорошо объяснил для начала. И легко нестабильный. Эти простые фильтры прекрасно работают для любой системы. Просто нужно настроить соотношение точности и отклика, экспериментируя. Хитрость заключается в [Точность = 1 - Ответ].
Попробуйте.
Затем, чтобы понять, что такое фильтр Калмана, вам нужно будет выполнить следующие действия:
И должен поделиться, если вы столкнетесь с чем-нибудь подобным.
источник
Теоретически (если у вас есть идеальные датчики и измерения) вы можете сделать это, но на практике вы не можете. Проблема заключается в том, что акселерометр будет иметь постоянную силу 1G, вызванную силой тяжести, когда объект лежит неподвижно (ноль G в случае свободного падения), но это не измеряется точно как 1,00000000 ... G. При перемещении объекта у вас будет вектор как сумма силы тяжести 1G и ускорения от движения (которое обычно намного меньше, чем 1G), и ваши измерения будут накапливать слишком много шума со временем, чтобы быть полезным, если вы попытаетесь интегрировать измеренные значения. ускорение минус 1G силы тяжести.
источник
Я начал строить квад почти 6 месяцев назад, у меня было много проблем с правильным определением угла :)
Прежде всего, вы должны попробовать эту презентацию - http://web.mit.edu/scolton/www/filter.pdf Она действительно всеобъемлющая и может помочь вам получить лучшее представление о том, что вы действительно хотите, это в значительной степени помогло для меня.
Я думаю, это в значительной степени зависит от вас, но реализация фильтра Калмана не требует только достаточно серьезных знаний в области математики, теории систем и, в данном случае, физики, но также очень требовательна к загрузке процессора. Если вы планируете использовать, скажем, Atmega328 с тактовой частотой 16 МГц, у вас могут возникнуть проблемы с использованием этого вида фильтра. Это действительно эффективно, если вы используете DSP, так что вы можете фильтровать нижние частоты по вашему входу.
В общем, мой совет - попробуйте использовать дополнительный фильтр 1-го порядка или, возможно, даже дополнительный фильтр 2-го порядка, если вы не удовлетворены результатами. Если ваша система свободна от высокочастотных вибраций, это должно работать отлично. Кроме того, ссылка JustJeff - идеальное место для начала, если вы застряли с реализацией :)
Всего наилучшего, Дэн
источник
Я также новичок и также ищу решение моей навигационной работы. Как и у вас, у меня есть плата с 3-осевым акселерометром и 2D-гироскопом. до сих пор я прочитал много материалов об этом, также я решил применить фильтр Калмана к моему сигналу. может быть, у меня нет никаких предложений, но я хочу поделиться с вами кое-чем, что я видел раньше. Есть несколько ссылок на них, надеюсь, что это полезно для вас.
ограничено моей репутацией, у меня есть право размещать менее 2 ссылок. поэтому остальные два я хочу опубликовать как ниже:источник