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

  Рет қаралды 397

Danie Olivo

Danie Olivo

Күн бұрын

Пікірлер: 10
@AsdDsa-o6u
@AsdDsa-o6u 6 ай бұрын
Здравствуйте с уважением к вашему делу много усилий сделано и вложено для достижения цели подскажите как найти схему для накачки импульсом лампы ксенола для рубинового лазера как собрать схему где найти и как сделать. С уважением к вам и вашему делу огромных успехов достижений здоровья счастья.
@aftaev
@aftaev 8 ай бұрын
Надо попробовать сигнал с электроэрозии пропустить через фильтра Калмана.
@gguy156
@gguy156 8 ай бұрын
Ну фильтр Калмана - классика цифровой обработки сигналов
@earielflare2203
@earielflare2203 7 ай бұрын
Спасибо за ролик, есть вопрос. В ютубе есть ряд буржуинских материалов на эту тему, в частности матлабовские видео. Ссылки ютуб не переваривает, но по названию можно найти: Understanding Sensor Fusion and Tracking, Part 2: Fusing a Mag, Accel, & Gyro Estimate В этом ролике обсуждается как раз калибровка, и тоже объясняется, что есть вектор смещения, и матрица поворота. Вот только там почему-то в качестве калибрующего соседа используется акселерометр, причем не совсем ясно, в сочетании с гироскопом или нет. У вас в статье на Хабре описана матрица поворота R, вроде как происходящая только из данных гироскопа. Я так понимаю, что наилучший вариант для матрицы R - это создать ее на базе данных акселя и гиро, с использованием допустим EKF (расширенного калмана). Я это к чему веду. Какой вообще порядок действий то при работе с IMU? Ну скажем мы запустили все это, данные идут, нам что калибровать первым? Магнитометр зависит от акселерометра, гироскоп с акселерометром проходят стадию sensor fusion вместе, при этом у всех них есть смещение (у гиро как минимум, приводящее к дрейфу, у акселя тоже), у магнитометра аж еще и смещение плюс деформация из-за магнитных полей. И что делать со смещением датчиков? Методика расчета калмана может решить проблему с постоянно меняющимся смещением допустим прямо во время работы датчика? Я видел варианты, где данные акселя фильтруют предварительно через LPF, а гироскопа - через HPF (фильтры). И вообще, какой вот взять материал исследовательского характера, где прям будет расписано, что к чему и зачем? Совсем не хочется изобретать велосипед, просто хочется разобраться в вопросе, прям на уровне исходной математики. Спасибо, если ответите. Я понимаю, как фильтр работает, но прям причинно-следственного понимания нет. Без него нереально что-то свое создать, или оптимизировать.
@danieolivo2438
@danieolivo2438 7 ай бұрын
Да, лучше всего матрицу R (точнее, нужна только матрица dR) получить из фильтров Мэджвика или Калмана по данным акселерометров и гироскопов. Так вот, акселерометры и гироскопы перед получением углов с помощью фильтра нужно откалибровать - определить матрицы их взаимной привязки (у них оси не обязаны совпадать) и смещения с масштабными коэффициентами (для акселерометров калибровать масштаб не обязательно - от них нужен только вектор направления). Для акселерометров это можно сделать используя только вектор силы тяжести G. Кстати, можно для определения их смещений использовать вышеприведённый фильтр Калмана, как и для магнитометров, только убрать из него матрицу W (и фильтр станет линейным). Для гироскопов же потребуется стенд, способный задавать постоянную скорость вращения. Это для определения масштабных коэффициентов. Смещения же гироскопов определяются очевидно - это просто показания в состоянии покоя. Таким образом, сначала привязываете оси устройств друг к другу матрицами вращения. Потом определяете смещения. Потом определяете масштаб. А потом уже калибруете магнитометры. Варианты с LPF и HPF - это, вероятно, комплементарный фильтр вместо фильтра Калмана/Мэджвика. А где взять исследовательский материал... В целом, есть статьи по отдельным направлениям, есть специализированные журналы ("Гироскопия и навигация").
@earielflare2203
@earielflare2203 7 ай бұрын
@@danieolivo2438 Спасибо за ответ! Честно говоря, про масштабирование я вообще не думал. Обычно даже вопросы калибровки не рассматриваются, сразу делают упор на фльтрации сигналов, и что самое смешное, оно работает. У меня есть устройство на базе STM32F103C8T6 и модуля MPU6050 (гир+аксель), и я смог залить туда код с использозванием либы I2Cdevlib (Jeff Rowberg). Там типа проприетарный код для DMP содержится. И оно выводит вполне адекватные данные на ПК по прерыванию пина int (через uart с частотой 100Гц), но понятное дело, неизвестно как. Есть дрейф по времени для оси Z, а оси XY норм все показывают. Я это к тому, что в начале там функция калибровки отрабатывает (что-то скрытое от глаз), а дальше просто все работает. В чем загвозка например - с течением времени и изменением температуры смещение (bias) для того же гироскопа (и скорее всего для прочего) плавает, и я не могу понять, каким образом происходит компенсация его в процессе работы. Где-то слышал в одном из буржуйских роликов, что сам фильтр в процессе подстраивает это смещение. Вот если взять пример с магнитометром, он ведь тоже может в процессе работы проводить "докалибровку"? В целом, можем ли мы вообще отказаться от функции начальной калибровки, если она возможна в процессе работы? Ну взяли там прошили какие-то примерные смещения.. Потом фильтр уже сам их подгоняет и меняет в процессе работы?
@evgesh87
@evgesh87 8 ай бұрын
Так вот зачем телефон крутить восьмеркой для калибровки магнитометра
@danieolivo2438
@danieolivo2438 8 ай бұрын
Да. Но там может калибровка быть сделана на другом принципе. Но суть та же.
@IvanEng747
@IvanEng747 2 ай бұрын
Видео получилось двусмысленное, во первых проблема поднята актуальная и такой калибровки еще не встречал, обычно калибруют по простому - устраняя эллипсоиду и вытянутость, с помощью известной программы magneto или схожих. Во вторых видео сделано как будто из разряда "смотри как я смог", подробностей мало, только зубодробительная математика. На хабре ее много, и добавление новой не дает понимания вопроса, а запутывает еще больше. Ну и особой злобы вызывает просто видео, без особого "экшена" и по итогу даже исходников нет. Частично исходники нашел на хабре, но там исходники без привязки к проекту, т.е. выложили как есть. В сухом остатке конечно видео и статья не для простых людей и требует внимательного изучения. Вопрос к автору - вы не реализовывали калибровку на борту - in device calibration? Потому, что все эти калибровки похожи одна на другую. Берешь любые датчики магнитометра, подключаешь по I2C, крутишь, вертишь, собираешь все в эксель и прогоняешь через чудо-программы, на выходе коэффициенты, которые еще надо подставить обратно в код прошивки, чтобы скорректировать эллипсоиду измеренных точек магнитного поля. Но хочется, и делают - измерения в прошивке, просто загоняешь устройство в режим маг-калибровки и вращаешь, прошивка собирает точки, сама их нормирует, шкалирует и рассчитывает коэффициенты и записывает в память и потом использует. Хотелось бы такого примера. В целом спасибо за вашу работу.
@danieolivo2438
@danieolivo2438 2 ай бұрын
Тут как бы, действительно, нужно хотя бы как-то представлять что за матрицы и как работает фильтр Калмана. Исходники сделаны для прогона математики. Сама математика входит в проект, который как бы не самоделка ни разу и сам проект я выкладывать не могу. И как раз эта модель и нужна для калибровки на борту.
黑天使被操控了#short #angel #clown
00:40
Super Beauty team
Рет қаралды 61 МЛН
99.9% IMPOSSIBLE
00:24
STORROR
Рет қаралды 31 МЛН
小丑女COCO的审判。#天使 #小丑 #超人不会飞
00:53
超人不会飞
Рет қаралды 16 МЛН
УВЕЛИЧИЛ ЖИГУ в 2 РАЗА - Жигули XXL
17:03
Гараж 54
Рет қаралды 137 М.
Собираем автоматику для пивоварни и не только.
9:22
Пивовар-Ардуинщик (MaxBrewer)
Рет қаралды 1,7 М.
Клон IBM-PC XT. Первое включение.
4:40
Danie Olivo
Рет қаралды 451
ESP8266 Web server, MQTT
27:56
Влад Хоменчук
Рет қаралды 16
黑天使被操控了#short #angel #clown
00:40
Super Beauty team
Рет қаралды 61 МЛН