2009-07-26 32 views
16

Tengo un acelerómetro y un magnetómetro xyz. Ahora quiero determinar la orientación del dispositivo usando ambos. El problema que veo es que, dependiendo de la orientación del dispositivo, necesitaría usar los sensores en diferente orden.Cómo determinar la orientación absoluta

Déjeme dar un ejemplo. Si tengo el dispositivo frente a mí, entonces los cambios tanto en el balanceo como en el tono se pueden determinar con el acelerómetro. Para la orientación, uso el magnetómetro.

Pero si pongo el dispositivo horizontalmente (es decir, gírelo 90º, mirando hacia el techo), no se notará ningún cambio en el vector ascendente (ahora horizontal), ya que el acelerómetro no detecta ningún cambio. Esto ahora se puede detectar con el magnetómetro.

Entonces, la pregunta es cómo determinar cuándo usar una u otra. ¿Esto es suficiente con ambos sensores o necesito algo más?

Gracias

Respuesta

1

creo que la pregunta "¿cómo determinar cuándo utilizar uno o el otro" es un error. Debe usar para usar siempre ambos sensores para orientación. Hay casos en que uno de ellos es inútil. Sin embargo, estos son casos extremos.

+0

Gracias. Parece que no estaba muy claro con la pregunta. Soy consciente de que necesito usar tanto el acelerador como el magnetómetro en todos los casos, el problema es que en algunos casos esto no parece ser suficiente. –

+0

Permítanme usar nuevamente un ejemplo similar: supongamos que tengo un teléfono celular verticalmente, con la pantalla hacia mí, el vector "hacia arriba" apuntando hacia el techo.Cada vez que me inclino, el acelerómetro me permite obtener la información vectorial "arriba". El problema es que si inclino el dispositivo y lo coloco horizontalmente (la pantalla ahora mirando al cielo raso y el vector "arriba" apuntando al lado opuesto de donde estoy), entonces el vector ascendente ya no se actualiza si giro el teléfono horizontalmente sobre la mesa. Esto es algo que claramente es detectado por el magnetómetro ahora. Entonces, la pregunta es, ¿cuándo saber dónde usar acc o mag para cada caso? –

1

Si te entiendo correctamente, necesitarás algo para detectar el tono (inclinación) y la orientación según los puntos cardinales (Norte, Este, Sur y Oeste).

El tono se puede leer desde el acelerómetro.

La orientación según los puntos cardinales se puede leer desde una brújula.

La combinación de la salida de estos dos sensores correctamente con la matemática correcta en su software probablemente le dará la orientación absoluta.

Creo que es factible de esa manera.

Buena suerte.

17

La clave es usar el producto cruzado de los dos vectores, la gravedad y el magnetómetro. El producto cruzado le da un nuevo vector perpendicular a ambos. Eso significa que es horizontal (perpendicular a abajo) y 90 grados de distancia desde el norte. Ahora tiene tres vectores ortogonales que definen la orientación. Es un poco feo porque no son todos perpendiculares, pero es fácil de arreglar. Si luego cruzas este nuevo vector con el vector de gravedad que da un tercer vector perpendicular al vector de gravedad y al vector plano magnético. Ahora tiene tres vectores perpendiculares que definen su sistema de coordenadas de orientación 3D. El vector acelerómetro original (gravedad) define Z (arriba/abajo) y los dos vectores de productos cruzados definen los componentes este/oeste y norte/sur de la orientación.

+0

Pensé en lo mismo, cruzar el acelerómetro (Z) y el magnetómetro (X magnético) para obtener Y, luego cruzar Z e Y para obtener X local. Me pregunto por qué nadie está haciendo esto; En cambio, todos parecen confiar en la compensación de inclinación en el plano X/Y. – sunside

+1

porque esto es complejo como el infierno y ustedes hablan sobre ello y no nos dicen por qué puede ser una razón. muéstranos el código – SpaceDog

0

En caso de que aún necesite una orientación absoluta, puede verificar esta placa de salida de Adafruit: https://www.adafruit.com/products/2472. Lo bueno de esto es que el tablero tiene un procesador ARM Cortex-M0 para hacer todos los cálculos por usted.

Cuestiones relacionadas