Número irregular de muestras entre el acelerómetro, el giroscopio y el magnetómetro en Android

Estoy desarrollando una aplicación para Android que registra los datos inerciales en un teléfono inteligente para luego procesarlos. Diferentes dispositivos Android tienen comportamientos diferentes dependiendo del firmware que conecta los sensores inerciales a Android y eso es muy claro. Una cosa que no puedo contestar a mí mismo es, ¿cómo es que sólo la moto g 2 ª gen todavía mostró que cuando la aplicación está grabando tengo significativamente diferentes números de muestras de sensores?

Por ejemplo, pocos segundos de grabación y veo:

  • ~ 6000 muestras para el girocompás

  • ~ 5200 muestras para el acc

  • ~ 2000 muestras para el magnetómetro

Suponga también que la actividad que estoy grabando afecta a todos los sensores en todo momento y por lo tanto esperaría que la función onSensorChange se llame uniformemente. Eso sucede para todos los otros teléfonos inteligentes que he probado (5 o 6 diferentes).

¿Alguna sugerencia de cómo los magnetos parecen no cambiar valores tan a menudo como los otros sensores para que el onSensorChange lo grabe?

La respuesta obvia es debido al firmware, pero ¿tienes alguna idea de cómo mitigar el efecto que estoy viendo?

Gracias gente!

One Solution collect form web for “Número irregular de muestras entre el acelerómetro, el giroscopio y el magnetómetro en Android”

Esta pregunta es muy antigua, pero pensé que respondería por el bien de la comunidad:

Trabajo como desarrollador de aplicaciones en un inicio que se especializa en procesamiento de sensores en teléfonos inteligentes. Tenemos un par de segundos Gen Moto G's y hemos encontrado que hacen un trabajo realmente malo de dar frecuencias de muestreo uniformes, tanto para un sensor, así como a través de los sensores.

Para mitigar los problemas, escribimos una fila entera de muestras a la vez con los datos más recientes, cada vez que obtenemos una muestra del acelerómetro. Si una nueva muestra no ha entrado en otros sensores desde la última muestra del acelerómetro, los mismos valores se imprimen dos veces.

es decir.)

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 ... 

De todos modos, espero que esto ayude a alguien!

TLDR; La segunda generación Moto G tiene frecuencias de muestreo inconsistentes tanto para un sensor como para varios sensores.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.