Robotique Manipulation et commande Université de Strasbourg Telecom Physique Strasbourg, option ISAV Master IRIV, parcours AR Jacques Gangloff Plan du chapitre Conventions 1. Positionnement ◦ ◦ ◦ ◦ 1.1. Rotation 1.2. Décompositions de la rotation 1.3. Attitude 1.4. Matrice homogène 2. Cinématique ◦ ◦ ◦ ◦ 2.1.Vitesse d’un solide indéformable 2.2.Vecteur vitesse de rotation 2.3. Mouvement rigide 2.4. Torseur cinématique 08/10/12 [email protected] 2 Conventions Ri P i P �v ou v i v −−→ OP ou OP i (OP ) �u × �v �u · �v 0 R01 ou R01 0 M01 ou M01 Repère numéro i Point Coordonnées de P dans le repère i Vecteur Coordonnées de �v dans le repère i Vecteur −−→ Coordonnées de OP dans le repère i Produit vectoriel Produit scalaire Rotation du repère 0 vers le repère 1 exprimée dans 0∗ Matrice homogène du repère 0 vers le repère 1 exprimée dans 0∗ ∗ Si le nombre de repères dépasse 10, mettre un espace entre les 2 numéros comme dans M12 13 . 08/10/12 [email protected] 3 1. Positionnement 1.1. Rotations : le cas 2D Représentation de la rotation : y1 y0 y1 sin ! cos! R1 ! sin " x1 x1 ! R0 x0 cos! 08/10/12 0 x1 # cos! R01 = % $ sin ! [email protected] 0 y1 " sin ! & cos! (' 4 1. Positionnement 1.1. Rotations : le cas 2D Propriétés : # cos! R01 = % $ sin ! " sin ! & 2 2 ) det R = cos ! + sin ! =1 { } 01 ( cos! ' # cos! )R =% $ " sin ! "1 01 sin ! & T = R = R10 01 ( cos! ' Ce type de matrice 2x2 appartient au groupe spécial orthogonal d’ordre 2 noté SO(2) 08/10/12 [email protected] 5 1. Positionnement 1.1. Rotations : le cas 2D Changement de repère : ! y1 1 P # #" y xP $ 0 & 1 y P &% 1 x1 1 yP 1 xP ! ! 1 P# #" xP $ & 1 y P &% ! 0 P# #" x P = 1 x P cos' ( 1 y P sin ' $ & 0 1 1 y P = x P sin ' + y P cos' &% 1 0 ) 0 P = R01 1 P x0 08/10/12 [email protected] 6 1. Positionnement 1.1. Rotations : le cas 2D 0 Opérateur de rotation : y0 ! v! ! v ! ! 1! 0! 0! v ! = v = R10 v = R" v !" x0 y1 x1 08/10/12 [email protected] 7 1. Positionnement 1.1. Rotations : le cas 2D Composition : ◦ Transformation de coordonnées : 1 P = R12 2 P 0 P = R01 1 P R1 ! P = R01 R12 P = R02 P 0 2 2 R2 R0 P ◦ Opérateur de rotation : ! ! ! ! v1 = R! v0 v2 = R! v1 1 2 ! ! " v2 = R! R! v0 2 ! v2 1 08/10/12 [email protected] !2 ! !1 v1 ! v0 R0 8 1. Positionnement 1.1. Rotations : généralisation à la 3D Positionnement : R01 = ( 0 x1 0 y1 det { R01 } = 1 0 z1 y0 ) y1 x1 R0 !1 R01 = RT01 = R10 R01 "SO(3) R1 x0 z1 z0 08/10/12 [email protected] 9 1. Positionnement 1.1. Rotations : généralisation à la 3D Changement de repère : 0 y0 P = R01 1 P y1 P R0 Composition : 1 P = R12 2 P 0 P = R01 P 1 x1 R1 x0 z1 z0 ! 0 P = R01 R12 2 P = R02 2 P 08/10/12 [email protected] 10 1. Positionnement 1.1. Rotations : généralisation à la 3D Opérateur de rotation : y0 y1 ! ◦ Ex : rotation de v autour de y : cos! R( y ,! ) 0 0 # c! = R10 = %% 0 $ "s! sin ! 0 s! 1 0 0 c! & ( ( ' z1 !" ! v x0 R0 x1 R 1 z0 v ) = R10 0 v = R( y ,! ) 0 v 0 ◦ Autres rotations élémentaires : R( x ,! ) 0 # 1 0 = % 0 c! % $ 0 s! 0 "s! c! & ( ( ' R( z ,! ) 0 # c! = % s! % $ 0 08/10/12 "s! c! 0 0 0 1 & ( ( ' [email protected] 11 1. Positionnement 1.1. Rotations : généralisation à la 3D Opérateur de rotation : cas général ◦ Rotation de v autour de h d’un angle θ : ◦ Méthode : Transformer v par une rotation qui amène h sur x z Faire la rotation de θ autour de x Faire la transformation inverse pour ramener h à sa position initiale x ! ! ! h ! ! v y R( h,! ) = R( x," ) R( y, # ) R( x,! ) R( y,$# ) R( x,$" ) 08/10/12 [email protected] 12 1. Positionnement 1.1. Rotations : généralisation à la 3D Avec : R( h,! ) Et : # h2 v + c! x ! % = % hx hy v! + hz s! % % hx hz v! " hy s! $ v! = 1" c! hx hy v! " hz s! hy2 v! + c! hy hz v! + hx s! h = # hx %$ 08/10/12 hy hz & (' hx hz v! + hy s! & ( hy hz v! " hx s! ( ( hz2 v! + c! ( ' T [email protected] 13 1. Positionnement 1.1. Rotations : résumé Propriétés : ◦ Ortho-normalité : La norme des vecteurs lignes et des vecteurs colonne est égale à 1. Les vecteurs ligne et les vecteurs colonne sont orthogonaux deux à deux. ◦ ◦ ◦ ◦ L’inverse est égale à la transposée. Le déterminant est égal à 1. R02 = R01 R12 R( h ,! )( h ,! ) = R( h ,! ) R( h ,! ) 1 1 2 2 2 2 1 1 Pas commutatif : R01 R12 ! R12 R01 08/10/12 [email protected] 14 1. Positionnement 1.2. Représentations de la rotation : introduction Soit R, une matrice de rotation : ◦ R comprend 9 termes ◦ Il y a 6 relations indépendantes entre ces termes : rx ! ry = 0 rx ! rz = 0 ry ! rz = 0 ! r r r13 11 12 # R = # r21 r22 r23 # #" r31 r32 r33 = !# rx ry rz " $ & & & &% $ &% rx = ry = rz = 1 ◦ Il n’y a donc que 3 termes indépendants. 08/10/12 [email protected] 15 1. Positionnement 1.2. Représentations de la rotation : angle/axe Paramétrage angle/axe : Toute rotation peut être représentée par un axe de rotation défini par un vecteur unitaire h autour duquel on effectue une rotation θ. ! h ! ) r "r + 32 23 # r11 + r22 + r33 " 1& 1 + r13 " r31 ! = arccos % h= ( 2 2sin ! + r " r $ ' + 21 12 + * Le vecteur θh définit entièrement la rotation. 08/10/12 [email protected] , . . . . . - 16 1. Positionnement 1.2. Représentations de la rotation : quaternions La rotation est parfois représentée par un quaternion unitaire : T ◦ Soit : ! h = ! " hx hy hz % $# '& ◦ Le quaternion p équivalent est défini par : p = ! p0 " ! % & cos 2 " p1 p2 % sin hx 2 T p3 # = $ % sin hy 2 # % sin hz ' 2 $ T ◦ Avec : p = 1 08/10/12 [email protected] 17 1. Positionnement 1.2. Représentations de la rotation : angle/axe, exercice Trouver le paramétrage angle/axe de la rotation entre les repères R0 et R1 : y0 y1 R0 z1 z0 08/10/12 x0 45° x1 R1 [email protected] 18 1. Positionnement 1.2. Représentations de la rotation : roulis, tangage, lacet Définition : ◦ 3 rotation successives autour des axes x (roulis, roll), y (tangage, pitch), et z (lacet, yaw) de R0. R01 = R( z ,! ) R( y,! ) R( x,! l t r) ◦ Il existe des définitions alternatives des noms des axes et/ou de la rotation associée. 08/10/12 z !l x !r [email protected] !t y 19 1. Positionnement 1.2. Représentations de la rotation : roulis, tangage, lacet Matrice de rotation : # c! "s! 0 & # c! 0 s! t & # 1 0 l l t % (% (% R01 = % s! l c! l 0 ( % 0 1 0 ( % 0 c! r % ( % "s! 0 c! ( % 0 s! 0 1 '$ t t '$ r $ 0 # c! c! "s! c! + c! s! s! s! l s! r + c! l s! t c! r l t l r l t r % = % s! l c! t c! l c! r + s! l s! t s! r "c! l s! r + s! l s! t c! r % c! t s! r c! t c! r %$ "s! t 08/10/12 [email protected] 0 & ( "s! r ( c! r ( ' & ( ( ( (' 20 1. Positionnement 1.2. Représentations de la rotation : roulis, tangage, lacet Transformation inverse : ◦ Trouver θr , θt , θl à partir des rij de la matrice R01 ◦ On définit ! t = arcsin("r31 ) ◦ D’où : ! r r # 11 12 R01 = # r21 r22 # #" r31 r32 r13 $ & r23 & & r33 & % ( " r21 r11 % * ! l = arctan 2 ; ' $ # c! t c! t & * pour cos! t , 0 ) " r32 r33 % * * ! r = arctan 2 $# c! ; c! '& t t + 08/10/12 [email protected] 21 1. Positionnement 1.2. Représentations de la rotation : roulis, tangage, lacet z " Cas singulier : ! t = ± 2 y! ◦ Roulis et lacet ont le même effet. !r ◦ Gimbal lock en anglais. y !r y !! x y !!! ! l %'r12 = sin(! r $ ! l ) r13 = cos(! r $ ! l ) x !! " !t = # & 2 '(r22 = cos(! l $ ! r ) r23 = sin(! l $ ! r ) On choisit ! l = 0 # ! r = arctan 2 ( r12 ,r22 ) !t = $ " : ! l = 0 # ! r = $ arctan 2 ( r12 ,r22 ) 2 08/10/12 [email protected] 22 1. Positionnement 1.2. Représentations de la rotation : angles d’Euler Principe : ◦ Faire trois rotations successives d’angle α, β, γ autour des axes z, y et x du repère courant. ya yb y0 y1 ! ! xb x1 xa x0 ! z0 z a zb z 1 08/10/12 [email protected] 23 1. Positionnement 1.2. Représentations de la rotation : angles d’Euler Matrice de rotation : # c! "s! R01 = R0a Rab Rb1 avec R0a = %% s! c! %$ 0 0 # 1 0 # c) 0 s) & 0 % % ( Rab = % 0 1 0 ( Rb1 = % 0 c* "s* % 0 s* c* % "s) 0 c) ( $ ' $ # c! c) % d'où : R01 = % s! c) % "s) $ c! s) s* " s! c* s! s) s* + c! c* c) s* 08/10/12 0 0 1 & ( ( (' & ( ( ( ' c! s) c* " s! s* & ( s! s) c* " c! s* ( ( c) c* ' [email protected] 24 1. Positionnement 1.2. Représentations de la rotation : angles d’Euler ! r r # 11 12 R01 = # r21 r22 # #" r31 r32 0 pour ! / ± 2 Transformation inverse : ! = arcsin("r31 ) $ r21 r11 ' # = arctan 2 & ; % cos ! cos ! )( $ r32 r33 ' * = arctan 2 & ; % cos ! cos ! )( + , . r13 $ & r23 & & r33 & % 0 ! = : # = 0 * = arctan 2(r12 ,r22 ) 2 0 ! = " : # = 0 * = " arctan 2(r12 ,r22 ) 2 08/10/12 [email protected] 25 1. Positionnement 1.3. Attitude : définition L’attitude du repère R1 par rapport au repère R0 est définie par la translation des !!!!" origines et par la rotation R01 : (O0O1 , R01 ) P O1 O0 08/10/12 [email protected] 26 1. Positionnement 1.3. Attitude : représentation Une attitude p (pose en anglais) est définie de manière minimale par 6 paramètres : 3 pour la translation et 3 pour la rotation : $ & & & & p=& & & & & &% Tx Ty Tz ! " # ' ) ) ) ) ) ) ) ) ) )( 3 coordonnées de translation 3 coordonnées de rotation : Angles d’Euler, angle/axe, … 08/10/12 [email protected] 27 1. Positionnement 1.3. Attitude : représentation Une attitude peut aussi être représentée par une matrice homogène. La matrice homogène est aussi : Un opérateur de changement de repère Un opérateur de transformation rigide ! M 01 = # # #" R01 0 0 0 0 $ O O ( 0 1) & & 1 &% 08/10/12 Matrice homogène de transformation entre le repère R0 et le repère R1 [email protected] 28 1. Positionnement 1.4. Matrices homogènes : changement de repère On a : 0 P= 0 1 O O + R ( 0 1 ) 01 P P O1 D’où : O0 0 ! $ 1 ! P $ # R01 O0O1 ) & ! P $ ') ( # &=# # &( & 1 % )* 1 " 1 % # 0 0 0 " "!####"####$&% 0 Coordonnées homogènes M 01 08/10/12 [email protected] 29 1. Positionnement 1.4. Matrices homogènes : transformation rigide La matrice homogène est un opérateur de transformation rigide Un opérateur de transformation rigide appliqué à tous les points d’un solide ne déforme pas ce solide La matrice homogène applique une transformation équivalente à la composition d’une translation et d’une rotation 08/10/12 [email protected] 30 1. Positionnement 1.4. Matrices homogènes : propriétés Composition : M 02 = M 01 M12 Inverse : Opérateur de changement de repère de coordonnées de points de R2 vers R0 ! RT ! R T $ (1 M=# &' M = # " 0 1 % " 0 ( RT T $ & 1 % Pas commutatif ! 08/10/12 [email protected] 31 1. Positionnement 1.4. Matrices homogènes : exercice x1 Soit le robot : ! = ! ( y0 , y1 ) " = ! ( y1 , x2 ) ! d d = translation suivant z0 x0 z1 z0 ! y1 y0 y2 z2 x2 Avec : a1 la distance entre l’origine de R0 et celle de R1 a2 la longueur du premier bras a3 la longueur du dernier bras Les angles sont nuls lorsque le bras est horizontal 08/10/12 [email protected] 32 1. Positionnement 1.4. Matrices homogènes : exercice Déterminer M01 , M12 puis M02 08/10/12 [email protected] 33 2. Cinématique 2.1.Vitesse d’un solide : introduction Soient : P R1 un repère lié à un solide O1 en mouvement par rapport à un repère R0 M01(t) la matrice homogène de transformation entre R0 et R1 en fonction du temps ! # #" ! 1P P(t) $ & = M 01 (t) # #" 1 1 &% ! R (t) T (t) 01 M 01 (t) = # 01 1 #" 0 0 R1 $ $ ! 0 P(t) ! 1P ! & = M! 01 (t) # &'# &% #" 1 &% #" 1 $ 0 ! = R! (t) 1 P + T! (t) & ' P(t) 01 01 &% Vitesse de translation R0 $ & &% (2.1) de O1 dans R0 08/10/12 [email protected] 34 2. Cinématique 2.1.Vitesse d’un solide : exemple Soient : P un point d’un solide lié à R1 en mouvement par rapport à R0 Le mouvement est la composition d’une translation verticale de vitesse v et d’une rotation d’axe y0 et de vitesse ω . Pour t=0 on a R1=R0 . 08/10/12 y1 z1 R1 y0 ! v z0 ! 1 $ # & 1 P=# 0 & x1 #" 0 &% R0 [email protected] x0 35 2. Cinématique 2.1.Vitesse d’un solide : exemple On a : # c(! t) 0 s(! t) & # 0 & % ( % ( R01 (t) = % 0 1 0 ( T01 (t) = % vt ( % "s! t 0 c! t ( %$ 0 (' $ ' D’où : # % 0 ! P(t) = % % $ # % =% % $ " c(" t) & # 1 (% 0 0 0 (% 0 !" c(" t) 0 !" s(" t) (' %$ 0 & # 0 & (+% ( v ( % ( (' %$ 0 (' !" s(" t) 0 # 0 !" s(" t) & ( 0 % ! v ) P(0) = ( % v %$ !" !" c(" t) (' 08/10/12 & ( ( (' [email protected] 36 2. Cinématique 2.2.Vecteur vitesse de rotation : définition C’est un vecteur dont l’axe coïncide avec l’axe de rotation, qui est dirigé suivant le « principe du tire-bouchon » et dont la norme est égale à la valeur de la vitesse angulaire. Note : Dans l’exemple précédent, le vecteur vitesse de rotation de R1 par rapport à R0 est dirigé suivant y0 et a pour norme ω. 08/10/12 [email protected] 37 2. Cinématique 2.2.Vecteur vitesse de rotation : application Application : ! ! Trouver la vitesse du point P lié au repère R1 qui ! tourne suivant un vecteur O P v vitesse de rotation Ω par R1 R0 rapport à R0 !!!" On a : v = ! ! OP !sin" !!!" Vitesse de P dans le De plus : v ! OP,! mouvement de R1 par rapport à R0 exprimé Et le sens de v est celui de dans R0 la règle des 3 doigts. !!!" D’où : v = ! ! OP 0 v01P = 0 ! ! 0 (OP ) (2.2) ( ) 08/10/12 [email protected] 38 2. Cinématique 2.3.Vecteur vitesse de rotation : matrice anti-symétrique On définit : Les vecteurs : a = !# ax a y az $& " % La matrice AS(.) : " 0 $ AS(a) = $ az $ $ !a y # D’où : !az 0 ax " a v !a v z y $ y z AS(a)v = $ az vx ! ax vz $ $ ax v y ! a y v x # T v = !# vx " vy vz $ &% T ay % ' !ax ' ' 0 ' & % ' ' = a ( v ) 0 v01P = AS( 0 !)R01 1 P (2.3) ' ' & 08/10/12 [email protected] 39 2. Cinématique 2.3. Mouvement rigide Le repère R1 se déplace par rapport à R0 en translation et en rotation : on parle de mouvement rigide. Eq. (2.3) devient : 0 O v01P = AS( 0 !)R01 1 P + 0 v011 (2.4) Vitesse de l’origine de R1 Si on compare (2.4) et (2.1) : d AS( !)R01 = R01 dt 0 08/10/12 [email protected] 40 2. Cinématique 2.3. Mouvement rigide : exercice Mouvement de R1 par rapport à R0 : R0 et R1 ont leur origine commune, Les angles de roulis et tangage évoluent selon ωt L’angle de lacet est constant et nul Question : Déterminer les coordonnées du vecteur vitesse de rotation de R1 par rapport à R0 On a (définition de RTL) : 08/10/12 [email protected] 41 2. Cinématique 2.3. Mouvement rigide : exercice D’où : Et : De plus : D’où : 08/10/12 [email protected] 42 2. Cinématique 2.4. Torseur cinématique En robotique, on a l’habitude de définir le torseur cinématique de la manière suivante : ! 0 v O1 0 C 01 = # 0 01 # ! 01 " $ & & % Vecteur 6x1 des coordonnées de vitesse linéaire et angulaire de R1 par rapport à R0 exprimées dans R0 08/10/12 [email protected] 43 2. Cinématique 2.5. Composition des vitesses Soient : 0 C 01 le torseur cinématique de R1 par rapport à R0 1 C12 le torseur cinématique de R2 par rapport à R1 Loi de composition : ! 0! + 0! = 0! 01 12 02 0 C 02 = # 0 O 0 O 0 O # v 2+ v 2= v 2 01 12 02 " $ & & % Vitesse de O2 dans le mouvement de 1 par rapport à 0 en figeant le mouvement de 2 par rapport à 1. 08/10/12 [email protected] 44