Utilizando acelerómetro, giroscopio y brújula para calcular el movimiento del dispositivo en el mundo 3D

Estoy trabajando en una aplicación de Android que puede calcular el movimiento del dispositivo en la dirección 6. Creo que puedo usar la aceleración como;

" X = at ^ 2 " pero a no es una constante. Y este es el problema. ¿Cómo puedo calcular el movimiento total?

El acelerómetro le da tres direcciones (x, y, z). Son medidas de aceleración que es más difícil saber cuál es la posición del dispositivo. Pero, recuerde que la aceleración está relacionada con la posición a través de la integración:

 a(t) = a[x] v(t) = a[x]t + c x(t) = a[x]t ^ 2 + ct + d 

El problema es que no se puede saber c o d porque al tomar la derivada las constantes abandonan. Así que hay una cantidad que no se puede conseguir con c y d faltantes. Puede intentar compensar recordando los valores que utilizó por última vez. Tan después de agarrar 3 muestras usted puede comenzar a calcular la posición de eso.

Hay una cantidad significativa de información sobre cómo interpretar los datos de los sensores. Como averiguar dónde está la gravedad para la orientación, y restando la gravedad para obtener aceleración lineal.

http://developer.android.com/reference/android/hardware/SensorEvent.html

Aquí está una manera de llegar a la posición usando un acelerómetro junto con un algoritmo para encontrar la posición en detalle:

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

Es cierto, se obtiene la posición mediante la integración de la aceleración lineal dos veces. Pero el error es horrible. Es inútil en la práctica.

Aquí está una explicación de por qué (Google Tech Talk) a las 23:20. Recomiendo este video.

No es el ruido del acelerómetro el que causa el problema, sino el ruido blanco del girocompás , véase la subsección 6.2.3 Propagación de Errores. (Por cierto, necesitará los giroscopios también.)

Una pregunta similar es Distancia movida por el Acelerómetro .

  • cortar el video en el androide por la posición inicial a la posición final
  • Android Marshmallow 6.0.1 rompió mi reconocimiento de voz continua
  • ¿Hay un HttpClient que maneja las solicitudes de almacenamiento en caché por sí solo?
  • No hay error aún Android Studio dice que "no se encontraron pruebas"
  • Acceso concurrente a archivos en Android
  • Android - Cómo cambiar fragmentos en el cajón de navegación
  • ¿Asignación de objetos durante el dibujo / diseño?
  • ¿Cómo obtener la respuesta de cadena de Retrofit2?
  • Efecto de desvanecimiento entre los diseños
  • Android - ¿Cómo es posible que un servicio siga funcionando después de que la Actividad haya sido cerrada?
  • Acceso root con java.io.file en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.