Bonjour,
Je suis en train de créer un petit simulateur une donnée est l'accélération.
Le sensor (accéléromètre) détecte la gravité comme on peut s'y attendre et cette donnée doit donc se retrouver dans le vecteur accélération perçu par mon model (à tester en simulation).
Le but etant d'avoir le vecteur gravité ajouté aux autres accelerations subit par le model, et dans le repère du model.
La gravité etant en -Z, mais mon model ayant recu une certaine rotation au préalable, son repère ne coïncide plus avec le repère absolu.
(la rotation du model est comprise dans un quaternion)
Mon idée etait de créer un quaternion qui comporterait ce vecteur, ce que je fait avec la fonction CreateFromAxisAngle.
Ensuite d'utilise Slerp pour modifier ce quaternion afin qu'il soit "projeté", ou pivoté pour correspondre à l'axe du quaternion de rotation de mon model.
Jusque là je pense avoir bien fait.
Vient au final l'opération de récupérer le vecteur gravité appliqué à d'autre axes, afin d'afficher ses composantes (et a posteriori les transmettre au vrai robot pour traitement).
Cette dernière étape me bloque je ne sait pas comment faire.
Suis-je sur la bonne voit ou existe-t-il une méthode pour transformer un vecteur vers un autre repère plus simplement?
Sachant qu'ici les repère sont tous stocké en quaternion (non négociable, je ne suis pas seul sur le projet ^^)
Désolé pour le long post et merci d'avance pour vos idées et conseils.
Partager