Czujnik ruchu pionowego

Pracuję nad aplikacją Android, która wymaga wykrycia ruchu pionowego. Podczas przesuwania tabletu w górę czujniki żyroskopu, przyspieszeniomierza i przyspieszenia liniowego dają odpowiednią wartość wskazującą ruch w górę lub w dół.

Mam problem z tym, że te czujniki odczytują również ruch w górę / w dół, gdy przechylisz tablet w kierunku użytkownika lub z dala od użytkownika. Na przykład wartość x w żyroskopie reprezentuje płaszczyznę pionową. Ale kiedy przechylisz urządzenie do przodu, wartość x zmieni się. Kiedy wykonuję ten ruch, ten sam czujnik, który odczytuje ruch pionowy, odczytuje wartość tego.

To samo dotyczy pozostałych czujników. Próbowałem użyć orientacji sprzężonej z żyroskopem, aby utworzyć instrukcję warunkową, jeśli wysokość nie zmienia się, ale zmienna x idzie w górę / w dół, wtedy mamy ruch pionowy. Problem polega na tym, że jeśli użytkownik przesunie go w górę, ale nieznacznie przechyli, nie będzie już działać. Próbowałem też to zrobić, aby w przypadku zmiany nachylenia nie było ruchu pionowego. Ale iteruje tak szybko, że może nastąpić zmiana nachylenia o 1/100 sekundy, ale dla następnej nie ma.

Czy w jakiś sposób mogę odczytać tylko zmiany pionowe, a nie zmiany wysokości urządzeń?

Oto, co chcę wykryć:

edytować:

„Proszę wymyślić matematycznie poprawną definicję tego, co uważa się za„ poruszanie się w górę ”.„ To było moje pierwsze pytanie, jak mogę napisać funkcję określającą, kiedy tablet porusza się w górę lub w dół? Uważam, że pionowe tłumaczenie przesuwa się w górę. Jak to wykryć? Po prostu nie wiem od czego zacząć, dziękuję.

questionAnswers(2)

yourAnswerToTheQuestion