Поэтому я пытаюсь научиться использовать фильтры Калмана, чтобы в какой-то момент реализовать их в небольшом роботе. Это видео и следующая веб-страница были действительно хорошими источниками для меня, чтобы понять эти фильтры:
YouTube: Учебное пособие по фильтру Калмана
http://bilgin.esme.org/BitsBytes/KalmanFilterforDummies.aspx
Давайте возьмем простой одномерный случай, когда у меня есть сенсорная платформа с 1 датчиком расстояния с каждой стороны, мы скажем, что L — это левый датчик, а R — правая сторона. Робот заключен в коробку длиной 100 единиц, каждый датчик имеет диапазон всего 10 единиц, и мы считаем, что любое значение из них больше ~7,5 недействительно.
Платформа будет двигаться вперед, пока X ‹= 95, затем назад, пока X >= 5, я хочу использовать фильтр для оценки X и использовать данные, поступающие из L/R, для исправления X, когда я приближаюсь к стене. Мои аргументы следующие:
На видео 15:50 Фрэнсис Говерс говорит, что если вы проиграете датчика, то ошибка будет доходить до бесконечности, и вы сможете сказать, что ваш датчик не дает хороших данных. Однако, когда я реализую этот одномерный случай, представленный на веб-странице, ошибка продолжает уменьшаться, даже когда я подаю ему сильно различающиеся данные. Почему? Не должна ли ошибка увеличиться?
Касательно 1, что мне делать, если ошибка становится слишком высокой или я знаю, что датчик выдает неверные данные? Я просто не включаю датчик в шаг коррекции до тех пор, пока не будет обратного?
Извините, если эти вопросы уже задавались ранее, я обычно очень хорошо умею находить ответы самостоятельно, но эти вопросы кажутся немного неясными (или, что более вероятно, ответ очевиден), но я просто не могу его найти. сам.