Génération de données de carte
La présente invention concerne la génération de données cartographiques. On peut typiquement prévoir un ou plusieurs instruments de mesure, mobiles (par exemple des robots), agencés pour mesurer des distances entre leur position courante et des obstacles dans leur environnement. Dans ce qui suit, on entend par le terme « mobile », un instrument de mesure mobile du type précité. Ces mesures peuvent par exemple s'effectuer par mesures de temps de vol (télédétection « LIDAR » notamment, pour « Light Détection and Ranging »), ou par toute autre technique permettant de mesurer une distance.
Il se pose en particulier le problème, en temps-réel, dit du « SLAM » embarqué (pour « Simultaneous Localization And Mapping »), qui consiste à devoir déterminer à la fois la cartographie et la localisation de l'instrument de mesure mobile. Ainsi, on doit construire une carte de l'environnement de l'instrument de mesure et en même temps localiser cet instrument dans cette carte. En pratique, ces deux problèmes ne peuvent pas être résolus indépendamment. Pour qu'un instrument mobile puisse établir une carte de l'environnement, l'instrument doit d'abord détenir l'information concernant le point d'où ses mesures de distance ont été faites. De la même façon, il est difficile d'estimer la position courante de l'instrument sans une carte bien établie. Ainsi, une bonne carte est nécessaire pour se localiser, alors qu'une estimation précise de la position courante est nécessaire pour construire la carte. Pour décrire les objectifs visés de façon plus illustrative à titre d'exemple :
- en entrée d'un système de cartographie, on cherche à établir les coordonnées des entités à cartographier (murs, portes, meubles, arbres etc.) sous forme de points ou de nuages de points exprimés dans un repère attaché à l'instrument mobile, et
- en sortie du système, on détermine une position instantanée de l'instrument (par exemple les coordonnées Χ,Υ,Θ pour un problème plan, c'est-à-dire pour l'établissement d'une carte en 2D),
- on en établit une carte échantillonnée de l'environnement exploré.
A titre d'exemple illustratif toujours, sur un problème plan, un algorithme actualise la carte et la position de l'instrument (appelé « mobile » ci-après), en moins de 25 ms sur un ordinateur eeePC de 1,6 GHz d'horloge de processeur. La position du mobile est exprimée dans le domaine continu, alors que la carte est spatialement échantillonnée avec un pas de 20 mm, par exemple.
On connaît actuellement quelques procédés de résolution de SLAM.
Le « SLAM visuel » utilise un ou plusieurs systèmes d'acquisitions d'images (généralement des caméras) et calcule la transformation entre deux images successives afin d'en déduire le déplacement du mobile.
Toutefois, ces approches nécessitent un prétraitement des données vidéo qui est souvent difficilement compatible avec des contraintes de temps-réel.
Les systèmes d'acquisition sont sujets aux conditions d'éclairage, ce qui peut fausser ou empêcher le processus de localisation.
La reconstruction de la carte est souvent difficile sur la base d'images vidéo, et il est souvent recouru à une combinaison avec un LIDAR pour la cartographie.
L'extraction « d'amers » consiste à extraire des données de capteurs (caméra, LIDAR, ou autres) des zones d'intérêts, appelées « amers », pour les utiliser comme balises naturelles.
Toutefois, il s'agit d'un processus coûteux, au même titre que le traitement d'images.
L'extraction pouvant être sujette aux perturbations, ce type d'approche est généralement combiné avec une approche stochastique (du type utilisant par exemple des filtres de Kalmann, comme décrit ci-après).
L'absence d'amer dans un champ de vision courant empêche toute localisation.
L'approche utilisant des filtres de Kalmann consiste à fusionner les informations provenant de plusieurs capteurs (LIDAR et odométrie par exemple) en utilisant des modèles probabilistes.
Toutefois, les modèles mathématiques sous-jacents peuvent être complexes et nécessitent une connaissance pointue des caractéristiques des capteurs, notamment les variances sur l'incertitude des mesures. Cette variance peut être difficile à estimer et peut également être sujette à variations (notamment des mesures odométriques lors du passage d'un terrain rugueux à un sol glissant). L'approche utilisant des « filtres à particules » s'apparente aux méthodes dites de Monté Carlo qui effectuent une série de tirages aléatoires avec pour objectif final la conservation du meilleur.
En pratique toutefois, cette technique donne de mauvais résultats si elle n'est pas combinée à un autre algorithme.
Selon le nombre de particules choisi (dont va dépendre la qualité du résultat), la compatibilité avec la contrainte temps réel est difficile.
Par ailleurs, comme toute technique utilisant des tirages aléatoires, les résultats ne sont pas reproductibles. La technique dit « ICP » (pour « Itérative Closest Point ») consiste à associer chaque point LIDAR avec des données précédemment acquises pour estimer la transformation par un traitement du type « moindres carrés ».
Toutefois, le processus de correspondance (ou « matching ») des points est extrêmement coûteux en ressource et sa complexité est de l'ordre de 0(n.log(n)), ce qui interdit en pratique une exécution en temps réel.
En outre, ces méthodes ne sont pas robustes vis-à-vis de données aberrantes.
La présente invention vient améliorer la situation.
Elle propose à cet effet un procédé de génération de données cartographiques, dans lequel au moins un instrument de mesure, mobile, est agencé pour mesurer des distances entre une position courante du mobile et des obstacles dans un environnement du mobile, comportant les étapes :
a) effectuer au moins N mesures de distances entre le mobile et des obstacles dans ledit environnement, par pas angulaires successifs de A/N chacun, où A est un secteur angulaire prédéterminé définissant au moins partiellement ledit environnement du mobile, et associer lesdites distances aux pas angulaires respectifs dans une mémoire de travail, pour établir des données de carte,
b) déplacer le mobile et réitérer l'étape a) pour une nouvelle position courante du mobile, et
c) déterminer, en fonction des distances mesurées pour chaque pas angulaire de la position courante de l'étape b) et de la position précédente de l'étape a), à la fois :
- la position courante du mobile à l'étape b), sur ladite carte, par rapport à sa position initiale à l'étape a), et
- de nouvelles données de ladite carte.
En particulier, à l'étape c) :
- on détermine une fonction de distance globale entre le mobile et des premiers voisins du mobile, par rapport à la carte déterminée à l'étape a), et
- on repère un minimum local de cette fonction, caractérisant une position courante du mobile à l'étape b).
Comme on le verra plus loin en référence à la figure 7 illustrant une variation de cette fonction, on repère un minimum local dans cette variation et ce minimum caractérise alors une position courante du mobile par rapport aux obstacles de son environnement, en tant que premiers voisins.
Selon l'un des avantages que procure l'invention et contrairement aux techniques présentées ci-avant, le procédé objet de l'invention nécessite très peu de calculs (grâce notamment à la recherche du minimum local dans la variation de fonction de distance précitée, comme on le verra plus loin), et affiche des performances remarquables en termes de temps d'exécution. La simplicité du traitement lui permet de fonctionner sur des processeurs modestes et, par conséquent, peut faire aujourd'hui l'objet d'une technologie embarquée. La qualité des résultats et surtout la robustesse aux perturbations lui confèrent un avantage majeur. Avantageusement, le procédé peut comporter en outre une étape d) de réitérations successives des étapes b) et c) pour établir une carte d'au moins un objet ou bâtiment. Par exemple, on prévoit une étape d) de réitérations successives des étapes b) et c) pour déterminer tous les obstacles dans l'environnement du mobile et établir ainsi une carte complète d'au moins un objet dans l'environnement du mobile, ou d'un bâtiment dans lequel est placé le mobile.
A l'étape a), on établit les données de carte en fonction d'une indication de la position courante du mobile à l'étape a), et le procédé comporte alors préférentiellement une étape initiale a0) de détermination de la position absolue du mobile dans l'espace.
Avantageusement pour l'établissement d'une carte 2D, la fonction de distance globale présente un minimum local unique, correspondant pour, l'établissement d'une carte bidimensionnelle, à deux coordonnées cartésiennes X, Y, et un angle Θ définissant une
orientation du mobile dans un plan à l'étape b). Une telle réalisation permet de déterminer la nouvelle position du mobile dans un plan pour l'établissement de la carte 2D dans ce plan. Avantageusement pour l'établissement d'une carte 3D, la fonction de distance globale présente un minimum local unique, correspondant, pour l'établissement d'une carte dans l'espace tridimensionnel, à trois coordonnées cartésiennes X, Y, Z, et trois angles θ,ψ,φ définissant ensemble une orientation du mobile dans l'espace à l'étape b). Une telle réalisation permet de déterminer la nouvelle position du mobile dans l'espace pour l'établissement de la carte 3D précitée.
Dans une réalisation, la fonction de distance globale est estimée par une somme de distances euclidiennes entre un point obstacle déterminé à l'étape a) et un point voisin, détecté comme obstacle à l'étape b).
Dans une réalisation :
- on établit au préalable une table de correspondance (de type « look-up table » par exemple) entre des points voisins d'un point central et des distances euclidiennes estimées entre ce point central et ses voisins,
- pour le calcul de la fonction de distance globale, après détection d'obstacles à l'étape b), pour chaque obstacle, on détermine une distance avec le point obstacle le plus proche, déterminé à l'étape a), et on se réfère à ladite table de correspondance pour déterminer une distance euclidienne entre l'obstacle et un plus proche voisin,
- on estime ensuite ladite somme des distances euclidiennes, pour tous les points obstacles.
Ainsi, dans cette réalisation, le minimum précité de la somme de distances correspond à une orientation et une distance de déplacement du mobile, et, après détermination de
ce minimum, on détermine avantageusement une nouvelle position du mobile et de nouvelles données de carte.
La présente invention vise aussi un programme informatique, comportant des instructions pour la mise en œuvre du procédé ci-avant, lorsqu'il est exécuté par un processeur. Un exemple d'organigramme de l'algorithme général d'un tel programme est présenté en figure 2 ci-annexée et commentée en détails dans la description détaillée ci-après.
D'autres avantages et caractéristiques de l'invention apparaîtront à la lecture de la description détaillée ci-après donnée à titre d'exemple de réalisation possible, aucunement limitatif, et des dessins annexés sur lesquels :
la figure 1 est un exemple d'équipement comportant une unité de calcul pour l'élaboration d'une carte à partir de données de mesure réalisée par un mobile, la figure 2 illustre un exemple d'organigramme des étapes d'un procédé au sens de l'invention,
la figure 3A représente des points de mesure relevés par le mobile,
la figure 3B représente une première carte élaborée sur la base des points de mesure de la figure 3A,
la figure 4 illustre les distances pré-calculées entre un point et ses premiers voisins,
la figure 5 illustre les distances pré-calculées entre chaque point de la figure 3A et ses premiers voisins,
la figure 6A illustre de nouvelles données de mesure de points superposés à la carte de la figure 3B,
la figure 6B illustre une superposition des nouveaux points de mesure aux distances pré-calculées de la figure 5,
la figure 7 illustre le minimum local de la fonction de distance globale précitée,
la figure 8 illustre schématiquement un dispositif MOB1 pour la mise en œuvre du procédé au sens de l'invention.
En référence à la figure 1, l'invention peut être mise en œuvre sur tout équipement possédant ou émulant :
- un dispositif E d'entrée des données,
- un dispositif S de restitution des résultats,
- une mémoire MEM (contenant les données de cartes et de position),
- une unité μΡ de calcul arithmétique et logique.
Des exemples de réalisation possibles sont des systèmes dérivés des architectures de Von Neumann (microcontrôleur, microprocesseur, PC ou autres) et les architectures logiques programmables (tels que les ASIC, FPGA, CPLD et autres).
Ainsi, les entrées au dispositif E sont les données représentant l'environnement voisin du mobile à localiser. Ces données peuvent provenir de différents capteurs (LIDAR par exemple), et sont transformables en coordonnées cartésiennes de points de l'espace indiquant la présence d'un objet à répertorier dans la carte, ou encore d'une zone libre. Ces coordonnées s'expriment dans un repère attaché au mobile à localiser. En notant e l'entrée du système représentant les coordonnées des entités à cartographier (sous forme de nuages de points), dans le cas général, on a :
e = \ P ■ Jl
*Ί i 1 t > J iMobsl
où :
- et est la Centrée du système, - P t est le vecteur de coordonnées de points,
- est le vecteur relatif au statut de chaque point (occupé/libre).
Dans le cas d'un problème plan (détermination d'une carte 2D), on a :
où Xo, Yo sont les coordonnées des points (issus d'un LIDAR par exemple) exprimés dans le repère du mobile. En effet, des systèmes d'acquisition compatibles avec une technique au sens de l'invention sont des télémètres comme par exemple à balayage LASER (de type LIDAR notamment), pour la cartographie 2D.
Les sorties du système [PV\ sont données sous deux formes :
- P : données de position du mobile dans un repère absolu ;
- V : données de carte des zones explorées sous forme de grille d'occupation stochastique ^ (^) , chaque cellule de la grille représentant la probabilité de présence d'un obstacle dans la grille.
La position du mobile est exprimée sous forme de coordonnées de l'espace incluant la position et l'orientation du mobile.
Dans le cas général, on a :
P= [X , Ô} ,,^
où :
- P est l'entrée du système,
- X est la position dans l'espace,
- O est l'orientation dans l'espace.
Dans le cas particulier d'un problème plan (pour établir une carte 2D), on a
P = [X Y e}Absobl et V( x, y) avec x , yGN
Lorsque des données à traiter sont présentes dans le dispositif d'entrée, après une première série de mesures, le traitement décrit ci-après permet d'actualiser la position du mobile, ainsi que la carte de l'environnement.
Toutefois, la première itération doit être traitée différemment afin d'initialiser le traitement, comme suit, en référence à la figure 2.
Après une commande d'initialisation S0, au cours de laquelle on effectue alors une première série de mesures, une première itération d'un ensemble SI d'étapes vise à initialiser le traitement et inscrire les premières informations dans la carte d'environnement qui serviront de référence par la suite du traitement.
Cet ensemble S 1 est constitué de trois étapes :
- une mise à jour S 11 de la carte,
- une segmentation S 12 de la carte, et
- un calcul S 13 des distances au plus proche voisin.
A l'étape SI 1, la position initiale du mobile est supposée connue. On peut supposer par exemple que cette position initiale est nulle. Une variable correspondant à la position du mobile représente cette position initiale, par exemple :
- pour une carte 2D, dans le plan, avec les variables de position : Χ,Υ,Θ
- ou pour une carte 3D, dans l'espace, avec les variables de position: X, Y, Z, φ, ψ et Θ. Connaissant la position du mobile et à partir de la position des points de mesure à répertorier e0 dans la carte, on calcule pour chaque point la cellule associée afin de mettre sa valeur à jour. Dans le cas d'un instrument de mesure de type LIDAR par exemple, les coordonnées de la cellule sont données, pour une cartographie 2D, par :
Distance * cos { Alpha )
&ΤΕΡίίΑρ
Distance * sin ( Alpha }
Xmobile, Ymobile sont les coordonnées du point dans le repère lié au mobile, - la variable Distance est la distance mesurée avec le lidar pour le point courant, la variable Alpha correspond à l'angle de mesure du point courant,
la variable STEPMAP correspond à la largeur d'une cellule de la carte, le vecteur [Tx, Ty] correspond à la translation supposée du mobile par rapport à l'origine de la carte,
- Rz est l'orientation supposée du mobile par rapport à l'origine de la carte, x, y sont des nombres entiers correspondant aux indices de la cellule à actualiser.
Plusieurs méthodes de mise à jour peuvent être envisagées pour la mise en œuvre de l'étape SU. Il peut s'agir d'une méthode binaire, moyenne, ou encore moyenne baysienne.
Une moyenne itérative peut par exemple être adoptée , comme illustré dans l'équation ci-dessous :
F/(C)=( l - ). νι_ί {€)+ .8ί
I
α =
1 Visit i C )
Le fait de borner le nombre de visites permet d'insérer un facteur d'oubli, ce qui donne avantageusement plus d'importance aux acquisitions récentes, comme suit :
Visit B(C)= m { Csi , Yisit { C j j Une solution simple et efficace consiste à ajouter ou soustraire une constante à la valeur précédente selon que la cellule est libre ou occupée.
L'étape suivante S 12 consiste à segmenter la carte stochastique afin de la transformer en une seconde carte binaire nommée (c) : chaque cellule de la nouvelle carte ne comporte que deux états : vide ou occupé. Plusieurs techniques de segmentation peuvent être envisagées, mais un simple seuillage des valeurs est en pratique satisfaisant. On a représenté sur la figure 3A un exemple de réalisation, pour une cartographie 2D, d'une segmentation par pas angulaires Θ, (avec i = 1, N pour N pas angulaires en tout), autour d'une position initiale du mobile PM. Les points noirs illustrent bien entendu les points obstacles. Lorsque tout un secteur angulaire A a été balayé, on obtient finalement une nouvelle carte mise à jour comme illustré sur la figure 3B. Avantageusement, on peut se référer à une indication de position absolue du mobile dans l'espace pour déterminer les données de carte obtenues dans un repère absolu.
L'étape S 13 suivante correspond au calcul des distances au plus proche voisin des éléments de carte répertoriés d'après la première série de mesures selon les figures 3 A ou 3B. On associe à chaque cellule vide de la carte une valeur représentant la distance bornée au plus proche voisin, comme suit :
F , C ) = min ! D ,„„. , D ..,.„ )
avec :
, la distance euclidienne associée à la cellule d'indice C ,
- Dppv, la distance euclidienne avec la cellule occupée la plus proche,
- Dmax, la distance euclidienne maximale de déplacement d'un point entre deux acquisitions successives.
Une opération avantageuse pour accélérer le traitement, en particulier pour le calcul de distance, consiste à utiliser une table pré-calculée (de type LUT pour « Look-Up Table »), chargée en mémoire et contenant, pour un point donné, un ensemble des distances à ce point, pré-calculées, comme illustré sur la figure 4 présentant un cône (de distances croissantes) au fur et à mesure de l'éloignement d'un point central, sommet du cône. Cette précaution permet avantageusement de ne pas avoir à calculer les distances euclidiennes (faisant notamment intervenir des calculs de racines carrées) entre voisins d'un point donné. On a représenté sur la figure 5 la carte segmentée après calcul des distances. Les cellules blanches sont des cellules qui ont leur plus proche voisin à une distance supérieure au déplacement maximal Dmax. Les cellules noires sont les cellules occupées (avec une distance nulle, puisqu'elles sont leur plus proche voisin). Les cellules restantes sont les cellules avec une distance comprise entre 0 et Dmax, le niveau de gris reflétant la distance au plus proche voisin.
Les étapes SU à S 13 sont présentées ici de façon séquentielle à titre d'exemple illustratif, mais elles peuvent être exécutées en parallèle ou traitées point par point. Ainsi, dans l'exemple ci-dessus, en résumé, pour chaque point, on met d'abord à jour la cellule v ^ ) concernée par ce point et on met à jour la cellule de la seconde carte correspondante. On calcule ensuite les distances [ ) des voisins de la
même cellule. Puis, on passe au point suivant, jusqu'à épuisement des points de mesure de la carte des figures 3 A ou 3B.
On effectue ensuite une deuxième série de mesures et on explique ci-après comment on détermine, partant des distances estimées comme illustré sur la figure 5, à la fois : un déplacement de l'instrument de mesure, et
de nouvelles données de la carte.
Pour une itération suivante, et plus généralement, pour les itérations suivantes du traitement, on estime la position du mobile pour ensuite actualiser les données de carte en s 'appuyant sur cette estimation. Ainsi, en référence à nouveau à la figure 2, un groupe d'étapes courantes Sn comporte :
- une étape Snl d'estimation de la position du mobile,
- une étape Sn2 de mise à jour de la carte,
- une étape Sn3 de segmentation de la carte, et
- une étape Sn4 de calcul des distances au plus proche voisin.
On dispose à cette étape Snl d'une carte i (^) en tant que modèle représentant l'espace exploré incluant les distances aux plus proches voisins occupés. Lorsqu'un nouveau jeu de données de mesures ei est présent sur le dispositif d'entrée E, ce jeu étant appelé « scène » ici, le traitement recherche la meilleure correspondance entre le modèle de carte et cette scène.
Pour une position supposée du mobile, on calcule pour chaque point de ei la cellule associée afin d'en estimer la somme des distances. Concernant la position du mobile, on indique qu'il est possible d'initialiser le traitement avec la meilleure position connue et qui consiste en la position estimée à l'itération précédente. Toutefois, dans une réalisation, cette estimation peut éventuellement être améliorée avec une mesure issue d'un autre capteur (par odométrie par exemple).
Ainsi, en s 'appuyant sur la position estimée, on calcule la position de chaque point de mesure issue de la dernière acquisition, dans le repère de la carte conçue à l'étape précédente (figure 3B par exemple). On obtient alors ces points, superposés à la carte obtenue à l'itération précédente, comme représenté sur la figure 6A. On calcule ensuite, pour chaque point issu de la dernière mesure, sa distance au plus proche voisin déterminée comme indiqué précédemment en référence à la figure 5, en exploitant ainsi l'information enrichie de la carte telle que représentée avec les estimations de distances conformément à la figure 5. Pour chaque nouveau point ei, la distance à son premier voisin est cumulée. Une variable représentant la somme des distances aux premiers voisins est alors obtenue. Cette somme peut être apparentée à la somme des moindres carrés classiquement utilisés en analyse numérique. Ce traitement permet de décrire une fonction mathématique dont on recherche un minimum local. La somme des distances précitées devient alors un critère à minimiser. En effet si la somme des distances est nulle, la scène correspond parfaitement au modèle. En revanche, si la somme des distances est grande, alors le modèle et la scène sont éloignés. Si la scène et le modèle concordent à une distance Dmax près, alors la transformation entre les deux reflète bien un déplacement du mobile.
On a représenté sur cette figure 6B une illustration de la scène ei (points) plaquée sur le modèle (c) (de la figure 5).
On définit alors une fonction mathématique Critère = f (P) à minimiser. Dans le plan pour une carte 2D, la fonction s'exprime sous la forme Critère = f (X, Υ,θ).
Selon un principe de la présente invention, on montre que / est une fonction acceptant des minima locaux comme illustré sur la figure 7. Cette fonction est évaluable, mais son expression analytique est inconnue. II apparaît en particulier que dans le cadre du problème du SLAM et sous certaines conditions réunies ici, une approche locale peut être utilisée et donne de très bons résultats. Le minimum local est bien le minimum recherché si l'hypothèse sur le déplacement du mobile est suffisamment fiable. Si l'on suppose qu'au début du traitement, les informations sont suffisamment vraisemblables pour initialiser le traitement, alors le résultat de chaque itération est lui aussi suffisamment fiable.
On a représenté en particulier sur la figure 7 un exemple de relevé de la fonction / projeté dans le plan Θ pour un problème en deux dimensions (cartographie 2D). On constate aisément que la fonction n'accepte localement qu'un minimum. Il a néanmoins été observé la même tendance dans le cadre d'une cartographie 3D.
On peut prévoir un grand nombre d'algorithmes possibles de recherche de minimum. A titre d'exemple, on peut citer l'algorithme de Nelder et Mead qui a donné ici de bons résultats.
Lorsque le minimum local de la somme de distances a été trouvé, la nouvelle position Pi du mobile est par conséquent connue. On peut alors actualiser les données de carte en mémoire aux étapes suivantes Sn2, Sn3 et Sn4, comme expliqué ci-avant respectivement pour les étapes Sl l, S12 et S13.
Ainsi, en bref, après une première acquisition comme celle illustrée sur la figure 3A, on se réfère à une table de correspondance (LUT) pour déterminer des distances de premiers voisins autour des points issus de la première acquisition, comme illustré sur la figure 5. Une prochaine acquisition permet de déterminer des points subséquents,
comme ceux qui se superposent, comme illustré sur la figure 6A, à la carte précédemment établie représentée sur la figure 3B. Par consultation de la table de correspondance donnant les distances des plus proches voisins (comme illustré sur la figure 6B), on estime une somme globale des distances entre les points dernièrement acquis et ceux de la carte précédemment établie et on recherche un minimum local de cette somme de distances. De façon avantageuse, il est établi qu'il n'existe habituellement qu'un minimum local (figure 7), de sorte que la position courante du mobile dans la carte représentée sur la figure 3B est donnée sans ambiguïté et il est alors possible d'identifier de nouveaux points de mesure dans la dernière acquisition pour enrichir les données de la carte.
Ce traitement, répété, à chaque nouvelle acquisition de données, permet de résoudre le problème du SLAM, sans utiliser d'extraction d'amer, de tirage aléatoires, de modèles stochastiques (variance ou autres), ni de traitements lourds (correspondance ou « matching » de points d'images, etc.). On peut ainsi parvenir à des performances remarquables en termes de temps de calcul.
En référence à nouveau à la figure 2, bien entendu, tant que la carte complète souhaitée n'est pas établie à l'étape finale SF, une série de mesures suivante Sn+1 peut être effectuée et le groupe d'étapes Sn peut être répété.
Un avantage de la présente invention est sa rapidité de calcul, notamment du fait de :
- l'utilisation de tables pré-calculées pour la mise à jour de la carte,
- l'utilisation d'un algorithme de recherche locale pour l'estimation de la position.
Un second avantage est la précision obtenue. Le traitement rapide des données permet en effet de mettre à jour les cartes en temps réel et par conséquent d'utiliser un grand nombre de données. Il apparaît alors un phénomène statistique qui fiabilise le système : une donnée aberrante est «noyée» parmi les données valides et n'influence que très peu le résultat. De plus, elle peut être corrigée en grande partie aux itérations suivantes.
Un troisième avantage est sa simplicité. Le traitement est indépendant des modèles d'instrument de mesure ou des capteurs utilisés. Il ne s'appuie pas sur un modèle mathématique qu'il faudrait recalculer en fonction des applications, des caractéristiques de motorisation du mobile ou de ses capteurs. En outre, les quelques paramètres de l'algorithme du traitement sont directement en relation avec des considérations physiques (précision et taille de la carte, vitesse maximum du mobile, déplacement maximum, etc.) et sont donc faciles à régler. Le traitement peut aussi être utilisé pour localiser un mobile de façon absolue dans l'environnement. Une telle application, couramment appelée « global positionning » ou « kidnapping », consiste à placer le mobile à une position inconnue dans un environnement connu, le mobile devant se localiser de façon absolu dans cet environnement. L'invention permet une telle application si le mobile dispose bien entendu de données préalables de carte (même partielles) de l'environnement dans lequel il est placé.
Bien entendu, la présente invention s'applique aussi bien en 2D qu'en 3D. En outre, il est possible d'utiliser également le traitement au sens de l'invention pour de la cartographie, mais aussi pour de la reconnaissance d'objets. Une carte de bâtiment peut alors être remplacée, dans une telle application, par l'établissement d'une base de données d'objets et les acquisitions scannées sont alors remplacées par des acquisitions (même partielles) 3D d'un objet. Ainsi, une autre application possible de l'invention concerne la reconnaissance d'objets 3D, par mesure de distances, à l'aide d'un mobile. Le traitement au sens de l'invention a donné de bons résultats, avec encore l'observation d'un minimum local (bien marqué) de la fonction de distance globale précitée.
Par ailleurs, on peut prévoir une pluralité d'instruments de mesure propres à communiquer, chacun pour au moins un autre instrument, ses données de carte, de sorte qu'une étape de recoupement des données de carte issues de différents instruments de mesure puisse être menée. Une telle réalisation permet avantageusement de diminuer exactement le temps de traitement par le nombre de mobiles participant à l'élaboration d'une carte complète.
La présente invention vise aussi un dispositif de génération de données cartographiques pour la mise en œuvre du procédé décrit ci-avant. En référence à la figure 8, un tel dispositif comporte au moins un instrument mobile, de mesures de distances à un ou plusieurs obstacles OBS, comprenant :
- une unité de mesures de distances U-MES,
- des moyens de déplacement de l'instrument M-DEP,
- des moyens de communication COM des données mesurées à une unité de calcul de données de carte et de position courante du robot dans cette carte, et
- l'unité de calcul précitée.
En particulier, l'unité de calcul ΜΕΜ-μΡ comporte au moins un processeur μΡ et une mémoire MEM de travail pour :
- associer les distances mesurées aux pas angulaires respectifs de mesure dans la mémoire de travail, et
- déterminer, en fonction des distances mesurées pour chaque pas angulaire de positions courantes successives, à la fois :
- la dernière position courante de l'instrument de mesure, sur ladite carte, et
- de nouvelles données de ladite carte.
A cet effet, les minima des fonctions de distance globale sont avantageusement repérés comme décrit ci-avant en référence à la figure 7.
Dans l'exemple de la figure 8, l'instrument de mesure mobile intègre l'unité de calcul précité. Toutefois, dans une variante, l'unité de calcul peut être séparée (comme par
exemple une unité PC connectée à l'instrument de mesure par un moyen de communication sans fil).
Par ailleurs, dans l'exemple de la figure 8, le dispositif MOBl peut comporter en outre des moyens d'émission/réception EM/REC (par exemple par communication sans fil) de données de carte qu'il peut échanger avec un autre dispositif MOB2 pour l'élaboration d'une carte complète du type précité, comme indiqué ci-avant.