telefono sirve sensores que proximidad para moviles mas magnetico gravedad corporales con celulares celular activar android android-sensors android-orientation

sirve - ¿Cuál es la diferencia conceptual entre el sensor de vector de rotación y el sensor de orientación en Android?



sensores de mi telefono (4)

Android proporciona tanto el sensor de vector de rotación como el sensor de orientación. Sé que devuelven datos diferentes, porque para el sensor vectorial tenemos pecado de ángulos, en el sensor de orientación tenemos ángulos. Pero ¿cuál es la diferencia conceptual? No puedo entender de los documentos. ¿Cuál proporciona la orientación del dispositivo en el espacio tridimensional? ¡Estoy confundido!


El sensor ROTATION_VECTOR se introdujo en API 9 y representa un sensor ''virtual'' que combina datos de diferentes sensores (generalmente ACCELEROMETER, GEOMAGNETIC_FIELD y GYROSCOPE) y realiza algunos cálculos inteligentes para proporcionar datos más precisos en lugar de usar datos en bruto de los sensores ACCEL y GEOMAGNETIC_FIELD. Esto se llama ''fusión de sensores''. Más información se puede encontrar here

El sensor de ORIENTACIÓN está en desuso ya que no proporciona datos muy precisos. La documentación sugiere utilizar datos en bruto de los sensores ACCELEROMETER y GEOMAGNETIC_FIELD en su lugar.

Desafortunadamente, no puedo proporcionar ningún ejemplo de cómo usar los datos del sensor ROTATION_VECTOR ya que estoy en proceso de investigación ahora mismo :)

En caso de que necesite algunos ejemplos sobre cómo usar datos sin procesar, no dude en preguntarme, publicaré algunos ejemplos, pero el simple hecho de buscar en Google puede ayudarlo mejor;)


En los teléfonos Android baratos (a diferencia de los iPhones de gama alta), la brújula funcionará solo cuando la orientación del teléfono sea cercana a la horizontal (es decir, paralela a la superficie del suelo).

Técnicamente, una buena brújula (es decir, una esfera magnética flotante) debería funcionar en cualquier orientación, pero las baratas no. Por lo tanto, para usar una brújula, asegúrese de que su teléfono esté en posición horizontal mirando el ACELERÓMETRO antes de usar MAGNETÓMETRO. ¡Ojalá que Google use mejores magnetómetros en el futuro!


Los sensores de ORIENTACIÓN más antiguos informan la orientación utilizando tres ángulos. El problema con este sistema de coordenadas es que sufre de "bloqueo de cardán": cuando el vector de orientación real está cerca de la vertical, una de las coordenadas va a 90 o -90 grados, y las dos coordenadas restantes se vuelven no interpretables o peligrosamente desnormalizadas.

Los nuevos sensores de ROTACIÓN informan la orientación utilizando coordenadas de quarternion, que son más complicadas de manejar, pero no sufren el problema del bloqueo de Gimbal. Cuando la orientación se informa utilizando coordenadas de cuaternión, puede determinar la orientación precisa del dispositivo sin importar cuál sea la orientación.

Los cuaterniones son también más eficientes computacionalmente. No es necesario llamar funciones trigonométricas caras para aplicar una rotación de cuaternión a un vector. Si no se proporciona la coordenada w, aún puede calcular w con una llamada de un solo sqrt, en comparación con tres llamadas de función sin y tres cos para las coordenadas de orientación en la forma de Euler de tres ángulos.

Historia corta: los sensores de estilo de ORIENTACIÓN se hicieron mal. Se arreglaron en API 9, reemplazándolos con sensores de ROTACIÓN.


Son conceptualmente iguales, solo representativamente diferentes.

Echa un vistazo al código de sensor de orientación here . El parámetro de la función para el sensor de orientación es la matriz de rotación, cuya entrada se calcula a partir del vector de rotación (la representación de quats)