Jul. 14th, 2021

wunderwaffe: тупят другие (karliki)
Итак, были взяты следующие библиотеки для фильтра Маджвика для ардуины -

1) оригинальная, https://x-io.co.uk/open-source-imu-and-ahrs-algorithms/
2) Амперка, http://wiki.amperka.ru/products:troyka-imu-10-dof-v2
3) Роботкласс, https://robotclass.ru/articles/madgwick-filter/4/

В оригинальной остались обе ошибки - и приближенного вычисления обратного квадратного корня(Е1), и в раскрытии формулы градиентального спуска с использованием магнитометра(Е2).
Амперка - Е1 нет, использованием в лоб ф-ии sqrtf, но Е2 присутствует.
Роботкласс - Е2 нет, зато присутствует Е1.

Код для без магнитометра везде одинаковый, но то, что он делает, работой назвать трудно, см. предыдущую запись.
Может, поэтому - в статье-переводе https://habr.com/ru/post/255661/ ("Кое-где буду от себя добавлять — там текст выделен курсивом. Мною найдено более 10 опечаток в оригинальном тексте" - прим. переводчика) оригинального текста Маджвика много места уделяется коэффициенту зета -

" Коэффициент усиления фильтра ζ представляет собой скорость сходимости для удаления ошибок измерения гироскопа, не связанных с нулём и также выражен как величина производного кватерниона. Эти ошибки представляют собой смещение гироскопа. ... Коэффициент усиления ζ, применимый только к варианту с гироскопом, был установлен в 0, так как калибровка датчиков ориентации не предполагает дрейф смещения гироскопа."

которого в коде я не нашол. Есть упоминание в библиотеки амперки -

"// Compute zeta
constexpr float ZETA_DEFAULT = sqrt(3.0f / 4.0f) * GYRO_MEAS_DRIFT;"

Но он там никак не используется. З а е б и с ь.

Profile

wunderwaffe: рабочее (Default)
доктор Вандершпигель

April 2022

S M T W T F S
     12
34567 89
1011 12 1314 1516
17181920212223
24252627282930

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 13th, 2025 10:44 pm
Powered by Dreamwidth Studios