Уменьшение вариаций тангажа/крена wiimote

Я хочу использовать wiimote для управления курсором БЕЗ панели инфракрасного датчика. Я использую значения шага и крена для этого. Проблема в том, что когда тангаж близок к 0 градусов, крен очень нестабилен, а когда тангаж близок к 90 градусам, он сам очень нестабилен, но крен в порядке. Я очень часто опрашиваю wiimote, поэтому я усредняю ​​последние 20 значений как для тангажа, так и для крена, и я могу заставить курсор двигаться туда, куда я хочу. Единственная проблема в том, что по-прежнему много неконтролируемой тряски. Любые идеи о том, как я могу уменьшить его? (Или даже получить более точное положение без ИК-датчика?)

Спасибо!

Дэйв


person David Menard    schedule 16.02.2011    source источник
comment
Понятия не имею, поможет ли это, но смотрели ли вы надстройку Wii Motion Plus (на самом деле теперь вы можете пользоваться Wiimotes со встроенной функцией)   -  person Tony Park    schedule 16.02.2011


Ответы (2)


Это распространенная проблема с тангажем и креном. Вы можете уменьшить этот раздражающий эффект, но вы не можете избавиться от него, пока используете тангаж и крен (углы Эйлера). Посмотрите на 38:25

http://www.youtube.com/watch?v=C7JQ7Rpwn2k

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

Матрица направленного косинуса IMU: теория

Кватернионы также очень популярны и считаются наиболее стабильными.

person Ali    schedule 16.02.2011
comment
Спасибо, я посмотрю на них и вернусь с результатами! - person David Menard; 16.02.2011
comment
В итоге я использовал матрицы вращения, как вы предложили. Плюс компенсирую акселерометр, да и трекинг на самом деле не так уж и плох! Кроме того, я как можно быстрее опрашиваю wiimote в отдельном потоке и усредняю ​​100 последних значений. Спасибо! - person David Menard; 16.02.2011
comment
Да, матрицы вращения легко понять и с ними легко работать. Удачи! - person Ali; 16.02.2011

Простое (иногда простое — лучшее) решение будет усреднять ваши показания.

Буферизируйте последние, скажем, пять показаний, а затем возьмите их среднее значение в качестве значения. У них будет небольшая задержка между плоскостью и быстрым вращением, но для курсора это приведет к небольшому, почти трению, он будет как бы сопротивляться внезапным изменениям.

person thecoshman    schedule 16.02.2011
comment
Если вы читаете вопрос, я упоминаю, что усредняю ​​последние 20 значений. - person David Menard; 16.02.2011
comment
о да. не знаю, как я это пропустил, извините - person thecoshman; 16.02.2011