В каком виде нужно передать данные с акселя, гироскопа и магнитометра на вход алгоритма?
для всех данных нужно вычитать bias (смещение 0),
гиро и аксель калибруются легко, магнетометр сложенее, подробнее тут
https://github.com/ptrbrtz/razor-9dof-a ... alibrationДля алгоритма нужно чтобы ось Z была вниз, т.е. микросхема/плата должна быть перевёрнута вверх ногами.
Какие настройки у алгоритма?
Коэффициенты ПД регулятора Kp, Ki и частота вычисления положения по новым данным.
И как получить угол рысканья из выходных данных?
В радианах (yaw - угол рысканья):
- Код: Выделить всё • Развернуть
roll = atan2( 2 *(q0*q1 + q2*q3), pow(q0,2)-pow(q1,2)-pow(q2,2)+pow(q3,2));
pitch = asin(-2 *(q1*q3 - q0*q2) );
yaw = atan2((2*(q1*q2 + q0*q3)),( pow(q0,2)+pow(q1,2)-pow(q2,2)-pow(q3,2)));
Но не ждите много от этого датчика и алгоритма, курс будет уплывать.
В моём блоге на первых 2 страницах несколько роликов как я добивался устойчивого курса
forum87/topic15337.htmlДаже если вы всё откалибруете верно, гиро довольно быстро уплываете, а магнетометр врёт в зависимости от окружающей среды, вот пример
forum87/topic15337-15.html#p326155Начиная с 3тьей страницы диалог наш с Дмитрием по поводу нужен компас или нет и если без компаса то какой гиро можно считать "приличным".