¿Cómo puedo detectar movimientos angulares e ignorar los movimientos laterales?

Estoy trabajando en un proyecto que involucra una plataforma plana que un usuario puede inclinar de lado a lado y hacia adelante y hacia atrás. Me gustaría un sensor que pueda monitorear la diferencia de ángulo entre la posición original de la plataforma y su orientación actual.

¿Quiero un sensor de inclinación, un acelerómetro, un giroscopio o IMU?

Para proporcionar un poco más de información, se supone que este es un juego en el que el usuario jugará sosteniendo el avión con ambas manos e inclinándolo en los dos ejes. No esperaría que se moviera mucho, pero el usuario podría mover la plataforma si comienza a caminar (traducción en lugar de rotación). ¿Puede alguno de los dispositivos anteriores distinguir entre el movimiento lateral y la inclinación? Solo me importa la rotación y me gustaría ignorar cualquier traducción incidental.

Para responder a su pregunta, necesitamos conocer la entidad de las aceleraciones laterales y qué tan precisa debe ser la cosa. Si la aceleración lateral es pequeña en comparación con la aceleración gravitacional, entonces un acelerómetro de 3 ejes es suficiente, mientras que si cree que el usuario podría ser más... fuerte, o si desea actualizar su interfaz algún día, necesitará un acelerómetro de 3 ejes. Giroscopio también.
@Vladimir: ¿podría explicar su razonamiento para rastrear 6 grados de libertad (3 lineales, 3 giratorios) para aislar solo 2 ejes de movimiento? Si todo lo que sucede es "inclinarlo en dos ejes", entonces 4 de los canales de su sensor no contendrán información o información redundante. ¿Qué significa "actualizar su interfaz"? Disculpas por mi malentendido...
el caso es que lo que pasa es mover la cosa en todo el 6dof, lo que quiere saber es otra historia. y rastrear todo podría ayudar a ser más preciso en lo que quiere saber. con la actualización me refiero a que, por ejemplo, un día decide realizar un seguimiento de los movimientos de traducción también.

Respuestas (2)

Puede filtrar paso bajo una señal de acelerómetro. El vector de gravedad está en DC. El uso de un acelerómetro de 2 ejes como el ADXL202 de Analog Devices debería ser suficiente para un avión.

Aquí hay un excelente artículo sobre todas las matemáticas.

¿Qué sucede si el usuario mueve repentinamente la placa hacia adelante?

Estás confundiendo el concepto de traslación (cambio de posición) con actitud (orientación). Si la placa se mueve repentinamente hacia adelante (traducción pura), entonces, idealmente, no desea ver ningún cambio en la salida (la actitud no cambió).

Si el usuario inclina repentinamente la placa hacia adelante, luego de un período de tiempo infinito, el valor de DC también reflejará correcta y exclusivamente este cambio.

Un acelerómetro mide la aceleración. La aceleración es causada por la fuerza. La gravedad es una fuerza. La gravedad se basa en las relaciones de masa, la distancia de separación y el ángulo entre los vectores. Dado que ni la masa de la placa ni la masa de la Tierra están cambiando, la distancia de separación es (a efectos prácticos, invariable), para un ángulo específico (inclinación), la gravedad es una fuerza constante. Las cosas que son constantes tienen frecuencia 0 (por ejemplo, "CC").

Cualquier ángulo de inclinación dado corresponderá a un (y solo uno) vector de fuerza en la placa a lo largo de 180 grados.

ingrese la descripción de la imagen aquí

El problema en un sistema práctico es que no puedes esperar una cantidad infinita de tiempo para notar que la actitud ha cambiado. Entonces, como todo en ingeniería, debe comprometerse entre los requisitos. Es por eso que sugerí el enfoque de un filtro de paso bajo. El lugar donde arrincone el filtro determinará el equilibrio entre selectividad y precisión (a corto plazo).

En los sistemas prácticos, puede arrinconar en algún lugar alrededor de 10 Hz y, por lo general, funciona bien (la mayoría de los teléfonos celulares adoptan este enfoque).

El enlace que proporciona asume un acelerómetro de tres ejes.

El tercer eje solo es absolutamente necesario si necesita detectar la guiñada (a través del giroscopio) o eliminar la ambigüedad de la actitud a través de ambos hemisferios (a través del acelerómetro), que la pregunta original parece descartar explícitamente como movimiento no deseado. Si esa suposición de mi parte es un error, el OP puede usar un acelerómetro de 3 ejes o un giroscopio de 2 ejes + 1 eje según lo desee. Por eso dije "debería ser suficiente".

Yo iría con un giroscopio...

Si está tratando de minimizar el costo/energía, entonces usar un giroscopio por sí solo es una mala elección con respecto al acelerómetro propuesto. En la aplicación de detección de inclinación que describió, el giroscopio desarrolla un error de inclinación que continúa aumentando sin límites , ya que mide solo las aceleraciones de rotación, que debe integrar para encontrar la posición (inclinación).

Cuando incline el giroscopio, verá un cambio en el voltaje de salida, pero volverá rápidamente a su nivel de reposo si se mantiene la nueva actitud (inclinación). Esto conduce a dos problemas indeseables:

  1. Se vuelve extremadamente sensible a los empujones (sacudidas y otras perturbaciones transitorias)
  2. El error se acumula muy rápidamente y, por lo tanto, debe "restablecerse" a algún valor conocido de vez en cuando al correlacionarlo con alguna otra fuente de datos (como el acelerómetro propuesto).

Aquí hay datos de un experimento realizado por David Anderson en su robot autoequilibrado :

ingrese la descripción de la imagen aquí

Observe cómo el error (diferencia entre la línea azul y la línea roja) se aleja rápidamente de la verdad fundamental.

Por el contrario, el acelerómetro mide la inclinación directamente para que no se acumule el error. En el giroscopio, cada estimación de la inclinación es una función de todas las mediciones anteriores (el error se acumula). En el acelerómetro, cada estimación de inclinación se basa únicamente en la lectura actual (hasta el primer orden).

discúlpame, pero lo que dices no está bien. ignorar un componente del vector g como sugiere conducirá a datos completamente poco confiables. pista: ¿qué sucede si el usuario mueve repentinamente la placa hacia adelante? Y el enlace que proporciona asume un acelerómetro de tres ejes.
@Vladimir: eso no es técnicamente correcto. Omitir un eje no omite un componente del vector g. Cada eje del acelerómetro mide cabeceo, balanceo, guiñada** (**no realmente, en realidad proporciona una desambiguación esférica completa), respectivamente. No hay información de actitud única en el tercer eje (a menos que necesite apoyar el giro de la placa), por lo que incluirlo no agrega ninguna información. He ampliado mi respuesta para tratar de explicar. Gracias por los comentarios.
Tienes razón en lo del componente del eje. Digamos que estaba hablando de un sistema de coordenadas sólido con g vector. El punto es que si la mesa se acelera en paralelo a la tierra teniendo en cuenta gz podría ayudar a eliminar eso. ¡Estoy leyendo tu respuesta ahora mismo!
Ok, lo he leído y es muy bueno. Pero el punto es que si acelera la mesa, el vector de aceleración vectorial medido ya no apuntará al suelo. La actitud "verdadera" (o más precisa) se puede lograr con un acelerómetro y un giroscopio, el último se usa solo cuando el primero produce transitorios muy rápidos.
@Vladimir - Gracias. Sí, la fusión de sensores del giroscopio puede mejorar el seguimiento transitorio del acelerómetro. Lo menciono en mi respuesta. Sin embargo, si tuviera que elegir solo un dispositivo (como sugiere la pregunta original), el acelerómetro es el enfoque muy superior.
Te corrijo una vez más: el acelerómetro es el ÚNICO enfoque posible;) Solo pensé que tu respuesta necesitaba ser ampliada, y lo hiciste perfectamente. ¡Gracias!

Herramienta correcta para el trabajo correcto. Si la naturaleza de su bestia en particular es tal que el filtrado de paso bajo haría el trabajo, el acelerómetro podría ser el correcto. Sin embargo, si está tratando de rastrear la dinámica, ese sensor debería estar en el centro de rotación, o tendrá que preocuparse por qué hacer con las aceleraciones centrípetas.

Sin embargo, si necesita velocidad angular y no posición angular, iría con un giroscopio. Si necesita la posición angular, debe preocuparse por cómo manejará los errores de integración acumulados, que (por definición) se sumarán con el tiempo. ¿Quizás usar un acelerómetro filtrado de paso bajo para eliminar los errores acumulados?

Así es como tienden a funcionar los robots de equilibrio como el segway. Ver nBot .
Las personas también tienen un acelerómetro 3d incorporado y un giroscopio 3d, y aún no pueden resolverlo perfectamente. Muchos argumentos sobre cómo no nos caemos todo el tiempo, pero estoy en la escuela de "baja frecuencia->reorientación, alta frecuencia->traducción".