Vous êtes sur la page 1sur 95

Télécom Physique Strasbourg

Université de Strasbourg

Robotique
Modélisation et commande des robots manipulateurs

Bernard BAYLE
Ce document évolue grâce à votre concours.
Pour l’améliorer, communiquez moi vos remarques ou corrections par mail :

bernard.bayle@unistra.fr
Table des matières

Partie I – Modélisation des robots manipulateurs 1


1 Représentation des transformations et des mouvements rigides 3
1.1 Notations et définitions . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 Solides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.3 Transformations rigides . . . . . . . . . . . . . . . . . . . . . 4
1.2 Rotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Matrice de rotation . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Rotation d’un point appartenant à un solide . . . . . . . . . . . 5
1.2.3 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.4 Rotation d’un vecteur . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.5 Propriétés des rotations . . . . . . . . . . . . . . . . . . . . . . 7
1.2.6 Combinaison de rotations . . . . . . . . . . . . . . . . . . . . 7
1.2.7 Représentation de l’orientation d’un solide dans l’espace . . . . 9
1.3 Transformations rigides . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 Matrices de passage homogènes . . . . . . . . . . . . . . . . . 14
1.3.2 Propriétés des transformations rigides . . . . . . . . . . . . . . 15
1.4 Mouvements rigides . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.1 Vecteur vitesse de rotation . . . . . . . . . . . . . . . . . . . . 15
1.4.2 Vitesse d’un point lié à un solide . . . . . . . . . . . . . . . . . 16

2 Description des bras manipulateurs 17


2.1 Chaîne cinématique d’un bras manipulateur . . . . . . . . . . . . . . . 17
2.2 Paramètres de Denavit-Hartenberg modifiés . . . . . . . . . . . . . . . 18
2.3 Relations géométriques . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4 Relations cinématiques . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3 Modélisation des bras manipulateurs 23


3.1 Configuration et situation d’un bras manipulateur . . . . . . . . . . . . 23
3.2 Modèle géométrique direct . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.2 Calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.3 Règles pratiques . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.4 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3 Modèle géométrique inverse . . . . . . . . . . . . . . . . . . . . . . . 26
ii Table des matières

3.3.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.2 Calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.3 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4 Modèle cinématique direct . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4.2 Calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4.3 Règles pratiques . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.4.4 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Partie II – Commande des robots manipulateurs 35

4 Génération de mouvements 37
4.1 Les différents problèmes . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1.1 Problèmes point-à-point . . . . . . . . . . . . . . . . . . . . . 37
4.1.2 Problèmes à mouvement opérationnel imposé . . . . . . . . . . 38
4.2 Système de commande d’un robot . . . . . . . . . . . . . . . . . . . . 40
4.2.1 Contrôleur de robot . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2.2 Variateur de vitesse . . . . . . . . . . . . . . . . . . . . . . . . 43

5 Technologie 45
5.1 Motorisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.1.1 Moteurs électriques pour la robotique . . . . . . . . . . . . . . 45
5.1.2 Moteurs à courant continu (avec balais) . . . . . . . . . . . . . 45
5.1.3 Moteurs à courant continu sans balais . . . . . . . . . . . . . . 47
5.1.4 Réducteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.2 Mesure de position . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.2.1 Codeurs incrémentaux . . . . . . . . . . . . . . . . . . . . . . 50
5.2.2 Génératices tachymétriques . . . . . . . . . . . . . . . . . . . 51
5.2.3 Résolveurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.3 Variateurs de vitesse . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.3.1 Principe et modélisation de l’actionneur . . . . . . . . . . . . . 52
5.3.2 Principe et modélisation du convertisseur statique . . . . . . . . 56
5.3.3 Variation de vitesse du moteur à courant continu . . . . . . . . 57

6 Commande 73
6.1 Commande point-à-point . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.1.1 Principe de la génération de mouvement . . . . . . . . . . . . . 73
6.1.2 Interpolation polynomiale de degré cinq . . . . . . . . . . . . . 73
6.1.3 Loi Bang-Bang . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.1.4 Loi trapézoïdale en vitesse . . . . . . . . . . . . . . . . . . . . 76
6.2 Commande à mouvement opérationnel imposé . . . . . . . . . . . . . . 77
6.2.1 Position du problème . . . . . . . . . . . . . . . . . . . . . . . 77
6.2.2 Méthodes d’inversion . . . . . . . . . . . . . . . . . . . . . . . 78
Table des matières iii

Annexes 79
A Modélisation d’un bras manipulateur de type SCARA 81
A.1 Robot de type SCARA : présentation . . . . . . . . . . . . . . . . . . 81
A.2 Robot Samsung RSM-5 : modélisation . . . . . . . . . . . . . . . . . 81
A.2.1 Géométrie du robot . . . . . . . . . . . . . . . . . . . . . . . . 82
A.2.2 Modélisation géométrique . . . . . . . . . . . . . . . . . . . . 83
A.2.3 Modélisation cinématique . . . . . . . . . . . . . . . . . . . . 83

Bibliographie 88

Index 89
Partie I
Modélisation des robots manipulateurs
Chapitre 1

Représentation des transformations et


des mouvements rigides

Ce chapitre contient des rappels mathématiques sur les transformations rigides et


l’orientation des corps dans l’espace [Murray 94, Renaud 86, Craig 89].

1.1 Notations et définitions


L’objet de ce paragraphe est de fournir un ensemble de définitions mathématiques
précises pour l’étude des mécanismes polyarticulés.

1.1.1 Points
Soit un repère orthonormé cartésien noté R = (O, x, y, z) selon la convention de
Gibbs. La position d’un point M est donnée par un triplet de coordonnées. On choisit
par commodité de représenter ces coordonnées par un vecteur m de R3 , sous la forme
d’une matrice colonne : 0 1
mx
m = my A .
@
mz
Le mouvement du point est la courbe paramétrée m(t) de R3 donnant sa position au
cours du temps. Le support du mouvement (la courbe non paramétrée) est la trajectoire
du point.

1.1.2 Solides
Un solide S est dit indéformable si, pour toute paire de points de ce solide de
coordonnées m et n, ||m(t) n(t)|| = ||m(0) n(0)|| = constante au cours du temps.
Par la suite, les solides seront tous considérés comme indéformables.
Le mouvement rigide d’un solide S, considéré comme un sous-ensemble de R3 est le
mouvement de chacun de ces points. Il est ainsi représenté par une famille d’applications
g(t) : S ! R3 .
La situation d’un solide S est donnée par la position et l’orientation dans R d’un
repère lié à ce solide.
4 1. Représentation des transformations et des mouvements rigides

1.1.3 Transformations rigides


On appelle transformation rigide le résultat d’un mouvement rigide amenant le solide
d’une situation initiale à une situation finale. Une transformation rigide est représentée
par une application unique g : S ! R3 qui transforme les coordonnées des points du
solide S de leur position initiale vers leur position finale.
Une application g représentera une transformation rigide si elle conserve à la fois
les distances et l’orientation. Soit le vecteur v = m n où m et n représentent les
coordonnées de deux points et :

g? : R3 ! R3 telle que g? (v) = g(m) g(n).

Conformément à la définition précédente, une application g représente une transformation


rigide si et seulement si :
1. ||g(m) g(n)|| = ||m n||, 8m, n 2 R3 ;
2. g? (v ⇥ w) = g? (v) ⇥ g? (w), 8v, w 2 R3 .
Cela signifie notamment qu’un repère orthonormé direct reste orthonormé direct par
application d’une transformation rigide.

1.2 Rotations
1.2.1 Matrice de rotation
Soit deux repères orthonormés directs R = (O, x, y, z) et R0 = (O, x0 , y 0 , z 0 )
partageant la même origine O, conformément à la figure 1.1.

z0 z

y0
O
y

x
M x0

F IGURE 1.1 – Changement de base des coordonnées d’un point

Soit x0 , y 0 , z 0 les coordonnées des vecteurs de la base R0 exprimés dans R. Alors :


0 0 1 0 0 1 0 0 1
x .x y .x z .x
x = x .y , y = y .y et z = z 0 .y A .
0 @ 0 A 0 @ 0 A 0 @
x0 .z y 0 .z z 0 .z

La matrice R = (x0 y 0 z 0 ) de dimension 3 ⇥ 3 est appelée matrice de rotation ou


matrice de passage ou encore matrice de changement de base du repère R vers le repère
R0 . En effet, selon le but recherché, on pourra l’utiliser pour rendre compte :
– du changement de base des coordonnées d’un point ou d’un vecteur entre les
repères R et R0 ;
1.2. Rotations 5

– de la rotation d’un solide lié à un repère orthonormé, initialement en R, et déplacé


en R0 par la rotation autour de O.
Nous allons illustrer ceci dans les paragraphes suivants.

1.2.2 Rotation d’un point appartenant à un solide


Le repère R est un repère fixe cartésien orthonormé. Soient m = (mx my mz )T
et m0 = (m0x m0y m0z )T les coordonnées d’un point M respectivement dans R et R0
(voir figure 1.1). Les coordonnées des vecteurs de la base R0 exprimées dans R étant
(toujours) notées x0 , y 0 , z 0 , les coordonnées de M dans R sont données par :

m = m0x x0 + m0y y 0 + m0z z 0 ,

soit encore sous forme matricielle :


0 1
m0x
m = x0 y 0 z 0 @m0y A
m0z

c’est-à-dire :
m = Rm0 . (1.1)
La relation (1.1) rend compte du changement de base des coordonnées d’un point. On
peut aussi en faire une analyse en terme de rotation si l’on considère que M est un point
d’un solide S (en pointillés sur la figure 1.2) ayant effectué, autour de O, une rotation
caractérisée par la matrice R. Alors m0 représentent les coordonnées initiales de M dans
R et m ses coordonnées finales, toujours dans R, une fois la rotation effectuée.

z0 z

y0
O
y

x x0
M

F IGURE 1.2 – Rotation d’un solide autour d’un point fixe

1.2.3 Exemple
p
On considère la rotation d’un point M de coordonnées initiales ( 3 0 1)T dans R,
comme cela est représenté à la figure 1.3. On cherche à déterminer les coordonnées du
point transformé par une rotation de centre O et d’angle ✓, autour de z.

Les coordonnées des vecteurs de base de R0 dans R sont :


0 1 0 1 0 1
cos ✓ sin ✓ 0
x0 = @ sin ✓ A , y 0 = @ cos ✓ A et z 0 = @0A
0 0 1
6 1. Représentation des transformations et des mouvements rigides

y
x0
y0

O z = z0 x

F IGURE 1.3 – Exemple de rotation plane

si bien que la matrice de rotation de R vers R0 , notée R(z, ✓), est :


0 1
cos ✓ sin ✓ 0
R(z, ✓) = @ sin ✓ cos ✓ 0A .
0 0 1

Les coordonnées du point M dans R0 sont :


0p 1
3
m0 = @ 0 A .
1

Dans R ses coordonnées sont :


0 1 0p 1 0p 1
cos ✓ sin ✓ 0 3 p3 cos ✓
m = @ sin ✓ cos ✓ 0A @ 0 A = @ 3 sin ✓ A .
0 0 1 1 1

Comme évoqué précédemment, on peut p vérifier qu’il s’agit aussi des coordonnées dans
R d’un point qui initialement en ( 3 0 1) , se trouverait déplacé en M sous l’effet
T

de la rotation
p
R(z, ✓). A titre d’exemple, pour ✓ = ⇡3 (c’est le cas de la figure 1.3)
m = ( 23 32 1)T .

1.2.4 Rotation d’un vecteur


Bien évidemment, la rotation s’applique aussi aux vecteurs. Les coordonnées d’un
vecteur sont en effet la différence des coordonnées de deux points de R3 . On peut ainsi
appliquer la rotation à un vecteur de coordonnées v = m n dans R :

m n = Rm0 Rn0 = R(m0 n0 ),

soit, en posant v 0 = m0 n0 :
v = Rv 0 .
1.2. Rotations 7

1.2.5 Propriétés des rotations


La matrice de rotation R, par définition, est constituée de colonnes orthonormales et
donc :
RT R = I.
Par ailleurs, on montre que :

det R = (x0 )T (y 0 ⇥ z 0 ) = (x0 )T x0 = 1.

La matrice de rotation R est donc un élément de l’ensemble :

SO(3) = {R 2 R3⇥3 /RRT = I, det R = 1}

appelé groupe spécial orthogonal. Cet ensemble, muni de l’opération multiplication


matricielle, est un groupe sur R3⇥3 . Ceci a des implications pratiques :
1. La combinaison de deux rotations R1 et R2 est la rotation R1 R2 .
2. Il existe un unique élément neutre, qui est la matrice identité 1 d’ordre 3.
3. Pour une matrice de rotation R donnée, il existe une unique inverse R 1
= RT .
Par ailleurs, une rotation est une transformation rigide car :
1. ||Rm Rn|| = ||m n||, 8m, n 2 R3 .
2. R(v ⇥ w) = Rv ⇥ Rw, 8v, w 2 R3 .

1.2.6 Combinaison de rotations


Le groupe SO(3) est non commutatif car le produit matriciel n’est pas commutatif.
Ainsi, soient deux rotations R1 et R2 , alors R1 R2 6= R2 R1 . Ces deux produits ont chacun
leur signification propre, que nous allons expliquer maintenant.
Deux cas se présentent pour combiner deux rotations :
– soit on effectue la seconde rotation par rapport au repère résultant de la première
rotation ;
– soit on effectue les deux rotations par rapport à un repère fixe unique.
Soit R0 et R00 les repères résultant des deux rotations successives du repère fixe R. Dans
les deux cas évoqués précédemment, le repère R0 résulte de la rotation R1 de R autour
d’un axe lié au repère fixe R. Ensuite, les deux cas précédents donnent :
– dans le premier cas R00 résulte de la rotation de R0 autour d’un axe lié à R0 ;
– dans le second cas R00 résulte de la rotation de R0 autour d’un axe lié à R.
Examinons maintenant ces deux cas. Soit M de coordonnées respectives m, m0 , m00
dans les repères R, R0 et R00 .

Premier cas : R00 résulte de la rotation de R0 autour d’un axe lié à R0 Ce cas peut
être analysé comme un problème de deux changements de base :

m = R1 m 0
m0 = R2 m00
1. Une matrice identité, quel que soit son ordre, sera notée I.
8 1. Représentation des transformations et des mouvements rigides

et donc :
m = R1 R2 m00 .
Comme nous l’avons vu précédemment, les coordonnées m de M dans R sont aussi
les coordonnées d’un point de coordonnées m00 dans R auquel on aurait appliqué les
deux rotations successives. Par exemple considérons la combinaison des deux rotations
suivantes :
– une première rotation d’un angle ⇡4 autour de z ;
– une seconde rotation d’un angle ⇡ autour de l’axe y 0 résultant de la première
rotation.
Ceci correspond à l’illustration de la figure 1.4. On considère le point de coordonnées

z z0


M y0
x00
O

x0

x

4

z 00

F IGURE 1.4 – Rotations successives autour d’axes non fixes


p
m00 = ( 2 0 0)T dans R00 et on souhaite exprimer ses coordonnées dans R. On a donc :
0 p2 p
2
10 1 0p 1 0 1
p2 p2
0 1 0 0 2 1
m = @ 22 2
2
0 A @ 0 1 0 A @ 0 A = @ 1A .
0 0 1 0 0 1 0 0

Ceci correspond à la combinaison des deux rotations suivantes :


– une première rotation d’un angle ⇡4 autour de z ;
– une seconde rotation d’un angle ⇡ autour de l’axe y 0 .

Second cas : R00 résulte de la rotation de R0 autour d’un axe lié à R Ce cas peut
être analysé comme un problème de rotations successives d’un point. La transforma-
tion d’un point de coordonnées initiales m00 dans R donne un point intermédiaire, qui,
1.2. Rotations 9

transformé par la seconde rotation donne un point de coordonnées m dans R. Ainsi :

m = R2 (R1 m00 ).

Pour comparer avec le premier cas, vu précédemment, considérons la combinaison des


deux rotations suivantes :
– une première rotation d’un angle ⇡4 autour de z ;
– une seconde rotation d’un angle ⇡ autour de l’axe y fixe.
Ceci correspond à l’illustration de la figure 1.5. On considère le point de coordonnées

z z0

M
O x00
y
x0

x

4

z 00

F IGURE 1.5 – Rotations successives autour d’axes fixes


p
initiales m00 = ( 2 0 0)T dans R (et donc de coordonnées finales m00 dans R00 ). On a :
0 1 0 p2 p
2
1 0p 1 0 10 1 0 1
1 0 0 p2 p2
0 2 1 0 0 1 1
m= @ 0 1 0 A@ 2 2
0 A @ 0 A = @ 0 1 0 A @ A
1 = @ 1 A.
2 2
0 0 1 0 0 1 0 0 0 1 0 0

1.2.7 Représentation de l’orientation d’un solide dans l’espace


La donnée d’une base attachée à un solide S en rotation détermine de manière unique
son orientation dans l’espace. Différentes représentations peuvent être utilisées pour cela,
avec pour chacune avantages et inconvénients.
10 1. Représentation des transformations et des mouvements rigides

Matrice de rotation et cosinus directeurs


On considère la rotation d’un repère R vers un repère R0 . La matrice de rotation R
est une matrice de dimension 3 ⇥ 3 à valeurs dans R :
0 1
xx yx z x
R = @ xy yy z y A .
xz yz z z
Les éléments de cette matrice sont appelés cosinus directeurs car ils représentent les
coordonnées des trois vecteurs de la base R0 exprimés dans R. Par définition, les colonnes
de R sont orthogonales entre elles et par conséquent la connaissance de deux colonnes
suffit. En robotique, on omet ainsi souvent la seconde colonne :
0 1
xx ⇤ z x
R = @ xy ⇤ z y A .
xz ⇤ z z
Les six paramètres restant sont appelés cosinus directeurs incomplets. Par ailleurs les
colonnes de R formant une base orthonormée :
– les deux colonnes restantes sont orthogonales et donc :

xx z x + xy z y + xz z z = 0 ;

– les deux colonnes restantes sont de norme unité et donc :

x2x + x2y + x2z = 1,


zx2 + zy2 + zz2 = 1.

Les six cosinus directeurs incomplets sont ainsi liés entre eux par trois relations. Mal-
heureusement, ces relations non linéaires ne permettent pas de fournir trois paramètres
de manière unique, mais une collection de solutions : il faut donc conserver les six
paramètres ou utiliser un autre mode de représentation de l’orientation.

Représentation angle/axe
Vecteur rotation Pour toute rotation, on peut trouver une unique paire (e, ") où e
représente de vecteur directeur de l’axe de la rotation, de norme unité, et " l’angle de
rotation en radians. Pour que la représentation soit unique, il faut choisir ⇡ < " 6 ⇡ et
e de coordonnées e = [ex ey ez ]T tel que ex + ey + ez > 0.
On appelle vecteur rotation le vecteur " = "e. On peut bien évidemment établir la
correspondance entre cette représentation à quatre paramètres (" et les trois composantes
de e) et les cosinus directeurs. On montre que :
✓ ◆
xx + yy + z z 1
" = arccos ,
2
0 1
yz z y
1 @
et e = z x xz A .
2 sin "
xy yx

Il existe de très nombreux cas particuliers [Renaud 96].


1.2. Rotations 11

Coordonnées exponentielles La vitesse d’un point M de coordonnées m en rotation


autour d’un axe e à vitesse constante unité s’écrit :

dm(t)
= e ⇥ m(t) = ê m(t),
dt
avec : 0 1
0 ez ey
ê = @ ez 0 ex A
ey ex 0
la matrice du tenseur antisymétrique associé au vecteur de coordonnées e. Alors :

m(t) = exp(êt) m(0),

avec m(0) les coordonnées de M à t = 0 et exp(êt) la matrice exponentielle :

(êt)2
exp(êt) = I + êt + + ...
2
Cette matrice représente la rotation d’axe e. Si on l’évalue en t = ", on obtient une
représentation de la rotation d’axe e et d’angle " :

R(e, ") = exp(ê").

La matrice exponentielle exp(ê") se calcule en appliquant la formule de Rodrigues :

exp(ê") = I + ê sin " + ê2 (1 cos ").

Paramètres d’Euler complets


Soit (c, p, q, r) le quadruplet associé à la rotation R(e, ") tel que :
"
c = cos > 0,
0 1 20 1
p e
@ A " @ xA
et q = sin ey .
2
r ez

Les paramètres constituant ce quadruplet sont appelés paramètres d’Euler complets. Du


fait que ⇡ < " 6 ⇡ :

c 6 0,
1< p 6 1,
1< q 6 1,
1< r 6 1.

Les paramètres d’Euler complets sont liés par la relation c2 +p2 +q 2 +r2 = 1. L’avantage
majeur de cette représentation est qu’elle ne présente pas de singularité. Du fait du faible
nombre de paramètres utilisés, elle représente donc un bon compromis.
12 1. Représentation des transformations et des mouvements rigides

Angles d’Euler classiques


Les angles d’Euler classiques permettent de décrire l’orientation d’un solide par
trois rotations successives. Conformément à la figure 1.6, il s’agit des rotations R(z, ),
R(x , ✓) et enfin R(z ✓ , ') où x et z ✓ sont déduits des vecteurs du repère de base
conformément à la figure 1.6. Les angles , ✓ et ' sont connus respectivement sous
les termes de précession, nutation et rotation propre. Chaque nouvelle rotation étant

z z
z✓ z'

y✓ y'
y '
y


x x x✓ x'

F IGURE 1.6 – Rotations successives dans le paramétrage par les angles d’Euler

effectuée par rapport à un repère ayant tourné :

R = R(z, ) R(x , ✓) R(z ✓ , ').

Sous forme développée :


0 10 10 1
cos sin 0 1 0 0 cos ' sin ' 0
R = @ sin cos 0A @0 cos ✓ sin ✓A @ sin ' cos ' 0A
0 0 1 0 sin ✓ cos ✓ 0 0 1

soit finalement :
0 1
cos cos ' sin cos ✓ sin ' cos sin ' sin cos ✓ cos ' sin sin ✓
R = @sin cos ' + cos cos ✓ sin ' sin sin ' + cos cos ✓ cos ' cos sin ✓A .
sin ✓ sin ' sin ✓ cos ' cos ✓

La transformation inverse permet d’établir les angles d’Euler à partir des cosinus direc-
teurs 2 :
• si zz 6= ±1 :

= atan2(zx , zy ),
✓ = acos zz ,
' = atan2(xz , yz ).
• si zz = ±1 :

✓ = ⇡(1 zz )/2,
+ zz ' = atan2( yx , xx ),
et donc et ' sont indéterminés.
2. Pour cela il faut définir la fonction atan2, qui permet d’associer l’unique angle ⇡ < x 6 ⇡ tel que
x = atan2(sin x, cos x).
1.2. Rotations 13

Angles roulis, tangage et lacet


Pour cette représentation, la littérature donne de nombreuses définitions [Paul 81,
Craig 89, Khalil 99, Renaud 96]. Ces angles, très utilisés par les anglo-saxons et donc
par les industriels, portent les noms de roll, pitch et yaw en anglais. Il s’agit en fait
d’angles d’Euler non classiques en cela que les rotations s’effectuent autour d’axes fixes.
Nous adoptons la définition de [Craig 89] : les rotations successives, conformément
à la figure 1.7, sont R(x, ), R(y, ) puis R(z, ↵). Les angles , , et ↵ sont respecti-
vement désignés sous les noms d’angles de roulis, tangage et lacet. Chaque nouvelle

z

F IGURE 1.7 – Rotations successives dans le paramétrage par les angles de roulis, tangage
et lacet

rotation étant effectuée par rapport à un axe du repère fixe R :

R = R(z, ↵) R(y, ) R(x, ).

Sous forme développée :


0 10 10 1
cos ↵ sin ↵ 0 cos 0 sin 1 0 0
@
R = sin ↵ cos ↵ 0 A @ 0 1 0 A @0 cos sin A ,
0 0 1 sin 0 cos 0 sin cos

soit finalement :
0 1
cos ↵ cos sin ↵ cos + cos ↵ sin sin sin ↵ sin + cos ↵ sin cos
@
R = sin ↵ cos cos ↵ cos + sin ↵ sin sin cos ↵ sin + sin ↵ sin cos A
sin cos sin cos cos

La transformation inverse permet d’établir les angles de roulis, tangage et lacet à partir
des cosinus directeurs :
• si 6= ± ⇡2 :

↵ = atan2(xy , xxp ),
= atan2( xz , x2x + x2y ),
= atan2(yz , zz ).
• si = ± ⇡2 :

↵ signe( ) = atan2(zy , zx ),
(ou ↵ signe( ) = atan2(yx , yy ) équivalent . . . normalement),
et donc ↵ et sont indéterminés.
14 1. Représentation des transformations et des mouvements rigides

1.3 Transformations rigides


1.3.1 Matrices de passage homogènes
Une transformation rigide résulte en général de la combinaison d’une translation et
d’une rotation. Elle est définie par la paire g = (p, R) avec p la translation de l’origine
du repère lié au solide S en mouvement (voir figure 1.8). L’ensemble des transformations
rigides :
SE(3) = {(p, R)/p 2 R3 , R 2 SO(3)} = R3 ⇥ SO(3)
est appelé groupe spécial euclidien.
z0

z
y0
O0
p
O x0
y
M
x

F IGURE 1.8 – Transformation rigide du solide S

Soient m = (mx my mz )T et m0 = (m0x m0y m0z )T les coordonnées d’un point M


respectivement dans R et R0 . La transformation rigide résultant de la translation p du
repère R puis de la rotation du repère obtenu vers R0 , on a :
m = p + Rm0 . (1.2)
Ceci peut se mettre sous forme linéaire en introduisant les coordonnées homogènes
du point M qui sont représentées par un vecteur de dimension 4 ⇥ 1 :
0 1 0 01
mx ✓ ◆ mx ✓ 0◆
B my C m B m 0C
m
m̄ = B C 0 B C
@mz A = 1 dans R et m̄ = @m0z A = 1 dans R .
y 0

1 1
On peut alors exprimer la transformation rigide (1.2) par la relation matricielle :
✓ ◆ ✓ ◆ ✓ 0◆
m R p m
= (1.3)
1 0 1 1
que l’on notera :
m̄ = T m̄0
en posant : ✓ ◆
R p
T = .
0 1
La matrice T , dite matrice de passage homogène, décrit ainsi le passage du repère R au
repère R0 et donc la transformation rigide g = (p, R).
1.4. Mouvements rigides 15

1.3.2 Propriétés des transformations rigides


L’ensemble SE(3) muni de la multiplication matricielle est un groupe. Il en résulte
que :
1. Soit g1 et g2 deux transformations rigides représentées par les matrices homo-
gènes : ✓ ◆ ✓ ◆
R1 p 1 R2 p 2
T1 = , T2 = .
0 1 0 1
Alors g1 g2 est bien une transformation rigide de matrice homogène :
✓ ◆
R1 R2 R1 p 2 + p 1
T1 T2 = . (1.4)
0 1

2. La matrice identité d’ordre 4 est l’élément neutre du groupe SE(3).


3. D’après le produit (1.4) l’inverse d’une transformation rigide g = (p, R) de SE(3)
est représentée par : ✓ T ◆
1 R RT p
T =
0 1
et donc g 1
= ( RT p, RT ).

1.4 Mouvements rigides


1.4.1 Vecteur vitesse de rotation
Comme précédemment dans le cas des transformations rigides, on considère tout
d’abord un mouvement de rotation pure. On considère un solide S auquel est lié un
repère R0 en rotation dans R autour d’un point O, origine des deux repères. Le vecteur
vitesse de rotation ⌦ décrit le mouvement de rotation. Il est porté par l’axe instantané de
rotation du solide S, dirigé suivant le principe du tire-bouchon (voir figure 1.9).

z0 z

y0
O
y
vM
x x0
OM
M

F IGURE 1.9 – Mouvement de rotation pure, axe instantané de rotation et vecteur vitesse
de rotation d’un solide S
16 1. Représentation des transformations et des mouvements rigides

1.4.2 Vitesse d’un point lié à un solide


Cas des rotations pures On considère un point M du solide S. Le mouvement du
point M est donné par les coordonnées m(t) du point dans le repère fixe R, au cours du
temps. Le point M tournant autour de l’axe instantané de rotation et le vecteur vitesse de
rotation du solide S étant ⌦, la vitesse v M de M est :

v M = ⌦ ⇥ OM .

Si l’on considère les coordonnées des points et vecteurs :

vM = ⌦ ⇥ m,
= ⌦ ⇥ R m0 ,
= ˆ R m0 ,
⌦ (1.5)

en définissant : 0 1
0 ⌦z ⌦y
ˆ = @ ⌦z
⌦ 0 ⌦x A
⌦y ⌦x 0
la matrice du tenseur antisymétrique associé au vecteur de coordonnées ⌦ = (⌦x ⌦y ⌦z )T ,
permettant de remplacer le produit vectoriel par un produit matriciel. Par ailleurs, si l’on
dérive l’équation (1.1) :
dm dR 0
= vM = m. (1.6)
dt dt
Il résulte de (1.5) et (1.6) que :
dR ˆ R.
=⌦ (1.7)
dt

Cas des mouvements quelconques A la section 1.3 on a calculé la position d’un point
M effectuant une transformation rigide composée d’une translation et d’une rotation.
Pour décrire le mouvement rigide d’un point M , donc sa position comme une fonction
continue du temps, on souhaite connaître la vitesse vM du point dans R, à l’image de ce
qui a été fait dans le paragraphe précédent, dans le cas d’une rotation pure. Si l’on dérive
l’équation (1.2) :
dm dR 0 dp
= vM = m + , (1.8)
dt dt dt
ˆ 0
= ⌦ R m + vM 0 (1.9)

ce qui peut se mettre sous la forme linéaire :


✓ ◆ ✓ ◆ ✓ 0◆
vM ˆ R vM 0
⌦ m
= .
1 0 1 1
Chapitre 2

Description des bras manipulateurs

On se propose par la suite d’établir les modèles géométriques et cinématiques des


bras manipulateurs. Pour cela on définit la forme des chaînes cinématiques qui seront
étudiées et le paramétrage usuel de ces structures [Renaud 86].

2.1 Chaîne cinématique d’un bras manipulateur


On ne considère ici que les systèmes mécaniques composés de chaînes cinématiques
polyarticulées ouvertes, appelés bras manipulateurs série. La figure 2.1 montre les deux
structures les plus répandues dans l’industrie :
– les bras manipulateurs de type anthropomorphe, à six liaisons rotoïdes, d’usage
général ;
– les bras manipulateurs de type SCARA, qui sont fréquemment utilisés dans les
cellules de production pour les opérations de palettisation.

F IGURE 2.1 – Bras manipulateurs de type anthropomorphe et SCARA

On supposera par la suite les bras manipulateurs constitués de n corps mobiles,


supposés parfaitement rigides, reliés entre eux par n liaisons rotoïdes et/ou prismatiques
formant une structure de chaîne simple (voir figure 2.2 page suivante). Pour identifier la
18 2. Description des bras manipulateurs

corps corps corps corps


C1 C2 Cn 1 Cn

bâti
(corps C0 ) liaison liaison liaison liaison liaison
L1 L2 L3 Ln 1 Ln

F IGURE 2.2 – Chaîne cinématique d’un bras manipulateur série

nature de la i-ème liaison du bras manipulateur, on définit le paramètre :


(
0, pour une liaison rotoïde,
i =
1, pour une liaison prismatique.

On désigne fréquemment les bras manipulateurs en acollant les lettres R (pour rotoïde) et
P (pour prismatique) pour décrire la succession des liaisons. Par exemple un bras manipu-
lateur de type anthropomorphe sera désigné par le sigle 6R alors qu’un bras manipulateur
de type SCARA sera de type RRP ou RRP R (il existe plusieurs variantes).

2.2 Paramètres de Denavit-Hartenberg modifiés


La technique la plus répandue 1 pour décrire la géométrie d’un bras manipulateur
consiste à utiliser les paramètres de Denavit-Hartenberg modifiés [Khalil 86]. On associe
au i-ème corps le repère Ri = (Oi , xi , y i , z i ), avec i = 0, 1, . . . , n. Pour placer
les repères R1 à Rn 1 selon la règle des paramètres de Denavit-Hartenberg modifiés,
il convient de suivre les règles suivantes (voir figure 2.3 page ci-contre), pour i =
2, 3, . . . , n :
– Oi 1 est le pied de la perpendiculaire commune aux axes des liaisons Li 1 et Li ,
situé sur Li 1 . Si les axes des liaisons sont parallèles, il faut choisir arbitrairement
une perpendiculaire commune ;
– xi 1 est le vecteur unitaire de cette perpendiculaire commune, orienté de Li 1 vers
Li . Si les axes des deux liaisons sont concourants ou confondus, l’orientation est
arbitraire (règle avant, droite, haut) ;
– z i 1 est un vecteur unitaire de l’axe de la liaison Li 1 , librement orienté. On
privilégie généralement les débattements positifs pour les liaisons prismatiques et
on symétrise généralement par rapport à 0 le débattement des liaisons rotoïdes ;
– y i 1 est tel que le repère Ri 1 soit orthonormé direct.
Ensuite, le repère R0 est défini librement en suivant des considérations de simplicité.
De même, le point On est choisi de façon à annuler un maximum de paramètres. Un
point On+1 est associé à l’OT du bras manipulateur, selon des critères opérationnels :
typiquement, si le bras manipulateur est équipé d’une pince, le point On+1 représentera
le centre de ses mors. On choisit alors enfin Rn de sorte que le point On+1 se situe dans
le plan Ri = (On , xn , z n ), conformément à la figure 2.4.
1. A la fois celle à laquelle on attribue la plus grande généralité [Gorla 01] et la plus intuitive en
pratique.
2.2. Paramètres de Denavit-Hartenberg modifiés 19

↵i zi
1

xi
Oi
zi zi 1

ri

Oi xi zi
1 1

ai 1 xi
⌦i 1
✓i
xi 1

axe liaison
axe liaison
Li 1
Li

F IGURE 2.3 – Paramètres de Denavit-Hartenberg modifiés

Les repères étant choisis, la situation du repère d’un corps respectivement à celle du
repère du corps suivant peut être définie conformément à la figure 2.3. Les paramètres
↵i 1 , ai 1 , ✓i et ri , avec i = 1, 2, . . . , n, placés sur cette figure sont appelés paramètres
de Denavit-Hartenberg modifiés. Textuellement, on peut les définir comme suit :
– ↵i 1 : angle algébrique entre z i 1 et z i , mesuré autour de xi 1 ;
– ai 1 : distance arithmétique de la perpendiculaire commune aux axes des liaisons
Li 1 et Li mesurée le long de xi 1 ;
– ✓i : angle algébrique entre xi 1 et xi , mesuré autour de z i ;
– ri : distance algébrique du point Oi à la perpendiculaire, mesurée le long de z i .
Les paramètres de Denavit-Hartenberg modifiés permettent de déterminer de manière
unique la configuration des corps et donc la géométrie du bras manipulateur. Lorsque

rn+1
zn
On+1
z

On
xn
O
y an

F IGURE 2.4 – Placements respectifs des repères Rn et du point On+1


20 2. Description des bras manipulateurs

l’on modélise une bras manipulateur, il est souhaitable de représenter celui-ci dans
une configuration particulière, pour visualiser plus facilement les paramètres et annuler
certains paramètres constants. On obtient alors la valeur des les paramètres constants
↵i 1 et ai 1 et la configuration des liaisons décrite par les paramètres ✓i et ri variables.

0 Exemple A titre d’exemple, paramétrer le bras manipulateur de type 6R présenté à la


figure 2.5.

a2 r4 r7

z0 , z1 x3 x4 , x 5 , x 6

z4 , z6 Organe terminal
x0 , x 1 , x 2
O7
O0 , O 1 , O 2 O3 O4 , O 5 , O 6
z2 z3 z5

articulation i 1 2 3 4 5 6

i 0 0 0 0 0 0
⇡ ⇡ ⇡ ⇡
↵i 1 0 0
2 2 2 2
ai 1 0 0 a2 0 0 0
✓i q1 q2 q3 q4 q5 q6
ri 0 0 0 r4 0 0

F IGURE 2.5 – Repérage et paramétrage d’un bras manipulateur de type 6R selon la


méthode des paramètres de Denavit-Hartenberg modifiés

2.3 Relations géométriques


Conformément au paramétrage de Denavit Hartenberg modifié, la matrice de trans-
formation entre les corps Ci 1 et Ci est donc :
0 10 10 10 1
1 0 0 0 1 0 0 ai 1 cos ✓i sin ✓i 0 0 1 0 0 0
B0 cos ↵i 1 sin ↵i 1 0C B CB CB C
Ti =B C B0 1 0 0 C B sin ✓i cos ✓i 0 0C B0 1 0 0 C
1, i @0 sin ↵i 1 cos ↵i 1 0A @0 0 1 0 A @ 0 0 1 0 A @0 0 1 r i A
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
| {z }| {z }| {z }| {z }
R(xi 1, ↵i 1) translation de ai 1 xi 1 R(z i , ✓i ) translation de ri z i
2.4. Relations cinématiques 21

soit :
0 1
cos ✓i sin ✓i 0 ai 1
Bcos ↵i 1 sin ✓i cos ↵i 1 cos ✓i sin ↵i 1 ri sin ↵i 1 C
Ti =B
@ sin ↵i 1 sin ✓i sin ↵i 1 cos ✓i
C (2.1)
1, i
cos ↵i 1 ri cos ↵i 1 A
0 0 0 1

qui prend la forme :


✓ ◆
Ri 1, i pi 1, i
Ti 1, i =
0 1
où Ri 1, i représente la rotation entre les repères Ri 1 et Ri et pi 1, i la translation entre
ces mêmes repères.

2.4 Relations cinématiques


On considère la i ème liaison, d’axe z i . Les autres axes étant fixes, une vitesse q̇i
de l’axe i engendre une vitesse linéaire ṗi du point On et une vitesse de rotation ⌦i du
repère Rn par rapport au repère fixe R0 .
Le cas d’une liaison prismatique d’axe z i est illustré à la figure 2.6. Il en résulte que :

ṗi = q̇i z i

On

q̇i z i

Oi

axe liaison
Li

F IGURE 2.6 – Vitesse du point On pour une vitesse q̇i de la i ème liaison, dans le cas
d’une liaison prismatique

ṗi = q̇i z i
⌦i = 0.

Le cas d’une liaison rotoïde d’axe z i est illustré à la figure 2.7 page suivante. Il en
résulte que :

ṗi = q̇i z i ⇥ pi,n


⌦i = q̇i z i
22 2. Description des bras manipulateurs

pi = q̇i z i ⇥ pi,n

On

pi,n
⌦i = q̇i z i

Oi

axe liaison
Li

F IGURE 2.7 – Vitesse du point On pour une vitesse q̇i de la i ème liaison, dans le cas
d’une liaison rotoïde

où pi,n = Oi On . En utilisant le paramètre i et son complément à 1 ¯i on peut regrouper


ces relations et obtenir, pour une liaison quelconque :

ṗi = ( i z i + ¯i z i ⇥ pi,n )q̇i (2.2)


⌦i = (¯i z i ) q̇i . (2.3)
Chapitre 3

Modélisation des bras manipulateurs

3.1 Configuration et situation d’un bras manipulateur


De manière classique, la configuration d’un système mécanique est connue quand la
position de tous ses points dans R0 est connue [Neimark 72]. Pour un bras manipulateur,
elle est définie par un vecteur q de n coordonnées indépendantes appelées coordonnées
généralisées. La configuration est alors naturellement définie sur un espace N dont la
dimension n est appelée indice de mobilité. N est appelé espace des configurations. Les
coordonnées généralisées correspondent aux grandeurs caractéristiques des différentes
articulations : angles de rotation pour les liaisons rotoïdes, translations pour les liaisons
prismatiques. On note q = (q1 q2 . . . qn )T .
La situation x de l’OT du bras manipulateur est alors définie par m coordonnées indé-
pendantes dites coordonnées opérationnelles, qui donnent la position et l’orientation de
l’OT dans R0 . On définira généralement la situation en fonction de la tâche à accomplir :
par exemple on pourra ne considérer que la position de l’OT et non plus son orientation.
Dans tous les cas, la situation de l’OT est définie sur un espace M, de dimension m 6 6,
appelé espace opérationnel [Khatib 86]. On note x = (x1 x2 . . . xm )T . Le choix le
plus commun pour les paramètres de position est celui des coordonnées cartésiennes.
L’expression de l’orientation de l’OT dépend du choix des paramètres angulaires (voir
section 1.2.7).

3.2 Modèle géométrique direct

3.2.1 Définition
Le modèle géométrique direct (MGD) d’un bras manipulateur exprime la situation de
son OT en fonction de sa configuration 1 :

f: N ! M
(3.1)
q 7 ! x = f (q).

1. Autrement dit ses coordonnées opérationnelles en fonction de ses coordonnées généralisées.


24 3. Modélisation des bras manipulateurs

3.2.2 Calcul
Le calcul du MGD consiste donc à exprimer la position du point On+1 et l’orientation
du repère Rn lié à l’OT, en fonction de sa configuration. Il faut pour cela multiplier les
matrices de passage homogènes successives reliant le repère R0 lié au bâti au repère Rn
lié à l’OT :
T0,n (q) = T0,1 (q1 ) T1,2 (q2 ) . . . Tn 1,n (qn ). (3.2)
La matrice : ✓ ◆
R0,n p0,n
T0,n =
0 1
permet donc de connaître l’orientation de l’OT dans le repère de base et la position
p0,n = (px py pz )T du point On . Comme précédemment, on note :
0 1
xx yx z x
R0,n = @ xy yy z y A
xz yz z z

et l’on rappelle qu’il suffit de connaître les première et troisième colonne de cette matrice
pour définir de manière unique l’orientation du repère terminal. La position (x1 x2 x3 )T
du point On+1 se déduit alors facilement, compte tenu des coordonnées (an 0 rn+1 )T de
On+1 dans Rn :
x1 = px + an xx + rn+1 zx ,
x2 = py + an xy + rn+1 zy , (3.3)
x3 = pz + an xz + rn+1 zz .

3.2.3 Règles pratiques


Les règles précédentes permettent de programmer aisément le calcul numérique
du MGD. Le calcul analytique permet de diminuer de manière conséquente le nombre
d’opérations. Pour cela la connaissance de certaines règles et propriétés permet de
simplifier le calcul :
– les notations étant généralement lourdes, on adopte un certain nombre de conven-
tions. On note, pour i, j, . . . compris entre 1 et n :

Si = sin qi
Ci = cos qi
Si+j = sin (qi + qj )
Ci+j = cos (qi + qj )
...

Par ailleurs à chaque nouvelle opération effectuée on définit une variable intermé-
diaire qui permet de n’effectuer qu’une fois un produit ou une addition survenant à
de nombreuses reprises ;
– si l’on mène le calcul en effectuant le produit (3.2) à rebours (de droite à gauche)
on peut s’abstenir de calculer la seconde colonne des différentes matrices. En effet,
si l’on considère le produit de deux matrices de passage homogènes A et B, avec
3.2. Modèle géométrique direct 25

B possédant une seconde colonne indéterminée donne :


0 10 1 0 1
a11 a12 a13 0 b11 ⇤ b13 0 a11 b11 + a12 b21 + a13 b31 ⇤ a11 b13 + a12 b23 + a13 b33 0
Ba21 a22 a23 0C Bb21 ⇤ b23 0C Ba21 b11 + a22 b21 + a23 b31 ⇤ a21 b13 + a22 b23 + a23 b33 0C
B CB C= B C.
@a31 a32 a33 0A @b31 ⇤ b33 0A @a31 b11 + a32 b21 + a33 b31 ⇤ a31 b13 + a32 b23 + a33 b33 0A
0 0 0 1 0 0 0 1 0 0 0 1
– si deux transformations se composent aisément on effectue tout d’abord leur
produit : c’est le cas en particulier de la transformation due à deux rotations
successives d’axes parallèles. Par exemple si l’on considère deux rotations pures
successives de q1 et q2 autour d’un même axe y 1 = y 2 :
0 10 1 0 1
C1 0 S1 0 C2 0 S2 0 C1+2 0 S1+2 0
B 0 1 0 0C B 0 1 0 0C B 0 1 0 0C
B CB C B C
@ S1 0 C1 0A @ S2 0 C2 0A = @ S1+2 0 C1+2 0A
0 0 0 1 0 0 0 1 0 0 0 1

3.2.4 Exemple
On traite ici le cas du bras manipulateur de type 6R dont le paramétrage a été établi
précédemment à la figure 2.5.
On calcule tout d’abord les matrices de passage homogènes successives. D’après
(2.1), on obtient :
0 1 0 1
C1 S1 0 0 C2 S2 0 0
B S1 C 1 0 0 C B0 0 1 0C
T0, 1 = B @0
C
A T1, 2 = B @
C
0 1 0 S2 C 2 0 0A
0 0 0 1 0 0 0 1
0 1 0 1
C3 S3 0 a2 C4 S4 0 0
B S3 C3 0 0C B0 0 1 r4 C
T2, 3 = B
@0
C T3, 4 = B C
0 1 0A @ S4 C4 0 0 A
0 0 0 1 0 0 0 1
0 1 0 1
C5 S5 0 0 C6 S6 0 0
B 0 0 1 0C B0 0 1 0C
T4, 5 = B
@ S5
C T5, 6 = B C
C5 0 0A @ S6 C6 0 0A
0 0 0 1 0 0 0 1
La multiplication des matrices, selon les règles précédemment énoncées fait apparaître
les variables auxiliaires suivantes :
D1 = a2 C2
D2 = a2 S2
D3 = C5 C6
D4 = S5 C 6
D5 = C4 D3 S4 S6
D6 = C4 S5
D7 = S4 D3 + C4 S6
D8 = S4 S5
D9 = C2+3 D5 + S2+3 D4
D10 = C2+3 D6 + S2+3 C5
D11 = r4 S2+3 + D1
26 3. Modélisation des bras manipulateurs

px = C1 D11
py = S1 D11
pz = r4 C2+3 + D2
xx = C 1 D9 + S 1 D7
xy = S 1 D9 C 1 D7
xz = S2+3 D5 C2+3 D4
zx = C1 D10 + S1 D8
zy = S1 D10 C1 D8
zz = S2+3 D6 C2+3 C5
yx = z y xz z z xy
yy = z z xx z x xz
yz = z x xy z y xx

La situation est alors donnée par :


– position dans R0 :
x 1 = p x + r7 z x
x 2 = p y + r7 z y
x 3 = p z + r7 z z
– orientation dans R0 , avec les cosinus directeurs incomplets :
x4 = xx
x5 = xy
x6 = xz
x7 = z x
x8 = z y
x9 = z z
– orientation dans R0 , avec les angles d’Euler calssiques :
– si zz 6= ±1 :
x4 = = atan2(zx , zy )
x5 = ✓ = acos zz
x6 = ' = atan2(xz , yz )
– si zz = 1 :
x5 = ⇡(1 zz )/2
x6 + zz x6 = atan2( yx , xx )

3.3 Modèle géométrique inverse


3.3.1 Définition
Le modèle géométrique inverse (MGI) d’un bras manipulateur permet d’obtenir la
ou les configurations correspondant à une situation de l’OT donnée. Un MGI est donc tel
que :
f 1 : M ! N
(3.4)
x 7 ! q = f 1 (x).
La résolubilité du MGI, c’est-à-dire l’existence d’un nombre fini de solutions est
fondamentale en matière de conception. Supposons que la situation x d’un bras manipu-
lateur à n liaisons soit exprimée par un nombre m minimal de paramètres (voir section
3.3. Modèle géométrique inverse 27

1.2.7). Supposons par ailleurs que x soit une situation accessible par le bras manipulateur,
c’est-à-dire que la situation appartient à l’ espace de travail 2 . Alors (dans la majorité des
cas) :
– si n < m, il n’existe pas de solution au MGI ;
– si n = m, il existe un nombre fini de solutions en dehors de certaines configurations,
appelées configurations singulières ;
– si n > m, il existe une infinité de solutions.
On sait que dans les cas où n < 6 les bras manipulateurs sont tous solubles, c’est-à-dire
qu’il existe une solution connue au MGI. C’est aussi le cas de la plupart des structures à
six liaisons, notamment celles possédant un poignet sphérique (trois dernières liaisons
rotoïdes concourantes). Enfin, seul le calcul du MGI permet de connaître le nombre de
solutions.

3.3.2 Calcul

Il n’existe pas de méthode analytique systématique pour calculer le MGI. Le mieux


est de reprendre les équations du MGD, préalablement calculé et de mener le calcul à
l’envers. Le calcul se fait alors au cas par cas. Il est généralement aisé pour un bras
manipulateur à moins de six axes, comme les bras manipulateur de type SCARA. Dans
le cas où n = 6, l’existence d’un poignet sphérique permet de débuter la résolution par
l’inversion du système 3.3, soit :

px = x1 an x x rn+1 zx ,
py = x2 an x y rn+1 zy ,
pz = x3 an x z rn+1 zz .

On résout ensuite le système d’équations non-linéaires que constitue le MGD, pour


exprimer les qi , pour i = 1, 2, . . . , n en fonction de px , py , pz et des cosinus directeurs.

3.3.3 Exemple

Reprenons l’exemple du bras manipulateur de type 6R.


On détermine tout d’abord les coordonnées du point On , centre du poignet sphérique :
p x = x 1 r7 z x
p y = x 2 r7 z y
p z = x 3 r7 z z

Ensuite, on résout les autres équations :


p
D11 = "1 p2x + p2y ! 2 solutions "1 = ±1

2. Il n’est pas toujours facile de savoir si c’est le cas.


28 3. Modélisation des bras manipulateurs

Si D11 = 0 : q1 indéterminé ! FIN


sinon :
C1 = Dp11 x

py
S1 = D11

q1 = atan2(S1 , C1 )
2 +p2 (r 2 +a2 )
D11
S3 = z
2a2 r4
4 2

p
C 3 = "3 1 S32
q3 = atan2(S3 , C3 ) ! 2 solutions "3 = ±1
(r4 C3 )D11 +(r4 S3 +a2 )pz
S2 = 2 +p2
D11 z
(r4 C3 )pz +(r4 S3 +a2 )D11
C2 = 2 +p2
D11 z

q2 = atan2(S2 , C2 )
D11 a2 C2
S2+3 = r4
pz +a2 S2
C2+3 = r4

D10 = C 1 z x + S1 z y
D8 = S1 z x C1 z y
D9 = C 1 x x + S1 x y
D7 = S1 x x C1 xy
D6 = C2+3 D10 + S2+3 zz
C5 = S2+3 D10 C2+3 zz
D5 = C2+3 D9 + S2+3 xz
D4 = S2+3 D9 C2+3 xz
p
S5 = "5 D62 + D82 ! 2 solutions "5 = ±1
q5 = atan2(S5 , C5 )

Si S5 = 0 : q4 indéterminé ! FIN
sinon :
C4 = D 6
S5
D8
S4 = S5

q4 = atan2(S4 , C4 )
D3 = C4 D5 + S4 D7
S6 = S4 D5 + C4 D7
C6 = C5 D3 S5 D4
q6 = atan2(S6 , C6 ) ! FIN
3.4. Modèle cinématique direct 29

3.4 Modèle cinématique direct


3.4.1 Définition
Le modèle cinématique direct (MCD) du bras manipulateur donne la relation entre les
vitesses opérationnelles ẋ et les vitesses généralisées q̇ du bras manipulateur :

ẋ = J q̇, (3.5)

où J = J(q) est la matrice jacobienne de la fonction f , de dimension m ⇥ n :

J : Tq N ! Tx M
@f
q̇ 7 ! ẋ = J q̇, où J = .
@q

La matrice jacobienne représente l’application linéaire df entre les espaces Tq N et Tx M,


respectivement tangents à N en q et à M en x = f (q).
On peut alternativement définir le modèle différentiel direct (MDD) qui donne l’ac-
croissement infinitésimal dx de la situation en fonction d’un accroissement dq de la
configuration :
dx = Jdq.

3.4.2 Calcul
On souhaite calculer la vitesse opérationnelle ẋ résultant de la vitesse généralisée q̇.
Dans un premier temps, on calcule la vitesse du point On et la vitesse de rotation du
repère Rn en appliquant le principe de superposition. On obtient, d’après (2.2) et (2.3) :
n
X
ṗ = ( i z i + ¯i z i ⇥ pi,n )q̇i ,
i=1
Xn
⌦ = (¯i z i ) q̇i .
i=1

On obtient alors : ✓ ◆

= J g q̇

avec :
✓ ◆
1 z 1 + ¯1 z 1 ⇥ p1,n 2 z 2 + ¯2 z 2 ⇥ p2,n ... n z n + ¯n z n ⇥ pn,n
Jg =
¯1 z 1 ¯2 z 2 ... ¯n z n

une matrice vectorielle de dimension 2 ⇥ n. Si l’on projette cette relation dans le repère
R0 lié au bâti : ✓ ◆

= Jg q̇

où ṗ et ⌦ sont les coordonnées respectives de ṗ et ⌦.
30 3. Modélisation des bras manipulateurs

Pour obtenir J, matrice jacobienne de f il convient alors d’exprimer la vitesse


opérationnelle ẋ à partir de ṗ et ⌦. Concernant les dérivées de position, d’après (3.3), il
vient : 0 1 0 1 0 1 0 0 1 0 11
ẋ1 ṗx ⌦x xx zx
@ẋ2 A = @ṗy A + @⌦y A ⇥ @an @xy A + rn+1 @zy AA
ẋ3 ṗz ⌦z xz zz
soit encore, en transformant le produit vectoriel en produit matriciel :
0 1 0 1 0 1
ẋ1 ṗx ⌦x
@ẋ2 A = @ṗy A + D @⌦y A (3.6)
ẋ3 ṗz ⌦z
avec :
0 1
0 an xz + rn+1 zz an xy rn+1 zy
D = @ an xz rn+1 zz 0 an xx + rn+1 zx A .
an xy + rn+1 zy an xx rn+1 zx 0

En ce qui concerne l’orientation, définie par les paramètres x4 , x5 , . . . xm , on note C


la matrice de dimensions (m 3) ⇥ 3 faisant la correspondance entre les vitesses de
rotation de l’OT et les dérivées des paramètres angulaires choisis 3 :
0 1
ẋ4 0 1
B ẋ5 C ⌦x
B C = C @ ⌦y A . (3.7)
@. . .A
⌦z
ẋm

En regroupant (3.7) et (3.6), on obtient :


✓ ◆✓ ◆ ✓ ◆
I D ṗ I D
ẋ = = Jg q̇,
0 C ⌦ 0 C

ce qui permet finalement d’établir la jacobienne :


✓ ◆
I D
J= Jg .
0 C

3.4.3 Règles pratiques


On montre [Renaud 86] que l’on peut considérablement diminuer la complexité du
calcul analytique du modèle en établissant la matrice Jg par la relation :
✓ ◆✓ ◆ ✓ ◆✓ ◆
R0,1 0 R1,2 0 Rk 1,k 0 I p̂k+1,n |Rk
Jg = ... Jk+1 |Rk
0 R0,1 0 R1,2 0 Rk 1,k 0 I
avec :
– k = Ent( n2 ) , où Ent est la fonction partie entière et k est le nombre appelé
indice préférentiel. Ceci est d’autant plus intéressant quand le robot possède six
articulations, car alors p̂4,6 = 0 si le robot est muni d’un poignet sphérique ;
3. Pour obtenir cette matrice se référer à un ouvrage classique de mécanique ou de robotique ou à
[Renaud 96].
3.4. Modèle cinématique direct 31

– p̂k+1,n |Rk la matrice anti-symétrique associée à la projection de pk+1,n dans Rk ;


– Jk+1 |Rk la projection dans Rk de :
✓ ◆
1 z 1 + ¯1 z 1 ⇥ p1,k+1 2 z 2 + ¯2 z 2 ⇥ p2,k+1 ... n z n + ¯n z n ⇥ pn,k+1
J k+1 =
¯1 z 1 ¯2 z 2 ... ¯n z n

Enfin, on notera que le calcul du MCD ne passe pas nécessairement par celui de
la matrice jacobienne. Si l’on n’a pas besoin de la matrice jacobienne, on pourra se
contenter d’exprimer ẋ en fonction de q̇ en un nombre minimal d’opérations, à l’image
de ce qui a été fait pour le MGD.

3.4.4 Exemple
Reprenons l’exemple du bras manipulateur de type 6R.
Dans ce cas, comme n = 6, k = 3. On calcule donc la matrice J4 |R3 . Comme toutes
les liaisons sont rotoïdes, et que le bras se finit par un poignet sphérique (p4,5 = p4,6 =
0) : !
z 1 ⇥ p1,4 z 2 ⇥ p2,4 z 3 ⇥ p3,4 0 0 0
J4 =
z1 z2 z3 z4 z5 z6

Pour projeter cette matrice vectorielle dans le repère R3 , le mieux est d’exprimer
ses composantes vectorielles en fonction des vecteurs de la base R3 , ce qui donnera
directement la projection. On a tout d’abord :

z2 = z3,
z4 = y3,
(x1 y 1 z 1 )T = R1,3 (x3 y 3 z 3 )T
soit z 1 = S2+3 x3 + C2+3 y 3 ,
(x5 y 5 z 5 )T = R3,5 (x3 y 3 z 3 )T
soit z 5 = S4 x 3 + C 4 z 3 ,
(x6 y 6 z 6 )T = R3,6 (x3 y 3 z 3 )T
soit z 6 = D6 x3 C5 y 3 + D8 z 3 .

Alors on effectue le calcul des composantes manquantes :

z 3 ⇥ p3,4 = z 3 ⇥ r4 z 4 ,
= z 3 ⇥ r4 ( y 3 ),
= r4 x 3 .
z 2 ⇥ p2,4 = z 2 ⇥ (p2,3 + p3,4 ),
= z 3 ⇥ ( r4 y 3 + a2 x2 ),
= z 3 ⇥ ( r4 y 3 + a2 (C3 x3 S3 y 3 )),
= (r4 + a2 S3 )x3 + a2 C3 y 3 .

et enfin :
z 1 ⇥ p1,4 = z 1 ⇥ (p1,2 + p2,4 ),
= (S2+3 x3 + C2+3 y 3 ) ⇥ (a2 C3 x3 (r4 + a2 S3 )y 3 ),
= z 3 ⇥ ( r4 y 3 + a2 (C3 x3 S3 y 3 )),
= D11 z 3 .
32 3. Modélisation des bras manipulateurs

On pose donc :

E 1 = a2 S 3 + r 4 ,
E 2 = a2 C 3

et l’on a :

0 1
0 E 1 r4 0 0 0
B 0 E2 0 0 0 0 C
B C
B D11 0 0 0 0 0 C
J4 | R 3 =B
B S2+3 0 0
C.
B 0 S4 D6 CC
@ C2+3 0 0 1 0 C5 A
0 1 1 0 C4 D8

Alors : ✓ ◆✓ ◆✓ ◆
R0,1 0 R1,2 0 R2,3 0
Jg = J|
0 R0,1 0 R1,2 0 R2,3 4 R3

Avec les variables intermédiaires suivantes, on obtient alors la matrice Jg :

E3 = C2+3 E1 S2+3 E2
E4 = C2+3 r4
E5 = C2+3 S4
E6 = C2+3 D6 + S2+3 C5
E7 = S2+3 E1 + C2+3 E2
E8 = S2+3 r4
E9 = C1 S2+3
E10 = S1 C 4 + C 1 E 5
E11 = C 1 E 6 + S 1 D8
E12 = S1 S2+3
E13 = S1 E 5 C 1 C 4
E14 = S 1 E 6 C 1 D8
E15 = S2+3 S4
E16 = S2+3 D6 C2+3 C5
E17 = D11 S1 zy r7
E18 = E 3 z z r7
E19 = C1 E18
E20 = E 4 z z r7
E21 = C1 E20
E22 = (C2+3 zy + E12 zz )r7
E23 = ( E15 zy + E13 zz )r7
E24 = D11 C1 + zx r7
E25 = S1 E18
E26 = S1 E20
E27 = ( C2+3 zx E9 zz )r7
E28 = (E15 zx E10 zz )r7
E29 = (C1 zx + S1 zy )r7
E30 = E7 + E29
3.4. Modèle cinématique direct 33

E31 = E8 + E29
E32 = ( E12 zx + E10 zy )r7
E33 = ( E14 zx + E11 zy )r7
avec :
0 1
E17 E19 E21 E22 E23 0
BE24 E25 E26 E27 E28 0 C
B C
B 0 E30 E31 E32 E33 0 C
Jg = B
B 0
C
B S1 S1 E9 E10 E11 C
C
@ 0 C1 C1 E12 E13 E14 A
1 0 0 C2+3 E15 E16

On en termine par :

E34 = cos
E35 = sin
E36 = E35 / sin ✓
E37 = E34 / sin ✓
E38 = E36 cos ✓
E39 = E37 cos ✓

Finalement :
✓ ◆
I D
ẋ = Jg q̇,
0 C

avec : 0 1
1 0 0 0 r7 z z r7 z y
B0 1 0 r7 z z 0 r7 z x C
✓ ◆ B C
I D B0 0 1 r7 z x r7 z x 0 C
=B
B0
C
0 C B 0 0 E38 E39 1 C C
@0 0 0 E34 E35 0 A
0 0 0 E36 E37 0
Partie II
Commande des robots manipulateurs
Chapitre 4

Génération de mouvements

4.1 Les différents problèmes


Une fois connus les modèles d’un robot manipulateur, ceux-ci peuvent être utilisés
pour déterminer la position et l’orientation de l’organe terminal, afin de réaliser une
tâche donnée. Selon la nature de la tâche à effectuer on distinguera des problèmes
dits point-à-point et des problèmes dits à trajectoire ou mouvement imposé. Dans le
premier cas le mouvement du robot s’effectuera d’une configuration (point) à une autre,
la trajectoire entre les deux étant libre. Dans le second cas, la trajectoire ou le mouvement
du robot seront imposés, soit dans l’espace des configurations, par exemple pour éviter
des obstacles, soit dans l’espace opérationnel, par exemple pour que l’organe terminal se
déplace en ligne droite. Il existe donc plusieurs problèmes très différents de génération
de mouvements pour un robot manipulateur, selon que la tâche impose l’un ou l’autre de
ces scénarios.

4.1.1 Problèmes point-à-point


Le cas le plus classique est celui ou l’on doit atteindre une position et une orientation
désirées xf de l’organe terminal, à partir d’une configuration de départ q0 . Dans ce
cas précis, il suffit d’obtenir à l’aide du modèle géométrique inverse la configuration
qf associée à xf . Le problème s’exprime ensuite uniquement dans l’espace articulaire,
comme représenté sur la figure 4.1.

xf qf qr (t)
MGI génération
variateur robot
de mouvement

q0 q(t)
capteur

F IGURE 4.1 – Principe de la commande point-à-point, dans l’espace articulaire.

Comme souligné par Khalil et Dombre [Khalil 04, Khalil 13], la génération de mou-
vements point-à-point dans l’espace articulaire présente plusieurs avantages : 1) moins
38 4. Génération de mouvements

de calculs en ligne, puisque l’on n’a pas besoin des modèles une fois calculée la confi-
guration cible ; 2) aucun problème au passage des configurations singulières ; 3) les
contraintes telles que vitesses et couples maximums sont prises en compte au niveau de
la génération de mouvements (de consigne) du robot, entre les deux configurations. En
revanche, la prise en compte des contraintes géométriques entre le point de départ et le
point d’arrivée est impossible : pas de gestion des auto-collisions, ni des collisions du
robot avec l’environnement. C’est la raison pour laquelle ces mouvements point-à-point
conviennent bien à des robots industriels qui ont un espace de travail compact, avec
peu ou pas d’auto-collisions possibles entre deux points de cet espace de travail, et qui
évoluent dans des environnements peu encombrés. C’est en particulier le plus souvent le
cas des robots qui travaillent dans des cellules dédiées, comme à la figure 4.2.

F IGURE 4.2 – Cellule robotisée et robot Epson SCARA.

4.1.2 Problèmes à mouvement opérationnel imposé


Dans le cas où le mouvement opérationnel est imposé, il s’agit de calculer les com-
mandes articulaires du robot permettant de suivre au mieux la trajectoire opérationnelle
au cours du temps, comme représenté sur la figure 4.3.

xf xr (t) cinématique qr (t)


génération variateur robot
de mouvement + inverse

x(t)
q(t)
x0
MGD capteur

F IGURE 4.3 – Principe de la commande point-à-point, dans l’espace articulaire.


4.1. Les différents problèmes 39

Le mouvement à suivre xr (t) peut résulter d’une génération préalable, comme par
exemple si l’on souhaite que l’organe terminal suive une ligne droite entre la situation
courante x0 et la situation finale xf (exemple figure 4.4). Dans ce cas, il ne s’agit pas
d’une tâche point-à-point, puisque la trajectoire entre le point initial et le point final est
imposée. Dans d’autres cas, le mouvement opérationnel à suivre xr (t) sera complètement
défini par la tâche, et ne nécessitera pas de planification préalable.

F IGURE 4.4 – Tâche de soudage à l’arc de tubes, robot ABB.

La résolution de ce type de problème permet bien sûr de réaliser des tâches plus
complexes que les tâches point-à-point. Cette approche permet par ailleurs de reformuler
les problèmes de commande selon une approche dite référencée capteur, ou l’on utilise
des capteurs extéroceptifs (des caméras par exemple) pour asservir la situation de l’organe
terminal du robot. En revanche, elle rend difficile, voire impossible, une prise en compte
systématique des contraintes telles que les butées articulaires, les limites de vitesse ou
l’évitement des obstacles. Elle oblige à utiliser à chaque itération un ou plusieurs modèles
du robot pour traduire en commande articulaire la position (ou la vitesse) désirée au
niveau de l’organe terminal, et pour reconstruire la situation de l’organe terminal à partir
des mesures des capteurs placés au niveau des articulations. Enfin, ce type de commande
peut être mis en échec lors du passage par une configuration singulière dans laquelle
la continuité de la commande ne sera plus assurée, le problème de cinématique inverse
n’ayant alors plus de solution. Il existe évidemment certaines solutions aux différents
problèmes posés, mais nous ne les aborderons cependant pas dans le cadre de ce cours.
Le lecteur intéressé pourra se référer à [Khatib 08] ou [Nakamura 91]. Notamment nous
n’aborderons que très peu la notion de redondance et son utilisation pour résoudre les
problèmes de commande.
40 4. Génération de mouvements

4.2 Système de commande d’un robot


D’après les explications précédentes, on aura compris que la commande d’un robot
doit permettre différentes fonctionnalités. En particulier, elle doit autoriser la génération
et l’exécution de mouvements définis soit dans l’espace articulaire, soit dans l’espace
opérationnel. Les fonctions principales sont des calculs de références et l’asservissement
des actionneurs. Pour cela, il faut évidemment une architecture matérielle adaptée :
– une partie puissance, qui réalise l’alimentation des actionneurs du robot et leur
asservissement, afin que ceux-ci puissent fonctionner à vitesse variable ;
– une partie contrôleur, pour générer les consignes du robot et assurer un certain
nombre de fonctionnalités de supervision, de communication et de programmation.
La figure 4.6 donne le schéma synoptique du système de commande d’un robot Adept
Viper 650. On y retrouve la partie puissance (MB-60R) et la partie contrôleur (Smart-
Controller CX). Nous allons décrire l’architecture générale d’un dispositif de commande
de robot à partir de cet exemple.

F IGURE 4.5 – Système de commande d’un robot Adept Viper s650 [Adept 13b].
4.2. Système de commande d’un robot 41

4.2.1 Contrôleur de robot


Dans le système de commande de la figure 4.5, c’est le module Adept SmartController
(figure 4.6) qui réalise la génération et la supervision du mouvement. Un tel système
est en général générique, ce qui permet de n’avoir qu’un générateur de mouvement
pour toute une famille de robots. Ce module utilise un système d’exploitation dédié, le
V+ [Adept 13a], évolution de l’OS développé à l’époque d’Unimation, aux premières
heures de la robotique. On doit connecter ce contrôleur à un PC par liaison Ethernet
(la connexion clavier/souris/écran est aussi possible) afin de paramétrer le système
ou programmer les mouvements du robot. Pour cela, on utilise le langage robotique
développé pour le V+, dont une illustration est donnée par la séquence d’instructions de
la table 4.1. Ce langage est interprété, et l’on peut programmer des scripts à l’aide de
l’éditeur See.
; Define a simple transformation
SET loc_a = TRANS(300,50,350,0,180,0)
; Move to the location
MOVE loc_a
BREAK
; Move to a location offset -50mm in X, 20mm in Y,
; and 30mm in Z relative to "loc_a"
MOVE loc_a :TRANS(-50, 20, 30)
BREAK
; Define "loc_b" to be the current location relative
; to "loc_a"
HERE loc_a :loc_b ;loc_b = -50, 20, 30, 0, 0, 0
BREAK
; Define "loc_c" as the vector sum of "loc_a" and "loc_b"
SET loc_c = loc_a :loc_b ;loc_c = 350, 70, 320, 0, 180, 0

Once this code has run, loc_b exists as a transformation that is completely independent of loc_a. The following instruction
moves the robot another -50mm in the x, 20mm in the y, and 30mm in the z direction (relative to loc_c) :
MOVE loc_c :loc_b
Multiple relative transformations can be chained together. If we define loc_d to have the value 0, 50, 0, 0, 0, 0 :
SET loc_d = TRANS(0,50)
and then issue the following MOVE instruction :
MOVE loc_a :loc_b :loc_d
the robot moves to a position x = -50mm, y =70mm, and z = 30mm relative to loc_a.

TABLE 4.1 – Exemple de séquence d’instructions en V+ [Adept 13a].

Ceci suffit généralement à la plupart des fonctionnalités requises pour utiliser des
robots dans un contexte industriel, moyennant le fait que le contrôleur de robot puisse
échanger des entrées/sorties avec des dispositifs tiers (convoyeur, automate, capteurs) en
utilisant un des bus de communication et le protocole associé (figure 4.6).
Adept utilise en particulier la liaison IEEE 1394 (FireWire) pour la communication
avec le contrôleur, qui autorise des transferts à haut débit (800 Mb/s pour le FireWire 800).
Celle-ci présente l’intérêt d’être cadencée à fréquence élevée, à 8kHz, et de permettre
un fonctionnement dit en temps-réel. Ceci implique qu’outre la validité des données
transférées, le bus est aussi capable de garantir le cadencement temporel. Le contrôleur
dispose de nombreuses autres possibilités de communication (Fast Ethernet, Device-
Net=bus terrain CAN, liaisons séries RS-232, XDIO=entrées/sorties tout ou rien, etc.).
Dans le cas du SmartController Adept, on dispose aussi de fonctionnalités dédiées à la
commande du robot par vision, ou au pilotage du robot de manière coordonnée avec
un convoyeur automatisé. Ceci s’explique par la destination industrielle de ce type de
robots.
42 4. Génération de mouvements

F IGURE 4.6 – Entrées-sorties Adept SmartController CX [Adept 13b].

Un connecteur particulier (XMPC) permet de relier au SmartController un boîtier


de commande manuelle (pendant en anglais, figure 4.7). A l’aide de celui-ci, on peut
accéder à un large jeu de fonctionnalités, notamment au pilotage manuel des mouvements
articulaires, dans le repère de base ou dans le repère outil. Ce système est notamment
pratique pour apprendre de façon interactive des configurations particulières ou un cycle
de fonctionnement. On peut notamment enregistrer des variables (configurations par
exemple), qui seront par la suite disponibles pour être utilisées dans les programmes. Pour
des raisons de sécurité le pendant du robot est généralement associé à un interrupteur
qu’il faut maintenir pour que les moteurs du robot soient alimentés.

F IGURE 4.7 – Boîtier de commande manuelle T1 Adept [Adept 13b].


4.2. Système de commande d’un robot 43

4.2.2 Variateur de vitesse


Les puissances mises en jeu dans les systèmes de commande de robots sont très va-
riables, et dépendent beaucoup des masses en mouvement et des vitesses de déplacement
autorisées. A titre d’exemple, un robot Adept Viper s650 consommera une puissance
maximale de 2kW (pendant un temps limité à environ 100 ms) s’il porte une charge utile
de 5 kg et que toutes les articulations bougent en même temps. Pour fournir au robot la
puissance suffisante, ainsi que pour piloter la vitesse ou la position des axes, on utilise un
variateur de vitesse, système qui combine des technologies issues de l’électrotechnique
et de l’automatique. Le variateur MotionBlox-60R, utilisé dans le système de commande
de la figure 4.5, autorise deux grandes fonctions pour la commande du robot :
– l’alimentation des moteurs par une tension variable ;
– l’asservissement du courant, ainsi que de la vitesse ou de la position de chacun des
axes du robot.
Les références des asservissements de position ou de vitesse sont transmises au variateur
de vitesse MB-60R par le contrôleur de robot, à une fréquence de 1kHz, sensiblement
inférieure à la fréquence maximale de la liaison FireWire. Ceci s’explique par la nécessité
d’échanger par ailleurs entre le variateur et le contrôleur différentes informations (valeurs
codeurs, statuts par exemple), qui permettent la supervision du robot. Le variateur de
vitesse, qui gère la partie puissance, comporte aussi des fonctionnalités permettant le
diagnostic du bon fonctionnement des moteurs (leds de statut, erreur de position, chauffe
des moteurs notamment). Par ailleurs, il gère l’électronique permettant le contrôle des
freins présents sur les axes moteurs du robot (un connecteur électrique et un sélecteur
manuel permettent de relâcher les freins, si besoin). Enfin, il dispose d’un arrêt d’urgence
pour couper la puissance du robot.
Chapitre 5

Technologie

5.1 Motorisation
La motorisation des axes des robots résulte le plus souvent de l’association d’un
moteur électrique avec un réducteur de vitesse. Cet ensemble dit moto-réducteur est
alimenté par un dispositif électronique appelé convertisseur statique. Equipé d’un capteur
de position, le moto-réducteur peut être asservi en position ou vitesse. Le système
d’électronique de puissance, associant convertisseur et asservissements est généralement
appelé variateur de vitesse. Il est adapté à la technologie de moteur considérée.

5.1.1 Moteurs électriques pour la robotique


Un moteur est un dispositif électromécanique qui convertit une énergie électrique
d’entrée en énergie mécanique. Les moteurs électriques existants ne sont pas tous adaptés
à la robotique. Les moteurs dédiés à la robotique sont généralement des dispositifs de
faible à moyenne puissance, typiquement < 1kW. Ils doivent pouvoir être commandés
précisément avec un bonne résolution angulaire. De ce fait, des actionneurs comme
les moteurs pas-à-pas ou les moteurs asynchrones sont peu répandus en robotique. Les
premiers sont en effet le plus souvent réservés à une utilisation en boucle ouverte, dotés
d’un faible couple et d’une précision médiocre. Les seconds sont le plus souvent réservés
aux fortes puissance, par exemple pour la traction électrique, et leur électronique est
complexe et coûteuse. En robotique, les moteurs les plus fréquents sont les moteurs à
courant continu, avec ou sans balais.

5.1.2 Moteurs à courant continu (avec balais)


Le moteur à courant continu est un dispositif très ancien, dont la commercialisation
remonte à la fin du 19ème siècle [Wikipedia 13]. Il fonctionne selon le principe de la
figure 5.1. Le bobinage du moteur est disposé sur l’induit mobile (rotor). Ce bobinage
est placé dans un champ magnétique, permanent ou non, produit par l’inducteur (stator).
On supposera pour simplifier que cette excitation est séparée et constante, comme c’est
le cas notamment lorsque l’inducteur est constitué d’aimants. Le courant circulant dans
les spires de l’induit du moteur, des forces électriques lui sont appliquées et, grâce à un
dispositif adapté (balais et collecteur, visibles sur la figure 5.2), les forces s’additionnent
pour participer à la rotation. Ce principe de commutation mécanique du courant dans les
46 5. Technologie

F IGURE 5.1 – Principe de fonctionnement d’un moteur à courant continu [Bernot 99].

spires du moteur n’est pas sans incidence sur le fonctionnement du moteur. Il en limite
tout d’abord la vitesse maximale. Par ailleurs, les balais qui appuient sur le collecteur
grâce à un système de ressorts sont en graphite pour permettre le passage du courant
(et une usure maîtrisée). Le collecteur, qui est lui en cuivre, ne s’use pratiquement pas,
ce qui est souhaitable puisque tout le bobinage est soudé sur ce collecteur. Le moteur à
courant continu avec balais nécessite donc une maintenance régulière. Par ailleurs, le
passage du courant à travers le contact glissant provoque parfois des étincelles, ce qui
limite l’usage de ces moteurs dans certains environnements, explosifs notamment.

F IGURE 5.2 – Moteur à courant continu Maxon (http://www.maxonmotor.com).


5.1. Motorisation 47

5.1.3 Moteurs à courant continu sans balais


L’appellation de ces moteurs (héritée de l’anglais DC brushless motors) est trom-
peuse. Il ne s’agit en effet pas de moteurs à courant continu, mais de moteurs à courant
alternatif : des moteurs synchrones auto-pilotés. Ils furent développés et commercialisés
à partir de 1962 [Wikipedia 13], notamment pour palier les défauts des moteurs à courant
continu, principalement dus au frottement des balais sur le collecteur. Les moteurs à
courant continu sans balais ont ainsi un meilleur rendement, et des propriétés mécaniques
meilleures. Ils offrent notamment de meilleurs couples massiques et des vitesses de
rotation maximales plus grandes. Leur fonctionnement, sans frottements entre rotor et
stator, leur confère une plus grande fiabilité et un temps de vie supérieur. Ils occasionnent
moins de bruit de commutation et aucune étincelle. L’absence de bobinage au rotor per-
met souvent un refroidissement par simple convection, sans circulation forcée d’air vers
l’extérieur. Ceci peut donc permettre une meilleure étanchéité. La vitesse de rotation reste
limitée mécaniquement par les liaisons pivot entre bâti et rotor, et par l’échauffement qui
a un effet sur l’efficacité des aimants. Ces moteurs présentent toutefois certains défauts
(outre le prix), comme des effets d’ondulation de couple aux basses vitesses (cogging).
Ces meilleures caractéristiques sont en revanche obtenues au prix d’un fonctionne-
ment plus délicat à modéliser, et d’une électronique de commande plus complexe et
plus coûteuse. Un moteur à courant continu sans balais est généralement équipé au rotor
d’aimants placés dans le champ tournant produit par le bobinage triphasé du stator. De
manière très grossière, on peut dire que le dispositif électronique de commande du mo-
teur sans balais se substitue au convertisseur électromécanique constitué de l’ensemble
balais+collecteur du moteur à courant continu. Pour cela, il est nécessaire de disposer de
capteur à effet Hall pour repérer la position du rotor afin de réaliser l’auto-pilotage du
moteur.
Pour en savoir plus, on consultera le cours de (l’excellent) B. Multon [Multon 04].

5.1.4 Réducteurs
Réducteurs conventionnels et réducteurs planétaires
Les réducteurs les plus conventionnels consistent en un ensemble de roues engrénant
les unes sur les autres, grâce au profil de leur dentures qui peuvent être droites ou
hélicoïdales (cf. figure 5.3). Ces réducteurs offrent un rapport de réduction égal au
rapport du nombre de dents des roues dentées. La plus petite des roues, nommée pignon,

F IGURE 5.3 – Réducteurs Emerson à dentures droite (gauche) et hélicoïdale (droite).


48 5. Technologie

montée sur l’arbre moteur, tourne plus vite que la plus grande (nommée simplement
roue), comme on le devine pour le réducteur de la figure 5.3, gauche. Il est fréquent de
préférer les engrenages à denture hélicoïdale (figure 5.3, droite) aux engrenages à denture
droite pour des raisons de bruit et de contraintes mécaniques sur les dentures.
Bien que l’on puisse utiliser des roues possédant des diamètres très différents pour
augmenter le taux de réduction, il est généralement souhaitable de mettre plutôt plusieurs
étages de réduction pour obtenir ce résultat de manière beaucoup plus compacte (figure
5.4 gauche). On peut ainsi retrouver une sortie coaxiale, ce qui est aussi un avantage.

F IGURE 5.4 – Réducteurs Maxon compacts à dentures droite (gauche) ou à train épicy-
cloïdal (droite) (http://www.maxonmotor.com).

Par ailleurs, il existe des réducteurs dits planétaires (ou à train épicycloïdal), qui ne
sont pas constitués de roues engrenant entre elles par paires. Les trains épicycloïdaux
possèdent comme précédemment un arbre de sortie coaxial à l’arbre d’entrée et sont
le plus souvent caractérisés par des grands rapports de réduction et la possibilité de
transmettre des couples élevés. Les trains épicycloïdaux comportent deux arbres coaxiaux
dits planétaires, le planétaire extérieur est généralement appelé couronne. Des satellites,
généralement au nombre de trois engrènent avec les deux planétaires, tournant ainsi
autour de leur axe commun. Les satellites sont reliés entre eux par un porte-satellites.
Le plus fréquemment, c’est la couronne qui est reliée au bâti, comme sur la figure 5.5,
où l’arbre d’entrée est le planétaire intérieur et l’arbre de sortie le porte satellite. Pour
bien visualiser le fonctionnement d’un réducteur à train épicycloïdal, rien de tel qu’une
animation comme on en trouve de nombreuses sur Internet [Educmeca 13].

Réducteurs Harmonic Drive


Les réducteurs Harmonic Drive ont un principe très différent des réducteurs classiques
[Harmonic Drive 13]. Ils utilisent une cloche déformable (voir figure 5.6), entrainée par
une partie mobile légèrement elliptique. Cette cloche engrène sur une couronne circulaire
possédant 2 dents de plus que la cloche. Ce principe, aujourd’hui très répandu dans
l’industrie nécessite une grande qualité de fabrication. Les réducteurs Harmonic Drive
sont ainsi assez coûteux. En revanche, ils ont l’avantage de procurer des rapports de
réduction élevés avec seulement trois éléments mécaniques (30:1, 50:1, 80:1 classique-
ment, jusqu’à 320:1) pour un relativement faible encombrement. Ils ne présentent par
ailleurs pas de jeu angulaire, et peuvent transmettre des couples importants.
5.1. Motorisation 49

F IGURE 5.5 – Principe des réducteurs à trains épicycloïdaux.

F IGURE 5.6 – Réducteur Harmonic Drive (http://www.harmonicdrive.de).


50 5. Technologie

5.2 Mesure de position


De très nombreuses technologies sont envisageables pour mesurer la position d’un
corps relativement à un autre (résistive, capacitive, inductive). En robotique, on utilise
principalement des capteurs optiques appelés codeurs incrémentaux. On mentionnera
toutefois pour mémoire le cas des génératrices et des résolveurs, qui présentent l’avantage
de fournir des signaux continus et peuvent permettre d’atteindre de bonnes précisions ou
de donner des signaux suffisamment peu bruités pour être dérivés.

5.2.1 Codeurs incrémentaux


Les codeurs incrémentaux sont de loin la solution la plus classique pour mesure
la position d’un axe en rotation (une version règle optique existe pour les axes en
translation). Une photodiode émet un signal continu qui est récupéré par des récepteurs,
selon le principe de la figure 5.7. Un masque permet de produire deux signaux lumineux
déphasés. Une fois ceux-ci perçus sur le récepteur, on obtient finalement trois signaux,
correspondant aux voies dénommées A, B et I (ou Z). La roue dispose d’un nombre n de
franges qui vont être à l’origine de 2n changements de niveau logique du signal perçu. Le
secteur angulaire couvert par une frange vaut 360/n degrés. La voix B étant décalée au
niveau du récepteur d’un quart de période, on peut ainsi déterminer le sens de rotation, et
multiplier encore par 2 la résolution de la mesure de position (4 changements de niveau
logique de A ou B par période). On parle de quadruple précision. Il arrive fréquemment
que les capteurs optiques contiennent les voies complémentaires Ā, B̄, pour assurer une
certaine redondance dans l’opération de comptage, afin d’éliminer les perturbations.

F IGURE 5.7 – Principe d’un codeur optique (http://www.maxonmotor.com)


.

Parmi les avantages de cette technologie, on mentionnera la très bonne compacité


du capteur, et le fait qu’il ne perturbe que très peu le moteur : inertie négligeable, pas
de frottement, pas de bruit électromagnétique. Par ailleurs, ces capteurs peuvent offrir
de bonnes résolutions. En revanche, ils ne procurent pas la position absolue de l’axe. Il
existe cependant des codeurs optiques absolus, utilisant des roues plus complexes, avec
un nombre de voies plus important, afin de coder la position du rotor. Les différentes
voix forment un mot binaire, ce qui permet de reconstruire la position absolue (voir un
5.2. Mesure de position 51

exemple de roue codeuse à la figure 5.8). Ces capteurs, beaucoup plus onéreux que les
simples codeurs incrémentaux, peuvent être préférés en robotique malgré leur prix, afin
d’éviter des fastidieuses procédures de recalage. Enfin, autre inconvénient des codeurs
optiques, la mesure de position résultante est discrète d’où un effet de quantification
du signal de position, qui est gênant en particulier aux très basses vitesses, ou lorsque
l’on cherche à obtenir la vitesse de rotation par dérivation du signal de position. La
documentation technique du codeur Heidenhan HEDL 5540, préconisé pour le moteur
Maxon RE36, est donnée à la figure 5.23, en fin de chapitre.

F IGURE 5.8 – Différentes roues codeuses (Catalogue Danaher).

5.2.2 Génératices tachymétriques


Une génératrice tachymétrique est une machine à courant continu, qui est utilisée
en génératrice. Au lieu d’alimenter le bobinage rotorique, comme dans le cas d’un
moteur, on mesure la force électromotrice produite suite à la rotation de l’axe auquel
la génératrice est accouplée. Ceci permet une mesure continue et absolue de la vitesse
de l’axe, préférable à la dérivation d’un signal de position codeur. En revanche, ce type
de capteur est plus encombrant, et beaucoup plus coûteux que les capteurs optiques.
La documentation technique de la génératrice préconisée pour être associée au moteur
Maxon RE36, est donnée à la figure 5.24. Cette génératrice est équipée d’un rotor sans
fer pour limiter son inertie.

5.2.3 Résolveurs
Un résolveur est un dispositif monté sur l’arbre du moteur et aligné avec le champ
magnétique du rotor du moteur (voir figure 5.9). Il possède un bobinage primaire tournant
au rotor, et deux bobinages secondaires diphasés. Le couplage magnétique entre les
bobinages primaire et secondaire dépend de la position du rotor. Lorsque l’on alimente
le bobinage rotorique avec une tension alternative, on récupère ainsi deux tensions
alternatives déphasées de 90 degrés sur les bobinages secondaires. Les résolveurs sont
appréciés pour leur robustesse et leur longue durée de vie, liées notamment à l’absence
d’usure mécanique. Les signaux mesurés peuvent être transmis sans perturbations sur de
longues distances, mais leur exploitation nécessite une électronique adaptée. Un avantage
des résolveurs est de fournir potentiellement des informations de position et de vitesse
exploitables avec un seul capteur. La documentation technique du résolveur préconisé
pour le moteur Maxon RE36, est donnée à la figure ? ?.
52 5. Technologie

F IGURE 5.9 – Principe d’un résolveur (http://www.maxonmotor.com).

5.3 Variateurs de vitesse


Le principe de fonctionnement des variateurs de vitesse est donné à travers l’exemple
du moteur à courant continu à excitation indépendante. Néanmoins, les principes exposés
restent valables et permettent de comprendre la conception des variateurs de vitesse des
autres moteurs électriques. Les résultats présentés s’inspirent largement des articles sur
la moteur à courant continu et sa commande publiés dans les Techniques de l’Ingénieur.
Comme nous l’avons déjà expliqué, un variateur de vitesse est un dispositif permettant de
réaliser l’alimentation et la commande d’un moteur. Son schéma de principe est donné à
la figure 5.10. On distingue dans un variateur deux niveaux de commande. La commande
rapprochée est celle qui détermine les modes de fonctionnement et de commutation du
convertisseur statique. La commande éloignée s’intéresse quant à elle aux problèmes de
commande d’axe : asservissements de courant, de position ou de vitesse.

F IGURE 5.10 – Schéma général d’un variateur de vitesse [Louis 02a].

Nous allons dans les paragraphes suivants présenter les problèmes d’asservissement
de courant et de vitesse propres aux variateurs, ainsi que des exemples pratiques.

5.3.1 Principe et modélisation de l’actionneur


Le schéma équivalent d’un moteur à courant continu est donné à la figure 5.11.
L’équation électrique, liant la tension v(t) aux bornes de l’induit (rotor) et le courant
d’induit i(t) s’écrit :
di(t)
Ri(t) + L + e(t) = v(t) (5.1)
dt
5.3. Variateurs de vitesse 53

c
v B
!

R L
i

e
v

F IGURE 5.11 – Schéma d’un moteur à courant continu.

où R est la résistance de l’induit du moteur à courant continu, L son inductance et e(t) la


force électromotrice, qui est proportionnelle à la vitesse de rotation du rotor :

e(t) = Ke !(t) (5.2)

L’équation mécanique rendant compte des couples agissant sur le rotor s’écrit :
d!(t)
c(t) c0 (t) B!(t) = J (5.3)
dt
où c(t) est le couple moteur, c0 (t) est le couple résistant (charge et perturbations), B le
coefficient de frottement visqueux et J le moment d’inertie du rotor. Par construction, le
couple c(t) est proportionnel au courant d’induit i(t) :

c(t) = Km i(t) (5.4)

En règle générale les coefficients Ke et Km sont si proches qu’il est raisonnable de les
considérer égaux, négligeant alors les pertes durant la conversion électromécanique de
puissance. On pose Kem = Ke = Km .
Le modèle du moteur à courant continu peut être mis sous forme de schéma-bloc,
comme représenté à la figure 5.12.

C0 (s)
V (s) + I(s) C(s) + ⌦(s)
1 1
Kem
R + Ls B + Js
E(s)

Kem

F IGURE 5.12 – Schéma de principe d’un moteur à courant continu.


54 5. Technologie

Modèles pour l’asservissement de vitesse du moteur à courant continu


En supposant c0 (t) = 0 les équations (5.3) et (5.4) donnent :
d!(t)
Kem i(t) = B!(t) + J (5.5)
dt
En dérivant (5.5), il vient :
di(t) d!(t) d2 !(t)
Kem =B +J (5.6)
dt dt dt2
En combinant (5.5) et (5.6) avec (5.1) et (5.2) :
✓ ◆ ✓ ◆
R d!(t) L d!(t) d2 !(t)
B!(t) + J + B +J + Kem !(t) = v(t) (5.7)
Kem dt Kem dt dt2

Modèle d’ordre un On néglige l’influence de l’inductance d’induit. L’équation (5.7)


se simplifie en :
2
RB + Kem RJ d!(t)
!(t) + = v(t)
Kem Kem dt
soit :
RJ d!(t) Kem
!(t) + 2
= 2
v(t)
RB + Kem dt RB + Kem
La fonction de transfert reliant la commande en tension du moteur à courant continu
V (s) et sa vitesse ⌦(s) est :
⌦(s) K
G(s) = = (5.8)
V (s) 1 + ⌧em s
si l’on définit la constante de temps électromécanique du système :
RJ
⌧em = 2
RB + Kem
et son gain statique :
Kem
K= 2
RB + Kem
Le système ainsi modélisé est donc d’ordre un. Il possède un pôle stable p = 1/⌧em .

Modèle d’ordre deux On lève maintenant l’hypothèse du paragraphe précédent pour


obtenir un modèle plus fin du moteur à courant continu. Deux expressions intéressantes
de la fonction de transfert sont alors possibles :
1. En ordonnant (5.7) de façon à avoir un coefficient de un devant le degré de
dérivation le plus élevé, il vient :
d2 !(t) RJ + LB d!(t) RB + Kem
2
Kem
2
+ + !(t) = v(t) (5.9)
dt LJ dt LJ LJ
ce qui conduit à la fonction de transfert sous la forme :
Kem
LJ
G(s) = 2
RB+Kem
s2 + ( R
L
+ B
J
)s + LJ
5.3. Variateurs de vitesse 55

Cette écriture est intéressante pour identifier la fonction de transfert sous la forme
canonique :
K !n2
G(s) = 2
s + 2⇠!n s + !n2
2. En ordonnant (5.7) de façon à avoir un coefficient de un devant le degré de
dérivation le plus faible (i.e. !(t)), il vient :

RJ + LB d!(t) LJ d2 !(t) Kem


!(t) + 2
+ 2 2
= 2
v(t) (5.10)
RB + Kem dt RB + Kem dt RB + Kem
ce qui conduit à la fonction de transfert sous la forme :
K
G(s) = (5.11)
1 + (⌧em + µ⌧el )s + ⌧el ⌧em s2
si l’on définit la constante de temps électrique du système :
L
⌧el =
R
On note encore que :
RB
µ= 2
RB + Kem
est petit devant un (terme lié au frottement). Enfin, comme on peut raisonnablement
supposer que ⌧el ⌧ ⌧em :

⌧em + µ⌧el ' ⌧em ' ⌧em + ⌧el

Cela permet d’écrire finalement la fonction de transfert sous la forme :


⌦(s) K
G(s) = =
V (s) (1 + ⌧el s)(1 + ⌧em s)

Les pôles du système p1 = 1/⌧el et p2 = 1/⌧em apparaissent alors clairement.

Modèles pour l’asservissement de position du moteur à courant continu La posi-


tion du rotor se déduisant de sa vitesse par intégration on obtient aisément la fonction
de transfert reliant la tension d’induit V (s) et sa position ⇥(s) = L{✓(t)}, d’après les
résultats du paragraphe précédent. D’après le cas le plus général étudié précédemment, il
vient :
⇥(s) K
G(s) = =
V (s) s(1 + ⌧el s)(1 + ⌧em s)
Le système possède trois pôles p1 = 0, p2 = 1/⌧el et p3 = 1/⌧em .

Ce chapitre se termine par la documentation technique (figure 5.20) d’un moteur


à courant continu Maxon Maxon RE36 118800 (source http://www.maxonmotor.com)
qui sert à titre d’exemple dans ce cours. Le guide des grandeurs utilisées dans cette doc
est également joint à la figure 5.21. On notera les variations sensibles entre les gran-
deurs choisies par le constructeur pour décrire le modèle du moteur et celles présentées
précédemment. On fera également attention à l’usage des unités non SI.
56 5. Technologie

5.3.2 Principe et modélisation du convertisseur statique


L’étage de puissance permettant d’alimenter un moteur à courant continu à partir d’un
réseau électrique alternatif est constitué d’un redresseur (conversion alternatif/continu),
suivi par un hacheur (conversion continu/continu). Différents cas se présentent selon la
source d’énergie (monophasé, triphasé) et la technologie des convertisseurs statiques
utilisés (pont redresseur commandé ou non, hacheur 1, 2 ou 4 quadrants). La figure 5.13
illustre l’étage de puissance d’un moteur alimenté à partir du réseau triphasé avec un
pont redresseur en commutation naturelle et un hacheur quatre quadrants.

F IGURE 5.13 – Schéma du convertisseur statique [Louis 02b].

Le choix de la source d’alimentation dépend généralement des besoins en termes


de puissance. Dans le cas de systèmes embarqués l’ensemble réseau+redresseur est
remplacé par des batteries. Le choix le plus important pour la variation de vitesse
concerne le hacheur. L’utilisation d’un hacheur quatre quadrants permet d’envisager un
fonctionnement dans les différents modes possibles en variation de vitesse. Le moteur
pourra fonctionner en vitesse dans les deux sens de rotation et le freinage sera rendu
possible quand le courant sera renvoyé vers le module de dissipation. Dans ce cas, un
module de dissipation est nécessaire. Ces principes déjà vus dans ce cours sont rappelés
à la figure 5.14.
Le hacheur fournit une tension de valeur moyenne réglable par le biais de son rapport
cyclique ↵ 2 [0 1]. Le choix de la fréquence de commutation du hacheur dépend de
l’application. Dans le cas d’applications de faible puissance (P 6 1 kW) la fréquence
de commutation est choisie élevée, au-delà du seuil audible par l’homme, soit environ
20 kHz. En pratique la fréquence de commutation est plutôt de 50 kHz. Fonctionnant de
manière échantillonnée à fréquence élevée, le hacheur peut être considéré en première
approximation comme une source de tension continue de valeur réglable. Ainsi, la
relation entre la tension d’alimentation du moteur et la tension de commande du rapport
cyclique du hacheur peut être considérée comme un simple gain.
5.3. Variateurs de vitesse 57

F IGURE 5.14 – Fonctionnement 4 quadrants du hacheur [Louis 02b].

5.3.3 Variation de vitesse du moteur à courant continu


D’après le modèle dynamique du moteur obtenu précédemment, on peut étudier la
réponse du système en boucle ouverte. Pour un échelon de tension de consigne, appliqué
au moteur, les réponses indicielles en vitesse et en courant sont représentées à la figure
5.15. Le cas considéré est celui d’un moteur Maxon F2260, pour lequel :

Kem = 100 N m/A


R = 1, 44 ⌦
L = 0, 56 mH
J = 129, 0 10 6 kg m2
B = 7, 19 10 5 N s (nécessite un effort pour le déduire de la doc. . .)

On observe un dépassement du courant qui peut atteindre des valeurs très importantes
lors des transitoires. Ceci s’explique par la présence d’un zéro dans la fonction de

F IGURE 5.15 – Réponse en boucle ouverte du moteur à courant continu (non chargé).
58 5. Technologie

transfert :
I(s)
GI (s) =
V (s)
Cette fonction de transfert s’obtient aisément à partir du schéma de la figure 5.12
(analogie avec le calcul du signal d’erreur d’un asservissement). On obtient :

Js + B
GI (s) =
LJs2 2
+ (RJ + LB)s + RB + Kem

Le diagramme de Bode correspondant est représenté à la figure 5.16.

Bode Diagram
0

−10
Magnitude (dB)

−20

−30

−40

−50
90

45
Phase (deg)

−45

−90
−2 −1 0 1 2 3 4 5
10 10 10 10 10 10 10 10
Frequency (rad/sec)

F IGURE 5.16 – Diagramme de Bode de GI (s).

Asservissement de courant
Les dépassements de courant observés précédemment constituent un problème, tant
pour le convertisseur statique que pour le moteur. Si le système (convertisseur+moteur)
a été dimensionné pour une utilisation nominale, les transitoires de courant risquent de
détruire les composants de puissance du convertisseur statique. Par ailleurs, dans le cas où
l’on utilise des éléments commerciaux, il arrive que le convertisseur soit surdimensionné,
car pouvant fonctionner avec une gamme de moteurs de différentes puissances. Alors, le
convertisseur pourra délivrer le courant appelé et ce sont les conducteurs du moteur qui
risquent d’être détruits par une surintensité. Pour ces raisons il convient donc :
1. d’asservir le courant pour avoir la maîtrise des dépassements ;
2. de limiter le courant maximum pour protéger le moteur dans tous les cas.
5.3. Variateurs de vitesse 59

L’étude de l’asservissement de courant du moteur à courant continu peut se faire sous


deux angles. Soit on fait une synthèse en utilisant la fonction de transfert complète
GI (s). Soit on fait le raisonnement approché suivant. La force électromotrice étant une
grandeur proportionnelle à la vitesse de rotation, ses variations sont lentes devant celles
du courant d’induit. On peut donc la considérer comme une perturbation dans le transfert
tension-courant, d’après le schéma de la figure 5.12. Sous ces hypothèses, la fonction de
transfert GI (s) se résume à :

1 1 1
GI (s) = =
R + Ls R 1 + ⌧e s
La fonction de transfert étant celle d’un premier ordre une simple correction PI :
✓ ◆
1
CI (s) = Kp 1 +
⌧i s

conduit à :
Kp 1 + ⌧ i s
CI (s)GI (s) =
R⌧i s(1 + ⌧e s)
Le choix le plus simple consiste alors à compenser le pôle électrique en choisissant
⌧i = ⌧e , ce qui conduit à un système en boucle fermé d’ordre un de fonction de transfert :
1 1
GIBF (s) =
Ki 1 + KR⌧ i
p Ki
s

où Ki est le gain du capteur assurant la mesure de courant. Le temps de réponse de la


boucle de courant se règle alors aisément en choisissant Kp .

Remarque 1 L’étude précédente est effectuée sans tenir compte du hacheur. Or, la
modélisation proposée pour le hacheur (qui est un système échantillonné) occulte le fait
qu’entre la tension de commande du hacheur et sa sortie il existe en fait un retard, dit
statistique, d’une demi-période d’échantillonnage. La prise en compte de ce retard se fait
dans certains cas en représentant son effet par une fonction de transfert du premier ordre
(passe-bas de constante de temps la demi-période de commutation). Ceci n’est bien sûr
valable que lorsque le temps de retard reste petit devant la dynamique du système, si bien
que l’on préférera ne pas tenir compte de l’effet retard du hacheur dans la synthèse du
correcteur et considérer simplement que la bande passante du système est limitée.

Asservissement de vitesse
L’asservissement de vitesse du moteur à courant continu est réalisé une fois réglée la
boucle de courant. On a donc un asservissement avec boucles imbriquées ou asservisse-
ment cascade, répondant au schéma de principe présenté en introduction. Pour réaliser
l’asservissement de la vitesse du rotor d’un moteur à courant continu, la tension image
de la vitesse mesurée est comparée à une tension de référence vr , image de la vitesse
de rotation désirée !r . La vitesse du rotor est mesurée par l’un ou l’autre des capteurs
possibles (génératrice tachymétrique, synchro-résolveur, codeur) et la tension image
est directement obtenue en sortie du procédé dans le cas des capteurs analogiques, ou
après comptage dans le cas des codeurs incrémentaux. En faisant abstraction du mode de
60 5. Technologie

⌦(s)
Vr (s) + + V (s)
C⌦ (s) CI (s) mcc

Ki I(s)

V⌦ (s) = K! ⌦(s)
K!

F IGURE 5.17 – Asservissement de vitesse d’un moteur à courant continu avec boucle
interne de courant.

mesure, qui est ici assimilé à un simple gain K! , le schéma-bloc de l’asservissement de


vitesse est représenté à la figure 5.17.
Si la boucle de courant est réglée comme suggéré précédemment, elle a alors une
fonction de transfert du premier ordre et il est facile de régler la boucle de vitesse. Le
fonctionnement du moteur à courant continu asservi en courant est alors décrit par la
figure 5.18 (d’après le schéma 5.12). En toute rigueur, il faudrait réécrire les équations
asservissement de courant
Vr (s) V (s) I(s) C(s) ⌦(s)
+ 1 1
CI (s) Kem
+ R + Ls B + Js

Ki

Kem

F IGURE 5.18 – Schéma du moteur à courant continu avec boucle de courant.

dynamiques du moteur à courant continu asservi en courant. Ceci étant, on peut considérer
que le bloc de fonction de transfert R+Ls
1
du schéma 5.12 est simplement remplacé par
la fonction de transfert en boucle fermée GIBF (s). Dans ce cas, la constante de temps
de la boucle de courant étant très petite devant la constante de temps électromécanique
du système, on obtient un modèle d’ordre deux de classe 0, très proche d’un système du
premier ordre (on considère la force électromotrice comme une perturbation). On peut
donc à nouveau effectuer une correction PI.

Asservissement de position Il est le plus souvent possible d’utiliser les variateurs


en mode asservissement de position, que la fonction soit intégrée ou que l’on réalise
l’asservissement à partir du système asservi en courant. Du fait de l’intégration au passage
vitesse–position, la classe du système augmente et un correcteur proportionnel pourra
convenir. Eventuellement, on utilisera un correcteur à avance de phase pour assurer
stabilité et performance. Par ailleurs, certaines fonctions avancées pour l’asservissement
de la position de l’axe moteur peuvent venir s’ajouter. Il s’agit en particulier de la
génération de profils d’accélération en trapèze pour permettre d’obtenir des consignes de
courant continues.
5.3. Variateurs de vitesse 61

Analogique ou numérique ? En pratique le choix d’une commande numérique ou


analogique dépend du type de moteur dont on dispose. Dans le cas d’un moteur à courant
continu, une commande analogique est généralement suffisante car elle reste relativement
simple et peu onéreuse. Ce n’est plus le cas pour d’autres moteurs, typiquement les
moteurs à courants continus sans collecteur, qui sont des moteurs synchrones autopilotés,
pour lesquels la réalisation des asservissements peut nécessiter le recours à des fonctions
non linéaires plus complexes qui seront aisément réalisées par un processeur. Toutefois,
la tendance, y compris pour les variateurs des moteurs à courant continu est de les
implémenter sous forme numérique, ce qui permet de paramétrer tout le variateur par
une interface PC, celui-ci étant connecté par USB. C’est le cas du variateur ESCON de
chez Maxon par exemple, dont la documentation pourra être trouvée sur le site Maxon
(http://www.maxonmotor.com) et qui a remplacé dans la gamme standard le variateur
analogique ADS 50 présenté plus loin.

Protections La structure à boucles imbriquées du schéma 5.19 permet d’introduire


des éléments de protection. Une limitation de courant sera ainsi simplement réalisée en

F IGURE 5.19 – Schéma général d’un variateur de vitesse [Louis 02b].

saturant la valeur de la commande de la boucle de courant par une tension égale à ±Ki iM ,
iM représentant la valeur maximale du courant préconisée par le constructeur. Ce réglage
est donc effectué par une simple fonction seuil analogique, la valeur du seuil étant
ajustée par un potentiomètre. Si la boucle de courant est réglée convenablement (rapide
et sans dépassement), les seules saturations proviendront alors d’un appel de courant
trop fort, par exemple dû à une modification brutale de la charge ou du sens de rotation.
Des raffinements dans ce mode de protection sont cependant généralement prévus. Les
moteurs peuvent en effet le plus souvent supporter des courants transitoires largement
supérieur à la valeur maximale continue (typiquement 5 fois le courant maximum pendant
50 à 200 ms ou dans le cadre d’un fonctionnement intermittent).

Documentations techniques

Ce chapitre se termine par différentes documentations, dont la documentation tech-


nique 5.20 du moteur Maxon RE 36, ainsi que celle du variateur de vitesse et des capteurs
préconisés avec ce moteur 1 .
1. On remarquera que ces composants ne font plus nécessairement partie du catalogue du constructeur,
mais que ces documentations ont été retenues pour leur intérêt pédagogique. Les "nouveautés" auront été
évoquées en cours.
62 5. Technologie

RE 36 !36 mm, Graphite Brushes, 70 Watt

maxon DC motor
M 1:2
Stock program
Standard program Order Number
Special program (on request)

118797 118798 118799 118800 118801 118802 118803 118804 118805 118806 118807 118808 118809 118810
Motor Data
Values at nominal voltage
1 Nominal voltage V 18.0 24.0 32.0 42.0 42.0 48.0 48.0 48.0 48.0 48.0 48.0 48.0 48.0 48.0
2 No load speed rpm 6610 6210 6790 7020 6340 6420 5220 4320 3450 2830 2280 1780 1420 1180
3 No load current mA 153 105 88.6 70.4 61.4 54.6 41.6 32.6 24.7 19.5 15.2 11.5 8.97 7.31
4 Nominal speed rpm 5880 5530 6120 6350 5660 5740 4520 3600 2720 2090 1530 1010 651 390
5 Nominal torque (max. continuous torque) mNm 70.2 78.2 77.1 77.9 79.9 79.5 81.5 82.2 83.6 84.1 84.1 83.8 84.1 83.1
6 Nominal current (max. continuous current) A 2.90 2.25 1.82 1.45 1.33 1.18 0.978 0.813 0.660 0.545 0.439 0.343 0.275 0.226
7 Stall torque mNm 730 783 832 866 786 785 627 504 403 326 258 198 158 127
8 Starting current A 28.6 21.5 18.7 15.3 12.6 11.1 7.22 4.80 3.06 2.04 1.30 0.784 0.501 0.334
9 Max. efficiency % 84 85 86 86 86 86 85 84 82 81 79 77 75 72
Characteristics
10 Terminal resistance " 0.628 1.11 1.71 2.74 3.35 4.32 6.65 10.0 15.7 23.5 36.8 61.3 95.8 144
11 Terminal inductance mH 0.0988 0.201 0.300 0.487 0.597 0.760 1.15 1.68 2.62 3.87 5.96 9.70 15.1 21.9
12 Torque constant mNm / A 25.5 36.4 44.5 56.6 62.6 70.7 86.9 105 131 160 198 253 315 380
13 Speed constant rpm / V 375 263 215 169 152 135 110 90.9 72.7 59.8 48.2 37.8 30.3 25.1
14 Speed / torque gradient rpm / mNm 9.23 8.05 8.27 8.18 8.14 8.25 8.41 8.65 8.67 8.80 8.96 9.17 9.21 9.51
15 Mechanical time constant ms 6.00 5.89 5.84 5.81 5.81 5.80 5.81 5.81 5.82 5.83 5.84 5.86 5.85 5.88
16 Rotor inertia gcm2 62.0 69.9 67.5 67.8 68.1 67.2 66.0 64.2 64.1 63.3 62.2 61.1 60.7 59.0

Specifications Operating Range Comments


Thermal data n [rpm]
17 Thermal resistance housing-ambient 6.4 K / W Continuous operation
18 Thermal resistance winding-housing 3.4 K / W In observation of above listed thermal resistance
19 Thermal time constant winding 44.2 s (lines 17 and 18) the maximum permissible winding
temperature will be reached during continuous
20 Thermal time constant motor 1120 s
operation at 25°C ambient.
21 Ambient temperature -30 ... +100°C
= Thermal limit.
22 Max. permissible winding temperature +125°C
Short term operation
Mechanical data (ball bearings)
The motor may be briefly overloaded (recurring).
23 Max. permissible speed 12000 rpm
24 Axial play 0.05 - 0.15 mm
25 Radial play 0.025 mm
Assigned power rating
26 Max. axial load (dynamic) 5.6 N
27 Max. force for press fits (static) 5.6 N
(static, shaft supported) 1200 N
28 Max. radial loading, 5 mm from flange 28 N
maxon Modular System Overview on page 16 - 21
Other specifications
Planetary Gearhead Encoder MR
29 Number of pole pairs 1 !32 mm 256 - 1024 CPT,
30 Number of commutator segments 13 0.4 - 2.0 Nm 3 channels
31 Weight of motor 350 g Page 237 Page 259
Planetary Gearhead Encoder HEDS 5540
Values listed in the table are nominal. !32 mm 500 CPT,
Explanation of the figures on page 49. 0.75 - 4.5 Nm 3 channels
Page 239 Page 262
Tolerances may vary from the standard Planetary Gearhead Encoder HEDL 5540
specification. !32 mm 500 CPT,
1.0 - 6.0 Nm 3 channels
Option Page 240 Page 264
Preloaded ball bearings Recommended Electronics:
Planetary Gearhead ADS 50/5 Page 276 DC-Tacho DCT
!42 mm ADS 50/10 277 !22 mm
3 - 15 Nm ADS_E 50/5 277 0.52 V
Page 244 ADS_E 50/10 277 Page 271
EPOS 24/5 294
EPOS2 50/5 295
EPOS P 24/5 297
Notes 18

May 2008 edition / subject to change maxon DC motor 83

F IGURE 5.20 – Maxon RE36 118800 (source initiale http://www.maxonmotor.com).


5.3. Variateurs de vitesse 63

Explications sur les pages 50 - 146


Dessin dimensionnel
Sur le CD-ROM, les croquis de dimension sont Ligne 5 Pente vitesse/couple Ligne 13 Rendement max. #max [%]
disponibles en format DXF en vue de leur im- !n / !M [tr / min / mNm] Le rendement dépend du courant ou de la vitesse

maxon DC motor
portation dans n’importe quel système CAD. La pente vitesse / couple indique la force du moteur. (voir page 35 «Caractéristique de rendement»).
Présentation des vues conforme à la méthode E Plus cette courbe est plate, moins la vitesse est Le rendement maximal est dérivé de la relation
(ISO). sensible aux variations de la charge. La pente vi- entre la marche à vide et le courant de démarrage.
Toutes les dimensions sont exprimées en [mm]. tesse / couple est calculée à une température de
bobinage de 25°C. Ligne 14 Constante de couple kM [mNm / A]
Taraudage de montage dans le plastique La constante de couple, ou couple spécifique, est le
Ligne 6 Courant à vide Io [mA] quotient du couple fourni et du courant s’y rappor-
La réalisation de connexions vissées sur des flas-
ques plastiques nécessite une attention spéciale. C’est le courant qui s’établit lorsque le moteur est à tant.
vide. Il dépend du frottement des balais et du frotte-
Couple de serrage maximal [Ncm] ment à l’intérieur des paliers, il se modifie légère- Ligne 15 Constante de vitesse kn [tr / min / V]
Un tournevis automatique doit être ajusté à cette ment avec la vitesse. Elle indique la vitesse spécifique par Volt de la ten-
valeur d’étalonnage. sion appliquée, sans tenir compte des pertes par
Ligne 7 Courant de démarrage frottement. La valeur inverse de la constante de vi-
Profondeur active de vissage [mm] IA [mA], [A] tesse est la constante de tension, aussi appelée
La relation entre la profondeur de vissage et le diamè- C’est le rapport de la tension nominale (tension aux constante FEM.
tre du pas de vis doit être au moins de 2 : 1. La profon- bornes) et de la résistance du moteur. Il est obtenu Ligne 16 Constante de temps mécanique
deur de vissage ne doit en aucun cas dépasser la lon- au couple de blocage. $m [ms]
gueur utile de taraudage! Ligne 8 Résistance aux bornes R ["] C’est le temps nécessaire au rotor (sans charge ex-
C’est la résistance mesurée à 25°C aux bornes térieure), pour passer de la vitesse 0 à 63 % de sa
de connection. Elle détermine, sous une tension vitesse à vide.
Caractéristiques U donnée, le courant de démarrage. Dans le cas 2
de balais en graphite, la résistance de contact Ligne 17 Moment d’inertie du rotor JR [gcm ]
Ligne 1 ● Puissance conseillée P2T [W] varie en fonction de la charge. C’est le moment d’inertie de masse du rotor, basée
C’est la puissance max. fournie, dans la plage de sur l’axe de rotation.
puissances conseillée. Elle dépend des types et Ligne 9 Vitesse limite nmax [tr / min]
correspond à la représentation du Guide de Sélecti- La vitesse limite ne doit pas être dépassée en foncti- Ligne 18 Inductance terminale L [mH]
on (voir également pages 50-146 «Plages d’utili- onnement normal, un dépassement intempestif C’est l’inductivité du bobinage lorsque le rotor est à
sation»). endommagerait la commutation, mettant ainsi le l’arrêt, mesurée à l’aide d’une tension sinusoïdale
moteur en panne. à 1 kHz.
Ligne 2 Tension nominale U [Volt]
C’est la tension à laquelle se réfèrent toutes les va- Ligne 19 Résistance thermique
Ligne 10 Courant permanent max.
leurs nominales (lignes 3, 4, 6, 7, 12, 13).Elle est fixée Icont [mA], [A] Rth2 [K / W]
pour que la vitesse à vide ne dépasse pas la vitesse C’est la résistance thermique entre la carcasse et
C’est le courant qui, à une température ambiente de
maximale admissible. Mais l’utilisation du moteur l’air ambiant. Valeur théorique sans aucun refroi-
25°C, fait monter la température du rotor à sa limite
n’est pas limitée par cette tension. Pour atteindre la max. admissible. disseur additionnel. L’addition des lignes 19 et 20
puissance assignée (ligne 1), il est possible d’utiliser permet de définir la puissance dissipée max.
une tension de service plus haute. La puissance Ligne 11 Couple permanent max. Admissible. Sur les moteurs à flasque métallique,
maximale de sortie est alors plus élevée (ligne 12). Mcont [mNm] la résistance thermique Rth2 peut être réduite jus-
C’est le couple délivré en permanence ou en valeur qu'à 50 %, à condition que le moteur soit couplé
Ligne 3 Vitesse à vide no [tr / min] moyenne, qui élève la température du bobinage jus- directement à un bon conducteur thermique (mé-
C’est la vitesse atteinte par le moteur sans charge qu’à sa valeur max. admissible. On se base sur une tallique) au lieu d'une plaque en matière synthéti-
additionnelle et alimenté à la tension nominale. Elle température ambiante de 25°C. que.
est pratiquement proportionnelle à la tension appli-
quée. Ligne 12 Puissance max. fournie Ligne 20 Résistance thermique
Pmax [mW], [W] Rth1 [K / W]
Ligne 4 Couple de démarrage MH [mNm] C’est la puissance max. disponible à la tension no- Idem entre rotor et carcasse.
Ce couple est appliqué sur l’arbre pour obtenir minale et à une température rotor de 25°C. Les va-
Ligne 21 Constante de temps thermique du
l’arrêt à tension nominale. La croissance rapide de leurs d’utilisation se situent en-dessous de cette
bobinage $w [s]
la température du moteur provoque la baisse du puissance (voir «courant max. permanent» et «vi-
couple de démarrage (Voir page 38 «Comporte- tesse limite»). C’est le temps nécessité par le bobinage pour modi-
ment thermique»). fier sa température.

Plages d'utilisation Légende Exemple de la page 78 Fonctionnement intermittent


Plage de puissance conseillée
T
Vitesse [tr / min] Plage de fonctionnement permanent
12000 Compte tenu des resistances thermiques 5
10000 (lignes 19 et 20) la température maximum du
rotor peut être atteinte au valeur nominal de 4
8000
couple et vitesse et à la température ambiante
de 25°C = Limite thermique. Temps
6000
Domaine de fonctionnement
3
4000 intermittent Fonctionnement intermittent
2000 Fonctionnement continu La surcharge doit être de courte durée 2
Plage de puissance conseillée (voir page 36).
20 40 60 80 Couple [mNm] 1
0.5 1.0 1.5 2.0 Courant [A]
118757 Moteur avec bobinage à haute résistance (Ligne 8)
0
1 2 3 4 5 6 Courant [A] 118749 Moteur avec bobinage à haute résistance (Ligne 8) 10 20 30 40 50 60 70 80 90 ON%
Courant permanent max.

Le diagramme du domaine de fonctionnement décrit ON Moteur en service


la plage de puissance mécanique livrable par le bobi- OFF Moteur stationnaire
nage. Il illustre les points de fonctionnement possi- ÎON Courant de pointe max.
bles en fonction de la vitesse et du couple.Pour deux Icont Courant max. admissible en service continu (Ligne 10)
bobinages sélectionnés, l’un à faible, l’autre à forte tON Temps d’enclenchement, à ne pas dépasser $w (Lg. 21)
résistance, le couple figure en échelle de puissance T Temps de cycle tON + tOFF [s]
(Ligne 8). tON% Temps d’enclenchement en % du temps de cycle
Pendant une durée d’enclenchement de X %, le moteur peut
être surchargé dans le rapport ION / Icon

T
I ON % I cont
t ON
Edition Juillet 2005 / Modifications réservées maxon DC motor 49

F IGURE 5.21 – Guide Maxon (source initiale http://www.maxonmotor.com).


64 5. Technologie

Technique – sans détour


Le programme des asservissements de
maxon motor control

moteurs maxon contient une gamme de ser-


voamplificateurs pour commander les moteurs
DC et EC hautement dynamique.

Grandeurs commandées Régulation par codeur digital Compensation R x I


Vitesse Le moteur est équipé d’un codeur digital Une tension proportionnelle à la valeur de con-
La tâche d’un servoamplificateur pour régula- qui délivre un nombre donné d’impulsions à signe est appliquée au moteur. Si la charge
tion de vitesse consiste à maintenir la vitesse chaque tour du rotor. Les impulsions rectangu- augmente, la vitesse de rotation diminue. Le
de rotation aussi constante que possible quel- laires des canaux A et B sont décalées de circuit de compensation augmente alors la ten-
les que soient les variations de couple deman- 90° pour permettre de déterminer le sens de sion de sortie, avec un accroissement du cou-
dées au moteur. Pour atteindre ce but, rotation. rant dans le moteur. Cette compensation doit
l’électronique de régulation du servoamplifica- ! Les codeurs digitaux sont surtout utilisés être ajustée à la résistance interne du moteur.
teur compare en permanence la valeur de con- pour assurer le positionnement et pour Cette résistance varie avec la température et
signe (vitesse desirée) avec la valeur réelle détecter un déplacement angulaire. avec la charge appliquée.
instantanée (vitesse effective). La différence ! Les codeurs digitaux ne sont soumis à
entre les deux valeurs sert à piloter l’étage de aucune usure. La précision du réglage de la vitesse que l’on
puissance du servoamplificateur de telle ma- ! En liaison avec un régulateur digital, ils ne peut obtenir dans de tels systèmes est de l’ordre
nière que le moteur amenuise la différence de provoquent aucun effet de dérive. de quelques pour cents
vitesse. On dispose ainsi d’un circuit de régula- ! Économie en prix et en place
tion de vitesse en boucle fermée. ! Pas de génératrice DC ou de
Principe: Régulation par codeur codeur nécessaire
Position ! Régulation peu précise en cas de forte varia-
Valeur de consigne
Le régulateur de position s’efforce de faire tion de la charge
coïncider la position actuelle mesurée avec la maxon motor control ! Régulation de vitesse uniquement
position désirée - de la même manière que le ! Idéal pour les applications «Low Cost» qui
régulateur de vitesse - en donnant au moteur n’exigent pas une vitesse très précise
les valeurs de correction. L’information sur la M
-

-
-
position est généralement délivrée par un
n
codeur digital.
Principe: Compensation R x I
Courant Valeur réelle
Le régulateur de courant alimente le moteur E Valeur de consigne
avec une intensité proportionnelle à la valeur maxon motor control
de consigne. Ainsi le couple du moteur est pro-
portionnel à la consigne.
Le régulateur de courant améliore aussi la dy- I
M
-

-
namique d’un circuit de régulation de position -
ou de vitesse supérieur.
U

Valeur réelle

Schéma d’un circuit de régulation


Valeur de consigne
maxon motor control

Déviation du système
Con-
Moteur
trôleur
-

-
-
é tage de puissance n
(actuateur)

Valeur réelle
Capteur

32

F IGURE 5.22 – Variateurs Maxon (source initiale http://www.maxonmotor.com).


5.3. Variateurs de vitesse 65

maxon motor
maxon motor control 4-Q-DC Servoamplificateur ADS 50/5
Référence de commande 145391
Notice d'utilisation Edition Juillet 2009

L’ADS 50/5 est un variateur de vitesse pour


piloter des moteurs à courant continu à aimants
permanents allant jusqu’à 250 Watts.
Quatre modes de régulation peuvent être
sélectionnés à l’aide d’un commutateur DIP
(jumper) situé sur la face avant:
• Réglage de vitesse par génératrice
tachymétrique DC
• Réglage de vitesse par codeur digital
• Réglage de vitesse par compensation IxR
• Réglage du courant

ADS 50/5 est protégé contre:


• les surcharges de courant
• les courts-circuits moteur
• les élévations de température.

Grâce à l’utilisation de transistors de puissance MOS-FET, son rendement atteint 95 % à la puissance


nominale. Le variateur est muni d’une self de lissage permettant de réduire les ondulations du courant dans le
circuit moteur. La fréquence de découpage PWM est de 50 kHz, elle permet de piloter les moteurs à basse
inductive. Une self externe peut ainsi être évitée dans la plupart des applications.
La gamme de tension d’entrée va de 12 à 50 VDC et ADS 50/5 supporte des alimentations non stabilisée. Le
boîtier en aluminium facilite l’installation, la mise en service est rapide, grâce à des connexions à vis pratiques
et robustes.

Table des matières


1 Instructions de sécurité.................................................................................................................................... 2
2 Données techniques ........................................................................................................................................ 3
3 Câblage externe minimal pour les différents modes de fonctionnement......................................................... 4
4 Instructions d’utilisation.................................................................................................................................... 5
5 Description des fonctions d’entrée/sortie......................................................................................................... 7
6 Possibilités complémentaires de réglage ...................................................................................................... 10
7 Affichage de l’état de fonctionnement............................................................................................................ 12
8 Traitement des erreurs .................................................................................................................................. 13
9 Installation conforme à la compatibilité électromagnétique (CEM) ...............................................................13
10 Schéma bloc .................................................................................................................................................. 14
11 Dimensions .................................................................................................................................................... 14

La version actuelle de cette notice d’utilisation est disponible sur Internet au format PDF sur le site
www.maxonmotor.com (cliquez sur Services & Downloads, puis saisissez le numéro de référence 145391), ou
bien dans la boutique en ligne de maxon motor, à l’adresse http://shop.maxonmotor.com.
66 5. Technologie

maxon motor
4-Q-DC Servoamplificateur ADS 50/5 Notice d'utilisation

2 Données techniques
2.1 Caractéristiques électriques
Tension d’alimentation nominal +Vcc ........................................................................12 … 50 VDC
Tension d’alimentation absolute minimal +Vcc min............................................................ 11.4 VDC
Tension d’alimentation absolute maximal +Vcc max .......................................................... 52.5 VDC
Tension de sortie max ...................................................................................................... 0.9 · VCC
Courant de sortie max Imax ...................................................................................................... 10 A
Courant de sortie permanent Icont ............................................................................................. 5 A
Fréquence de commutation ................................................................................................ 50 kHz
Rendement ............................................................................................................................ 95 %
Bande passante du régulateur de courant......................................................................... 2.5 kHz
Self de lissage intégrée ..............................................................................................150 µH / 5 A
2.2 Entrées
Valeurs de consigne «Set value» .......................................................... -10 ... +10 V (Ri = 20 kΩ)
Enable ............................................................................................... +4 ... +50 VDC (Ri = 15 kΩ)
Tension DC tacho «Tacho Input» .................................... min. 2 VDC, max. 50 VDC (Ri = 14 kΩ)
Signaux codeur «Canaux A, A\, B, B\»............................................... max. 100 kHz, Niveau TTL
2.3 Sorties
Image du courant «Monitor I», protégé du court-circuit .................. -10 ... +10 VDC (RO = 100 Ω)
Image de la vitesse «Monitor n», protégé du court-circuit .............. -10 ... +10 VDC (RO = 100 Ω)
Message de surveillance «READY»
collecteur ouvert, protégé du court-circuit............................................ max. 30 VDC (IL ≤ 20 mA)
2.4 Tension de sortie
Tension auxiliaire, protégée du court-circuit ........... +12 VDC, -12 VDC, max. 12 mA (RO = 1 kΩ)
Tension d’alimentation du codeur................................................................. +5 VDC, max. 80 mA
2.5 Potentiomètres de réglage
Compensation IxR
Offset
nmax
Imax
gain
2.6 Indicateur LED
LED 2 couleurs .................................................................................................. READY / ERROR
vert = ok, rouge = défaut
2.7 Température / Humidité
Exploitation ................................................................................................................ -10 ... +45°C
Stockage ................................................................................................................... -40 ... +85°C
Humidité relative.................................................................................. 20 ... 80 % non condensée
2.8 Caractéristiques mécaniques
Poids ............................................................................................................................... ca. 360 g
Dimensions................................................................................................................... voir dessin
Plaque de fixation ........................................................................................................ pour vis M4
2.9 Connexions
Bornes PCB..........................................................................«Power» (5 pôles), Signal (12 pôles)
Pas..............................................................................................................................3.81 mm
Convenant pour sections de fils .................................................0.14 - 1 mm2 fil fin torsadé ou
2
................................................................................................0.14 - 1.5 mm à un conducteur
Codeur.........................................................................................................connecteur DIN41651
pour câble plat, pas de 1.27 mm, AWG 28

Edition Juillet 2009 / Doc. No. 539149-06 / Sous réserve de modification maxon motor control 3
5.3. Variateurs de vitesse 67

maxon motor
4-Q-DC Servoamplificateur ADS 50/5 Notice d'utilisation

3 Câblage externe minimal pour les différents modes de fonctionnement

4 maxon motor control Edition Juillet 2009 / Doc. No. 539149-06 / Sous réserve de modification
68 5. Technologie

maxon motor
4-Q-DC Servoamplificateur ADS 50/5 Notice d'utilisation

4 Instructions d’utilisation
4.1 Détermination de la puissance d’alimentation
N’importe quelle alimentation à courant continu peut être utilisée, si elle répond
aux exigences minimales résumées ci-dessous.
Durant la phase d’installation et de mise au point, nous vous recommandons de
séparer mécaniquement le moteur de la machine qu’il doit entraîner, afin
d’éviter tout dommage résultant d’un mouvement incontrôlé.
Puissance d’alimentation nécessaire
Tension de sortie Vcc min. 12 VDC; max. 50 VDC
Ondulation <5%
Courant de sortie Dépend de la charge, permanent 5 A
(10 A en crête)

Le tension d’alimentation nécessaire peut être calculée comme suit:


Valeurs connues
Couple en exploitation MB [mNm]
Vitesse d’exploitation nB [tr/min]
Tension nominale du moteur UN [Volt]
Vitesse du moteur à vide à UN, n0 [tr/min]
Vitesse/gradient du couple moteur ∆n/∆M [tr/min / mNm]
Valeur cherchée
Tension d’alimentation VCC [Volt]
Solution
UN ⎛ ∆n ⎞ 1
VCC = ⋅ ⎜ nB + ⋅MB ⎟⋅ + 2 [V ]
n0 ⎝ ∆M ⎠ 0 .9
Choisissez une alimentation pouvant fournir la tension sous charge ainsi
calculée Dans la relation ci-dessus est tenu compte d’une modulation max. du
PWM de 90 % ainsi que d’une chute de tension de 2 VDC à l’étage final.
Note:
L'alimentation doit pouvoir absorber (par exemple dans un condensateur tampon)
l'énergie refoulée lors de décélérations. Lors de l'utilisations à stabilisation
électronique il faut s'assurer que la protection contre les courants de surcharge
ne limite pas les modes de fonctionnement de l'unité d'asservissement.
4.2 Fonctions des potentiomètres

Potentiomètre Fonction Tourner vers la


gauche droite
compensation compensation
P1 IxR Compensation IxR
douce forte
Ajustement n = 0 / I = 0 moteur tourne à moteur tourne
P2 Offset
à la valeur 0 V gauche (CCW) à droite (CW)
Vitesse maximale vitesse vitesse
P3 nmax
à la valeur 10 V plus lente plus rapide
plus bas plus haut
P4 Imax Limite de courant
min. 0.5 A max. 10 A
P5 gain gain plus bas plus haut

Edition Juillet 2009 / Doc. No. 539149-06 / Sous réserve de modification maxon motor control 5
5.3. Variateurs de vitesse 69

maxon motor
4-Q-DC Servoamplificateur ADS 50/5 Notice d'utilisation

4.3 Ajustement des potentiomètres


4.3.1 Réglage de base
Le positionnement de base des potentiomètres permet d’obtenir un
fonctionnement idéal.
Les appareils sous emballage original sont déjà préajustés en usine.

Réglage de base des potentiomètres


P1 IxR 0%
P2 Offset 50 %
P3 nmax 50 %
P4 Imax 50 %
P5 gain 10 %
4.3.2 Ajustage
Mode: Réglage codeur 1. Imposez la vitesse maximale (env. 10 V), puis tournez le potentiomètre
Réglage génératrice P3 nmax jusqu’à l’obtention de la vitesse désirée.
tachymétrique
Réglage compensation 2. Mettez le potentiomètre P4 Imax à la valeur limite désirée.
IxR Le potentiomètre P4 permet d’ajuster le courant maximal dans le
domaine de 0 ... 10 A de manière linéaire.
Important: La valeur limite lmax doit se trouver au-dessous du courant
nominal (courant permanent maximum), figurant sur la fiche des
caractéristiques du moteur et n'ose dépasser 5 A en permanence.
3. Augmentez le gain du potentiomètre P5 gain lentement, jusqu’à ce que
l’amplification soit suffisante.
Attention: Si le moteur vibre ou fait du bruit, l’amplification est ajustée
sur une valeur trop élevée.
4. Imposez une vitesse nulle, par exemple en court-circuitant la valeur de
consigne d’entrée. Amenez la vitesse de rotation du moteur à zéro à
l’aide du potentiomètre P2 Offset.
De plus, uniquement en cas de compensation IxR:
5. Augmentez lentement le potentiomètre P1 IxR jusqu’à ce que la
compensation soit suffisante pour permettre au moteur de garder sa
vitesse ou de la baisser très peu, en cas de forte charge.
Attention: Si le moteur vibre ou fait du bruit, l’amplification est ajustée
sur une valeur trop élevée.

Mode: 1. Mettre le potentiomètre P4 lmax à la valeur limite désirée.


Réglage du courant Le potentiomètre P4 permet d’ajuster le courant maximal dans le
domaine de 0 ... 10 A de manière linéaire.
Important: La valeur limite lmax doit se trouver au-dessous du courant
nominal (courant permanent maximum), figurant sur la fiche des
caractéristiques du moteur et n'ose dépasser 5 A en permanence
2. Appliquer la tension prévue de 0 V et régler à l’aide du potentiomètre
P2 Offset le courant du moteur à 0 A.

Remarque
• Valeur -10 ... +10 V correspond à un courant moteur de +Imax ... -Imax.
• En fonctionnement comme régulateur de courant, les potentiomètres P1,
P3 et P5 gain sont inactifs.

6 maxon motor control Edition Juillet 2009 / Doc. No. 539149-06 / Sous réserve de modification
70 5. Technologie

maxon motor
4-Q-DC Servoamplificateur ADS 50/5 Notice d'utilisation

10 Schéma bloc
Case
+12V OUT -12V OUT Enable Ready

DIP5 Poly-
+5V fuse Ground
+5V
+5V/80mA Safety
+12V
Gnd 1K +12V 1K -12V -12V Supply 3 Earth
Encoder A earth
optional
Encoder A\ F/V Converter
PTC
Encoder B 4 +Vcc 12-50VDC
Encoder B\ DIP6
5 Power Gnd
+12V

P8 I cont Current
limit
DIP1
-Set value 1
P7 I gain +Motor
+Set value
PWM,
Control & MOSFET
P5 gain P6 n gain Protection Full-Bridge
DIP4 Logic
P3 n max P4 Imax 2 -Motor
-Tacho Input

LED 3
P1 IxR Current
DIP2 Voltage
Detector Detector
DIP3

+12V -12V
P2 Offset

Monitor n Monitor I

11 Dimensions
Dimensions en [mm]

14 maxon motor control Edition Juillet 2009 / Doc. No. 539149-06 / Sous réserve de modification
5.3. Variateurs de vitesse 71

Encoder HEDL 5540 500 CPT, 3 Channels, with Line Driver RS 422
Cycle C = 360°e
Pulse P = 180°e

UHigh

maxon sensor
Channel A
ULow
Phase shift 90°e
UHigh
Channel B
ULow
UHigh
Channel I
ULow
s3 s4 s1 s2 s 1..4 = 90°e
s 45°e

Direction of rotation cw (definition cw p. 150)


Stock program Part Numbers
Standard program
Special program (on request)
110512 110514 110516
Type
Counts per turn 500 500 500
Number of channels 3 3 3
Max. operating frequency (kHz) 100 100 100
Max. speed (rpm) 12 000 12 000 12 000
Shaft diameter (mm) 3 4 6

overall length overall length

maxon Modular System


+ Motor Page + Gearhead Page + Brake Page Overall length [mm] / • see Gearhead
RE 25 179/181 75.3
RE 25 179/181 GP 26/GP 32 336/338 •
RE 25 179/181 KD 32, 1.0 - 4.5 Nm 347 •
RE 25 179/181 GP 32, 0.75 - 6.0 Nm 339/342 •
RE 25 179/181 GP 32 S 370-372 •
RE 25, 20 W 180 63.8
RE 25, 20 W 180 GP 26/GP 32 336/338 •
RE 25, 20 W 180 KD 32, 1.0 - 4.5 Nm 347 •
RE 25, 20 W 180 GP 32, 0.75 - 6.0 Nm 339/342 •
RE 25, 20 W 180 GP 32 S 370-372 •
RE 25, 20 W 180 AB 28 446 94.3
RE 25, 20 W 180 GP 26/GP 32 336/338 AB 28 446 •
RE 25, 20 W 180 KD 32, 1.0 - 4.5 Nm 347 AB 28 446 •
RE 25, 20 W 180 GP 32, 0.75 - 6.0 Nm 339/342 AB 28 446 •
RE 25, 20 W 180 GP 32 S 370-372 AB 28 446 •
RE 25, 20 W 181 AB 28 446 105.8
RE 25, 20 W 181 GP 26/GP 32 336/338 AB 28 446 •
RE 25, 20 W 181 KD 32, 1.0 - 4.5 Nm 347 AB 28 446 •
RE 25, 20 W 181 GP 32, 0.75 - 6.0 Nm 339/342 AB 28 446 •
RE 25, 20 W 181 GP 32 S 370-372 AB 28 446 •
RE 30, 15 W 182 88.8
RE 30, 15 W 182 GP 32, 0.75 - 4.5 Nm 340 •
RE 30, 60 W 183 88.8
RE 30, 60 W 183 GP 32, 0.75 - 6.0 Nm 338-344 •
RE 30, 60 W 183 KD 32, 1.0 - 4.5 Nm 347 •
RE 30, 60 W 183 GP 32 S 370-372 •
RE 35, 90 W 184 91.7
RE 35, 90 W 184 GP 32, 0.75 - 8.0 Nm 338-345 •
RE 35, 90 W 184 GP 42, 3.0 - 15 Nm 349 •
RE 35, 90 W 184 GP 32 S 370-372 •
RE 35, 90 W 184 AB 28 446 124.3
RE 35, 90 W 184 GP 32, 0.75 - 8.0 Nm 338-345 AB 28 446 •
RE 35, 90 W 184 GP 42, 3.0 - 15 Nm 349 AB 28 446 •
RE 35, 90 W 184 GP 32 S 370-372 AB 28 446 •
Technical Data Pin Allocation Connection example
Supply voltage VCC 5 V ± 10% 1 N.C.
Encoder, Line Driver, DS26LS31

Line receiver
Output signal EIA Standard RS 422 2 VCC VCC

driver used: DS26LS31 2 1 3 GND GND


Recommended IC's:
- MC 3486
4 N.C. - SN 75175
Phase shift 90°e ± 45°e - AM 26 LS 32
5 Channel A
Signal rise time 6 Channel A Channel A
(typically, at CL = 25 pF, RL = 2.7 k , 25 °C) 180 ns 7 Channel B R

Signal fall time 8 Channel B Channel A


9 Channel I (Index)
(typically, at CL = 25 pF, RL = 2.7 k , 25 °C) 40 ns 10 Channel I (Index)
Index pulse width 90°e 10 9 Channel B

Operating temperature range -40…+100 °C Pin type DIN 41651/ R

EN 60603-13
Moment of inertia of code wheel 0.6 gcm2 flat band cable AWG 28
Channel B

Max. angular acceleration 250 000 rad s-2


Channel I
Output current per channel min. -20 mA, max. 20 mA R
Option 1000 Counts per turn, 2 Channels
Channel I

The index signal is synchronized with channel A or B. Terminal resistance R = typical 120
May 2016 edition / subject to change maxon sensor 401

F IGURE 5.23 – Codeur incrémental HEDL 5540 (http://www.maxonmotor.com).


72 5. Technologie

DC Tacho DCT 22 0.52 Volt


Important Information
• Tacho with moving coil, maxon system.
• Tacho with precious metal commutation.

maxon sensor
• To establish total inertia add motor and
tacho inertias.
• With the output shaft turning CW as seen from
the mounting surface, the tacho output voltage
will be positive at the + terminal.
• A high impedance load is recommended at
tacho terminals.
• The tacho current should be kept low.
• The indicated resonance frequency refers to the
motor-tacho rotor system.

Stock program Part Numbers


Standard program
Special program (on request)
118909 118910
Type
Shaft diameter (mm) 3 4

overall length overall length

maxon Modular System


+ Motor Page + Gearhead Page Overall length [mm] / • see Gearhead
RE 25 179/181 76.8
RE 25 179/181 GP 26, 0.75 - 2.0 Nm 336 •
RE 25 179/181 GP 32, 0.75 - 4.5 Nm 338/339 •
RE 25 179/181 GP 32, 0.75 - 6.0 Nm 342 •
RE 25 179/181 GP 32, 1.0 - 4.5 Nm 347 •
RE 25 179/181 GP 32 S 370-372 •
RE 25, 20 W 180 65.3
RE 25, 20 W 180 GP 22, 0.5 Nm 329 •
RE 25, 20 W 180 GP 26, 0.75 - 2.0 Nm 336 •
RE 25, 20 W 180 GP 32, 0.75 - 4.5 Nm 338/339 •
RE 25, 20 W 180 GP 32, 0.75 - 6.0 Nm 342 •
RE 25, 20 W 180 GP 32, 1.0 - 4.5 Nm 347 •
RE 25, 20 W 180 GP 32 S 370-372 •
RE 35, 90 W 184 89.1
RE 35, 90 W 184 GP 32, 0.75 - 6.0 Nm 338-344 •
RE 35, 90 W 184 GP 32, 8 Nm 345 •
RE 35, 90 W 184 GP 42, 3.0 - 15 Nm 349 •
RE 35, 90 W 184 GP 32 S 370-372 •

Technical Data Connection example


Output voltage per 1000 rpm 0.52 V Max. current 10 mA
Terminal resistance tacho 37.7 W Tolerance of the output voltage ± 15 %
180 W
Typical peak to peak ripple ≤ 6% Rotor inertia (tacho only) < 3 gcm²
Ripple frequency per turn 14 Resonance frequency with motors on p. 179 – 181 > 2 kHz T 1 kW 0.1 mF
Linear voltage tolerance, 500 to 5000 rpm ± 0.2 % with motors on p. 184 > 4.5 kHz
Linear voltage tolerance with 10 kΩ load resistance ± 0.7 % Temperature range -20 ... +65 °C
Polarity error ± 0.1 %
Temperature coefficient of EMF (magnet) -0.02 % /°C Option: Pigtails in place of solder terminals.
Temperature coefficient of coil resistance +0.4 % /°C
UAC
Ripple = x 100 (%)
UDC

Resonance frequency Motor winding-Tacho winding fR 4 kHz

May 2016 edition / subject to change maxon sensor 411

F IGURE 5.24 – Génératrice tachymétrique (http://www.maxonmotor.com).


Chapitre 6

Commande

6.1 Commande point-à-point


Cette section s’inspire largement des notes de cours de mes collègues Wisama Khalil
et Etienne Dombre [Khalil 13].

6.1.1 Principe de la génération de mouvement


Le problème, introduit au paragraphe 4.1.1, est illustré par la figure 4.1. Une fois
calculée la configuration finale qf correspondant à la situation de l’organe terminal à
atteindre, on doit effectuer la génération de mouvement entre q0 et qf , qui consiste à
calculer les consignes du variateur. Soient respectivement !m et m les vecteurs des
vitesses et accélérations articulaires maximales :
– la vitesse maximale d’une articulation dépend de la vitesse admissible pour le
moteur, mais aussi pour la transmission ;
– l’accélération maximale se calcule elle (grossièrement) en faisant le rapport du
couple maximum sur l’inertie de l’axe.
Le mouvement articulaire est décrit, en toute généralité, par :

q(t) = q0 + (qf q0 )P (t), 80 6 t 6 tf (6.1)

La fonction d’interpolation P (t), telle que P (0) = 0 et P (tf ) = 1 permet de calculer des
consignes admissibles. Il existe plusieurs façons de synthétiser P (t) de façon à satisfaire
les conditions aux limites et les contraintes |q̇(t)| 6 !m et |q̈(t)| 6 m , 80 6 t 6 tf .
Nous allons voir successivement trois de ces méthodes.

6.1.2 Interpolation polynomiale de degré cinq


L’utilisation d’un polynôme interpolateur donnant autant de degrés de liberté qu’il y
a de contraintes est un première solution pour la résolution du problème. Le choix d’un
polynôme d’ordre cinq permet d’obtenir un mouvement de classe C 2 en position, vitesse
et accélération, vérifiant par ailleurs les conditions aux limites :

q(0) = q0 , q(tf ) = qf , q̇(0) = 0, q̇(tf ) = 0, q̈(0) = 0, q̇(tf ) = 0 (6.2)

En posant P (t) = p0 + p1 t + p2 t2 + p3 t3 + p4 t4 + p5 t5 où les pi sont des coefficients


réels, les conditions (6.2) impliquent que les termes p0 , p1 , p2 soient nuls. La résolution
74 6. Commande

des conditions limites en tf permet elle de montrer [Khalil 13] que :


✓ ◆3 ✓ ◆4 ✓ ◆5
t t t
P (t) = 10 15 +6 (6.3)
tf tf tf
On déduit alors q(t) et on peut par la suite montrer que les vitesses et accélérations
maximales sont telles que, pour la i ème articulation :
15|qi (tf ) qi (0)|
!mi = , (6.4)
8tf
10|qi (tf ) qi (0)|
mi = p 2 (6.5)
3tf
De ce fait, si le temps tf n’est pas imposé, mais que ce sont !mi et mi qui donnent les
contraintes à respecter, on peut déduire la valeur minimale de tf possible en choisissant
la valeur la plus grande entre les deux fournies par les équations (6.4) et (6.5), de sorte à
satisfaire les deux contraintes. Ceci doit être fait pour l’ensemble des articulations pour
satisfaire les 2n contraintes sur les vitesses et accélérations des n axes.
Les courbes de position, vitesse et accélération articulaires, pour un axe, sont données
à la figure 6.1, dans un cas où q0 = 0, qf = ⇡2 , !m = 4 rad.s 1 et m = 1, 5 rad.s 2 . Le
temps tf résulte alors de la contrainte d’accélération (6.5), et vaut tf = 1, 74 s.

F IGURE 6.1 – Mouvement articulaire généré avec une fonction polynomiale d’ordre 5,
avec !m = 4 rad.s 1 et m = 1, 5 rad.s 2 .

6.1.3 Loi Bang-Bang


La commande Bang-Bang permet en général de produire des mouvements à temps
minimal. Elle consiste ici à choisir une accélération toujours sur les bornes admissibles :
6.1. Commande point-à-point 75

soit m , soit m . Pour générer un mouvement à vitesse de départ et d’arrivée nulle, et


t
qui dure tf , il faudra donc accélérer puis décélérer («à fond») pendant 2f . L’accélération
est donc discontinue, mais pas les positions et vitesses. Avec les conditions aux limites :

q(0) = q0 , q(tf ) = qf , q̇(0) = 0, q̇(tf ) = 0 (6.6)

il résulte, par intégration, que :


✓ ◆2
t tf
q(t) = q0 + 2 q0 ) pour 0 6 t 6
(qf (6.7)
tf 2
✓ ◆ ✓ ◆2 !
t t tf
q(t) = q0 + 1+4 2 (qf q0 ), pour 6 t 6 tf (6.8)
tf tf 2

On peut alors montrer que, pour la i ème articulation :

|qi (tf ) qi (0)| tf


!mi = , pour 0 6 t 6 (6.9)
tf 2
4|qi (tf ) qi (0)| tf
mi = 2
, pour 6 t 6 tf (6.10)
tf 2

ce qui donne comme précédemment une contrainte sur tf .


Les courbes de position, vitesse et accélération articulaires, pour un axe, sont données
à la figure 6.2, dans un cas où q0 = 0, qf = ⇡2 , !m = 4 rad.s 1 et m = 1, 5 rad.s 2 . Le
temps tf résulte alors de la contrainte d’accélération (6.10), et vaut tf = 1, 44 s.

F IGURE 6.2 – Mouvement articulaire généré avec une commande Bang-bang, avec
!m = 4 rad.s 1 et m = 1, 5 rad.s 2 .
76 6. Commande

6.1.4 Loi trapézoïdale en vitesse


Au lieu d’effectuer comme précédemment une commande Bang-Bang, imposant
aux actionneurs des commutations instantanées fréquentes 1 , on peut se limiter à une loi
trapézoïdale en vitesse, autorisant des paliers à vitesse constante moins exigeants pour le
moteur et permettant d’atteindre potentiellement plus vite une vitesse souhaitée.
La génération de mouvement se décompose donc comme indiqué à la figure 6.3 :
1. accélération constante jusqu’à la vitesse maximale (sous certaines conditions) ;
2. accélération nulle et vitesse constante ;
3. décélération constante jusqu’à ramener l’axe à l’arrêt.

F IGURE 6.3 – Vitesse et accélération dans le cas d’un profil trapézoïdal, comparaison
avec la commande Bang-Bang (d’après [Khalil 13]).

Les grandeurs !mi et mi représentent toujours les valeurs maximales de vitesse et


accélération pour l’axe considéré. On suppose que la vitesse maximale est atteignable, ce
qui implique que l’accélération soit suffisante. En posant "i = signe(qi (tf ) qi (0)), on
obtient, pour la i-ème articulation :
1
qi (t) = qi (0) + "i t2 mi , pour 0 6 t 6 ⌧i (6.11)
2⇣ ⌘
⌧i
qi (t) = qi (0) + "i t !mi , pour ⌧i 6 t 6 tf ⌧i (6.12)
2
1
qi (t) = qi (tf ) "i (tf t)2 mi , pour tf ⌧i 6 t 6 tf (6.13)
2
avec ⌧i = !mm
. On montre que, pour une articulation donnée, le temps minimal vaut :
|qi (tf ) qi (0)|
t f = ⌧i + (6.14)
!mi
Pour que cette valeur soit identique pour tous les axes, et que les phases d’accélération
soient les mêmes, il faut donc synchroniser les différentes articulations. Pour plus de
détails, [Khalil 13] donne une description très détaillée de la solution.
1. Elles sont impossibles en pratique à cause des inversions non instantanées des sens des courants
dans les moteurs.
6.2. Commande à mouvement opérationnel imposé 77

6.2 Commande à mouvement opérationnel imposé


6.2.1 Position du problème
Résoudre le problème de la commande à mouvement opérationnel imposé consiste à
produire, à chaque instant, la commande du robot manipulateur lui permettant de réaliser
un mouvement opérationnel de consigne, à l’image de l’exemple de la figure 6.4.

F IGURE 6.4 – Mouvement opérationnel pour souder deux pièces

Plus précisément, le problème est le suivant : on cherche à asservir le robot manipu-


lateur afin que la situation réelle x(t) de son organe terminal corresponde à la situation
désirée xr (t). En d’autres termes, on souhaite réguler à zéro la fonction d’erreur :

e(t) = xr (t) x(t) (6.15)

Pour cela, les données du problème sont :


– la configuration initiale q0 du robot manipulateur, qui est mesurée ;
– le mouvement de référence, décrit par la fonction xr (t) ;
– le modèle cinématique du robot manipulateur : ẋ = J(q)q̇.

Remarque On a deux types de problèmes : 1) quand e(0) = xr (0) x0 = 0 : «on


part bien» (suivi) ; 2) quand e(0) = xr (0) x0 6= 0 : «on part mal» (poursuite).
On supposera toujours que le mouvement de consigne est réalisable par le système,
c’est-à-dire que les vitesses opérationnelles désirées peuvent être produites, en tenant
compte des limitations cinématiques du robot manipulateur. Dans le cas contraire, on
doit se limiter à une approximation de celui-ci. Par ailleurs, on prend en compte le
fait que les mouvements de consigne peuvent être définis en cours de déplacement du
robot manipulateur, en particulier, à tout moment, à l’initiative de l’utilisateur. Ceci
impose alors au système de commande de pouvoir répondre en temps voulu. Il est clair
qu’une solution qui satisfait à cette réactivité conviendra également si le mouvement
78 6. Commande

opérationnel de consigne est connu entièrement à l’instant initial. Soulignons enfin le fait
que la gestion des efforts n’est pas prise en compte explicitement dans notre problème.
Ainsi, dans un premier temps, cette approche conviendrait par exemple à une tâche de
soudage au chalumeau, mais pas de soudage à l’arc.
On trouve dans la littérature de nombreuses méthodes permettant de résoudre le
problème de la commande des bras manipulateurs à mouvement opérationnel imposé
[Khatib 08] ; elles sont parfois appelées algorithmes de cinématique inverse. Il existe en
particulier deux méthodes :
– tout d’abord, les méthodes dites d’inversion, qui utilisent le calcul d’une inverse
du modèle cinématique direct ;
– ensuite, la méthode dite de la transposée.
Par la suite, on ne considèrera que les méthodes dites d’inversion. Le lecteur curieux
pourra consulter [Sciavicco 00] pour plus de précision sur la méthode de la transposée.

6.2.2 Méthodes d’inversion


Les méthodes d’inversion pour la commande à mouvement opérationnel imposé sont
nombreuses [Khatib 08]. Elles consistent à calculer les vitesses généralisées nécessaires
(servant de consignes au variateur) pour obtenir les vitesses opérationnelles spécifiées.
En boucle ouverte, pour un bras manipulateur décrit par son modèle cinématique direct,
on choisit une loi du type :
q̇(t) = DJ ẋr (t), (6.16)
où DJ est une inverse à droite de J(t). En effet, en pré-multipliant l’équation (6.16) par
J(t), on constate alors que cette loi conduit à une erreur nulle sur la situation de l’organe
terminal, si xr (0) = x0 (même situation de départ et même vitesse opérationnelle). On
remarquera que dans le cas de robots non redondants, les dimensions de l’espace des
configurations et de l’espace opérationnel sont identiques (même nombre de paramètres
dans q et x) et l’inverse à droite DJ est simplement l’inverse J 1 . En boucle fermée, on
peut choisir une loi de commande de la vitesse du type :

q̇(t) = J 1
(t) (ẋr (t) + W (xr (t) x(t))) (6.17)

où W est une matrice de pondération définie positive (Figure 6.5). En effet, en pré-

d
dt
ẋr (t)

+
xr (t) +
génération 1 variateur robot
W J
de mouvement +
x(t) q(t)

MGD capteur

F IGURE 6.5 – Commande cinématique dans l’espace opérationnel.


6.2. Commande à mouvement opérationnel imposé 79

multipliant l’équation (6.17) par J(t), on constate que cette loi conduit à une décroissance
asymptotique de l’erreur e(t) :

ė(t) + W e(t) = 0

Dans le cas d’un robot redondant, possédant un nombre d’articulations supérieur


au nombre nécessaire pour effectuer la tâche (dim q > dim x), il existe une infinité
de solutions au problème du calcul du modèle de cinématique inverse. On calcule une
inverse à droite de J [Nakamura 91, Khatib 08] :
– soit en optimisant un critère sous contrainte que ẋ = J q̇, et alors l’inverse à droite
pourra être une inverse généralisée, comme la pseudo-inverse J + ;
– soit en augmentant la matrice Jacobienne de manière à obtenir une matrice carrée
et inversible.

Remarque : commande référencée capteur Dans ces techniques, qui dépassent


sensiblement le cadre du cours, on utilise un capteur pour fournir les informations
donnant une image de la situation de l’organe terminal. En effet, la reconstruction de
cette situation par le modèle géométrique direct, dans le cas précédent, est nécessairement
entachée d’erreur. Le principe de la commande reste le même, mais l’asservissement
ne se fait plus sur la situation, mais par exemple sur la position dans l’image d’indices
visuels (points, droites, etc.), que l’on cherche à placer de manière à positionner l’organe
terminal indirectement. Le modèle, lors de l’inversion, doit alors intégrer la relation entre
vitesses articulaires et vitesses des indices visuels (notion de matrice d’interaction). Ceci
sera évoqué dans un autre cours...

Remarque : modèle géométrique inverse numérique Le principe de commande ex-


posé précédemment permet d’atteindre une situation désirée, en calculant la configuration
correspondante itérativement. Ceci fournit donc une solution numérique au problème du
modèle géométrique inverse, dont on sait qu’il peut être difficile analytiquement.
Annexe A

Modélisation d’un bras manipulateur


de type SCARA

A.1 Robot de type SCARA : présentation


On désigne communément sous l’appellation de robots de type SCARA des robots
à quatre axes dont la chaîne cinématique est RRP R. La figure A.1 représente deux
modèles industriels de robots de type SCARA. Le second de ces robots, le Samsung
RSM-5, sera l’objet de notre étude.

(a) Robot EPSON EL-653M (b) Robot Samsung RSM-5


F IGURE A.1 – Exemples de robots de type SCARA

A cause de leur cinématique, ces robots sont bien adaptés à tous les travaux de
manipulation de palettes, de boîtes ou de cartouches, ou plus généralement d’objets
devant être saisis et déplacés soit parallèlement, soit perpendiculairement à l’horizontale.
On les rencontre notamment sur des chaînes de production (voir figure A.2).

A.2 Robot Samsung RSM-5 : modélisation


Les caractéristiques principales du robot Samsung RSM-5 sont données à la figure
A.3. Le schéma A.3(a) permet notamment de comprendre la cinématique de ce robot.
82 A. Modélisation d’un bras manipulateur de type SCARA

1. On rappelle que le robot est de type RRP R, les deux dernières articulations
concernant la montée–descente et la rotation de l’organe terminal autour de son
axe. Dessiner le schéma cinématique de ce robot.

A.2.1 Géométrie du robot


Espace de travail
On s’intéresse tout d’abord à l’espace de travail du robot. En l’absence d’obstacles
particuliers, le premier axe vertical, les butées articulaires du robot et bien évidemment
la longueur des différents axes constituent les seules limitations de l’espace de travail du
robot.
1. Relever les valeurs des butées articulaires du robot.
2. Le robot étant symétrique, ses butées ont été placées en respectant cette symétrie.
Représenter en vue de dessus (et en grand) les positions limites du robot, lorsque
celui-ci est en butée sur les articulations 1 et 2. Il est conseillé de respecter une
échelle cohérente.
3. Sur cette même figure, dessiner l’enveloppe de l’espace de travail, dans un plan
horizontal donné (les articulations 3 et 4 ne sont pas actionnées). Cela se fera
aisément à l’aide d’un compas et d’un rapporteur (à défaut, essayer d’être réaliste).
4. Donner les points particuliers de cette enveloppe.
5. Quelle est la dimension de l’espace opérationnel du robot ? Toutes les articulations
influent-elles de manière identique sur la position de l’organe terminal ? D’après
ces remarques, représenter sur un schéma en perspective l’allure du volume de
travail du robot, pour une orientation quelconque de son organe terminal.
6. Pour éviter la collision de l’organe terminal avec le premier corps vertical, l’organe
terminal ne peut s’approcher à moins de 155 mm cet de l’axe de ce corps. Vérifier
que cette condition est remplie. On se remémorera pour cela l’antique théorème
d’Al Kashi.

On souhaite maintenant établir le modèle géométrique direct du robot.

Paramétrage
1. Quelle précaution concernant la configuration du robot est préconisée dans le cours
pour placer les repères selon la convention de Denavit-Hartenberg ? Si nécessaire
refaire un schéma cinématique du robot dans une configuration adaptée.
2. Placer les repères R0 à R4 sur le schéma, en respectant les conventions de paramé-
trage vues en cours (paramètres de Denavit-Hartenberg modifiés).
3. Rassembler dans un tableau les paramètres de Denavit-Hartenberg modifiés :
ai 1 , ↵i 1 , ri , ✓i , dont on rappellera brièvement la définition. On ajoutera à ce
tableau une ligne donnant la valeur des paramètres de configuration, notés qi , dans
la configuration du schéma cinématique.
4. Relever les valeurs numériques de ces paramètres. On continuera néanmoins les
calculs en conservant les notations symboliques. Les valeurs numériques seront
utilisées à des fins de vérification.
A.2. Robot Samsung RSM-5 : modélisation 83

A.2.2 Modélisation géométrique


Modèle géométrique direct
1. Rappeler la définition du modèle géométrique direct. On notera q la configuration
du robot et x sa situation. Quelle sont les dimensions respectives de q et x ? Quel
est le degré de liberté de l’organe terminal du robot ?
2. Rappeler la formulation générale de la matrice de passage Ti 1, i d’un repère
Ri 1 à un repère Ri , dans le cas où l’on respecte la convention des paramètres de
Denavit-Hartenberg modifiés.
3. Calculer les matrices de passage successives du robot Ti 1, i , pour i = 1, . . . , 4.
On notera Ci = cos qi , Si = sin qi , Ci+j = cos qi+j et Si+j = sin qi+j , . . .
4. Multiplier les matrices de passage entre elles (dans le bon ordre) pour obtenir
le modèle géométrique direct du robot. On prendra là encore soin de respecter
les recommandations du cours concernant la méthode de calcul. En particulier,
on introduira des variables intermédiaires notées D1 , D2 , . . ., à chaque nouvelle
addition ou multiplication entre variables déjà définies.
5. Vérifier le modèle obtenu dans au moins deux configurations : la configuration
du schéma cinématique et une configuration plus quelconque, par exemple cor-
respondant à un des points particuliers relevés sur l’enveloppe de l’espace de
travail.
6. Donner l’orientation de l’organe terminal exprimée par les angles d’Euler. Est-ce
la représentation de l’orientation de l’organe terminal adaptée au robot étudié ?
Proposer une alternative.

Modèle géométrique inverse


1. Rappeler la définition du modèle géométrique inverse. D’après la première question
de la section A.2.2, que peut-on dire sur le nombre de solutions admises par ce
modèle ?
2. Calculer le modèle géométrique inverse du robot.

A.2.3 Modélisation cinématique


1. Rappeler la définition du modèle cinématique direct du robot et de sa matrice
jacobienne, notée J(q).
2. Si l’on représente l’orientation de l’organe terminal du robot par l’angle de lacet
↵ = x4 , on a : 0 1 0 1 0 1
ẋ1 vx q̇1
Bẋ2 C B vy C Bq̇2 C
B C = B C = J(q) B C .
@ẋ3 A @ vz A @q̇3 A
ẋ4 !z q̇4
En utilisant les éléments de cours relatifs à la composition des vitesses, calculer
directement la matrice jacobienne J(q).
3. Vérifier que le résultat obtenu est exact en dérivant maintenant les équations
du modèle géométrique direct. Retrouver l’expression de J(q) déterminée à la
question précédente.
84 A. Modélisation d’un bras manipulateur de type SCARA

4. Le rang de la matrice jacobienne, c’est-à-dire le nombre maximum de lignes ou de


colonnes indépendantes, donne le degré de liberté de l’organe terminal. En effet,
celui-ci correspond à la valeur maximale du rang de J(q), lorsque q balaie l’espace
des configurations. Pour le robot étudié, J(q) est de dimension 4 ⇥ 4 et de rang
maximum égal à 4. On en déduit que le rang de J(q) n’est plus maximal lorsque
son déterminant s’annule.
Calculer l’expression du déterminant de J(q). Pour quelles configurations ce dé-
terminant s’annule-t-il (on appelle ces valeurs les configurations singulières du
robot) ? Commenter.
F IGURE A.2 – Exemples d’utilisation du robot Samsung RSM-5

(a) Schéma et dimensions (b) Spécifications constructeur


F IGURE A.3 – Caractéristiques du robot Samsung RSM-5
Bibliographie

[Adept 13a] Adept. V+ robot programming language, 2013.


http ://www.adept.com/products/software/embedded/v-
plus/general.
[Adept 13b] Adept. Viper s650, 2013.
http ://www.adept.com/products/robots/6-axis/viper-
s650/general.
[Bernot 99] F. Bernot. Machines à Courant Continu. Constitution et fonction-
nement. Techniques de l’Ingénieur, traité Génie électrique, pages
D 3555 1–14, 1999.
[Craig 89] J. J. Craig. Introduction to robotics : Mechanics and control.
Addison-Wesley, 1989.
[Educmeca 13] Educmeca. Réducteur épicycloïdal, 2013.
http ://edumeca.free.fr/dotclear/themes/default/flash/engrenage.php.
[Gorla 01] B. Gorla et M. Renaud. Modelling of robot manipulators. Control
and applications. Communication personnelle, 2001.
[Harmonic Drive 13] Harmonic Drive. Principe de fonctionnement, 2013.
http ://www.harmonicdrive.de.
[Khalil 86] W. Khalil et J. Kleinfinger. A New Geometric Notation for Open
and Closed Loop Robots. ICRA’86, pages 75–79, avril 1986.
[Khalil 99] W. Khalil et E. Dombre. Modélisation, identification et commande
des robots. Hermès, 1999.
[Khalil 04] W. Khalil et E. Dombre. Modeling, identification and control of
robots. Butterworth-Heinemann, 2004.
[Khalil 13] W. Khalil et E. Dombre. Bases de la modélisation et de la com-
mande des robots-manipulateurs de type série. GDR Robotique,
2013.
http ://www.gdr-robotique.org/cours_de_robotique.
[Khatib 86] O. Khatib. Real-Time Obstacle Avoidance for Manipulators and
Mobile Robots. International Journal of Robotic Research, vol. 5,
no. 1, pages 90–98, 1986.
[Khatib 08] O. Khatib et B. Siciliano. Handbook of robotics. Springer, 2008.
[Louis 02a] J.-P. Louis et C. Bergmann. Commande Numérique des Machines.
Evolution des Commandes. Techniques de l’Ingénieur, traité Génie
électrique, pages D 3640 1–17, 2002.
88 Bibliographie

[Louis 02b] J.-P. Louis, B. Multon, Y. Bonnassieux et M. Lavabre. Commande


des Machines à Courant Continu (mcc) à Vitesse Variable. Tech-
niques de l’Ingénieur, traité Génie électrique, pages D 3610 1–17,
2002.
[Multon 04] B. Multon. Les machines synchrones autopilotÉes. ENS Cachan,
antenne de Bretagne, 2004.
[Murray 94] R. Murray, Z. Li et S. Sastry. A mathematical introduction to
robotic manipulation. CRC Press, 1994.
[Nakamura 91] Y. Nakamura. Advanced robotics : Redundancy and optimization.
Addison-Wesley Longman Publishing, Boston, Etats-Unis, 1991.
[Neimark 72] J. Neimark et N. Fufaev. Dynamics of nonholonomic systems,
volume 33. Translations of Mathematical Monographs, 1972.
[Paul 81] R. Paul. Robot manipulators : Mathematics, programming, and
control. MIT press, Cambridge, Londres, Royaume-Uni, 1981.
[Renaud 86] M. Renaud. Calcul analytique itératif des modèles d’un robot
manipulateur. Rapport technique 86159, LAAS–CNRS, 1986.
[Renaud 96] M. Renaud. Comment définir l’orientation d’un corps ? Rapport
technique 96078, LAAS–CNRS, 1996.
[Sciavicco 00] L. Sciavicco et B. Siciliano. Modelling and control of robot
manipulators. Springer-Verlag, 2000.
[Wikipedia 13] Wikipedia. Brushless DC electric motor, 2013.
http ://en.wikipedia.org/wiki/Brushless_DC_electric_motor.
Index

angles nutation, 12
d’Euler classiques , 12
roulis, tangage et lacet, 13 paramètres
d’Euler complets, 11
bras manipulateur paramètres de Denavit-Hartenberg modi-
série, 17 fiés, 19
bras manipulateur paramètres de Denavit-Hartenberg modi-
anthropomorphe, 17 fiés, 18
SCARA, 17 poignet sphérique, 27
position
configuration d’un point, 3
singulière, 27 précession, 12
coordonnées
d’un point, 3 rotation propre, 12
coordonnées homogènes, 14 roulis, 13
cosinus directeurs, 10
situation
cosinus directeurs incomplets, 10
d’un solide, 3
espace solide
de travail, 27 indéformable, 3

groupe tangage, 13
spécial orthogonal, 7 trajectoire
d’un point, 3
indice préférentiel, 30 transformation
rigide, 4
lacet, 13
vecteur
matrice vitesse de rotation, 15
de changement de base, 4 vecteur rotation, 10
de passage, 4
de rotation, 4
matrice de passage homogène, 14
matrice jacobienne, 29
modèle
cinématique direct, 29
différentiel direct, 29
géométrique direct, 23
géométrique inverse, 26
mouvement
d’un point, 3
rigide, 3