Bonjour a tous,
J'étudie une centrale inertielle (BNO055) et depuis les données extraite de cette dernière j'effectue des traitements sur matlab ayant pour but de déduire de ces données les déplacement effectués dans l'espace.
Afin d'évaluer la qualité des données de la centrales et les problème de dérive en orientation, j'étudie le mouvement d'un petit train effectuant une trajectoire circulaire.
Afin d'éviter les problèmes de dérive en position dues a la double intégration des données de l'acceleromètre, j'impose une vitesse constante et j'étudie le mouvement en fonction de l'orientation fournie par la centrale (Quaternions).
J'impose donc une vitesse constante selon Y. Cette vitesse est exprimé dans le repère propre à la centrale et il faut donc effectuer un changement de repère pour obtenir la vitesse dans le repère terrestre. (vitesse qui est ensuite intégrée pour en déduire la position).
J'utilise donc la libraire Quaternions fournie par matlab pour déduire des quaternions une matrice de rotation, que j'applique sur ma vitesse pour exprimer ses coordonnées dans le repère terrestre avant intégration.
Le résultat obtenu est celui attendu :Code:q = quaternion(quat); R = q.RotationMatrix; vel = zeros(size(acc)); %Initialisation de la matrice des vitesses au cours du temps vel(:,2) = 2; % On impose Vy = 2 for i = 1:length(vel) vel(i,:) = R(:,:,:,i) * acc(i,:)'; end
train.jpg
Mais dans un cas plus général, ou je ne "triche pas" en imposant une vitesse, cette vitesse est déduite de l'accéleration.
Or quand j'effectue le changement de repère sur l’accélération avant la double intégration j'obtiens des résultats étranges...
Par exemple si j'impose une accélération constante sur Y et nulle sur les autres axes je n'obtiens pas du tout le bon résultat..(avec les mêmes quaternions).
train 2.jpg
D'ou peut venir le problème ? Ya t'il un problème de méthodologie ?
N'hésitez pas a me demander plus d'information ( affiche de courbe, exemple de code etc...)
Merci pour votre aide,
Cordialement
Pierre-Marie
PS : si je suis dans la mauvaise cathégorie merci de me l'indiquer. (Devrais poster dans informatique ?)
-----