Cinématique et commande
Julien Alexandre dit Sandretto
Department U2IS
ENSTA ParisTech
ROB316-2019-2020
Objectifs du cours
Objectifs du cours
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 2
Objectifs du cours
Objectifs du cours
Aperçu des problèmes de planification et contrôle des robots
mobiles / véhicules autonomes
I Perception / Cartographie / Localisation - ROB312
I Planification de tâche
I Planification de chemin - ROB316
I Contrôle
Présentation des méthodes classiques
I PID, MPC, A∗ , RRT, STRIPS, PDDL, HTN, etc.
TP en Matlab (ou Octave)
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 3
Objectifs du cours
Intervenants
Julien Alexandre dit Sandretto
Contrôle : PID, MPC - ENSTA Paris U2IS
[Link]
David Filliat
Planification de trajectoire - ENSTA Paris U2IS
[Link]
Philippe Morignot
Planification de tâche - SAFRAN
Dominique Luzeaux
Contrôle par logique floue - Direction Générale pour l’Armement
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 4
Objectifs du cours
Contrôle des connaissances
Compte-rendus de TP (en binomes)
Un pdf à rendre la semaine suivant le TP :
I 5 lignes résumant le cours
I une desription du TP
I vos résultats et remarques (analyse des paramètres par
exemple)
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 5
Cinématique et commande
Introduction
Modèle cinématique
Unicycle
Tricycle
Voiture
Chariot avec remorque
Importance des repères
Repère de Frénet
Applications
Stabilisation de trajectoires
Suivi de chemin
Stabilisation de configurations fixes
Correcteur PID
Lien avec l’analogique
Propriétés
Réglage des coefficients
Actionneurs/capteurs
Discussion
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 6
Introduction
Introduction
Robot mobile : une machine intelligente ?
Robot tactique Curiosity Robot aspirateur
(exploration, déminage)
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 7
Introduction
Introduction
Ces robots ont besoin d’accomplir une mission
(explorer-cartographier, agir sur l’environnement, aspirer le sol)
Besoin d’autonomie
La première mission : aller (seul) où il doit aller !
Assurer autonomie
Contrôler les moteurs en fonction des données capteurs pour
réaliser un mouvement
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 8
Modèle cinématique
Modèle cinématique
Relier moteurs / mouvements : un modèle cinématique
Modèle cinématique
I Suit l’idée des schémas cinématiques : relation d’équivalence
qui lie les éléments d’un système mécanique.
Définie un mécanisme par les éléments d’assemblage (fixes les
uns par rapport aux autres comme vis, boulons, colle, etc.) et
les liaisons mécaniques qui laissent un ou plusieurs degrés de
liberté (simples : linéaire, rotule, pivot, appui, glissière, etc. ;
technologiques : ressorts, courroies, engrenages, embrayages,
etc.)
I En robotique : on ne regarde que la chaine cinématique qui lie
la vitesse dans le domaine Cartésien et la vitesse articulaire du
robot
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 9
Modèle cinématique
Modèle cinématique
Ce modèle a une direction (pas toujours inversible)
I Modèle cinématique direct : calcule la vitesse dans le domaine
cartésien en fonction de la vitesse articulaire du robot
I Modèle cinématique inverse : permet de passer de la vitesse
opérationnelle à la vitesse dans le domaine articulaire
En robotique mobile, on obtient naturellement le modèle direct
⇒ d’où la problèmatique du contrôle !
Quelques simplifications
I corps rigides, pas (peu) de frottement/glissement, actionneurs
schématisés par leur vitesse
Modèle plus simple que dynamique : pas besoin d’information
sur paramètres inertiels
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 10
Modèle cinématique
Modèle cinématique des robots mobiles à roues
Contraintes non holonômes
holos + nomos = entière + loi
I roulement sans glissement
I roulement sans dérapage
Cela implique :
I la composante de la vitesse dans la direction de la roue est
égale à la vitesse de roulement
I la composante de la vitesse dans la direction perpendiculaire
au mouvement est nulle
Certains mouvements ne sont pas possibles : non holonome
Remarque : des robots holonomes existent, mais pas dans ce cours
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 11
Modèle cinématique Unicycle
Unicycle
Principe
Composé de deux roues motrices indépendantes à l’arrière et d’une
roue folle à l’avant (non contrôlée, pour la stabilité)
Ψ1
ẋ = u1 cos θ
θ ẏ = u1 sin θ
y θ̇ = u2
O'
avec u1 = 2r (ψ˙1 + ψ˙2 ) et
u2 = 2Lr
(ψ˙2 − ψ˙1 ), avec r le
Ψ2
rayon des roues et L la
longueur de l’axe
O x
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 12
Modèle cinématique Tricycle
Tricycle
Principe
Composé d’un train à l’arrière (stabilité) et d’une roue motrice et
directrice à l’avant
CIR
Ψ
ẋ = u1 cos θ cos ψ
θ ẏ = u1 sin θ cos ψ
y
u1
θ̇ = sin ψ
O'
D
ψ̇ = u2
avec u1 vitesse longitudinale et
u2 angulaire de la roue et D la
distance entre train arrière et
O x roue avant
CIR = centre instantané de rotation
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 13
Modèle cinématique Voiture
Voiture
Principe
Composé d’un train moteur à l’arrière et d’un train directeur à
l’avant
Ψ
ẋ = u1 cos θ
ẏ = u1 sin θ
θ u1
θ̇ = tan ψ
y D
O'
ψ̇ = u2
avec u1 vitesse longitudinale et
u2 vitesse de braquage et D la
distance entre train arrière et
train avant
O x
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 14
Modèle cinématique Chariot avec remorque
Chariot avec remorque
Principe
Unicycle suivi d’une remorque, cinématique similaire à la voiture
Ψ Ψ
Mais le problème de la manœuvrabilité est plus complexe
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 15
Modèle cinématique Importance des repères
Importance des repères
On l’a vu, le modèle cinématique permet d’exprimer le mouvement
d’un repère, celui du robot, par rapport au repère de référence, le
“monde”.
Il faut donc
I bien placer celui du robot, il n’existe pas mais doit être
physiquement identifiable...
I éviter les ambiguités (rotation)
I penser à la tâche : par exemple repère de Frénet
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 16
Repère de Frénet
Repère de Frénet
Idéal pour suivi de chemin :
Rs : repère centré en S, tangent à C
θ
+P P : un point du robot (coordonnées
R1
(l1 , l2 ) dans R1
s : abscisse curviligne de S,
d C
projection de P sur C (existe sous
RS
certaines conditions)
s θS d : ordonnée de P dans Rs
R0 θe = θ − θs
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 17
Repère de Frénet
Repère de Frénet
La cinématique
Il nous faut les dérivées de s, d, et θe :
θ˙e = u2 − ṡc(s)
−→
∂ OP
où c(s) est la courbure de C en s. Puis on calcule ∂t ...et on
obtient :
1
ṡ = [(u1 − l2 u2 ) cos θe − l1 u2 sin θe ]
1 − dc(s)
ḋ = (u1 − l2 u2 ) sin θe + l1 u2 cos θe
˙
θe = u2 − ṡc(s)
(si l1 = l2 = 0, c(s) = 0, s = x , d = y : on retrouve bien l’unicycle)
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 18
Applications
Applications
Ces modèles cinématiques peuvent être nécessaires à de
nombreuses applications :
I conception (dimensionnement)
I simulation
I génération de trajectoires
I et surtout en contrôle
Nous allons voir trois applications au contrôle : la stabilisation de
trajectoires, le suivi de chemin et la stabilisation de configurations
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 19
Applications Stabilisation de trajectoires
Stabilisation de trajectoires
Stabiliser une trajectoire : considérons que nous sommes dessus, et
donc localement c(s) = 0
Où placer P ? Sur l’axe des roues ou non...
Sur l’axe
Ceci implique l1 = 0 et donc
ẋ = (u1 − l2 u2 ) cos θ, ẏ = (u1 − l2 u2 ) sin θ
⇒ P ne peut se déplacer que dans la direction du vecteur
(cos θ, sin θ) : problème de la non-holonomie !
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 20
Applications Stabilisation de trajectoires
Stabilisation de trajectoires
En dehors de l’axe
ẋ cos θ −l1 sin θ 1 −l2 u1
=
ẏ sin θ l1 cos θ 0 1 u2
⇒ matrices inversibles donc il n’y a pas de singularité et le robot
peut aller où il veut !
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 21
Applications Stabilisation de trajectoires
Stabilisation de trajectoires
Problème
On veut suivre une trajectoire de référence t 7→ (xr (t), yr (t))
(différentiable). On définie l’erreur à la référence par
e = (x − xr , y − yr ), on veut évidement que cette erreur se
stabilise à 0.
cos θ −l1 sin θ u1 − l2 u2 x˙
ė = − r
sin θ l1 cos θ u2 y˙r
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 22
Applications Stabilisation de trajectoires
Stabilisation de trajectoires
La commande
En posant les variables de commande
v1 cos θ −l1 sin θ u1 − l2 u2
=
v2 sin θ l1 cos θ u2
Le problème revient à
v x˙
ė = 1 − r
v2 y˙r
Ce problème est linéaire est peut donc être stabilisé par une
commande proportionnelle (ki > 0) :
v1 = x˙r − k1 (x − xr ), v2 = y˙r − k2 (y − yr )
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 23
Applications Stabilisation de trajectoires
Stabilisation de trajectoires
Qu’en est-il des autres systèmes ?
I chariot avec remorque : identique à condition de prendre P
sur le chariot (et u1 > 0)
I voiture : identique à condition de prendre P sur la roue
directrice
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 24
Applications Suivi de chemin
Suivi de chemin
Objectif
Stabiliser à zéro la distance d entre unicycle et courbe C
On a vu que d satisfait
ḋ = (u1 − l2 u2 ) sin θe + l1 u2 cos θe (1)
Commande par retour d’état
L’unicycle a une vitesse fixée u1 strictement positive ou négative
(on la choisit positive), on place P tel que l2 = 0
Une commande par retour d’état peut être définie
u1 u1
u2 = − sin θe − k(d, θe )d
l1 cos θe cos θe
avec k continue, strictement positive et k(d, ±π/2) = 0 (par
exemple k(d, θe ) = k0 cos θe )
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 25
Applications Suivi de chemin
Suivi de chemin
En injectant la commande u2 dans Eq.(1) :
ḋ = −l1 u1 k(d, θe )d
Convergence
Un unicycle contrôlé par ce retour d’état implique bien que d → 0
car ḋ < 0 (et en s’assurant que |θe | < π/2)
Qu’en est-il des autres systèmes ?
Même résultats sous les mêmes conditions que précédemment
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 26
Applications Stabilisation de configurations fixes
Stabilisation de configurations fixes
Objectif
Aligner parfaitement le repère du robot et celui de référence
(OP = 0 et θ = 0)
Typiquement garer une voiture !
Compliqué...
Dû aux contraintes de non-holonomie (nécessite une manœuvre),
les approches classiques de contrôle ne fonctionnent que rarement
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 27
Correcteur PID
Correcteur (ou régulateur) PID
Le système est dans un état y (t), on veut qu’il aille à une
référence r (t), on a donc une erreur e(t) = r (t) − y (t).
Bouclage
Le PID permet de calculer une commande u(t), proportionnelle à
l’erreur, à son intégrale et à sa dérivée, qui fait tendre e(t) vers 0.
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 28
Correcteur PID Lien avec l’analogique
Une vision électronique de la régulation
Ajout d’une capacité pour
Comparateur avec un l’intégrale (accumulation) :
amplificateur opérationnel :
PI en paralléle (existe aussi en
série)
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 29
Correcteur PID Lien avec l’analogique
Une vision électronique de la régulation
Une façon de réaliser un PID analogique :
Intérêts de l’analogique : rapide, continu, peu couteux, aucun
bugs, etc...(présent dans les satellites)
Problèmes : difficile à régler, fréquences, bruits, etc...
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 30
Correcteur PID Propriétés
Propriétés
Par composante du PID
Chaque composante à ses avantages et ses inconvénients :
Action Avantages Inconvénients
P dynamique ne permet pas d’annuler une
erreur statique
I annulation de l’erreur sta- action lente, ralentit la
tique, améliore la robustesse réponse du système (peut
destabiliser)
D action très dynamique, sensible aux bruits, sollicite
améliore la rapidité (sta- fortement les actionneurs
bilise) (à-coups)
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 31
Correcteur PID Propriétés
Propriétés
Globales au correcteur
I Dépassement : casse du
système
I Erreur statique : empêche
d’atteindre la consigne
(précision)
I Temps de montée :
réponse du système
(rapidité)
I Temps de stabilisation
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 32
Correcteur PID Propriétés
Comparaison des régulateurs
Comparons les régulateurs P, I, PI, PD, PID :
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 33
Correcteur PID Réglage des coefficients
Réglage des coefficients
Plusieurs méthodes existent pour le réglage des coefficients Kp , Ki ,
et Kd :
I Black : basique, le diagramme de Black permet de visualiser
les effets d’un régulateur et d’ajuster les paramètres à la main
(abaque de Nichols)
I Nyquist : identique mais avec diagramme de Nyquist
(visualise la réponse harmonique de la boucle ouverte pour
évaluer la stabilité du système équivalent en boucle fermée)
I Ziegler-Nichols : voir la suite
I Naslin : approche algébrique pour étudier la fonction de
transfert (rapports caractéristiques)
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 34
Correcteur PID Réglage des coefficients
Méthode de Ziegler-Nichols
Une méthode par approximations successives :
1. Fixer Ki = Kd = 0, on
part donc d’un régulateur
proportionnel simple avec
Kp = 0.1 par exemple
2. On augmente
progressivement Kp
jusqu’à avoir une
oscillation entretenue
3. On fixe Ku = Kp (gain
maximal) et Tu la période
d’oscillation
4. on utilise la table de Ziegler-Nichols pour Kp , Ki , et Kd
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 35
Correcteur PID Réglage des coefficients
Méthode de Ziegler-Nichols
Type de régulateur Kp Ti Td
P 0.5Ku - -
PI 0.45Ku Tu /1.2 -
PD 0.8Ku - Tu /8
PID 0.6Ku Tu /2 Tu /8
Les coefficients Ki = Kp /Ti et Kd = Kp Td
Z t
1 de(t)
u(t) = Kp e(t) + e(τ )dτ + Td
Ti 0 dt
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 36
Correcteur PID Réglage des coefficients
Méthode de Ziegler-Nichols
Avantages
Grande simplicité, suffisante pour beaucoup d’applications, pas
besoin de la fonction de transfert
Inconvénients
Léger déphasage, agressif (crée du dépassement)
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 37
Actionneurs/capteurs
Actionneurs/capteurs
PID ⇒ boucle fermée
y (t) nécessaire pour le calcul
de l’erreur à la consigne :
capteurs (avec observateur ou
non)
Faire le lien entre actionneurs et capteurs
Modèle cinématique pour la simulation, le réglage de la
commande, etc.
Exemples
I Capteurs : mesure de la distance à un objectif, d’un cap, etc.
I Actionneurs : commande en vitesse des moteurs, saturation
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 38
Actionneurs/capteurs
Exemple de l’asservissement visuel
Objectif
Atteindre un objectif en contrôlant un robot par la vision.
Idée
Asservir la commande du robot directement en fonction de l’erreur
de la vision
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 39
Actionneurs/capteurs
Exemple de l’asservissement visuel
I La consigne est exprimée dans l’espace capteur, ici une image !
I L’erreur est la différence entre l’image voulue et celle donnée
par le système de vision
I Cette différence nous permet de calculer l’entrée à notre
système (régulateur en boucle fermée comme un PID)
Vidéo : [Link]
2005/10/asservissement-seq1.mp4?_=1
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 40
Discussion
Discussion
Modèle cinématique et PID
Théorie du contôle repose sur modélisation cinématique
PID régulateur très efficace mais parfois difficile à régler
La cinématique suffit-elle ?
Cette approche néglige les forces (frottement, gravité, etc.) et
l’intertie du système...
⇒ La semaine prochaine la modélisation dynamique et les
commandes associées
Julien Alexandre dit Sandretto - ROB316 November 25, 2019- 41