Я использую C++ реализацию алгоритма Madgwick Algorithim, имея свои датчики (акселерометр, магнитометр и гироскоп), откалиброванные. Кажется, что все работает хорошо, но когда я помещаю датчик в вертикальное положение (шаг до 90 градусов), другие углы начинают делать странные вещи. Это то, что я получаю: Matlab plot problemMadgwick IMU 90 градусов Angles
Фактически, углы, которые я получаю, являются правильными, но выражаются по-другому. Я должен получить только:
- Рулон: 0
- Высота: 90
- рыскания: -150
Но я получаю:
- Рулон: -180
- Шаг: 90
- Yaw: 50
Оба результата те же, верно? Мои вопросы:
- Является ли это проблемой Gimbal Lock?
- Насколько я знаю, Gimbal Lock должен получать ошибки в углах, но я получаю их в порядке. Алгоритм Madgwick пытается избежать этого Gimbal Lock?