Contenido principal

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

AHRS

Orientación a partir de lecturas de acelerómetro, giroscopio y magnetómetro

  • AHRS block

Bibliotecas:
Navigation Toolbox / Multisensor Positioning / Navigation Filters
Sensor Fusion and Tracking Toolbox / Multisensor Positioning / Navigation Filters

Descripción

El bloque AHRS Simulink® fusiona datos del sensor acelerómetro, magnetómetro y giroscopio para estimar la orientación del dispositivo.

Ejemplos

Puertos

Entrada

expandir todo

Lecturas del acelerómetro en el sistema de coordenadas del cuerpo del sensor en m/s2, especificadas como una matriz N por 3 de escalares reales. N es el número de muestras y las tres columnas de Accel representan las [x y z] mediciones, respectivamente.

Tipos de datos: single | double

Lecturas del giroscopio en el sistema de coordenadas del cuerpo del sensor en rad/s, especificadas como una matriz N por 3 de escalares reales. N es el número de muestras y las tres columnas de Gyro representan las [x y z] mediciones, respectivamente.

Tipos de datos: single | double

Lecturas del magnetómetro en el sistema de coordenadas del cuerpo del sensor en µT, especificadas como una matriz N por 3 de escalares reales. N es el número de muestras y las tres columnas de magReadings representan las [x y z] mediciones, respectivamente.

Tipos de datos: single | double

Salida

expandir todo

Orientación del marco del cuerpo del sensor con respecto al marco de navegación, devuelto como un arreglo de escalares de M por 4 o un arreglo de matrices de rotación de 3 por 3 por M. Se supone que cada fila de la matriz N por 4 son los cuatro elementos de un quaternion. El número de muestras de entrada, N, y el parámetro Decimation Factor determinan el tamaño de salida M.

Tipos de datos: single | double

Velocidad angular con el sesgo del giroscopio eliminado en el sistema de coordenadas del cuerpo del sensor en rad/s, devuelta como un arreglo M por 3 de escalares reales. El número de muestras de entrada, N, y el parámetro Decimation Factor determinan el tamaño de salida M.

Tipos de datos: single | double

Parámetros

expandir todo

Principal

Marco de referencia de navegación, especificado como NED (Noreste-Abajo) o ENU (Este-Norte-Arriba).

Factor de diezmado mediante el cual se reduce la velocidad de datos del sensor de entrada, especificado como un número entero positivo.

El número de filas de las entradas –– Accel, Gyro y Mag –– debe ser un múltiplo del factor de diezmado.

Tipos de datos: single | double

Ruido del proceso inicial, especificado como una matriz de escalares reales de 12 por 12. El valor predeterminado, ahrsfilter.defaultProcessNoise, es una matriz diagonal de 12 por 12 como:

  Columns 1 through 6

   0.000006092348396                   0                   0                   0                   0                   0
                   0   0.000006092348396                   0                   0                   0                   0
                   0                   0   0.000006092348396                   0                   0                   0
                   0                   0                   0   0.000076154354947                   0                   0
                   0                   0                   0                   0   0.000076154354947                   0
                   0                   0                   0                   0                   0   0.000076154354947
                   0                   0                   0                   0                   0                   0
                   0                   0                   0                   0                   0                   0
                   0                   0                   0                   0                   0                   0
                   0                   0                   0                   0                   0                   0
                   0                   0                   0                   0                   0                   0
                   0                   0                   0                   0                   0                   0

  Columns 7 through 12

                   0                   0                   0                   0                   0                   0
                   0                   0                   0                   0                   0                   0
                   0                   0                   0                   0                   0                   0
                   0                   0                   0                   0                   0                   0
                   0                   0                   0                   0                   0                   0
                   0                   0                   0                   0                   0                   0
   0.009623610000000                   0                   0                   0                   0                   0
                   0   0.009623610000000                   0                   0                   0                   0
                   0                   0   0.009623610000000                   0                   0                   0
                   0                   0                   0   0.600000000000000                   0                   0
                   0                   0                   0                   0   0.600000000000000                   0
                   0                   0                   0                   0                   0   0.600000000000000

Tipos de datos: single | double

Formato de orientación de salida, especificado como 'quaternion' o 'Rotation matrix':

  • 'quaternion' –– La salida es un arreglo M por 4 de escalares reales. Cada fila del arreglo representa los cuatro componentes de un quaternion.

  • 'Rotation matrix' –– La salida es una matriz de rotación de 3 por 3 por M.

El tamaño de salida M depende de la dimensión de entrada N y del parámetro Decimation Factor.

Tipos de datos: char | string

  • Interpreted execution — Simular el modelo utilizando el intérprete MATLAB®. Esta opción acorta el tiempo de inicio. En el modo Interpreted execution, puede depurar el código fuente del bloque.

  • Code generation — Simular el modelo utilizando el código C generado. La primera vez que ejecuta una simulación, Simulink genera código C para el bloque. El código C se reutiliza para simulaciones posteriores siempre que el modelo no cambie. Esta opción requiere tiempo de inicio adicional.

Ruido de medición

Varianza del ruido de la señal del acelerómetro en (m/s2)2, especificada como un escalar real positivo.

Tipos de datos: single | double

Varianza del ruido de la señal del giroscopio en (rad/s)2, especificada como un escalar real positivo.

Tipos de datos: single | double

Varianza del ruido de la señal del magnetómetro en μT2, especificada como un escalar real positivo.

Tipos de datos: single | double

Varianza de la deriva del giroscopio en (rad/s)2, especificada como un escalar real positivo.

Tipos de datos: single | double

Ruido ambiental

Varianza del ruido de aceleración lineal en (m/s2)2, especificada como un escalar real positivo. La aceleración lineal se modela como un proceso de ruido blanco filtrado por paso bajo.

Tipos de datos: single | double

Varianza del ruido de perturbación magnética en μT2, especificado como un escalar positivo finito real.

Tipos de datos: single | double

Factor de caída para la deriva de aceleración lineal, especificado como un escalar en el rango [0,1). Si la aceleración lineal cambia rápidamente, establezca este parámetro en un valor más bajo. Si la aceleración lineal cambia lentamente, establezca este parámetro en un valor más alto. La deriva de la aceleración lineal se modela como un proceso de ruido blanco filtrado por paso bajo.

Tipos de datos: single | double

Factor de decaimiento para perturbaciones magnéticas, especificado como un escalar positivo en el rango [0,1]. La perturbación magnética se modela como un proceso de Markov de primer orden.

Tipos de datos: single | double

Intensidad del campo magnético en μT, especificada como un escalar positivo real. La intensidad del campo magnético es una estimación de la intensidad del campo magnético de la Tierra en la ubicación actual.

Tipos de datos: single | double

Algoritmos

expandir todo

Nota: El siguiente algoritmo sólo se aplica a un marco de referencia NED.

El bloque AHRS utiliza la estructura de filtro Kalman de nueve ejes descrita en [1]. El algoritmo intenta rastrear los errores de orientación, desplazamiento del giroscopio, aceleración lineal y perturbación magnética para generar la orientación final y la velocidad angular. En lugar de rastrear la orientación directamente, el filtro Kalman indirecto modela el proceso de error, x, con una actualización recursiva:

xk=[θkbkakdk]=Fk[θk1bk1ak1dk1]+wk

donde xk es un vector de 12 por 1 que consta de:

  • θk –– Vector de error de orientación de 3 por 1, en grados, en el tiempo k

  • bk –– Vector de sesgo de velocidad angular cero del giroscopio 3 por 1, en grados/s, en el momento k

  • ak –– Vector de error de aceleración de 3 por 1 medido en el marco del sensor, en g, en el tiempo k

  • dk –– Vector de error de perturbación magnética de 3 por 1 medido en el marco del sensor, en µT, en el tiempo k

y donde wk es un vector de ruido aditivo de 12 por 1, y Fk es el modelo de transición de estado.

Dado que xk se define como el proceso de error, la estimación a priori siempre es cero y, por lo tanto, el modelo de transición de estado, Fk, es cero. Esta idea da como resultado la siguiente reducción de las ecuaciones estándar de Kalman:

Ecuaciones de Kalman estándar:

xk=Fkxk1+Pk=FkPk1+FkT+Qkyk=zkHkxkSk=Rk+HkPkHkTKk=PkHkT(Sk)1xk+=xk+KkykPk+=PkKkHkPk

Ecuaciones de Kalman utilizadas en este algoritmo:

xk=0Pk=Qkyk=zkSk=Rk+HkPkHkTKk=PkHkT(Sk)1xk+=KkykPk+=PkKkHkPk

donde:

  • xk –– estimación del estado predicho (a priori); el proceso de error

  • Pk –– estimación de covarianza prevista (a priori)

  • yk –– innovación

  • Sk –– covarianza de la innovación

  • Kk –– Ganancia de Kalman

  • xk+ –– estimación de estado actualizada (a posteriori)

  • Pk+ –– estimación de covarianza actualizada (a posteriori)

k representa la iteración, el superíndice + representa una estimación a posteriori y el superíndice representa una estimación a priori.

El gráfico y los siguientes pasos describen una iteración basada en un solo cuadro a través del algoritmo.

Algorithm Flowchart

Antes de la primera iteración, las entradas accelReadings, gyroReadings y magReadings se dividen en cuadros DecimationFactor por 3. Para cada fragmento, el algoritmo utiliza las lecturas más actuales del acelerómetro y magnetómetro correspondientes al fragmento de lecturas del giroscopio.

Referencias

[2] Roetenberg, D., H.J. Luinge, C.T.M. Baten, and P.H. Veltink. "Compensation of Magnetic Disturbances Improves Inertial and Magnetic Sensing of Human Body Segment Orientation." IEEE Transactions on Neural Systems and Rehabilitation Engineering. Vol. 13. Issue 3, 2005, pp. 395-405.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido en R2020a