• Aucun résultat trouvé

Nous avons vu que toutes les contraintes qui nous int´eressent peuvent ˆetre d´efinies par une direction. Une force sera appliqu´ee suivant cette direction afin de faire respecter la contrainte, son amplitude ´etant le r´esultat de la r´esolution des contraintes.

Des param`etres sont d´efinis selon ces directions suivant le type des contraintes : – la mesure de la violation pour les contraintes bilat´erales

– la mesure de l’interp´en´etration pour les contraintes unilat´erales de contact – la force normale et le d´eplacement tangentiel pour les contraintes de frottement. Les lois de contraintes utilisent ces param`etres, nous alors donc faire en sorte d’avoir un acc`es direct `a ceux-ci lors de la phase de r´esolution.

De plus, exprimer le comportement des objets contraints suivant les directions des contraintes nous permettra de prendre en compte le couplage entre ces contraintes.

3.3.1 Contraintes interpol´ees

Dans [RK00], Ruspini et al. ont introduit la notion d’espace des contacts comme l’espace local de solution dans lequel les contraintes unilat´erales sont r´esolues, `a travers un exemble de param`etres qui d´ecrivent localement le d´eplacement relatif des objets durant le contact et la collision. Pour une paire d’objets en interp´en´etration, un algorithme de d´etection de collision identifie un ensemble de points potentiellement en contact, et fournit pour chacun d’eux la normale n du contact, perpendiculaire `a la g´eom´etrie au point de contact. En utilisant la direction n, nous pouvons exprimer la distance relative δf ree entre les deux points de contact. En g´en´eralisant cette id´ee aux autres contraintes et `a leurs param`etres, nous introduisons la notion d’espace des contraintes. Dans cet espace, il est possible d’exprimer des contraintes avec une dur´ee de vie finie (tel que les contraintes de contact, voir section 3.2.2). Ecrire les lois de contraintes dans cet espace est souvent plus ais´e que dans l’espace des mouvements, et ouvre la porte `a des contraintes plus complexes.

Nous voulons que nos contraintes puissent ˆetre cr´e´ees n’importe o`u sur la surface ou dans le volume des objets que nous manipulons. Nous associons `a chaque point de contact un rep`ere, et c’est dans cet espace que nous mesurerons les d´eplacements relatifs entre les objets. Nous lions les positions de chaque contrainte P `a ceux des degr´es de libert´e x de l’objet `

a l’aide de la fonction de “mapping” : P = Φ(x). La relation cin´ematique entre l’espace des contraintes et l’espace des degr´es de libert´e n´ecessite une lin´earisation de l’´equation pr´ec´edente. On pose ainsi H = ∂Φ∂x afin d’exprimer la relation entre les d´eplacements : dP = Hdx. Pour les objets d´eformables, nous lin´earisons les fonctions de “mapping” en utilisant simplement les coordonn´ees barycentriques des contraintes dans les ´el´ements. Pour les objets rigides et quelques objets tr`es d´eformables, la fonction Φ(x) n’est pas lin´eaire et nous construisons une matrice jacobienne `a l’emplacement de la contrainte.

Une fois que nous aurons r´esolu les contraintes dans l’espace des contraintes, il faudra transposer les forces pour les appliquer aux degr´es de libert´e r´eels de l’objet. Nous nous basons sur le th´eor`eme des travaux virtuels, qui stipule que le travail de la force fcappliqu´ee au point de la contrainte correspond `a la somme des forces fddl appliqu´ees aux degr´es de libert´e : dPTfc= dxTfddl. Nous obtenons donc le vecteur de forces sur les degr´es de libert´e : fddl= HTfc

Le positionnement des contraintes est d´efini par deux points P et Q, un sur chaque objet devant ˆetre contraint. Pour les simulation m´edicales telles que l’insertion d’aiguille, nous aurons souvent `a placer des contraintes entre un point compris dans le volume des tissus et un autre sur la courbe de l’aiguille.

Pour chaque contrainte, δ mesure la distance entre ces deux points suivant la direction n de la contrainte. Les points peuvent ˆetre plac´es n’importe o`u dans le volume des objets, leur d´eplacement sera mis `a jour avec la mˆeme interpolation que les mod`eles d´eformables (voir figure 3.5).

La variation de δ peut ˆetre mapp´ee sur le d´eplacement des nœuds du mod`ele d´eformable, prenons l’exemple d’une contrainte se basant sur les d´eplacements d’une aiguille ∆qaet d’un organe d´eformable ∆qo :

Figure 3.5 – Exemple de “mapping” pour un point de contrainte. Une interpolation lin´eraire est utilis´ee sur les t´etra`edres du mod`ele d´eformable, le d´eplacement uo d’un point de contrainte plac´e dans un t´etra`edre est obtenu par les coordonn´ees barycentriques de ce point et les d´eplacements ∆xo des quatres sommets uo = Ho∆xo. Le d´eplacement d’un point de contrainte sur un mod`ele 1d est obtenu de la mˆeme fa¸con `a partir de l’interpolation du mod`ele d´eformable ua= Ha∆qa.

Dans la suite de ce travail, λ repr´esente la force de r´eponse qui v´erifie la contrainte.

Pour mapper cette force sur les nœuds du mod`ele d´eformable, nous utilisons le principe des travaux virtuels (λT∆δ = foT∆qo+ faT∆qa). Nous obtenons :

fo= NToλ et fa= NTaλ (3.2) Les param`etres de l’espace des contraintes sont souvent interd´ependants, et nous devons exprimer les relations dynamiques entre eux. La fonction de “mapping” Φ(X) reliant les posi-tions dans l’espace des mouvements `a celles dans l’espace des contraintes est le plus souvent non-lin´eaire. Dans le cas g´en´eral, le probl`eme peut ˆetre r´eduit `a un probl`eme lin´eaire en utili-sant un Jacobien H = ∂Φ∂x ´evalu´e au temps t autour du point de contrainte. Cette matrice est utilis´ee pour construire l’op´erateur de Delassus W , qui exprime le couplage m´ecanique dans l’espace des contraintes.

W = HCHT (3.3)

Dans cette expression, C est la matrice de compliance, calcul´ee comme suit :

C = ( ¨M + ˙B + K)−1 (3.4)

Ses propri´et´es sont pr´esent´ees plus en d´etails dans [SDCG08]. M , B et K sont respectivement les matrices de masse, d’amortissement et de rigidit´e. Selon la nature de l’objet, cette matrice peut ˆetre obtenue facilement (pour les objets rigides), `a l’aide d’un solveur sp´ecifique de matrice bande (pour les objets d´eformables 1d) ou durant une ´etape de pr´ecalcul (objets d´eformables 3d lin´eaires ou corotationnels).

Pour les simulations temps r´eel d’objets d´eformables contraints, le nombre de degr´es de libert´e est g´en´eralement bien plus grand que le nombre de contraintes qui leur sont appliqu´ees. Dans ce contexte, r´esoudre le probl`eme dans l’espace des contraintes pr´esente l’avantage de r´eduire significativement la taille du syst`eme `a r´esoudre. Cependant, dans le cadre des si-mulations d’objets rigides purs, et si de nombreuses contraintes sont cr´e´ees, une strat´egie de r´esolution dans l’espace des mouvements sera plus appropri´ee, puisque chaque objet n’a pas plus de 6 degr´es de libert´e. Ce cas particulier ne sera pas ´etudi´e dans ce travail, plus ax´e vers la simulation simultan´ee d’objets rigides et d´eformables contraints.

Une strat´egie locale consiste `a r´esoudre en premier lieu le d´eplacement des objets sans leur appliquer de contraintes (´etape de mouvement libre), puis `a r´esoudre les contraintes dans l’espace des contraintes δ = W f + δfree, et finalement calculer un mouvement de correction. Nous d´ecrivons la r´esolution des contraintes `a la section 3.4.

3.3.2 Contraintes et repr´esentations multi-mod`eles des objets

La technique que nous venons d’aborder nous permet donc de placer des contraintes n’importe o`u dans le volume ou sur la surface d’un objet. Cependant, le framework SOFA dans lequel nous int´egrons notre m´ethode de r´esolution des contraintes va plus loin dans l’utilisation des fonctions de “mapping”. En effet, les auteurs ont int´egr´e la possibilit´e de g´erer simultan´ement plusieurs repr´esentations diff´erentes d’un mˆeme objet, qui sont ensuite mises `a jour quand n´ecessaire. La figure3.6pr´esente un exemple de ce concept. Le mod`ele m´ecanique intervenant sur les degr´es de libert´e de l’objet est ind´ependant du mod`ele de collision qui utilise ici une hi´erarchie de sph`ere, mais ´egalement du mod`ele visuel qui peut alors ˆetre plus d´etaill´e sans surcharger les calculs m´ecaniques. Plusieurs techniques de “mapping” sont donc employ´ees pour mettre `a jour `a chaque pas de temps les diff´erentes repr´esentations de l’objet suivant les d´eplacements de ses degr´es de libert´e.

Dans ce travail, nous nous servons r´eguli`erement de ce concept de multirepr´esentation. Ainsi, l’algorithme de d´etection de collision nous fournit des points de contacts sur la repr´ e-sentation surfacique triangul´ee des objets. Nous cr´eons alors des contraintes de contact pour r´epondre aux collisions, en nous basant sur les triangles du mod`ele de collision. Le framework se charge alors de remonter les informations des contraintes `a travers les diff´erentes repr´ esen-tations, jusqu’aux degr´es de libert´e de l’objet, comme si elles avaient ´et´e directement cr´e´ees sur eux. L’addition de la contribution de plusieurs contraintes est automatique, et tr`es utile par exemple lorsque plusieurs points de contact sont situ´es sur un objet rigide ; ce dernier n’ayant que 6 degr´es de libert´e.

Figure 3.6 – Illustration de la repr´esentation multi-mod`eles dans SOFA. (`a gauche) Possibles repr´esentations pour un objet simul´e, avec le mod`ele comportemental (en g´en´eral les degr´es de libert´e de l’objet) contrˆolant les autres repr´esentations `a travers une s´erie de “mappings”. (`a droite) Exemples de ces repr´esentations sur un mod`ele de foie, o`u le mod`ele visuel est plus d´etaill´e et que le mod`ele de collision se base sur une repr´esentation totalement diff´erente.

Un des inconv´enients de la m´ethode de d´etection de collisions par proximit´e que nous utilisons (et que nous pr´esentons succintement `a la section3.5.2), est que les objets en contact sont `a tout moment s´epar´es par un l´eger interstice dont la valeur est d´efinie pour la sc`ene. En s´eparant le mod`ele de collision de la repr´esentation visuelle, il est ainsi possible de passer outre ce probl`eme, de telle fa¸con que l’objet soit visuellement un peu plus large pour corriger la distance de contact.