Здравствуйте с уважением к вашему делу много усилий сделано и вложено для достижения цели подскажите как найти схему для накачки импульсом лампы ксенола для рубинового лазера как собрать схему где найти и как сделать. С уважением к вам и вашему делу огромных успехов достижений здоровья счастья.
Спасибо за ролик, есть вопрос. В ютубе есть ряд буржуинских материалов на эту тему, в частности матлабовские видео. Ссылки ютуб не переваривает, но по названию можно найти: Understanding Sensor Fusion and Tracking, Part 2: Fusing a Mag, Accel, & Gyro Estimate В этом ролике обсуждается как раз калибровка, и тоже объясняется, что есть вектор смещения, и матрица поворота. Вот только там почему-то в качестве калибрующего соседа используется акселерометр, причем не совсем ясно, в сочетании с гироскопом или нет. У вас в статье на Хабре описана матрица поворота R, вроде как происходящая только из данных гироскопа. Я так понимаю, что наилучший вариант для матрицы R - это создать ее на базе данных акселя и гиро, с использованием допустим EKF (расширенного калмана). Я это к чему веду. Какой вообще порядок действий то при работе с IMU? Ну скажем мы запустили все это, данные идут, нам что калибровать первым? Магнитометр зависит от акселерометра, гироскоп с акселерометром проходят стадию sensor fusion вместе, при этом у всех них есть смещение (у гиро как минимум, приводящее к дрейфу, у акселя тоже), у магнитометра аж еще и смещение плюс деформация из-за магнитных полей. И что делать со смещением датчиков? Методика расчета калмана может решить проблему с постоянно меняющимся смещением допустим прямо во время работы датчика? Я видел варианты, где данные акселя фильтруют предварительно через LPF, а гироскопа - через HPF (фильтры). И вообще, какой вот взять материал исследовательского характера, где прям будет расписано, что к чему и зачем? Совсем не хочется изобретать велосипед, просто хочется разобраться в вопросе, прям на уровне исходной математики. Спасибо, если ответите. Я понимаю, как фильтр работает, но прям причинно-следственного понимания нет. Без него нереально что-то свое создать, или оптимизировать.
Да, лучше всего матрицу R (точнее, нужна только матрица dR) получить из фильтров Мэджвика или Калмана по данным акселерометров и гироскопов. Так вот, акселерометры и гироскопы перед получением углов с помощью фильтра нужно откалибровать - определить матрицы их взаимной привязки (у них оси не обязаны совпадать) и смещения с масштабными коэффициентами (для акселерометров калибровать масштаб не обязательно - от них нужен только вектор направления). Для акселерометров это можно сделать используя только вектор силы тяжести G. Кстати, можно для определения их смещений использовать вышеприведённый фильтр Калмана, как и для магнитометров, только убрать из него матрицу W (и фильтр станет линейным). Для гироскопов же потребуется стенд, способный задавать постоянную скорость вращения. Это для определения масштабных коэффициентов. Смещения же гироскопов определяются очевидно - это просто показания в состоянии покоя. Таким образом, сначала привязываете оси устройств друг к другу матрицами вращения. Потом определяете смещения. Потом определяете масштаб. А потом уже калибруете магнитометры. Варианты с LPF и HPF - это, вероятно, комплементарный фильтр вместо фильтра Калмана/Мэджвика. А где взять исследовательский материал... В целом, есть статьи по отдельным направлениям, есть специализированные журналы ("Гироскопия и навигация").
@@danieolivo2438 Спасибо за ответ! Честно говоря, про масштабирование я вообще не думал. Обычно даже вопросы калибровки не рассматриваются, сразу делают упор на фльтрации сигналов, и что самое смешное, оно работает. У меня есть устройство на базе STM32F103C8T6 и модуля MPU6050 (гир+аксель), и я смог залить туда код с использозванием либы I2Cdevlib (Jeff Rowberg). Там типа проприетарный код для DMP содержится. И оно выводит вполне адекватные данные на ПК по прерыванию пина int (через uart с частотой 100Гц), но понятное дело, неизвестно как. Есть дрейф по времени для оси Z, а оси XY норм все показывают. Я это к тому, что в начале там функция калибровки отрабатывает (что-то скрытое от глаз), а дальше просто все работает. В чем загвозка например - с течением времени и изменением температуры смещение (bias) для того же гироскопа (и скорее всего для прочего) плавает, и я не могу понять, каким образом происходит компенсация его в процессе работы. Где-то слышал в одном из буржуйских роликов, что сам фильтр в процессе подстраивает это смещение. Вот если взять пример с магнитометром, он ведь тоже может в процессе работы проводить "докалибровку"? В целом, можем ли мы вообще отказаться от функции начальной калибровки, если она возможна в процессе работы? Ну взяли там прошили какие-то примерные смещения.. Потом фильтр уже сам их подгоняет и меняет в процессе работы?
Видео получилось двусмысленное, во первых проблема поднята актуальная и такой калибровки еще не встречал, обычно калибруют по простому - устраняя эллипсоиду и вытянутость, с помощью известной программы magneto или схожих. Во вторых видео сделано как будто из разряда "смотри как я смог", подробностей мало, только зубодробительная математика. На хабре ее много, и добавление новой не дает понимания вопроса, а запутывает еще больше. Ну и особой злобы вызывает просто видео, без особого "экшена" и по итогу даже исходников нет. Частично исходники нашел на хабре, но там исходники без привязки к проекту, т.е. выложили как есть. В сухом остатке конечно видео и статья не для простых людей и требует внимательного изучения. Вопрос к автору - вы не реализовывали калибровку на борту - in device calibration? Потому, что все эти калибровки похожи одна на другую. Берешь любые датчики магнитометра, подключаешь по I2C, крутишь, вертишь, собираешь все в эксель и прогоняешь через чудо-программы, на выходе коэффициенты, которые еще надо подставить обратно в код прошивки, чтобы скорректировать эллипсоиду измеренных точек магнитного поля. Но хочется, и делают - измерения в прошивке, просто загоняешь устройство в режим маг-калибровки и вращаешь, прошивка собирает точки, сама их нормирует, шкалирует и рассчитывает коэффициенты и записывает в память и потом использует. Хотелось бы такого примера. В целом спасибо за вашу работу.
Тут как бы, действительно, нужно хотя бы как-то представлять что за матрицы и как работает фильтр Калмана. Исходники сделаны для прогона математики. Сама математика входит в проект, который как бы не самоделка ни разу и сам проект я выкладывать не могу. И как раз эта модель и нужна для калибровки на борту.
Здравствуйте с уважением к вашему делу много усилий сделано и вложено для достижения цели подскажите как найти схему для накачки импульсом лампы ксенола для рубинового лазера как собрать схему где найти и как сделать.
С уважением к вам и вашему делу огромных успехов достижений здоровья счастья.
Надо попробовать сигнал с электроэрозии пропустить через фильтра Калмана.
Ну фильтр Калмана - классика цифровой обработки сигналов
Спасибо за ролик, есть вопрос.
В ютубе есть ряд буржуинских материалов на эту тему, в частности матлабовские видео. Ссылки ютуб не переваривает, но по названию можно найти: Understanding Sensor Fusion and Tracking, Part 2: Fusing a Mag, Accel, & Gyro Estimate
В этом ролике обсуждается как раз калибровка, и тоже объясняется, что есть вектор смещения, и матрица поворота. Вот только там почему-то в качестве калибрующего соседа используется акселерометр, причем не совсем ясно, в сочетании с гироскопом или нет. У вас в статье на Хабре описана матрица поворота R, вроде как происходящая только из данных гироскопа. Я так понимаю, что наилучший вариант для матрицы R - это создать ее на базе данных акселя и гиро, с использованием допустим EKF (расширенного калмана).
Я это к чему веду. Какой вообще порядок действий то при работе с IMU? Ну скажем мы запустили все это, данные идут, нам что калибровать первым? Магнитометр зависит от акселерометра, гироскоп с акселерометром проходят стадию sensor fusion вместе, при этом у всех них есть смещение (у гиро как минимум, приводящее к дрейфу, у акселя тоже), у магнитометра аж еще и смещение плюс деформация из-за магнитных полей.
И что делать со смещением датчиков? Методика расчета калмана может решить проблему с постоянно меняющимся смещением допустим прямо во время работы датчика? Я видел варианты, где данные акселя фильтруют предварительно через LPF, а гироскопа - через HPF (фильтры).
И вообще, какой вот взять материал исследовательского характера, где прям будет расписано, что к чему и зачем? Совсем не хочется изобретать велосипед, просто хочется разобраться в вопросе, прям на уровне исходной математики.
Спасибо, если ответите. Я понимаю, как фильтр работает, но прям причинно-следственного понимания нет. Без него нереально что-то свое создать, или оптимизировать.
Да, лучше всего матрицу R (точнее, нужна только матрица dR) получить из фильтров Мэджвика или Калмана по данным акселерометров и гироскопов. Так вот, акселерометры и гироскопы перед получением углов с помощью фильтра нужно откалибровать - определить матрицы их взаимной привязки (у них оси не обязаны совпадать) и смещения с масштабными коэффициентами (для акселерометров калибровать масштаб не обязательно - от них нужен только вектор направления). Для акселерометров это можно сделать используя только вектор силы тяжести G. Кстати, можно для определения их смещений использовать вышеприведённый фильтр Калмана, как и для магнитометров, только убрать из него матрицу W (и фильтр станет линейным). Для гироскопов же потребуется стенд, способный задавать постоянную скорость вращения. Это для определения масштабных коэффициентов. Смещения же гироскопов определяются очевидно - это просто показания в состоянии покоя. Таким образом, сначала привязываете оси устройств друг к другу матрицами вращения. Потом определяете смещения. Потом определяете масштаб. А потом уже калибруете магнитометры.
Варианты с LPF и HPF - это, вероятно, комплементарный фильтр вместо фильтра Калмана/Мэджвика.
А где взять исследовательский материал... В целом, есть статьи по отдельным направлениям, есть специализированные журналы ("Гироскопия и навигация").
@@danieolivo2438 Спасибо за ответ!
Честно говоря, про масштабирование я вообще не думал. Обычно даже вопросы калибровки не рассматриваются, сразу делают упор на фльтрации сигналов, и что самое смешное, оно работает.
У меня есть устройство на базе STM32F103C8T6 и модуля MPU6050 (гир+аксель), и я смог залить туда код с использозванием либы I2Cdevlib (Jeff Rowberg). Там типа проприетарный код для DMP содержится. И оно выводит вполне адекватные данные на ПК по прерыванию пина int (через uart с частотой 100Гц), но понятное дело, неизвестно как. Есть дрейф по времени для оси Z, а оси XY норм все показывают. Я это к тому, что в начале там функция калибровки отрабатывает (что-то скрытое от глаз), а дальше просто все работает. В чем загвозка например - с течением времени и изменением температуры смещение (bias) для того же гироскопа (и скорее всего для прочего) плавает, и я не могу понять, каким образом происходит компенсация его в процессе работы. Где-то слышал в одном из буржуйских роликов, что сам фильтр в процессе подстраивает это смещение. Вот если взять пример с магнитометром, он ведь тоже может в процессе работы проводить "докалибровку"? В целом, можем ли мы вообще отказаться от функции начальной калибровки, если она возможна в процессе работы? Ну взяли там прошили какие-то примерные смещения.. Потом фильтр уже сам их подгоняет и меняет в процессе работы?
Так вот зачем телефон крутить восьмеркой для калибровки магнитометра
Да. Но там может калибровка быть сделана на другом принципе. Но суть та же.
Видео получилось двусмысленное, во первых проблема поднята актуальная и такой калибровки еще не встречал, обычно калибруют по простому - устраняя эллипсоиду и вытянутость, с помощью известной программы magneto или схожих.
Во вторых видео сделано как будто из разряда "смотри как я смог", подробностей мало, только зубодробительная математика.
На хабре ее много, и добавление новой не дает понимания вопроса, а запутывает еще больше.
Ну и особой злобы вызывает просто видео, без особого "экшена" и по итогу даже исходников нет.
Частично исходники нашел на хабре, но там исходники без привязки к проекту, т.е. выложили как есть.
В сухом остатке конечно видео и статья не для простых людей и требует внимательного изучения.
Вопрос к автору - вы не реализовывали калибровку на борту - in device calibration?
Потому, что все эти калибровки похожи одна на другую.
Берешь любые датчики магнитометра, подключаешь по I2C, крутишь, вертишь, собираешь все в эксель и прогоняешь через чудо-программы, на выходе коэффициенты, которые еще надо подставить обратно в код прошивки, чтобы скорректировать эллипсоиду измеренных точек магнитного поля.
Но хочется, и делают - измерения в прошивке, просто загоняешь устройство в режим маг-калибровки и вращаешь, прошивка собирает точки, сама их нормирует, шкалирует и рассчитывает коэффициенты и записывает в память и потом использует.
Хотелось бы такого примера.
В целом спасибо за вашу работу.
Тут как бы, действительно, нужно хотя бы как-то представлять что за матрицы и как работает фильтр Калмана. Исходники сделаны для прогона математики. Сама математика входит в проект, который как бы не самоделка ни разу и сам проект я выкладывать не могу. И как раз эта модель и нужна для калибровки на борту.