Создание собственной системы стабилизации
new mag data is available every 100 ms
Читаю его с частотой 20 Гц, именно задержка после выборки кристалла нужна (и не маленькая), или ёмкость монтажа сказывается (тогда почему аксель и гира работают??), или корпус попался капризный, попробую заменить на другой…
именно задержка после выборки кристалла нужна
может “прижимается” плохо? медленно…
может “прижимается” плохо? медленно…
может… кстати как раз из за емкости монтажа… отдельные платки с ИМУ все I2C-ешные, а SPi-ных я че то не видел…
может “прижимается” плохо? медленно…
Оказалось, что слишком быстро инициализация проходила (задержки на запись остались от stm103го), а верней - не проходила… и никакие ёмкости тут не причем… 😃 щас все пашет…
Сергей, что там с тестовыми полетами на “двойном” комплекте датчиков и, кажется, каком то мегакоде ?? (народ в ожидании результатов…)
Времени нет, свой дом - всё-таки свой дом, работы валом, Макс тоже пока занят… Чуть освободимся подтянем)))
Фильтр Маджвика. Не разбираюсь в этом но может разработчикам будет интересно почитать 😃
Фильтр Маджвика. Не разбираюсь в этом но может разработчикам будет интересно почитать
Статья для доцентов, много математических выкладок и наукообразия. . Для тех кто хорошо знает высшую математику, но не знает куда её применить, типа “как рассчитать вероятность падения бутерброда на масло”. А так почитать интересно, спасибо.
Если выкинуть все излишние сопли, то есть годные моменты:
Во многих реализациях фильтров авторы делают предположение, что ускорение движения и магнитные искажения присутствуют только короткий период времени. Поэтому величина коэффициента усиления фильтра β может быть выбрана достаточно низкой, чтобы отклонение вызванное ошибочными представлениями о гравитационных и магнитных искажениях наблюдаемых на местах, снизилось до приемлемого уровня за период. Минимально допустимое значение β ограничивается погрешностью измерений гироскопа.
Статья для доцентов, много математических выкладок и наукообразия. . Для тех кто хорошо знает высшую математику
Верно подмечено, тем кто математику изучал давно, будет сложно понять. Если разобрались, можете в двух словах описать в чем отличие от фильтра Махони, основанном на матрице поворота и комплиментарном фильтре? По моему, он на порядок проще.
Если разобрались, можете в двух словах описать в чем отличие от фильтра Махони, основанном на матрице поворота и комплиментарном фильтре? По моему, он на порядок проще.
Нет, сравнить не смогу, ибо не знаю алгоритма Махони. Более того не знаю как описывается ориентация в пространстве матрицей поворота.
Однако описанный в алгоритм статье мне понятен, так как моя ИНС построена на тех же принципах - Ориентация из векторных наблюдений. Только мой алгоритм вывернут на изнанку, Маджавик наблюдает вектора относительно ориентации платформы, а у меня относительно предполагаемой мировой ориентации.
Чтоб не быть голословным могу предложить эксперимент. Могу выложить прошивку под Ф3Дискавери с Маджавиком и моим алго. После чего проверить реакцию алго на изменение магнитного поля, поднося магнит к магнитометру. По реакции на возмущение будет понятна разница.
Статья для доцентов, много математических выкладок и наукообразия.
Этот “фильтр” уже давно свободно лежит в сети, и по моему, ничто иное как код “free_imu” от Фабио Варесано на кватернионах в двух реализациях (почти похожих) от Магвика и Махони…
Статья для доцентов, много математических выкладок и наукообразия
Теория красивая … но у меня на практике этот MARG так и заработал как надо из за магнитометра, который должен быть практически идеально откалиброван иначе вносил погрешности в крен и тангаж из-за “слияния” кватернионов… По факту нормально работает только гира+аксель…
из за магнитометра, который должен быть практически идеально откалиброван иначе вносил погрешности в крен и тангаж из-за “слияния” кватернионов…
Вот как раз этот момент в моём алго исправлен, магнитометр на крен и тангаж никак не влияет. Коррекция выполняется синусами проекции вектора магнитометра на предполагаемую мировую плоскость Oxy. Плюс корректировка акселя по ГПС и и барику.
Однако описанный в алгоритм статье мне понятен, так как моя ИНС построена на тех же принципах - Ориентация из векторных наблюдений. Только мой алгоритм вывернут на изнанку, Маджавик наблюдает вектора относительно ориентации платформы, а у меня относительно предполагаемой мировой ориентации.
Ты чего? вшиско едно, ты берёшь локальные координаты (дус аксель ) и доворачиваешь до глобальных (компас…) - вот она матрица поворота, а где глубинный смысл глобальные координаты доворачивать до локальных? потеряться в пространстве?
Хотя… как сказал Энштейн - “всё относительно”, где наш астронавигатор пропал? Дринкер, что ты на это скажешь?
Плюс корректировка акселя по ГПС и и барику
А вот это мне не понятно… имеется ввиду наверно вертикальное ускорение ? , но как можно скорректировать более точный датчик менее точными ? (шум баро полметра высоты а у ГПС и того больше)
но как можно скорректировать более точный датчик менее точными ?
всё зависит в каких пропорциях мешать 😃 может получиться спирт с водой, может вода со спиртом, а может и водка )))
всё зависит в каких пропорциях мешать может получиться спирт с водой, может вода со спиртом, а может и водка )))
Очень смахивает на алхимию… типа - взяли свинец, добавили немного гов**ца, получили золото… 😃
Хуже, коэффициенты влияния ещё нужно автоматически менять в зависимости от различных факторов, типа выход датчика из мат ожидания или например высоты аппарата над землёй…
ты берёшь локальные координаты (дус аксель ) и доворачиваешь до глобальных (компас…) - вот она матрица поворота, а где глубинный смысл глобальные координаты доворачивать до локальных?
Всё верно, так и делаю, только нет у меня матрицы поворотов, есть кватернион. А насчет докрутки до локальных, дык это мои догадки, но судя по описанному поведению некоторые платформы (читал про “немцев”) используют именно локальное представление.
Хуже, коэффициенты влияния ещё нужно автоматически менять в зависимости от различных факторов, типа выход датчика из мат ожидания или например высоты аппарата над землёй…
Вот с этим проблемы, надеюсь пока 😃
Вот с этим проблемы, надеюсь пока
А у каких известных проектов такие алгоритмы работают ? (я даже и не пытался разобраться в открытых источниках)
нет у меня матрицы поворотов, есть кватернион.
блин, ну как их там - управляющие косинусы - это и есть матрмца поворота или матрица управляющих косинусов, ну или кватернион - один хрен))) в екф чем прикольно - полученные данные от датчика не вхожи в мат ожидание - перерасчёт коэффициента влияния - исходя из коэффициентов Якоби (что кстати большинство пропускает и вбивают имперические константы вместо них)…
А у каких известных проектов такие алгоритмы работают ?
у Саши маховика ))) в маховие - заметьте на атмеге )))
лин, ну как их там - управляющие косинусы - это и есть матрмца поворота или матрица управляющих косинусов, ну или кватернион - один хрен)))
Неа, интерпретация поворота в них разная.
в екф чем прикольно
Ты с ним разобрался? Запустил?
в маховие - заметьте на атмеге )))
Хочу тоже поэкспериментировать с арду, чисто ради почёса ЧСВ 😃 Придумал примитивный алго стабилизации (изобрел велосипед), предположительно такой же в “немцах” используется, ну и в кетайских игрушках. В нем вообще нет ни кватернионов и ни матриц, тупая рефлексия на ПИДах. Но качество стабилизации и скорость обработки должны быть высокими.
На чем то более производительном относительно арду, запускать его смысла нет, теряется вся “прелесть” 😃
Матрица поворота или матрица направляющих косинусов тынц и далее по тексту "Выражение матрицы поворота через кватернион", ты же всё равно доворачиваешь их используя… или ты через арккосинусы арктангенсы разворачиваешь?
В нем вообще нет ни кватернионов и ни матриц, тупая рефлексия на ПИДах. Но качество стабилизации и скорость обработки должны быть высокими.
КК2 с акселем который, но помнится он на ассеме…
Ты с ним разобрался? Запустил?
всё в руинах, платы спрятаны от греха подальше 😃 боюсь только к осени доберусь… там в гите у меня датчики запущены, алгоритм запущен, что-то с настройками не так, как только аксель калибруешь - висяк вечный… надо разбираться, кстати у опенпилотов rcopen.com/blogs/74247/19886 калибровка акселя понравилась - можно даже не на ровной (не в горизонте) плоскости откалибровать, а вот с компасом намудрили, даже в деревянном доме нормально не калибруется - надо на улице - точек мало собирает, а ещё gps надо обязательно (акселю тоже) по данным жпс выводит склонение и гравитацию в данной точке…