Преобразование угловых скоростей в ориентацию Wii Motionplus

Я работаю над Wii Motionplus и извлек необработанные значения с помощью библиотеки WiimoteLib. Однако, когда я его нормализую, я получаю случайные значения, которые не соответствуют тому, что происходит на самом деле.

Вот как я нормализую:

  1. Откалибруйте Motionplus (т.е. найдите необработанное значение, соответствующее нулю; я делаю это, удерживая его неподвижным в течение некоторого времени)

  2. Для каждого последующего чтения необработанного значения я вычитаю из него нулевое значение, чтобы получить «относительное» необработанное значение.

  3. Затем я масштабирую это значение, используя http://wiibrew.org/wiki/Wiimote/Extension_Controllers ( проверка на yaw_fast, pitch_fast и т. д.), где числовые значения вычисляются с использованием меры (исходное значение 8192 соответствует 595 град/с)

  4. Я суммирую все эти значения с течением времени (дискретное интегрирование), чтобы получить угол wiimote относительно начальной ориентации.

Однако, когда я рассчитываю это и отображаю на графике, ступенчатое изменение одной из осей НЕ отражается на графике. Пробовал использовать для сравнения цифровой компас, но хотя компас правильно отображает значения, значения wii совершенно разные (даже рисунок не тот)

Может ли кто-нибудь сказать мне, где я ошибаюсь с нормализацией?

Спасибо!


person Imelza    schedule 02.12.2010    source источник


Ответы (1)


Отправляемые числа представляют собой повороты вокруг осей x, y и z относительно себя. Чтобы связать это с координатами x, y, z, вам нужно будет использовать матрицу вращения, и, поскольку показания вращения не являются фиксированной осью, а зависят от того, в какой ориентации вы находитесь, вам нужно использовать матрицу Эйлера, чтобы связать это с фиксированная координата x,y,z

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

ROLL — это вращение вокруг оси Y.

PITCH - это вращение вокруг оси X

YAW — это вращение вокруг оси Z.

person rfitzgerald    schedule 03.06.2011