• Aucun résultat trouvé

Génération du graphe orienté : graphe complet

CHAPITRE 3 PLUS COURT CHEMIN CONTINU NON HOLONOME DANS

3.3 Résolution et Algorithme

3.3.1 Génération du graphe orienté : graphe complet

Suite à la modélisation définie dans la section 3.2, on obtient un graphe orienté . , l'ensemble des nœuds est constitué de trois types de nœuds suivants :

 les configurations initiale et cible de l'avion;

 les configurations correspondant aux sommets des obstacles (à chaque sommet physique on associe plusieurs nœuds, autant que de directions que l'on peut définir au niveau de ce dernier, voir Figure 15);

 les configurations correspondant à la discrétisation des circonférences des zones de danger définies par les radars (à chaque point physique correspondent plusieurs nœuds, autant que la discrétisation définie sur la direction .

Chaque nœud de est caractérisé par :

 : le couple des coordonnées du point physique lui correspondant sur le terrain;

 : la direction, obtenue en discrétisant l'intervalle ;

 : amplitude en radian désignant la zone obstacle adjacente à cette position, Figure 15 (ceci permet, lors de la discrétisation de la direction , de ne garder que les configurations réalisables, et lors du calcul d'un virage de déterminer si on touche ou non à l'obstacle, Figure 20).

est l'ensemble des arcs. Entre chaque paire de nœuds de , nous définissons deux arcs orientés, on évalue si chacun d'entre eux est réalisable ou non et si oui on l'ajoute à . Les arcs sont à double valence, longueur et risque. Ils sont définis par les propriétés suivantes :

 la longueur : elle est évaluée par le calcul des courbes de Dubins entre ses deux extrémités;

 le risque : il est calculé en intégrant la densité du risque sur la courbe de Dubins associée;

 la courbe : la suite des sous-chemins de Dubins permettant d'aller de l'origine vers la fin de l'arc. C'est une matrice 2 par 3 qui décrit les 3 sous- chemins constituant cette courbe, la première ligne étant le type du sous- chemin (R, L ou S) et la deuxième ligne, la longueur du sous-chemin.

Figure 22 : Les graphes associés au terrain de la Figure 10 (a : le graphe complet, 771 nœuds et 3987 arcs; b : le graphe incomplet, 81 nœuds et 502 arcs)

L'algorithme 1 décrit la procédure de création de ce graphe qui contient plusieurs phases d'élagage pour rendre celui-ci le plus concis possible en ne gardant que les configurations nécessaires. La Figure 22a montre un exemple de graphe orienté généré par l'algorithme 1 et avec une subdivision en six de la direction . Il contient 771 nœuds et 3987 arcs. L'élagage a permis d'éliminer une centaine de nœuds et réduire le nombre d'arcs (dans notre cas le nombre d’arcs est divisé par sept).

L'algorithme 1 est une implémentation du graphe de visibilité et du calcul adapté des courbes de Dubins. Il s'articule comme suit : Dans un premier temps un calcul du graphe de visibilité (ses sommets sont ceux des obstacles et ses arcs sont toute arrête reliant les sommets des obstacles sans traverser ces derniers.) nous permet de créer juste les nœuds nécessaires qui potentiellement seront des points intermédiaires dans la trajectoire de l'avion (Figure 6). Ensuite, une implémentation du calcul des courbes de Dubins intégrée avec : 1) l'algorithme de Hormann et Agathos (2001) pour éviter les obstacles pour les lignes directes et 2) un calcul d'angle solide, de champs de vision pour éviter les obstacles lors de virage. Finalement une fonction de densité de risque pour déterminer le risque associé à chaque arc.

Le graphe orienté obtenu à l'issue de l'algorithme 1 est nommé graphe complet, car il tient compte de la non-holonomie en discrétisant la direction . Toutes les trajectoires calculées sur ce graphe correspondent à des trajectoires non holonomes, qui tiennent compte de la cinématique de l'avion, ce qui est une bonne qualité. Cependant la qualité des résultats des calculs sur ce graphe dépend grandement de la discrétisation de la direction , qui plus elle est fine, plus elle accroît la taille du graphe considéré. Pour

minimiser la taille du graphe, nous avons considéré la relaxation de la contrainte cinématique ce qui donnera lieu à un nouveau graphe orienté de plus petite taille car la direction ne sera pas discrétisée. Nous nommerons ce graphe, graphe incomplet. Algorithme 1 : Génération du graphe complet orienté.

Génération du graphe de visibilité (modélisation des obstacles) 1- Création du nœud correspondant à la configuration initiale. 2- Création du nœud correspondant à la configuration finale.

3- Création des nœuds correspondant aux sommets des obstacles (modulo la discrétisation de la direction, chaque sommet d'obstacle génère plusieurs nœuds).

4- Élagage des nœuds dont la visite est impossible (Figure 15).

5- Création de deux arcs orientés entre chaque paire de nœuds créés jusqu'à présent.

6- Élagage des arcs non réalisables (touchent aux obstacles). Intégration des zones de danger

7- Création des nœuds correspondants aux zones de danger modulo les différentes directions possibles (discrétisation de la circonférence de la zone et de la direction).

8- Élagage des nœuds dont la visite est impossible.

9- Connexion des derniers nœuds entre eux et aux autres nœuds via de nouveaux arcs.

10- Élagage des arcs non réalisables.

Implémentation des courbes de Dubins et calcul de la longueur des arcs 11- Pour chacun des arcs retenus.

12- Calculer les six courbes de Dubins entre les deux configurations correspondant à ses extrémités.

13- Élagage des courbes non réalisables. 14- Si au moins une courbe est réalisable.

15- Déterminer la plus courte et la longueur de l'arc est celle de cette dernière

16- Sinon

17- Éliminer l'arc, il est non réalisable 18- Calcul du risque associé aux arcs retenus

3.3.2 Relaxation de la contrainte de non-holonomie : génération du