Tải bản đầy đủ (.pdf) (44 trang)

Planification de trajectoires pour engins agricoles cas des champs polygonaux non convexes

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (647.96 KB, 44 trang )

Laboratoire d’Analyse
et d’Achitecture
des Systèmes

Institut de la Francophonie
pour l’Informatique

RAPPORT DE STAGE DE FIN D’ETUDES

Sujet

Planification de trajectoires pour engins agricoles :
cas des champs polygonaux non convexes

Etudiant :

Responsables :

Tran Minh Tuan, IFI

Michel Taïx, LAAS
Philippe Souères, LAAS

Toulouse, avril - septembre 2004


Remerciements
Je tiens à remercier particulièrement Monsieur Malik Ghallab, directeur du Laboratoire
d’Analyse et d’Architecture des Systèmes (LAAS) du CNRS, de m’avoir accueilli au
sein de son établissement.
Je tiens à remercier sincèrement Monsieur Charles Durand, directeur de l’Institut de la


Francophonie pour l’Informatique (IFI), d’avoir préparé mon stage.
Je remercie aussi vivement Monsieur Raja Chatila, responsable du groupe de
Robotique et Intelligence Artificielle (RIA), qui m’a reçu au sein de son équipe.
Je tiens à exprimer toute ma reconnaissance à Michel Taïx et Philippe Souères,
enseignant-chercheur et chercheur du LAAS-CNRS qui m’ont bien encadré pendant
toute la durée de mon stage.
Enfin un grand merci à toutes les personnes du LAAS-CNRS et de l’IFI, notamment
les stagiaires de RIA qui m’ont porté leur amitié.

2


Résumé
Notre travail a été mené dans le cadre d’une collaboration entre Renault Agriculture et
le LAAS-CNRS visant à développer des algorithmes de navigation autonome pour
engins agricoles sur la base de données GPS.
Dans ce rapport, nous proposons une méthode de planification de trajectoire pour
engins agricoles, en considérant plus particulièrement le cas de champs polygonaux
non convexes sans obstacles. Le processus de traitement consiste d’abord à découper
automatiquement un champ polygonal non convexe en plusieurs sous-régions
convexes puis à rechercher une stratégie optimale de déplacement permettant de
travailler les différentes régions. Sur cette base, l’algorithme détermine ensuite la
trajectoire de recouvrement complète à partir des différentes trajectoires locales.
Nous proposons deux méthodes de découpage automatique basées sur la notion de
direction de travail. La méthode complète, très coûteuse en temps de calcul, peut être
couplée à une méthode heuristique qui permet de déterminer une solution sousoptimale de bonne qualité pouvant être réalisée en un temps beaucoup plus court.
L’analyse d’un grand nombre de résultats permet d’illustrer notre raisonnement et de
valider notre approche.
Mots-clefs : Planification de trajectoires, couverture de surface, décomposition en
cellules convexes, chemin de type Hamiltonien (H-like), Robotique agricole.


3


Abstract
Our work has been done in the context of a collaboration between Renault Agriculture
and the LAAS-CNRS which aims at developing navigation strategies for agricultural
machines on the base of GPS data.
We propose a trajectory planning algorithm for field covering. In particular, the case of
non convex polygonal fields without obstacles is considered. The first step of the
algorithm consists in cutting the field into convex cells. Then, a sequencing strategy is
proposed to cover the successive regions. Finally, a complete trajectory is synthesized
on the basis of the local ones.
We present two methods of automatic decomposition based on the notion of working
direction. This approach which is high time-consuming can be associated to a heuristic
method which allows to determine good quality suboptimal solutions in much shorter
time. The description and the analysis of a large number of simulation results allow to
illustrate the reasoning and validate the approach.
Keywords: Trajectory planning, surface coverage, convex cell decomposition,
Hamiltonian graph (H-like), agricultural robotics.
.

4


Table des matières
Remerciements .............................................................................................................. 2
Résumé ........................................................................................................................... 3
Abstract.......................................................................................................................... 4
Table des matières......................................................................................................... 5

Liste des figures............................................................................................................. 6
Liste des tableaux.......................................................................................................... 7
Chapitre 1. Introduction .............................................................................................. 8
1.1. Contexte du travail............................................................................................... 8
1.2. Définitions............................................................................................................ 9
1.3. Problématique .................................................................................................... 11
Chapitre 2. Résultats antérieurs............................................................................... 12
2.1. Publications........................................................................................................ 12
2.2. Travail de Sébastien Fabre................................................................................. 12
2.3. Travail d’Hélène Frayssinet............................................................................... 13
Chapitre 3. Champs polygonaux convexes ............................................................... 14
3.1. Direction de travail et côtés d’un champ convexe polygonal ............................ 14
3.2. Détermination de la direction de travail optimale.............................................. 15
Chapitre 4. Champs polygonaux non convexes........................................................ 17
4.1. Différents types de coupe................................................................................... 17
4.2. Recherche exhaustive de découpage optimal .................................................... 18
4.3. Complexité de l’algorithme exhaustif................................................................ 18
4.4. Méthode heuristique........................................................................................... 19
4.5. Enchaînement entre sous-régions ...................................................................... 20
4.6. Trajectoire complète .......................................................................................... 23
4.7. Fusion de régions ............................................................................................... 25
Chapitre 5. Simulation................................................................................................ 26
5.1. Programme ......................................................................................................... 26
5.2. Environnement et données de test...................................................................... 28
5.3. Résultats principaux........................................................................................... 28
Chapitre 6. Conclusion ............................................................................................... 40
Annexe 1 : Algorithme exhaustif ............................................................................... 41
Annexe 2 : Algorithme heuristique ........................................................................... 42
Annexe 3 : Algorithme de recherche de chemin H-like........................................... 43
Références.................................................................................................................... 44


5


Liste des figures
Figure 1.1. Système de contrôle de tracteur à base de GPS ........................................... 8
Figure 1.2. Champ, direction de travail et zones.......................................................... 10
Figure 1.3. Champ concave simple ............................................................................... 10
Figure 3.1. Trois cas de touche..................................................................................... 14
Figure 3.2. Direction de travail optimale ..................................................................... 16
Figure 4.1. Des coupes dans un champ non convexe.................................................... 17
Figure 4.2. Les deux pires cas....................................................................................... 19
Figure 4.3. Méthode heuristique ................................................................................... 20
Figure 4.4. Graphe représentatif des régions ............................................................... 20
Figure 4.5. Quatre cas dans la recherche de chemin H-like ........................................ 22
Figure 4.6. Chemin H-like optimal ............................................................................... 22
Figure 4.7. Points topologiques .................................................................................... 23
Figure 4.8. Trajectoire dans un champ convexe ........................................................... 24
Figure 4.9. Passage entre deux régions ........................................................................ 25
Figure 4.10. Fusion des régions.................................................................................... 25
Figure 5.1. Interface Homme-Machine du programme ................................................ 27

6


Liste des tableaux
Tableau 4.1. Evaluation de l’algorithme exhaustif....................................................... 19
Tableau 5.1. Résultats sur les champs simples ............................................................. 30
Tableau 5.2. Résultats sur les champs normaux ........................................................... 35
Tableau 5.3. Résultats sur les champs complexes......................................................... 36


7


Chapitre 1. Introduction
1.1. Contexte du travail
RENAULT Agriculture () est une entreprise qui
fabrique des tracteurs depuis 1918. Grâce au progrès des systèmes de localisation par
satellites basés sur les données GPS (Global Positionning System), il est possible
d’asservir automatiquement le mouvement des véhicules agricoles le long de
trajectoires de référence. A cette fin, il est nécessaire de doter les tracteurs de
calculateurs capables de planifier une trajectoire dans un champ et d’en assurer
l’exécution. Le développement de tels systèmes permettra de soulager l’agriculteur de
la tâche pénible de suivi de trace. Il pourra alors porter toute son attention sur la
supervision du travail devant être réalisé.
En principe, un système de contrôle de tracteur à base de GPS est composé des 4 unités
suivantes [3,4,10] :
-

Le capteur: Il délivre des informations en temps réel sur la base de données
GPS. Sa haute précision, selon les trois dimensions (σ < 2 cm), et sa faible
latence (tlatence < 0.2 s) permettent son utilisation pour la commande.

-

Le tracteur à contrôler : Il est nécessaire de disposer d’un système de
commande électro-hydraulique. Il peut être dirigé soit par le conducteur soit par
l’ordinateur de bord.

-


Le contrôleur : Il est implémenté sur l’ordinateur embarqué. Le système est
capable de suivre des traces courbes ou droites avec une précision inférieure à
10 cm.

-

Le planificateur de trajectoire : Il calcule la trajectoire de référence globale
permettant de réaliser la tâche agricole souhaitée.

Chemin de
référence

Règles de
contrôle

erreur
angle de conduite

GPS

Figure 1.1. Système de contrôle de tracteur à base de GPS
Le développement des trois premières unités a fait l’objet d’autres projets de
recherche. Le travail considéré ici concerne l’élaboration d’un planificateur de
trajectoires. Comme ce problème à déjà été abordé précédemment au LAAS-CNRS,
(voir chapitre 2), nous nous sommes concentrés, dans le cadre de ce stage, sur le
problème de planification de trajectoires dans des champs non convexes. Plus
8



précisément, l’objet du stage était d’élaborer une méthode permettant de découper de
manière pertinente un champ polygonal non convexe en sous-régions convexes, puis
d’enchaîner de manière optimale le recouvrement ce chacune de ces régions afin de
minimiser le coût global de la trajectoire.
Le stage s’est déroulé au sein du groupe RIA (Robotique et Intelligence Artificielle),
du LAAS-CNRS, à Toulouse sur une durée de cinq mois.

1.2. Définitions
Comme nous venons de l’expliquer, l’objectif recherché est de parcourir un champ
pour effectuer un type de travail agricole tel que : le labour, l’épandage, ou la
moisson, en minimisant un critère de coût qui sera défini plus loin. A ce stade, il est
nécessaire de définir plus précisément un ensemble de notions relatives au champ et au
véhicule.
Le champ
Le champ est un terrain plan sur lequel on peut effectuer un ensemble de travaux
agricoles. Il peut être de forme plus ou moins complexe, convexe ou non, et à bords
droits ou courbes.
Pour travailler un champ convexe, on choisit une direction de travail. Le travail sera
alors effectué en suivant des traces parallèles à cette direction. Cette façon de travailler
est généralement celle qui est traditionnellement employée par les agriculteurs. On
définit ainsi :
-

La trace : Segment de travail entre deux extrémités du champ.

-

La direction de travail : direction destinée à guider les traces parallèles du
tracteur.


-

La zone de travail : La zone dans laquelle le tracteur effectue son travail en
exécutant des traces rectilignes et parallèles à la direction de travail.

-

La zone de fourrière : La zone dans laquelle le tracteur exécute des demi-tours
ou des manœuvres. La largeur de cette zone dépend des caractéristiques du
tracteur ainsi que de l’outil. La zone de fourrière doit également être travaillée,
mais l’ordre de travail n’est pas toujours le même. Par exemple, pour le labour,
elle n’est travaillée qu’après que la zone de travail ait été travaillée. Par contre,
lors de la moisson, cet ordre est inversé. La zone de fourrière peut être sous
forme d’un U, d’un O, ou éventuellement de deux I s’il y a 2 côtés du champ
parallèles à la direction de travail. L’illustration ci-dessous montre une zone de
fourrière de type U.

-

La zone d’entrée : c’est zone où le tracteur avec son outil entre dans le champ.

-

La zone de sortie : c’est la zone où le tracteur sort du champ.

9


zone d’entrée
zone de travail

zone de fourrière
direction de travail

trace
zone de sortie
Figure 1.2. Champ, direction de travail et zones
Dans le cas des champs non convexes, cependant, le suivi d’une seule direction de
travail peut induire un nombre manœuvres très élevé et donc un effort et un temps
d’exécution plus grands. C’est pourquoi il est nécessaire de réaliser un découpage
automatique avant de travailler le champ. Par exemple, le champ représenté à la figure
suivante peut être découpé en deux sous-champs, chacun ayant sa propre direction de
travail.

R1

R2
Figure 1.3. Champ concave simple
Le tracteur
Chaque tracteur déplace un outil de travail. La largeur de l’outil est déterminée en
fonction du type de travail. Par exemple, la taille moyenne d’un outil utilisé pour le
labour est de 40 cm à 8 mètres, celle d’un outil en épandage de 12 à 30 mètres et celle
de l’outil de moisson de 4 à 7 mètres. Les paramètres pratiques du tracteur reliés à
chaque type de travail peuvent être retrouvés dans [11].
En réalité, le mouvement du tracteur est limité par les contraintes non holonomes de
roulement sans glissement des roues sur le sol. Ses roues avant sont également
soumises à une contrainte de giration qui à pour effet de limiter le rayon de braquage
lors des manœuvres. Une rotation sur place de 180o est par exemple impossible.

10



1.3. Problématique
La problématique générale est définie à partir des données suivantes:
Données en entrée :
Un champ à couvrir qui peut être de n’importe quelle forme.
Un ou plusieurs obstacles fixes éventuellement présents dans le champ.
Un engin devant exécuter un type de tâche donné.
Une zone d’entrée et une zone de sortie pour l’engin.
Données en sortie :
Une trajectoire pour l’engin. La meilleure trajectoire est celle qui assure le
recouvrement complet du champ tout en minimisant un critère de coût
directement proportionnel au nombre de demi-tours, à la surface des zones de
fourrière, et à l’étendue du chevauchement entre traces différentes. Notons que
ces différents paramètres définissant le coût peuvent être pondérés
différemment au besoin. D’autres critères liés aux contraintes logistiques
peuvent être considérés tels que la nécessité de ressortir du champ pour faire le
plein de carburant, de produits de traitement, ou de semis.
Trouver une solution exacte pour tel problème général d’optimisation est en général
très complexe. Dans le cadre de ce stage, notre objectif est de développer un
algorithme permettant de trouver une solution dans le cas des champs non convexes,
sans obstacles. Nous avons considéré le cas d’une tâche de type labour/semis dans
laquelle la zone de travail est travaillée avant la zone de fourrière. Néanmoins,
l’extension de notre résultat à d’autres types de tâches peut être obtenue facilement.

11


Chapitre 2. Résultats antérieurs
2.1. Publications
Le problème de planification occupe une place centrale en robotique et un grand

nombre de publications lui ont été sont consacrées. Cependant, seul un petit nombre
d’entre elles étudient le problème de recouvrement par des mouvements de type backforth (avancer-reculer) selon une direction de travail fixée, et prenant en compte
l’existence d’une zone de fourrière devant également être travaillée.
Dans [7], un système réel de contrôle de tracteur, à partir de données capteurs, est
présenté pour l’exécution automatique de tâches de moisson. Le tracteur est doté de
deux capteurs ; la vision est utilisée pour percevoir l’environnement alors que le GPS
est utilisé directement dans la commande. Etant donnée la géométrie du champ, le
système construit d’abord un plan de couverture puis l’exécute en suivant des traces
calculées. La vision est utilisée pour détecter les obstacles tandis que le GPS sert à
guider le tracteur. Bien que système se montre puissant, son planificateur n’est pas
parfait, le recours à la vision est indispensable (pour éviter des obstacles). Cette
méthode ne permet pas de réaliser le travail de la zone fourrière de manière
automatique. De plus, les exemples de champs considérés sont assez simples, ils sont
presque carrés.
Dans [1] les auteurs décrivent une méthode de décomposition de terrain avec obstacles
en cellules. Cette méthode est intéressante même si elle ne considère pas la zone de
fourrière et ne considère pas la minimisation du nombre de manœuvres. La direction
de travail dans chaque cellule n’est pas définie.
Un autre ouvrage concernant la décomposition de terrain en cellules est [2]. La
méthode que l’auteur y présente consiste d’abord à créer des régions monotones en
décalant les côtés du terrain et les obstacles. Ensuite on essaie de combiner des sousrégions et on calcule le total des altitudes de chaque combinaison. La meilleure
décomposition est celle ayant le total des altitudes le plus petit. Cette approche contient
des idées intéressantes mais son efficacité n’est pas vraiment convaincante. De plus la
formule de calcul d’altitude semble complexe, et l’auteur ne présente pas une
planification de trajectoire complète.
En bref, aucune contribution existante ne permet d’apporter une solution à notre
problème. Toutefois les méthodes de décomposition proposées peuvent être source
d’inspiration pour notre problème de décomposition de champ.
Dans la suite, nous résumons les contributions des deux précédents stagiaires qui ont
travaillé sur ce sujet au LAAS-CNRS.


2.2. Travail de Sébastien Fabre
Ce premier travail réalisé dans l’équipe sur la planification de trajectoire pour engins
agricoles [3,11] avait pour objectif de d’apporter une première réponse au problème
12


simplifié. Sur la base des premiers objectifs de RENAULT Agriculture, Sébastien a en
premier lieu examiné le problème de couverture. Il a introduit des relations
paramétriques sur les différents types de travail agricole, les caractéristiques de
l’engin, la cinématique du tracteur, et la formule de calcul de la zone de fourrière.En
second lieu, il a proposé une méthode de couverture de surface dans un champ sans
obstacles. Cette méthode s’appuie sur l'algorithme de recherche d’un chemin
hamiltonien dans un graphe constitué de points topologiques qui représentent les
extrémités des traces. Comme l’algorithme est NP-complet, des heuristiques sont aussi
proposées.
Au prix du temps d’exécution, le résultat obtenu par la méthode de Sébastien est
optimal sur des terrains simples. Par contre, sur les terrains plus complexes (non
convexes), elle devient aberrante. L’algorithme ne donne de bons résultats que si on
fait manuellement un découpage de terrain au préalable.

2.3. Travail d’Hélène Frayssinet
Sa contribution [4,12] consiste d’une part à proposer un algorithme simple pour la
planification de couverture dans un champ convexe. Cet algorithme suppose que la
direction de travail soit à priori déterminée. D’autre part, elle a résolu le cas de champs
contenant des obstacles, en classifiant les obstacles en deux catégories. Sa méthode
propose de contourner les petits obstacles alors qu’un découpage du terrain en cellules
est réalisé pour traiter le cas des grands obstacles. Le cas des champs non convexes, ou
à bords courbes, n’a été que sommairement abordé.
Le résultat d’Hélène est applicable, surtout pour des champs convexes avec obstacles.

Notons que l’exigence de la direction de travail à l’avance semble gênante.
Sur la base de ces différentes contributions, rappelons que notre travail a pour but de
rechercher un algorithme de découpage automatique d’un champ non convexe en souschamps, en déterminant la direction de travail dans chaque sous-champ. À partir de ce
découpage, une trajectoire complète sera construite.

13


Chapitre 3. Champs polygonaux convexes
Rappelons que la trajectoire complète doit assurer le recouvrement total du champ. Le
choix d’une direction de travail induit un nombre de traces et par suite un nombre de
demi-tours aux extrémités des traces. On souhaite minimiser le nombre de manœuvres
autant que possible parce qu’elles ralentissent le travail, nécessitent plus d’énergie, et
demandent plus d’attention...
Pour un champ polygonal convexe, nous appellerons donc direction de travail
optimale, la direction selon laquelle le nombre de demi-tours est minimisé. Pour cela il
est nécessaire d’établir certains résultats.

3.1. Direction de travail et côtés d’un champ convexe polygonal
Dans un champ polygonal convexe, la direction de travail optimale est toujours
parallèle à l’un des côtés du champ. Autrement dit, il suffit d’effectuer un test sur les
directions parallèles à chacun des côtés du champ pour déterminer la direction de
travail optimale.
Démonstration : Si la direction de travail optimale d est parallèle à l’un des côtés du
champ, la démonstration est alors triviale. Sinon, en effectuant le balayage d’une droite
de direction d sur toute la surface du champ on définit les points de contact extrèmes
p1 et p2 de la droite avec le champ. Cette construction est illustrée par les trois figures
ci-dessous qui représentent les trois situations qui peuvent se présenter :
d


d

L

c1
L

c1
p2

p1
c2

c4

c3

M

c3
p1

d

d

d

d


c1

p2
c4

p1

c3
M

c2

p2

L
c2
Cas 1

Cas 2

c4
Cas 3

Figure 3.1. Trois cas de touche
Dans chacun de ces trois cas, le premier sommet p1 est l’extrémité commune entre les
côtés c1 et c2, et le deuxième sommet p2 est l’extrémité commune entre c3 et c4. Les
autres sommets, situés d’une part entre c1 et c3 et d’autre part entre c2 et c4, n’ont pas
été représentés :

14



Cas 1 : Entre c1 et c4, choisissons le côté faisant le plus petit angle avec la direction d
Dans cet exemple il s’agit de c1. Considérons alors le segment L issu de p2 et reliant
perpendiculairement c1. Dans cette construction il apparaît que L est plus petit que la
longueur d du segment [p1,p2]. Cela résulte du fait que, dans un triangle rectangle,
l’hypothénuse.est toujours le côté le plus long.
En fait, une construction similaire peut être obtenue en considérant les côtés c2 et c3
au lieu de c1 et c4.
Cas 2 : On choisit, entre c1 et c4, le côté faisant le plus petit angle avec la direction d
Puis, on construit le segment L issu de p2 de la même façon que pour le premier cas. Il
apparaît alors que L est moins long que le segment M, perpendiculaire à d et reliant p2
au côté c1. L est donc plus court que la bande comprise entre les deux droites de
direction d passant respectivement par p1 et p2.
Cas 3 : Similaire au cas 2. On effectue la même construction en raisonnant à partir des
côtés c2 et c3 au lieu de c1 et c4 pour obtenir un segment L de longueur plus courte M
et par suite que la largeur de la bande comprise entre les deux droites de direction d
passant respectivement par p1 et p2.
En résumé, nous avons démontré qu’il est toujours possible de minimiser le nombre
de traces et donc de manœuvres en considérant une direction de travail parallèle à l’un
des côtés du champ.
Remarque : Un autre avantage du fait de travailler parallèlement à un côté est que cela
permet de déterminer des zones de fourrière moins grandes. De plus, ce mode de
travail est conforme aux habitudes des agriculteurs.

3.2. Détermination de la direction de travail optimale
A partir de la démonstration que nous venons d’établir, l’algorithme de calcul de la
direction de travail optimale est évident. Elle correspond au côté parallèlement auquel
il est possible de construire une bande de largeur minimale englobant le champ. En
d’autres termes :

largeur_plus_petite =

min

{ max{ distance(ci, pk) }}

ci ∈ côtés pk∈ sommets
Voici un exemple :

15


4
3

L34
L12
1

L41

2
L23

Figure 3.2. Direction de travail optimale
Dans la figure au-dessus, la direction de travail optimale correspond au côté 1-2, parce
que la distance maximale entre ce côté et les différents sommets est L12, qui est la plus
petite parmi L12, L23, L34, L41.

16



Chapitre 4. Champs polygonaux non convexes
Afin de planifier le déplacement du tracteur dans un champ polygonal non convexe,
nous présentons d’abord une méthode de découpage du champ en sous-champs
convexes, puis nous décrivons la stratégie de séquencement du travail entre les
différents sous-champs. Nous expliquons ensuite comment la trajectoire globale est
construite à partir des trajectoires locales.

4.1. Différents types de coupe
Comme nous l’avons précédemment montré, dans un champ polygonal convexe la
direction de travail optimale est toujours parallèle à l’un des côtés du champ. Notre
idée de découpage de champ polygonal non convexe se base sur le fait que l’on veut
conserver les côtés originaux du champ. Pour le faire, nous allons découper le champ
parallèlement à ses côtés. Chaque sous-champ ainsi obtenu aura donc un certain côté
du champ comme direction de travail. En effet, le découpage est uniquement réalisé à
la position des sommets de concavité. Il n’est en effet pas nécessaire de découper une
parcelle qui est déjà convexe. Pour découper un champ, nous considérons deux types
de coupes :
-

La coupe directe est obtenue en prolongeant le côté contenant un sommet de
concavité.

-

La coupe décalée est obtenue en décalant parallèlement le côté dont les
extrémités sont des sommets de convexité jusqu’à ce que l’on touche un
sommet de concavité. Alors obtiendra une coupe décalée.
8

9

6

5

7
u1
u6

4

u2
u3

u4

3

u5
2

1
Figure 4.1. Des coupes dans un champ non convexe
Dans la figure au-dessus, u2, u4 et u6 sont coupes directes (prolongées par les côtés 67, 5-4 et 8-7) tandis que u1, u3 et u5 sont coupes décalées (décalées respectivement à
partir des côtés 8-9, 1-2 et 2-3). Notons qu’à partir du côté 1-2 il est possible de
générer deux coupes, l’une reliant le point 4 au côté 9-1 et l’autre reliant le point 4 au
côté 2-3. On peut en choisir une car la deuxième va être obtenue après que la première
17



soit effectuée. D’ailleurs, chaque coupe peut être représentée par un couple (ipc, vec)
dont le premier élément désigne le sommet de concavité touché et le second désigne le
vecteur de découpage.

4.2. Recherche exhaustive de découpage optimal
Dans la construction des coupes, chaque côté du champ va engendrer une coupe
correspondante, de manière soit directe soit décalée. Le nombre total de coupes est
donc égal au nombre de côtés. Afin d’éviter les confusions, on appelle désormais
découpage de champ un ensemble de sous-régions obtenu à partir d’un ensemble de
coupes. Ainsi, pour calculer le découpage optimal, on génère tous les découpages
possibles et on compare leur coût. Ici, le coût d’un découpage est défini par la somme
des coûts de chacun des sous-champs obtenus. Le coût d’un sous-champ (région
convexe) étant déterminé par le nombre de manœuvres que l’on doit effectuer pour
travailler cette région selon la direction de travail optimale.
Nous ne nous intéressons qu’au nombre de manœuvres parce que dans un champ
convexe, quelle que soit la direction de travail, si on le parcourt entièrement, alors la
somme des longueurs des traces parcourues reste quasiment la même. Ce qui diffère
selon la direction de travail est le nombre de manœuvres effectuées. Plus ce chiffre est
grand, plus la tâche sera coûteuse.
Coût de région convexe Ri = nombre de manœuvres selon la direction de travail
optimale dans Ri
Coût de découpage = ∑ (coût Ri) , Ri ∈ découpage
En principe, le processus d’exploration des découpages se fait de manière récursive.
D’abord, on effectue une première coupe quelconque sur le champ. Le sous-champ
convexe obtenu à l’issue de cette coupe sera retenu. Par contre, on continue à découper
la partie non convexe restante jusqu’à ce qu’on obtienne une partition du champ initial
en sous-champs convexes. Le découpage à chaque étape dans les régions non convexes
restantes s’effectue de la même façon que lors de la première étape dans le champ
original : on calcule les coupes, on en choisit une aléatoirement et on découpe le

champ. Comme il y a plusieurs choix possibles à chaque étape, il existe un grand
nombre de découpages possibles pour le champ. Le meilleur est celui qui possède le
coût minimal.
L’algorithme exhaustif de calcul de découpage optimal est détaillé en pseudo-code
dans l’annexe 1.

4.3. Complexité de l’algorithme exhaustif
La complexité de l’algorithme présenté au-dessus dépend fortement de la forme du
champ. Si N et K représentent respectivement le nombre de côtés et le nombre de
sommets de concavité dans un champ, on peut décrire les pires cas de la manière
suivante :

18


-

Cas 1 : Un premier découpage produit deux régions dont l’une est triangulaire
et l’autre a N-1 côtés.

-

Cas 2 : Il faut ‘briser’ tout sommet concave mais malheureusement il est
probable que plusieurs découpages soient nécessaires.

Par conséquent, dans le pire cas, le nombre total de découpages peut atteindre
N(N-1)...(N-K-m+1), c’est à dire de l’ordre de NK+m (m est un entier dépendant de la
forme du champ mais K+m ne dépasse pas N).

R1

R1
R2

R2

Figure 4.2. Les deux pires cas
Cette évaluation est hautement majorée car le pire 1 et le pire 2 ne se passent pas
souvent à la fois. Comme nous venons de le voir, la croissance du nombre découpages
est quand même exponentielle en N et K.
Champ

N

K

Nombre de découpages

Simple

10

1

dizaines - centaines

Normal

12

3


milles – cent milles

Complexe

13

4

cents milles – million

Imaginaire

21

7

billions

Tableau 4.1. Evaluation de l’algorithme exhaustif
En conclusion, l’algorithme exhaustif apporte le résultat optimal mais il se montre très
couteaux dans le cas de champs complexes. C’est pourquoi nous proposons une
méthode heuristique dans la partie qui suit.

4.4. Méthode heuristique
Notre heuristique consiste à sélectionner la meilleure coupe à chaque étape de
découpage, au lieu d’explorer toutes les coupes possibles. La coupe est qualifiée
meilleure si elle donne l’efficacité la plus élevée. Ici, l’efficacité est définie par :
Efficacité = (coût de travail dans le (les) sous-champ (s) convexe (s)) /(superficie du
(des) sous-champ (s) convexe)

C’est-à-dire qu’à la première étape, on choisit la coupe correspondante à la meilleure
efficacité et on découpe le champ selon cette coupe. Ensuite, on applique la même
19


tactique à la partie de champ qui reste, et ainsi de suite de manière itérative.
Finalement, on obtient un découpage de champ dont le coût est localement optimal.
L’algorithme heuristique est présenté en pseudo-code dans l’annexe 2.

...
Première coupe
localement optimale

...
...

Deuxième coupe
localement optimale

Figure 4.3. Méthode heuristique
Nous allons présenter les résultats d’expérimentation dans les parties suivantes.

4.5. Enchaînement entre sous-régions
Après avoir découpé le champ en utilisant la méthode soit exhaustive, soit
l’heuristique, il faut déterminer le chemin complet allant de la région contenant
l’entrée à la région contenant la sortie. Tout d’abord, nous modélisons les régions
découpées par un graphe représentatif. Les nœuds du graphe correspondent aux
régions, une arête du nœud A au B existe s’il y a un segment commun entre la région
A et B. Il faut noter que le graphe représentatif est susceptible de comporter un cycle.


Figure 4.4. Graphe représentatif des régions
Le problème est de rechercher un chemin depuis nœud rE (région contenant l’entrée)
jusqu’au nœud rS (région contenant la sortie) qui parcoure tous les nœuds (tout nœud
doit être travaillé tôt ou tard), un nœud peut être visité une ou plusieurs fois, une arête
peut l’être aussi.
20


Comme ce problème ne ressemble guère à la recherche de chemin hamiltonien dans un
graphe (ce n’est pas souvent qu’un chemin hamiltonien existe dans notre graphe), nous
baptisons le chemin à rechercher chemin H-like – Hamiltonien-like.
Evidemment, on veut chercher un chemin H-like qui est optimal, c’est-à-dire celui qui
minimise le nombre de passages entre régions ainsi que le retravail sur chaque région.
Nous allons démontrer théoriquement le fait suivant : Etant donné un graphe G
construit à partir des régions. Il existe toujours un chemin H-like dans G qui traverse
chaque couple de régions adjacentes 2 fois au maximum.
Démonstration se fait par récurrence :
− Pour un graphe G2 de 2 nœuds, on explore tous les cas possibles et on constatera
que la confirmation est correcte :

A

B

Si A ≡ rE et B ≡ rS alors on peut passer simplement de A à B (une seule fois).
Si A ≡ rE et à la fois A ≡ rS alors on peut passer simplement de A à B (une première
fois) et puis retourne à A (deuxième fois).
− Supposons que la propriété est vérifiée pour tout graphe GN ayant N nœuds. Il faut
en déduire que la propriété est vraie pour tout graphe GN+1 de N+1 nœuds.
Dans un graphe GN+1, on extrait un nœud quelconque. Quatre cas sont possibles :

Cas 1 : Le nœud extrait est rE mais aussi rS (l’entrée et la sortie sont dans la même
région) : Comme le graphe est connexe, il existe un nœud rX relié à rE. Dans le
graphe de N nœuds contenant rX, il y a déjà un chemin H-like C allant de rX à rX
(hypothèse). Alors, C’ = {C, rS} est un chemin H-like dans GN+ 1.
Cas 2 : Le nœud extrait est rS. Supposons que chemin C allant de rE à rX est un
chemin H-like dans GN, alors C’ = {C, rS} est chemin H-like dans GN+ 1.
Cas 3 : Le nœud extrait est rE. Supposons que chemin C allant de rX à rS est un
chemin H-like dans GN, alors C’ = {rE, C} est chemin H-like dans GN+ 1.
Cas 4 : Le nœud extrait rY n’est ni rS ni rE. Supposons que chemin C allant de rE à
rS est H-like dans GN. Ce chemin comprend rX qui est le nœud adjacent avec rY.
Comme C peut être écrit par {ri1, ri2,..., rX, rik, rik+1..., rm}, alors C’ = {ri1, ri2,..., rX,
rY, rX, rik, rik+1..., rm} est chemin H-like dans GN+ 1.
Dans tous les cas, on a démontré que dans le graphe représentatif d’un découpage, il
existe toujours au moins un chemin entre sous-régions qui répond aux contraintes
spécifiées.

21


rE
rX

rX

rE = rS

rS

Cas 1


Cas 2

rS

rS
rX

rE
rX

rE

rY

Cas 3

Cas 4

Figure 4.5. Quatre cas dans la recherche de chemin H-like
Grâce à cette confirmation, l’algorithme de recherche de chemin H-like devient
évident. Cependant, comme les nœuds du graphe sont travaillés tôt ou tard, il faut
examiner 2 cas de visite sur un nœud : soit la région correspondant à ce nœud est
travaillée, soit elle n’est pas travaillée. Il est en effet nécessaire de considérer le cas où
une région est visitée sans être travaillée pour éviter le problème de recouvrement. Le
chemin optimal est celui qui minimise le nombre de passages.
Par exemple, le chemin H-like optimal dans le graphe suivant contient :
1. Travailler rE et passer à r2

r4 = rS


2. Passer à r3
3. Travailler r3 et passer à r2
4. Travailler r2 et passer à rS

r1 = rE
r2

5. Travailler rS

r3
Figure 4.6. Chemin H-like optimal

22


En pratique, on peut ajouter des heuristiques pour rendre l’algorithme plus performant.
Par exemple on ne considère pas un chemin contenant un cycle de passages A1 A2 A3...
A1 dans lequel aucun travail n’est effectué.
Le détail de l’algorithme est présenté en pseudo-code dans l’annexe 3.

4.6. Trajectoire complète
Notre but final est de construire une trajectoire dans un champ polygonal non convexe
spécifié. En effet, cette tâche est achevée en combinant les résultats précédents.
Précisément, à partir du chemin H-like optimal, on construit au fur et à mesure des
trajectoires locales pour obtenir une trajectoire globale.
Pour construire une trajectoire locale (càd. dans une région convexe), on détermine
d’abord les points topologiques qui sont des extrémités de chaque trace dans la zone de
travail ainsi que dans la zone de fourrière.
Ensuite, depuis le point d’entrée du champ, on passe au point le plus proche parmi les
points topologiques correspondants à la première et à la dernière trace dans la zone de

travail. Puis on travaille en suivant les traces dans la zone de travail. Lorsque la zone
de travail est entièrement travaillée, on passe au point topologique le plus proche dans
la zone de fourrière et on effectue le travail dans la zone de fourrière. Dans le cas où il
y a plus d’une zone de fourrière, on les travaille tour à tour. Lorsque le travail des
zones de fourrières est fini, on se dirige vers la sortie du champ.

Figure 4.7. Points topologiques

23


Figure 4.8. Trajectoire dans un champ convexe
Remarques : L’avantage de notre méthode de construction de trajectoire locale réside
dans sa simplicité. Par contre elle n’assure pas que la trajectoire construite est vraiment
optimale en terme de minimisation de recouvrements. En effet, on peut appliquer
d’autres méthodes plus optimales au prix de la complexité (ex. méthode de Sébastien
utilisant un graphe hamiltonien [11]).
Pour construire la trajectoire globale on suit le chemin H-like. Celui-ci est le
navigateur qui détermine les passages entre les sous-champs de l’entrée jusqu’à la
sortie. Ici il y a deux types de passage à traiter :
-

Le passage direct de A à B : On va directement du point actuel dans A à
l’extrémité la plus proche du segment frontière entre A et B.

-

Le passage de A à B après avoir travaillé A : On considère que la sortie de A
est l’une puis l’autre des extrémités du segment commun à A et B. On calcule
les deux trajectoires correspondantes dans A et on choisit celle qui est la plus

courte.

Comme on débute toujours par le sous-champ où se trouve l’entrée, alors la trajectoire
est toujours déterministe.

24


S1

Région B
S2

Région A
P

Figure 4.9. Passage entre deux régions

4.7. Fusion de régions
Parfois, la fusion de régions adjacentes peut réduire le coût de travail. Cela résulte du
fait que la frontière entre deux régions de fusion est éliminée. Ici nous proposons de
fusionner 2 régions si elles ont la même direction de travail et la région résultat doit
être convexe selon cette direction de travail, càd que tout segment parallèle à la
direction de travail reliant deux points de cette région sera inclus dans la région.

F
Région 1

Région 2
G


Région 3

On peut combiner 1 et 3 ou 2 et 3
mais pas 1 et 2 et 3 à la fois.

Figure 4.10. Fusion des régions
La fusion n’est effectuée qu’après le découpage mais avant la recherche de chemin Hlike. En effet, quelques petits rajustements seront nécessaires pour construire la
trajectoire globale. Par exemple, dans la figure au-dessus, si le travail dans R1-R3
(fusionnées) termine au point F, alors on ne peut pas traverser hors du champ pour
atteindre G. Ce qu’il faut faire dans ce cas consiste à longer les deux petits côtés entre
F et G.

25


×