QUATERNION Arithmtique des quaternions Rotation au moyen de

  • Slides: 14
Download presentation
QUATERNION ° ° ° Arithmétique des quaternions Rotation au moyen de quaternions Convertir des

QUATERNION ° ° ° Arithmétique des quaternions Rotation au moyen de quaternions Convertir des matrices de rotation et des quaternions Rick Parent, Animatique Algorithmes et techniques. Vuibert, Paris, 2003, 530 p.

Définition d’un quaternion Un quaternion peut être représenté à l’aide - d’un quadruplet de

Définition d’un quaternion Un quaternion peut être représenté à l’aide - d’un quadruplet de nombres réels q [s, x, y, z] ou encore, - sous une forme plus abrégée, q [s, v], s , v un vecteur 3 D. Les opérations suivantes sont définies : Addition de 2 quaternions : (i) [s 1, v 1] + [s 2, v 2] = [s 1 + s 2, v 1 + v 2], s 1, s 2 , v 1, v 2 des vecteurs 3 D Multiplication d’un quaternion par un scalaire : (ii) [s, v] = [ s, v], , s , v un vecteur 3 D Multiplication de 2 quaternions : (iii) [s 1, v 1]. [s 2, v 2] = [s 1 s 2 - v 1. v 2, s 1 v 2 + s 2 v 1 + v 1 x v 2], s 1, s 2 , v 1, v 2 des vecteurs 2 3 D produit scalaire produit vectoriel

Différentes propriétés des quaternions a. La multiplication de 2 quaternions n’est pas commutative. [s

Différentes propriétés des quaternions a. La multiplication de 2 quaternions n’est pas commutative. [s 1, v 1]. [s 2, v 2]. [s 1, v 1], s 1, s 2 , v 1, v 2 des vecteurs 3 D b. La multiplication de quaternions est associative. ([s 1, v 1]. [s 2, v 2]). [s 3, v 3] = [s 1, v 1]. ([s 2, v 2]. [s 3, v 3]), s 1, s 2 , s 3 , v 1, v 2 et v 3 des vecteurs 3 D. c. La multiplication de 2 quaternions dont les vecteurs respectifs sont orthogonaux équivaut au produit vectoriel de ces 2 vecteurs. [0, v 1]. [0, v 2] = [0, v 1 x v 2] v 1. v 2 = 0 v 1, v 2 des vecteurs 3 D d. [1, (0, 0, 0)] est l’élément neutre de la multiplication. [s, v]. [1, (0, 0, 0)] = [s, v] s , v un vecteur 3 D. 3

Différentes propriétés des quaternions e. L’inverse d’un quaternion q [s, v], noté q-1 est

Différentes propriétés des quaternions e. L’inverse d’un quaternion q [s, v], noté q-1 est obtenu comme suit : q-1 = [s, -v] / (s 2 + || v ||2) s , v un vecteur 3 D Ainsi, q. q-1 = q-1. q = [1, (0, 0, 0)]. Définition de la norme d’un quaternion : || q ||2 = s 2 + || v ||2 Par conséquent, q / || q || est appelé quaternion unitaire. f. (p. q) -1 = q-1. p-1 g. En posant q [s, w] et Tq(v) = q. [0, v]. q-1 , on obtient : - Tq(v) : un quaternion de la forme [0, u], où u est un vecteur 3 D. - Tq(Tp(v)) = Tq. p (v). - Tq-1(v) = q-1. [0, v]. q 4 - T q(v) = Tq(v), 0.

Transformation de rotation du vecteur v d’un angle autour d’un des axes principaux h.

Transformation de rotation du vecteur v d’un angle autour d’un des axes principaux h. T , w(v) = [ cos ( /2), sin ( /2) w]. [0, v]. [ cos ( /2), sin ( /2) w]-1 où w = e 1 w = e 2 w = e 3 si la rotation se fait autour de l’axe des x, si la rotation se fait autour de l’axe des y, si la rotation se fait autour de l’axe des z. Exemple : La transformation de rotation du vecteur v d’un angle autour de l’axe des x nous donne comme prévu : [0, Rx( ) v] où Rx( ) = 1 0 0 cos - sin cos 5

Transformation de rotation du vecteur w d’un angle autour d’un axe de rotation v

Transformation de rotation du vecteur w d’un angle autour d’un axe de rotation v unitaire quelconque i. T , v(w) = [ cos ( /2), sin ( /2) v]. [0, w]. [ cos ( /2), sin ( /2) v]-1 Note : la transformation est obtenue comme suit: i) faire coïncider le vecteur v avec l'axe des Z; ii) rotation d'un angle autour de l'axe des Z; iii) se ramener à l'emplacement original du vecteur. (0, uy, uz) Faire coïncider le vecteur v avec l'axe des Z Cette transformation affine est obtenue ainsi: - une rotation d'un angle b autour de l'axe des X: RXb cos b = uz / ||(0, uy, uz)|| sin b = uy / ||(0, uy, uz)|| où (0, uy, uz) = Proj. YZu. 6

(ux, 0, ||(0, uy, uz)||) - une rotation d'un angle a autour de l'axe

(ux, 0, ||(0, uy, uz)||) - une rotation d'un angle a autour de l'axe des Y: RYa cos a = ||(0, uy, uz)|| sin a = -ux. Nous avons alors: T , v(w) = RX-b RY-a RZ RYa RXb Note : Le quaternion représentant la rotation du vecteur 3 D w 1 à w 2 est : [cos ( /2), sin ( /2) (w 1 x w 2 )] où cos = w 1. w 2 7 sin

Composition de transformations de rotation Soient T (w) 1, v 1 et T T

Composition de transformations de rotation Soient T (w) 1, v 1 et T T 2, v 2(T 1, v 1(w) ) (w), 2, v 2 avec q 1 = [ cos ( 1/2), sin ( 1/2) v 1], q 2 = [ cos ( 2/2), sin ( 2/2) v 2], v 1 et v 2 sont unitaires, = q 2. (q 1 [0, w] q 1 -1). q 2 -1 = (q 2. q 1). [0, w]. (q 1 -1. q 2 -1) = (q 2. q 1). [0, w]. (q 2. q 1)-1 = Tq 2. q 1(w) Cas particulier : Une rotation avec son inverse donne l’identité. T- , v(T , v(w) ) = [1, 0]. [0, w] [1, 0] -1 = [0, w]. Tout multiple scalaire d’un quaternion représente la même rotation. T q(w) = Tq(w), 0 avec q = [ cos ( /2), sin ( /2) v]. 8 C’est le cas de = -1. Remarque :

Convertir des matrices de rotation et des quaternions Pourquoi ? Les quaternions sont souvent

Convertir des matrices de rotation et des quaternions Pourquoi ? Les quaternions sont souvent utilisés pour interpoler des orientations et le résultat est converti en une matrice de rotation, de façon à pouvoir la combiner avec d’autres matrices liées aux opérations d’affichage. Procédure q matrice de rotation Soit q = [s, w], ||q|| = 1, calculons d’abord q. [0, v]. q-1 : Tq(v) = q. [0, v]. q-1 = [s, w] [0, v] [s, -w] = [- w. v, s v + w x v] [s, -w] = [0, (w. v) w + s 2 v + s(w x v) – (s v + w x v) x w] = [0, (w. v) w + s 2 v + 2 s(w x v) – (w x v) x w] = [0, 2(w. v) w + s 2 v + 2 s(w x v) – (w. w) v]. 9

Convertir des matrices de rotation et des quaternions En posant w = (x, y,

Convertir des matrices de rotation et des quaternions En posant w = (x, y, z), où M Procédure on obtient : Tq(v) = [0, M v] 1 – 2 y 2 – 2 z 2 2 xy – 2 sz 2 xy + 2 sz 1 – 2 x 2 – 2 z 2 2 xz – 2 sy 2 yz + 2 sx 2 xz + 2 sy 2 yz – 2 sx 1 – 2 x 2 – 2 y 2 matrice de rotation q Soit la matrice de rotation suivante, R r 0, 0 r 0, 1 r 1, 0 r 1, 1 r 2, 0 r 2, 1 r 02 r 12 r 22 en examinant M, on obtient : - la somme des éléments diagonaux donne 4 s 2 – 1, - les éléments diagonaux peuvent également être utilisés pour résoudre 10 les termes restants. diapositive suivante

Convertir des matrices de rotation et des quaternions s= r 0, 0 + r

Convertir des matrices de rotation et des quaternions s= r 0, 0 + r 1, 1 + r 2, 2 + 1 2 r 0, 0 = 1 – 2 y 2 – 2 z 2 = 1 – 2 (y 2 + z 2) = 1 – 2 (1 - x 2 - s 2) = -1 + 2 x 2 + 2 s 2 x= r 0, 0 + 1 – 2 s 2 2 y= r 1, 1 + 1 – 2 s 2 2 z= r 2, 2 + 1 – 2 s 2 2 Note : Les racines carrées pour obtenir x, y et z peuvent être évitées si s 0 : r 1, 0 – r 0, 1 = 4 sz, r 2, 0 – r 0, 2 = -4 sy, r 2, 1 – r 1, 2 = 4 sx.

Représentation de phénomènes naturels Un quaternion peut aussi être défini comme suit : Q=w+xi+yj+zk

Représentation de phénomènes naturels Un quaternion peut aussi être défini comme suit : Q=w+xi+yj+zk où w, x, y et z sont des nombres réels, i, j et k désignent des coefficients imaginaires distincts, avec i 2 = j 2 = k 2 = -1, ij = k, jk = i, ki = j, ji = -k, kj = -i, ik = -j. Nous verrons plus loin comment nous pouvons utiliser les quaternions pour représenter des phénomènes naturels. 12

Arithmétique des quaternions Soient Q = w + x i + y j +

Arithmétique des quaternions Soient Q = w + x i + y j + z k = (w, (x, y, z)) R = a + b i + c j + d k = (a, (b, c, d)), (i) Q + R = (w + a) + (x + b) i + (y + c) j + (z + d) k (ii) Q - R = (w - a) + (x - b) i + (y - c) j + (z - d) k (iii) Q R = (wa – xb – yc - zd) + (wb + xa + yd - zc) i + (wc – xd + ya - zb) j + (wd + xc – yb + za) k (iv) || Q ||2 = w 2 + x 2 + y 2 + z 2 (v) Conjugué de Q (Q*): w - x i - y j - z k (vi) Q-1 = Q* / ||Q|| (vii) Q / R = R-1 Q etc. 13

Conclusion L’usage des quaternions nous permettra d’interpoler entre des orientations afin de générer une

Conclusion L’usage des quaternions nous permettra d’interpoler entre des orientations afin de générer une image d’images clés. 14