ANNEXE B:
ALGEBRE DES QUATERNIONS ET APPLICATION A LA ROBOTIQUE
B.1 DEFINITION
• Un quaternionest nombre complexe quadri-dimensionnel (ou nombre hyper- complexe):
• Les nombres i, j, ksont des nombres complexes unitaires tels que:
• Sous forme vecteur, on écrit:
où on distingue respectivement la partie scalaire q0et la partie vecteur q
^
q = q0 + iq1 + jq2 + kq3
i2 = j2 = k2 = ¡1 jk = ¡kj =i ki = ¡ik =j ij = ¡ij =k
i
k j
^
q = q0 + ~q = q0 + q
B.1 DEFINITION
• La multiplication de deux quaternionsest définie comme suit:
• Sous forme vectorielle, le produit de quaternions s’écrit encore:
^
pq^ = (p0+ip1+jp2+kp3) (q0+iq1+jq2+kq3)
= (p0q0¡p1q1¡p2q2¡p3q3) +i(p0q1+p1q0+p2q3¡p3q2) +j(p0q2+p2q0+p3q1¡p1q3) +k(p0q3+p3q0+p1q2¡p2q1)
^
pq^ = (p0+~p) (q0+~q)
= p0 q0¡~p¢~q + p0 ~q + q0 ~p + ~p£~q
= p0 q0¡pTq + p0 q + q0 p + ~p q
B.1 DEFINITION
• Le quaternion conjuguéest défini par:
Il est facile de vérifier que:
• La norme d’un quaternion:
• Le quaternion unitaireest par définition tel que:
^
q¤ =q0 ¡ iq1 ¡ jq2 ¡ kq3
q0 ¡ ~q
(^pq)^¤ = ^q¤ p^¤
jjq^jj2 = (^q q)^¤ = q02 + ~q¢~q
jjq^jj = 1
B.1 DEFINITION
• Le vecteur quaternionest défini comme:
Il est facile de montrer que pour un vecteur quaternion on a:
Les vecteurs quaternions décrivent les vecteurs positions, les vecteurs vitesses linéaires et angulaires, etc.
^
q¤ = 0 + ~q
^
q + ^q¤ = 0
B.2 REPRESENTATION DES ROTATIONS FINIES A L’AIDE DE QUATERNIONS
• Soit un quaternion unitaire et un vecteur position (vecteur quaternion):
La rotation finie qui amène x à une nouvelle position yest représentée par triple produit de quaternion:
• Preuve:
– y est aussi un vecteur quaternion
– la longueur de x est préservée durant l’opération
^
e=e0+~e x^= 0 +~x,
^
y = ^ex^^e¤
^
y + ^y¤ = 0
jjy^jj2 = ^yy^¤ = jjx^jj2
B.2 REPRESENTATION DES ROTATIONS FINIES A L’AIDE DE QUATERNIONS
• La rotation inverseest obtenue en prenant le conjugué du quaternion de rotation
• Composition de deux rotations:
La rotation résultante est définie par le quaternion
^
x = ^e¤ y^^e
^
y = ^e1 x^^e¤1
^
z = ^e2 y^e^¤2 = (^e2^e1) ^x(^e2e^1)¤
^
z = ^e^xe^¤ with ^e = ^e2 e^1
B.2 REPRESENTATION DES ROTATIONS FINIES A L’AIDE DE QUATERNIONS
• Identification des paramètres vecteur de rotation et angle de rotation (théorème d’Euler) et l’expression du quaternion de rotation
On peut écrire le quaternion unitaire décrivant la rotation de la manière suivante:
où nest un vecteur unitaire (de norme 1) Effectuons les produits:
• Une comparaison avec la description de la rotation à l’aide des paramètres du théorème d’Euler fait appaître qu’il s’agit d’une rotation d’angle 2α autour d’un axe de rotation de vecteur unitaire n.
^
e = cos® + nsin®
^
ex^ = ¡sin®nTx + cos®x + sin®n x~
^
y= ^ex^e^¤
= sin2®(n¢x) + cos2®x + 2 sin® cos®n x~ ¡ sin2®(~n x)g x
^
y = 0 + (cos 2®I + (1¡cos 2®)n nT + sin 2®n)~ x
B.3 REPRESENTATION MATRICIELLE DES QUATERNIONS
• Un quaternion peut être représenté par une matrice colonne à 4 dimensions:
• Le produit de deux quaternions peut être écrit sous les formes suivantes
dans lesquelles on a utilisé les matrices 4 x 4 suivantes
où Iest la matrice unité
et où on a la matrice antisymétrique
construite sur la partie vecteur qdu quaternion
^
q = [q0q1q2q3]T
= [q0q]T
^ a = ^pq^
^
a = Ap q^ = Bqp^
~ q =
2
4 0 ¡q3 q2
q3 0 ¡q1
¡q2 q1 0 3 5 Ap = p0 ¡pT
p p0 I + ~p Bq = q0 ¡qT q q0 I ¡ q~
B.4 FORME MATRICIELLE DES ROTATIONS FINIES DECRITES A l’AIDE DE QUATERNIONS
• En utilisant la forme matricielle des multiplications de quaternions, le triple produit de quaternions
peut s’écrire sous la forme matricielle suivante:
• Tous calculs faits on a:
où Rest la matrice 3x3 l’opérateur de rotation standard.
En effet en développant le produit on trouve le résultat classique de la matrice Ren termes de composantes du quaternion e:
^
y = ^ex^^e¤
^
y = A BT x^
A BT = 1 0T 0 R
R = (2e20¡1)I + 2 (eeT + e0e)^
B.4 FORME MATRICIELLE DES ROTATIONS FINIES DECRITES A l’AIDE DE QUATERNIONS
• Une forme simplifiée de R:
avec
où Eet Gvérifient les relations:
R = E GT
E = ¡e e0I + ~e G = ¡e e0I ¡ e~
E ET = G GT = I
ET E = GT G = I ¡ e^e^T Ee^ = Ge^ = 0
B.5 VITESSES ANGULAIRES EN TERMES DES QUATERNIONS
• On part de l’expression de la rotation en termes des quaternions
• Si on suppose que le vecteur quaternion x est constant et que seul le quaternion décrivant la rotation e(t) dépend du temps, c’est-à-dire que l’on décrit un mouvement sphérique:
• Le champ de vitesse est donné par:
• En termes de y, on a
^
y = ^ex^^e¤
^
y(t) = ^e(t) ^xe^¤(t) _^
y = _^ex^^e¤ + ^ex^e^_¤
_^
y = _^ee^¤ y^ + ^ye^e^_¤
B.5 VITESSES ANGULAIRES EN TERMES DES QUATERNIONS
• On note que:
entraîne
• On déduit que le quaternion est aussi un vecteur quaternion
• La vitesse du point dans le repère attaché à yest donnée par:
• Interprétation:l’expression précédente représente la vitesse d’un point P en termes des quantités dans le repère attaché à y.
^
e^e¤ = 1
^
e^e_¤ + _^ee^¤ = 0
^
! = 2 _^ee^¤
_^
y = 1
2(^!y^ ¡ y^!)^
B.5 VITESSES ANGULAIRES EN TERMES DES QUATERNIONS
• Analogie avec les expressions matricielles:
Si on se rappelle les expressions matricielles de la position et de la vitesse
Ceci signifie que le vecteur quaternion ωest l’équivalent de la matrice y = R x
_
y = R R_ T y
~
! = R R_ T
B.5 VITESSES ANGULAIRES EN TERMES DES QUATERNIONS
• Vitesse de rotation dans le repère attaché à x:
En développant on obtient successivement:
• Soit la vecteur quaternion, vitesse de rotation dans le repère de x:
• La vitesse de rotation dans le repère x
• Le vecteur quaternion vitesse de rotation est l’analogue de la matrice
^
v = ^e¤ y_^e^
v = ^e¤ e_^^x + ^xe_^¤^e
^
!0 = 2 ^e¤e_^
^ v = 1
2(^!0x^ ¡ x^!^0)
~
!0 = RT R_
B.6 FORME MATRICIELLE DE VITESSES ANGULAIRES
• Utilisation de la notation matricelle pour écrire les expressions des quaternions vitesse de rotation
• En se limitant aux parties vectorielles
où Eet Gsont des matrices 3x4 extraites de Aet B
• Expression explicite des vitesses en termes des paramètres d’Euler
^
! = 2B(^e¤) _^e !^0 = 2A(^e¤) _^e
! = 2E e_ !0 = 2Ge_
E = [¡e e0I + ~e] G = [¡e e0I ¡ e~]
! = 2 2
4 ¡e1 e0 ¡e3 e2
¡e2 e3 e0 ¡e1
¡e3 ¡e2 e1 e0
3 5 £
_
e0 e_1 e_2 e_3 ¤