2010-12-02 5 views
0

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

Это, как я нормализуя:

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

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

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

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

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

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

Спасибо!

ответ

1

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

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

Рулон это вращение вокруг оси у

пек вращение вокруг оси х

рыскания Вращение вокруг оси