¿Cómo funciona la orientación del sensor del teléfono inteligente?

Depende de lo que quieras decir con “orientación”. La inclinación, el balanceo y el guiñada son información rotacional (relativa a un vector, generalmente gravedad), que son solo una parte de la orientación (relativa a un plano, generalmente el suelo). Explicaré ambos.

Los sensores

De hecho, el iPhone tiene muchos sensores, incluidos 3 acelerómetros (uno para cada eje, x, y y z), un giroscopio y un magnetómetro.

  • El giroscopio se usa para detectar el vector de gravedad.
  • El magnetómetro se usa para definir la rotación en el campo magnético. (Si está mirando hacia el sur o el norte, etc.) Básicamente, una brújula
  • Los acelerómetros se utilizan para detectar la aceleración a lo largo de los ejes definidos anteriormente. Estos ejes se definen en relación con el iPhone, no con el suelo. (x, y y z, que son respectivamente izquierda-derecha, arriba-abajo y arriba-abajo)

Los tres ejes del acelerómetro.

Sin embargo, estos 3 tipos de sensores tienen muchas incertidumbres por sí mismos, por eso aplican un principio llamado “Sensor Fusion”, en el que combinan datos de diferentes sensores para lograr un resultado mucho más seguro.

Aceleración

Los acelerómetros detectan la aceleración, pero la gravedad en sí misma también es una fuerza de aceleración, por lo que los acelerómetros también registrarán la gravedad. En la imagen de arriba, por ejemplo, si mantuviera su teléfono quieto así, registraría una aceleración de -9.81m / s² en el eje y.

Esto puede parecer útil, ya que podría calcular el vector de gravedad y, por lo tanto, el balanceo y la inclinación del teléfono en función de estos datos. Pero eso es solo si no está moviendo su teléfono. Tan pronto como comienzas a moverte, es imposible distinguir la diferencia entre la aceleración real y la aceleración de la gravedad, lo que hace que los datos pierdan sentido.

Por lo tanto, el giroscopio se usa para definir el vector de gravedad, este vector se resta del vector de datos del acelerador y te deja con un vector de aceleración puro libre, libre de las influencias de la gravedad.

Gravedad (rotación)

A primera vista, el giroscopio en sí mismo parece ser el sensor perfecto para calcular el cabeceo, balanceo y guiñada en función del vector de gravedad. Tendrías razón si el teléfono no se moviera. Pero tan pronto como comience a moverse, la aceleración afectará al vector de gravedad de manera similar a como el vector de gravedad afectó al vector de aceleración del acelerómetro. (Como cuando caes hacia atrás cuando un autobús comienza a moverse). La aceleración sesgará el vector de gravedad. Por lo tanto, el vector de aceleración se utiliza para corregir el vector de gravedad restándolo de los datos del giroscopio.

Estos 2 tipos juntos pueden definir la rotación y la aceleración del teléfono, su posición en relación con la gravedad. (Puede compararlo como saber que su avión está volando nivelado y acelerando, pero no sabe en qué dirección).

Dirección (orientación)

Para definir la orientación (en qué dirección se está moviendo en relación con el suelo) necesitará el magnetómetro. El magnetómetro detecta en qué dirección está el Norte magnético (necesita la información rotacional para poder calcular eso, ya que la rotación del teléfono también afecta la detección de la magentosfera) y al combinar esto con los vectores de gravitación y aceleración obtendrá la orientación completa. información.

Conclusión

Estos 3 sistemas se corrigen constantemente entre sí y solo pueden proporcionar datos sensibles juntos. Cada sensor tiene sus propias ventajas y desventajas.

Por ejemplo, el magnetómetro prácticamente no acumula errores con el tiempo, pero es muy lento para detectar movimientos. Por otro lado, un giroscopio detecta inmediatamente el movimiento, pero se volverá menos preciso muy rápido cuando se active la inercia (comenzará a derivar).

Esta combinación permite la detección rápida de la orientación con pocos errores a lo largo del tiempo y se denomina “Unidad de medición inercial” o IMU.