¿Cuál da un mejor resultado para encontrar la posición angular del dispositivo usando un sensor IMU de 9 ejes?

Estoy usando el sensor LSM9DSO de 9 ejes que proporciona datos de salida del acelerómetro, giroscopio, magnetómetro. Quiero encontrar la posición angular del dispositivo usando este sensor.

actualmente estoy tratando de encontrar un ángulo del dispositivo del eje x, pero los datos fluctúan, así que he remitido algunos sitios web y documentos que muestran que también se encuentra usando datos del acelerómetro, pero no tengo mucha confusión sobre cuál es la mejor solución para encontrar la posición angular del dispositivo.

Esto es bastante complicado. Necesita decirnos mucho más sobre lo que está tratando de hacer.
Hola, he implementado para encontrar el cabeceo y el balanceo utilizando tanto el acelerómetro como el giroscopio cuando estoy girando el dispositivo de 0 a 90 grados, pero solo se muestra de 0 a 82 grados tanto en cabeceo como en balanceo.

Respuestas (4)

Generalmente, usted determina el ángulo usando las lecturas del acelerómetro. Esto solo funciona si la unidad no está acelerando en ese momento, pero puede hacer una verificación rápida de cordura que sqrt (x*x + y *y + z *z) = 1g +/- algún margen de error. Si eso es cierto, probablemente no esté acelerando.

Para cualquier eje dado, la cantidad que está lejos de apuntar directamente hacia arriba estará dada por ángulo = cos -1 (leído en g).

Si sabe qué tan lejos está cada eje de la vertical, entonces puede calcular su orientación en relación con el suelo.

Si está acelerando, suponiendo que conocía su orientación de antemano, puede calcular su orientación actual utilizando las lecturas del giroscopio para medir el cambio de orientación. Sin embargo, cualquier cosa calculada de esta manera se desviará de la respuesta correcta, por lo que deberá corregirla una vez que deje de acelerar.

Puede usar el magnetómetro como una verificación de cordura y un método para rastrear la rotación, pero no es muy confiable para calcular el rumbo absoluto sin calibrarlo primero para su entorno actual.

Todas las lecturas de una IMU serán muy ruidosas a menos que esté usando una muy costosa, espere tener que promediar y filtrar mucho para obtener resultados uniformes. En esta situación caro significa que el precio tiene al menos 4 dígitos antes del punto decimal.

Necesita algún tipo de algoritmo para fusionar las lecturas de aceleración, velocidad de rotación y campo magnético. Hay varias formas diferentes de hacer esto, desde simples filtros HP/LP complementarios hasta filtros Kalman no lineales basados ​​en cuaterniones más avanzados.

He utilizado, con gran éxito, el algoritmo AHRS de código abierto de Sebastian Madgwicks con un procesador LSM9DS1 y STM32F405. Puede descargar un documento que lo describe y un código fuente desde aquí:

http://x-io.co.uk/open-source-imu-and-ahrs-algorithms/

Muchas gracias a todos por su mayor apoyo. He encontrado un sitio web de referencia interesante. que brindan el mejor método para implementar ambos para encontrar datos significativos como cabeceo y balanceo.

Guía para usar el acelerómetro

Guía para usar giroscopio

Espero que sea útil para otros.

Considere un conjunto de bobinas de detección magnética I + Q. Digitalice la salida de cada bobina; conocer la amplitud y la fase, frente a una fase de referencia, es un sensor alternativo. Use un solo cable en la pared para proporcionar una fuente puntual de Hfield.