2015-04-18 2 views
6

Акселерометр имеет три значения: x, y, z.Как идентифицировать удар с руки и вперед, используя акселерометр?

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

Другим словом, если я ударил мяч в направлении x с помощью моего удара, я могу получить положительное или отрицательное значение x. (Это зависит от того, перебрасываю ли я ракетку или нет. [Ракетка имеет две грани]).

Мой вопрос: Как датчик может сказать мне, что я ударяю мяч, используя заднюю руку, но не переднюю, так как я могу получить такие же значения акселерометра как для переднего, так и для заднего.

Спасибо, Джимми

ответ

1

Есть две системы координат в игре здесь: акселерометра и в мире. Акселерометр будет иметь фиксированные направления x/y/z в своем мировоззрении, но они меняются относительно мировых координат, основанных на ориентации.

Если вы используете значения акселерометра как есть, тогда вы можете получить положительные или отрицательные импульсы при попадании. Но когда вы конвертируете их в мировую систему координат, то есть вниз всегда к центру Земли, вы всегда будете получать одинаковые значения для заднего и противоположного для forehand.

Предположим, что направление акселерометра x соответствует нормали сети, z параллельно ручке, а y «вверх», когда ракетка является ее нормальным боковым положением.

Поскольку в теннис ракетка в основном находится на одной плоскости (например, вы не попадаете в сеть вниз, например,), и если вы не делаете накладные расходы (в этом случае я думаю, что нападающий не может быть и речи), вы всегда будете указывать 1 или -1, когда ракетка находится в состоянии покоя. Простейший (но не самый точный!) Способ - проверить, какой знак y имеет и соответственно изменить x. Таким образом, вы не получите точных векторов, но вы получите информацию о том, был ли он ударным или передним.

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

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

+0

у вас всегда будет y, указывающий на 1 или -1. Простейший (но не самый точный!) Способ - проверить, какой знак y имеет и соответственно изменить x. Таким образом, вы не получите точных векторов, но вы получите информацию о том, был ли он ударным или передним. -----> Для меня это неверно, потому что теннисист способен срезать или вращать мяч. См. Youtube.com/watch?v=JwMNv9JjA3Y и https://www.youtube.com/watch?v=wa-3GStYh_I –

+0

@JimmyLee Вот почему добавлен комментарий о отслеживании ракетки все время, так как во время хита он будет не так просто. Я отредактирую его немного яснее –

2

EDIT: изменил свое мнение об этом, следуя @ комментарии Сами :)

Imagine осей X и Y находятся в плоскости струн ракеток (скажем, Х вдоль линии рукоятки, Y вверх/вниз), а Z находится в направлении удара мяча. Тогда большая часть ускорения, когда вы качаете &, попадет в ось Z (+ или - в зависимости от того, какая грань ракетки попадает в мяч); есть немного ускорения по оси X, если вы качаетесь дугой, но всегда в том же направлении, какое бы лицо ни попадало. Существует постоянное ускорение оси Y вверх.

enter image description here

Таким образом, вы можете посмотреть на Z-значение акселерометра, чтобы определить, какие лица хит, и вы можете смотреть на Y-значение, чтобы сказать, какой путь ракетку проводится.Из этого вы можете сказать, поражается ли «фронт» или «спина» (относительно того, к какой ориентации ориентирована ракетка), и, следовательно, указывать, будет ли воспроизводиться удар вперед или на заднем плане.

Конечно, вы бы также знать, был ли игрок правой или левой рукой :)

Для данной хиральности, можно вычислить тип свинга следующим образом:

enter image description here

Для другой ручности результаты будут отменены. Значения «+» и «-» относятся к тому, как устанавливается ваш акселерометр, поэтому вам нужно откалибровать.

+0

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

+0

Ускорение - это изменение скорости: т. Е. Не имеет никакого отношения к гравитации (если вы не сбросите ракетку!). Однако гравитация будет определяться инклинометром. –

+0

У меня здесь есть несколько акселерометров MEMS, и каждый из них показывает ускорение в направлении силы тяжести, так как так они сделаны. У старых телефонов был только акселерометр, и он вполне мог сказать, в каком направлении они держались (просто не вращаясь вокруг оси тяжести). Поэтому, хотя ускорение - это изменение скорости, акселерометр работает по-разному. –

0

Для Форхенда выстрела, - У имеет минус значение ускорения силы тяжести и г имеют любое значение (независимо от положительного или отрицательного)

Для наотмашь выстрела, - Если у имеет значение ускорения положительной тяжести и г имеет любое значение (независимо от положительного или отрицательного)

 Смежные вопросы

  • Нет связанных вопросов^_^