2016-02-24 1 views
1

Je travaille sur un filtre d'erreur de Kalman pour estimer la position et l'orientation d'un véhicule volant en utilisant des données IMU pour la propagation d'état et des mesures basées sur la vision pour la mise à jour.indirect (état d'erreur) filtre kalman: propagation de l'état d'erreur

Donc, pour ce que je sais/compris de "Quaternion kinematics for the error-state KF": J'ai l'état nominal x et l'état d'erreur delta x. x est propagé en utilisant mes mesures IMU. Les matrices F et H sont définies en fonction de l'état d'erreur et non de l'état complet. L'état d'erreur n'est pas propagé.

delta x est calculée dans l'étape mise à jour pour la première fois, en utilisant:

delta x = K (y - h (chapeau (x))) -> l'état d'erreur Pour ce que j'ai compris, c'est la première fois que delta x est calculé, et après qu'il est utilisé pour injecter l'état d'erreur dans l'état normal, il est réinitialisé à . zéro. Donc, pour ce que j'ai compris, nous n'avons pas besoin de prédire/propager l'état d'erreur car nous n'avons aucune information sur les erreurs et il est donc initié avec des zéros, l'état d'erreur retournera toujours zéro. La matrice de covariance doit évidemment être mise à jour lorsque l'erreur augmente.

Est-il correct que l'état d'erreur ne soit pas prédit dans l'étape de prédiction et utilisé uniquement pendant l'étape de mise à jour?

Répondre

2

Oui - c'est exactement ça. Après avoir traité les mesures et calculé delta-x, les valeurs d'erreur sont réintégrées dans l'état entier x. Puis, delta-x est remis à zéro avant d'être utilisé pour l'ensemble de mesures suivant.