simple IMU - magnetómetro de inclinación

3

Estoy en el proceso de construir una IMU simple para un piloto automático. Estoy usando Sparkfun, 9 Degrees of Freedom - Razor IMU. Es sorprendentemente fácil de usar.

Pude obtener los datos del acelerómetro, el girocompás y el magnetómetro de manera inmediata. Después de la calibración de los sensores y un filtro complementario simple, tengo valores confiables de balanceo y inclinación.

Ahora tengo un problema con la guiñada ...

Encontré aquí enlace la ecuación para evitar el desvío del valor del magnetómetro :

$$ X_h = X_m \ cdot cos (Pitch) + Z_m \ cdot sin (Pitch) $$ $$ Y_h = X_m \ cdot sin (Roll) \ cdot sin (Pitch) + Y_m \ cdot cos (Roll) - Z_m \ cdot sin (Roll) \ cdot cos (Pitch) $$ con Xm, Ym y Zm son mediciones de sensores magnéticos

$$ Yaw = Título = arctan (\ frac {Y_h} {X_h}) $$

Suena simple, pero no puedo hacerlo. Espero que alguien que ya haya trabajado en IMU pueda ayudarme a resolver este problema.

Aquí ( enlace ) es un archivo excel con datos y ecuaciones de IMU.

El gráfico (en el archivo de Excel) muestra resultados (primero rodé 90 grados, luego giré 90 grados y luego desvié 90 grados).

El balanceo y el tono se calculan mediante la IMU (programada con Arduino IDE), son buenas.

La guiñada se calcula en Excel usando un giro (bueno pero a la deriva con el tiempo) y también calculé la guiñada usando la ecuación de arriba (línea verde) y es totalmente errónea (debería seguir la línea / púrpura del giroscopio).

Cualquier ayuda será apreciada.

    
pregunta Francois

1 respuesta

0

Parece que el girocompás y el magnetómetro están ligeramente mal calibrados. En Excel, parece que están separados por unos 135 grados. Intenta cambiar tu fórmula para que sea esto en su lugar:

=DEGREES(ATAN2(U3,T3))+Dcal

Donde Dcal es algún valor de calibración. Parece que los datos coinciden bastante bien cuando la Dcal está a unos 135 grados.

    
respondido por el Takide

Lea otras preguntas en las etiquetas