Projet Prisme

previous up next contents
Précédent : Logiciels Remonter : Projet PRISME, Géométrie, Algorithmes et Suivant : Actions industrielles



Résultats nouveaux

Programmation des algorithmes géométriques

 Mots-clés : géométrie algorithmique, degré algébrique des algorithmes, triangulation, triangulation de Delaunay, union de polygones, reconstruction de formes, alpha-formes


Triangulation de Delaunay

 

Participant : Olivier Devillers


Nous avons proposé une nouvelle structure de données pour le calcul de la triangulation de Delaunay de points du plan permettant de combiner simultanément : une bonne complexité théorique dans le cas le pire, un très bon comportement pratique et une occupation mémoire réduite.

La structure de localisation utilisée comporte plusieurs niveaux. Le niveau le plus bas contient la triangulation de Delaunay de tous les points, ensuite chaque niveau contient la triangulation d'un échantillon aléatoire des points du niveau précédent. La localisation d'un nouveau point est effectuée en marchant dans une triangulation afin de déterminer le plus proche voisin du nouveau point à ce niveau ; puis la marche reprend à partir de ce voisin au niveau inférieur. L'utilisation d'échantillons assez petits (1 %) garantit un faible coût mémoire ; la marche et l'utilisation du plus proche voisin pour changer de niveau assurent une localisation rapide de la requête [35].

Union de polygones

 

Participants : Jean-Daniel Boissonnat , Eelco [ de]Lange, Monique Teillaud


Nous avons conçu et implanté un algorithme qui calcule l'union d'un ensemble de polygones par division et fusion. Le choix du schéma de division-fusion est guidé par le souci d'éviter de calculer toutes les intersections présentes à l'intérieur de cette union : ne sont calculées que celles qui interviennent, à une étape quelconque de la récursion, sur le bord de l'union courante de l'ensemble de polygones présents. Bien que cet algorithme ait une complexité quadratique dans le pire des cas (et qu'il n'existe pas d'algorithme asymptotiquement meilleur), nous avons expérimentalement démontré son efficacité en pratique. Un soin particulier a été apporté à l'analyse de la complexité algébrique de cet algorithme.

CGAL

 

Participants : Hervé Brönnimann , Olivier Devillers , Katrin Dobrindt , Andreas Fabri , Monique Teillaud , Mariette Yvinec


La bibliothèque d'algorithmes géométriques CGAL (Computational Geometry Algorithms Library) (voir [*], [*]) a vu son développement poursuivi cette année avec notamment la programmation de structures de données et d'algorithmes de triangulation dans le plan qui sont disponibles dans la version 0.9.

Nous avons également débuté la programmation des triangulations dans l'espace ainsi que des applications à la reconstruction, destinées à être intégrées dans une prochaine version.

En ce qui concerne les applications à la reconstruction, nous nous sommes concentrés cette année sur les alpha-formes . Étant donné un ensemble de points qui échantillonne la surface de l'objet, nous cherchons à construire de façon automatique un maillage triangulaire qui approxime la forme de l'objet.

Nous nous basons sur les alpha-formes qui dérivent de la triangulation de Delaunay et peuvent être calculées efficacement.

Les algorithmes de reconstruction en 2D et 3D font partie de la bibliothèque support de CGAL et ont été implantés en C++ avec une interface MOTIF et OPENINVENTOR.

Robustesse, traitement des dégénérescences et vérification

 Mots-clés : robustesse, perturbation, dégénérescence, vérification, balayage, enveloppe convexe


Algorithmes de balayage robustes

 

Participant : Jean-Daniel Boissonnat


Les algorithmes de balayage requièrent l'évaluation de prédicats de degré élevé, ce qui explique leur réputation d'algorithmes hautement sensibles aux erreurs d'arrondi. Un algorithme bien connu, car il intervient dans de nombreux logiciels d'applications (en particulier le calcul d'opérations booléennes) et pose de délicats problèmes de stabilité numérique, est l'algorithme de Bentley et Ottmann qui recherche les intersections d'une famille de segments du plan. On montre dans ce travail [32] qu'on peut modifier l'algorithme classique de façon à diminuer la précision requise et/ou le temps consacré aux opérations arithmétiques sans augmenter pour autant sa complexité. Ces analyses s'appuient sur deux nouveaux modèles d'arithmétique. Le premier n'autorise que l'évaluation de signes d'expressions algébriques de degré borné, le second permet le calcul exact de telles expressions. Pour le problème de la recherche des intersections d'une famille de segments, l'algorithme naïf qui teste toutes les paires est quadratique mais de degré 2. L'algorithme de balayage a en général une meilleure complexité (qui dépend du nombre d'intersections) mais le degré de l'algorithme classique est 5. On montre que le degré peut être abaissé à 3 dans le premier modèle, 2 dans le cas particulier important où les segments appartiennent à deux familles de segments disjoints, et 2 dans le deuxième modèle.

Travail réalisé en collaboration avec Franco Preparata de Brown university.

Techniques de perturbation

 

Participants : Olivier Devillers , Pierre Alliez


Dans le cadre de la triangulation de Delaunay pour des métriques convexes, nous avons mis au point un nouveau schéma de perturbation afin de résoudre les problèmes de dégénérescences. Le principe est simple : plutôt que de perturber les données du problème, et donc de résoudre le problème pour des données légèrement différentes, on préfère perturber la définition du problème et résoudre un problème légèrement différent sur les données originales.

Dans le cas de la triangulation de Delaunay on peut opérer en faisant varier la métrique associée. Perturber la définition du problème plutôt que les données présente essentiellement deux avantages. Tout d'abord la perturbation ne dépend plus d'une numérotation des points et donc le résultat calculé est également indépendant de cette numérotation. Ensuite les calculs sont en général beaucoup plus simples [29].

Algorithme randomisé incrémental pour enveloppes convexes dégénérées

 

Participant : Hervé Brönnimann


Les algorithmes randomisés incrémentaux présentés dans la section [*] ont une simplicité qui les rend intéressants pour l'implantation. Malheureusement, ils ne savent en général pas traiter les cas dégénérés. Ceci est dû à la formulation même du problème et non aux techniques algorithmiques. Nous avons reformulé un de ces problèmes, celui de l'enveloppe convexe, pour tenir compte de ces cas dégénérés.

Dans le formalisme des algorithmes randomisés, il y a des objets, des régions définies par ces objets, et une relation de conflit entre objets et régions. Un algorithme randomisé qui utilise la méthode du graphe d'influence construit l'ensemble des régions définies qui ne sont en conflit avec aucun des objets donnés. Pour l'enveloppe convexe, les objets sont des points de $R^d$, et les régions des demi-espaces bornés par d points. Lorsque les points sont en position dégénérée, une région peut être définie par tous les d-uplets des n points qui la bordent. Le nombre de régions sans conflit devient $O(n^d)$ au lieu de $O(n^{\lfloor d/2 \rfloor})$ si les points sont en position générale, et ces régions ne fournissent plus la solution au problème. En définissant les régions de manière plus précise, on peut garder une correspondance entre régions sans conflit et la solution du problème.

Vérification de structures géométriques

 

Participant : Olivier Devillers


Un problème important consiste à proposer des méthodes simples et efficaces pour vérifier que le résultat d'un algorithme géométrique est correct. Nous avons mis au point des algorithmes de vérification pour des polytopes convexes, des subdivisions planaires, des triangulations de Delaunay. Nos vérificateurs sont plus simples que ceux qui avaient été proposés précédemment [22].

Travail réalisé en collaboration avec G. Liotta, université de Rome et R. Tamassia et F. Preparata, université de Brown

Arithmétique des prédicats

Mots-clés : arithmétique, calcul exact, calcul modulaire, régularisation, expansion flottante


Calcul exact de signes de déterminants

 

Participants : Hervé Brönnimann , Mariette Yvinec


De nombreux prédicats intervenant dans les algorithmes géométriques consistent à évaluer le signe d'un déterminant. En empruntant certaines idées à l'algorithme de Clarkson[Cla92], nous avons pu étendre en dimensions supérieures la méthode d'évaluation du signe d'un déterminant pour les déterminants $2 \times 2$ et $3 \times 3$ [20]. Le jeu consiste à évaluer de façon exacte le signe d'un déterminant dont les entrées sont des entiers sur $b$ bits en utilisant l'arithmétique flottante cablée. La méthode consiste à approximer l'hyperplan défini par les $d-1$ premières colonnes du déterminant par une union de boîtes verticales dont les projections pavent $R^{d-1}$. Nous pouvons, en utilisant une arithmétique simple précision, localiser le d-ième vecteur par rapport à cette union de boîtes. Lorsque son extrémité est localisé dans une boîte, ce d-ième vecteur est itérativement doublé, relocalisé et réduit. Si au cours du procédé, le vecteur sort de l'union des boîtes approximantes, le signe du déterminant est connu ; sinon, il est démontré nul après un certain nombre d'itérations.

Calcul modulaire

 

Participants : Hervé Brönnimann , Sylvain Pion


Pour calculer le signe exact d'un déterminant, et plus généralement d'une expression algébrique à variables entières (comme la cosphéricité), nous nous sommes intéressés à une méthode qui calcule cette expression modulo plusieurs nombres premiers. Nous décrivons une nouvelle méthode pour déduire le signe de cette expression en simple précision. Cette méthode est plus rapide que la reconstruction classique qui utilise la reconstruction en précision multiple.

Le théorème des restes chinois assure qu'en calculant une expression modulo un nombre suffisant de nombres premiers entre eux, sa valeur est connue de façon exacte. Typiquement, le processus de reconstruction d'un nombre à partir de ses résidus se fait à l'aide d'un calcul multiprécision. Nous avons montré [18] que le signe de ce nombre peut être calculé de façon exacte en simple précision (les nombres intervenant dans les calculs ont la même taille que celle des entrées). Une étude de performance a montré que cette approche est plus rapide que ses homologues exacts. Bien que non-adaptative, elle peut être complémentée par des filtres flottants. Nous étudions aussi la réalisation de tels filtres avec une arithmétique d'intervalles.

Travail réalisé en collaboration avec I. Emiris, Projet SAFIR, et V. Pan, City University of New-York.

Arrondi exact de structures géométriques

 

Participants : Hervé Brönnimann , Sylvain Pion


Dans le cadre de la régularisation de structures géométriques, nous avons adapté nos résultats sur le calcul modulaire pour produire l'arrondi exact de constructions géométriques élémentaires.

Plus spécifiquement, la méthode de calcul du signe d'un entier représenté par ses résidus modulaires peut s'interpréter comme fournissant le résultat avec une erreur relative inférieure à 1. Elle peut s'étendre pour fournir une précision relative inférieure à l'arrondi de la machine, assurant ainsi un arrondi exact de la quantité en question. Idem pour un nombre rationnel. Nous n'avons pas encore étudié l'utilisation de ces techniques numériques dans un cadre plus vaste d'arrondi de structures géométriques, où le problème est alors de gérer les interactions entre les différents arrondis de façon à préserver la planarité (ou d'autres propriétés géométriques) du plongement de cette structure.

Expansions flottantes

 

Participant : Marc Daumas


On appelle expansion flottante une suite de nombres flottants classés par ordre de valeur absolue décroissante dont la somme est la valeur de l'expansion. Les expansions flottantes permettent un calcul exact sur les nombres flottants qui n'utilise que les opérateurs flottants usuels (supposés satisfaire les propriétés de la norme IEEE 754).

Nous avons mis au point de nouveaux algorithmes pour la multiplication en temps $O(n^2 \log n)$ au lieu de $O(n^3)$ où n est le nombre de mots utilisés dans les expansions en entrée. Ces algorithmes nous permettent surtout un meilleur contrôle des données pour éviter des rappels de mémoire répétés.

Nous avons utilisé ces méthodes pour le calcul de déterminants. Bien que moins rapides que le calcul modulaire, ces méthodes présentent l'avantage de ne pas être limitées aux calculs sur les entiers. On obtient des résultats raisonnables pour des déterminants de dimension inférieure à huit.

Applications de la géométrie algorithmique

 Mots-clés : placement géométrique, reconstruction de formes, aménagement de satellites, géologie


Aménagement de satellites

 

Participants : Jean-Daniel Boissonnat , Eelco [ de]Lange, Monique Teillaud


Nous nous sommes particulièrement attachés cette année à l'amélioration des performances et de la robustesse du logiciel de placement d'antennes. Ce logiciel [17] calcule une section plane de la différence de Minkowski de deux polyèdres convexes (voir [*]).

L'étude des cas dégénérés (faces parallèles dans les polyèdres de départ, contacts multiples entre deux polyèdres...) a été achevée. Nous terminons également l'étude systématique des tests numériques intervenant dans l'algorithme. Tous les tests se ramènent à l'évaluation de prédicats d'orientation, donc de déterminants, sur des entrées qui sont elles-mêmes le résultat de calculs sur les données. Il s'agit de choisir soigneusement la façon d'exprimer les tests pour obtenir des entrées de plus petit degré possible dans les déterminants. Des méthodes de calcul exact du signe de déterminants sont ensuite utilisées, ce qui permet d'évaluer les prédicats de façon exacte en double précision pour des données en simple précision.

La visualisation de l'espace admissible pour un instrument nécessite le calcul de l'union de régions polygonales. Une méthode naïve avait été utilisée dans la première version du prototype. Cette année, un nouvel algorithme (section [*]) a été évalué, ce qui a permis d'améliorer la rapidité du logiciel.

Une méthode de placement simultané de deux objets a également été développée. Elle s'inspire de méthodes développées dans le projet dans le cas plan ([*]) et les adapte au problème présent : placement avec deux degrés de liberté en translation, sous des contraintes tri-dimensionnelles. Ce perfectionnement permet à l'utilisateur de choisir une position pour l'instrument courant qu'il désire placer sur la paroi, en anticipant sur le placement de l'instrument suivant : la visualisation de l'espace admissible pour ces deux objets rend possible le choix d'une position garantissant l'existence de positions admissibles pour l'instrument suivant.

Géologie

 

Participants : Jean-Daniel Boissonnat , Stéphane Nullans


Le but de ce travail est de montrer qu'il est possible de reconstruire (au moins d'approximer), à partir de données incomplètes (points de données, portions d'interfaces, sondages, coupes incomplètes ou interprétées, MNT...) un modèle géométrique, cohérent, de la géologie du sous-sol.

L'algorithme général de reconstruction a été conçu l'année dernière et consiste à assembler les objets géologiques selon leurs proximités grâce aux diagrammes de Voronoï.

L'extension de l'algorithme de reconstruction, de la dimension 2 (coupes géologiques) à la troisième dimension a nécessité la programmation de nombreux algorithmes géométriques : diagramme de Voronoï 3D, triangulation de polyèdres non convexes, intersections de surfaces polygonales et volumes polyédriques ; ainsi que la construction de structures de données permettant des accès faciles et rapides aux différents éléments géométriques et topologiques de notre modèle.

De nombreux modèles, fournis par le B.R.G.M, dont ceux de Morges (Alpes françaises) (figure [*]) et du massif Armoricain, ont ainsi été reconstruits. Le logiciel développé est actuellement utilisé par des géologues du B.R.G.M.


  Figure: Reconstruction du sous-sol de Morges.  

\begin{figure} \begin{center} \includegraphics [width=6cm]{morges_init.ps2} \h... ...{.5cm} \includegraphics [width=6cm]{morges_final.ps2} \end{center} \end{figure}


Travail effectué dans le cadre du programme GEOFRANCE 3D, en collaboration avec M. Guillen et M. Courrioux, Département Géophysique et Imagerie Géologique du BRGM (Bureau de Recherche Géologique et Minière) d'Orléans et M. Perrin, École des Mines de Paris.

Robots parallèles

 Mots-clés : robot parallèle, calibrage, conception optimale


Calibrage des robots parallèles

 

Participants : David Daney , Jean-Pierre Merlet


La calibrage des robots parallèles permet d'augmenter la précision de positionnement de l'organe terminal à partir de mesures effectuées sur le manipulateur. Un état de l'art nous a permis de recenser les différentes modélisations de ce type de robot et d'en dégager les paramètres susceptibles d'avoir l'influence la plus importante sur la précision du robot. Puis, les méthodes de calibration existantes ont fait l'objet d'une comparaison en vue d'en dégager points forts et points faibles. Des simulations effectuées avec certaines de ces méthodes nous ont montré l'importance de l'influence du bruit de mesures sur les résultats obtenus. Plusieurs algorithmes ont retenu notre attention (Innocenti, Murareci) et ont fait l'objet d'une reprogrammation en vue d'une amélioration et d'une prise en compte des erreurs de mesures. Ceci nous a permis d'imaginer une méthode originale, limitant volontairement la mobilité du manipulateur, pour déterminer de façon symbolique les paramètres géométriques du robot. Elle s'oppose aux méthodes numériques (quasi-totalité des méthodes existantes dans la littérature) et ne nécessite pas de mesures externes ce qui en simplifie considérablement l'utilisation. Cette méthode est en cours d'implantation.

Conception optimale

 

Participant : Jean-Pierre Merlet


L'un des problèmes de la conception optimale est d'arriver à déterminer les performances d'un robot donné pour vérifier qu'elles satisfont le cahier des charges. Or la plupart des performances intéressantes dépendent de la posture de la plate-forme mobile et l'on ne sait, en général, calculer la performance que pour une posture donnée alors que l'on cherche à déterminer ses extrema lorsque le plateau décrit un espace de travail donné en 6D (position et orientation). Discrétiser cet espace conduit en général à des temps de calcul importants sans que les résultats soient garantis. Nous avons développé des algorithmes efficaces qui permettent de trouver les extrema de manière garantie pour plusieurs types de performances, ceci lorsque l'orientation est fixée et que le plateau peut se déplacer dans un objet 3D quelconque [23,36].

D'autre part, nous avons élaboré une méthodologie originale de conception des robots parallèles. Dans une première étape, les paramètres définissant la géométrie du robot sont regroupés pour constituer l'espace des paramètres dans lequel un point représente une géométrie unique de robot : des méthodes géométriques permettent alors de déterminer toutes les régions de l'espace des paramètres (donc toutes les géométries de robot) où certains critères de performance sont satisfaits [15]. Dans une deuxième étape, on procède à l'intersection des régions obtenues pour les différents critères, ce qui conduit à une région finale dans laquelle doit se situer le point représentatif du robot optimal, s'il existe. La troisième étape utilise le fait que la région finale est en général petite : elle est donc discrétisée et en chaque point on vérifie si le robot correspondant satisfait le cahier des charges en évaluant ces performances à l'aide des algorithmes présentés dans le paragraphe précédent.

Cette méthodologie a été implantée dans l'outil logiciel DEMOCRAT [14,24] qui réalise automatiquement les trois étapes. La description du cahier des charges nécessaire à l'étape finale est faite à l'aide d'un langage de type C où des instructions supplémentaires ont été définies pour permettre l'évaluation des performances les plus courantes. Cet outil permet de déterminer s'il existe un ou des robots optimaux et établit automatiquement une fiche descriptive directement utilisable pour la réalisation. Il a été utilisé dans le cadre de diverses applications industrielles.

Mini-robot parallèle

 

Participant : Jean-Pierre Merlet


Nos contacts avec le milieu médical ont montré que les opérations de chirurgie minimalement invasive nécessitaient des mouvements de faible amplitude mais de grande précision, par exemple pour positionner la tête d'un endoscope. De tels mouvements sont réalisables avec un mini-robot. Les contraintes imposées par ce type de tâche sont toutefois importantes : le robot est soumis à des forces importantes lors de la pénétration de l'endoscope et son diamètre doit être de l'ordre du centimètre. Mais ces contraintes sont typiquement celles auxquelles les robots parallèles répondent : nous avons donc décidé d'étudier et de développer un robot à trois degrés de liberté [25,26] dont le prototype MIPS à actionneurs magnétiques est présenté en figure [*]. Ce type de robot pourrait être aussi utilisé pour des tâches d'inspection.
  Figure:   Mini-robot MIPS : diamètre 1,1 cm, charge maximum de 500 grammes

\begin{figure} \begin{center} \unitlength 1cm \includegraphics [width=5cm]{mips_charge_reduit.ps} \end{center} \end{figure}




previous up next contents Précédent : Logiciels Remonter : Projet PRISME, Géométrie, Algorithmes et Suivant : Actions industrielles