Le filtre de Kalman permet de faire du tracking d'un objet mobile avec un outil ou capteur qui donne sa position de façon récurrente. En effet, on part du principe que les informations fournies par le capteur peuvent être quelques fois de mauvaises qualitées car bruitées. Ainsi, le filtre Kalman garantit une meilleure suivie de l'objet. Pour ce faire, le filtre prend en compte les principes physiques du déplacement du mobile pour estimer la position futur dont il fait une pondération avec les informations fournies par le capteur, ce qui force est de constater améliore la suivie de l'objet. Et dans l'eventualité où il considère que les informations fournies par le capteur sont très bruitées il accordera plus de poids à son inférence, et dans le cas contraire à ceux du capteur.
- Avoir un outil de perception du monde réel
- La présence de bruits affecte la précision des outils
Le filtre de Kalman Standard est en mesure de prédire l'état d'un système ou le mouvement d'un mobile uniquement lorsque les équations physiques qui sous-tendent ce mouvement sont linéaires. On parle filtre de Kalman étendu(EKF) quand les équations ne sont pas linéaire on passe par une phase de linéarisation de ceux avant la phase de prédiction
On considère que le EKF intervient à un instant
On prédit l'état à l'instant
$$\hat{x}{k+1}= A{k}x_{k}+B_{k}u_{k}+v_{k}$$
-
$x_{k},x_{k+1}$ : l'état à l'instant$k$ , l'état à l'instant$k+1$
-
$B_{k}$ : exprime comment l'état du système passe de$k$ à$k+1$ à cause des commandes. Il est aussi déduit des équations physiques du mouvement du mobile. C'est une matrice dont le nombre de lignes est égal au nombre d'états et le nombre de colonnes est égal au nombre d'entrées de contrôle(ou commandes). -
$u_{k}$ : est le vecteur de commande ou contrôle, il matérialise les effets du contrôle ou des commandes sur le mobile. C'est un vecteur de taille le nombre de contrôle -
$v_{k}$ : exprime un bruit qu'on simule de sorte à ressembler au bruit réel qu'on peut avoir. Il est dimension le nombre d'états
$$P_{k+1|k}=A_{k+1}P_{k|k}A^{T}{k+1}+Q{k+1}$$
-
$P_{k+1|k}$ : est la matrice de covariance à l'instant$k+1$ sachant la matrice de covariance à l'instant$k$ . C'est une matrice d'ordre le nombre d'état(ou paramètres d'états). -
$P_{k|k}$ :la matrice de covariance à l'instant$k$ avec les informations à l'instat$k$ ou matrice de covariance à postériori -
$Q_{k+1}$ : représente l'écart entre l'état rèel et l'estimation. Lorsque les valeurs de$Q$ sont grandes cela signifie que nous faisons plus confiance à nos observations de capteurs réelles qu'au mesures prédites.$Q$ est une matrice carrée d'ordre le nombre d'états(ou paramètres d'états)
$$h(\hat{x}{k+1|k})=H_k\hat{x}{k+1|k}+w_k$$
L'innovation est: $$\overline{y}{k+1}=z{k+1}-h(\hat{x}_{k+1|k})$$
-
$y_{k}$ : la mesure résiduelle -
$H_k$ : la matrice de mesure à l'instant$k$ , il permet d'estimer les mesures du capteur à partir de l'estimation de l'état à l'instant$k$ ($\hat{x}_{k+1|k}$ ). C'est une matrice dont le nombre de ligne est égal au nombre de paramètres observés par le capteur et le nombre de colonnes est égal au nombre d'états. -
$w_k$ : le vecteur de bruit à l'instant$k$ . Il est de dimension le nombre de paramètres observés par les capteurs -
$z_k$ : les mesures réelles effectuées par les capteurs.
$$s_{k+1}=H_{k+1}P_{k+1|k}H^{T}{k+1}+R{k+1}$$
-
$R_{k+1}$ : bruit du capteur,si les mesures du capteurs sont sûres$diag(R_{k+1})->0$ , c'est une matrice d'ordre le nombre de mesures de capteurs.
$$K_{k+1}=P_{k+1|k}H^{T}{k+1}S^{-1}{k+1}$$
Le gain indique dans qu'elle mesure l'état et la covariance des prévisions d'état doivent être corrigés à la suite des nouvelles mesures réelles du capteur (
$$\hat{x}{k+1|k}=\hat{x}{k+1|k}+K_{k+1}\overline{y}_{k+1}$$
La covariance du mobile après avoir intégrer les informations venant des capteurs.
Les variables à initialiser lors d'une implémentation du filtre de Kalman sont:
On fait une simulation du déplacement d'un véhicule, en calculant ses vitesses. Et on se sert du filtre Kalman pour le tracker
Références:
https://automaticaddison.com/extended-kalman-filter-ekf-with-python-code-example/ Kalman étendu