Localisation et navigation de robots
UPJV, Département EEA M2 EEAII, parcours ViRob
Fabio MORBIDI
Laboratoire MIS
Équipe Perception et Robotique E-mail: fabio.morbidi@u-picardie.fr Année Universitaire 2015/2016
Mercredi 10h00-12h30 et jeudi 9h00-12h30 salle TP202
1
Plan du chapitre
Stratégies de navigation Architectures de contrôle
Navigation vers un but Evitement d’obstacles
Partie 2
Partie 3 Partie 1
Partie 4
Partie 4 : Evitement d’obstacles
2
Evitement d’obstacles: introduction
3
Obstacle
• Statique ou dynamique
Exemples: poteau, mur, marche, humains, autres robots
x
y
A
Objectif: déterminer une trajectoire
de A à B qui permet au robot
d'éviter les collisions avec les obstacles Evitement d’obstacles: géré
normalement par des contrôleurs de bas-niveau
B
obstacle
• Comportement de base indispensable pour un fonctionnement dans un environnement dynamique
• Il faut gérer les écarts modèle interne/monde réel
• Méthodes (pour obstacles statiques):
0. Véhicule de Braitenberg (approche réactif, pas de carte de l’environ.) 1. Champs de potentiel
2. Vector field histogram 3. Fenêtre dynamique 4. Graphe de Voronoï
5. Planification probabiliste (PRM, RRT)
• Besoin de perceptions précises (par ex. télémètres laser)
• Avec sonars ou autres: une représentation locale de l’environnement peut être nécessaire
4
Robot mobile
Trajectoire désirée du robot Chemin autour
de l'obstacle
Obstacle
Evitement d’obstacles: introduction
Partie 4 : Evitement d’obstacles
1. Champs de potentiel
5
Champs de potentiel
▫ Robot: vu comme une particule
▫ Déplacement suivant les lignes de courant d’un potentiel obtenu par la perception de l’environnement
6
“Real-time obstacle avoidance for manipulators and mobile robots", O. Khatib, Int. Journal of Robotics Research, vol. 5, n. 1, pp. 90-98, 1986
Potentiels primitifs
Champs de potentiel
• Potentiel: différents objectifs
▫ Évitement d’obstacles
▫ Déplacement dans une direction préférée (vers le but)
• Comment le calculer ?
▫ Sommation de potentiels primitifs
• Particularités des potentiels primitifs
▫ Étendue spatiale limitée ou non
▫ Intensité: fonction de la distance ou non
7
“Robotics Modeling, Planning and Control", B. Siciliano, L. Sciavicco,
L. Villani, G. Oriolo, Springer 2009, Sect. 12.6
Champs de potentiel
déplacement suivant le couloir centrage évitement d’obstacle ponctuel
champ potentiel résultant environnement
8
obstacle
Simple exemple
+ +
Champs de potentiel
9
F(q) = r U (q)
En d'autres termes, la force F agissant sur le robot dans la position est égale au gradient négatif de la fonction potentielle U
où
F(q) force agissant sur le robot dans la position q = [x, y]
Tfonction potentiel de l’environnement
1) Potentiel attractif : pour guider le robot vers le but
q
q
b2) Potentiel repulsif : pour éviter la collision avec les obstacles
Formulation mathématique
• Deux types de potentiel U :
robot
{W} F(q) q 2 R2
U (q) : R
2! R
Champs de potentiel
10
1) Fonction quadratique de la distance du but :
Potentiels attractifs
U
a(q) = 1
2 k
ak q
bq k
2, k
a> 0 q
b2) Fonction linéaire de la distance du but : q
bConvergence linéaire à
zéro lorsque tend vers ; tend à augmenter
indéfiniment lorsque la
norme de l’erreur augmente
q
bq
U
a(q) = k
ak q
bq k , k
a> 0
F
a(q) = r U
a(q) = k
aq
bq k q
bq k
Module de la force constant; n’est pas définie en
q
bBon compromis: utiliser la 2
efonction lorsque le robot est éloigné du but et la 1
eprès de . Pour avoir une force continue, passer d’une à l’autre lorsque q
bk q
bq k = 1
F
aF
aF
a(q) = r U
a(q) = k
a(q
bq)
Champs de potentiel
11
1) Fonction 1 (paraboloïde)
Potentiels attractifs
2) Fonction 2 (cône)
q
bq
by y
x x
k
a= 1
Dans les deux images, on a choisi
U
aU
aChamps de potentiel
12
Pour un obstacle convex on peut définir le potentiel:
Potentiels repulsifs
i 2 { 1, . . . , N }
U
r,i(q) = 8 >
<
> :
k
r,i✓
1
⇢(q, q
o,i)
1
⇢
o,i◆
si ⇢(q, q
o,i) ⇢
0,i0 si ⇢(q, q
o,i) > ⇢
0,iétant
k
r,i> 0
2 { 2, 3, . . . }
⇢(q, q
o,i)
⇢
o,i: distance minimale entre le robot et les points de l’obstacle i : rayon d'influence de l'obstacle i
robot
obstacle i
⇢(q, qo,i)
q
Champs de potentiel
13
Potentiels repulsifs
Si est grand (typiquement, ), la “pente” du potentiel est forte
Contours équipotentiels du potentiel répulsif U
r,ipour , = 2
⇢
o,i= 2 obstacle i
obstacle j
obstacle
k
r= 1
Champs de potentiel
14
Potentiels repulsifs
Force repulsive résultant du potentiel : U
r,i(q)
Enfin, on peut définir le potentiel répulsif global (pour les N obstacles), comme:
Fr,i(q) = rUr,i(q) = 8>
><
>>
:
kr,i
⇢2(q, qo,i)
✓ 1
⇢(q, qo,i)
1
⇢o,i
◆ 1
r⇢(q, qo,i) si ⇢(q, qo,i) ⇢0,i
0 si ⇢(q, qo,i) > ⇢0,i
U
r(q) =
X
N i=1U
r,i(q)
Champs de potentiel
15
Potentiel total = potentiel attractif + potentiels repulsifs
Ceci se traduit par la force totale agissant sur le robot:
F
t(q) = r U
t(q) = F
a(q) +
X
Ni=1
F
r,i(q)
potentiel attractif potentiels repulsifs potentiel total
q
bU
t(q) = U
a(q) + U
r(q)
Champs de potentiel
Obstacle
But
16
Robot
q
bContours équipotentiels
Exemple
Champs de potentiel
17
Pour atteindre le but , on peut utiliser l’algorithme du gradient.
À partir de: q
bq ˙ = r U t (q)
si est la position initiale du robot, on peut mettre à jour sa position de la manière suivante:
q
k+1= q
k+ ↵
kF
t(q
k)
k F
t(q
k) k , ↵
k> 0
Problème: convergence vers tous les points critiques où Il faut vérifier la dérivée seconde
du potentiel: la matrice Hessienne doit être définie positive en
pour avoir un minimum local
r U
t(q) = 0 , k 2 { 0, 1, . . . }
q
0q
⇤q
⇤2 4
@2 Ut
@x2
@2 Ut
@x@y
@2 Ut
@y @x
@2 Ut
@y2
3 5
q=q⇤
0
Champs de potentiel
18
Contours équipotentiels Champ de force résultant Obstacle
Minimum local
« zone d'ombre » Minimum
global (but)
Exemple: obstacle rectangulaire
q b q b
Champs de potentiel
• Problèmes
1. Minima locaux du potentiel dans certaines configurations 2. Pas de «décision» de la direction à prendre pour le robot
• Solutions au 1
erproblème:
▫ Lorsque dans un minimum local, déclencher un comportement différent:
! Par ex. déplacement aléatoire, suivi de murs
▫ « Mondes sphériques » : tous les obstacles ont une
forme sphérique. Le potentiel total a points selles isolés (où le gradient est zéro), mais pas des minima locaux
▫ Fonctions de navigation [Rimon & Koditschek, TRA92]
ou potentiel imposé en fonction harmonique*
! Les fonctions harmoniques garantissent l’absence de minima locaux, mais complexité élevée (seulement en simulation)
19
* Une fonction harmonique est une fonction deux fois
continûment dérivable qui satisfait l'équation de Laplace sur , c.-à.-d. r
2f = 0 f : ⌦ ⇢ R
n! R
⌦
Champs de potentiel
• Avantages:
1) Capacité de générer « en temps réel » des trajectoires pour éviter les obstacles
2) Facilité de mise en œuvre
• Formalisme du schéma moteur
▫ Action sous forme de potentiel
▫ Dépend des perceptions
• Utilisation
▫ Bas-niveau dans une architecture hybride
20
Partie 4 : Evitement d’obstacles
2. Vector field histogram (VFH)
21
Vector field histogram
• Historiquement inventé pour les sonars (capteurs à ultra-sons)
1. Grille d’occupation (GO) locale
▫ Représentation de l’environnement
▫ Discrétisation de l’espace en cellules régulières
▫ Chaque cellule contient une probabilité p
i! Haute si souvent perçue contenant un obstacle
! Faible sinon
22
p1
p2
GO Secteur
angulaire
“The vector field histogram - fast obstacle avoidance for mobile robots”, Y. Koren, J. Borenstein, IEEE Trans. Robot. Autom., vol. 7, n. 3, pp. 278-288, 1991
Seuil
Secteurs angulaires Robot
θ
2. Histogramme d’occupation
Représente l’occupation de l’espace autour du robot
Vector field histogram
1. Construction de la grille d’occupation (GO)
▫ Estimation de la position du robot (cf. chapitre 1, localisation par odométrie)
▫ Perception
▫ Mise à jour des cellules de la GO
! Modèle probabiliste:
23
p(occ
i| s)
Pour une perception s donnée, nous fournit la
probabilité d’occupation de la cellule i dans le champ de vision du capteur du robot en fonction de la valeur renvoyée par le capteur
p(occ
i| s)
Construction d’une GO
! Modèle probabiliste du télémètre à ultra-sons
! Probabilité de mesure en fonction de la distance de l’obstacle
Π
Perception obstacle
Perception obstacle imprévu
Non perception:
mesure à la distance maximale
24
Résultat
dist. dist. dist. dist.
pdf pdf pdf pdf
p(obstacle | balayage) =
Y
T j = 1p(s
j| distObstacle)
Construction d’une GO
!
! Erreur gaussienne pour l’écart entre :
▫ La direction de la cellule
▫ La direction du capteur
! Objectif
! Accumuler les T mesures
! Estimer la probabilité de la cellule i d’être occupée:
25
p(occ
i| s)
p(occ T i ) = p(occ i | s 1 , . . . , s T )
s
1, . . . , s
TConstruction d’une GO
• Théorème de Bayes pour extraire la probabilité en fonction de la dernière mesure s
T. Rappel que:
• Dans notre cas:
26
p(x | y) = p(y | x) p(x) p(y )
« Monde statique » : toutes les mesures sont conditionnellement indépendantes si on connaît la valeur d’une cellule de la GO (ce qui est faux en pratique et produit des limitations de la méthode)
p(occ
Ti) = p(s
T| occ
i, s
1, . . . , s
T 1) p(occ
Ti 1) p(s
T| s
1, . . . , s
T 1)
p(occ
Ti) = p(s
T| occ
i) p(occ
Ti 1) p(s
T| s
1, . . . , s
T 1)
• Avec une hypothèse de « monde statique », on simplifie:
Construction d’une GO
! Notre modèle de capteur nous donne , alors nous le faisons apparaître (à nouveau théor. Bayes):
! Mais la probabilité d’«inoccupation»
! La probabilité que la cellule i soit vide est donc:
27
p(occ
i| s
T)
p(occ
Ti) = p(occ
i| s
T) p(s
T) p(occ
i)
p(occ
Ti 1)
p(s
T| s
1, . . . , s
T 1)
p(occ
Ti) = p(occ
i| s
T) p(s
T) p(occ
i)
p(occ
Ti 1)
p(s
T| s
1, . . . , s
T 1)
p(occ
i) = 1 p(occ
i)
Construction d’une GO
! Le rapport des deux probabilités nous donne:
! En sachant que , tout est connu:
! Nous pourrions exprimer , mais il est plus simple déterminer la quantité:
28
p(occ
Ti)
p(occ
Ti) = p(occ
i| s
T) p(occ
i| s
T)
p(occ
Ti 1) p(occ
Ti 1)
p(occ
i) p(occ
i)
p(occ
i) = 1 p(occ
i)
p(occ
Ti)
1 p(occ
Ti) = p(occ
i| s
T) 1 p(occ
i| s
T)
1 p(occ
Ti 1) p(occ
Ti 1)
1 p(occ
i) p(occ
i) p(occ
Ti)
`
Ti= log
✓ p(occ
Ti) 1 p(occ
Ti)
◆ : logarithme
naturel (de base e)
log( · )
Construction d’une GO
! Ce qui se calcule simplement par (rappel:
et )
! Mise à jour incrémentale de . On utilise:
! Les valeurs précédentes
! Le modèle du capteur
! généralement initialisée à ½ (l’initialisation intègre l’a priori sur le fait que l’environnement contienne plus ou moins d’obstacles)
! permet de calculer la probabilité d’occupation :
29
log(x · y ) = log(x) + log(y )
`
Tilog(x
b) = b log(x)
`
Ti= log
✓ p(occ
i| s
T) 1 p(occ
i| s
T)
◆
`
Ti 1+ log
✓ 1 p(occ
i) p(occ
i)
◆
p(occ
i)
`
Tip(occ
Ti) = 1 1
exp(`
Ti)
p(occ
Ti)
Construction d’une GO
▫ Autres possibilités de mise à jour des GO
1. Calcul de en fonction du nombre de
perceptions de la cellule i (« approche fréquentiste vs. bayésianne»)
Nombre de fois que un obstacle a été détecté
dans la cellule i (pour les T mesures) Nombre de fois
que la cellule i a été détectée vide (pour les T mesures)
30
p(occ
Ti)
p(occ
Ti) = nbocc
Tinbvide
Ti+ nbocc
TiConstruction d’une GO
▫ Autres possibilités de mise à jour des GO
2. Histogramic in-motion mapping (HIMM)
31
p(occ
Ti) = p(occ
Ti 1) +
"Histogramic in-motion Mapping for Mobile Robot Obstacle Avoidance", J. Borenstein, Y. Koren, IEEE Journal of Robotics and Automation, vol. 7, n. 4, pp. 535-539, 1991
HIMM est très simple, mais:
• Pas de convergence quand le nombre de perceptions tend vers l’infini
• Sensible au bruit
• Réglage délicat des paramètres ( ) pour être adapté à un robot
=
( 1 1
si la cellule i presénte un obstacle sinon
Valeur
d’incrémentation (paramètre positif)
2. Histogramme d’occupation
32
Obstacle 1
Obstacle 2 Robot
•
La GO est construite dans le référentiel du robot•
Un compteur est incrémenté pour chaque cellule appartenant au secteur angulaire dans lequel un obstacle a été détecté (ex. car probabilité > 0.5)• Les valeurs sont déplacées d’une cellule à l’autre en fonction des déplacements du robot
+1
+1
Robot
Secteur angulaire
•
Construction d’un histogramme polaire des obstacles à partir des valeurs des cellules (une barre pour chaque secteur)
•
On utilise l’histogramme pour déterminer la direction de déplacement du robot
•
Seuillage pour éliminer une partie du bruit
33
2. Histogramme d’occupation
12 secteurs (ouverture angulaire de 30o)
Direction sans collisions Seuil
Somme des compteurs des cellules dans les secteurs
2 3
3 4 10
0 10
1
Robot
4 5
9 8
7
6
5 6 8 9
11
1
Secteur
1 2 11
14 GO
34
Histogramme d’occupation
“VFH+: Reliable obstacle avoidance for fast mobile robots”, I. Ulrich, J. Borenstein, in Proc. Int. Conf. on Robotics and
Automation, vol. 2, pp. 1572-1577, 1998
VFH+
Histogramme “masqué”
▫ Après seuillage
! Ensemble de directions possibles
! Choix selon un critère:
! Exemple: direction la plus proche de celle du but
! On peut prendre en considération le modèle cinématique du robot (VFH+)
▫ Avantage du VFH
! Très rapide
Robot unicycle