Quaternions

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
guilla25
Membre Naturel
Messages: 19
Enregistré le: 05 Juil 2016, 15:06

Quaternions

par guilla25 » 05 Juil 2016, 15:27

Bonjour,

J'ai deux capteurs de mouvement (par exemple sur le mollet et sur la cuisse) qui me fournissent des quaternions. Je souhaite savoir comment calculer l'angle entre les deux membres à l'aide de ces quaternions ?

par avance merci

SG



Robot

Re: Quaternions

par Robot » 05 Juil 2016, 21:27

Tu devrais commencer par lire la notice de tes capteurs pour savoir quelle rotation ces quaternions encodent.

guilla25
Membre Naturel
Messages: 19
Enregistré le: 05 Juil 2016, 15:06

Re: Quaternions

par guilla25 » 06 Juil 2016, 08:59

Bonjour

Merci pour votre réponse. En fait, les capteurs me renvoient les angles de cardan mais je fais une transformation euler/quaternion pour éviter le gimble lock. Dans la littérature, il est écrit partout que les quaternions permettent d'éviter ce phénomène, mais nulle part il est écrit comment les appliquer concrètement. De ces quaternions, je souhaite connaitre l'angle global entre les deux membres.
Concernant ta question, il y a différents quaternions ???

SG

Robot

Re: Quaternions

par Robot » 06 Juil 2016, 13:51

Tu ne comprends pas ma question.
Que ce soit angles d'Euler ou quaternions ou angles de Cardan (lacet, tangage, roulis je suppose), il s'agit toujours de paramétrer une matrice de rotation. Mais une rotation par rapport à quoi ?
Quel est le repère d'origine ? Le même pour les deux capteurs ?
Et le repère mobile attaché au capteur ? Tu as l'air d'assimiler un membre (ou une partie d'un membre, tu n'es pas très clair) à une barre Quel rapport entre la direction de la barre et les axes du repère attaché au capteur mobile ?
Tu devrais commencer par éclaircir ces points. Après, il sera très facile de te faire une réponse pertinente.

guilla25
Membre Naturel
Messages: 19
Enregistré le: 05 Juil 2016, 15:06

Re: Quaternions

par guilla25 » 11 Juil 2016, 10:30

Bonjour,

Ne maitrisant pas bien le sujet, je vous accorde que ca peut ne pas etre clair :-)
les deux capteurs sont sur le même repère (repère terrestre), si je les mets tous les deux dans le même sens, j'ai les mêmes données, sinon effectivement, ca ne serait pas possible d'en tirer quoi que ce soit.
les parties mobiles sont le biceps et l'avant bras, il y a donc un capteur sur le biceps et un capteur sur l'avant bras, l'idée ensuite est de calculer l'angle global du coude.
Actuellement, j'utilise les angles d'euler et ça fonctionne, mais le gimble lock me pose des soucis et surtout, je compare les Roll qui sont dans l'axe de rotation du coude.
Oui effectivement, j'assimile l'avant bras à une barre et le biceps à une autre barre.
cordialement

SG

Robot

Re: Quaternions

par Robot » 11 Juil 2016, 14:48

Bon, ça se précise tout doucement. Encore un effort de précision de ta part et on y arrivera.
Quel que soit le codage des matrices de rotation que tu récupères, tu peux fabriquer (par exemple, à partir des angles de Cardan) la matrice de rotation du repère du capteur par rapport au repère fixe.
Tu as ainsi la matrice de rotation du capteur attaché au bras et la matrice de rotation du capteur attaché à l'avant-bras. Tu en déduis la matrice de rotation du capteur de l'avant bras par rapport au capteur du bras : .
La précision qui manque est de savoir quel est, dans le repère du capteur attaché au bras, l'axe correspondant à l'axe du bras. Mettons que le soit le troisième. Alors l'angle entre le bras et l'avant-bras est . Tu n'as pas besoin de calculer et en entier : il suffit d'avoir la 3e colonne de chacune des deux matrices.

guilla25
Membre Naturel
Messages: 19
Enregistré le: 05 Juil 2016, 15:06

Re: Quaternions

par guilla25 » 11 Juil 2016, 20:24

Bonsoir,

Merci beaucoup pour ton retour et je vais creuser dans ce sens. Mais une petite question, avec l'utilisation de la matrice de rotation, je vais supprimer mes problèmes de point singulier mais j'aurai toujours l'angle de rotation par rapport à un axe et pas l'angle global ?
et les quaternions, on ne peut pas s'en servir ?
pour l'axe, actuellement j'utilise le Roll pour calculer / mesurer l'angle du coude :-)

SG

Robot

Re: Quaternions

par Robot » 11 Juil 2016, 21:42

mais j'aurai toujours l'angle de rotation par rapport à un axe et pas l'angle global ?

Je ne comprends pas cette phrase. C'est quoi l'angle global ? De quoi parles-tu exactement ?

pour l'axe, actuellement j'utilise le Roll pour calculer / mesurer l'angle du coude

Qu'est-ce que ça veut dire ? Que le "Roll axis" de chaque capteur est l'axe du bras ou de l'avant-bras ?

aymanemaysae
Habitué(e)
Messages: 1265
Enregistré le: 06 Sep 2013, 14:21

Re: Quaternions

par aymanemaysae » 11 Juil 2016, 22:23

Bonsoir;

Je ne suis pas expert en la matière, mais je crois que dans le lien suivant, un problème similaire a été traité.

Robot

Re: Quaternions

par Robot » 12 Juil 2016, 07:01

Bon, supposons que l'axe de roulis du capteur a bien même direction que celui du segment de membre sur lequel il est posé. Ca paraît assez logique (pour un avion, l'axe de roulis va de l'arrière à l'avant de l'avion, c'est l'axe longitudinal, voir le schéma ici).

Soit l'angle de lacet (yaw ou heading) et l'angle de tangage (pitch). Alors le vecteur unitaire qui dirige et oriente l'axe de roulis a pour coordonnées dans le repère fixe : .

On met des indices 1 pour le premier capteur sur le bras et 2 pour le deuxième capteur sur l'avant-bras. L'angle géométrique entre les deux segments de membre est donc .

guilla25
Membre Naturel
Messages: 19
Enregistré le: 05 Juil 2016, 15:06

Re: Quaternions

par guilla25 » 12 Juil 2016, 08:27

Bonjour,

merci pour vos reponses ! bon bah va falloir que je digère tout ca et que je retrouve le raisonnement de tes calculs Robots :-)
Concernant l'angle global, je veux dire que les capteurs ne sont pas forcément sur le même axe, exemple le capteur de l'avant bras, si je fais une torsion de celui-ci (pognée), mon capteur va tourner aussi et ne sera plus sur le même axe que celui du biceps, c'est pour cela que je parle d'angle global. Je ne sais pas si je suis plus clair :-)

SG

Robot

Re: Quaternions

par Robot » 12 Juil 2016, 09:24

Non, pas clair du tout. Qu'est-ce que ça veut dire, que "le capteur est sur un axe" ? Et je ne vois toujours pas ce que tu veux dire par "angle global".

Si comme je le suggère sans avoir de réponse claire de ta part, l'axe de roulis (Roll axis) du capteur sur l'avant bras a même direction que la barre à laquelle tu assimiles l'avant-bras, alors une torsion de l'avant-bras (qui conserve la direction de cette barre) donne une rotation du capteur autour de son axe de roulis ou axe longitudinal, donc modifie l'angle de roulis (roll) en conservant les deux autres (heading et pitch).
Ca ne change pas l'angle du coude, et tu remarqueras que l'angle de roulis n'intervient pas dans la formule que j'ai écrite pour cet angle du coude : on y voit seulement les angles de lacet et de tangage (heading et pitch) pour les deux capteurs.

Il serait bon que tu emploies la terminologie habituelle, ça faciliterait la communication. As-tu regardé le schéma explicatif que j'ai mis en lien dans mon message précédent ?

guilla25
Membre Naturel
Messages: 19
Enregistré le: 05 Juil 2016, 15:06

Re: Quaternions

par guilla25 » 12 Juil 2016, 10:04

en fait, j'ai l'impression que c'est plus compliqué que ca !!!
si le bras tombe (donc avant bras et biceps alignés vers le bas), alors les deux segments sont aligné avec le yaw axis, si le bras est tendu (90° par rapport au corps), ce n'est plus alignés sur le yaw axis, mais semble t il le pitch axis, et si le bras est vers le haut, de nouveau c'est aligné sur le yaw axis !!!!
l'information du yaw est quelque soit la position du capteur l'azimuth

SG

Robot

Re: Quaternions

par Robot » 12 Juil 2016, 10:28

Tu te mélanges les pinceaux entre le repère fixe et le repère attaché au capteur.

bras tombant ou levé (à la verticale) : le yaw () pour chaque capteur est indéterminé, le pitch () est plus ou moins 90°, le roll on s'en fiche. La formule donne bien pour l'angle du coude .

Bras tendu droit devant : le yaw pour chaque capteur est 0°, le pitch est 0°. La formule donne encore .

Bras tendu sur le côté : le yaw est 90°, le pitch est 0°. La formule donne encore

De manière générale si l'avant bras est dans le prolongement du bras, on a et , donc la formule que j'ai écrite donne .

As-tu oui ou non regardé le schéma que j'ai mis en lien ? Si tu répondais à mes questions, ça faciliterait la communication.

guilla25
Membre Naturel
Messages: 19
Enregistré le: 05 Juil 2016, 15:06

Re: Quaternions

par guilla25 » 12 Juil 2016, 10:42

oui j'ai regardé ton lien, du coup c'est quoi ta question ?

lorsque tu ecris :
De manière générale si l'avant bras est dans le prolongement du bras, on a et , donc la formule que j'ai écrite donne .

l'angle du coude devrait etre 180 ° ? puisque le bras est tendu !

Robot

Re: Quaternions

par Robot » 12 Juil 2016, 11:35

oui j'ai regardé ton lien, du coup c'est quoi ta question ?

La question était : as-tu regardé ce schéma ? Tu as finalement consenti à répondre, ouf.
Je voulais que tu regardes ce schéma pour être sûr que l'on parle bien de la même chose en termes de yaw, pitch et roll. Ce n'est pas encore tout à fait gagné, j'ai l'impression.

l'angle du coude devrait etre 180 ° ? puisque le bras est tendu !

Tu n'as tout simplement pas défini ce que tu appelles l'angle du coude. Pour moi il est de 0° quand le bras est tendu (avant-bras dans le prolongement du bras) et de 180° quand le bras est totalement replié (avant bras replié sur le bras). Mais qu'à cela ne tienne, je peux m'adapter à ta définition maintenant que je la connais. Il suffit de remplacer la formule que je t'ai donnée par
.

Bien entendu, tout ceci repose sur les hypothèses que j'ai faites : à savoir que le roll axis ou axe longitudinal du capteur est parallèle à la barre qui représente le segment de membre, et orienté en s'éloignant du tronc. Là-dessus je n'ai toujours pas eu de précisions de ta part, donc je suis bien obligé de faire des hypothèses - jusqu'à ce que tu me dises que ce n'est pas ça du tout. :hehe:

guilla25
Membre Naturel
Messages: 19
Enregistré le: 05 Juil 2016, 15:06

Re: Quaternions

par guilla25 » 12 Juil 2016, 12:40

Bon, bah tu vas me détester Robot, si j'ai bien compris, tu veux connaitre l'axe sur le repere capteur ? dans ce cas, c'est le pitch axis qui est aligné avec les membres et effectivement bras tendu, je considère que c'est 180°, donc bras plié au max, proche de 0.

merci

Robot

Re: Quaternions

par Robot » 12 Juil 2016, 13:35

Robot a écrit:Bon, supposons que l'axe de roulis du capteur a bien même direction que celui du segment de membre sur lequel il est posé. Ca paraît assez logique (pour un avion, l'axe de roulis va de l'arrière à l'avant de l'avion, c'est l'axe longitudinal, voir le schéma ici).


J'ai écrit ça il y a plus de 8 heures .... et tu attends maintenant pour dire que non, ce n'est pas ça.

Si tu collaborais un peu plus à la résolution de TON problème en ne cachant pas les informations que je te demande, on irait plus vite.
En tout cas, c'est un mauvais choix que tu as fait en n'alignant pas les segments du membre avec l'axe longitudinal du capteur.

Je pourrais te redonner une formule (qui serait plus compliquée, vu le choix malheureux fait), mais je n'ai plus envie de jouer.

guilla25
Membre Naturel
Messages: 19
Enregistré le: 05 Juil 2016, 15:06

Re: Quaternions

par guilla25 » 12 Juil 2016, 14:02

Désolé Robot, je n'avais pas compris comme tu as pu le constater préalablement que tu parlais du repere capteur et pas repere terrestre, d'où la non (mauvaise) information non volontaire de ma part. Je comprends que tu ne veuilles pas te taper les calculs de nouveau, d'ailleurs la méthode pour aboutir au résultat m'intéresse, pas seulement la formule, mais bon tant pis pour moi et merci encore !!

Robot

Re: Quaternions

par Robot » 12 Juil 2016, 14:24

1°) Tu pourrais tout de même faire attention à ce que tu lis : quand tu lis "supposons que l'axe de roulis du capteur a bien même direction que celui du segment de membre sur lequel il est posé", tu ne comprends pas que je parle explicitement du repère capteur et pas du repère terrestre ??? Quel sens est-ce que ma phrase aurait si tu l'interprètes comme parlant du repère fixe, d'ailleurs ???
2°) Tout ce dont tu as besoin pour faire le calcul de la matrice de rotation du repère fixe au repère du capteur est ici. Les coordonnées dans le repère fixe du vecteur unitaire qui dirige et oriente le "pitch axis" est le 2e vecteur colonne de la matrice de rotation. Après, calculer l'angle entre les deux vecteurs unitaires correspondant aux deux capteurs est facile. Voila le mode d'emploi, je te laisse te débrouiller. Franchement, je n'ai pas envie d'en faire plus pour apprendre finalement, que non, ce n'est pas ça parce qu'il y a encore une autre information cruciale que tu as omise ...

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 51 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite