FR2985016A1 - Procede de calcul d'un chemin entre un point de depart et un point d'arrivee sur une carte representative d'un terrain - Google Patents
Procede de calcul d'un chemin entre un point de depart et un point d'arrivee sur une carte representative d'un terrain Download PDFInfo
- Publication number
- FR2985016A1 FR2985016A1 FR1104034A FR1104034A FR2985016A1 FR 2985016 A1 FR2985016 A1 FR 2985016A1 FR 1104034 A FR1104034 A FR 1104034A FR 1104034 A FR1104034 A FR 1104034A FR 2985016 A1 FR2985016 A1 FR 2985016A1
- Authority
- FR
- France
- Prior art keywords
- block
- point
- path
- blocks
- cost
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000004364 calculation method Methods 0.000 claims description 10
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000007670 refining Methods 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 7
- 238000010845 search algorithm Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3863—Structures of map data
- G01C21/387—Organisation of map data, e.g. version management or database structures
- G01C21/3881—Tile-based structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
- G06Q10/047—Optimisation of routes or paths, e.g. travelling salesman problem
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Databases & Information Systems (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Instructional Devices (AREA)
- Image Processing (AREA)
Abstract
L'invention concerne un procédé de calcul d'un chemin entre un point de départ et un point d'arrivée sur une carte représentative d'un terrain, ladite carte étant représentée sous forme d'image numérique constituée d'une matrice d'unités élémentaires, chaque unité élémentaire ayant une valeur de coût de traversée associé. Le procédé comporte une étape de découpage (42) de ladite carte en blocs de taille variable selon un critère de découpage dépendant des valeurs de coût de traversée des unités élémentaires appartenant à un dit bloc, puis une étape d'association (42) d'une valeur de coût de traversée à chaque bloc du découpage, et enfin une étape d'obtention (48) d'un chemin entre le point de départ et le point d'arrivée, formé d'au moins deux segments linéaires, optimisant un coût global de traversée égal à une somme de coûts locaux de traversée, chaque segment linéaire ayant un coût local de traversée associé, dans lequel un segment linéaire relie un premier point d'un premier bloc et un deuxième point d'un deuxième bloc voisin du premier bloc, le deuxième point du deuxième bloc étant sélectionné selon un critère de distance par rapport au premier point du premier bloc.
Description
Procédé de calcul d'un chemin entre un point de départ et un point d'arrivée sur une carte représentative d'un terrain La présente invention concerne un procédé de calcul d'un chemin entre un point de départ et un point d'arrivée sur une carte représentative d'un terrain.
De manière générale, l'invention se situe dans le domaine des systèmes d'aide à la navigation d'un agent sur un terrain. On connaît de nombreux systèmes d'aide à la navigation, notamment destinés à l'aide au déplacement de véhicules sur des routes, à partir de cartes routières modélisées sous forme vectorielle dont les objets sont associés à un coût de passage. Dans les environnements libres (mondes virtuels, robots autonomes), les cartes sont représentées sous forme d'images numériques constituées d'unités élémentaires qui sont caractérisées comme étant « traversables » ou « non traversables » ou comme ayant un coût de traversée associé. De nombreux algorithmes de recherche d'un chemin optimisé entre un point de départ et un point d'arrivée sur de telles cartes ont été mis au point. L'algorithme de recherche d'un chemin optimal d'un graphe extrait d'une carte de terrain, appelé algorithme A*, fournit un chemin optimal au sens d'une fonction de coût prédéterminée. Cet algorithme a un coût calculatoire et un coût mémoire élevé, ces coûts augmentant avec le nombre d'unités élémentaires traitées.
Des simplifications de l'algorithme optimal A* ont été proposées, afin d'alléger le coût de traitement. On peut citer par exemple l'algorithme proposé dans l'article « Near optimal Hierarchical Path finding », par A. Botea et al, publié dans Journal of Game Development, ni, 2004, pages 7-28, connu sous le nom d'algorithme HPA*, dans lequel les unités élémentaires de terrain sont regroupées en blocs d'unités élémentaires de taille égale, et des points de passage possible sont définis entre les blocs, les points de passage étant fonction de la traversabilité ou non des unités élémentaires sous-jacentes. L'optimisation de chemin est alors effectuée uniquement en prenant en compte les points de passage prédéfinis, ce qui permet d'alléger la charge mémoire et la charge calculatoire associées. Cependant, cet algorithme n'est applicable qu'avec une situation dans laquelle les unités élémentaires de terrain sont soit « traversables », soit « non traversables ». Cependant, pour certaines applications, il est utile de prendre en compte le coût du déplacement hors route plutôt que sa possibilité, lorsque l'agent qui se déplace est adapté à un tel déplacement hors route. C'est par exemple le cas des véhicules tout terrain, en particulier des véhicules militaires ou agricoles, des robots, ou bien des piétons en randonnée et des agents de jeu vidéo.
Dans ces divers cas de figure, les unités élémentaires représentatives du terrain à traverser ne sont plus simplement « traversables » ou « non traversables », mais ont un coût de traversée ou de praticabilité associé, un tel coût pouvant être typiquement fonction de la pente lorsque le terrain est escarpé, ou bien de la profondeur d'une rivière par exemple. Le coût de traversée d'une unité élémentaire de terrain par un agent est potentiellement dépendant du type d'agent (type de véhicule tout terrain par exemple) auquel est destiné le système. La recherche d'un chemin optimal dans ces conditions est rapidement inenvisageable à cause de son coût en mémoire et en temps de calcul. Il est nécessaire de simplifier le problème. Les méthodes de simplification de l'algorithme de recherche de chemin connues de l'état de la technique ne sont pas adaptées pour le cas de figure où les unités de terrain élémentaires ont un coût de traversée associé qui est variable. En effet, l'algorithme HPA* mentionné ci-dessus est uniquement adapté pour des unités élémentaires traversables ou non traversables, ce qui revient à associer à chaque unité élémentaire un coût de traversée binaire, égal à un ou à zéro et une méthode se basant sur des moyennes locales (comme par exemple l'algorithme D*) efface les spécificités (guets, routes...) Il existe un besoin de proposer une méthode de calcul de chemin, adaptée au cas où des unités élémentaires de terrain ont un coût de traversée non binaire associé et la taille de la carte est importante. A cet effet, l'invention propose un procédé de calcul d'un chemin entre un point de départ et un point d'arrivée sur une carte représentative d'un terrain, ladite carte étant représentée sous forme d'image numérique constituée d'une matrice d'unités élémentaires, chaque unité élémentaire ayant une valeur de coût de traversée associé. Le procédé comporte les étapes de : -découpage de ladite image numérique en blocs de taille variable selon un critère de découpage dépendant des valeurs de coût de traversée des unités élémentaires appartenant à un dit bloc, -association d'une valeur de coût de traversée à chaque bloc du découpage, -obtention d'un chemin entre le point de départ et le point d'arrivée, formé d'au moins deux segments linéaires, optimisant un coût global de traversée égal à une somme de coûts locaux de traversée, chaque segment linéaire ayant un coût local de traversée associé, dans lequel un segment linéaire relie un premier point d'un premier bloc et un deuxième point d'un deuxième bloc voisin du premier bloc, le deuxième point du deuxième bloc étant sélectionné selon un critère de distance par rapport au premier point du premier bloc. Avantageusement, le procédé de l'invention comporte une simplification de la carte par découpage en blocs de taille variable, ce qui permet de conserver des détails importants et de simplifier la carte uniquement dans des zones qui sont homogènes au sens du critère de découpage utilisé. Ainsi, les détails importants sont préservés, ce qui n'est pas le cas des méthodes de simplification systématique par blocs de taille fixe de l'état de la technique. Avantageusement, le chemin selon l'invention est construit dynamiquement, les segments linéaires constituant le chemin étant formés dynamiquement au fur et à mesure selon un critère de distance, ce qui permet d'éviter d'introduire des erreurs importantes dans le chemin calculé, malgré la taille variable des blocs du découpage. Le procédé selon l'invention peut présenter une ou plusieurs des caractéristiques ci-dessous, prise(s) indépendamment ou en combinaison : - le deuxième point du deuxième bloc est le point du deuxième bloc le plus proche du premier point du premier bloc selon une distance prédéterminée ; - le coût local de traversée associé à un segment linéaire est fonction de la longueur dudit segment linéaire et de la valeur de coût de traversée associée au premier bloc ; - le procédé comporte, avant l'étape d'obtention d'un chemin, une étape d'extraction d'un graphe représentant, pour chaque bloc du découpage, un ensemble de blocs voisins dudit bloc du découpage selon un voisinage prédéterminé ; - le procédé comporte en outre, après l'étape d'obtention d'un chemin, une étape d'affinage du chemin obtenu pour obtenir un chemin affiné, comportant les sous-étapes de : - sélection des unités élémentaires faisant partie des blocs de taille variable traversés par le chemin obtenu, - calcul d'un chemin affiné entre le point de départ et le point d'arrivée, optimisant un coût global de traversée, ledit chemin affiné étant composé de segments linéaires affinés, un segment linéaire affiné reliant un premier point d'une première unité élémentaire et un deuxième point d'une deuxième unité élémentaire adjacente à ladite première unité élémentaire, parmi lesdites unités élémentaires sélectionnées ; - le procédé comporte, préalablement à l'étape de découpage en blocs de taille variable, une étape de simplification de ladite image numérique représentative de ladite carte consistant à associer chaque unité élémentaire à une catégorie parmi un ensemble prédéterminé de catégories, selon la valeur de coût de traversée associée à ladite unité élémentaire ; - ladite étape de simplification met en oeuvre un calcul d'histogramme de ladite image numérique, et un partitionnement de l'histogramme en un nombre prédéterminé de catégories ; -ladite étape de découpage en blocs de taille variable consiste en un découpage récursif de chaque bloc de ladite image numérique, partant d'un bloc égal à l'image numérique, en quatre blocs de tailles égales, jusqu'à ce qu'un critère d'arrêt du découpage soit vérifié ; -ledit découpage récursif est arrêté pour un bloc donné lorsqu'une valeur d'entropie est inférieure à une valeur seuil prédéterminée, ladite valeur d'entropie étant calculée en fonction des catégories associées aux unités élémentaires composant ledit bloc donné ; - l'association d'une valeur de coût de traversée à chaque bloc obtenu par le découpage en blocs de taille variable comprend, pour un bloc donné, la détermination de la catégorie majoritaire des unités élémentaires composant ledit bloc donné, et l'association audit bloc donné d'une valeur de coût de traversée moyen calculé pour ladite catégorie majoritaire. D'autres caractéristiques et avantages de l'invention ressortiront de la description qui en est donnée ci-dessous, à titre indicatif et nullement limitatif, en référence aux figures annexées, parmi lesquelles -la figure 1 un schéma représentant les blocs fonctionnels d'un dispositif programmable apte à mettre en oeuvre l'invention ; -la figure 2 illustre un exemple de carte quadrillée en unités élémentaires régulières et simplifiée en blocs de taille variable ; -la figure 3 illustre un chemin calculé entre un point de départ et un point d'arrivée obtenu par le procédé de calcul d'un chemin selon l'invention ; - la figure 4 est un organigramme d'un mode de réalisation d'un procédé calcul d'un chemin selon l'invention ; -la figure 5 est un exemple d'histogramme divisé en quatre catégories selon une échelle logarithmique; - la figure 6 est un exemple de division en blocs de taille variable selon un mode de réalisation de l'invention ; - la figure 7 est un exemple de blocs considérés comme blocs voisins d'un bloc courant dans un mode de réalisation de l'invention, et - la figure 8 est un tableau illustrant la performance de l'invention par rapport à une méthode de l'état de la technique. La figure 1 illustre de manière schématique les blocs fonctionnels d'un dispositif apte à mettre en oeuvre un procédé de calcul d'un chemin selon l'invention.
Un dispositif 1 est par exemple un ordinateur embarqué dans un boîtier portable spécifique ou un ordinateur de bord d'un véhicule qui a des capacités de déplacement tout terrain. Un tel dispositif comporte des moyens 2 de visualisation, comme par exemple un écran, apte à afficher des données, par exemple des cartes de terrain, des segments de chemin. Le dispositif 1 comporte également un moyen d'interaction 3, qui est par exemple un clavier ou un moyen d'interaction tactile intégré à l'écran 2, permettant à un utilisateur de fournir des paramètres, de fixer un point de départ et un point d'arrivée souhaités. Le dispositif 1 comporte également un processeur ou unité centrale de calcul 4, apte à exécuter des instructions de programme de commande lorsque le dispositif 1 est mis sous tension. Le dispositif 1 comporte également des moyens de stockage d'informations 5, par exemple des registres, aptes à stocker des instructions de code exécutable permettant la mise en oeuvre de programmes aptes à mettre en oeuvre le procédé de calcul d'un chemin selon l'invention. Les divers blocs fonctionnels du dispositif 1 décrits ci-dessus sont connectés via un bus de communication 6.
La figure 2 illustre un exemple simplifié de carte de terrain 10 composée d'unités élémentaires 12, qui sont dans cet exemple des blocs carrés correspondant à une surface de terrain de NxP mètres carrés, avec N et P compris par exemple dans une plage [20, 10000]. La carte 10 est stockée en mémoire 5 d'un dispositif 1 apte à mettre en oeuvre l'invention sous forme d'une matrice bidimensionnelle, chaque unité élémentaire correspondant à un pixel de cette matrice. Dans la figure 2, les unités élémentaires 12 peuvent avoir une valeur de coût associée parmi trois valeurs possibles, chaque valeur possible étant représentée par un hachurage associé.
La carte 14 représentée sur la figure 2 illustre le résultat d'une étape de découpage de la carte 10 en blocs de taille variable 16. Comme il sera expliqué plus en détail ci-après, les blocs 16 sont obtenus par découpage en quadrants ou découpage en « quad-tree ». Les blocs 16 sont de taille variable, allant dans cet exemple d'un bloc en bas à gauche de la taille d'un quart de la carte 10 jusqu'à un bloc de taille égale à l'unité élémentaire. Comme illustré sur la figure 2, chaque bloc 16 a une valeur de coût associée, qui est représentée graphiquement par un hachurage, et qui est par exemple égale à la valeur de coût de la majorité des unités élémentaires 12 formant le bloc 16. La figure 3 illustre schématiquement un chemin 20 entre un point de départ 22 et un point d'arrivée 24, obtenu en appliquant une méthode de calcul selon l'invention à partir de la carte de terrain simplifiée 14 et en utilisant les valeurs de coût de traversée associées aux blocs 16 de la carte 14. Afin de mieux expliciter la particularité de l'invention, on illustre également sur la figure 3 un graphe 25 reliant les centres des blocs adjacents. Le graphe 25 est le graphe qui serait utilisé par les méthodes de calcul de chemin classiques connues dans l'état de la technique. Selon l'état de la technique connu, n'importe quel chemin « optimisé » calculable passerait forcément par les arcs du graphe 25. On constate donc que tout chemin s'éloignerait significativement du chemin 20 sélectionné, considérant que les blocs à remplissage en traits pointillés correspondent à des unités élémentaires de coût de traversée maximal, c'est-à-dire quasi infranchissables.
Avantageusement, la méthode de l'invention permet de calculer le chemin 20, qui relie les points 22 et 24 en passant par les points 26, 28, 30 et 32, le chemin 20 étant construit dynamiquement. Comme on peut le constater sur la figure 3, le point 26 est le point du bloc 36 qui est le plus proche selon la distance euclidienne du point de départ 24 du bloc 34, et ainsi de suite. Avantageusement, le chemin calculé par la méthode de l'invention n'est pas rallongé par des écarts importants qui seraient nécessairement ajoutés par un passage imposé par les centres des blocs du découpage. La figure 4 représente les principales étapes mises en oeuvre dans un procédé de calcul d'un chemin selon un mode de réalisation de l'invention, typiquement mises en oeuvre par un processeur 4 d'un dispositif 1 apte à mettre en oeuvre l'invention. En entrée on dispose d'une carte d'origine Co, sous forme d'image numérique comme expliqué ci-dessus, constituée d'unités élémentaires ue ayant chacune une valeur de coût de traversée associée V(ue). L'image numérique représentative de Co est constituée d'une matrice de pixels, chaque pixel ayant une valeur V associée. Par exemple, la valeur de chaque pixel est représentée sur un octet, et peut donc prendre des valeurs numériques entières entre 0 et 255. Dans ce cas, chaque valeur de coût de traversée c(ue), qui est initialement fournie entre des valeurs Cm, et Dmax réelles, est transposée pour être représentée dans l'image 255 numérique : V(ue) = (c(ue)- Cmin ) (C. - ) min Bien évidemment, d'autres représentations analogues, notamment avec un nombre supérieur d'octets par pixel, sont envisageables. La première étape 40 mise en oeuvre est une étape de simplification de la représentation de la carte Co en utilisant un nombre prédéterminé de catégories, Nc. Les nombre de catégories est un paramètre de l'algorithme, qui peut être prédéterminé, choisi par un opérateur ou bien calculé dynamiquement par une analyse de l'image numérique de la carte Co à traiter, comme expliqué brièvement ci-après. En effet, il est clair que par exemple si la valeur de coût de traversée d'une unité élémentaire est fonction de la pente du terrain correspondant à l'unité élémentaire, plusieurs unités élémentaires proches spatialement sont susceptibles d'avoir des valeurs de coût de traversée associées similaires mais pas nécessairement identiques. Une méthode possible pour obtenir la simplification en un nombre de catégories Nc est la méthode de l'histogramme, consistant à calculer un histogramme de l'image Co, et ensuite à diviser l'histogramme en Nc parties, selon une échelle logarithmique, comme illustré à la figure 5. Sur la figure 5 on a représenté schématiquement un exemple d'histogramme H d'une carte Co, comportant en abscisse les valeurs possibles de coût, comprises entre 0 et Vmax=255 dans l'exemple ci-dessus, et en ordonnée le nombre d'unités élémentaires prenant ces valeurs. Dans cet exemple, l'histogramme est divisé en quatre catégories sur une échelle logarithmique. Dans une modélisation dans laquelle les valeurs faibles correspondent à un coût de traversée faible et donc à une traversée assez aisée, alors que les valeurs fortes correspondent à un coût de traversée élevée et donc à une traversée quasi impossible, l'utilisation d'une échelle logarithmique a l'avantage de permettre une meilleure granularité de représentation pour les zones permettant une traversée aisée. Ainsi, toutes les unités élémentaires ayant un coût de traversée associé entre 0 et V1 sont classifiées dans la catégorie Ci, toues les unités élémentaires ayant un coût de traversée associé entre V1 et V2 sont classifiées dans la catégorie C2 et ainsi de suite. De manière générale, toutes les unités élémentaires ayant un coût de traversée associé entre Vo et V, sont classifiées dans la catégorie C.
Une valeur de coût simplifiée est associée à chaque unité élémentaire selon la catégorie à laquelle elle appartient. Pour chaque catégorie C' on peut choisir n'importe quelle valeur de l'intervalle [Vo, V,] définissant la catégorie par exemple la borne inférieure V,_1 ou le milieu de l'intervalle V(Ci)=(V,-FV0)/2. Une fois la carte Co simplifiée en un nombre de catégories prédéterminées, on applique une étape 42 de découpage de la carte en blocs de taille variable, en fonction des catégories C, déterminées précédemment.
Dans le mode de réalisation préféré, le découpage est effectué selon un algorithme de découpage en quadrants ou en « quad-tree ». Il s'agit d'un découpage récursif dans lequel chaque bloc est subdivisé en quatre blocs de taille égale tant qu'un critère d'arrêt du découpage n'est pas satisfait. A la première étape, le bloc racine est initialisé comme étant égal à l'image complète elle- même. Chaque bloc du découpage est défini par sa taille et la position dans l'image complète Co de son coin supérieur gauche par exemple. Un résultat de découpage en « quad-tree » est illustré à la figure 6. L'image complète initiale notée Q0 est traitée comme bloc initial. Ce bloc Q0 est divisé en quatre blocs ou quadrants Q1 à Q4. Pour le découpage de cet exemple, le critère d'arrêt est vérifié sur les blocs 01, 03 et Q4. Le bloc 02 est à nouveau divisé en quatre blocs ou quadrants Q21, 0 Q23, 0 -21> -221 -23> -24. A nouveau, le quadrant Q22 est subdivisé à l'étape suivante et ainsi de suite, jusqu'à ce qu'une taille minimale, ici la taille de l'unité élémentaire soit atteinte. Le critère d'arrêt est typiquement un critère d'homogénéité du bloc traité, le principe sous-jacent étant qu'il n'est pas utile de diviser un bloc homogène. Dans le mode de réalisation préféré, le critère d'arrêt est basé sur la comparaison de l'entropie du bloc considéré à un seuil S prédéterminé.
Lorsqu'on traite un bloc courant Bc composé d'une matrice d'unités élémentaires ue, le calcul de l'entropie est le suivant : H(B,)= EH(C,) iSN, Où H(Bc) est l'entropie de Bc comprise entre 0 et 1 et H(Ci) est calculée comme suit : H(C,)=-Ep(ue C)xln(p(tielC,) Plus la valeur de l'entropie d'un bloc est importante, plus la disparité des catégories d'unités élémentaires contenues dans le bloc est importante. A l'inverse, lorsque l'entropie est faible, le bloc Bc correspond à une zone homogène de terrain. La valeur de seuil est choisie par exemple comprise entre 0,3 et 0,7, permettant à la fois d'obtenir une simplification de la carte tout conservant les détails importants.
En variante, on peut envisager de faire varier le seuil selon le nombre de catégories représentées dans un bloc à traiter ou la distance entre les catégories présentes. Ainsi, il est envisagé d'augmenter le seuil lorsque des unités élémentaires appartenant à des catégories distantes, qui ont de valeurs de coût associées disparates, sont présentes dans un bloc.
Selon une autre variante, d'autres critères d'arrêt basés sur les valeurs de coût associées aux unités élémentaires sont envisagées. L'étape de découpage en blocs de taille variable 42 est suivie d'une étape 44 d'extraction d'un graphe G représentatif de la carte simplifiée.
Pour construire ce graphe, dans ce mode de réalisation, on construit, pour chaque bloc du découpage, mémorisé comme noeud du graphe, des liens vers les blocs positionnés à droite et vers le bas, comme schématiquement représenté à la figure 7. Comme illustré à la figure 7, chaque bloc Bc du découpage est lié à un nombre variable de blocs voisins Bv selon un voisinage prédéterminé, qui touchent Bc soit par un côté, soit par un coin. Le nombre de blocs voisins du bloc courant Bc est de huit dans l'exemple de la figure 7. L'étape 44 de construction de graphe est suivie d'une étape optionnelle 46 d'ajout d'informations supplémentaires issues d'un graphe routier. Il est possible d'intégrer un graphe routier au système en recherchant les intersections entre les blocs et les routes et en les utilisant pour évaluer un coût de passage entre des cases reliées par une route. Ensuite ce graphe complet correspondant à une modélisation du terrain en blocs de taille variable est utilisable pour le calcul d'un chemin Path(A,B) entre un point de départ A et un point d'arrivée B à l'étape 48.
Les points de départ et d'arrivée sont typiquement fournis par un utilisateur ou une application utilisatrice. Dans le mode de réalisation préféré, comme brièvement expliqué ci-dessus en référence à la figure 3, le chemin est calculé de manière dynamique. Le chemin est formé de segments linéaires, chaque segment liant un premier point P1 d'un bloc courant qui est un premier bloc à un deuxième point P2 d'un deuxième bloc, qui est un des blocs voisins du bloc courant. Le point de départ initial est le point P1=A, qui se situe dans un bloc initial du découpage. Par exemple, revenant à la figure 3, le point de départ initial est le point 22 du bloc 34.
Tous les blocs voisins Bv du bloc courant Bc, tels que représentés dans le graphe G préalablement extrait sont considérés, et pour chaque bloc voisin Bv, le point P2(Bv) qui est le point appartenant au bloc voisin Bv et le plus proche du point P1 du bloc courant est déterminé, et la longueur du segment S=[P1, P2(Bv)], notée l(S), est calculée. En pratique, le point P2(Bv) se situe sur la frontière de Bv la plus proche du bloc courant Bc. La détermination d'un tel point P2(Bv) se fait par un algorithme connu de minimisation de distance euclidienne. De manière connue, le plus court chemin d'un point à une droite suit la droite perpendiculaire à la droite et passant par le point. Dans le mode de réalisation préféré, on associe à chaque segment ainsi déterminé un coût local de traversée cbcal(S) qui est fonction de la longueur du segment S et du coût de traversée V(Bc) associé au bloc courant Bc. Par exemple, on utilise un calcul proportionnel : clocal (S) = (S)XV(Bc) En variante, d'autres fonctions de calcul du coût local de traversée associant la longueur du segment linéaire et le coût de traversée associé au bloc Bc sont envisagées.
Pour déterminer le chemin optimal au sens d'un coût global de traversée égal à la somme de coûts locaux associés aux segments linéaires qui forment le chemin, on utilise l'algorithme classique A* sur un graphe simplifié que l'on construit au fur et à mesure. Avantageusement, les segments linéaires considérés ne passent pas nécessairement par les centres des blocs de taille variable, ce qui évite d'introduire des écarts importants lorsque la taille de bloc est très importante. Ainsi, l'erreur éventuelle introduite du fait de la simplification de la carte en blocs de taille variable est réduite. L'étape d'obtention d'un chemin 48 est suivie d'une étape optionnelle d'affinage 50 du chemin obtenu. En effet, le chemin Path(A,B) obtenu à l'étape 48, à partir du graphe simplifié, est obtenu rapidement, mais, selon le niveau de simplification de la carte, ce chemin peut ne pas être précis, notamment sur les portions approximées par des blocs de taille importante. Il est donc envisagé, dans un mode de réalisation optimisé, d'affiner le chemin obtenu.
L'affinage consiste dans ce mode de réalisation à recharger en mémoire 5 d'un dispositif 1 mettant en oeuvre l'invention un ensemble E d'unités élémentaires constitué de l'ensemble des unités élémentaires composant les blocs du découpage traversés par le chemin Path(A,B) précédemment calculé en y ajoutant des blocs situés de chaque côté des liens diagonaux, de manière à permettre à l'affinage de trouver des segments affinés alternatifs au segment passant par un coin liant deux blocs en diagonale. Ensuite, un algorithme de recherche de chemin optimal est appliqué sur cet ensemble E d'unités élémentaires pour obtenir un chemin affiné Pathaff(A,B). Un chemin affiné composé de segments linéaires affinés est alors calculé entre le point de départ A et le point d'arrivée B, optimisant un coût global de traversée. Un segment linéaire affiné relie un premier point d'une première unité élémentaire et un deuxième point d'une deuxième unité élémentaire adjacente à ladite première unité élémentaire, parmi lesdites unités élémentaires de l'ensemble E d'unités élémentaires sélectionnées. La granularité est plus fine pour un tel chemin affiné, car chaque segment linéaire affiné relie deux unités élémentaires. Par exemple, un algorithme classique de recherche de chemin optimal est appliqué, comme l'algorithme A*, étant donné que le nombre d'unités élémentaires chargées en mémoire à traiter est réduit, et le temps de calcul est également faible au vu du nombre réduit de possibilités à tester. Avantageusement, des tests pratiques ont montré l'efficacité de la méthode proposée par l'invention. Ainsi, le tableau de la figure 8 illustre la performance de la méthode proposée par l'invention dans la colonne « simplifié » par rapport à la performance d'une recherche de chemin optimal dans un graphe complet de type A* (colonne « complet »), pour une carte de 900x700 unités élémentaires. Ainsi on constate que le nombre de noeuds à charger en mémoire pour représenter le graphe est diminué par un facteur 7, et le nombre de liens est diminué par un facteur 8. Le temps de chargement du graphe en mémoire est de 0,735 secondes pour la méthode de l'invention contre plus de 5 secondes pour la méthode de l'état de la technique. Quant au temps de calcul, il est diminué par un facteur 8. Ainsi, on constate que le chemin obtenu par la méthode de l'invention s'écarte du chemin optimal de 25%, mais le gain en termes de temps de calcul et de gain en mémoire est considérable.
Claims (10)
- REVENDICATIONS1.- Procédé de calcul d'un chemin entre un point de départ (A) et un point d'arrivée (B) sur une carte représentative d'un terrain, ladite carte étant représentée sous forme d'image numérique constituée d'une matrice d'unités élémentaires, chaque unité élémentaire ayant une valeur de coût de traversée associé, caractérisé en ce qu'il comporte les étapes de : -découpage (42) de ladite image numérique en blocs de taille variable selon un critère de découpage dépendant des valeurs de coût de traversée des unités élémentaires appartenant à un dit bloc, -association (42) d'une valeur de coût de traversée à chaque bloc du découpage, -obtention (48) d'un chemin entre le point de départ et le point d'arrivée, formé d'au moins deux segments linéaires (S), optimisant un coût global de traversée égal à une somme de coûts locaux de traversée, chaque segment linéaire (S) ayant un coût local de traversée (ciocai(S)) associé, dans lequel un segment linéaire (S) relie un premier point d'un premier bloc (Bc) et un deuxième point d'un deuxième bloc (Bv) voisin du premier bloc (Bc), le deuxième point du deuxième bloc (Bv) étant sélectionné selon un critère de distance par rapport au premier point du premier bloc(Bc).
- 2.- Procédé selon la revendication 1, caractérisé en ce que le deuxième point du deuxième bloc (Bv) est le point du deuxième bloc (Bv) le plus proche du premier point du premier bloc (Bc) selon une distance prédéterminée.
- 3. - Procédé selon l'une quelconque des revendications 1 ou 2, dans lequel le coût local de traversée (clocal(S)) associé à un segment linéaire (S) est fonction de la longueur dudit segment linéaire et de la valeur de coût de traversée associée au premier bloc (Bc).
- 4.- Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte avant l'étape d'obtention (48) d'un chemin, une étape d'extraction (44) d'un graphe représentant, pour chaque bloc (Bc) du découpage, un ensemble de blocs voisins (Bv) dudit bloc du découpage selon un voisinage prédéterminé.
- 5.- Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte en outre, après l'étape d'obtention (48) d'un chemin, une étape d'affinage (50) du chemin obtenu pour obtenir un chemin affiné, comportant les sous-étapes de : - sélection des unités élémentaires faisant partie des blocs de taille variable traversés par le chemin obtenu et d'unités élémentaires adjacentes, - calcul d'un chemin affiné entre le point de départ et le point d'arrivée, optimisant un coût global de traversée, ledit chemin affiné étant composé de segments linéairesaffinés, un segment linéaire affiné reliant un premier point d'une première unité élémentaire et un deuxième point d'une deuxième unité élémentaire adjacente à ladite première unité élémentaire, parmi lesdites unités élémentaires sélectionnées.
- 6.- Procédé selon l'une quelconque des revendications précédentes caractérisé en ce qu'il comporte, préalablement à l'étape de découpage (42) en blocs de taille variable, une étape de simplification (40) de ladite image numérique représentative de ladite carte consistant à associer chaque unité élémentaire à une catégorie parmi un ensemble prédéterminé de catégories, selon la valeur de coût de traversée associée à ladite unité élémentaire.
- 7.- Procédé selon la revendication 6, caractérisé en ce que ladite étape de simplification met en oeuvre un calcul d'histogramme de ladite image numérique, et un partitionnement de l'histogramme en un nombre prédéterminé de catégories.
- 8.- Procédé selon l'une des revendications 6 ou 7, caractérisé en ce que ladite étape de découpage (42) en blocs de taille variable consiste en un découpage récursif de chaque bloc de ladite image numérique, partant d'un bloc égal à l'image numérique, en quatre blocs de tailles égales, jusqu'à ce qu'un critère d'arrêt du découpage soit vérifié.
- 9.- Procédé selon la revendication 8, caractérisé en ce que ledit découpage récursif est arrêté pour un bloc donné lorsqu'une valeur d'entropie est inférieure à une valeur seuil prédéterminée, ladite valeur d'entropie étant calculée en fonction des catégories associées aux unités élémentaires composant ledit bloc donné.
- 10.- Procédé selon l'une quelconque des revendications 6 à 9, caractérisé en ce que l'association d'une valeur de coût de traversée à chaque bloc obtenu par le découpage en blocs de taille variable comprend, pour un bloc donné, la détermination de la catégorie majoritaire des unités élémentaires composant ledit bloc donné, et l'association audit bloc donné d'une valeur de coût de traversée moyen calculé pour ladite catégorie majoritaire.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1104034A FR2985016B1 (fr) | 2011-12-22 | 2011-12-22 | Procede de calcul d'un chemin entre un point de depart et un point d'arrivee sur une carte representative d'un terrain |
MYPI2012005526A MY168139A (en) | 2011-12-22 | 2012-12-20 | Method for computing a path between a starting point and an end point on a map representative of a terrain |
SG2012094413A SG191541A1 (en) | 2011-12-22 | 2012-12-20 | Method for computing a path between a starting point and an end point on a map representative of a terrain |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1104034A FR2985016B1 (fr) | 2011-12-22 | 2011-12-22 | Procede de calcul d'un chemin entre un point de depart et un point d'arrivee sur une carte representative d'un terrain |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2985016A1 true FR2985016A1 (fr) | 2013-06-28 |
FR2985016B1 FR2985016B1 (fr) | 2016-07-01 |
Family
ID=46634171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1104034A Active FR2985016B1 (fr) | 2011-12-22 | 2011-12-22 | Procede de calcul d'un chemin entre un point de depart et un point d'arrivee sur une carte representative d'un terrain |
Country Status (3)
Country | Link |
---|---|
FR (1) | FR2985016B1 (fr) |
MY (1) | MY168139A (fr) |
SG (1) | SG191541A1 (fr) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
HUP1300489A2 (en) * | 2013-08-15 | 2015-03-02 | Gps Tuner Kft | Method for displaying real range of an electric vehicle |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009005188A1 (fr) * | 2007-07-03 | 2009-01-08 | Electronics And Telecommunications Research Institute | Procédé de recherche d'itinéraire |
US20100211244A1 (en) * | 2009-02-18 | 2010-08-19 | Jeong Woo-Yeon | Apparatus and method for generating and using a grid map path |
-
2011
- 2011-12-22 FR FR1104034A patent/FR2985016B1/fr active Active
-
2012
- 2012-12-20 MY MYPI2012005526A patent/MY168139A/en unknown
- 2012-12-20 SG SG2012094413A patent/SG191541A1/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009005188A1 (fr) * | 2007-07-03 | 2009-01-08 | Electronics And Telecommunications Research Institute | Procédé de recherche d'itinéraire |
US20100211244A1 (en) * | 2009-02-18 | 2010-08-19 | Jeong Woo-Yeon | Apparatus and method for generating and using a grid map path |
Non-Patent Citations (2)
Title |
---|
KAMBHAMPATI S ET AL: "MULTIRESOLUTION PATH PLANNING FOR MOBILE ROBOTS", IEEE JOURNAL OF ROBOTICS AND AUTOMATION, IEEE INC. NEW YORK, US, vol. RA-02, no. 3, 1 September 1986 (1986-09-01), pages 135 - 145, XP000648163 * |
YAHJA A ET AL: "An efficient on-line path planner for outdoor mobile robots", ROBOTICS AND AUTONOMOUS SYSTEMS, ELSEVIER SCIENCE PUBLISHERS, AMSTERDAM, NL, vol. 32, no. 2-3, 31 August 2000 (2000-08-31), pages 129 - 143, XP004210042, ISSN: 0921-8890, DOI: 10.1016/S0921-8890(99)00114-1 * |
Also Published As
Publication number | Publication date |
---|---|
FR2985016B1 (fr) | 2016-07-01 |
SG191541A1 (en) | 2013-07-31 |
MY168139A (en) | 2018-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3292377B1 (fr) | Procédé, programme d'ordinateur et système pour la commande d'un déplacement d'un agent navigant dans un environnement organisé en réseau | |
CA2950847C (fr) | Procede d'analyse d'une scene dynamique, module d'analyse et programme d'ordinateur associes | |
EP3292541B1 (fr) | Procede des simplification de modele de geometrie | |
EP2356493B1 (fr) | Procede de modelisation geologique de donnees sismiques par correlation de traces | |
WO2005031262A1 (fr) | Procede d'estimation de distance pour un mobile soumis a des contraintes dynamiques de parcours | |
FR2964765A1 (fr) | Procede de recherche de plus court chemin avec heuristique | |
Graser et al. | Is OSM good enough for vehicle routing? A study comparing street networks in Vienna | |
FR3106918A1 (fr) | Procédé et dispositif de reconstruction des voies | |
FR3031806A1 (fr) | Procede d'aide a la navigation en fonction de conditions meteorologiques | |
FR3075433B1 (fr) | Procede de determination des bords saillants d'une cible sur une image | |
EP4002274A1 (fr) | Procédé itératif d'estimation du mouvement d'un corps matériel par génération d'une grille de mouvement filtrée | |
FR3023610A1 (fr) | ||
US20150248576A1 (en) | Bathymetric techniques using satellite imagery | |
FR2985016A1 (fr) | Procede de calcul d'un chemin entre un point de depart et un point d'arrivee sur une carte representative d'un terrain | |
WO2007054477A1 (fr) | Base de donnees comportant des? informations topographiques sur des obstacles et procede de generation d'une telle base de donnees | |
WO2021165237A1 (fr) | Procédé et dispositif de détermination d'obstacles d'altitude | |
FR3096158A1 (fr) | système et procédé d’aide à la mobilité d’un véhicule tout terrain | |
EP3488383B1 (fr) | Procede et dispositif d'aide a la navigation d'un vehicule | |
WO2024100349A1 (fr) | Système et procédé d'aide à la navigation d'un système mobile | |
US11105646B2 (en) | Providing navigation services using context-aware trajectory analysis | |
EP1121665B1 (fr) | Procede de codage d'un maillage source, avec optimisation de la position d'un sommet resultant d'une fusion d'arete, et applications correspondantes | |
FR3143806A1 (fr) | Segmentation d'image par partage des eaux avec traitement optimisé des données image par reconstruction itérative | |
EP4432036A1 (fr) | Méthode de détermination d'informations relatives à un changement de repère ; programme, support d'information et système pour la mise en uvre de la méthode | |
FR3129003A1 (fr) | Procédé pour déterminer des positions optimisées d’un objet pour le suivi d’une trajectoire dans un environnement simulé. | |
WO2023118275A1 (fr) | Procédé et dispositif de génération de trajectoires d'un appareil mobile |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 5 |
|
PLFP | Fee payment |
Year of fee payment: 6 |
|
PLFP | Fee payment |
Year of fee payment: 7 |
|
PLFP | Fee payment |
Year of fee payment: 9 |
|
PLFP | Fee payment |
Year of fee payment: 10 |
|
PLFP | Fee payment |
Year of fee payment: 11 |
|
PLFP | Fee payment |
Year of fee payment: 12 |
|
PLFP | Fee payment |
Year of fee payment: 13 |