insfilterMARG
Estimar la pose a partir de datos MARG y GPS
Descripción
El objeto insfilterMARG
implementa la fusión de sensores de datos MARG y GPS para estimar la postura en el marco de referencia NED (o ENU). Los datos MARG (magnéticos, de velocidad angular y de gravedad) generalmente se derivan de sensores de magnetómetro, giroscopio y acelerómetro. El filtro utiliza un vector de estado de 22 elementos para rastrear el cuaternión de orientación, la velocidad, la posición, los sesgos del sensor MARG y el vector geomagnético. El objeto insfilterMARG
utiliza un filtro Kalman extendido para estimar estas cantidades.
Creación
Sintaxis
Descripción
crea un objeto filter
= insfilterMARGinsfilterMARG
con valores de propiedad predeterminados.
le permite especificar el marco de referencia, filter
= insfilterMARG('ReferenceFrame',RF
)RF
, del filter
.
establece una o más propiedades utilizando argumentos de nombre-valor además de cualquiera de los argumentos de entrada anteriores.filter
= insfilterMARG(___,Name=Value
)
Argumentos de entrada
Propiedades
Funciones del objeto
correct | Estados correctos utilizando mediciones de estado directas para insfilterMARG |
residual | Residuos y covarianzas residuales de mediciones de estado directas para insfilterMARG |
fusegps | Estados correctos utilizando datos GPS para insfilterMARG |
residualgps | Residuos y covarianza residual de las mediciones GPS para insfilterMARG |
fusemag | Estados correctos utilizando datos del magnetómetro para insfilterMARG |
residualmag | Residuos y covarianza residual de las mediciones del magnetómetro para insfilterMARG |
pose | Estimación de la orientación y posición actual para insfilterMARG |
predict | Actualizar estados utilizando datos del acelerómetro y giroscopio para insfilterMARG |
reset | Restablecer estados internos para insfilterMARG |
stateinfo | Mostrar información del vector de estado para insfilterMARG |
tune | Ajuste los parámetros insfilterMARG para reducir el error de estimación |
copy | Crear copia de insfitlerMARG |
Ejemplos
Algoritmos
Nota: El siguiente algoritmo sólo se aplica a un marco de referencia NED.
insfilterMARG
utiliza una estructura de filtro Kalman extendida de 22 ejes para estimar la pose en el marco de referencia NED. El estado se define como:
donde
q0, q1, q2, q3 –– Partes del cuaternión de orientación. El cuaternión de orientación representa una rotación del marco desde la orientación actual de la plataforma hasta el sistema de coordenadas NED local.
positionN, positionE, positionD –– Posición de la plataforma en el sistema de coordenadas NED local.
νN, νE, νD –– Velocidad de la plataforma en el sistema de coordenadas NED local.
Δ θbiasX, Δ θbiasY, Δ θbiasZ –– Sesgo en la lectura del giroscopio integrado.
Δ νbiasX, Δ νbiasY, Δ νbiasZ –– Sesgo en la lectura del acelerómetro integrado.
geomagneticFieldVectorN, geomagneticFieldVectorE, geomagneticFieldVectorD –– Estimación del vector del campo geomagnético en la ubicación de referencia.
magbiasX, magbiasY, magbiasZ –– Sesgo en las lecturas del magnetómetro.
Dada la formación convencional de la estimación del estado previsto,
uk está controlado por datos del acelerómetro y del giroscopio que se han convertido en velocidad delta y ángulo delta a través de integración trapezoidal. La estimación del estado previsto es:
En la ecuación, (q0', q1', q2', q3') es el cuaternión que explica el cambio de orientación de un paso al siguiente. Suponiendo que el cambio de orientación es pequeño, entonces el vector de rotación se puede aproximar como (Δ θX − Δ θbiasX, Δ θY − Δ θbiasY, Δ θZ − Δ θbiasZ), donde Δ θX, Δ θY, Δ θZ son las lecturas del giroscopio integrado. Luego se obtiene (q0', q1', q2', q3') convirtiendo el vector de rotación aproximado en un cuaternión. En cada cálculo, el cuaternión se normaliza de modo que su longitud sea 1 y su parte real q0 no sea negativa.
Además,
Δ νX, Δ νY, Δ νZ –– Lecturas del acelerómetro integrado.
Δ t –– Tiempo de muestreo de IMU.
gN, gE, gD –– Vector de gravedad constante en el marco NED.
Capacidades ampliadas
Historial de versiones
Introducido en R2018b
Consulte también
insfilterNonholonomic
| insfilterErrorState
| insfilterAsync