2015-01-25 7 views
5

Pracuję nad aplikacją na Androida, która rejestruje dane inercyjne na smartfonie, aby następnie przetworzyć je. Różne urządzenia z Androidem mają różne zachowania w zależności od oprogramowania wbudowanego w czujniki bezwładności do Androida i to jest krystalicznie czyste. Jedną rzeczą, na którą nie jestem w stanie odpowiedzieć, jest to, jak to się stało, że tylko moto g 2nd gen wykazał, że kiedy aplikacja nagrywa, mam znacząco różną liczbę próbek czujników?Nierówna liczba próbek między akcelerometrem, żyroskopem i magnetometrem na Androidzie

Na przykład, kilka sekund nagrania i widzę:

  • ~ 6000 próbek do żyroskopu

  • ~ 5200 próbek na acc

  • ~ 2000 próbek do magnetometru

Przyjmij także, że aktywność, którą wykonuję nagrywanie wpływa na wszystkie czujniki w każdym czasie, a więc oczekuję, że funkcja onSensorChange będzie wywoływana równomiernie. Tak dzieje się w przypadku każdego innego smartfona, którego wypróbowałem (5 lub 6 różnych).

Jakieś sugestie, dlaczego magnesy wydają się nie zmieniać wartości tak często, jak inne czujniki, aby system onSensorChange mógł je nagrać?

Oczywistą odpowiedzią jest oprogramowanie układowe, ale czy masz pojęcie, jak złagodzić efekt, który widzę?

Dzięki ludziom!

Odpowiedz

2

To pytanie jest bardzo stary, ale pomyślałem, że nie odpowiedzieć dla dobra społeczności:

pracuję jako programista aplikacji na starcie, która specjalizuje się w przetwarzaniu czujnika na smartfonach. Mamy kilka Moto G drugiej generacji i odkryliśmy, że robią naprawdę kiepską robotę dając jednolite częstotliwości próbkowania zarówno dla jednego czujnika, jak i dla czujników.

Aby złagodzić problemy, piszemy cały szereg próbek jednocześnie z najnowszymi danymi, za każdym razem, gdy otrzymamy próbkę z akcelerometru. Jeśli nowa próbka nie pojawiła się na żadnym innym czujniku od ostatniej próbki akcelerometru, te same wartości zostaną wydrukowane dwukrotnie.

tj.)

Accel (3-axis) | Gyro (3-axis) 
0,0,0|0,0,0 
<new accelerometer sample> 
1,1,1|0,0,0 
<5 gyro samples and 1 accelerometer> 
2,2,2|5,5,5 
... 

W każdym razie, mam nadzieję, że ktoś pomaga!

TLDR; 2. Gen Moto G ma niespójne częstotliwości próbkowania zarówno dla jednego czujnika, jak i dla wielu czujników.

Powiązane problemy