Aller au contenu


bird12358

Inscrit(e) (le) 30 déc. 2012
Déconnecté Dernière activité janv. 04 2018 09:03
-----

Messages que j'ai postés

Dans le sujet : Mettre a jour matrice de covariance (kalman)

26 février 2015 - 06:12

Alors j'ai mis en place sur un exemple concret le filtrage de kalman en 2D (position et vitesse).

 

Quand j'applique l'estimation à partir de mes mesures de position, j'ai mon vecteur entier qui est modifié.

 

Est-ce normal qu'avec une donnée de position mon filtrage de kalman me modifie ma vitesse?


Dans le sujet : Mettre a jour matrice de covariance (kalman)

30 janvier 2015 - 08:38

Je ne comprend pas bien la question.

Tu as un vecteur de mesure [vitesse acceleration] et un vecteur d'état [position vitesse]

Lors de la prédiction, tu vas modéliser l'évolution de ta vitesse et tu vas lier ta position à ta vitesse.

Lors de la mise à jour, tu vas utiliser tes mesures de vitesse et d'accélération pour mettre à jour la vitesse estimé et la position estimé.

Si jamais tu connais le modèle d'évolution de ton accélération, deux choix s'offre à toi : intégrer l'accélération au vecteur d'état, ou alors calculer le modèle d'évolution de la vitesse à partir de l'accélération.

 

 

La c'est moi qui ne comprends pas . Normalement dans la prédiction , on doit utiliser une matrice H qui permet de passé du domaine du vecteur d'état au domaine capteur. 

Donc si on a un vecteur d'etat X = [p v] il faut que  z = H*X ou z est la mesure? Dans ce cas comment on fait pour avoir une accélération à partir du modèle d'état dans lequel il n'y a que des positions et des vitesses?

 

Dans les exemples que j'ai vu ou les vecteurs d'état etait de X = [p v], les accéléromètres était utilisé dans la prédiction :

Xk+1 = A*Xk +B*U ou U était les accéléromètres.


Dans le sujet : Mettre a jour matrice de covariance (kalman)

29 janvier 2015 - 09:26

Merci pour cette réponse.

 

D'autres questions concernant le gain de kalman:

 

- Imaginons, on a les mesures d'accélérometres et de vitesse On a une matrice vecteur d'etat de 6x1 [position3_1 vitesse3_1 ]. La seul solution pour intégrer les accéléromètres c'est dans la prédiction?  Pour intégrer la vitesse dans la mise a jour, seul les vitesses dans le vecteur d'état vont bénéficier de la mise à jour?

 

- Pour de l'embarqué et comme les matrices de covariance et de variance sont équivalent a une matrice identité multiplié par un coef, peut-on réduire ce vecteur d'état à 2x1 et en répétant les coefs sur les 3axes?

 

Je m'explique :

X = [p v] ;  Xk_1 = A*Xk + B*U

A = [1 T ; 0 1] B = [Te²/2 ;Te]

 

Ma matrice de covariance liée à ma mesure sigmax = [Te²/2 Te³/2; Te²/2 Te]  et celle lié à ma mesure sigmaz = var²*[1 0 ; 0 1]

 

J'aurai ma matrice de passage du vecteur d'etat vers ma mesure  H = [ 0 1] .

 

En fait j'ai fait les calculs sous matlab et je me suis rendu compte que de toutes facons les axes sont indépendents, c'est a dire sur l'axe x seulement px et vx sont en corrélation  , de même sur y et z.

Pour le gain de kalman du vecteur d'état 6x1 on a :

K = [ x1 0 0 x2 0 0

        0 x1 0 0 x2 0

        0 0 x1 0 0 x2

        x3 0 0 x4 0 0

        0 x3 0 0 x4 0

        0  0 x3 0 0 x4]

Et pour le gain de kalman du vecteur d'état 2x1 on a :

K = [x1 x2

        x3 x4]

 

Je me dis donc si je ne me suis pas gourré dans mes calculs, je calcul le gain de kalman sur le "sous-système" et j'applique les coefficients trouvés sur les 3axes.

 

Quant pensez-vous?


Dans le sujet : Kalman sur centrale inertielle

03 janvier 2013 - 07:01

Voila j'ai enfin retrouvé un document qui reparle de cette matrice Q.

http://wwwdfr.ensta.fr/Cours/docs/C10-2/chapitre10.pdf

Dans le document ci-dessus, page 16 ou p188 du document, la matrice Q est défini dans le cas du déplacement d'un robot.
Les commandes sont les vitesses des deux roues et la rotation angulaire du robot. On peut remarquer dans cette exemple que la matrice Q n'est composé que des données liées aux erreurs du vecteur d'entrée et est fonction de la vitesse et de la rotation du robot. L'erreur A*X n'est pas pris en compte mais seulement celle dû à la commande B*U.

Donc si on en revient au document qui faisait le filtrage des données GPS et d'accéléromètre, la modèlisation de Q contenant en diagonal la variance des capteurs n'est pas forcement faux. Les accéléromètres sont les commandes et ont une erreur modèlisé dans Q.
Bien sur si les accéléromètres étaient utilisés en mesure, on les mettrait leur variance dans la matrice R. Mais toujours pas d'information sur la matrice M.

- Pourquoi est-on obliger d'avoir un idée de l'évolution des accéléromètres à partir du moment ou ils sont en entrée ? On a leur valeur et leur variance(leur biais si besoin). Je ne vois pas ou l'on est obligé de dire qu'elle est constante cette valeur d'accélération.

Dans le sujet : Kalman sur centrale inertielle

03 janvier 2013 - 06:14

- Je me placais dans le post prédédent dans le cas ou la vitesse n'est plus considèré comme constante mais dépendant directement de l'accélération.

Bonne question.
Ici, on fait l'hypothèse que la vitesse est constante MAIS on rajoute une accélération qui fait changer cette vitesse... Du coup, je ne sais pas si la matrice Q est nulle ou non...

...

Si on ajoute le vecteur U, celui-ci va servir entre autre à rectifier les erreurs de modélisation... (donc, il va faire un peu le role de Q)...


- Je vois pas comment U qui n'est pas un vecteur mais juste l'accélération selon l'axe pourrait compenser l'erreur de modèlisation du système?

J'avais vu dans le cadre de certains exemple que le bruit de la commande devait être pris en compte dans Q. Dans un exemple simple de déplacement d'un robot dans deux dimensions x et y, la commande était des données issues d'odomètres. On peut modèliser un bruit sur les mesures des odomètres et ensuite les inclures dans la matrice Q.
Et danc ce cas le seul bruit de processus était les deltas dû aux imprécisions des odomètres.
C'est pour cela que je voulais inclure les bruits de l'accéléromètres dans Q. Car l'accéléromètres dans ce cas un une "commande" puisque c'est une entrée du modèle.


J'ai l'habitude de ne pas utiliser le vecteur de commande U. Donc dans mon cas, seul la matrice Q sert à rectifier les erreurs de modélisation.


- Dans le cas ou l'on integre pas l'entrée U qui vaut l'accéléromètre, on serait obliger de dire que la vitesse ou l'accélération est une constante, ce qui dans la réalité pourrait produire de grosse erreur?

MAIS, je ne peux pas l'affirmer dans ce cas car l'étudiant à rajouté une matrice de bruit W (et M) que je n'ai jamais utilisé... Il y a peut-être une astuce, bien que sa façon d'écrire Q ne soit pas très logique...


- J'ai l'impression qu'il sépare le bruit dû a la modèlisation A*X du bruit de la commande B*U. Ou Q serait lié à la commande et M la dérive du au modèle c'est comme ca que je l'ai compris la première fois. Comme dans son cas, les accéléromètres sont aussi des données d'entrée, il a une diagonal contenant la variance de son capteur.
J'ai trouvé quelque filtre contenant Q et M mais les matrices sont nommées toutes les deux matrices de bruit de processus... Ca m'avance pas énorme :)/> je continue à creuser.

Regarde ce poly slide 53, il y a ta modélisation
http://www-sop.inria...SG_course_2.pdf


Dommage qu'ils n'aillent pas jusqu'a la définition des matrices de bruit, ...