La création d'une matrice de rotation avec tangage, lacet, roulis à l'aide de Eigen
Comment puis-je créer une matrice de rotation à l'aide de tangage, lacet, roulis avec Eigen bibliothèque?
Vous pouvez également consulter cette réponse Eigen combiner la rotation et la translation dans une matrice.
OriginalL'auteur Caesar | 2014-01-28
Vous devez vous connecter pour publier un commentaire.
Vu que je ne pouvais pas trouver un préconstruit fonction qui fait cela, j'ai construit une et ici, il est dans le cas où quelqu'un trouve cette question dans l'avenir
OriginalL'auteur Caesar
Il y a 48 façons de le faire. Lequel voulez-vous? Voici les facteurs:
Sont les rotations sur les axes du système fixe (extrinsèque) ou sont-ils sur la rotation des axes (intrinsèque)?
Voulez-vous pour représenter la matrice que physiquement tourne un objet ou voulez-vous pour représenter la matrice qui transforme les vecteurs d'une image de référence à un autre?
Il y a six fondamental astronomique séquences. La forme canonique d'Euler séquence implique une rotation autour de l'axe z suivie d'une rotation autour de l' (rotation) de l'axe x, suivies par une troisième rotation (rotation de nouveau) de l'axe des z. Il y a plus de cinq de ces astronomique de style séquences (x-y-x, x-z-x, y-x-y, y-z-y,et z-y-z) en plus de ce canonique z-x-z séquence.
Pour ajouter à la confusion, il y a six fondamentaux de l'aérospatiale séquences. Par exemple, un tangage-roulis et le lacet de la séquence par rapport à une roulis-tangage-lacet de la séquence. Alors que la communauté astronomique a à peu près réglé sur une z-x-z de la séquence, le même ne peut pas être dit de l'aérospatiale de la communauté. Quelque part le long du chemin, vous trouverez des gens à l'aide de chacun des six séquences possibles. Les six séquences de ce groupe sont x-y-z, x-z-y, y-z-x, y-x-z, z-x-y, et z-y-x.
OriginalL'auteur David Hammen
César réponse est ok, mais comme David Hammen dit que cela dépend de votre application. Pour moi (sous-marins ou aériens, véhicules de terrain) la combinaison gagnante est:
Dans mon cas, j'ai une Coccinelle panoramique de la caméra et de l'axe sont les mêmes que dans cette réponse.
OriginalL'auteur narcispr
Tous vous avez besoin pour créer un mouvement de rotation de la matrice est le tangage, lacet, roulis, et la possibilité d'effectuer la multiplication de matrice.
Tout d'abord, créez trois matrices de rotation, une pour chaque axe de rotation (c'est à dire une pour la hauteur, un pour le lacet, un pour rouler). Ces matrices aura la valeur:
Hauteur De La Matrice:
Lacet De La Matrice:
Rouleau De Matrice:
Ensuite, multipliez tout cela ensemble. L'ordre ici est important. Normal rotations, vous aurez envie de multiplier le Rouleau de Matrice par le Lacet de la Matrice d'abord et ensuite multiplier le produit par la Hauteur de la Matrice. Toutefois, si vous essayez de "défaire" une rotation de revenir en arrière, vous aurez envie d'effectuer les multiplications dans l'ordre inverse (en plus des angles d'avoir en face de valeurs).
Je ne crois pas qu'il existe une fonction intégrée, mais voir stackoverflow.com/a/15043888/1530508 pour un très concis technique en utilisant les quaternions.
Ceci est documenté là
C'est pour un gaucher système de coordonnées je suppose? Pour appliquer ce pour un droitier système, vous n'avez qu'à changer les valeurs d'entrée signe. c'est à dire définir rouleau = - roulis , de lacet = - lacet, tangage = -terrain
Oui c'est gaucher si ma mémoire est bonne.
OriginalL'auteur ApproachingDarknessFish