• Aucun résultat trouvé

Planification de trajectoires par construction d’une roadmap par échan-

4.2 Planification d’une trajectoire pour une entité mobile

4.2.2 Planification de trajectoires par construction d’une roadmap par échan-

Nous présentons les principaux algorithmes qui utilisent l’échantillonnage pour construire une roadmap. Nous renvoyons le lecteur vers [Elbanhawi and Simic, 2014] pour une présentation plus complète des différents algorithmes existants.

L’échantillonnage correspond à la première idée pour pallier la problématique du pas- sage d’un espace des configurations C discret à un espace des configurations C continu. En effet, il suffirait d’échantillonner l’espace des configurations C avec une grille ré-

gulière afin d’adapter les algorithmes de planification de chemins (Bellman-Ford-Moore [Bellman, 1958], Dijkstra [Dijkstra, 1959], A* [Hart et al., 1968], D* [Stentz, 1994]...) sur l’es- pace discret échantillonné.

Étant donné que l’espace des configurations sans obstacles C f ree n’est pas construit à l’avance, il est possible que la grille d’échantillonnage soit trop petite et qu’aucune solution ne soit trouvée. Une solution est d’augmenter la taille de la grille tant qu’une solution n’a pas été trouvée. Mais, si l’échantillonnage est trop important, bien que l’algorithme trouve théoriquement la solution, il met en pratique trop de temps pour que son utilisation soit intéressante.

Il est possible de calculer la taille minimale de la grille d’échantillonnage pour trouver une solution, mais ce calcul nécessite de connaître à l’avance l’espace des configurations sans obstacles C f ree, ce qui est une opération coûteuse en temps. Par conséquent, les algorithmes que nous présentons dans la suite construisent des échantillonnages qui ne sont pas basés sur des grilles.

4.2.2.1 Planification de trajectoires par construction d’une roadmap par échantillonnage itératif

Principe général des algorithmes. Les algorithmes par échantillonage itératif fonc- tionnent dans la grande majorité de la même façon, que nous résumons dans l’algorithme 4.1. Dans cet algorithme, la roadmap est considérée comme un graphe G(V, E), construit itérativement en ajoutant des configurations à son ensemble de noeud V (vertices) et en connectant les noeuds par des arrêtes souvent orientées qui représentent des trajectoires dans l’ensemble E (edges).

Cette construction se fait en prenant un échantillon, c’est-à-dire une configuration qi de

l’espace des configurations C, pour ensuite tester, le plus souvent par un algorithme de détection de collisions externe au système, si qi ∈ C f ree, et si c’est le cas tenter de connec-

ter cette configuration au reste du graphe. Ces algorithmes planifient en fait des parties de trajectoires entre des configurations temporaires de départ qtemp,initet d’arrivée qtemp,goal, et

utilisent ensuite ces parties de trajectoire pour planifier une trajectoire complète entre les véritables configurations de départ qinit et d’arrivée qgoal. Autrement dit, l’algorithme ne

construit pas l’espace des configurations sans obstacles C f ree, mais teste si chaque confi- guration échantillonnée et chaque trajectoire planifiée est sans collision, sans pour autant calculer tout l’espace (ce qui est considéré comme bien plus coûteux).

La roadmap ainsi construite est par la suite utilisée pour planifier les trajectoires. En géné- ral, cette planification est simple, et elle est la condition d’arrêt de beaucoup des algorithmes présentés ici.

La différence dans les algorithmes réside majoritairement dans le choix des configura- tions qtemp,goal et qtemp,init, c’est-à-dire dans les étapes 3 et 4 de l’algorithme 4.1, qui sont

parfois inversées.

Présentation des algorithmes. Les auteurs de [Overmars, 1992][Bohlin and Kavraki, 2000] présentent l’algorithme appelé (Lazy) Probabilistic RoadMap (PRM). Dans cet algorithme, le

4.2. Planification d’une trajectoire pour une entité mobile

Algorithme 4.1 :Échantillonnage itératif

1: Le graphe G est initialisé avec l’ensemble des noeuds V contenant les noeuds qinitet

qgoal et l’ensemble des arrêtes E vide

2: tant quePas de trajectoire trouvée entre qinit et qgoal faire

3: Choisir une configuration qtemp,goal dans C f ree (éventuellement en tirant

aléatoirement dans l’espace des configurations C tant que le tirage n’est pas déjà dans un obstacle), qui appartient ou n’appartient pas à V.

4: Choisir une configuration qtemp,initdans V.

5: Essayer de construire une trajectoire T entre qtemp,initet qtemp,goalcontenue dans C f ree.

6: siLa planification a réussi alors

6: Ajouter la configuration qtemp,goal à V et la trajectoire liant les deux configurations à

E. 7: fin si

8: fin tant que

tirage de la configuration qtemp,goal se fait de manière aléatoire. L’algorithme vérifie ensuite

si cette configuration est dans C f ree en vérifiant l’absence de collisions. Si la configuration

qtemp,goal est dans C f ree, il cherche la configuration qtemp,init ∈ V la plus proche et tente de

lier les deux configurations par une trajectoire T. Dans tous les cas, il ajoute la configuration

qtemp,goaldans V, et s’il réussit à planifier T, il place T liant qtemp,initet qtemp,goaldans E.

Plusieurs variantes du tirage aléatoire sont possibles :

1. tirer aléatoirement une configuration qtemp,goaltant que celle-ci n’est pas dans C f ree (tant

que celle-ci n’est pas en collision avec un obstacle),

2. tenter de déplacer la configuration qtemp,goaldans C f ree. Par exemple, dans une direction

aléatoire (utile quand l’espace contient beaucoup d’obstacles),

3. diriger le tirage aléatoire par les configurations déjà tirées (pour s’en éloigner, ou s’en rapprocher).

La méthode est étendue dans [Kavraki, 1994] [Kavraki et al., 1996], pour permettre plusieurs planifications de trajectoires. La méthode explore alors plus l’espace des configurations C que le juste nécessaire pour planifier une trajectoire entre les configurations qinit et qgoal

(PRM). De plus, elle permet aussi de reprendre l’exploration de l’espace des configurations C si celle-ci n’est pas suffisante. La méthode est étendue dans [Svestka and Overmars, 1995] pour planifier des trajectoires de plusieurs entités mobiles.

Les auteurs de [Hsu et al., 1997] présentent l’algorithme appelé Expensive Space Planner. L’idée de l’algorithme est de construire deux sous-graphes (SG1et SG2), en partant de qinitet

qgoal, et de tenter de joindre régulièrement ces sous-graphes. Focalisons-nous sur la construc-

tion d’un graphe (SGi) :

1. à chaque étape, l’algorithme choisit la configuration qtemp,init∈ SGiavec une probabilité

inversement proportionnelle au nombre de noeuds proches de la configuration qtemp,init

dans SGi

2. l’algorithme échantillonne ensuite le voisinage de la configuration qtemp,init, et sélec-

tionne la configuration qtemp,goalparmi cet échantillonnage, avec un probabilité inverse-

ment proportionnelle au nombre de nœuds dans son voisinage,

3. l’algorithme tente ensuite de connecter les deux configurations qtemp,initet qtemp,goal par

une trajectoire, et s’il réussit, ajoute la nouvelle configuration au graphe SGi.

Les auteurs de [LaValle, 1998] présentent l’algorithme appelé Rapidly exploring Ran- dom Tree (RRT). Comme pour PRM, l’algorithme RRT tire aléatoirement une configura- tion qtemp,goal ∈ C f ree, mais n’ajoute celle-ci que si un chemin n’est pas trouvé. D’autre

part, la configuration qgoal n’est pas ajoutée à l’initialisation ; l’algorithme tente régu-

lièrement de la lier avec l’une des configurations de son graphe G. Les auteurs de [Kuffner and LaValle, 2000] proposent d’explorer plusieurs arbres en même temps, et d’es- sayer de joindre ceux-ci régulièrement, comme pour les Expensive Space Planner.

Les auteurs de [Siméon et al., 2000] présentent un algorithme pour construire une Visi- bility Roadmap par échantillonnage. Une Visibility Roadmap est une représentation simplifiée de la topologie de l’espace des configurations qui s’inspire du principe simple et réel du point de vue. Ainsi, un noeud (une configuration) de la Visibility Roadmap est lié à une autre configuration s’il peut "voir" cette configuration. Dans cet algorithme, il existe deux sortes de configurations retenues par l’algorithme pour construire la roadmap :

— les Guards : ce sont les points de vue de l’algorithme. Lorsque l’algorithme se termine, l’ensemble des Guards, noté EGuards, doit normalement couvrir l’espace de configura-

tions sans obstacles C f ree,

— les Connections : ce sont des configurations qui lient des Guards entre elles. L’ensemble des Connections est noté EConnections.

L’algorithme tire de façon aléatoire une configuration qtemp,goal ∈ C f ree. Il tente ensuite

de lier la configuration qtemp,goal avec les configurations de EGuards. Si l’algorithme arrive à connecter la configuration qtemp,goalà une seule configuration de EGuards, il ajoute la configu-

ration qtemp,goal à EGuards. S’il arrive à connecter deux configurations de EGuards non connec-

tées par une configuration q ∈ EConnections, il ajoute la configuration qtemp,goal à EConnections.

Sinon il ne conserve pas la configuration qtemp,goal.

Les auteurs de [Mazer et al., 1998] présentent l’algorithme du fil d’Ariane. L’algorithme construit le graphe en explorant en priorité les configurations les plus éloignées d’un en- semble d’autres configurations déjà explorées. Pour sélectionner une configuration, ils uti- lisent un algorithme génétique.

4.2.2.2 Planification de trajectoires par construction d’une roadmap par échantillonnage non itératif

Une autre façon de procéder pour l’échantillonnage, est de considérer les configurations de départ qinitet d’arrivée qgoal, et de relier les deux par différentes trajectoires dans l’espace

des configurations C, pour ensuite tester si ces trajectoires sont dans l’espace des configura- tions sans obstacles C f ree comme le montre l’algorithme 4.2.

4.2. Planification d’une trajectoire pour une entité mobile

Algorithme 4.2 :Échantillonnage non itératif

1: Le graphe G est initialisé avec l’ensemble des noeuds V contenant les noeuds qinitet

qgoal et l’ensemble des arrêtes E vide

2: Construire un graphe G(V, E)sans considérer les collisions 3: tant queCondition d’arrêt non atteinte faire

4: Explorer le graphe G(V, E)en testant les arêtes pour vérifier les collisions 5: fin tant que

La condition d’arrêt dépend de l’objectif de l’algorithme. Si l’objectif est d’obtenir la meilleure solution, alors l’exploration sera exhaustive (pour prouver l’optimalité), sinon l’algorithme s’arrête lorsqu’il trouve une solution acceptable (dont le coût est suffisamment bas), ou encore dès qu’il trouve une solution.

Cette famille d’algorithmes est particulièrement représentée dans l’évitement de colli- sions dans le domaine aérien, puisqu’elle se prête à des preuves d’optimalité dans l’en- semble discret, et parce que le monde aérien possède relativement peu d’obstacles.