Рисование в воздухе с телефона Android - PullRequest
8 голосов
/ 28 ноября 2011

Я работаю над приложением для рисования в воздухе с помощью телефона Android.

Поскольку мой телефон движется, благодаря акселерометру, я получаю ускорение по каждой оси, ау, я.Что меня интересует, так это: x, y, z.

Из того, что я прочитал на форумах и в некоторых руководствах, двойная интеграция ускорения приводит к огромным ошибкам.

Так что же является лучшим решением?для меня получить информацию о замене телефона?

Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 28 ноября 2011

Не совсем то, что вы ищете:

Сохранение ориентации в массив - и сравнение

Ориентация отслеживания работает хорошо.Возможно, вы можете сделать нечто подобное с данными акселерометра (без какой-либо интеграции).

Как вы упомянули в своем посте, интеграция ускорения дважды не работает.

Обновление:

Если точность вообще не важна, тогда двойной интеграл может работать в течение нескольких секунд, но ожидать очень плохих результатов.

Тем не менее, гироскопическая мышь лучшеВыбор на мой взгляд.Смотрите между 37: 00-38: 25 в

Sensor Fusion на устройствах Android: революция в обработке движения .

0 голосов
/ 28 ноября 2011

Взгляните на:

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

http://www.freescale.com/files/sensors/doc/app_note/AN3397.pdf

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

Но если вы настаиваете на использовании расстояния, с помощью выборки ускорения (a0, a1, ..., an) в короткие промежутки времени (t0, t1, ..., tn) и допустим ваше ускорение в этих интервалахсреднее число границ, вы можете получить что-то подобное;

 Vs=(t1-t0)*(a1+a0)/2 + (t2-t1)*(a2+a1)/2 + ... + (t[n]-t[n-1])(a[n]+a[n-1])/2

 T=t[n]-t[0]

 Xs=Vs*T

Это немного отличается от двойного объединения.Удачи.

...