Comment modéliser un bruit imprévisible dans Kalman Filter?

9

Contexte:

J'implémente un simple filtre de Kalman qui estime la direction de cap d'un robot. Le robot est équipé d'une boussole et d'un gyroscope.

Ma compréhension:

Je pense à représenter mon état comme un vecteur 2D , où est la direction actuelle du cap et est le taux de rotation rapporté par le gyroscope.(X,X˙)XX˙

Des questions:

  1. Si ma compréhension est correcte, il n'y aura pas de terme de contrôle, dans mon filtre. Est-ce vrai? Et si je prends l'état comme vecteur 1D ? Alors mon devient-il le terme de contrôle ? Ces deux méthodes donneront-elles des résultats différents?u(X)X˙u
  2. Comme nous le savons, la principale source de bruit provient de la boussole lorsque celle-ci se trouve dans un champ magnétique déformé. Ici, je suppose que le bruit gaussien est moins significatif. Mais la distorsion magnétique est totalement imprévisible. Comment le modélisons-nous dans le filtre de Kalman?
  3. Dans Kalman Filter, l'hypothèse selon laquelle "tous les bruits sont blancs" est-elle nécessaire? Disons que si ma distribution de bruit est en fait une distribution laplacienne, puis-je toujours utiliser un filtre de Kalman? Ou je dois passer à un autre filtre, comme Extended Kalman Filter?
Sibbs Gambling
la source

Réponses:

6
  1. Je modéliserais cela comme un système à un état (x), avec le gyroscope comme entrée de contrôle. Le bruit gyroscopique devient un bruit d'entrée d'état, le bruit de la boussole devient un bruit de mesure. Ainsi, votre modèle de système devient où est l'estimation de la direction du filtre, que vous comparez à la direction de la boussole pour obtenir votre Kalman mise à jour.
    θ˙^=ωgyro+w
    y^=X^
    y^
  2. La distorsion magnétique va être difficile, car si vous vous asseyez à n'importe quel endroit, elle apparaîtra comme un terme à décalage constant - le filtre de Kalman ne traitera pas bien cela. Je suis sûr que vous devrez soit cartographier la distorsion, obtenir une deuxième référence de direction absolue, ou simplement accepter la distorsion.
  3. Vous confondez le contenu spectral avec la distribution de probabilité. Si le bruit est blanc, alors chaque échantillon est parfaitement indépendant de tout autre échantillon. Si le bruit est laplacien, chaque échantillon obéit à la distribution de Laplace. Les filtres de Kalman n'aiment pas le bruit coloré (mais vous pouvez y faire face en ajoutant des états). Un filtre de Kalman n'est le filtre global optimal que lorsque le bruit est de distribution gaussienne et que la fonction de coût est une somme de carrés. Pour toute autre fonction de bruit et de coût, le filtre optimal est probablement non linéaire. Mais pour toute fonction de coût à moyenne nulle, bruit blanc et somme des carrés, le filtre de Kalman est le meilleur filtre linéaire à trouver.

(Notez que le modèle de système que j'ai donné se termine par un filtre de Kalman assez trivial - vous pouvez être mieux, si vous ne pouvez pas trouver d'autres moyens d'estimer le décalage de la boussole, en utilisant un filtre complémentaire pour combiner ces deux entrées de capteur. tous les calculs de Kalman finiront de toute façon par cracher un filtre complémentaire, et il y a de fortes chances que vous ayez suffisamment de suppositions pour vos constantes que vous pourriez aussi bien deviner au point de croisement dans un filtre complémentaire et en finir avec lui).

(Notez également que si vous avez une référence de position absolue , et certains moyens d'estimation de la vitesse, et un véhicule qui va toujours dans la direction que vous pointez, vous pouvez utiliser un filtre Kalman étendu de manière très rentable pour corriger la distorsion de la boussole en utilisant la direction dans laquelle il se déplace pour corriger la direction de la boussole).

Optimal State Estimation de Dan Simon, Wiley 2006, est - à mon avis - un traitement très riche et clair du sujet du filtrage de Kalman et de ses frères plus sophistiqués (H-infinity, Kalman étendu, Kalman non parfumé, et même un peu sur le filtrage baysien et des particules). Il ne vous dira pas comment appliquer cela à des problèmes de navigation comme celui-ci, mais où serait le plaisir dans la vie si tous les problèmes étaient résolus?. Si vous ne pouvez pas suivre les maths dans le livre de Simon, alors vous devriez probablement vous demander si vous allez pouvoir appliquer un filtre de Kalman d'une manière intelligente.

TimWescott
la source
+1 Pour le filtre complémentaire pour cette application semble plus adapté. Le livre de Dan Simon est également très bon. Cet article est une bonne introduction au filtre de Kalman (du même auteur) masys.url.tw/AU/2013SP/OpenCV/0513/kalman-dan-simon.pdf
ddevaz
@ddevaz Oui, j'implémente MAINTENANT un filtre complémentaire. Mais le problème est qu'il ne donne pas de très bons résultats. Je pense donc à passer à un autre filtre "plus sophistiqué" ...
Sibbs Gambling
Je vois. J'ai édité ma réponse pour inclure du matériel de référence sur la mise en œuvre du filtre de Kalman avec des gyroscopes, des accéléromètres et un magnétomètre.
ddevaz
3
  1. Il n'y aura pas de terme d'entrée de contrôle. Vous devez prendre (x, xdot) comme vecteur d'état pour formuler correctement le filtre de Kalman.

  2. Les principales sources de bruit sont la boussole et le gyroscope . Le bruit et la dérive du gyroscope sont importants. Il est assez difficile de surmonter la distorsion magnétique en général, mais il existe des techniques de compensation .

  3. L'hypothèse d' un bruit de distribution normale multivariée moyenne nulle est nécessaire, mais le bruit blanc n'en est qu'un cas particulier. Pour le filtre de Kalman étendu, cette hypothèse doit toujours être vraie. Vous pouvez regarder dans d' autres types de filtres ( filtre à particules , filtre de Kalman non parfumé ).

Papier de conception / mise en œuvre du filtre Kalman:

Implémentation d'un algorithme de fusion de capteurs pour la détection d'orientation 3D avec des capteurs inertiels / magnétiques

ddevaz
la source
Je ne peux donc pas quitter le KF pour gérer la distorsion magnétique imprévisible, non? Je devrais d'abord éliminer les valeurs déformées, puis quitter le KF pour gérer le bruit du capteur. Droite?
Sibbs Gambling
Oui. Le filtre de Kalman ne pourra pas compenser avec précision la distorsion magnétique car les changements pourraient être drastiques. J'essayerais d'abord d'implémenter une compensation magnétique puis de mettre en œuvre le filtre de Kalman.
ddevaz