Навіщо мені потрібен фільтр Kalman?


61

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

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

Мій друг сказав мені, що мені потрібно буде поставити всі дані датчика через фільтр Калмана, але я не розумію, чому. Чому я не можу просто поставити це прямо у свій мікроконтролер. Як фільтр Kalman допомагає мені щодо моїх датчикових даних?

Відповіді:


52

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

Перелічені вами датчики дають мікроконтролеру 14 або 15 необроблених номерів кожного разу, коли вони оновлюються.

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

Мені потрібно щось, що дає мені ці 7 цифр.

В ідеалі я хочу, щоб нова оцінка цих 7 чисел щоразу через мій цикл управління. Оновлення, що отримуються раз на секунду від мого дешевого GPS, майже не досить швидко. (Люди з якою частотою потрібні моєму циклу оновлення виводу-почуття-обчислення-виводу, щоб залишатися стабільним? Кажуть мені, що навіть 50 разів на секунду не буде досить швидким).

Якось мені доведеться скоротити ті 14 чи 15 необроблених цифр, які я маю, деякі з яких лише час від часу оновлюються, до (оцінок) 7 чисел, які мені дуже хочеться.

Як зауважив Джош, існує багато спеціальних способів перетворення цих необроблених чисел у корисні дані. Будь-яку процедуру, яка перетворює 15 чисел на 7 чисел, можна описати як "фільтр".

Не потрібно використовувати оптимальний фільтр. Але ви будете використовувати якийсь фільтр, тобто щось, що перетворює з 15 чистих необроблених даних у (оцінки) 7 чисел, які ви дійсно хочете.

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

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


28

Коротка відповідна відповідь - "спробуйте без одного". Краща відповідь - приклад: Коли ваші акселерометри кажуть, що ви знаходитесь на 10 градусів від вертикалі, але ваш гіроскоп говорить, що ви не поверталися від вертикалі, а ваші магнітометри повідомляють про зміщення на 30 градусів від півночі, але ваш гіроскоп говорить про 32 градуси. Який поточний заголовок та нахил?

Ймовірно, ви придумаєте мільйон спеціальних способів, які, здається, працюють в одному прикладі, а в інших - не вдається. Фільтр Калмана (розширений фільтр Kalman (EKF) для цього завдання!) Надасть вам суворий спосіб відповісти на ці питання. Якість відповідей ще досліджується - хоча послужний список EKF дуже хороший - але , по крайней мере , всі погодяться , що відповіді знаходяться .


1
Саме відповідь я шукав. "Що буде, якщо я не використовую фільтр Kalman". Дякую!
Манав Катарія

22

Дані датчиків шуміть. Якщо ви не фільтруєте її, то ваш автомобіль принаймні діятиме нерівномірно, якби він був навіть досить стійким для польоту. Фільтрування через фільтр Kalman або іншим чином може зменшити шум при правильному виконанні, покращуючи стабільність у свою чергу.

Фільтр Калмана є особливо потужним фільтром. Він займає модель системи та моделі шуму як для системи, так і для ваших датчиків. Потім він оцінює стан транспортного засобу на основі наданої оцінки стану та засобів управління, що застосовуються в будь-який момент часу. Цей прогнозований стан буде більш точним, ніж те, про що повідомляють датчики.


8

Ви також можете використовувати фільтри частинок. Щоб ознайомитись з основним вступом до фільтруючих частинок, ви можете подивитися відео професора Трана в програмуванні роботизованого автомобіля.

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

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

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

Відео описують функціонування фільтра для частинок.


Як правило, відповіді, які містять не більше ніж посилання, не бажані. Якщо ви можете написати абзац або два на суть відео, це було б добре ...
Manishearth

говоріть самі. Я бачу невеликий прибуток, перезавантажуючи інформацію в іншому посиланні. Посилання може містити інформацію, про яку я не був обізнаний, і комусь не потрібно її повторно вводити, щоб зробити мені відомо про це. Я можу дуже легко натискати та читати, дякую.
Spiked3

8

Кальманський фільтр - це алгоритм, який зазвичай використовується в БПЛА для об'єднання декількох вимірювань датчиків разом, щоб забезпечити "оптимальну" оцінку положення та / або орієнтації БПЛА. Наприклад, фільтр Кальмана може запобігти вимірювання акселерометра, гіроскопа та магнітометра з оцінкою швидкості, щоб оцінити похитування, нахил та кочення БПЛА.

Для отримання додаткової інформації про датчики та алгоритми, що використовуються при оцінці стану БПЛА, скористайтеся окремою статтею " Основи малого польоту безпілотного літального апарату" .

Стаття також посилається на супровідний код Matlab, що реалізує описані алгоритми оцінки стану БПЛА фільтра Kalman.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.