Vous êtes sur la page 1sur 255

Robotique mobile

Bernard BAYLE
bernard@eavr.u-strasbg.fr
ENSPS 3A, option ISAV, master IRIV

2010–2011
Page Web http://eavr.u-strasbg.fr/~bernard
Quels robots mobiles ?

Définition
Robots mobiles = robots à base mobile, par opposition aux
robots manipulateurs.

Classification
Le plus souvent robots mobiles = robots à roues, sinon on
précise le type de locomotion.
Quels robots mobiles ?

Définition
Robots mobiles = robots à base mobile, par opposition aux
robots manipulateurs.

Classification

Robots marcheurs
Quels robots mobiles ?

Définition
Robots mobiles = robots à base mobile, par opposition aux
robots manipulateurs.

Classification

Robots sous-marins
Quels robots mobiles ?

Définition
Robots mobiles = robots à base mobile, par opposition aux
robots manipulateurs.

Classification

Robots aériens
Histoire des robots mobiles à roues

Historique

Shakey : le premier robot mobile (SRI, 1966-1972)


http://www.sri.com/about/timeline/shakey.html
Histoire des robots mobiles à roues

Historique

Shakey : le premier robot mobile (SRI, 1966-1972)


http://www.sri.com/about/timeline/shakey.html
Histoire des robots mobiles à roues

Historique

Hilare : le premier robot mobile français (Laas, 1977)


http://www.laas.fr/ matthieu/robots/hilare
Les robots mobiles à roues aujourd’hui

Où sont-ils, que font-ils ?


Peu d’applications industrielles utilisent des robots mobiles.

Chariot filoguidé en milieu industriel (FMC Technologies)


http://www.fmcsgvs.com/index.htm
Les robots mobiles à roues aujourd’hui

Où sont-ils, que font-ils ?


Peu d’applications grand public utilisent des robots mobiles.

Aspirateur automatique Roomba (iRobot)


http://www.irobot.com/consumer
Les robots mobiles à roues aujourd’hui

Où sont-ils, que font-ils ?


Quelques applications de pointe.

Sojourner sur Mars


http://mars.jpl.nasa.gov/MPF/rover/sojourner.html
Les robots mobiles à roues aujourd’hui

Où sont-ils, que font-ils ?


Quelques applications de pointe.

Inspection de ruines
http://crasar.csee.usf.edu
Pourquoi étudier les robots à roues ?

Presque toujours. . .
Robots mobiles à roues : robots dédiés à la recherche.

Intérêt(s) :
beaucoup de problèmes encore à résoudre pour atteindre
une navigation robuste dans des espaces non structurés,
en particulier en intérieur
augmenter les connaissances en termes de localisation et
de navigation de systèmes autonomes
problèmes soulevés par le plus simple des robots mobiles
à roues = sujet d’étude à part entière et base pour l’étude
de systèmes mobiles plus complexes
Problématiques (1)

Problèmes en robotique mobile : aspects matériels


Choix :
structure mécanique
motorisation, alimentation
architecture informatique du système de
contrôle/commande

Choix classique
Choix de structure souvent effectué parmi un panel de
solutions connues et pour lesquelles les problèmes de
modélisation, planification et commande sont résolus.
Choix classique des actionneurs et de l’alimentation : moteurs
électriques à courant continu avec ou sans collecteur, alimentés
par des convertisseurs de puissance fonctionnant sur batterie.
Problématiques (2)

Problèmes en robotique mobile : aspect logiciel


Généralement :
architectures de contrôle-commande des robots mobiles
similaires à celles des systèmes automatiques ou
robotiques plus classiques dans l’ensemble
néanmoins deux niveaux de spécialisation, propres aux
systèmes autonomes :
couche décisionnelle (planification et gestion des
évènements)
couche fonctionnelle (génération en temps-réel des
commandes des actionneurs)
Objectifs du cours

But du cours
Problèmes spécifiques à la robotique mobile : outils pour faire
évoluer le robot dans son environnement (suivre un chemin
connu, aller d’un point à un autre, réagir à la présence d’un
obstacle, etc.).

Méthode
Vue d’ensemble des problèmes liés à la modélisation, la
perception et la navigation des robots mobiles :
problématiques
état de l’Art (bibliographie)
problèmes ouverts
Objectifs du cours

But du cours
Problèmes spécifiques à la robotique mobile : outils pour faire
évoluer le robot dans son environnement (suivre un chemin
connu, aller d’un point à un autre, réagir à la présence d’un
obstacle, etc.).

Cadre de l’étude
Limitations :
robots mobiles à roues à châssis non articulé évoluant sur
sol plan
problèmes associés à la génération de mouvements
autonomes : modélisation, perception, navigation
Evaluation

Evaluation
Etude et présentation d’articles de recherche.
Plan

1 Introduction

2 Modélisation
Définitions
Roulement sans glissement et contraintes non holonômes
Les grandes classes de robots mobiles et leurs modèles
Représentation d’état et commandabilité

3 Perception
Capteurs en robotique mobile
Localisation
Construction de carte

4 Navigation
Problématiques et approches
Planification de chemin
Execution du mouvement
Plan

1 Introduction

2 Modélisation
Définitions
Roulement sans glissement et contraintes non holonômes
Les grandes classes de robots mobiles et leurs modèles
Représentation d’état et commandabilité

3 Perception
Capteurs en robotique mobile
Localisation
Construction de carte

4 Navigation
Problématiques et approches
Planification de chemin
Execution du mouvement
Mise en place des repères

~
y y0
~

x0
~

θ
O0
y

~
x
O x

R = (O, ~x , ~y , ~z ) : repère fixe quelconque, avec ~z est vertical.


R0 = (O 0 , ~x 0 , ~y 0 , ~z 0 ) : repère mobile lié au robot.
Vocabulaire (1)

Définition
Par analogie avec la manipulation, on appelle posture
[Campion 96] du robot le vecteur :
 
x
ξ = y  ,
θ

où x et y sont respectivement l’abscisse et l’ordonnée du point


O 0 dans R et θ l’angle (~x , ~x 0 ).

. . . définie sur un espace M de dimension m = 3, comparable


à l’espace opérationnel d’un manipulateur plan.
Vocabulaire (2)

Définition
La configuration du robot mobile est connue quand la position
de tous ses points dans un repère donné est connue.
Notion ambigüe pour les robots mobiles. Dans tous les cas :
 
q1
 q2 
q= 
. . .
qn

de n coordonnées appelées coordonnées généralisées.

. . . définie sur un espace N de dimension n, appelée l’espace


des configurations.
Plan

1 Introduction

2 Modélisation
Définitions
Roulement sans glissement et contraintes non holonômes
Les grandes classes de robots mobiles et leurs modèles
Représentation d’état et commandabilité

3 Perception
Capteurs en robotique mobile
Localisation
Construction de carte

4 Navigation
Problématiques et approches
Planification de chemin
Execution du mouvement
Roulement sans glissement (1)

Comment roule un robot ?


Mouvement grâce à la friction au contact entre roue et sol :
dans de bonnes conditions, il y a roulement sans glissement
(r.s.g.) de la roue sur le sol.

Hypothèses :
contact roue/sol ponctuel
roues sont indéformables, de rayon r

En pratique :
contact sur une surface : glissements
roues pleines indéformables, plus vrai avec des pneus
imperfections considérées ssi elles affectent les
performances (odométrie)
Roulement sans glissement (2)

~
z

~
y
x0
~

ϕ
P ω
~
~
vP

y
Q

O x ~
x

Nullité de la vitesse relative roue/sol


−→
~ ∧ PQ = ~0
~vQ = ~vP + ω
Nullité de la vitesse relative roue/sol
−→
~ ∧ PQ = ~0, soit :
On a ~vP + ω
Nullité de la vitesse relative roue/sol
−→
~ ∧ PQ = ~0, soit :
On a ~vP + ω

ẋ ~x + ẏ ~y + (θ̇~z + ϕ̇(sin θ~x − cos θ~y )) ∧ (−r ~z ) = ~0


Nullité de la vitesse relative roue/sol
−→
~ ∧ PQ = ~0, soit :
On a ~vP + ω

ẋ ~x + ẏ ~y + (θ̇~z + ϕ̇(sin θ~x − cos θ~y )) ∧ (−r ~z ) = ~0


(ẋ + r ϕ̇ cos θ)~x + (ẏ + r ϕ̇ sin θ)~y = ~0
Nullité de la vitesse relative roue/sol
−→
~ ∧ PQ = ~0, soit :
On a ~vP + ω

ẋ ~x + ẏ ~y + (θ̇~z + ϕ̇(sin θ~x − cos θ~y )) ∧ (−r ~z ) = ~0


(ẋ + r ϕ̇ cos θ)~x + (ẏ + r ϕ̇ sin θ)~y = ~0

d’où :

ẋ + r ϕ̇ cos θ = 0
ẏ + r ϕ̇ sin θ = 0
Nullité de la vitesse relative roue/sol
−→
~ ∧ PQ = ~0, soit :
On a ~vP + ω

ẋ ~x + ẏ ~y + (θ̇~z + ϕ̇(sin θ~x − cos θ~y )) ∧ (−r ~z ) = ~0


(ẋ + r ϕ̇ cos θ)~x + (ẏ + r ϕ̇ sin θ)~y = ~0

d’où :

ẋ + r ϕ̇ cos θ = 0
ẏ + r ϕ̇ sin θ = 0

Plan de la roue et plan normal à la roue :

ẋ cos θ + ẏ sin θ = −r ϕ̇
−ẋ sin θ + ẏ cos θ = 0
Contraintes non holonômes (1)

Définition
Soit un système de configuration q soumis à des contraintes
indépendantes sur les vitesses AT (q)q̇ = 0.
S’il n’est pas possible d’intégrer l’une de ces contraintes, elle
est dite non intégrable ou non holonôme.

Contraintes non holonômes : certains mouvements instantanés


interdits.
Contraintes non holonômes (2)

Théorème de Frobénius
Soit un système de configuration q, de dimension n, tq.
AT (q)q̇ = 0 et B(q) de rang plein m, orthogonale à A(q).
Soit l’algèbre de Lie Lie{b 1 (q) b 2 (q) . . . b m (q) . . . b p (q)}, de
dimension p, avec m 6 p 6 n.
Alors, n − p contraintes sont intégrables.
Contraintes non holonômes (2)

Théorème de Frobénius
Soit un système de configuration q, de dimension n, tq.
AT (q)q̇ = 0 et B(q) de rang plein m, orthogonale à A(q).
Soit l’algèbre de Lie Lie{b 1 (q) b 2 (q) . . . b m (q) . . . b p (q)}, de
dimension p, avec m 6 p 6 n.
Alors, n − p contraintes sont intégrables.

Crochet de Lie
Crochet de Lie de b i (q) et b j (q) :

∂b j ∂b i
[b i (q), b j (q)] = bi − bj .
∂q ∂q
Contraintes non holonômes (2)

Théorème de Frobénius
Soit un système de configuration q, de dimension n, tq.
AT (q)q̇ = 0 et B(q) de rang plein m, orthogonale à A(q).
Soit l’algèbre de Lie Lie{b 1 (q) b 2 (q) . . . b m (q) . . . b p (q)}, de
dimension p, avec m 6 p 6 n.
Alors, n − p contraintes sont intégrables.

Algèbre de Lie
Algèbre engendrée par les colonnes et les crochets successifs
formés à partir de ces colonnes, à condition qu’ils augmentent
la dimension de l’algèbre.
Cas de la roue

−ẋ sin θ + ẏ cos θ = 0


ẋ cos θ + ẏ sin θ = −r ϕ̇
Cas de la roue

−ẋ sin θ + ẏ cos θ = 0


ẋ cos θ + ẏ sin θ = −r ϕ̇

 
− sin θ cos θ
 cos θ sin θ 
AT (q)q̇ = 0, avec A(q) = 
 0

0 
0 r
Cas de la roue

−ẋ sin θ + ẏ cos θ = 0


ẋ cos θ + ẏ sin θ = −r ϕ̇

 
− sin θ cos θ
 cos θ sin θ 
AT (q)q̇ = 0, avec A(q) = 
 0

0 
0 r
et :  
cos θ 0
sin θ 0
AT (q)B(q) = 0, avec B(q) = 


 0 1
− 1r 0
Crochets de Lie successifs pour la roue
A partir de b 1 (q) et b 2 (q) :
 
b 1 (q), b 2 (q) =
Crochets de Lie successifs pour la roue
A partir de b 1 (q) et b 2 (q) :

b 3 = b 1 (q), b 2 (q) = (sin θ − cos θ 0 0)T


 
Crochets de Lie successifs pour la roue
A partir de b 1 (q) et b 2 (q) :

b 3 = b 1 (q), b 2 (q) = (sin θ − cos θ 0 0)T


 
  
b 1 (q), b 1 (q), b 2 (q) =
Crochets de Lie successifs pour la roue
A partir de b 1 (q) et b 2 (q) :

b 3 = b 1 (q), b 2 (q) = (sin θ − cos θ 0 0)T


 
  
b 1 (q), b 1 (q), b 2 (q) = 0
Crochets de Lie successifs pour la roue
A partir de b 1 (q) et b 2 (q) :

b 3 = b 1 (q), b 2 (q) = (sin θ − cos θ 0 0)T


 
  
b 1 (q), b 1 (q), b 2 (q) = 0
  
b 2 (q), b 1 (q), b 2 (q) =
Crochets de Lie successifs pour la roue
A partir de b 1 (q) et b 2 (q) :

b 3 = b 1 (q), b 2 (q) = (sin θ − cos θ 0 0)T


 
  
b 1 (q), b 1 (q), b 2 (q) = 0
= (cos θ sin θ 0 0)T
  
b 4 = b 2 (q), b 1 (q), b 2 (q)
Crochets de Lie successifs pour la roue
A partir de b 1 (q) et b 2 (q) :

b 3 = b 1 (q), b 2 (q) = (sin θ − cos θ 0 0)T


 
  
b 1 (q), b 1 (q), b 2 (q) = 0
= (cos θ sin θ 0 0)T
  
b 4 = b 2 (q), b 1 (q), b 2 (q)

Lie{b 1 b 2 b 3 b 4 } est une algèbre de Lie de dimension 4,


égale à celle de q.
Crochets de Lie successifs pour la roue
A partir de b 1 (q) et b 2 (q) :

b 3 = b 1 (q), b 2 (q) = (sin θ − cos θ 0 0)T


 
  
b 1 (q), b 1 (q), b 2 (q) = 0
= (cos θ sin θ 0 0)T
  
b 4 = b 2 (q), b 1 (q), b 2 (q)

Lie{b 1 b 2 b 3 b 4 } est une algèbre de Lie de dimension 4,


égale à celle de q.
Comme n = 4 et p = 4, il n’existe pas de contrainte intégrable :
les deux contraintes sont non holonômes.
Plan

1 Introduction

2 Modélisation
Définitions
Roulement sans glissement et contraintes non holonômes
Les grandes classes de robots mobiles et leurs modèles
Représentation d’état et commandabilité

3 Perception
Capteurs en robotique mobile
Localisation
Construction de carte

4 Navigation
Problématiques et approches
Planification de chemin
Execution du mouvement
Les différentes roues

Roues
Combinaison choix+disposition des roues : mode de
locomotion propre.

Types de roues :
les roues fixes : axe de rotation de direction constante
les roues centrées orientables : axe d’orientation passe
par le centre de la roue
les roues décentrées orientables (roues folles) : axe
d’orientation ne passe pas par le centre de la roue
Les différentes roues

Roues
Combinaison choix+disposition des roues : mode de
locomotion propre.

axe d’orientation


axe de rotation

(a) Roues fixes (axe d’orientation fixe) (b) Roues décentrées orientables
et roues centrées orientables
Disposition des roues et cinématique

Disposition et blocage
Pour un ensemble de roues donné, toute disposition ne conduit
pas à une solution viable. Un mauvais choix peut limiter la
mobilité du robot ou occasionner d’éventuels blocages.

Centre instantané de rotation


Disposition de roues viable : existence pour toutes les roues
d’un unique point de vitesse nulle autour duquel tourne le robot
de façon instantanée : le centre instantané de rotation (CIR).
Disposition des roues et cinématique

Disposition et blocage
Pour un ensemble de roues donné, toute disposition ne conduit
pas à une solution viable. Un mauvais choix peut limiter la
mobilité du robot ou occasionner d’éventuels blocages.

Centre instantané de rotation


Points de vitesse nulle sur l’axe de rotation des roues : le point
d’intersection des axes de rotation des différentes roues doit
être unique (limitation du nombre de solutions viables).
Robots mobiles de type unicycle : description (1)

Description
Unicycle : robot actionné par deux roues indépendantes et
possédant éventuellement un certain nombre de roues folles
assurant sa stabilité.

~
y

θ
y
O0

~
x
O x
Robots mobiles de type unicycle : description (2)

Hilare, LAAS-CNRS, Toulouse, 1977 [Giralt 84]


Entraînement batteries au plomb 24V, 2 servomoteurs DC
Calculateur 4 processeurs Intel 80286, modem série radio 9600 bauds
Capteurs odométrie, 16 capteurs US, un télémètre laser
Dimensions (L × l × h) : 80 cm × 80 cm × 60 cm
Poids 400 kg (charge admissible : . . .)
Robots mobiles de type unicycle : description (3)

Pioneer P3-DX, ActiveMedia Robotics, 2004 [ActivMedia 04]


Entraînement batteries 252 Wh, 2 servomoteurs DC
Calculateur micro-contrôleur Hitachi HS-8, I/O Bus, 2 ports série
Capteurs odométrie, 8 capteurs US en façade +
options : bumpers, télémètre laser, gyroscope, etc.
Autonomie 24 − 30 h
Vitesse maximum 1, 6 m/s
Dimensions (L × l × h) : 44 cm × 38 × 22 cm
Poids 9 kg (charge admissible : 23 kg)
Robots mobiles de type unicycle : description (4)

Khepera II, K-team, EPFL, Lausanne, 2002 [K-team 02],


Entraînement secteur ou accus NiMH, 2 servomoteurs DC
Calculateur processeur Motorola 68331 @25 MHz, 512 Ko RAM, 512 Ko Flash
communication port série 115 Kbauds (9600 bauds radio)
3 entrées analogiques 0 à 4.3 V, 8 bits
Capteurs 8 capteurs IR de luminosité et de proximité (100 mm de portée)
Autonomie 1 h en fonctionnement continu
Vitesse maximum 1 m/s, minimum 0, 02 m/s
Dimensions (D × h) : 7 cm × 3 cm
Poids 80 g (charge admissible : 250 g)
Robots mobiles de type unicycle : cinématique (1)
~
y
Vitesses roues droite et gauche
CIR
ρ ( !convention des angles) :
ω
vd = −r ϕ˙d = (ρ + L)ω
θ
vg vg = r ϕ˙g = (ρ − L)ω
ϕ˙g
v
O0
vd d’où :
y
ϕ˙d − ϕ˙g
ρ = L
L ϕ˙d
ϕ˙d + ϕ˙g
−r (ϕ˙d + ϕ˙g )
~
x ω =
O x
2L
Robots mobiles de type unicycle : cinématique (2)

Choix du vecteur de commande : équivalence entre vitesses


(ϕ˙d , ϕ˙g ) ↔ (v , ω) avec v vitesse longitudinale du robot (en O 0 )
et ω vitesse de rotation (autour de O 0 ) :

vd + vg r (ϕ˙g − ϕ˙d )
v = =
2 2
−r (ϕ˙d + ϕ˙g )
ω =
2L
Robots mobiles de type tricycle : description

Description
Tricycle : robot constitué de deux roues fixes de même axe et
d’une roue centrée orientable placée sur l’axe longitudinal du
robot.

~
y

θ
O0
y

O x ~
x
Robots mobiles de type voiture : description

Description
Voiture : très similaire à celui du tricycle. La différence se situe
au niveau du train avant, qui comporte deux roues au lieu
d’une.
Robots mobiles de type tricycle : cinématique
~
y
ρ

ω ψ
CIR
D
θ ρ =
O0
tan ψ
y v
ω = tan ψ
D
D

O x ~
x
Robots mobiles de type voiture : cinématique

roues avant avec


braquage différentiel

roue avant du
tricycle équivalent

CIR

Braquage différentiel (dit d’Ackerman)


Robots mobiles omnidirectionnels : description

Description
Robot mobile omnidirectionnel : on peut agir indépendamment
sur les vitesses de translation selon les axes ~x , ~y et de rotation,
autour de ~z .

~
y

θ
y
O0
roues suédoises
ou roues décentrées orientables

~
x
O x
Modèles des robots mobiles (1)

Modèle cinématique en posture


But : relier la dérivée de la posture et la commande

ξ̇ = C(q)u
Modèles des robots mobiles (1)

Modèle cinématique en posture de l’unicycle

ẋ = v cos θ
ẏ = v sin θ
θ̇ = ω

soit :  
cos θ 0  
v
ξ̇ =  sin θ 0
ω
0 1
Modèles des robots mobiles (2)

Modèle cinématique en configuration


But : relier la dérivée de la configuration et la commande.
Modèles des robots mobiles (2)

Modèle cinématique en configuration


But : relier la dérivée de la configuration et la commande.

Préalable
Savoir définir la configuration.
Modélisation cinématique (en configuration) de l’unicycle
Conditions de r.s.g. des deux roues :
Modélisation cinématique (en configuration) de l’unicycle
Conditions de r.s.g. des deux roues :

ẋ + Lθ̇ cos θ + r ϕ̇d cos θ = 0


ẏ + Lθ̇ sin θ + r ϕ̇d sin θ = 0
ẋ − Lθ̇ cos θ − r ϕ̇g cos θ = 0
ẏ − Lθ̇ sin θ − r ϕ̇g sin θ = 0
Modélisation cinématique (en configuration) de l’unicycle
Avec q = (x y θ ϕd ϕg )T :
 
  ẋ
1 0 L cos θ r cos θ 0
  ẏ 
 
0 1 L sin θ r sin θ 0
   θ̇  = 0
1 0 −L cos θ 0 −r cos θ  
ϕ˙d 
0 1 −L sin θ 0 −r sin θ
ϕ˙g

soit :
AT (q)q̇ = 0
On constate que AT (q) n’est pas de rang plein.
Modélisation cinématique (en configuration) de l’unicycle
Sans perte d’information on réécrit les contraintes :
 

 
1 0 L cos θ r cos θ 0  ẏ 
 
0 1 L sin θ r sin θ 0   θ̇  = 0
 
1 0 −L cos θ 0 −r cos θ ϕ˙d 
ϕ˙g
Modélisation cinématique (en configuration) de l’unicycle
Par ailleurs :
−r (ϕ˙d + ϕ˙g )
θ̇ =
2L
qui s’intègre en :

−r (ϕd + ϕg )
θ= + θ0 ,
2L
où θ0 est la valeur de θ à l’initialisation (les angles des roues,
généralement mesurés par des codeurs incrémentaux, étant
alors choisis nuls). Cette contrainte intégrable est donc en fait
une contrainte holonôme.
Modélisation cinématique (en configuration) de l’unicycle
On peut donc choisir q = (x y θ ϕd )T :
 
  ẋ
1 0 L cos θ r cos θ  ẏ  = 0

0 1 L sin θ r sin θ  θ̇ 
ϕ˙d

et :  
cos θ 0
 sin θ 0 
B(q) = 
 0

1 
− 1r − Lr
Modélisation cinématique (en configuration) de l’unicycle
En remarquant, d’après ce qui précède, que :

ẋ = v cos θ
ẏ = v sin θ
θ̇ = ω
v Lω
ϕ˙d = − −
r r
on a :

Modèle cinématique (en configuration)

q̇ = B(q)u,
avec pour vecteur de commande cinématique u = (v ω)T . La
matrice B(q) représente donc le modèle cinématique (en
configuration) du robot mobile.
Modèles des robots mobiles (3)

Aspects pratiques
Rotation des roues pas toujours utile du point de vue pratique,
étant donné que l’on cherche essentiellement à contrôler la
posture du robot.

Modèle cinématique de l’unicycle en pratique


ϕd n’apparaît pas dans les équations régissant la dérivée de la
posture, d’où le modèle simplifié :

ẋ = v cos θ
ẏ = v sin θ
θ̇ = ω
Modèles des robots mobiles (4)
Pour les robots mobiles de type tricycle on a q = (x y θ ψ)T et
le modèle cinématique réduit, :

ẋ = v cos θ
ẏ = v sin θ
v
θ̇ = tan ψ
D
ψ̇ = η

où u = (v η)T est le vecteur de commande cinématique, η


représentant la vitesse d’orientation imposée à la roue
orientable.
Modèles des robots mobiles (4)
Pour les robots mobiles omnidirectionnels, on peut considérer
qu’il est possible de commander directement la posture et le
modèle cinématique en posture est donc :

ẋ = u1
ẏ = u2
θ̇ = u3

où u = (u1 u2 u3 )T représente le vecteur de commande.


Plan

1 Introduction

2 Modélisation
Définitions
Roulement sans glissement et contraintes non holonômes
Les grandes classes de robots mobiles et leurs modèles
Représentation d’état et commandabilité

3 Perception
Capteurs en robotique mobile
Localisation
Construction de carte

4 Navigation
Problématiques et approches
Planification de chemin
Execution du mouvement
Représentation d’état

Variable d’état
Avec q = variable d’état du système. On note x = q par
habitude.

ẋ = B(x)u,
où B(x) est de dimension n × m.
Propriétés
Représentation associée non linéaire, sans dérive.
Commandabilité (1)

Interprétation
Pour qu’un robot mobile soit utile, il faut en premier lieu
s’assurer de sa commandabilité : existence d’une loi de
commande u amenant le robot d’un état initial à un état final
quelconque.

Commandabilité du linéarisé
Linéarisé autour d’un point d’équilibre x0 quelconque :

ẋ = B(x 0 )u,

avec B(x 0 ) ∈ Rn×m . Pour les robots de type unicycle et voiture,


la non holonomie va de pair avec une forme de
sous-actionnement (m < n).
Commandabilité (1)

Interprétation
Pour qu’un robot mobile soit utile, il faut en premier lieu
s’assurer de sa commandabilité : existence d’une loi de
commande u amenant le robot d’un état initial à un état final
quelconque.

Commandabilité du linéarisé
Condition de rang (critère de commandabilité de Kalman) :

Rang(B, AB, . . . , An−1 B) = n → Rang B(x 0 ) = n

jamais remplie car m < n : le linéarisé n’est donc pas


commandable.
Commandabilité (2)

Commandabilité d’un robot mobile (théorème de Chow)


On note toujours B(x) = (b 1 (x) b 2 (x) . . . b m (x)) la matrice du
modèle cinématique, de dimension n × m.
Un robot mobile est commandable si les colonnes de B(x) et
leurs crochets de Lie successifs forment un ensemble de n
colonnes indépendantes.
Commandabilité de l’unicycle
Avec x = (x y θ ϕd )T , modèle cinématique + crochets :

Avec x = (x y θ)T , modèle cinématique (réduit) + crochets :

Le modèle cinématique de l’unicycle est donc


Commandabilité de l’unicycle
Avec x = (x y θ ϕd )T , modèle cinématique + crochets :
       
cos θ 0 sin θ cos θ
 sin θ   0  − cos θ  sin θ 
 0 ,  1 ,  0 ,  0 
       

− 1r − Lr 0 0

Avec x = (x y θ)T , modèle cinématique (réduit) + crochets :

Le modèle cinématique de l’unicycle est donc


Commandabilité de l’unicycle
Avec x = (x y θ ϕd )T , modèle cinématique + crochets :
       
cos θ 0 sin θ cos θ
 sin θ   0  − cos θ  sin θ 
 0 ,  1 ,  0 ,  0 
       

− 1r − Lr 0 0

Avec x = (x y θ)T , modèle cinématique (réduit) + crochets :


     
cos θ 0 sin θ
 sin θ  , 0 , − cos θ
0 1 0

Le modèle cinématique de l’unicycle est donc


Commandabilité de l’unicycle
Avec x = (x y θ ϕd )T , modèle cinématique + crochets :
       
cos θ 0 sin θ cos θ
 sin θ   0  − cos θ  sin θ 
 0 ,  1 ,  0 ,  0 
       

− 1r − Lr 0 0

Avec x = (x y θ)T , modèle cinématique (réduit) + crochets :


     
cos θ 0 sin θ
 sin θ  , 0 , − cos θ
0 1 0

Le modèle cinématique de l’unicycle est donc commandable.


Plan

1 Introduction

2 Modélisation
Définitions
Roulement sans glissement et contraintes non holonômes
Les grandes classes de robots mobiles et leurs modèles
Représentation d’état et commandabilité

3 Perception
Capteurs en robotique mobile
Localisation
Construction de carte

4 Navigation
Problématiques et approches
Planification de chemin
Execution du mouvement
Perception : généralités

Définition
Perception en robotique = capacité du système à recueillir,
traiter et mettre en forme des informations utiles au robot pour
agir et réagir dans le monde qui l’entoure.
Particularités de la robotique mobile :
environnement non structuré
redondance d’information : nombreux capteurs
choix des capteurs
utilisation des données
Plan

1 Introduction

2 Modélisation
Définitions
Roulement sans glissement et contraintes non holonômes
Les grandes classes de robots mobiles et leurs modèles
Représentation d’état et commandabilité

3 Perception
Capteurs en robotique mobile
Localisation
Construction de carte

4 Navigation
Problématiques et approches
Planification de chemin
Execution du mouvement
Capteurs : exemples (1) [Siegwart 04]
Capteurs : exemples (1bis) [Siegwart 04]
Capteurs : exemples (2) [Siegwart 04]
Capteurs : exemples (3) [Siegwart 04]
Capteurs

Cadre de l’étude
Etude détaillée des capteurs =

physique + électronique + traitement du signal + . . ..

Dans ce cours : uniquement principe de fonctionnement des


capteurs embarqués pour la navigation d’un robot mobile.
Classification des capteurs

Classification choisie
Capteurs proprioceptifs : mesure de l’état du robot lui-même
(position ou vitesse des roues, charge de la batterie, etc.).
Capteurs extéroceptifs : mesure de l’état de l’environnement
(distances robot-environnement, température, contact, etc.).

Autre classification [Siegwart 04]


Capteurs passifs : utilisent l’énergie de l’environnement ou du
robot.
Capteurs actifs : utilisent leur propre énergie (donc perturbent l’
environnement).
Caractéristiques des capteurs
Principalement :
étendue de mesure
résolution
linéarité
bande passante/fréquence d’acquisition
sensibilité
précision (erreur systématique, aléatoire).
Mesure de la rotation des roues

Moteur + capteur = servomoteur


Configuration habituelle : roue motrice + dispositif de mesure
de rotation à l’aide d’un capteur disposé sur l’axe lui-même.
Capteurs proprioceptifs.
Propriétés :
peu différents des capteurs habituels en commande d’axe
codeurs absolus inutiles
grandeur de mesure = vitesse de rotation
rarement mesure directe (génératrice tachymétrique)
mesure indirecte par codeurs optiques (moindre coût,
moindre encombrement, moindre entretien) : comptage
d’impulsions (bruit de quantification aux basses vitesses)
résolution fine ou synchrorésolveurs [Gangloff 04]
Mesure de position et d’orientation (1)

Mesure de la position
Très peu de capteurs de position absolue d’un point dans un
repère fixe donné : GPS.

Mesure de l’orientation
Davantage de capteurs d’orientation d’un solide dans un repère
fixe donné : gyromètre, compas, etc.

Mesures . . . d’extérieur !
Mesures directes de l’orientation et de la position
principalement en extérieur.
Mesure de position et d’orientation (2)

Mesure de la position : le GPS


Global Positioning System (GPS) : applications militaires,
actuellement à la disposition du grand public.
Emissions synchronisées dans le temps perçues et recoupées
au niveau du récepteur par triangulation.
Propriétés :
précision brute de l’ordre de la quinzaine de mètres
méthode différentielle à l’aide de deux récepteurs :
précision de l’ordre du centimètre
positionnement en extérieur
faible précision, prix élevé : des systèmes multirobots
mesure à des fréquences de l’ordre de 5 Hz : pas
temps-réel : recalage de la position
Mesure de position et d’orientation (3)

Mesure de l’orientation : gyromètres


Gyromètres : capteurs proprioceptifs pour mesurer l’orientation
du corps sur lequel ils sont placés par rapport à un référentiel
fixe, selon un ou deux axes.
Mécaniques, optiques, à structure vibrante, etc.
Mesure de position et d’orientation (3)

Mesure de l’orientation : gyromètres


Gyromètres : capteurs proprioceptifs pour mesurer l’orientation
du corps sur lequel ils sont placés par rapport à un référentiel
fixe, selon un ou deux axes.
Mécaniques, optiques, à structure vibrante, etc.

Propriétés :
gyromètres mécaniques et optiques : performances très
supérieures à celles requises en robotique mobile, coût
élevé (aéronautique et spatial)
structure vibrante : plus grand public :
Futaba GY240 : un axe pour le modélisme, 130 $US
27 mm × 27 mm × 20 mm, 25 g.
Mesure de position et d’orientation (4)

Mesure de l’orientation : compas et boussoles


Compas et boussoles : information d’orientation par rapport à
une référence fixe (nord magnétique typiquement).
Mesure de position et d’orientation (4)

Mesure de l’orientation : compas et boussoles


Compas et boussoles : information d’orientation par rapport à
une référence fixe (nord magnétique typiquement).

Propriétés :
compas électroniques capables de détecter le nord
CMP03 : résolution de 3 à 4o environ, 32 × 35 mm, 45$US.
Mesure de proximité et de distance (1)

Télémétrie : définition
Télémétrie : toute technique de mesure de distance par des
procédés acoustiques, optiques ou radioélectriques.
Capteur = télémètre :
différentes techniques de mesure de distance (mesure du
temps de vol d’une onde, triangulation)
différentes technologies.

Capteurs actifs et extéroceptifs.


Mesure de proximité et de distance (2)

Capteurs infrarouges
Capteurs infrarouges : ensemble émetteur/récepteur utilisant
des radiations non visibles.

Capteurs infrarouges Sharp GP2 de portée réduite :


GP2D120 : 4 − 30 cm, GP2Y0A02YK : 20 − 150 cm
20 $US.
Mesure de proximité et de distance (2)

Capteurs infrarouges
Capteurs infrarouges : ensemble émetteur/récepteur utilisant
des radiations non visibles.

Propriétés :
faible portée, mesure très dégradée au-delà de un mètre :
détecteurs de proximité ou de présence
sensibilité aux conditions extérieures (lumière ambiante,
spécularité des surfaces, température, pression)
cône de détection
alternance émission/réception : distance minimale.
Mesure de proximité et de distance (3)

Capteurs ultrasonores
Capteurs ultrasonores : utilisent des vibrations sonores non
perceptibles pour l’oreille humaine (20 kHz à 200 kHz).

Télémètres ultrasonores Polaroïd et Migatron


Mesure de proximité et de distance (3)

Capteurs ultrasonores
Capteurs ultrasonores : utilisent des vibrations sonores non
perceptibles pour l’oreille humaine (20 kHz à 200 kHz).

Télémètre ultrasonore MSU08 (Lextronic) :


L × l × h = 43 mm × 20 mm × 17 mm
moins de 60 $US.
Mesure de proximité et de distance (3)

Capteurs ultrasonores
Capteurs ultrasonores : utilisent des vibrations sonores non
perceptibles pour l’oreille humaine (20 kHz à 200 kHz).

Télémètres ultrasoniques Airmar AT 120


Mesure de proximité et de distance (3)

Capteurs ultrasonores
Capteurs ultrasonores : utilisent des vibrations sonores non
perceptibles pour l’oreille humaine (20 kHz à 200 kHz).

Propriétés :
distance maximale et distance effective de mesure à
adapter à la plage de mesure
sensibilité à la densité de l’air (température, pression)
cône de détection
alternance émission/réception : distance minimale
fréquence maximale des mesures variable (mesures à 1, 5
m : toutes les 10 ms, à 30 m toute les 200 ms).
Mesure de proximité et de distance (4)

Télémètres laser
Télémètres laser : mesure du temps de vol d’une impulsion
émise par une diode laser faible puissance.
Balayage : direction de mesure modifiée par rotation d’un
miroir.
Mesure de proximité et de distance (4)

Télémètres laser
Télémètres laser : mesure du temps de vol d’une impulsion
émise par une diode laser faible puissance.
Balayage : direction de mesure modifiée par rotation d’un
miroir.

Propriétés :
bonne précision, télémètres les plus répandus
bonne résolution angulaire (0, 25 − 0, 5 − 1o )
distance maximale (conseillée) de mesure : 30 m
balayage sur 100 à 180 degrés.
Mesure de proximité et de distance (4)

Télémètres laser
Télémètres laser : mesure du temps de vol d’une impulsion
émise par une diode laser faible puissance.
Balayage : direction de mesure modifiée par rotation d’un
miroir.

Propriétés :
bonne stabilité en température
plus encombrant : (L × l × h) : 156 × 155 × 210 mm, 4, 5 kg
mesure complète (balayage) en quelques secondes
prix élevé (environ 6000 $US pour un Sick).
Vision par ordinateur

Vision et robotique mobile


Vision par ordinateur : vision traditionnelle, stéréovision.
Vision omnidirectionnelle : mesure de la réflexion de
l’environnement sur un miroir parabolique.

Dispositif, image brute et reprojection cylindrique [Pajdla 03]


Vision par ordinateur

Vision et robotique mobile


Vision par ordinateur : vision traditionnelle, stéréovision.
Vision omnidirectionnelle : mesure de la réflexion de
l’environnement sur un miroir parabolique.

Image brute, reprojections cylindrique et perspective [Pajdla 03]


Vision par ordinateur

Vision et robotique mobile


Vision par ordinateur : vision traditionnelle, stéréovision.
Vision omnidirectionnelle : mesure de la réflexion de
l’environnement sur un miroir parabolique.

Propriétés :
vision panoramique de la scène
détection temps-réel
difficultés technologiques : alignement caméra-miroir,
régularité du miroir, géométrie de capteur rectangulaire à
pas constant
en développement.
Plan

1 Introduction

2 Modélisation
Définitions
Roulement sans glissement et contraintes non holonômes
Les grandes classes de robots mobiles et leurs modèles
Représentation d’état et commandabilité

3 Perception
Capteurs en robotique mobile
Localisation
Construction de carte

4 Navigation
Problématiques et approches
Planification de chemin
Execution du mouvement
Localisation : généralités

Objet de la localisation
Nombreux défauts des capteurs et domaines d’application
ciblés : tendance à multiplier les capteurs.
Redondance d’information : nécessité d’une fusion cohérente
d’ informations de nature différente.

Nature des informations


Principalement :
posture absolue ou relative
distance aux corps présents dans l’environnement.
Odométrie (1)

Principe de l’odométrie
Calcul de la posture par intégration des vitesses :
Z t
x(t) = ẋ(τ )dτ,
0
Z t
y (t) = ẏ (τ )dτ,
0
Z t
θ(t) = θ̇(τ )dτ.
0

En pratique : intégration discrète sur calculateur.

Remarque
Odométrie : posture relative du robot, la posture initiale devant
être obtenue par d’autres moyens.
Odométrie (2)
Avantages :
simplicité
pas de capteur supplémentaire.
Inconvénients :
sensibilité vis-à-vis des paramètres géométriques
(diamètre des roues et longueur de l’entraxe)
pour une localisation absolue l’initialisation nécessite un
autre moyen de localisation.
Odométrie (3)

Nature des erreurs


Erreurs systématiques : erreur sur le diamètre des roues par
rapport à la valeur nominale attendue, diamètres différents,
erreurs sur la disposition des roues, résolution des codeurs.
Erreurs non systématiques : sol non plan ou irrégulier,
glissements divers (dus à la nature du sol, à une accélération
trop brutale, à un obstacle, un défaut mécanique, etc.), contact
au sol non ponctuel.

Défaut majeur
Effet cumulatif très gênant des erreurs systématiques.
Odométrie (4)

Estimation des erreurs


Estimation de l’incertitude de l’odométrie par la matrice de
covariance de bruit associée à la posture du robot, très difficile
à déterminer (mouvements de translation et de rotation
couplés).
Visualisation : ellipse pour l’incertitude en position et pour
l’incertitude en orientation.

Minimisation des erreurs


Pas possible de prendre en compte les erreurs non
systématiques.
Identifier et minimiser les erreurs systématiques, avant de les
prendre en compte.
Télémétrie (1)

Nature des informations


Généralement deux informations : angle de gisement (direction
de mesure) et distance au corps ayant réfléchi l’onde émise.

Domaine d’application
Permet de positionner les objets présents dans la scène par
rapport au robot : adapté aux environnements d’intérieur,
structurés, comportant des formes régulières et statiques
comme des murs.
Télémétrie (2)

Choix 2D ou 3D ?
Modèle de données (données brutes ou segmentation).
Télémétrie (2)

Choix 2D ou 3D ?
En 2D : certains obstacles mal captés (pieds de table).
Télémétrie (2)

Choix 2D ou 3D ?
En 3D : coût prohibitif du télémètre sinon dispositif orientable.

Dispositif de mesures laser tridimensionnelles avec un laser à


balayage sur une platine
Télémétrie (3)

Recalage
Connaissance a priori de l’environnement : possibilité de
recalage des mesures sur le modèle :
soit on utilise directement le nuage de points de mesure
soit on extrait des primitives dans ce nuage, typiquement
des segments représentant les surfaces planes et des
coins, représentant l’intersection des segments.
Télémétrie (3)

Recalage de données 3D reprojetées par l’algorithme ICP


Télémétrie (3)

Recalage de données 3D reprojetées par l’algorithme ICP


Télémétrie (3)

Recalage de données télémétriques laser sur un modèle


d’environnement : modèle de l’environnement
Télémétrie (3)

Recalage de données télémétriques laser sur un modèle


d’environnement : segments dans la zone de mesure
Télémétrie (3)

Recalage de données télémétriques laser sur un modèle


d’environnement : mesures segmentées
Télémétrie (3)

Recalage de données télémétriques laser sur un modèle


d’environnement : localisation par appariement
Localisation sur balises (1)

Amers
Points (balises, motifs, objets) localisés simultanément dans
l’environnement : calcul de la posture du robot par télémétrie et
puis triangulation.

Nature des informations robot-amer


Généralement distance robot-balise, éventuellement angles de
gisement des balises référencés par rapport à la base.
Localisation sur balises (2)

d1

d2

~
y B1

α1 B2

ϕ α2

θ
y
O0

~
x
O x

Triangulation à 2 balises, avec mesure des angles de gisement


Localisation sur balises (3)

d1

d2

~
y B1

B2

y
O0

B3

~
x d3
O x

Triangulation à 3 balises sans mesure des angles de gisement


Localisation multicapteur (1)

Généralités
Processus de localisation classique : combinaison des
mesures proprioceptives et extéroceptives :
posture relative donnée par l’odométrie
posture du robot par rapport à l’environnement :
localisation d’amers (motifs, balises)
localisation externe du robot par des capteurs présents
dans l’environnement.

Fusion des données


But : combiner les informations capteurs pour obtenir une
représentation unique et cohérente de la configuration du robot.
Localisation multicapteur (2)

Recalage simple
Mesure de la posture relative presque exclusivement par
odométrie. . .
Localisation multicapteur (2)

Recalage simple
Mesure de la posture relative presque exclusivement par
odométrie. . .

et

obtention de la posture absolue de référence par capteurs


extéroceptifs lors de l’initialisation ou ponctuellement pour
annuler l’erreur accumulée par l’odométrie.
Localisation multicapteur (3)

Fusion de données par moyenne pondérée


Utilisation conjointe des mesures proprioceptives ξ o et
extéroceptive ξ r de la posture du robot :

σr2 σo2
ξ= ξ o + ξr .
σo2 + σr2 σo2 + σr2
1 1 1
Variance de la mesure ainsi pondérée tq σ2
= σo2
+ σr2
.

Conséquences :
confiance faible sur la mesure des capteurs extéroceptifs (donc variance
associée importante) : ces mesures affectent peu l’estimation de posture
à l’inverse, variance de l’odométrie trop forte : mesures issues des capteurs
extéroceptifs deviendront prépondérantes
variance de l’estimation pondérée meilleure que celle des mesures séparées
(heureusement. . .).
Localisation multicapteur (4)

Fusion de données par filtrage de Kalman


Problème de localisation à partir de différents capteurs =
problème d’estimation de l’état du système à partir
d’observations : filtrage de Kalman.

Filtrage de Kalman Etendu (FKE)


Modèle d’état d’un robot mobile non linéaire : filtrage de
Kalman étendu (FKE).
Localisation multicapteur par FKE (1)

Modélisation
Modèle d’état d’un robot mobile non linéaire :
état x = configuration q (réduite)
modèle d’évolution de l’état = modèle cinématique
vecteur de sortie y = ensemble des mesures effectuées
(dimension généralement supérieure à celle de l’état).

Représentation d’état discrète :


(
x(k + 1) = f (x(k ), u(k )) + G(k )w (k ),
y(k ) = h(x(k )) + v(k ).

Matrices de covariance des bruits w (k ) et v(k ) sont


respectivement notées Q(k ) et R(k ).
Robot de type unicycle : modèle discret bruité
Etat : x(k ) = (x(k ) y (k ) θ(k ))T .
Modèle cinématique :
 
x(k ) + v (k )T cos θ(k )
x(k + 1) =  y (k ) + v (k )T sin θ(k )  + G(k )w (k ).
θ(k ) + ω(k )T

Equation de mesure : posture donnée par l’odométrie, et


distance à un amer situé en (xb yb )T :
p 
(x(k ) − xb )2 + (y (k ) − yb )2
 x(k ) 
y(k ) =   + v(k ).
 y (k ) 
θ(k )
Localisation multicapteur par FKE (2)
FKE : linéarisation de l’équation d’état autour de l’estimée
(∇f x (k ) = ∇f x (x̂(k )) et ∇hx (k ) = ∇hx (x̂(k |k − 1))) puis filtrage de
Kalman :

Initialisation : x̂(0|0) = x(0).


Localisation multicapteur par FKE (2)
FKE : linéarisation de l’équation d’état autour de l’estimée
(∇f x (k ) = ∇f x (x̂(k )) et ∇hx (k ) = ∇hx (x̂(k |k − 1))) puis filtrage de
Kalman :

Etape de prédiction :

x̂(k + 1|k ) = f (x̂(k |k ), u(k )),


P(k + 1|k ) = ∇f x (k )P(k |k )∇T f x (k ) + G(k )Q(k )GT (k ).
Localisation multicapteur par FKE (2)
FKE : linéarisation de l’équation d’état autour de l’estimée
(∇f x (k ) = ∇f x (x̂(k )) et ∇hx (k ) = ∇hx (x̂(k |k − 1))) puis filtrage de
Kalman :

Etape d’estimation :

x̂(k + 1|k + 1) = x̂(k + 1|k ) + K (k + 1)r(k + 1),


P(k + 1|k + 1) = (I − K (k + 1)∇hx (k + 1))P(k + 1|k ),
avec :
K (k + 1) = P(k + 1|k )∇T hx (k + 1)(∇hx (k + 1)P(k + 1|k )∇T hx (k + 1) + R(k ))−1 ,
et r(k + 1) = y(k + 1) − h(x̂(k + 1|k )),

K étant le gain de Kalman et r l’innovation.


Robot de type unicycle : FKE
 
1 0 −v (k )T sin θ̂(k )
∇f x (k ) = 0 1 v (k )T cos θ̂(k ) 
0 0 1
 
(x̂(k |k −1)−xb ) (ŷ (k |k −1)−yb )
0
 d̂(k |k −1) d̂(k |k −1) 
∇hx (k ) = 
 1 0 0

 0 1 0
0 0 1
p
en notant d̂(k |k − 1) = (x̂(k |k − 1) − xb )2 + (ŷ (k |k − 1) − yb )2 .
Alors :
 
x̂(k ) + v (k )T cos θ̂(k )
x̂(k + 1|k ) =  ŷ (k ) + v (k )T sin θ̂(k )  ,
θ̂(k ) + ω(k )T

... ... ...


Plan

1 Introduction

2 Modélisation
Définitions
Roulement sans glissement et contraintes non holonômes
Les grandes classes de robots mobiles et leurs modèles
Représentation d’état et commandabilité

3 Perception
Capteurs en robotique mobile
Localisation
Construction de carte

4 Navigation
Problématiques et approches
Planification de chemin
Execution du mouvement
Cartes de l’environnement : généralités

Problème
Cartographie de l’environnement : problème dual de la
localisation : représentation de l’environnement, en supposant
connue la position du robot.

Types de cartes
Carte géométrique de l’environnement : positions dans une
métrique donnée.
Carte topologique de l’environnement : associations entre les
lieux de l’environnement.
Cartes géométriques

Grilles d’occupation : carte discrète de l’environnement


Subdivision de l’environnement en cellules dont la probabilité
d’occupation calculée à partir des mesures, du modèle du
capteur et de la connaissance de l’environnement.
Cartes géométriques

Grilles d’occupation : carte discrète de l’environnement


Subdivision de l’environnement en cellules dont la probabilité
d’occupation calculée à partir des mesures, du modèle du
capteur et de la connaissance de l’environnement.
Cartes topologiques

Contexte
Cas d’environnements de grande taille : construction d’une
représentation purement géométrique insuffisante et trop
lourde à manipuler.
Informations topologiques : typiquement graphe discret
représentant différentes zones et donc différentes cartes
locales dans lesquelles évolue le robot.

Evolution
Décision d’utiliser une nouvelle carte locale : configuration
particulière de l’environnement (passage, erreur de localisation
importante dans la carte précédente).
Boucles : remise à jour des différentes cartes locales.
Localisation et cartographie simultanées (SLAM)

Problème
Localisation et cartographie simultanées (SLAM) : naviguer à
partir d’une position inconnue et dans un environnement
inconnu en construisant en même temps une représentation de
l’environnement et de la posture du robot.

...
Plan

1 Introduction

2 Modélisation
Définitions
Roulement sans glissement et contraintes non holonômes
Les grandes classes de robots mobiles et leurs modèles
Représentation d’état et commandabilité

3 Perception
Capteurs en robotique mobile
Localisation
Construction de carte

4 Navigation
Problématiques et approches
Planification de chemin
Execution du mouvement
Plan

1 Introduction

2 Modélisation
Définitions
Roulement sans glissement et contraintes non holonômes
Les grandes classes de robots mobiles et leurs modèles
Représentation d’état et commandabilité

3 Perception
Capteurs en robotique mobile
Localisation
Construction de carte

4 Navigation
Problématiques et approches
Planification de chemin
Execution du mouvement
Définitions

Mouvement
Mouvement : application définie en fonction du temps t, reliant
un point initial à l’instant t0 à un point final à l’instant tf .

Trajectoire
Trajectoire : support d’un mouvement, i. e.courbe paramétrée
par une variable s quelconque.

Mouvement sur la trajectoire


Evolution du paramètre s en fonction du temps t.
Problématique

Navigation
Navigation d’un robot mobile : recherche d’un mouvement dans
l’espace des configurations sans collisions, d’une configuration
initiale q 0 = q(t0 ) à une configuration finale q f = q(tf ).

Deux approches :
Problématique

Navigation
Navigation d’un robot mobile : recherche d’un mouvement dans
l’espace des configurations sans collisions, d’une configuration
initiale q 0 = q(t0 ) à une configuration finale q f = q(tf ).

Deux approches :
planification de trajectoire (ou de mouvement), exécution
du mouvement
Problématique

Navigation
Navigation d’un robot mobile : recherche d’un mouvement dans
l’espace des configurations sans collisions, d’une configuration
initiale q 0 = q(t0 ) à une configuration finale q f = q(tf ).

Deux approches :
planification de trajectoire (ou de mouvement), exécution
du mouvement
combinaison de primitives réactives (dont l’enchaînement
est du ressort d’un planificateur de tâches).
Planification, exécution

Planification directe de mouvement


Méthodes directes de planification d’un mouvement : pas de
technique efficace (contraintes dynamiques et évitement
d’obstacles).
Planification, exécution

Schéma classique
planification d’une trajectoire évitant les obstacles :

q : [0, 1] −→ Cfree
s 7→ q(s),

telle que q(0) = q 0 et q(1) = q f


paramétrage en temps de cette trajectoire pour satisfaire
les contraintes (limites des actionneurs notamment) :
calcul du mouvement sur la trajectoire
exécution du mouvement.
Planification, exécution

Variante
planification d’une trajectoire évitant les obstacles :

q : [0, 1] −→ Cfree
s 7→ q(s),

telle que q(0) = q 0 et q(1) = q f


exécution du mouvement : suivi de la trajectoire de
référence.
Plan

1 Introduction

2 Modélisation
Définitions
Roulement sans glissement et contraintes non holonômes
Les grandes classes de robots mobiles et leurs modèles
Représentation d’état et commandabilité

3 Perception
Capteurs en robotique mobile
Localisation
Construction de carte

4 Navigation
Problématiques et approches
Planification de chemin
Execution du mouvement
Généralités

Problème touchant de nombreux domaines


Historiquement : nombreux développements en robotique
mobile (faibles dimensions, problèmes analytiques).
Aujourd’hui : algorithmes performants + vitesse des
calculateurs : nombre de problèmes solvables bien plus grand,
notamment très nombreux degrés de liberté (logistique,
animation, bioinformatique, robotique avancée).
Planification = matière en soit, à la rencontre entre mécanique
et algorithmique.
Espace des configurations

Espace des configurations d’un point et d’un solide


Espace des configurations = ensemble des configurations
accessibles (sans collision) :
robot ponctuel : espace libre
robot de taille et de forme quelconque : on peut se
ramener au problème de planification d’un robot ponctuel.
Espace des configurations

Espace des configurations d’un point et d’un solide


Espace des configurations = ensemble des configurations
accessibles (sans collision) :
robot ponctuel : espace libre
robot de taille et de forme quelconque : on peut se
ramener au problème de planification d’un robot ponctuel.
Espace des configurations

Espace des configurations d’un point et d’un solide


Espace des configurations = ensemble des configurations
accessibles (sans collision) :
robot ponctuel : espace libre
robot de taille et de forme quelconque : on peut se
ramener au problème de planification d’un robot ponctuel.
Décomposition en cellules (1)
départ, but et obstacles (pour un robot point)
Décomposition en cellules (1)
représentation discrète de Cfree
Décomposition en cellules (1)
création d’un graphe reliant les différentes composantes
adjacentes de l’environnement
Décomposition en cellules (1)
identification des cellules départ et but
recherche d’une solution dans le graphe
chemin sans collisions entre cellules.
Décomposition en cellules (1)

Amélioration
Décomposition non exacte en cellules régulières ou non :
précision au voisinage des obstacles.
Décomposition en cellules (1)

Amélioration
Décomposition non exacte en cellules régulières ou non :
précision au voisinage des obstacles.
Méthode du potentiel (1)

Potentiels attractif et répulsif :


1
U+ = (q − q f )T K (q − q f ),
2
  2
 ηi 1 1
= 2 d(q−Obs i)
− d0 , si d(q − Obsi ) > d0
U− =
U = 0, sinon.

Méthode du potentiel (2)
Diffère sensiblement des autre méthodes évoquées dans cette
section (raisonnement pas purement géométrique) :
simple et compatible temps-réel
méthode non complète
potentiel total = potentiel attractif + potentiels répulsifs :
minima locaux

−∇U−
−∇U+

qf

tactique de dégagement, fonctions de navigation


Roadmaps (1)

Diagramme de Voronoï
Diagramme de Voronoï : lignes d’égale distance aux obstacles
dans un environnement polygonal plan (navigation au plus loin
des obstacles).
Roadmaps (2)

Graphes de visibilité
Graphe de visibilité : graphe capturant la topologie de
l’environnement à partir des sommets d’obstacles polygonaux.

relier départ et arrivée aux sommets visibles des obstacles


Roadmaps (2)

Graphes de visibilité
Graphe de visibilité : graphe capturant la topologie de
l’environnement à partir des sommets d’obstacles polygonaux.

reproduire avec les nouveaux nœuds


Roadmaps (2)

Graphes de visibilité
Graphe de visibilité : graphe capturant la topologie de
l’environnement à partir des sommets d’obstacles polygonaux.

recherche d’un chemin dans le graphe.


Roadmaps (3)

Méthodes d’échantillonnage aléatoire


Planificateurs complets trop lents, planificateurs heuristiques
trop peu fiables : méthodes d’échantillonnage aléatoire =
planificateurs complets en temps infini.
Utilisation de la puissance de calcul et construction préalable
d’un graphe de l’environnement : grande rapidité.
Roadmaps (4)

Algorithme PRM
Méthode initiale : probabilistic roadmap (PRM)
Les nœuds du graphe ne sont pas choisis selon la géométrie
de l’environnement et des obstacles, mais par un tirage
aléatoire dans Cfree .
Roadmaps (4)

Algorithme PRM
Méthode initiale : probabilistic roadmap (PRM)
Les nœuds du graphe ne sont pas choisis selon la géométrie
de l’environnement et des obstacles, mais par un tirage
aléatoire dans Cfree .
Roadmaps (4)

Algorithme PRM
Méthode initiale : probabilistic roadmap (PRM)
Les nœuds du graphe ne sont pas choisis selon la géométrie
de l’environnement et des obstacles, mais par un tirage
aléatoire dans Cfree .
Roadmaps (5)

Algorithme PRM+ visibilité


Ajout au graphe uniquement des points reliant deux
configurations non visibles l’une par rapport à l’autre
précédemment.
Cas des systèmes non holonômes

Problème
Planification de trajectoire = problème géométrique.
Contraintes non holonômes = problème cinématique.
Problème difficile combinant planification et commande.

Première possibilité :
planification de trajectoire sans tenir compte des
contraintes cinématiques
moyennant l’existence de lois de commande locales relier
les configurations de cette trajectoire pour calculer une
trajectoire admissible
optimisation : lissage de la trajectoire
Alternative : planification avec intégration de contrainte
[LaValle 04].
Plan

1 Introduction

2 Modélisation
Définitions
Roulement sans glissement et contraintes non holonômes
Les grandes classes de robots mobiles et leurs modèles
Représentation d’état et commandabilité

3 Perception
Capteurs en robotique mobile
Localisation
Construction de carte

4 Navigation
Problématiques et approches
Planification de chemin
Execution du mouvement
Les différents problèmes de commande

Définitions
Deux tâches :
suivi de chemin : calcul de la commande permettant
d’asservir la distance d’un point du robot à une trajectoire
de référence, la vitesse de déplacement longitudinale étant
donnée
la stabilisation de mouvement : calcul de la commande du
système permettant de stabiliser asymptotiquement à zéro
l’erreur de suivi par rapport à un robot de référence.

Hypothèses
Problèmes de commande par retour d’état.
Etude de l’unicycle exclusivement.
Paramétrage

~
yr
θe
~0
y
~
y

x0
~
~
xr

θr
a
O 0 Or
P
b

~
x
O
Suivi de chemin (1)

Problématique
Trouver ω pour asservir d(P, C) avec v donnée.

y0
~
~
y θe
~
yr

x0
~

Rr mobile sur C : repère de Frénet


a
associé à l’abscisse curviligne s.
O0 P d ~
xr
b
θr

Or

~
x
O
C
Suivi de chemin (2)

Existence et unicité de Or
P toujours à une distance de C inférieure à son rayon de
courbure ρ(s) en Or , i. e. |d| < |ρ(s)|, ∀s ∈ [0 1] ou :

|dc(s)| < 1, ∀s ∈ [0 1]

avec c(s) courbure de C en Or .


Suivi de chemin (3)

Modélisation dans le repère de Frénet


Modélisation = mouvements de P et R0 dans Rr et celui de Rr
sur C, complètement caractérisés par la donnée de ṡ, ḋ et θ˙e .
Suivi de chemin (4)

Modélisation dans le repère de Frénet


Calcul de θ˙e .

Courbure c(s) de C en Or :

dθr
c(s) =
ds
Suivi de chemin (4)

Modélisation dans le repère de Frénet


Calcul de θ˙e .

Courbure c(s) de C en Or :

dθr
c(s) =
ds
et donc :
Suivi de chemin (4)

Modélisation dans le repère de Frénet


Calcul de θ˙e .

Courbure c(s) de C en Or :

dθr
c(s) =
ds
et donc :

θ˙e = θ̇ − θ˙r ,
Suivi de chemin (4)

Modélisation dans le repère de Frénet


Calcul de θ˙e .

Courbure c(s) de C en Or :

dθr
c(s) =
ds
et donc :

θ˙e = θ̇ − θ˙r ,
dθr ds
= θ̇ − ,
ds dt
Suivi de chemin (4)

Modélisation dans le repère de Frénet


Calcul de θ˙e .

Courbure c(s) de C en Or :

dθr
c(s) =
ds
et donc :

θ˙e = θ̇ − θ˙r ,
dθr ds
= θ̇ − ,
ds dt
soit :
θ˙e = ω − ṡc(s).
Suivi de chemin (5)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.
Suivi de chemin (5)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.

Vitesse du point P :
Suivi de chemin (5)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.

Vitesse du point P :
−→
~vP ~ ∧ O 0 P,
= ~vO 0 + ω
Suivi de chemin (5)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.

Vitesse du point P :
−→
~vP = ~vO 0 + ω~ ∧ O 0 P,
= v ~x 0 + ω~z ∧ (a~x 0 + b~y 0 ),
Suivi de chemin (5)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.

Vitesse du point P :
−→
~vP = ~vO 0 + ω~ ∧ O 0 P,
= v ~x 0 + ω~z ∧ (a~x 0 + b~y 0 ),
= (v − bω)(cos θe ~xr + sin θe ~yr ) + aω(− sin θe ~xr + cos θe ~yr ),
Suivi de chemin (5)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.

Vitesse du point P :
−→
~vP = ~vO 0 + ω~ ∧ O 0 P,
= v ~x 0 + ω~z ∧ (a~x 0 + b~y 0 ),
= (v − bω)(cos θe ~xr + sin θe ~yr ) + aω(− sin θe ~xr + cos θe ~yr ),

soit :
~vP = ((v − bω) cos θe − aω sin θe ) ~xr + ((v − bω) sin θe + aω cos θe ) ~yr .
Suivi de chemin (6)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.

ou :
Suivi de chemin (6)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.

ou :
 −→ 
d
~vP = OP ,
dt
Suivi de chemin (6)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.

ou :
d −→
 
~vP = OP ,
dt
 −→ −→

d
= OOr + Or P ,
dt
Suivi de chemin (6)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.

ou :
d −→
 
~vP = OP ,
dt
 −→ −→

d
= OOr + Or P ,
dt
d 
= ṡ~xr + d ~yr ,
dt
Suivi de chemin (6)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.

ou :
d −→
 
~vP = OP ,
dt
 −→ −→

d
= OOr + Or P ,
dt
d 
= ṡ~xr + d ~yr ,
dt
= ṡ~xr + ḋ ~yr − d θ̇r ~xr ,
Suivi de chemin (6)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.

ou :
d −→
 
~vP = OP ,
dt
 −→ −→

d
= OOr + Or P ,
dt
d 
= ṡ~xr + d ~yr ,
dt
= ṡ~xr + ḋ ~yr − d θ̇r ~xr ,

soit :
~vP = ṡ (1 − dc(s)) ~xr + ḋ ~yr .
Suivi de chemin (7)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.

On récapitule :
~vP = ((v − bω) cos θe − aω sin θe ) ~xr + ((v − bω) sin θe + aω cos θe ) ~yr ,
~vP = ṡ (1 − dc(s)) ~xr + ḋ ~yr ,
Suivi de chemin (7)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.

On récapitule :
~vP = ((v − bω) cos θe − aω sin θe ) ~xr + ((v − bω) sin θe + aω cos θe ) ~yr ,
~vP = ṡ (1 − dc(s)) ~xr + ḋ ~yr ,

soit :
Suivi de chemin (7)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.

On récapitule :
~vP = ((v − bω) cos θe − aω sin θe ) ~xr + ((v − bω) sin θe + aω cos θe ) ~yr ,
~vP = ṡ (1 − dc(s)) ~xr + ḋ ~yr ,

soit :
(v − bω) cos θe − aω sin θe
ṡ = ,
1 − dc(s)
Suivi de chemin (7)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.

On récapitule :
~vP = ((v − bω) cos θe − aω sin θe ) ~xr + ((v − bω) sin θe + aω cos θe ) ~yr ,
~vP = ṡ (1 − dc(s)) ~xr + ḋ ~yr ,

soit :
(v − bω) cos θe − aω sin θe
ṡ = ,
1 − dc(s)
ḋ = (v − bω) sin θe + aω cos θe ,
Suivi de chemin (7)

Modélisation dans le repère de Frénet


Calcul de ṡ et ḋ.

On récapitule :
~vP = ((v − bω) cos θe − aω sin θe ) ~xr + ((v − bω) sin θe + aω cos θe ) ~yr ,
~vP = ṡ (1 − dc(s)) ~xr + ḋ ~yr ,

soit :
(v − bω) cos θe − aω sin θe
ṡ = ,
1 − dc(s)
ḋ = (v − bω) sin θe + aω cos θe ,
θ˙e = ω − ṡc(s).
Suivi de chemin (8)

Suivi de chemin sans contrôle d’orientation


On recherche une loi ω permettant de stabiliser la distance à la
courbe de référence sans contrôle particulier de l’orientation.
Hypothèse : b = 0 (point P sur l’axe).
Alors :
ḋ = v sin θe + aω cos θe .
La loi :
v sin θe v
ω=− − k (d, θe )d,
a cos θe cos θe
avec k (d, θe ) > 0 tel que k (d, ± π2 ) = 0 donne :

ḋ = −vak (d, θe )d.


Suivi de chemin (8)

Suivi de chemin sans contrôle d’orientation


On recherche une loi ω permettant de stabiliser la distance à la
courbe de référence sans contrôle particulier de l’orientation.

Conséquences

ḋ = −vak (d, θe )d.

a, v et k (d, θe ) > 0 : |d| décroissante le long de toute


trajectoire.
v de signe constant et suffisamment régulière : d tend
asymptotiquement vers 0.
Suivi de chemin (9)

Suivi de chemin avec contrôle d’orientation


. . .stabiliser la distance à la trajectoire et l’erreur en orientation.
Hypothèse : a = b = 0.
Suivi de chemin (9)

Suivi de chemin avec contrôle d’orientation


. . .stabiliser la distance à la trajectoire et l’erreur en orientation.
Hypothèse : a = b = 0. Si on pose x1 = s, et u1 = ṡ alors
ẋ1 = u1 :
Suivi de chemin (9)

Suivi de chemin avec contrôle d’orientation


. . .stabiliser la distance à la trajectoire et l’erreur en orientation.
Hypothèse : a = b = 0. Si on pose x1 = s, et u1 = ṡ alors
ẋ1 = u1 :
v cos θe
u1 =
1 − dc(s)
Suivi de chemin (9)

Suivi de chemin avec contrôle d’orientation


. . .stabiliser la distance à la trajectoire et l’erreur en orientation.
Hypothèse : a = b = 0. Si on pose x1 = s, et u1 = ṡ alors
ẋ1 = u1 :
v cos θe
u1 =
1 − dc(s)
on pose : x2 = d, x3 = (1 − dc(s)) tan θe et u2 = ẋ3 d’où :
Suivi de chemin (9)

Suivi de chemin avec contrôle d’orientation


. . .stabiliser la distance à la trajectoire et l’erreur en orientation.
Hypothèse : a = b = 0. Si on pose x1 = s, et u1 = ṡ alors
ẋ1 = u1 :
v cos θe
u1 =
1 − dc(s)
on pose : x2 = d, x3 = (1 − dc(s)) tan θe et u2 = ẋ3 d’où :
Nouvelle représentation

ẋ1 = u1 , Retour d’état ω à v donné


reformulé : retour d’état u2 ,
ẋ2 = u1 x3 , avec u1 déduit de v .
ẋ3 = u2 .
Suivi de chemin (9)

Système chaîné
ẋ1 = u1 , ẋ2 = u1 x3 , et ẋ3 = u2 .
Suivi de chemin (9)

Système chaîné
ẋ1 = u1 , ẋ2 = u1 x3 , et ẋ3 = u2 .

Retour d’état proportionnel :

u2 = ẋ3 = −u1 k2 x2 − |u1 |k3 x3

avec k2 et k3 deux constantes strictement positives, alors :


Suivi de chemin (9)

Système chaîné
ẋ1 = u1 , ẋ2 = u1 x3 , et ẋ3 = u2 .

Retour d’état proportionnel :

u2 = ẋ3 = −u1 k2 x2 − |u1 |k3 x3

avec k2 et k3 deux constantes strictement positives, alors :

x¨3 + |u1 |k3 ẋ3 + u12 k2 x3 = 0,

si u1 constant quelconque.
Suivi de chemin (9)

Système chaîné
ẋ1 = u1 , ẋ2 = u1 x3 , et ẋ3 = u2 .

Retour d’état proportionnel :

u2 = ẋ3 = −u1 k2 x2 − |u1 |k3 x3

avec k2 et k3 deux constantes strictement positives, alors :

x¨3 + |u1 |k3 ẋ3 + u12 k2 x3 = 0,

si u1 constant quelconque.
Conclusion
Système stable en x2 = x3 = 0 et donc en d = 0 et θe = 0.
Suivi de chemin (10)
On peut montrer que pour u1 quelconque et :

x32 (0) 1
x22 (0) + < 2
k2 cmax

où cmax est la courbure maximale le long de C, la condition sur


la distance | − dc(s)| < 1 est vérifiée et la fonction :
!
x 2
1
V (x) = x22 + 3
2 k2

tend vers zéro si u1 est suffisamment régulière (bornée,


dérivable et de dérivée bornée et ne tendant pas vers zéro
lorsque t tend vers l’infini).
Stabilisation de mouvement (1)

Problématique
Asservir la posture d’un robot mobile par rapport à un robot
virtuel de référence.
~
yr
θe
~0
y
~
y

x0
~
~
xr

θr
a
0 Or
O P
b référence
robot

~
x
O
Stabilisation de mouvement (2)

Mouvement de référence
Repère de référence pas nécessairement arbitraire :
mouvement de référence admissible : ẋ r = B(x r )u r
mouvement de référence non admissible.

Formulation du problème
Soit un mouvement admissible x r (t) sur [0, T ] tel que
ẋ r = B(x r )u r .
Problème de stabilisation : trouver u(x, x r , t) tq l’origine du
système d’erreur :

ẋ e = B(x)u − B(x r )u r

soit asymptotiquement stable.


Stabilisation de mouvement (3)

Mouvements admissibles sans contrôle d’orientation


Trouver (v , ω) pour stabiliser l’erreur entre position courante et
position de référence, sans contrainte sur l’orientation.
Stabilisation de mouvement (3)

Mouvements admissibles sans contrôle d’orientation


Trouver (v , ω) pour stabiliser l’erreur entre position courante et
position de référence, sans contrainte sur l’orientation.

Hypothèse : on considère P tq a 6= 0 et b = 0.
Stabilisation de mouvement (3)

Mouvements admissibles sans contrôle d’orientation


Trouver (v , ω) pour stabiliser l’erreur entre position courante et
position de référence, sans contrainte sur l’orientation.

Hypothèse : on considère P tq a 6= 0 et b = 0.
Alors :

ṗ e = ~vP/R − ṗ r
  
cos θ − sin θ v − bω
= − ṗ r .
sin θ cos θ aω

avec p r la position de Or et p e l’erreur de position dans R.


Stabilisation de mouvement (4)
Avec (inversible car a 6= 0) :
     
u1 cos θ − sin θ 1 −b v
u= =
u2 sin θ cos θ 0 a ω
Stabilisation de mouvement (4)
Avec (inversible car a 6= 0) :
     
u1 cos θ − sin θ 1 −b v
u= =
u2 sin θ cos θ 0 a ω

on a :
ṗ e = u − ṗ r .
Stabilisation de mouvement (4)
Avec (inversible car a 6= 0) :
     
u1 cos θ − sin θ 1 −b v
u= =
u2 sin θ cos θ 0 a ω

on a :
ṗ e = u − ṗ r .
Stabiliser par retour d’état :

u = ṗ r − K p e ,

avec K diagonale positive.


Stabilisation de mouvement (4)
Avec (inversible car a 6= 0) :
     
u1 cos θ − sin θ 1 −b v
u= =
u2 sin θ cos θ 0 a ω

on a :
ṗ e = u − ṗ r .
Stabiliser par retour d’état :

u = ṗ r − K p e ,

avec K diagonale positive.

Remarque
Dans ce qui précède c’est le point P qui est asservi à la
position de Or et il persiste une erreur constante de a (or a 6= 0
impérativement).
Stabilisation de mouvement (5)

Mouvements admissibles avec contrôle d’orientation


Trouver (v , ω) pour stabiliser l’erreur ξ e entre posture courante
et posture de référence.
Stabilisation de mouvement (5)

Mouvements admissibles avec contrôle d’orientation


Trouver (v , ω) pour stabiliser l’erreur ξ e entre posture courante
et posture de référence.

Dans Rr :
    
xe cos θr sin θr 0 x − xr
ξ e = ye = − sin θr
   cos θr 0 x − yr  .
θe 0 0 1 θ − θr
Stabilisation de mouvement (5)

Mouvements admissibles avec contrôle d’orientation


Trouver (v , ω) pour stabiliser l’erreur ξ e entre posture courante
et posture de référence.

Dans Rr :
    
xe cos θr sin θr 0 x − xr
ξ e = ye = − sin θr
   cos θr 0 x − yr  .
θe 0 0 1 θ − θr

Alors :
         
ẋe cos θe 0 1 −ye
ẏe  =  sin θe  v + 0 ω − 0 vr −  xe  ωr .
θ̇e 0 1 0 1
Stabilisation de mouvement (6)

Mouvements admissibles avec contrôle d’orientation


Trouver (v , ω) pour stabiliser l’erreur ξ e entre posture courante
et posture de référence.
Avec : x1 = xe , x2 = ye , x3 = tan θe , u1 = v cos θe − vr et
ω−ωr π
u2 = cos 2 θ , défini partout sauf en θe = ± 2 :
e
Stabilisation de mouvement (6)

Mouvements admissibles avec contrôle d’orientation


Trouver (v , ω) pour stabiliser l’erreur ξ e entre posture courante
et posture de référence.
Avec : x1 = xe , x2 = ye , x3 = tan θe , u1 = v cos θe − vr et
ω−ωr π
u2 = cos 2 θ , défini partout sauf en θe = ± 2 :
e

ẋ1 = u1 + ωr x2 ,
ẋ2 = u1 x3 − ωr x1 + vr x3 ,
ẋ3 = u2 .
Stabilisation de mouvement (6)

Mouvements admissibles avec contrôle d’orientation


Trouver (v , ω) pour stabiliser l’erreur ξ e entre posture courante
et posture de référence.
Avec : x1 = xe , x2 = ye , x3 = tan θe , u1 = v cos θe − vr et
ω−ωr π
u2 = cos 2 θ , défini partout sauf en θe = ± 2 :
e

ẋ1 = u1 + ωr x2 ,
ẋ2 = u1 x3 − ωr x1 + vr x3 ,
ẋ3 = u2 .
Alors :
u1 = −k1 |vr |(x1 + x2 x3 ),
u2 = −k2 vr x2 − k3 |vr |x3 ,
avec k1 , k2 et k3 > 0 rend le système asymptotiquement stable
si vr est suffisamment régulière (bornée, dérivable et de dérivée
bornée et ne tendant pas vers zéro lorsque t tend vers l’infini).
Stabilisation de mouvement (7)

Mouvements quelconques avec contrôle d’orientation


Existence de fonctions transverses liées à un groupe de
champs de vecteurs.
Stabilisation de mouvement (7)

Mouvements quelconques avec contrôle d’orientation


Existence de fonctions transverses liées à un groupe de
champs de vecteurs.

ω
Avec x1 = x, x2 = y , x3 = tan θ, u1 = v cos θ et u2 = cos2 θ
on
obtient :
Stabilisation de mouvement (7)

Mouvements quelconques avec contrôle d’orientation


Existence de fonctions transverses liées à un groupe de
champs de vecteurs.

ω
Avec x1 = x, x2 = y , x3 = tan θ, u1 = v cos θ et u2 = cos2 θ
on
obtient :

ẋ1 = u1 ,
ẋ2 = u1 x3 ,
ẋ3 = u2 .
Stabilisation de mouvement (8)
Vecteur de commande étendu : u e = (u1 u2 α̇)T .
Stabilisation de mouvement (8)
Vecteur de commande étendu : u e = (u1 u2 α̇)T .
Soit ε1 et ε2 > 0 :
   
fε, 1 (α) ε1 cos α
fε (α) = fε, 2 (α) =  ε14ε2 sin 2α .
fε, 3 (α) ε2 sin α
Stabilisation de mouvement (8)
Vecteur de commande étendu : u e = (u1 u2 α̇)T .
Soit ε1 et ε2 > 0 :
   
fε, 1 (α) ε1 cos α
fε (α) = fε, 2 (α) =  ε14ε2 sin 2α .
fε, 3 (α) ε2 sin α

Avec z = x − fε (α), on a :

ż = B(x, α) u e

où :  
1 0 ε1 sin α
B(x, α) = x3 0 − ε12ε2 cos 2α .
0 1 −ε2 cos α
Stabilisation de mouvement (9)

ż = B(x, α) u e
Stabilisation de mouvement (9)

ż = B(x, α) u e

Commande
La commande u e = B(x, α)−1 K z, avec K une matrice définie
négative, stabilise le robot mobile en d = 0.
Stabilisation de mouvement (9)

ż = B(x, α) u e

Commande
La commande u e = B(x, α)−1 K z, avec K une matrice définie
négative, stabilise le robot mobile en d = 0.

Conclusion
Le système converge vers z = 0 , mais B(x, α) n’est pas
toujours inversible (points singuliers).
Stabilisation de mouvement (10)
Changement de variables plus complexe :
 
x1 − fε, 1 (α)
z = x2 − fε, 2 (α) − x1 (x3 − fε, 3 (α)) .
x3 − fε, 3 (α)
Stabilisation de mouvement (10)
Changement de variables plus complexe :
 
x1 − fε, 1 (α)
z = x2 − fε, 2 (α) − x1 (x3 − fε, 3 (α)) .
x3 − fε, 3 (α)

Alors :
ż = D(x1 )B(fε (α), α)u e
avec :  
1 0 0
D(x1 ) = 0 1 −x1  .
0 0 1
Stabilisation de mouvement (11)

ż = D(x1 )B(fε (α), α)u e


Stabilisation de mouvement (11)

ż = D(x1 )B(fε (α), α)u e

Commande
La commande u e = B(fε (α), α)−1 D(x1 )−1 K z stabilise le
système vers z = 0 avec une convergence exponentielle et α
converge ainsi exponentiellement vers une constante.
Stabilisation de mouvement (11)

ż = D(x1 )B(fε (α), α)u e

Commande
La commande u e = B(fε (α), α)−1 D(x1 )−1 K z stabilise le
système vers z = 0 avec une convergence exponentielle et α
converge ainsi exponentiellement vers une constante.

Conclusions
Pas de points singuliers (D(x1 ) et B(fε (α), α) toujours
inversibles).
Convergence de x vers 0 ajustée par ε1 et ε2 (petites valeurs :
manœuvres)
ActivMedia.
P3-DX : World’s Most Popular Intelligent Wheeled Robot,
2004.
G. Campion, G. Bastin et B. D’Andréa-Novel.
Structural Properties and Classification of Kinematic and
Dynamic Models of Wheeled Mobile Robots.
IEEE Transactions on Robotics and Automation, vol. 12,
no. 1, pages 47–62, 1996.
J. Gangloff.
Cours de robotique, 2004.
G. Giralt, R. Chatila et M. Vaisset.
An Integrated Navigation and Motion Control System for
Autonomous Multisensory Mobile Robots.
In First International Symposium on Robotics Research,
pages 191–214, Cambridge, 1984.
K-team.
Khepera II user manual, 2002.
S. M. LaValle.
Planning algorithms.
Published online, 1999-2004.
T. Pajdla.
Omnidirectional Vision Course.
Rapport technique, ICCV 2003, 2003.
R. Siegwart et I. R. Nourbakhsh.
Introduction to autonomous mobile robots.
MIT press, 2004.