Датчик вертикального движения

Я работаю над приложением для Android, которое требует обнаружения вертикального движения. При перемещении планшета вверх датчики гироскопа, акселерометра и линейного ускорения дают соответствующее значение, указывающее движение вверх или вниз.

У меня проблема в том, что эти датчики также будут показывать движение вверх / вниз, когда вы наклоняете планшет к пользователю или от пользователя. Например, значение х в гироскопе представляет вертикальную плоскость. Но когда вы наклоните устройство вперед, значение x изменится. Когда я делаю это движение, тот же датчик, который читает вертикальное движение, считывает значение для этого.

То же самое касается остальных датчиков. Я попытался использовать ориентацию в сочетании с гироскопом, чтобы сделать условное выражение, если высота тона не меняется, а переменная x движется вверх / вниз, то мы имеем вертикальное движение. Проблема заключается в том, что если пользователь переместит его вверх, но слегка наклонит, он больше не будет работать. Я также попытался сделать так, чтобы в случае изменения наклона вертикальное движение отсутствовало. Но он повторяется так быстро, что может быть изменение наклона в течение 1/100 секунды, но для следующего нетт.

Есть ли способ, которым я могу читать только вертикальные изменения, а не изменения в высоте устройства?

Вот что я хочу обнаружить:

редактировать:"

Пожалуйста, придумайте математически обоснованное определение того, что вы считаете «двигаясь вверх. Это был мой начальный вопрос, как я могу написать функцию, чтобы определить, когда планшет движется вверх или вниз? Я считаю вертикальный перевод, движущийся вверх. Теперь, как я могу это обнаружить? Я просто не знаю с чего начать, спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос