Qué sensores se utilizan para Sensor.TYPE_ROTATION_VECTOR

Estoy desarrollando para Honeycomb Gingerbread y me preguntaba, ¿qué sensores físicos se utilizan cuando utilizo el Sensor.TYPE_ROTATION_VECTOR?

¿Utiliza una combinación de brújula y acelerómetros? ¿O Gyro + accel? ¿O los tres? ¿O algo mas? La razón por la que estoy preguntando es que mi aplicación se comporta de manera diferente en dos partes diferentes de hardware, y que en realidad debe tener el mismo tipo de sensores.

Gracias Mark

Me doy cuenta de que ha pasado un tiempo desde que se hizo la pregunta, pero no veo una respuesta clara, así que …

Utiliza los tres sensores si están disponibles. El uso del sensor de campo magnético es crucial para tener algún punto absoluto de referencia. El "sensor de rotación" necesita inicialmente orientarse y luego eliminar la deriva que el girocompás introduce con el tiempo. Girocompás sigue siendo utilizado debido a su precisión y buen tiempo de respuesta. El acelerómetro ayuda a determinar el vector de gravedad.

La teoría:

Para que el teléfono para saber la orientación, incluido el acimut, es necesario hacer referencia a un avión en el mundo real. Ese plano se calcula a partir de dos vectores no co-lineales: Gravedad (Acelerómetro) y Fuerzas de los campos magnéticos. Estos vectores DO GET son co-lineales en dos "lugares" en la tierra, pero afortunadamente eso está cerca de los polos de tierra.

La práctica:

Con el magnético y el acelerómetro usted puede conseguir la orientación. Desafortunadamente si usted somete su teléfono a cualquier aceleración lineal, o si hay disturbios magnéticos las medidas consiguen ruidosas. El uso de un giroscopio mejora drásticamente el tiempo de respuesta / precisión (ya que es un compromiso), pero no es esencial para todas las aplicaciones.

Parece que utiliza cualquier sensor que defina para ser usado con su SensorManager. A su vez, el administrador de sensores transmitirá el evento de sensor que su código estará escuchando.

Mira el código de demostración a continuación para ver un ejemplo.

Fuentes:

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

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/os/RotationVectorDemo.html

Desde https://source.android.com/devices/sensors/sensor-types.html , que son las especificaciones que los OEMs utilizan para implementar los distintos tipos de sensores de Android:

Vectores de rotación (SENSOR_TYPE_ROTATION_VECTOR) – Sensores físicos subyacentes: Acelerómetro, Magnetómetro y Giroscopio … Usualmente se obtiene mediante la integración de lecturas de acelerómetro, giroscopio y magnetómetro … Sensores físicos subyacentes –
Acelerómetro, magnetómetro, y (si está presente) giroscopio.

Vector de rotación del juego (SENSOR_TYPE_GAME_ROTATION_VECTOR) – Sensores físicos subyacentes: Acelerómetro y giroscopio (sin magnetómetro). Un sensor de vector de rotación de juego es similar a un sensor de vector de rotación pero no utiliza el campo geomagnético. Por lo tanto, el eje Y no apunta al norte sino a alguna otra referencia. Esta referencia se permite a la deriva en el mismo orden de magnitud que el giroscopio deriva alrededor del eje Z … Subyacentes sensores físicos –
Acelerómetro, Giroscopio NO DEBE UTILIZAR Magnetómetro.

Vectores de rotación geomagnética (SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR) – Sensores físicos subyacentes: Acelerómetro y Magnetómetro (sin giroscopio). Un vector de rotación geomagnética es similar a un sensor vectorial de rotación, pero utilizando un magnetómetro y ningún giroscopio. Este sensor debe basarse en un magnetómetro. No se puede implementar con un giroscopio, y la entrada de giroscopio no puede ser utilizada por este sensor … Sensores físicos subyacentes – Acelerómetro, Magnetómetro, NO DEBE UTILIZAR Giroscopio.

Cuando no hay giroscopio en el dispositivo, y sólo cuando no hay giroscopio, puede implementar el vector de rotación, aceleración lineal y sensores de gravedad sin utilizar el giroscopio.

Así que la implementación exacta puede variar según el dispositivo – algunos dispositivos pueden no tener giroscopios.

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