Qu’est-ce que c’est ?

Vous pouvez utiliser un canal Kalman partout où vous avez des données incertaines sur un cadre unique, et vous pouvez faire une théorie éclairée sur ce que le cadre fera immédiatement. Peu importe que la réalité désordonnée s’installe et se mêle du mouvement sans tache que vous avez spéculé, le canal Kalman fera régulièrement une excellente activité pour donner un sens à ce qui s’est réellement passé. De plus, elle peut exploiter les relations entre les merveilles de la folie de Kalman que vous n’auriez peut-être pas pensé à utiliser à mauvais escient !

Les canaux Kalman sont parfaits pour des cadres qui évoluent sans cesse. Ils ont une marge de manœuvre qui les rend légers en mémoire (ils n’ont pas à conserver d’autre histoire que l’état passé), et ils sont rapides, ce qui les rend appropriés pour les problèmes continus et les cadres implantés.

Le calcul pour actualiser la chaîne Kalman se révèle vraiment terrifiant et obscur dans de nombreux endroits que vous trouvez sur Google. C’est une situation terrible, étant donné que la chaîne Kalman est en réalité excessivement basique et directe, au cas où vous la regarderiez de la bonne manière. Par conséquent, elle constitue un thème d’article incroyable, et je vais m’efforcer de l’éclairer avec des tas de photos et de teintes claires et jolies. L’essentiel est simple, il suffit d’avoir une compréhension fondamentale de la probabilité et des treillis.

Je commencerai par une valise gratuite du genre de choses qu’une chaîne Kalman peut éclairer, mais si vous avez besoin d’aller droit au but, n’hésitez pas à sauter sur l’occasion.

Que pourrait-on faire avec une chaîne Kalman ?

Nous devrions fabriquer un modèle de jouet : Vous avez construit un petit robot qui peut se promener dans les zones boisées, et le robot doit savoir précisément où il se trouve dans le but de pouvoir l’explorer.

Nous dirons que notre robot a un état xk→, qui n’est qu’une position et une vitesse :

xk→=(p⃗ ,v⃗ )

Notez que l’état n’est qu’une énumération de chiffres sur l’arrangement caché de votre cadre ; il peut s’agir de n’importe quoi. Dans notre modèle, sa position et sa vitesse, cependant, il peut s’agir d’informations sur la mesure du liquide dans un réservoir, la température d’un moteur, la situation du doigt d’un client sur un pavé tactile, ou de n’importe quel autre élément que vous devez surveiller.

Notre robot dispose en outre d’un capteur GPS, qui est précis à environ 10 mètres, ce qui est formidable, mais il doit connaître sa zone plus correctement que 10 mètres. Il y a des tas de gouffres et de falaises dans ces bois, et si le robot n’est pas juste à plus de quelques mètres, il pourrait tomber d’un précipice. Donc, un GPS sans l’intervention de quelqu’un d’autre ne suffit pas.

Nous pouvons également savoir quelque chose sur la façon dont le robot se déplace : Il réalise les directions envoyées aux moteurs des roues, et il se rend compte que s’il va dans une direction et que rien ne s’en mêle, au moment suivant, il sera probablement plus loin qu’un cap équivalent. De toute évidence, il ne sait rien de son mouvement : Il peut être frappé par la brise, les roues peuvent glisser un peu, ou tourner sur le paysage accidenté ; la somme des tours des roues peut donc ne pas indiquer la distance réellement parcourue par le robot, et les prévisions ne seront pas parfaites.

Le capteur GPS nous révèle quelque chose sur l’État, mais de manière détournée, et avec une certaine vulnérabilité ou inexactitude. Nos prévisions nous révèlent quelque chose sur la façon dont le robot se déplace, même si c’est de façon détournée, avec une certaine vulnérabilité ou inexactitude.

En tout état de cause, au cas où nous utiliserions toutes les données qui nous sont accessibles, serions-nous en mesure de donner des signes d’amélioration que l’une ou l’autre des jauges ne nous donnerait pas sans l’aide de quelqu’un d’autre ? De toute évidence, la réponse appropriée est vraiment, et c’est à cela que sert un canal de Kalman.

Comment un filtre de Kalman voit votre problème

Regardons le paysage que nous essayons d’interpréter. Nous allons continuer avec un état simple n’ayant que la position et la vitesse.

x⃗ = [pv]

Nous n’avons pas la moindre idée de ce que sont la position et la vitesse réelles ; il existe toute une série de combinaisons possibles de position et de vitesse qui peuvent être valables, mais certaines sont presque certaines que d’autres :

La chaîne Kalman s’attend à ce que les deux facteurs (position et vitesse, pour notre situation) soient irréguliers et gaussiens dispersés. Chaque facteur a une estimation moyenne μ, qui est le point focal de la circulation arbitraire (et son état de probabilité), et une différence σ2, qui est la vulnérabilité :

Dans le tableau ci-dessus, la position et la vitesse ne sont pas corrélées, ce qui implique que l’état d’une variable ne vous révèle rien sur ce que peut être l’autre.

La maquette ci-dessous montre quelque chose d’encore plus intriguant : La position et la vitesse sont liées. La probabilité d’observer une position spécifique dépend de la vitesse dont vous disposez :

Ce genre de circonstance peut se présenter si, par exemple, nous évaluons une autre position qui dépend d’une ancienne. Dans le cas où notre vitesse était élevée, nous nous sommes probablement éloignés davantage, de sorte que notre position sera progressivement supprimée. Dans le cas où nous nous déplaçons progressivement, nous ne sommes pas allés aussi loin.

Il est extrêmement impératif de surveiller ce type de relation car elle nous donne plus de données : Une estimation nous révèle quelque chose sur ce que les autres pourraient être. De plus, c’est l’objectif du canal Kalman, nous devons écraser autant de données que possible de nos estimations douteuses !

Ce lien est pris en compte par ce que beaucoup appellent un cadre de covariance. En clair, chaque composante du réseau Σij est le niveau de connexion entre la ième variable d’état et la jième variable d’état. (Vous avez peut-être la possibilité d’imaginer que le réseau de covariance est symétrique, ce qui implique qu’il ne fait pas de différence au cas où vous échangeriez I et j). Les réseaux de covariance sont régulièrement nommés “Σ”, nous appelons donc leurs composantes “Σij”.