• Aucun résultat trouvé

UPJV, Département EEA M1 EEAII

N/A
N/A
Protected

Academic year: 2022

Partager "UPJV, Département EEA M1 EEAII "

Copied!
33
0
0

Texte intégral

(1)

UPJV, Département EEA M1 EEAII

Parcours ViRob

Fabio MORBIDI

Laboratoire MIS

Équipe Perception et Robotique E-mail: fabio.morbidi@u-picardie.fr

Année Universitaire 2015/2016

Mardi 9h00-12h00, Mercredi 13h30-16h30, Salle 8

(2)

Plan du cours

Chapitre 1 : Introduction

1.1 Définitions

1.2 Constituants d’un robot 1.3 Classification des robots 1.4 Caractéristiques d’un robot 1.5 Générations de robots

1.6 Programmation des robots 1.7 Utilisation des robots

Chapitre 2 : Fondements Théoriques

2.1 Positionnement

•  Rotation et représentations de la rotation

•  Attitude et matrices homogènes

(3)

Plan du cours

Chapitre 3 : Modélisation d’un Robot

2.2 Cinématique

•  Vitesse d’un solide

•  Vecteur vitesse de rotation

•  Mouvement rigide

•  Torseur cinématique

3.1 Modèle géométrique

•  Convention de Denavit-Hartenberg

•  Modèle géométrique direct

•  Modèle géométrique inverse 3.2 Modèle cinématique

•  Modèle cinématique direct

•  Modèle cinématique inverse 3.3 Modèle dynamique

•  Formulation de Lagrange

(4)

scalaires (nombres réels)

Notation

0 n×m R n×m I n R n×n

vecteur colonne de dimension

matrice avec lignes et colonnes

matrice identité matrice de zéros

norme euclidienne du vecteur

n × n n × m n

n

a, λ, M R

A R n×m

A T R m×n transposée de la matrice

produit scalaire des vecteurs x, y R n x R n

x =

x, x

déterminant et inverse de

x R n A R n×m

m

x × y produit vectoriel des vecteurs x, y R n det(A), A −1 A R n×n

x, y = x T y

, x =

x

1

.. . x

n

(5)

•  Un manipulateur peut être représenté comme une chaîne cinématique de segments reliés par l'intermédiaire d'articulations rotoïdes ou prismatiques

•  Le mouvement résultant de la structure est obtenu par composition des mouvements élémentaires de chaque segment par rapport au précédent

•  Afin de manipuler un objet dans l'espace, il est nécessaire de décrire la position et l'orientation (pose) de l'effecteur

base

effecteur

x

e

y

e

z

e

Oe

θ

1

θ

2

θ

4

d

3

Objectif final: Exprimer la pose de l’effecteur en fonction des variables des articulations, par rapport à un repère donné (ex. le repère de la base)

Manipulateur générique

Motivation

?

(6)

2.1 Positionnement

La pose d'un solide (ou corps rigide) dans l'espace 3-D peut être complètement décrite par 6 paramètres indépendants:

•  3 paramètres indépendants définissent la position

d'un point, noté O’, du solide dans le repère fixe O- xyz

(ex. coordonnées cartésiennes, cylindriques ou sphériques)

•  3 paramètres indépendants déterminent l'orientation du solide autour du point O’ (ex. angles d’Euler)

O

O

y

z

z

y x

x

solide

repère fixe

(7)

solide

La position du point O’ du solide par rapport au repère fixe O- xyz

s’exprime par l’équation:

o = o x x + o y y + o z z

où sont les vecteurs unitaires (la norme est 1) des axes du repère O- xyz et sont le composants du vecteur le long de chacun des trois axes

x, y, z

o

x

, o

y

, o

z

o

R

3

repère fixe

(8)

• 

Afin de décrire l'orientation du solide, considérons un repère attaché au corps et exprimons ses vecteurs unitaires par rapport au repère O

-

xyz

•  Soit O’- x’y’z’ un tel repère avec origine O’ et soient les vecteurs unitaires des axes

•  Ces vecteurs sont exprimés par rapport au repère O- xyz par les équations:

x

, y

, z

x = x x x + x y y + x z z y = y x x + y y y + y z z z = z x x + z y y + z z z

•  Sous forme compacte, les vecteurs unitaires qui décrivent

l'orientation du solide par rapport à O- xyz, peuvent être combinés dans la matrice 3 3:

x

, y

, z

R = [x

y

z

] =

⎢ ⎣

x

x

y

x

z

x

x

y

y

y

z

y

x

z

y

z

z

z

⎥ ⎦ =

⎢ ⎣

x

T

x y

T

x z

T

x x

T

y y

T

y z

T

y x

T

z y

T

z z

T

z

⎥ ⎦

qui est appelée matrice de rotation

(9)

Propriétés des matrices de rotation

•  Les colonnes d’une matrice de rotation sont orthogonales à deux à deux:

La norme des colonnes d’une matrice de rotation est égale à 1:

En conséquence, est une matrice orthogonale, c’est-à-dire:

x

T

y

= 0, y

T

z

= 0, z

T

x

= 0

x

T

x

= 1, y

T

y

= 1, z

T

z

= 1 R

R

T

R = I

3

Si on multiplie à droite chaque côté de l’équation précédente par on trouve que:

c’est-à-dire, la transposée d’une matrice de rotation est égale à son inverse

R

−1

R

T

= R

−1

•  Si le repère est direct (on use la « règle de la main droite »): det(R) = 1 SO(n) {R R

n×n

: R

T

R = I

n

, det(R) = 1} Groupe spécial

orthogonal de

dimension n

(10)

Rotations élémentaires

•  Considérons les rotations qu’on peut obtenir à partir de rotations élémentaires autour des axes x , y , z

•  Ces rotations sont positives s’ils sont faites autour des axes relatifs dans le sens anti-horaire (dans le sens contraire des aiguilles d'une montre)

Exemple : le repère O- xyz est pivoté d’un angle α autour de l’axe z

et O- x’y’z’ est le repère qui résulte de cette rotation

(11)

Rotations élémentaires

•  Les vecteurs unitaires de

O-

x’y’z’ peuvent être exprimés par rapport au repère O- xyz comme:

x

=

⎢ ⎣

cos α sin α

0

⎥ ⎦ , y

=

⎢ ⎣

sin α cos α

0

⎥ ⎦ , z

=

⎢ ⎣ 0 0 1

⎥ ⎦

•  La matrice de rotation de

O-

x’y’z’ par rapport à O- xyz engendrée est donc:

R

z

(α) =

⎢ ⎣

cos α sin α 0 sin α cos α 0

0 0 1

⎥ ⎦

De la même façon, on peut trouver la matrice de rotation autour de

l’axe y d’un angle et la matrice de rotation autour de l’axe x d’un angle

Remarque: Ces matrices seront très utiles pour décrire des rotations dans l’espace 3D autour d’axes arbitraires

β γ

(12)

Rotations élémentaires: sommaire

R

z

(α) =

⎢ ⎣

cos α sin α 0 sin α cos α 0

0 0 1

⎥ ⎦

Matrice de rotation autour de l’axe x d’un angle

Remarque:

Pour les rotations élémentaires, les propriétés suivantes sont vérifiées:

R

x

(γ ) =

⎢ ⎣

1 0 0

0 cos γ sin γ 0 sin γ cos γ

⎥ ⎦

R

y

(β ) =

⎢ ⎣

cos β 0 sin β

0 1 0

sin β 0 cos β

⎥ ⎦ Matrice de rotation autour de l’axe y d’un angle

Matrice de rotation autour de l’axe z d’un angle

γ

β

α

R

x

(−γ ) = R

Tx

(γ), R

y

(−β ) = R

Ty

(β ), R

z

(−α) = R

Tz

(α)

(13)

Représentation d’un vecteur

Hypothèse simplificatrice: l’origine du repère du solide coïncide avec l'origine du repère fixe. Donc

On peut représenter le point 3D P comme:

p =

⎢ ⎣ p

x

p

y

p

z

⎥ ⎦ par rapport à O- xyz

par rapport à O- x’y’z’

et

p

=

⎢ ⎣ p

x

p

y

p

z

⎥ ⎦

o

= 0

3×1

= [0, 0, 0]

T

(14)

Représentation d’un vecteur

Mais cela signifie que (rappel les équations précédentes):

représente la matrice de transformation qui permet d’exprimer les coordonnées du point P dans le repère

O-

xyz , en function des coordonnées du même point dans le repère

O-

x’y’z’

Mais et sont deux représentations du même point P, donc p p

p = R p

est une matrice orthogonale. Donc la transformation inverse est simplement: R

p = R T p

R

p = p

x

x

+ p

y

y

+ p

z

z

= x

y

z

p

(15)

Représentation d’un vecteur

Exemple:

Deux repères avec la même origine et une rotation relative d’un angle α

autour de l’axe z

p p , : vecteurs des coordonnées

du point P dans les

repères O- xyz et O- x’y’z’

Remarque:

La matrice représente non seulement l'orientation d'un repère par rapport à un autre, mais elle décrit également la transformation d'un vecteur dans un repère en un autre avec la même origine

p

x

= p

x

cos α p

y

sin α p

y

= p

x

sin α + p

y

cos α p

z

= p

z

R

z

(α)

On trouve facilement que:

(16)

Composition de matrices de rotation

Problème: comment composer plusieurs rotations ?

Considérons trois repères O

-

x

0

y

0

z

0

,

O-x1 y1 z1

,

O-x2 y2z2

avec la même origine O coordonnées d’un point P dans les trois repères

p

0

, p

1

, p

2

R

3

:

O-x

0

y

0

z

0

O-x

1

y

1

z

1

O-x

2

y

2

z

2

O

P

(17)

Composition de matrices de rotation

Soit la matrice de rotation du repère R

ji

par rapport au repère

Donc

De même, on obtient:

p 1 = R 1 2 p 2

p 0 = R 0 1 p 1 p 0 = R 0 2 p 2

Mais alors:

R 0 2 = R 0 1 R 1 2

i j

(18)

Composition de matrices de rotation

Considérons un repère initialement aligné avec

O-x0 y0 z0

La rotation définie par peut être interprétée comme obtenue en deux étapes:

1.  Tourne le repère avec pour l’aligner avec O-x

1

y

1

z

1

2.  Tourne le repère, maintenant aligné avec O-x

1

y

1

z

1

, en utilisant pour l’aligner avec O-x

2

y

2

z

2

R

02

R

01

R

12

Remarque:

•  La rotation d'ensemble peut être exprimée comme une séquence de rotations partielles

•  Chaque rotation est définie par rapport à la précédente

•  Le repère par rapport à lequel la rotation se produit est appelé repère courant

•  La composition de rotations successives est obtenue par multiplication à droite des matrices de rotation en suivant l'ordre donné des rotations

•  Avec notre notation, on a que:

R

ji

= (R

ij

)

−1

= (R

ij

)

T

(19)

Composition de matrices de rotation

Remarque:

•  Les rotations successives peuvent aussi être specifiées toujours par rapport au repère initiale

•  On dit donc que les rotations sont faites par rapport au repère fixe

•  La composition de rotations successives est obtenue par multiplication à gauche des singles matrices de rotation en suivant l’ordre donné des

matrices de rotation

Problème de base: le produit matriciel n’est pas commutatif !

•  Deux rotations, en général, ne commutent pas et la composition dépend de l’ordre des singles rotations, à savoir:

R

01

R

12

= R

12

R

01

(20)

Composition de matrices de rotation

Exemple:

R

x

(π/4) = ,

⎢ ⎣

1 0 0

0

2/2 2/2 0

2/2 2/2

⎥ ⎦ R

y

(π/6) =

⎢ ⎣

3/2 0 1/2

0 1 0

−1/2 0 3/2

⎥ ⎦

R

y

(π/6) R

x

(π/4) =

⎢ ⎣

3/2

2/4 2/4

0

2/2 2/2

−1/2

6/4 6/4

⎥ ⎦

R

x

(π/4) R

y

(π/6) =

⎢ ⎣

3/2 0 1/2

2/4

2/2 6/4

2/4

2/2 6/4

⎥ ⎦

(21)

Composition de matrices de rotation

•  Rotations successives d'un objet autour des axes du repère courant

a)

b)

=

(22)

Composition de matrices de rotation

•  Rotations successives d'un objet autour des axes du repère fixe

a)

b)

=

(23)

Représentations de la rotation: introduction

•  Les matrices de rotation fournissent une description redondante de l’orientation d’un corps

•  En effet, la matrice de rotation comprend 9 éléments:

•  Mais il y a 6 relations indépendantes entre ces éléments (contraintes de orthogonalité et de normalité des colonnes)

R

R =

⎢ ⎣

r

11

r

12

r

13

r

21

r

22

r

23

r

31

r

32

r

33

⎥ ⎦

r

11

r

12

+ r

21

r

22

+ r

31

r

32

= 0 r

11

r

13

+ r

21

r

23

+ r

31

r

33

= 0 r

12

r

13

+ r

21

r

23

+ r

31

r

33

= 0

r

112

+ r

212

+ r

312

= 1 r

122

+ r

222

+ r

322

= 1 r

132

+ r

232

+ r

332

= 1

Conclusion: 3 paramètres sont suffisantes pour décrire l'orientation d'un corps

Une représentation de l'orientation en fonction de 3 paramètres indépendants

est dite représentation minimale

(24)

Représentations de la rotation: introduction

•  Une représentation minimale de l’orientation peut être obtenue en utilisant un ensemble de trois angles

•  Une matrice de rotation générique peut être obtenue en composant une séquence opportune de 3 rotations élémentaires. Attention: il faut garantir que deux rotations successives ne sont pas faites autour d’axes parallèles

•  Ca veut dire que 12 ensembles différentes d’angles sont admissibles parmi les 3

3

= 27 combinaisons possibles

•  Chaque ensemble représente une triplet d’angles d’Euler φ = [ϕ, θ, ψ]

T

Deux triplets d’angles d’Euler très utilisées sont:

1.  Les angles ZYZ

2.  Les angles ZYX ou roulis-tangage-lacet (roll-pitch-yaw, en anglais)

Leonhard Euler (1707–1783)

(25)

Représentation roulis-tangage-lacet

•  Représentation de l'orientation utilisée en aéronautique pour décrire l’attitude d’un avion

•  Les angles représentent des rotations définies dans un repère fixe attaché au centre de masse de l’avion φ = [ϕ, θ, ψ ]

T

x

y z

lacet (yaw)

roulis (roll) tangage

(pitch)

θ ϕ

ψ

(26)

La rotation décrite par les angles de roulis, tangage et lacet est obtenue comme composition de 3 rotations élémentaires:

• Tourner le repère d’un angle autour de l’axe x (lacet): rotation définie par

• Tourner le repère d’un angle autour de l’axe y (tangage): rotation définie par

• Tourner le repère d’un angle autour de l’axe z (roulis): rotation définie par

La rotation finale est obtenue en composant les rotations par rapport au repère fixe, et peut être calculée en multipliant à gauche les matrices de rotation élémentaires:

Représentation roulis-tangage-lacet

ψ

θ

R

z

(ϕ) ϕ R

y

(θ) R

x

(ψ)

R(φ) = R

z

(ϕ) R

y

(θ) R

x

(ψ ) =

⎢ ⎣

c

ϕ

c

θ

c

ϕ

s

θ

s

ψ

s

ϕ

c

ψ

c

ϕ

s

θ

c

ψ

+ s

ϕ

s

ψ

s

ϕ

c

θ

s

ϕ

s

θ

s

ψ

+ c

ϕ

c

ψ

s

ϕ

s

θ

c

ψ

c

ϕ

s

ψ

−s

θ

c

θ

s

ψ

c

θ

c

ψ

⎥ ⎦

où, pour plus de simplicité: c

ϕ

= cos ϕ, s

θ

= sin θ

(27)

Problème inverse: determiner les angles de roulis, tangage et lacet qui correspondent à une matrice de rotation donnée:

Représentation roulis-tangage-lacet

R =

⎢ ⎣

r

11

r

12

r

13

r

21

r

22

r

23

r

31

r

32

r

33

⎥ ⎦

Si on compare cette expression avec , on trouve que la solution, pour , est: R(φ)

ϕ = Atan2(r

21

, r

11

) θ = Atan2

r

31

,

r

322

+ r

332

ψ = Atan2(r

32

, r

33

)

ϕ = Atan2(−r

21

, −r

11

) θ = Atan2

r

31

,

r

322

+ r

233

ψ = Atan2(−r

32

, −r

33

)

L’autre solution équivalente pour , est:

θ (−π/2, π/2)

θ (π/2, 3π/2)

R

(28)

Remarque 1:

•  Si les solutions précédentes sont dégénerés: dans ce cas on peut seulement déterminer la somme ou difference de et

•  Les configurations qui correspondent aux angles caractérisent les singularities de représentation des angles d’Euler

Représentation roulis-tangage-lacet

•  est la fonction arctangente à 2 arguments

•  calcule l’arctangente du rapport y/x mais elle utilise le signe des arguments pour determiner le bon quadrant de l’angle Remarque 2:

cos θ = 0

ψ ϕ

θ = ± π/2

x y

x’

y’

A

B

… angle A ou B ?

Atan2(y, x) =

⎧ ⎪

⎪ ⎪

⎪ ⎪

⎪ ⎪

⎪ ⎪

⎪ ⎪

⎪ ⎪

⎪ ⎪

⎪ ⎪

⎪ ⎩

arctan(y/x) x > 0

arctan(y/x) + π x 0, x < 0 arctan(y/x) π y < 0, x < 0

+π/2 y > 0, x = 0

−π/2 y < 0, x = 0

non defini y = 0, x = 0 arctan(y/x) = arctan(y

/x

)

Atan2(y, x) Atan2(y, x)

y 0

(29)

Représentation angle/axe

•  Une représentation non minimale de l’orientation peut être obtenue en utilisant 4 parametrès qui expriment une rotation d’un angle autour d’un axe

générique dans l’espace 3D

•  Cette représentation est utile, par exemple, pour planifier la trajectoire de l’effecteur d’un manipulateur

θ

x

y z

r

O

θ Vecteur unitaire ( ) de l’axe de rotation dans le repère O- x y z

L’angle est considéré comme positif θ

si la rotation autour de l’axe r est faite dans le sens anti-horaire

r = 1

r = [r x , r y , r z ] T

(30)

Représentation angle/axe

Proprieté R(θ, r) =

⎢ ⎣

r

x2

(1 c

θ

) + c

θ

r

x

r

y

(1 c

θ

) r

z

s

θ

r

x

r

z

(1 c

θ

) + r

y

s

θ

r

x

r

y

(1 c

θ

) + r

z

s

θ

r

y2

(1 c

θ

) + c

θ

r

y

r

z

(1 c

θ

) r

x

s

θ

r

x

r

z

(1 c

θ

) r

y

s

θ

r

y

r

z

(1 c

θ

) + r

x

s

θ

r

z2

(1 c

θ

) + c

θ

⎥ ⎦

•  Une rotation d’un angle autour de l’axe ne peut pas être distinguée d’un rotation d’un angle autour de l’axe

•  La représentation angle/axe n’est pas unique !

Matrice de rotation d’un angle autour de l’axe r (à nouveau, pour plus de simplicité ) θ

R(−θ, −r) = R(θ, r)

−θ −r

r θ

, s

θ

= sin θ

c

θ

= cos θ

(31)

Représentation angle/axe

Problème inverse: determiner l’angle et l’axe qui correspondent à une matrice de rotation donnée:

R =

⎢ ⎣

r

11

r

12

r

13

r

21

r

22

r

23

r

31

r

32

r

33

⎥ ⎦

•  Si on obtient:

θ = arccos

r

11

+ r

22

+ r

33

1 2

r = 1 2 sin θ

⎢ ⎣

r

32

r

23

r

13

r

31

r

21

r

12

⎥ ⎦ sin θ = 0

angle

axe R

•  Si , les équations précédentes ne sont pas définies

Pour resoudre le problème inverse, il faut travailler avec l’expression

spécifique de la matrice R et trouver des formules de resolution pour les deux cas et

Si (zéro rotation), le vecteur unitaire r est arbitraire (singularité)

sin θ = 0

θ = 0 θ = π

θ = 0

(32)

Quaternions

•  Les inconvénients de la représentation angle/axe peuvent être surmontés par une autre représentation à 4 parametrès, le quaternion unitaire, defini par:

Q = {η, }

η = cos(θ/2)

= [

x

,

y

,

z

]

T

= sin(θ/2) r

avec la contrainte

η

2

+

2x

+

2y

+

2z

= 1

dont le nom de quaternion unitaire

•  Une rotation de autour de donne le même quaternion que celui

associé à une rotation de autour de . Le problème de non-unicité de la représentation angle/axe est réglé

−θ θ

−r r

: partie scalaire du quaternion

: partie vectorielle du quaternion

(33)

•  Matrice de rotation associée à un quaternion unitaire donné:

William R. Hamilton (1806–1865)

i

2

= j

2

= k

2

= ijk = −1

Broom Bridge, Royal Canal, Dublin

•  Il y a également des formules pour le problème inverse.

R(η, ) =

⎢ ⎣

2(η

2

+

2x

) 1 2(

x

y

η

z

) 2(

x

z

+ η

y

) 2(

x

y

+ η

x

) 2(η

2

+

2y

) 1 2(

y

z

η

x

) 2(

x

z

η

y

) 2(

y

z

+ η

x

) 2(η

2

+

2z

) 1

⎥ ⎦ Q = {η, }

Quaternions

(16 October 1843)

Références

Documents relatifs

◦  Très difficile: les quatre roues suédoises doivent avoir exactement la même vitesse pour que le robot suive une ligne droite. Commandabilité

•  Chaque fois que une charge utile plus importante est demandée, la structure mécanique nécessitera d’une plus grande rigidité pour maintenir une précision de

•  [Rotation] Composants des vecteurs unitaires du repère attaché au solide avec origine O’, par rapport au repère fixe (l’attitude du solide)...

•  Les informations proprioceptives (issues du S.M.A.) sont généralement définies dans des repères liés aux différents segments du robot. •  La position à atteindre

•  Elle peut être mise en échec chaque fois que les points de la trajectoire engendrée ne sont pas dans le volume accessible du robot ou chaque fois que la trajectoire impose

Remarque: les configurations d’un robot qui sont singulières pour le modèle géométrique inverse les sont aussi pour le jacobien. 2)  Les singularités à l’intérieur

Statistiques annuelles de l’IFR (pour les robots de service et les robots industriels).. World Robotics 2016. •  Un autre secteur à forte croissance sera le secteur

La pose d'un solide (ou corps rigide) dans l'espace 3D peut être complètement décrite par 6 paramètres indépendants:. •  3 paramètres indépendants définissent