Калибровка магнитометра с помощью расширенного фильтра Калмана

Поділитися
Вставка
  • Опубліковано 19 кві 2024
  • В этом видео я покажу, как откалибровать магнитометры с помощью расширенного фильтра Калмана. Такая задача часто встречается при построении магнитных компасов.
  • Наука та технологія

КОМЕНТАРІ • 8

  • @user-jy5xg2sh5u
    @user-jy5xg2sh5u 16 днів тому +2

    Здравствуйте с уважением к вашему делу много усилий сделано и вложено для достижения цели подскажите как найти схему для накачки импульсом лампы ксенола для рубинового лазера как собрать схему где найти и как сделать.
    С уважением к вам и вашему делу огромных успехов достижений здоровья счастья.

  • @aftaev
    @aftaev Місяць тому +1

    Надо попробовать сигнал с электроэрозии пропустить через фильтра Калмана.

  • @gguy156
    @gguy156 Місяць тому +1

    Ну фильтр Калмана - классика цифровой обработки сигналов

  • @earielflare2203
    @earielflare2203 29 днів тому

    Спасибо за ролик, есть вопрос.
    В ютубе есть ряд буржуинских материалов на эту тему, в частности матлабовские видео. Ссылки ютуб не переваривает, но по названию можно найти: Understanding Sensor Fusion and Tracking, Part 2: Fusing a Mag, Accel, & Gyro Estimate
    В этом ролике обсуждается как раз калибровка, и тоже объясняется, что есть вектор смещения, и матрица поворота. Вот только там почему-то в качестве калибрующего соседа используется акселерометр, причем не совсем ясно, в сочетании с гироскопом или нет. У вас в статье на Хабре описана матрица поворота R, вроде как происходящая только из данных гироскопа. Я так понимаю, что наилучший вариант для матрицы R - это создать ее на базе данных акселя и гиро, с использованием допустим EKF (расширенного калмана).
    Я это к чему веду. Какой вообще порядок действий то при работе с IMU? Ну скажем мы запустили все это, данные идут, нам что калибровать первым? Магнитометр зависит от акселерометра, гироскоп с акселерометром проходят стадию sensor fusion вместе, при этом у всех них есть смещение (у гиро как минимум, приводящее к дрейфу, у акселя тоже), у магнитометра аж еще и смещение плюс деформация из-за магнитных полей.
    И что делать со смещением датчиков? Методика расчета калмана может решить проблему с постоянно меняющимся смещением допустим прямо во время работы датчика? Я видел варианты, где данные акселя фильтруют предварительно через LPF, а гироскопа - через HPF (фильтры).
    И вообще, какой вот взять материал исследовательского характера, где прям будет расписано, что к чему и зачем? Совсем не хочется изобретать велосипед, просто хочется разобраться в вопросе, прям на уровне исходной математики.
    Спасибо, если ответите. Я понимаю, как фильтр работает, но прям причинно-следственного понимания нет. Без него нереально что-то свое создать, или оптимизировать.

    • @danieolivo2438
      @danieolivo2438  29 днів тому

      Да, лучше всего матрицу R (точнее, нужна только матрица dR) получить из фильтров Мэджвика или Калмана по данным акселерометров и гироскопов. Так вот, акселерометры и гироскопы перед получением углов с помощью фильтра нужно откалибровать - определить матрицы их взаимной привязки (у них оси не обязаны совпадать) и смещения с масштабными коэффициентами (для акселерометров калибровать масштаб не обязательно - от них нужен только вектор направления). Для акселерометров это можно сделать используя только вектор силы тяжести G. Кстати, можно для определения их смещений использовать вышеприведённый фильтр Калмана, как и для магнитометров, только убрать из него матрицу W (и фильтр станет линейным). Для гироскопов же потребуется стенд, способный задавать постоянную скорость вращения. Это для определения масштабных коэффициентов. Смещения же гироскопов определяются очевидно - это просто показания в состоянии покоя. Таким образом, сначала привязываете оси устройств друг к другу матрицами вращения. Потом определяете смещения. Потом определяете масштаб. А потом уже калибруете магнитометры.
      Варианты с LPF и HPF - это, вероятно, комплементарный фильтр вместо фильтра Калмана/Мэджвика.
      А где взять исследовательский материал... В целом, есть статьи по отдельным направлениям, есть специализированные журналы ("Гироскопия и навигация").

    • @earielflare2203
      @earielflare2203 28 днів тому

      @@danieolivo2438 Спасибо за ответ!
      Честно говоря, про масштабирование я вообще не думал. Обычно даже вопросы калибровки не рассматриваются, сразу делают упор на фльтрации сигналов, и что самое смешное, оно работает.
      У меня есть устройство на базе STM32F103C8T6 и модуля MPU6050 (гир+аксель), и я смог залить туда код с использозванием либы I2Cdevlib (Jeff Rowberg). Там типа проприетарный код для DMP содержится. И оно выводит вполне адекватные данные на ПК по прерыванию пина int (через uart с частотой 100Гц), но понятное дело, неизвестно как. Есть дрейф по времени для оси Z, а оси XY норм все показывают. Я это к тому, что в начале там функция калибровки отрабатывает (что-то скрытое от глаз), а дальше просто все работает. В чем загвозка например - с течением времени и изменением температуры смещение (bias) для того же гироскопа (и скорее всего для прочего) плавает, и я не могу понять, каким образом происходит компенсация его в процессе работы. Где-то слышал в одном из буржуйских роликов, что сам фильтр в процессе подстраивает это смещение. Вот если взять пример с магнитометром, он ведь тоже может в процессе работы проводить "докалибровку"? В целом, можем ли мы вообще отказаться от функции начальной калибровки, если она возможна в процессе работы? Ну взяли там прошили какие-то примерные смещения.. Потом фильтр уже сам их подгоняет и меняет в процессе работы?

  • @evgesh87
    @evgesh87 Місяць тому +1

    Так вот зачем телефон крутить восьмеркой для калибровки магнитометра

    • @danieolivo2438
      @danieolivo2438  Місяць тому

      Да. Но там может калибровка быть сделана на другом принципе. Но суть та же.