Discrétisation d’espace Discrétisation d’espace et exploration
et exploration et exploration et exploration
Luc Lamontagne Luc Lamontagne PLT 3990
PLT 3990
luc.lamontagne@ift.ulaval.ca luc.lamontagne@ift.ulaval.ca
Tiré du matériel de Brahim Chaib
Tiré du matériel de Brahim Chaib--draa (A09)draa (A09) et de Philippe Giguère (Intro à la
et de Philippe Giguère (Intro à la robotiquerobotique, A10) , A10)
1
Plan
Espace de configuration
Discrétisation de l’espace continu Exemples d’exploration
2
Planification de trajectoire
Représentation continue
(espace des configurations)
Le contenu de cette section
Discrétisation
Recherche dans un graphe
(blind, best-first, A*)
cette section
Configuration robot mobile
Espace de travail en 2D
Degrés de liberté (DOF) :
Le nombre de variables pour décrire la position du robot dans l’espace.
Par exemple, qr = ( ,x y , )θ
Par exemple,
4
( ,r r, ) qr = x y θ
x y
Espace de configuration C
Transformation de l’espace
Réduire la dimension du robot
Le centre du robot devient le point de référence.
Espace libre
Le centre du robot devient le point de référence.
« Gonfler » les obstacles
Reporter les dimensions du robot sur les obstacles.
Planifier un chemin dans l’espace de configuration (C-space)
Avec les obstacles gonflés et le robot comme un point.
5
Espace de configuration C
Pour un robot circulaire se déplaçant en x-y
Espace libre
6
Espace libre
Espace de configuration C
Le centre du robot ne peut être que dans le gris
Clibre régions non-accessibles
7
Clibre
(approximé comme un cercle)
Espace de configuration C
Pour un robot se déplaçant en (x,y, θ )
8
minkowski
Configuration semi-libre
Une configuration est semi-libre si le robot touche un obstacle, sans pénétrer.
Les configurations semi-libres sont à la bordure entre Cobs et Clibre.
9
configuration semi-libre
Trajectoire semi-libre
Trajectoire est libre si entièrement dans Clibre.
Trajectoire est semi-libre si elle contient au moins une configuration semi-libre.
On cherche, en général, à éviter ces configurations : aucune marge de sécurité
aucune marge de sécurité
10
configuration semi-libre
trajectoire semi-libre
Trajectoire libre vs. semi-libre
11
Planification de mouvements
Cherche à trouver une trajectoire dans l’espace des configurations
sans collision Clibre
Méthodes déterministes
À chaque fois, l’algorithme retourne la même réponse.
À chaque fois, l’algorithme retourne la même réponse.
Méthodes probabilistes
Fonctionnent par échantillonnage au hasard.
Ne trouvent pas toujours la même trajectoire.
Je ne présente dans ce cours que les approches déterministes.
12
Méthodes déterministes
Déplacement sur grille uniforme
Exploration en profondeur
Propagation de front d’ondes
Propagation de front d’ondes
Déplacement sur grille non uniforme
Graphe des visibilités
Décomposition cellulaire verticale
Diagrammes de Voronoï
13
Planification de trajectoire
Représentation continue
(espace des configurations)
Discrétisation
Recherche dans un graphe
(blind, best-first, A*)
Le contenu de cette section
Discrétisation
15
environnement représentation discrète
représentation par graphe
Découpage de l’espace
16
Grille régulière uniforme
La forme la plus simple de découpage
On découpe l’espace en cellules, toutes de même dimension.
On marque les cellules contenant les obstacles (cellules occupées)
On recherche un chemin dans les cellules vides.
17
Grille régulière uniforme
Deux types de déplacement possibles
connectivité von Neumann
Connectivité 4 directions
Connectivité 8 directions
18
1
4 2
3 C
von Neumann
1 2 3
4 5
6 7 8 C
connectivité Moore
Grille régulière uniforme :
Exploration meilleur d’abord
Explorer la grille G avec une stratégie
meilleur d’abord avec fonction heuristique
But But
Grille régulière uniforme :
Propagation par front d’onde
Exploration sur une grille régulière (Wavefront planner)
0: non-visité 1: obstacle 2: indique le départ
but
20
départ
Grille régulière uniforme :
Propagation par front d’onde
À chaque étape :
On ajoute +1 aux cellules adjacentes ayant des 0
Déplacement à 8 directions pour cet exemple (au choix)
21
Grille régulière uniforme :
Propagation par front d’onde
On continue jusqu’à ce qu’il n’y ait plus de cellules 0 à côté des cellules > 2
22
Grille régulière uniforme :
Propagation par front d’onde
23
Grille régulière uniforme :
Propagation par front d’onde
24
Grille régulière uniforme :
Propagation par front d’onde
25
Grille régulière uniforme :
Propagation par front d’onde
• On continue jusqu’à ce que la grille soit pleine
• Les 0 correspondent aux cellules non accessibles
26
Grille régulière uniforme :
Propagation par front d’onde
La trajectoire consiste à partir du but et à choisir de façon vorace les cases les plus petites.
27
Grille régulière uniforme :
Propagation par front d’onde
search() : returnboolean { graph := {nodes}, {edges} ; fringe := {root} ;
visited := empty ;
return breadth-first-search(graph, fringe, visited);
}
breadth-first-search(graph, fringe, visited) returnboolean { breadth-first-search(graph, fringe, visited) returnboolean {
whilefringe notempty {
node := first element of fringe ;
ifnode is what we are searching for { return success ;
}
//do whatever you need to do to node here children := find children of node in graph;
add children not in visited to back of fringe ; add node to visited ;
remove node from fringe;
}
returnfailure;
}
28
Grille régulière uniforme
Point à considérer :
Si les cellules sont trop petites
On augmente le nombre de nœuds considéré durant l’exploration (temps de calcul).
Si les cellules sont trop grosses
Risque d’avoir des solutions de moindre qualité (moins d’options de
Risque d’avoir des solutions de moindre qualité (moins d’options de chemins).
Possibilité de ne pas trouver de chemin réalisable.
Choisir une taille de cellule empiriquement
En fonction de la taille du robot et des obstacles.
29
Grille non régulière
Découpage par des quadtrees
On divise l’espace en deux régions.
On répète pour chaque région jusqu’à ce qu’on sépare les obstacles des régions libres.
sépare les obstacles des régions libres.
Revient à créer un arbre binaire qui contient les différentes régions de notre espace de
configuration.
30
Grille non régulière - quadtrees
Space Representation Equivalent quadtree
31
Grille non régulière - quadtrees
Space Representation Equivalent quadtree
NW child
NE SW SE
32
Free node Gray node
Grille non régulière - quadtrees
Space Representation Equivalent quadtree
G
33
Obstacle Node
S(G)
Grille non régulière - quadtrees
Space Representation Equivalent quadtree
34
Grille non régulière - quadtrees
Space Representation Equivalent quadtree
35
Grille non régulière - quadtrees
Space Representation Equivalent quadtree
36
Complete quadtree
Grille non régulière - quadtrees
Planification de trajectoire
Trouver le chemin qui mène du point de départ au but.
. . .
En passant par le centre des régions libres.
37
. .
. .
. .
Graphe des visibilités
La carte est connue
Les obstacles sont des polygones
Utilise graphe G = (E,V) non-orienté comme représentation
Pas de grille !
Algorithme complet
Approprié pour monde 2D
38
Discrétisation : graphe de visibilité
Les sommets V qui sont mutuellement visibles sont connectés ensemble par une arête E.
39
Discrétisation : graphe de visibilité
Construction :
Balayer un rayon à partir de chaque sommet
Enregistrer les sommets qui ne sont pas obstrué par des polygones (c.-à-d. qui sont visibles)
Complexité : O(n3)
Complexité : O(n )
40
Implantation de l’algorithme en C++: voir la librarie VisiLibity
Planification : graphe de visibilité
Planification : recherche le chemin le plus court dans graphe G entre q
1et q
2.
Soit une exploration à coût uniforme ou A*.
41
Planification : graphe de visibilité
Trouve nécessairement la trajectoire la plus courte entre q1 et q2…
un résultat de la géométrie computationnelle
…mais avec possiblement des trajectoires semi- libres…
…mais avec possiblement des trajectoires semi- libres…
…et pour un robot de la taille d’un point.
42
Décomposition cellulaire verticale
Décomposer une carte 2D en trapèzes et triangles.
Pour chaque sommet Pi des obstacles:
Étend ligne verticale en haut et en bas, jusqu’à un obstacle
4 cas possibles:
4 cas possibles:
C1:(haut,bas)
C2:(haut),
C3:(bas),
C4:(aucun)
43
Décomposition cellulaire verticale
Étape 2:
place 1 point au milieu frontière entre cellules
44
Étape 3:
place 1 point au milieu de la cellules
Étape 4:
relie les centres aux points frontières
Décomposition cellulaire verticale
Chaque cellule est convexe
ce qui veut dire que dans une cellule, on peut
rejoindre n’importe quel autre point à l’intérieur, en ligne droite.
45
Décomposition cellulaire verticale
Planification :
recherche dans le graphe du chemin le plus court
Donne des
trajectoires qui sont en général loin des obstacles
46
Diagramme de Voronoï
Un polytope par point pi.
Pour un endroit quelconque dans un polytope i, le plus proche
voisin est pi.
p1
p2 p4
i
Les lignes sont à égales
distances entre les points pi voisins.
Décomposition de l’espace en polytopes convexes.
47
p3
Diagramme de Voronoï
Autre exemple
48
Diagramme de Voronoï généralisé
Obstacles sont des polygones.
Diagramme : configurations dans l’espace libre C
libreéquidistants des obstacles.
libre C
libreéquidistants des obstacles.
49
• Si le robot suit le
diagramme: distance
maximale des obstacles.
• Pas optimal en distance.
• Trop conservateur.
Diagramme de Voronoï généralisé
Generalized Voronoi Graph (GVG)
50
Diagramme de Voronoï généralisé
51
Diagramme de Voronoï généralisé
52
Diagramme de Voronoï généralisé
53
Diagramme Voronoï généralisé
54
Diagramme Voronoï généralisé
55
Ce dont je n’ai pas parlé...
Approche Bug
Déplacement qui s’inspire de celui des insectes.
SLAM (Simultaneous localisation and mapping)
mapping)
Déplacement lorsqu’un robot veut construire une carte d’un environnement inconnu
Méthodes probabilistes
Probabilistic Roadmaps
RRT-Connect
56
Points à considérer
On suit la trajectoire planifiée hors ligne…
En boucle ouverte
En boucle fermée (par la vision ou un capteur de proximité)
proximité)
Quel est le cycle de rétroaction? (100 ms, 1s, 10 s?)
Gérer l'acquisition d’information
Commander la saisie d'images
à intervalles fixes
lorsque requis
57
Conclusion
Plusieurs options disponibles pour structurer votre espace de navigation
Différents niveaux de complexité Prêter une attention particulière :
Prêter une attention particulière :
Aux trajectoires semi-libres;
Aux approches trop coûteuses en temps;
À replanifier votre itinéraire en cas de déviation du plan initial.
58