UPJV, Département EEA Master 2 EEAII
Parcours ViRob
Fabio MORBIDI
Laboratoire MIS
Équipe Perception et Robotique E-mail: [email protected]
Semestre 9, AU 2016-2017
Mercredi 14h00-16h30, Jeudi 10h00-12h30 Salle TP101
Plan du cours
Chapitre 1: Perception pour la robotique [F. Morbidi]
Chapitre 2: Modélisation d’incertitudes [D. Kachi]
1. Introduction
3. Typologies de capteur 2. Classification des capteurs
1. Introduction
3. Représentation statistique 2. Représentation de l’incertitude
4. Propagation de l’erreur: fusion des mesures de l’incertitude
Chapitre 3: Traitement des mesures [D. Kachi]
1. Réseau multi-capteurs 2. Fusion des mesures
Partie I : Perception Avancée
Chapitre 1: Introduction [F. Morbidi]
Plan du cours
Partie II : Robotique Mobile
1. Petit historique
3. Marché mondial et besoins technologiques 2. Systèmes, locomotions, applications
Chapitre 2: Locomotion [F. Morbidi]
1. Effecteurs et actionneurs
3. Robots mobiles à roues 2. Robots mobiles à jambes
4. Robots mobiles aériens
Chapitre 3: Décision et contrôle [F. Morbidi]
1. Commandabilité d’un robot
3. Contrôle de mouvement 2. Architectures de contrôle
Ch. 3: Décision et contrôle
• Architectures de contrôle
• Contrôle de mouvement
Partie 1
Partie 2
Partie 3
• Commandabilité d’un robot
• Dans le chapitre 2.3, on a dit qu’il y a une « relation inverse » entre la manœuvrabilité et la commandabilité d’un robot
• Plus la manœuvrabilité d’un robot est elevée, moins le robot est commandable aisément
Commandabilité d’un robot
• Soit le système non linéaire suivant (affine en l’entrée):
Objectif: définir plus précisément la notion de commandabilité
˙
x = f(x) +
m j=1
gj(x)uj
où est l’état du système et le vecteur des entrées de commande x ∈ Rn
U :
classe des fonctions constantes par morceauxΣ :
Pour qu’un robot mobile soit utile (ou utilisable), il faut en premier lieu s’assurer de sa commandabilité
u = [u
1, . . . , u
m]
T∈ U ⊂ R
mCommandabilité d’un robot
Cette solution existe si (c’est-à-dire, les champs vectoriels sont fonctions continûment dérivables)
Soit la solution du système au temps
qui correspond à l’entrée et à la condition initiale
Définition
x (t, 0, x
0, u )
u : [0, t] −→ U x(0) = x0
f, g1, . . . ,gm ∈ C∞
Le système est commandable, si pour tout choix de , il y a un instant de temps et une entrée tels que:
Σ T
u : [0, T] −→ USi est le modèle (cinématique) d’un robot, commandabilité signifie qu’il existe toujours une loi de commande amenant le robot d’une configuration initiale et à une configuration finale quelconqueΣ u(t)
Σ
x0, xf ∈ Rn x(T, 0, x0, u) = xf
x0 xf
t = 0 u(t) t = T
t ≥ 0
Commandabilité d’un robot
(rappel, par ex. les modèles cinématiques en posture du robot de type unicycle et tricycle qui, par ailleurs font partie d’une classe de systèmes non linéaires particulaires dits systèmes chaînés)
nous avons le théorème suivant:
Si le système est sans terme de dérive ou « driftless » ( ):
Théorème de Chow Un système
Σ
f(x) = 0˙ x =
m j=1
gj(x)uj = G(x)u
˙
x = G(x)u
est commandable si et seulement si les colonnes de et leur crochets de Lie successifs forment un ensemble de
vecteurs linéairement indépendants
G(x)
n
Exemple (Théorème de Chow)
If has deux colonnes and , on évaluera:
Degré 1:
G
Degré 2:
Degré 3:
Degré 4:
g
1g
2g
1, g
2[ g
1, g
2]
[ g
1, [ g
1, g
2]], [ g
2, [ g
1, g
2]]
[ g
1, [ g
1, [ g
1, g
2]]], [ g
1, [ g
2, [ g
1, g
2]]], [ g
2, [ g
1, [ g
1, g
2]]], [ g
2, [ g
2, [ g
1, g
2]]]
Donc, il ne faut pas considérer tous les crochets de Lie à tous les niveaux. En pratique, il y aura un degré fini au-delà duquel les crochets de Lie n'apportent aucune nouvelle information
Mais le crochet de Lie a les propriétés suivantes:
...
(anticommutativité)
(identité de Jacobi)
• [ g
i, g
i] = 0
• [ g
i, g
j] = −[ g
j, g
i]
• [ g
i, [ g
j, g
k]] + [ g
k, [ g
i, g
j]] + [ g
j, [ g
k, g
i]] = 0
kSophus Lie (1842-1899)
Commandabilité d’un robot
Exemple [Robot de type tricycle motorisé à l’avant]
θ
ψ
x y
: commande du robot
D
x
yO’
Modèle cinématique en posture (Ch. 2.3):
Les colonnes de sont:
g1 =
⎡
⎢⎢
⎢⎢
⎢⎣
cosθcosψ sinθcosψ
sinψ D
0
⎤
⎥⎥
⎥⎥
⎥⎦, g2 =
⎡
⎢⎢
⎢⎣ 0 0 0 1
⎤
⎥⎥
⎥⎦
: vecteur de configuration
˙ x =
⎡
⎢⎢
⎢⎣
˙ x
˙ y θ˙ ψ˙
⎤
⎥⎥
⎥⎦ =
⎡
⎢⎢
⎢⎢
⎢⎣
cosθcosψ 0 sinθ cosψ 0
sinψ
D 0
0 1
⎤
⎥⎥
⎥⎥
⎥⎦
G(x)
u1
u2
G(x)
x = [x, y, θ, ψ]T u = [u1, u2]T
Commandabilité d’un robot
Exemple [Robot de type tricycle motorisé à l’avant]
Calcul des crochets de Lie successifs:
[g1, [g1, g2]] =
⎡
⎢⎢
⎢⎢
⎢⎢
⎢⎣
−sinθ cosDθ
D 0 0
⎤
⎥⎥
⎥⎥
⎥⎥
⎥⎦
Matrice jacobienne
4 × 4
[g1, g2] ∂ g2
∂ x g1 − ∂ g1
∂ x g2 =
⎡
⎢⎢
⎢⎢
⎢⎣
cosθsinψ sinθ sinψ
−cosψ D 0
⎤
⎥⎥
⎥⎥
⎥⎦
Commandabilité d’un robot
Exemple [Robot de type tricycle motorisé à l’avant]
et
[g2, [g1, g2]] = −[g1, g2] =
⎡
⎢⎢
⎢⎢
⎢⎢
⎣
−cosθ sinψ
−sinθ sinψ cosψ
D 0
⎤
⎥⎥
⎥⎥
⎥⎥
⎦
On a obtenu 4 vecteurs linéairement indépendants:
g1, g2, [g1, g2], [g1, [g1, g2]]
pour un système de dimension . Le modèle cinématique du robot de type tricycle est donc commandable.
De même, on peut montrer que le modèle du robot unicycle est commandable.
n = 4
Commandabilité d’un robot
Remarque
Pour systèmes avec terme de dérive ( ), la condition du
Théorème de Chow est seulement nécessaire pour la commandabilité.
1. Si le système
est commandable, le système avec terme de dérive obtenu par extension dynamique (à savoir, on ajoute un intégrateur à chaque canal d’entrée):
est aussi commandable.
f(x) = 0
˙ x =
m j=1
gj(x)uj
⎧⎪
⎪⎨
⎪⎪
⎩
˙ x =
m j=1
gj(x)vj
˙
vj = uj, j ∈ {1, . . . , m}
Toutefois, il y a deux exceptions importantes:
Σ
Commandabilité d’un robot
Remarque
2. Pour un système linéaire invariant en temps:
la condition du Théorème de Chow devient:
c’est-à-dire, la condition nécessaire et suffisante de Kalman pour la
commandabilité (rappel les Cours d’Automatique), où la matrice
:
˙
x = Ax + m j=1
bj uj = A x + B u
C = [B AB A2B · · · An−1B]
est communément appelée matrice de commandabilité ou de contrôlabilité
n × nm ranq([B AB A2 B · · · An−1 B]) = n
Ch. 3: Décision et contrôle
• Architectures de contrôle
• Contrôle de mouvement
Partie 1
Partie 2
Partie 3
• Commandabilité d’un robot
Approche cognitive
1. Approche cognitive: capacité de planification et de prédiction mais
nécessité d’un modèle, peu robust aux changements dans l’environnement, complexité calculatoire (pas de temps réel)
Approche réactive
symbole réflexe
vitesse de réponse capacités prédictives
dépendance d’un modèle précis
2. Approche réactive ou comportamentale: comportements simples et modulaires, temps réel mais peu de capacités de prédiction
3. Approche hybride: modulation des comportements réactifs et du raisonnement de haut niveau (la plus utilisée)
Approche constructiviste: basée comportements avec construction progressive de connaissances sur le monde d’évolution du robot
Genghis
Shakey
Architectures de contrôle
Le choix d’une approche dépend de l’application (la mission du robot) et de son environnement d’évolution
Perception Planification Action
Hiérarchique
Réactive Perception Action Planification
Basée
comportement
Perception Planification Action
Perception Planification Action
Hybride
Perception
Planification
Action
Acquisition des données
sensorielles Modélisation du monde et planification de chemin
Action des moteurs et des effecteurs
Ch. 3: Décision et contrôle
• Architectures de contrôle
• Contrôle de mouvement
Partie 1
Partie 2
Partie 3
• Commandabilité d’un robot
Contrôle de mouvement
Pour plus de simplicité, on considérera dorénavant le modèle cinématique (en posture) du robot unicycle:
⎡
⎣ x˙
˙ y θ˙
⎤
⎦ =
⎡
⎢⎣
cosθ 0 sinθ 0
0 1
⎤
⎥⎦ v
w
Pour ce robot, on va étudier deux problèmes fondamentaux:
1. Suivi de trajectoire (ou stabilization de mouvement) : Le robot doit suivre asymptotiquement une trajectoire cartésienne désirée
où est le temps, à partir d’une configuration initiale qui peut appartenir ou non à la trajectoire
(xd(t), yd(t))
q0 = [x0, y0, θ0]T
2. Régulation de la pose (ou posture) : Le robot doit atteindre asymptotiquement une pose donnée, c’est-à-dire une configuration désirée à partir d’une configuration initiale qd q0
• D'un point de vue pratique le premier problème est le plus important
• Dans les deux cas, on cherche une loi de commande par retour d’état, la commande en boucle ouverte n’offrant que des possibilités limitées dans un environnement incertain contenant des obstacles
t
Contrôle de mouvement
1. Suivi de trajectoire
2. Régulation de la pose
(xd(t), yd(t))
Pose initiale Pose désirée
(erreur de position)
1. Suivi de trajectoire
Pour pouvoir résoudre le problème, il faut que la trajectoire cartésienne désirée soit admissible pour le modèle cinématique du
robot, à savoir elle doit satisfaire:
(xd(t), yd(t))
˙
xd = vd cosθd
˙
yd = vd sinθd
θ˙d = ωd
pour certains choix des entrées .
En d’autres termes, on imagine que la trajectoire soit générée par un “robot fictif de référence” (en bleu sur la figure)
vd, ωd
(xd(t), yd(t))
“robot fictif”
robot
1. Suivi de trajectoire
L’orientation du robot le long de la trajectoire désirée peut
être calculée comme: (xd(t), yd(t))
et les entrées de référence peuvent être calculées comme:
θd(t) = atan2( ˙yd(t), x˙d(t)) + kπ, k ∈ {0,1}
vd(t) = ±
˙
x2d(t) + ˙yd2(t)
ωd(t) = y¨d(t) ˙xd(t) − x¨d(t) ˙yd(t)
˙
x2d(t) + ˙yd2(t)
Assumption: La valeur de (et par conséquent le signe de ) a été fixée vd
Il convient de définir l’erreur de suivi de la façon suivante:
e =
⎡
⎣ e1
e2
e3
⎤
⎦ =
⎡
⎣ cosθ sinθ 0
−sinθ cosθ 0
0 0 1
⎤
⎦
⎡
⎣ xd − x yd − y θd − θ
⎤
⎦
RT(θ) k
1. Suivi de trajectoire
Ainsi la partie relative à l’erreur de position, , est exprimée dans un repère aligné avec l’orientation courante θ du robot Si on calcule la dérivée par rapport au temps de l’erreur et on fait appel aux équations précédentes, nous trouvons:
Si on utilise la transformation (invertible):
˙
e1 = vd cose3 − v + e2 ω
˙
e2 = vd sine3 − e1 ω
˙
e3 = ωd − ω
v = vd cose3 − u1
ω = ωd − u2
on obtient la dynamique de l’erreur suivante:
˙ e =
⎡
⎣ 0 ωd 0
−ωd 0 0
0 0 0
⎤
⎦e +
⎡
⎣ 0 sine3
0
⎤
⎦vd +
⎡
⎣ 1 −e2
0 e1
0 1
⎤
⎦ u1
u2
ep = [xd − x, yd − y]T
e(t)
1. Suivi de trajectoire
˙ e =
⎡
⎣ 0 ωd 0
−ωd 0 0
0 0 0
⎤
⎦e +
⎡
⎣ 0 sine3
0
⎤
⎦vd +
⎡
⎣ 1 −e2
0 e1
0 1
⎤
⎦ u1
u2
Remarque: Le premier terme est linéaire et le deuxième et le troisième terme sont non linéaires. Le premier et le deuxième terme sont variables dans le temps car ils dépendent des entrées vd, ωd
Trois options pour déterminer la commande pour le suivi de trajectoire:
1. Linéarisation du système: on met et on évalue la matrice d’entrée sur la trajectoire: sine3 = e3
u1 = −k1 e1
u2 = −k2 e2 − k3 e3
où sont des gains appropriés k1, k2, k3
On peut alors définir la rétroaction linéaire suivante:
˙ e =
⎡
⎢⎣
0 ωd 0
−ωd 0 vd
0 0 0
⎤
⎥⎦e +
⎡
⎢⎣
1 0 0 0 0 1
⎤
⎥⎦ u1
u2
1. Suivi de trajectoire
où sont fonctions bornées avec dérivées bornées et est une constante
2. Contrôle non linéaire: on travaille directement sur le système non linéaire d’origine et on définit la commande suivant:
u1 = −k1(vd, ωd)e1
u2 = −k2 vd sine3
e3 e2 −k3(vd, ωd)e3
k1(·, ·) > 0, k3(·, ·) > 0 k2 > 0
3. Linéarisation entrée-sortie par retour d’état: on définit une entrée qui transforme le modèle de l’unicycle en un système linéaire.
Par exemple, on peut choisir:
x y
v ω
=
cosθ sinθ
−1b sinθ 1b cosθ
=
u1
u2
, b = 0
B est un point sur l’axe sagittal du robot à une distance |b| du point de contact de la “roue” avec le sol. En particulier, B est devant le point de contact si b > 0 et derrière si b < 0
(v, ω)
1. Suivi de trajectoire: simulations
Trajectoire désirée circulaire: commande basée sur la linéarisation du système
ep(t)
temps Norme de l’erreur de position
x [s]
y
1. Suivi de trajectoire: simulations
Trajectoire désirée en forme de « huit »:
contrôle non linéaire
ep(t)
temps Norme de l’erreur de position
[s]
x y
1. Suivi de trajectoire: simulations
Trajectoire désirée carrée: commande basée sur la linéarisation entrée-sortie (b = 0.75 m, en haut; b = 0.2 m, en bas)
temps v(t)
ω(t)
v(t)
ω(t) x
y
x y
[s]
[s]
[s]
temps
[m/s] [rad/s] [m/s] [rad/s]
2. Régulation de la pose
Pour la regulation de la pose on ne peut pas utiliser directement les contrôleurs développés pour le suivi de trajectoire
Les premiers deux lois de commande fonctionnent seulement avec des trajectoires persistantes, à savoir |vd(t)| ≥ ¯v > 0, ∀t ≥ 0
Il faut donc concevoir des solutions “ad hoc”
Assumption: pour simplifier, et sans perte de généralité, on peut choisir comme configuration désirée l’origine, à savoir qd = [0, 0, 0]T
Pose désirée
[0, 0, 0]T
2. Régulation de la pose
a) Régulation cartésienne: seulement la position cartésienne finale du robot est spécifiée. L’orientation finale du robot est laissée libre.
Puisque , l’erreur cartésienne devient qd = [0, 0]T ep = [xd − x, yd − y]T
ep = [−x, −y]T
On peut définir la commande suivante:
v = −k1(xcosθ + y sinθ) ω = k2(atan2(y, x) − θ + π)
où k1 > 0, k2 > 0.
Projection de l’erreur cartésienne sur l’axe sagittal du robot
Différence entre l’orientation du robot et l’orientation du vecteur
ep
ep
Avec ce contrôleur, l’erreur cartésienne converge à zero pour toute condition initiale (démonstration: théorème de stabilité de Lyapunov)
ep
qd = [0, 0]T x y
Axe sagittal
γ
2. Régulation de la pose
b) Régulation de la pose: la position et l’orientation finale du robot sont spécifiées
Il convient de définir le problème en coordonnées polaires
ρ =
x
2+ y
2γ = atan2(y, x) − θ + π δ = γ + θ
Pose désirée
Soyent:
e
pPose désirée
2. Régulation de la pose
En cordonnées polaires, le modèle cinématique du robot dévient:
˙
ρ = −vcosγ
˙
γ = sinγ
ρ v − ω δ˙ = sinγ
ρ v
Ce modèle présente une singularité pour (lorsque le robot est dans l’origine)
ρ = 0
e
pRemarque:
2. Régulation de la pose
On peut ainsi définir la loi de commande suivante:
avec gains
Le modèle cinématique du robot en coordonnées polaires avec cette loi de commande converge asymptotiquement vers [ρ, γ, δ]T = [0, 0, 0]T.
Démonstration: théorème de stabilité de Lyapunov Remarque:
• Si la loi de commande est réécrite en utilisant les coordonnées cartésiennes originales, elle est discontinue à l’origine
• En effet, toute loi de commande en rétroaction qui régule la pose de l’unicycle doit être nécessairement discontinue par rapport à l’état et/ou variable dans le temps. Ceci est une conséquence d’un
théorème plus général valable pour tous les systèmes non holonômes, le théorème de Brockett
k1 > 0, k2 > 0, k3 > 0.
v = k1 ρ cosγ
ω = k2 γ + k1sinγ cosγ
γ (γ + k3 δ)
Simulations (« manœuvres de parking »)
Régulation cartésienne
Régulation de la pose Condition initiale 1 Condition initiale 2
k1 = 1, k2 = 3
k1 = 1, k2 = 2.5, k3 = 3
Une inversion de
mouvement au maximum
Une inversion de
mouvement au maximum
q0
q0 q0
q0
x y
x y
x y
x y
Exercice (Matlab)
1. Créer un schéma Matlab Simulink qui permet de simuler le comportement du robot unicycle (cf. la figure ci-dessous)
• Tester le comportement du robot pour différentes entrées
2. Implementer sur Matlab la régulation cartésienne et la régulation de la pose du robot unicycle
• Tester les lois de commande avec des conditions initiales et avec des gains différents, et afficher les trajectoires du robot
• Reproduire les “manœuvres de parking” montrées dans les quatre figures de la diapositive précédente
(v(t), ω(t))
k1, k2, k3