bases théoriques: modélisation et contrôle 2.1 cinématique/cinematicsbleuler 2.2...

40
Bases théoriques: modélisation et contrôle 2.1 Cinématique/Cinematics Bleuler 2.2 Jacobien/Jacobian Bouri 2.3 dynamique/Dynamics Bouri 2.4 Contrôle/Control Bouri

Upload: christia-dupin

Post on 03-Apr-2015

109 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Bases théoriques:modélisation et contrôle

2.1 Cinématique/Cinematics Bleuler2.2 Jacobien/Jacobian Bouri2.3 dynamique/DynamicsBouri2.4 Contrôle/Control Bouri

Page 2: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

2.1 Cinematics

• Generic task of industrial robot: Move an object (tool, workpiece)

• Therefore: Need to study cinematics, i.e. geometry of motion

• Velocities, accelerations later

• Forces (statics & dynamics) later

• Tâche "générique" du robot industriel: Déplacer un objet (outil ou pièce)

• Donc: Etude de la cinématique, i.e. géometrie des mouvements

• Forces, statique & dynamique plus tard

• Temps, vitesses, accélérations plus tard

Page 3: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

La cinématique peut représenter 80% de l'effortdans l'établissement du modèle d'un robot.

Elle seule peut facilement faire l'objet de coursou de livres entiers.

Ce chapitre 2.1 n’est qu'une introductionse limitant à l'essentiel.

• Cinematics may reach 80% of the effort to model a robot

• There are books and lectures on ro

• This is only an introduction to the bare essentials

Page 4: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Content

1. active & passive transformations2. Translations & rotations 2D around coord. origin3. Combination transl. & rot: Homogenous matrices4. 2D Rotations around any centerpoint5. 3D Rotations: Rot.-axis, quaternions6. Homogenous matrices7. Robot coordinates, direct cinematics p9

Variables robot, Modèle géométrique direct

8. Euler angles p13, p119. Inverse Cinematics Modèle géométrique inverse

Page 5: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

2.1.7 Variables robot / Robot Coordinates

Tout robot est controlé par des consignes angulaires ou linéaires envoyées aux actionneurs (moteurs).Ces angles ou positions sont les variables robots.Leur nombre n est le nombre de ddl du robot.

A robot is controlled by angular or linear setpoints.These values are sent to the actuators (motors).

These angular or linear values are called joint coordinates or joint variables

{ q1, q2, … qi, …. qn } ou/or { 1, 2, … i, …. n }.

Page 6: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Variables opérationellesOperational (or task) variables

La tâche du robot se décrit dans d’autres termes:

Position et orientation de l’outil, de l’objet à manipuler.

Pour un corps rigide, il sera nécessaire de spécifier six variables, correspondants aux six ddl d’un solide dans l’espace.

{x,y,z} = position d’un point du solide, p.ex. du centre.

Les trois paramètres restants peuvent être représenté par une grande variété de façons.

The robot task is defined in other terms:It is position and orientation of the tool or workpieceto be manipulated.

e.g. x,y,z of the tool center point, + Euler angles

Page 7: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Représentation de l’orientation / Variables for orientation

Parmi les plus communes: Angles autour de trois axes fixés au corps en mouvement.

Vous connaissez au moins une telle représentation:

Tangage, roulis, lacet sont liés aux axes d'un véhicule (avant, haut, directions latérales) (Roll–, Neig– und Gier–winkel) Fig. 13 p.13

Ces définitions peuvent se rapporter à l'observateur

Usually, orientation is defined as

rotation angles around axes fixed to the moving body:

Roll, Pitch, Yaw are used for vehicles, Euler angles for gyroscopes,

rectangular axes tied to approach direction for robots.

Page 8: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Wrist (Poignet) à 3 axes concurrents

5

4

6

Fig 10 p. 11

Page 9: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Poignet à 3 axes: Angles d’Euler

Gruber p. 209

5

4

6

Fig 10b) p. 114

5

y

x

6

Précession

nutation

rotation propre

zWrist

Page 10: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Modèle géométrique direct:(Direct) or Forward Cinematics:

Exprimer les variables opérationelles { x, y, z, }

en fonction des variables robots { q1, q2, … qi, …. qn }

Express the operationel (task level) variables { x, y, z, }

as function of the joint variables{ q1, q2, … qi, …. qn }

Page 11: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Organisation du chapitre 2.1 cinématique

1. Transformations actives et passives2. Translations et rotations 2D autour de l’origine3. Combinaison transl. & rot: Matrices homogènes4. Rotations 2D autour d’un point arbitraire5. Rotations 3D: Axe de rotation, quaternions6. Représentation homogène7. Variables robot, Modèle géométrique direct

robot coordinates, forward cinematics

8. Angles d’Euler9. Modèle géométrique inverse (Inverse

cinematics)

Page 12: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

2.1.1 Première difficulté / Conceptual difficulty:

Reférentiels multiples / Multiple reference frames

• Fixes (base du robot, table de travail, etc)

• En mouvement, donc solidaires au corps (élément du robot, poignet, outil, pièce,...)

• Fixed frame of reference (e.g. robot base, work table)

• Frame in motion, tied to a robot element such as wrist, tool, workpiece...

Page 13: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Cela mène à deux tâches de base:

1. Changement de position d'un objet dans unréférentiel fixe:Transformation active

2. Changement de référentiel d'un objet fixe:Transformation passive

(Gruber p.682)

Two basic tasks:

1) Change of position of an object in a fixed frame of reference« Active Transformation »

2) Change of frame of reference without motion of object:« Passive Transformation »

Page 14: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

2.1.2 Translation et rotations 2D autour de l'origine O

Translation & rotation in 2D around origine O

x

y

v1

2v

tP (avant)

P (après)

CC

Translation du point P de la position v1 à la position v2

v2 = v1 + t valid for any point of rigid body C

Transformation active:

Page 15: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

x

y

t

P

O2

Translation du référentiel O1 vers O2

v2 = v1 – t

Transformation passive:

O1

(avantbefore)

v1

v2

(aprèsafter)

Page 16: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Translation du Référentiel

O1 vers O2

v2 = v1 – t

Transf. active = inverse (passive):

x

y

t

P

O2 (après)

O1

v1

v2

x

yv1

2vt

P (avant)P (après)

CC

Translation du point P de

la position v1 à la position v2

v2 = v1 + t

(avant)

Active transformation is simply the mathematical inverse of passive transformation

Page 17: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Translation: Changement de position sans changement d’orientation

(tout les points changent de la même façon)

Rotation: Changement d’orientation,

il existe un point fixe (centre de rotation)*)

Translation: Change of position without change of orientation

Rotation: Change of orientation. There exists a fixed point (center of rotation)

*) dans le cas de 2 dimensions

Page 18: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Rotation (active) autour de O dans le plan

• Axe (z) : toujours perpendiculaire au plan

x

y

v1

v2

C (avant)

C (après)

O

v1

=

x1

y1

=

r cos ϕ

r sin ϕ

v2

=

x2

y2

=

r (cos ϕ + )

r (sin ϕ + )

(2)

P

P

Rotation axis always normal to the plane of motion

Page 19: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

In polar coordinates (r, ) this rotation is trivial.In cartesian coordinates, we need some trigonometry:

Pour passer directement de [x1,y1] à [x2,y2] en cordonnées cartésiennes, sans devoir calculer (r, ) à partir de [x1,y1], les théorèmes trigonométriques suivants sont nécessaires:

cos(a+b) = cos(a)cos(b) – sin(a)sin(b)

sin(a+b) = sin(a)cos(b) + cos(a)sin(b)

Page 20: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Appliquée aux sommes d'angles dans (2) donne:

v2 =x2

y2

⎣ ⎢

⎦ ⎥=

r cos(ϕ +ϑ )

r sin(ϕ +ϑ )

⎣ ⎢

⎦ ⎥=

r cosϕ cosϑ − r sinϕ sinϑ

r cosϕ sinϑ + r sinϕ cosϑ

⎣ ⎢

⎦ ⎥=

cosϑ

sinϑ

− sinϑ

cosϑ

⎣ ⎢

⎦ ⎥r cosϕ

r sinϕ

⎣ ⎢

⎦ ⎥

v2

= R

x1

y1

avec R =

cos

sin

− sin

cos

La matrice de rotation R contient l'angle . On l'appelle également Matrice des cosinus directeurs

Matrix of direction cosines, rotation matrix

Page 21: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Rotation around O

v 2 =cosϑ

sinϑ

−sinϑ

cosϑ

⎣ ⎢

⎦ ⎥v1

x

y

v1

v2

C (avant)

C (après)

O

P

P

v 2 = R v1

Page 22: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Exercices

1a) R(= 0) = ?

1b) R(–) = ?

1c) R()–1 = ?

1d) v3 = R(2)v2 = R(2)R(1)v1 = R(?)v1 ?

1e) R(2)R(1) = R(1)R(2) ?

Page 23: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

En transformant les vecteurs [1,0]T et [0,1]T, on constate que les colonnes de R forment un repère orthogonal tourné de par rapport au repère cartésien d'origine. (v1

.v2 = 0, vi.vi = 1).

Ces conditions impliquent RT=R–1 (matrice orthogonale).

Le déterminant est nécessairement ||R|| = 1

Transformation of the unit vectors shows that the columns of R represent an orthogonal frame rotated w.r.t. the original frame.

This implies the matrix orthogonality condition

RT = R–1

Moreover, the determinant is 1.

Page 24: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Rotation passive autour de O dans le plan

• Axe: toujours perpendiculaire au plan (z)

Ox1

y1

x 2

y 2

2 v = R(−ϑ ) 1v

=cosϑ sinϑ

−sinϑ cosϑ

⎣ ⎢

⎦ ⎥ 1v

P

2 v et 1v sont des

décompositions différentes du même vecteur

Page 25: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Transformations passives= inverse des transformations

actives

2 v =cosϑ sinϑ

−sinϑ cosϑ

⎣ ⎢

⎦ ⎥ 1v

v2 =cosϑ −sinϑ

sinϑ cosϑ

⎣ ⎢

⎦ ⎥ v1

Translation du Référentiel

O1 vers O2 , même position!

v2 = v1 – t

Translation du point P de

la position v1 à la position v2

v2 = v1 + t

v2 = R v1

2 v = R−1 1v

Rotation du point P de

la position v1 à la position v2

Rotation du référentiel

même vecteur!

Page 26: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Translation: Addition vectorielleRotation: Multiplication matricielle

Il serait utile d’avoir la même opérationmathématique pour tout changement de position, que ce soit translation ou orientation

A unified operation would be useful

Page 27: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Nécessité de combiner rotations et translations

dans une seule opération

Rotation autour de points arbitraires:Rotation around any point?

x

y

O

P

Centre de rotation?

P

Need for unified operation for transl. & rotation

Page 28: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Solution: Homogenous coordiates 2.1.3 représentation homogène

Cette combinaison est obtenue de la façon suivante:

1. On ajoute un "facteur d'échelle" 1 à chaque vecteur2. On ajoute le vecteur de translation à droite de R3. On ajoute la ligne [0 0 1] sous R

v2 = v1 + t

v2 = T v1

Tv1 =

1 0

0 1

⎢ ⎢ ⎢

⎥ ⎥ ⎥

x1

y1

⎢ ⎢ ⎢

⎥ ⎥ ⎥=

x1 + tx

y1 + ty

⎢ ⎢ ⎢

⎥ ⎥ ⎥

Page 29: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

R t

0 1

⎣ ⎢

⎦ ⎥=

cosϑ −sinϑ tx

sinϑ cosϑ ty

0 0 1

⎢ ⎢ ⎢

⎥ ⎥ ⎥=

c −s tx

s c ty

0 0 1

⎢ ⎢ ⎢

⎥ ⎥ ⎥

donc

Question: Est-ce rot-transl ou transl-rot?

Réponse: Trouvez vous-même!

Page 30: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

A retenir:

Les vecteurs en représentation homogènecontiennent un élément de plus que le nombre de dimensions géometriques.

Les matrices en représentation homogènecontiennent une ligne et une colonne de plusque le nombre de dimensions géometriques.

Remember: Vectors in homogenous form have one element more than the number of geometric coordinates: The scale factor (in our case always 1)

Homogenous matrices thus have one line and one column more than the number of coordinates. Last line: 0 0 1, last column [ t , 1] ’

Page 31: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Exemple: Enchainement de deux transformations

Sans représentation homogène:

v2 = R(1) v1 + t1

v3 = R(2) v2 + t2 = R(2) R(1) v1 + R(2) t1 + t2

avec représentation homogène: (ex.2)

Page 32: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Solution ex. 2

cos(ϑ 1 +ϑ 2 ) −sin(ϑ 1 +ϑ 2 ) c2t1x − s2t1y + t2 x

sin(ϑ 1 +ϑ 2 ) cos(ϑ 1 +ϑ 2 ) s2t1x + c2t1y + t2 y

0 0 1

⎢ ⎢ ⎢

⎥ ⎥ ⎥

=c12 −s12 c2t1x − s2t1y + t2 x

s12 c12 s2t1x + c2t1y + t2 y

0 0 1

⎢ ⎢ ⎢

⎥ ⎥ ⎥

Page 33: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Ex 3a: Rotation pure? Translation pure? Identité?

3b) Translation puis rotation

3c) Inverse?? (Faites le contrôle!)

Page 34: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Solutions

3b) Translation puis rotation

R 0

0 1

⎣ ⎢

⎦ ⎥I t

0 1

⎣ ⎢

⎦ ⎥=

R Rt

0 1

⎣ ⎢

⎦ ⎥

I −t

0 1

⎣ ⎢

⎦ ⎥R−1 0

0 1

⎣ ⎢

⎦ ⎥=

R−1 −t

0 1

⎣ ⎢

⎦ ⎥

3c) Rotation puis translation -t

Page 35: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

2.1.4 Rotation 2D autour de points arbitraires:

x

y

O Centre de rotation?

PO

Page 36: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

1. Translation de P vers l’origine

x

y

O

PO

I −OP

0 1

⎣ ⎢

⎦ ⎥=

I −p

0 1

⎣ ⎢

⎦ ⎥

Page 37: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

2. Rotation autour de l’origine

x

y

OO

R 0

0 1

⎣ ⎢

⎦ ⎥I −p

0 1

⎣ ⎢

⎦ ⎥=

R −Rp

0 1

⎣ ⎢

⎦ ⎥

Page 38: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

3. Translation vers P d’origine

x

y

O

PO

I p

0 1

⎣ ⎢

⎦ ⎥R 0

0 1

⎣ ⎢

⎦ ⎥I −p

0 1

⎣ ⎢

⎦ ⎥=

R p − Rp

0 1

⎣ ⎢

⎦ ⎥ (9)

Page 39: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Cette expression met en évidence qu’une rotation autour de P est équivalente à une rotation autour de O suivie d’une translation P–RP

A l’inverse, on peut trouver un centre de rotation pourtoute combinaison de translation et rotation.

This shows that rotation around P is equivalent to rotation around O and a translation p-Rp

Conversely a center of rotation can be found for any combination of transl. & rotation

Page 40: Bases théoriques: modélisation et contrôle 2.1 Cinématique/CinematicsBleuler 2.2 Jacobien/JacobianBouri 2.3 dynamique/DynamicsBouri 2.4 Contrôle/ControlBouri

Exercice 4

4a) Le paragraphe précédent est-il entièrement correct?

4b) Trouver le centre de rotation 1.) par un dessin, 2.) à l'aide de la formule précédente 3.) en cherchant un vecteur propre de la matrice homogène.

4c) Trouver la matrice homogène qui décrit une rotation de 60° autour d'O

4d) Trouver la matrice homogène qui décrit une translation de un en direction x , puis une rotation de 60° autour d'O

4e) Trouver la matrice homogène qui décrit une rotation de 60° autour de [1,1]T .

4.f) Un objet avec deux points v1, w1 est déplacé de sorte que ces points se retrouvent aux locations v2, w2 .

v1 = [1,0]T, w1 = [1,1]T, v2 = 0.5 [1–√3,1–√3]T, w2 = 0.5 [2–√3,1]T

Trouver la matrice homogène, , p (solution graphique) qui décrit ce déplacement.