810 likes | 1.07k Views
Simulation interactive basée sur la physique . Modélisation de corps déformables et exemples en chirurgie. Par C Chaillou, P Meseure, L Grisoni, J Lenoir. Plan du cours. Introduction et Vocabulaire Présentation générale Modélisation Simulation Un moteur complet : Spore
E N D
Simulation interactive basée sur la physique Modélisation de corps déformables et exemples en chirurgie Par C Chaillou, P Meseure, L Grisoni, J Lenoir
Plan du cours • Introduction et Vocabulaire • Présentation générale • Modélisation • Simulation • Un moteur complet : Spore • Modèle déformable 1D • Un exemple d ’habillage avec des surfaces implicites • La simulation chirurgicale • La formation des médecins • Exemples de simulateurs
>100Hz Modèle mécanique Retour d’effort Forces Capteurs Positions >30Hz Moteur desimulation Visualisation Positions Machine Introduction Opérateur
Vocabulaire • Dynamique versus statique • Statique • Résolution d’un système • Ni régime transitoire, ni phénomène dynamique • Fréquence du système quelconque • Dynamique • Intégration par rapport au temps • Synchronicité : Calibrage des repères temporels machine et monde • Mise en évidence des différents aspects • Représentation mécanique crédible • Calculer les évolutions en temps réel • Fournir le nouvel état pour la visualisation et le retour d ’effort
Présentation Générale • La mécanique des corps rigides • Les modèles mécaniques déformables • Particules • Masses-ressorts • Eléments finis • Les méthodes d’intégration • La gestion des collisions • Les habillages
Mécanique des corps rigides • Mécanique du point : loi de Newton • On fait le bilan des forces et on en déduit l’accélération • Intégration de l’équation • Il faut tenir compte à la fois de la position et de l’orientation • Position: • Centre de masse : mécanique du point • Orientation : équation de Newton
Les modèles à particules • Modèles • Ensemble de points autonomes • Un ensemble de forces d ’interaction • comme les équations de Navier-Stokes • Un générateur • Un durée de vie • Particulièrement adaptés pour les fluides
Les masses-ressorts • Modèle masses ressorts : graphe dont • Les noeuds sont les masses • Les arcs des liaisons visco-élastiques • Bilan des forces appliquées en chaque point • Double intégration pour obtenir • La vitesse puis • La position des noeuds
Les particules et masses-ressorts • Points positifs • Facile à mettre en œuvre • Permet de prendre en compte des non-linéarités • Très utilisé pour les vêtements • Mais peu réalistes • Difficile de faire de la conservation de volume • Risque de divergence des calculs • Et surtout, pas d ’identification facile au réel
Les modèles éléments finis • Principe des travaux virtuels • Equation sous forme d’une intégrale à résoudre • Découpages du volume en éléments intégrables • Etude du phénomène au niveau de chaque élément • Regroupement du résultat sous forme d’un système • Déplacement des autres points par interpolation
Les modèles éléments finis • Points positifs • Modèle très connu en mécanique • De bonnes méthodes de résolution • Relativement indépendant du maillage • Simple avec un modèle linéaire et des petits déplacements • Identifiable • Mais • Des calculs très importants • Difficile à mettre en œuvre
Approche lagrangienne • Principe : • On suppose un jeu de déformations possibles (dilatation, torsion, courbure...) • A l’aide la physique, on quantifie l’amplitude de ces déformations • Approches basées sur l’analyse modale • Algorithme de recherche de valeurs propres • Mécanique de Lagrange • Modélisation du système en termes de degrés de liberté • Un jeu de déformations possible = 1 degré de liberté
Les méthodes d ’intégration • Pour toutes les modélisations, on peut exprimer le problème sous la forme d ’équations différentielles d ’ordre 2 • De la forme MA=B • A est un vecteur fonction des accélérations • B est un vecteur fonction des caractéristiques et des entrées externes • M une matrice
Les méthodes d ’intégration • Intégration explicite: • Ex: Euler: v(t+dt)=v(t)+a(t)dt et x(t+dt)=x(t)+v(t)dt • Schémas d’ordre plus élevé: point milieu (ordre 2) , Runge Kutta 4 • Souvent peu stable, génère oscillations haute fréquence • Intégration implicite • Implicite: x(t+dt)=x(t)+f(t+dt)dt • Généralement approximation linéaire de df/dx: • x(t+dt)=x(t)+df/dx(t+dt)dxdt • Nécessite inversion matricielle, mais le dt toléré est plus important
Gestion des collisions • C ’est un problème central en simulation • On peut décomposer le problème en trois: • La détection des collisions entre les primitives • Presque toujours des polyèdres • Les méthodes d ’accélération • Le calcul des réponses
Détection des collisions • Les différentes possibilités : Détection spatiale Détection spatio-temporelle Continue/dynamique Statique Discrète Dichotomie Anticipation Retour arrière Intersection vide Distance inter-objets Intersection des surfaces Mesure des interpénétrations Intersection Intersection 3D des volumes de trajectoire Intersection 4D Calculs analytiques Interpénétration Instant du contact
A A d B B d Détection des collisions • Intersection entre polyèdres convexes • Non-intersection par plan séparateur • Calcul de distance de séparation • Calcul d'interpénétration • Calcul de l ’intersection
Couplesd'objets Zone deCollisions Détectionexacte Détectionapproximative Recherchede proximité Objets (narrow-phase) (broad-phase) Accélération des collisions • Trouver les objets en forte probabilité de collisions • Détection des non-collisions sûres • Organisation en pipeline : • Détection de proximité • Division spatiale • Critères topologiques ou cinématiques
O1 O2 R1 R2 Pmax1 Pmax2 Pmin1 Pmin2 b2B2 A b1B1 T B a2A2 a1A1 L Accélération des collisions • Détection approximative dist(O1,O2)²>(R1+R2)² Sphères AABB k-DOP OBB Choix parmi 15 directions différentes
Réponses aux collisions • Choc élastique: conservation de la quantité de mouvement, de l’énergie cinétique, principe d’action-réaction • Force de réponse à la collision devient une force de pénalité, généralement calculée à partir de distance d’interpénétration • Lors des pénétrations, création d ’un ressort virtuel qui tend a faire s ’éloigner les objets • Le traitement des collisions entre des corps déformables n ’a pas encore de solutions générales
Habillage • les points du modèle mécanique comme squelette ou points de contrôle de surfaces. • Cela réduit les calculs mécaniques • Présentation géométrique de la surface • Free Form Deformation • Fonctions implicites= Iso-potentielles bâties autour d’un squelette
Le moteur de simulation SPORE • Les objectifs et principes • Le découpage en trois aspects • Le noyau logiciel
Les objectifs de Spore • On veut : • Différents modèles physiques compatibles avec le temps réel • détecter les collisions et interpénétrations entre tous ces corps • SPORE est décomposée en : • Un noyau : résolution et collisions • Une bibliothèque de corps autonomes • Corps inertes, pas de calcul de comportement • Corps actifs, position définie par l’utilisateur • Corps passifs, Animés par les lois de la physique
Dispositif Modèles de corps Corpsinertes Spore Corps Passifs Boucle de commande Corps Actifs NoyauCollisionsIntégration Application SporeGfx Les objectifs de Spore
Le découpage en trois couches Couche géométrique • Séparation des corps en 3 couches : • Couche mécanique : aussi simple que possible • Couche géométrique: visualisation de qualité • Facettes • NURBS • Surfaces implicites • Couche de collision : • décomposition en sphères Positions Couche mécanique Positions Forces Couche collisions
Couche mécanique Couche géométrique Couche de collisions Le découpage en trois couches • Un corps rigide • Les fluides Lennard-Jones Couche mécanique Couche géométrique Couche de collisions
Spore : le noyau • L ’algorithme principal while (Simulation_en_cours) { Récupération de la position des objets actifsDétection de toutes les collisions Calcul de la réponse aux collisions Calcul des efforts à retourner à l’utilisateur Calcul des accélérations des objets passifsRésolution des équations Calcul du nouvel état des corps } • Minimisation du temps entre acquisition des positions et retour d'effort
Spore : le noyau • Corps dynamiques uniquement • Les corps statiques sont autonomes • Compatible avec les équations de Newton et Lagrange : résolution d'ODE d'ordre 2 • Exemple : une masse ponctuel
Spore : le noyau • Exemple : orientation d'un solide • Problème de Cauchy : • SPORE gère un vecteur d'état global incluant tous les degrés de liberté
Les méthodes d ’intégration • Méthode d'Euler explicite • Rapide mais divergence • Méthode Runge-Kutta d'ordre 4 • Assez bonne robustesse • Nécessite 4 évaluations des forces • Méthodes multi-pas (Adams) • Faire comme RK4, mais en se basant sur les pas de temps précédents, Moins robuste que RK4 • Méthode Euler implicite • Résolution fiable, bonne détection des divergences • Très lent !
Spore : les collisions • Modèle de collisions basés sur des sphèresDétection des intersections de sphères • Problème des Hiérarchies : • Détection en ln(n) mais plusieurs descentes dans l'arbre si plusieurs corps sont simulés • Mise à jour en n*ln(n) si déformation • Modèle sans hiérarchie
Spore : accélération des collisions • Découpage de l'espace en grille régulière de voxels • Chaque voxel contient • Une liste de sphères immobiles (corps inertes) • Etablie une fois pour toutes • Une liste de sphères mobiles (corps passifs) • Vidée à chaque pas de temps • Parcours des voxels évité par système de datation • Les nœuds de corps actifs n'y sont pas inclus
Spore : accélération des collisions • Parcours de chaque corps passif et actif • Pour une sphère : • Choix des voxels recouverts • Test de l'intersection de la sphère avec les sphères déjà présentes dans les listes des voxels • Ajout des couples en collisions dans une liste • Ajout de la sphère (cas passif) dans les voxels • Détection et remplissage sont simultanés
Spore : traitement des collisions • Évaluation des forces de répulsion pour chaque couple de sphères en collision • Méthode à pénalité : • Ressorts pour limiter l'intersection • Amortisseurs dans le sens de la pénétration • Forces supplémentaires • Frottements ? Adhérence ?
Position Position Dispositif et Commande bas-niveau Commande haut-niveau ApplicationSPORE Consigne de Forces Forces 500Hz à 1Khz 25 à 50 Hz Spore : le retour d ’effort • Calcul pour chaque objet actif : • de la résultante : retour d'effort en translation • du moment : retour d'effort en rotation • Envoi des données au dispositif • La commande haut-niveau assure : • les corrections du dispositif • la transparence et la passivité
Spore : le retour d ’effort • Prendre un modèle simplifié pour les forces • Découpler le retour d'effort de la simulation • Utilisation du couplage virtuel • Méthode du God-Object Position dispositif Position Dispositif et Commande bas-niveau Commande haut-niveau ApplicationSPORE Consigne de Forces Position outils virtuel
Spore : bilan • Spore est opérationnel • C’est un logiciel de recherche • Vers :SOFA • Plate-forme de simulation • Harmonisation et comparaison des recherches • Nouveaux concepts logiciels 3D temps réel • Intégration et validation de modèles dans un même logiciel • Faciliter le transfert technologique • Moyens • Fédération de groupes de recherche en simulation médicale • Création d’une structure à l ’échelle mondiale
Modèle déformable 1D • Introduction • Le modèle • Les contraintes • Travail de thèse de Julien Lenoir
Modèle déformable 1D : introduction • Modèle 1D au comportement réaliste • Utilisation d ’un modèle continu • Calculable en temps réel avec interaction • Simulation de fils • Contraintes mécaniques entre le fil et les matériaux • Comportement plausible du fil (élongation, courbure, torsion, déformations à « mémoire ») • Serrage du nœud nécessite une forte résolution du modèle géométrique/mécanique
Modèle déformable 1D : définition • Géométrie • Utilisation d ’une modélisation par Splines • interpolation/approximation de n points de contrôle • la masse est fourni par les fonctions bi
Modèle déformable 1D : définition • Propriétés importantes des splines: • Vecteur de valeurs paramétriques • Continuité: C0, C1(Catmull-Rom), C2( Bspline cubique),… • Pour de nombreux modèles: localité d ’ordre m:Chaque point de contrôle influe sur au plus m segments
Modèle déformable 1D : définition • Modèle physique avec le formalisme de Lagrange: • Ensemble de N DDL virtuel • Utilisation des travaux virtuels et du principe de minimisation • Les DDL sont les points de contrôle • Equation du mouvement
Modèle déformable 1D : définition • L ’équation peut se mettre sous la forme MA=B • M est une matrice de masse généralisée • Accélération des DDL • B prend en compte les énergies de déformations, la gravité, les forces externes, … • Prise en compte de élongations et flexions
Modèle déformable 1D • Résultats
Modèle déformable 1D : les contraintes • On étend les équations précédentes • Pour chaque contrainte, un multiplieur de Lagrange λ • Cet outil permet • D’imposer des points fixes • De fixer un tangente • De contraindre à passer par des points donnés • D’assembler des objets
Modèle déformable 1D : les contraintes • Résultats
Habillage par des surfaces implicites • Le problème de l ’habillage • Habillage : Procédé consistant à fournir un modèle géométrique à un modèle mécanique • les surfaces implicites • Facettisation en temps réel • Travail de thèse de Frédéric Triquet
Habillage par des surfaces implicites • Apports des surfaces implicites à squelette : • surfaces complexes à partir peu de points • formes organiques • habillage de modèles non structurés • Cas général • F : 3 , S = { (x,y,z) 3, F(x,y,z) = k } • Cas des surfaces à squelette • fonction de potentiel / iso-surface • un ensemble de primitives (points, etc) Fi • F(x,y,z) = Σ Fi(distance) blending
Habillage par des surfaces implicites • L’affichage de surfaces implicites • Lancer de rayons • intersection rayon/surface : F(Xo+t.Xv) = k • bonne qualité mais temps de calculs longs • Rendu voxels • découpage en cubes • projection parallèle • Facettisation • échantillonnage triangles • accélérations matérielles
Habillage par des surfaces implicites • L ’algorithme du marching cube standard • Diviser l’espace en cubes • Évaluer le potentiel de chaque nœud • Générer des facettes au sein de chaque cube • 256 configurations (mais 14 «de base»)