Le roulis, le tangage, le lacet de calcul
Comment puis-je calculer le roulis, le tangage et le lacet angles associés à une matrice de transformation homogène?
Je suis en utilisant les formules suivantes pour le moment, mais je ne suis pas sûr si elles sont correctes ou non.
pitch = atan2( -r20, sqrt(r21*r21+r22*r22) );
yaw = atan2( r10, r00 );
roll = atan2( r21, r22 );
r10 signifie la deuxième ligne et la première colonne.
oui vous avez raison, mais mon point est de savoir comment puis-je calculer l'angle au-delà de cette limite..
non, je ne suis pas satisfait parce que je sais que ces choses déjà. J'ai trouvé une autre manière de trouver de roulis tangage lacet, veuillez voir ce lien code.google.com/p/matlab-toolboxes-robotics-vision/source/... ..savez-vous ce que doit être entrée pour cette fonction matlab?
Voir mon post mis à jour.
non, je ne suis pas satisfait parce que je sais que ces choses déjà. J'ai trouvé une autre manière de trouver de roulis tangage lacet, veuillez voir ce lien code.google.com/p/matlab-toolboxes-robotics-vision/source/... ..savez-vous ce que doit être entrée pour cette fonction matlab?
Voir mon post mis à jour.
OriginalL'auteur nabeel | 2014-04-11
Vous devez vous connecter pour publier un commentaire.
Votre équations sont correctes seulement si l'ordre des rotations est: rouleau, puis la hauteur, un mouvement de lacet. Pour l'enregistrement, la correspondance avec les angles d'Euler (avec le respect du cadre de référence implicitement donné avec la matrice de transformation) est comme suit:
Compte tenu de ces éléments, l'ordre le roulis, le tangage, le lacet mentionnées dans la première phrase correspond à la matrice de rotation d'obtenir par la matrice produit
Rz Ry Rx
(dans cet ordre). Notez que votre formule donne les valeurs de ces angles en radians (multiplier par 180 et diviser par pi pour obtenir les valeurs en degrés). Tous les rotations sont des aiguilles d'une montre par rapport à l'axe.Figure tirée de Wikipédia
À la suite de votre commentaire à propos de cette lien, je pense que ce document pourraient aider à comprendre le programme auquel vous faites allusion. L'entrée à la fonction Matlab est censé être votre matrice de transformation, suivi par 'deg' si vous voulez les angles d'être renvoyé en degrés, et obsolète option " zyx " si la commande de la rotation autour de z, puis autour de y, puis autour de x.
OriginalL'auteur Sheljohn
[Ce pourrait être mieux adapté qu'un commentaire, mais c'est pour ça 😉 ]
Quand je compare votre formule avec celui sur la Wikipédia allemande page sur le roulis, le tangage d'un lacet (voir ici) il y a une différence dans le calcul de la hauteur. Selon Wikipedia votre formule devrait ressembler à ceci:
Noter que sur la page wikipédia sur l'utilisation d'une indexation pour les éléments de la matrice (thex commencer à 1 et pas à 0 pour la première ligne/colonne). En outre, ils appellent hauteur bêta, lacet alpha et rouler gamma. Aussi, ils divisent les coefficents de
atan2
dans le mouvement de lacet et de roulis de calcul par lecos(pitch)
, mais qui devrait s'annuler.Sinon votre formule semble bien pour moi.
la formule est correcte je pense, mais si vous regarder de près à la formule pour la hauteur, vous trouverez que le dénominateur de rester toujours positif, selon mes connaissances atan2 calculer le quadrant selon le signe du numérateur et du dénominateur. c'est exactement mon problème, quand je suis en augmentant la hauteur de plus de 90°, il va commencer à diminuer..
OriginalL'auteur maddin45
"Roll est la rotation autour de l'axe x (compris entre -180 et 180 degrés);
La hauteur est les rotations autour de l'axe y (entre -90 et 90 deg);
Lacet est la rotation autour de l'axe z (entre -180 et 180)."
Il y a une erreur dans cette cité réponse posté ci-dessus. Alors que le chiffre est exact, le "roll" et le "terrain" ont été échangés dans le prix de la réponse. Il faut lire:
"Roll est la rotation autour de l'axe y ...;
La hauteur est les rotations autour de l'axe x ...;
Lacet est la rotation autour de l'axe z ..."
J'espère que cela a été utile pour vous.
OriginalL'auteur Prudence