Создание собственной системы стабилизации

oleg70
SergDoc:

new mag data is available every 100 ms

Читаю его с частотой 20 Гц, именно задержка после выборки кристалла нужна (и не маленькая), или ёмкость монтажа сказывается (тогда почему аксель и гира работают??), или корпус попался капризный, попробую заменить на другой…

SergDoc
oleg70:

именно задержка после выборки кристалла нужна

может “прижимается” плохо? медленно…

oleg70
SergDoc:

может “прижимается” плохо? медленно…

может… кстати как раз из за емкости монтажа… отдельные платки с ИМУ все I2C-ешные, а SPi-ных я че то не видел…

17 days later
oleg70
SergDoc:

может “прижимается” плохо? медленно…

Оказалось, что слишком быстро инициализация проходила (задержки на запись остались от stm103го), а верней - не проходила… и никакие ёмкости тут не причем… 😃 щас все пашет…
Сергей, что там с тестовыми полетами на “двойном” комплекте датчиков и, кажется, каком то мегакоде ?? (народ в ожидании результатов…)

SergDoc

Времени нет, свой дом - всё-таки свой дом, работы валом, Макс тоже пока занят… Чуть освободимся подтянем)))

Hyperion

Фильтр Маджвика. Не разбираюсь в этом но может разработчикам будет интересно почитать 😃

habrahabr.ru/post/255661/

rual
Hyperion:

Фильтр Маджвика. Не разбираюсь в этом но может разработчикам будет интересно почитать

Статья для доцентов, много математических выкладок и наукообразия. . Для тех кто хорошо знает высшую математику, но не знает куда её применить, типа “как рассчитать вероятность падения бутерброда на масло”. А так почитать интересно, спасибо.
Если выкинуть все излишние сопли, то есть годные моменты:

Во многих реализациях фильтров авторы делают предположение, что ускорение движения и магнитные искажения присутствуют только короткий период времени. Поэтому величина коэффициента усиления фильтра β может быть выбрана достаточно низкой, чтобы отклонение вызванное ошибочными представлениями о гравитационных и магнитных искажениях наблюдаемых на местах, снизилось до приемлемого уровня за период. Минимально допустимое значение β ограничивается погрешностью измерений гироскопа.

alexmos
rual:

Статья для доцентов, много математических выкладок и наукообразия. . Для тех кто хорошо знает высшую математику

Верно подмечено, тем кто математику изучал давно, будет сложно понять. Если разобрались, можете в двух словах описать в чем отличие от фильтра Махони, основанном на матрице поворота и комплиментарном фильтре? По моему, он на порядок проще.

rual
alexmos:

Если разобрались, можете в двух словах описать в чем отличие от фильтра Махони, основанном на матрице поворота и комплиментарном фильтре? По моему, он на порядок проще.

Нет, сравнить не смогу, ибо не знаю алгоритма Махони. Более того не знаю как описывается ориентация в пространстве матрицей поворота.
Однако описанный в алгоритм статье мне понятен, так как моя ИНС построена на тех же принципах - Ориентация из векторных наблюдений. Только мой алгоритм вывернут на изнанку, Маджавик наблюдает вектора относительно ориентации платформы, а у меня относительно предполагаемой мировой ориентации.
Чтоб не быть голословным могу предложить эксперимент. Могу выложить прошивку под Ф3Дискавери с Маджавиком и моим алго. После чего проверить реакцию алго на изменение магнитного поля, поднося магнит к магнитометру. По реакции на возмущение будет понятна разница.

oleg70
rual:

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

Этот “фильтр” уже давно свободно лежит в сети, и по моему, ничто иное как код “free_imu” от Фабио Варесано на кватернионах в двух реализациях (почти похожих) от Магвика и Махони…

rual:

Статья для доцентов, много математических выкладок и наукообразия

Теория красивая … но у меня на практике этот MARG так и заработал как надо из за магнитометра, который должен быть практически идеально откалиброван иначе вносил погрешности в крен и тангаж из-за “слияния” кватернионов… По факту нормально работает только гира+аксель…

rual
oleg70:

из за магнитометра, который должен быть практически идеально откалиброван иначе вносил погрешности в крен и тангаж из-за “слияния” кватернионов…

Вот как раз этот момент в моём алго исправлен, магнитометр на крен и тангаж никак не влияет. Коррекция выполняется синусами проекции вектора магнитометра на предполагаемую мировую плоскость Oxy. Плюс корректировка акселя по ГПС и и барику.

SergDoc
rual:

Однако описанный в алгоритм статье мне понятен, так как моя ИНС построена на тех же принципах - Ориентация из векторных наблюдений. Только мой алгоритм вывернут на изнанку, Маджавик наблюдает вектора относительно ориентации платформы, а у меня относительно предполагаемой мировой ориентации.

Ты чего? вшиско едно, ты берёшь локальные координаты (дус аксель ) и доворачиваешь до глобальных (компас…) - вот она матрица поворота, а где глубинный смысл глобальные координаты доворачивать до локальных? потеряться в пространстве?
Хотя… как сказал Энштейн - “всё относительно”, где наш астронавигатор пропал? Дринкер, что ты на это скажешь?

oleg70
rual:

Плюс корректировка акселя по ГПС и и барику

А вот это мне не понятно… имеется ввиду наверно вертикальное ускорение ? , но как можно скорректировать более точный датчик менее точными ? (шум баро полметра высоты а у ГПС и того больше)

SergDoc
oleg70:

но как можно скорректировать более точный датчик менее точными ?

всё зависит в каких пропорциях мешать 😃 может получиться спирт с водой, может вода со спиртом, а может и водка )))

oleg70
SergDoc:

всё зависит в каких пропорциях мешать может получиться спирт с водой, может вода со спиртом, а может и водка )))

Очень смахивает на алхимию… типа - взяли свинец, добавили немного гов**ца, получили золото… 😃

SergDoc

Хуже, коэффициенты влияния ещё нужно автоматически менять в зависимости от различных факторов, типа выход датчика из мат ожидания или например высоты аппарата над землёй…

rual
SergDoc:

ты берёшь локальные координаты (дус аксель ) и доворачиваешь до глобальных (компас…) - вот она матрица поворота, а где глубинный смысл глобальные координаты доворачивать до локальных?

Всё верно, так и делаю, только нет у меня матрицы поворотов, есть кватернион. А насчет докрутки до локальных, дык это мои догадки, но судя по описанному поведению некоторые платформы (читал про “немцев”) используют именно локальное представление.

SergDoc:

Хуже, коэффициенты влияния ещё нужно автоматически менять в зависимости от различных факторов, типа выход датчика из мат ожидания или например высоты аппарата над землёй…

Вот с этим проблемы, надеюсь пока 😃

oleg70
rual:

Вот с этим проблемы, надеюсь пока

А у каких известных проектов такие алгоритмы работают ? (я даже и не пытался разобраться в открытых источниках)

SergDoc
rual:

нет у меня матрицы поворотов, есть кватернион.

блин, ну как их там - управляющие косинусы - это и есть матрмца поворота или матрица управляющих косинусов, ну или кватернион - один хрен))) в екф чем прикольно - полученные данные от датчика не вхожи в мат ожидание - перерасчёт коэффициента влияния - исходя из коэффициентов Якоби (что кстати большинство пропускает и вбивают имперические константы вместо них)…

oleg70:

А у каких известных проектов такие алгоритмы работают ?

у Саши маховика ))) в маховие - заметьте на атмеге )))

rual
SergDoc:

лин, ну как их там - управляющие косинусы - это и есть матрмца поворота или матрица управляющих косинусов, ну или кватернион - один хрен)))

Неа, интерпретация поворота в них разная.

SergDoc:

в екф чем прикольно

Ты с ним разобрался? Запустил?

SergDoc:

в маховие - заметьте на атмеге )))

Хочу тоже поэкспериментировать с арду, чисто ради почёса ЧСВ 😃 Придумал примитивный алго стабилизации (изобрел велосипед), предположительно такой же в “немцах” используется, ну и в кетайских игрушках. В нем вообще нет ни кватернионов и ни матриц, тупая рефлексия на ПИДах. Но качество стабилизации и скорость обработки должны быть высокими.

На чем то более производительном относительно арду, запускать его смысла нет, теряется вся “прелесть” 😃

SergDoc

Матрица поворота или матрица направляющих косинусов тынц и далее по тексту "Выражение матрицы поворота через кватернион", ты же всё равно доворачиваешь их используя… или ты через арккосинусы арктангенсы разворачиваешь?

rual:

В нем вообще нет ни кватернионов и ни матриц, тупая рефлексия на ПИДах. Но качество стабилизации и скорость обработки должны быть высокими.

КК2 с акселем который, но помнится он на ассеме…

rual:

Ты с ним разобрался? Запустил?

всё в руинах, платы спрятаны от греха подальше 😃 боюсь только к осени доберусь… там в гите у меня датчики запущены, алгоритм запущен, что-то с настройками не так, как только аксель калибруешь - висяк вечный… надо разбираться, кстати у опенпилотов rcopen.com/blogs/74247/19886 калибровка акселя понравилась - можно даже не на ровной (не в горизонте) плоскости откалибровать, а вот с компасом намудрили, даже в деревянном доме нормально не калибруется - надо на улице - точек мало собирает, а ещё gps надо обязательно (акселю тоже) по данным жпс выводит склонение и гравитацию в данной точке…