Modelos Massa-Mola para Visualização de Tecidos Flexı́veis
J. M. Pilato Jr., J. S. Espinoza Ortiz, G. A. Giraldi
Laboratório de Visualização Cientı́fica e Realidade Virtual
Coordenação de Ciência da Computação
Laboratório Nacional de Computação Cientı́fica
Caixa Postal 95.113 - 25651-070 – Petrópolis – RJ – Brasil
{pilato,jsespino,gilson}@lncc.br
Abstract. Visual models of flexivel objects have received special attention from
the scientific visualization community. Biologic soft tissue could be considered
a class of flexivel objects, then modeled making use of discret model technics;
too. In this work we present a physical model awhich is also visual implemented
(in real time) where we simulate a flexivel object coliding against a solid one,
by using the spring-mass type discret model.
Resumo. A modelagem visual de objetos flexı́veis tem recebido atenção especial por parte da comunidade de visualização cientı́fica. Por sua vez, os tecidos biológicos podem ser considerados uma classe de objetos flexı́veis, e como
tais também modelados fazendo uso de técnicas de modelagem discreta. Neste
artigo apresentamos um modelo fı́sico e a sua implementação visual (em tempo
real) onde simulamos a colisão de um objeto flexı́vel e um objeto sólido, fazendo
uso do modelo discreto do tipo massa-mola.
1. Introdução
O realismo é um elemento fundamental quando trata-se de visualização de fenômenos
fı́sicos em computação gráfica. O nosso interesse está focado na modelagem dos tecidos
flexı́veis do tipo biológico. É com essa finalidade que procuramos por modelos realistas,
mas que também representem as propriedades fı́sicas do objeto em questão.
No caso dos tecidos biológicos, as suas propriedades mecânicas dependem da sua
composição mineral. É notório que em função do seu conteúdo mineral podemos em
geral distinguir duas classes de tecidos biológicos. Por exemplo, ossos e dentes contêm
minerais e formam parte do grupo que é denominado de tecidos duros. Enquanto que,
pele, músculo, artérias e pulmões formam um segundo grupo, chamado de tecidos suaves.
Estes últimos não contêm minerais e por esta razão são bem mais deformáveis do que os
tecidos duros.
Tem sido bastante comum modelar o comportamento mecânico dos tecidos suaves
aplicando técnicas usadas na modelagem de materiais eláticos do tipo borracha. Neste
caso, teorias de deformação finita são freqüentemente usadas para descrever seu comportamento mecânico. Entretanto, existem diferenças marcantes no que diz respeito à estrutura material entre os tecidos suaves e os materiais elásticos, principalmente no modo
em que eles respondem sob tensão aplicada. Os tecidos suaves facilmente alcançam
consideráveis extensões sob um nı́vel de tensão relativamente baixo para após tornarse mais rı́gidos sob tensões de nı́veis mais intensos. Esse comportamento é mostrado
na Figura (1), onde são comparados as diferentes respostas à tensão aplicada a materiais
elásticos como a borracha (figura à esquerda) com a do tecido suave (figura à direita). Por
outro lado, a borracha é tipicamente um material isotrópico, em contraste com os tecidos
suaves que manifestam uma tı́pica anisotropia por causa da sua composição de fibras de
Colágeno[Ogden 2001] [Holzapfel 2000][Holzapfel 2001].
Figura 1. Tı́pica resposta da deformação a uma simples tensão sob a borracha
(a) e sob o tecido suave (b). Note que a tensão nominal (t) é positiva, por tanto
a deformação λ é também positiva, sendo esta última definida em unidades do
comprimento original da amostra.
Aplicações em simulações cirúrgicas tem aumentado bastante a demanda em
pesquisa de modelagem do comportamento mecânico de tecidos biológicos suaves, procurando por um cálculo preciso e em tempo real da deformação do tecido. Uma das
técnicas amplamente utilizadas está baseada em modelos constitutivos que toma conta
da natureza contı́nua dos tecidos, onde técnicas como as de elementos finitos freqüentemente auxiliam para uma correta simulação do comportamento mecânico dos tecidos
[Bro-Nielsen 1998][Keeve et al. 1996][Koch et al. 1996]. Por outro lado, como alternativa, também tem sido utilizados os modelos discretos baseados em modelos massa-mola
[Mosegaard 2003][Teschrer et al. 2000]. Pesquisas mostram que métodos de Elementos
Finitos baseados na aproximação do contı́nuo são apropriados para descrever de modo
mais realı́stico o comportamento mecânico dos tecidos suaves, entretanto, modelos baseados em massa-mola são computacionalmente econômicos, se comparados com os anteriores.
Neste artigo apresentamos um modelo fı́sico discreto que utiliza sistemas de
massa-mola. A Seção 2 é iniciada como uma apresentação simples do esquema massamola comunmente usado em visualização cientı́fica, com a finalidade de representar tecidos (objetos) flexı́veis inorgânicos. Nestes modelos são geralmente considerados efeitos
lineares, tanto como para a elasticidade da mola assim como para o atrito entre massas. Imediatamente é apresentada de forma breve uma extensão da teoria onde podem
ser incluı́das interações do tipo viscoelástico assim como interações elásticas do tipo nãolinear, que podem ser úteis na modelagem de tecidos biológicos. Já na Seção 3 nos especializamos nos modelos lineares onde consideramos um sistema composto por massas
conectadas através de molas representando um objeto flexı́vel, esquematizado de forma
que irá colidir com um obstáculo sólido fixo. Diferentes situações são consideradas. Logo
na Seção 4 são apresentados detalhes da implementação visual dos nossos experimentos.
Finalmente na Seção 5 apresentamos as nossas conclusões assim como as perspectivas
futuras.
2. O modelo massa-mola
Consideremos um corpo fı́sico flexı́vel que é composto por um conjunto de partı́culas de
massas mi conectadas através de molas. Estabelece-se também que inicialmente ambas,
as forças elásticas e de atrito entre partı́culas, reagem linearmente. Por esta razão, vamos considerar que o corpo elástico obedece e lei de Hooke. Consideremos agora que o
mesmo corpo seja suportado a um sistema de referência inercial determinado e sujeitado
a um conjunto de forças Qi que age nos pontos i ( = 1, 2, 3, . . . , n). Em seguida consideramos uma deflexão generalizada qi no ponto i, em direção a força Qi , sendo linearmente
proporcional as forças Q1 , Q2 , Q3 , . . . , Qn , e vice versa, para i ∈ (1, 2, 3, ..., n) teremos:
qi = Ci1 Q1 + Ci2 Q2 + . . . + Cin Qn ,
Qi = Ki1 q1 + Ki2 q2 + . . . + Kin qn .
(1)
Onde as constantes de proporcionalidade Cij , Kij são independentes das forças
e deslocamentos. Cij e Kij são os coeficientes de flexibilidade e de rigidez, respectivamente. O significado fı́sico de Kij é a força requerida para agir no ponto i devido a um
deslocamento unitário no ponto j, quando uns outros pontos (diferentes do que j) são
fixos. Analogamente, Cij é a deflexão em i devido a uma força unitária que age em j. As
equações acopladas, acima, implicam que existe um estado natural de equilı́brio ao qual
o corpo retornará sempre que todo as forças externas forem removidas, e onde o princı́pio
do superposição de forças se aplica. Além disso, implica que o trabalho total feito por um
conjunto de forças não depende da ordem em que as forças são aplicadas. Este trabalho
feito por cada força é 21 Qi qi , de maneira que o trabalho total feito pelo conjunto, que é
armazenado como energia de deformação no corpo elástico, é dado por:
W =
n
n X
n
n X
n
1X
1X
1X
Qi qi =
Kij qi qj =
Cij Qi Qj .
2 i=1
2 i=1 j=1
2 i=1 j=1
(2)
As matrizes Kij e Cij são simétricas. Em outras palavras, o deslocamento em um
ponto i devido a uma força unitária que age em um outro ponto j são iguais ao deslocamento em j devido a uma força unitária que age em i, isto é, são positivos e na mesma
direção em cada ponto.
Agora podemos proceder a escrever a equação do movimento de um grupo de
partı́culas de massas mi contidas em um corpo elástico. O princı́pio de D’Alambert estabelece que as partı́culas podem ser consideradas em seu estado de equilı́brio se as forças
inerciais forem aplicadas no sentido invertido sob as partı́culas. Assim, se o corpo estiver
em estado estacionário e nós considerarmos forças de atrito lineares, então a equação
dinâmica escrita na forma vetorial é
mi q̈i +
n
X
j=1
Kij qj +
n
X
βij q̇j − Fie = 0; (i = 1, 2, ..., n).
(3)
j=1
Aqui o q̈i é a aceleração resultante da i−ésima partı́cula, em seguida estão sendo
considerados as forças agindo sob a partı́cula em questão: como as forças internas do tipo
elástico (equação 1), assim como outras forças internas de amortecimento, onde qj , q̇j são
respectivamente o deslocamento e a velocidade da j−ésima partı́cula, e Fie é uma força
inercial externa.
Entretanto, a força de amortecimento poderia ser muito mais complexa do que
a força de atrito acima equacionada, por exemplo pode ser aerodinâmica na origem, ou
com viscoelasticidade não-linear, tal e como acontece com os tecidos suaves. Para uma
generalização imediata da teoria, vamos fazer uso da mais geral das equações constitutivas utilizada na modelagem de sólidos viscoelásticos, onde podemos descrever as forças
internas agindo sobre uma determinada partı́cula, localizada num certo ponto i, por meio
de um deslocamento qj localizado num ponto j, como
Fij (t) =
Z
t
−∞
Gij (t − τ )
dqj (τ )
dτ .
dτ
(4)
Seguindo a formulação de Boltzman [Fung 1994], Gij (t) é chamada de função de
relaxação, expressada matematicamente da seguinte forma:
Gij (t) = Kij + βij e−tν1 + ... + γij e−tνn ,
(5)
onde νi são chamadas de freqüências de relaxação, Kij , βij , γij são constantes.
Desta forma, considerando tanto as forças do tipo interna quanto as externas que agem
sob a partı́cula, a Equação (3) é re-escrita da seguinte maneira:
mi
d2 qi (t)
dt2
+
Rt
j=1 −∞
Pn
Gij (t − τ )
dqj (τ )
dτ
dτ
(e)
− Fi
= 0.
(6)
3. Implementação Numérica do Modelo
A presente implementação gráfica consiste de um sistema massa-mola, inicialmente a
uma altura pré-determinada h a respeito de uma superfı́cie referencial onde encontrase um objeto sólido em repouso. Instantes depois o objeto flexı́vel irá colidir com o
objeto sólido por causa da força da gravidade, conforme ilustra a Figura (2). Além das
interações elásticas lineares massa-mola são também consideradas forças de atrito do tipo
Newtoniana, como as da equação (3), porém proporcionais à velocidade instantânea da
respectiva partı́cula.
Em seguida nos focamos na i−ésima partı́cula alocada no ponto i da malha. A
equação dinâmica para a presente partı́cula será determinada pela Equação (3) onde: o
primeiro termo a esquerda é a sua aceleração resultante, o segundo termo representa
a força elástica do tipo Hooke (onde Kij é a constante de elasticidade), o seguinte
termo constitue a força de atrito, Fie é a força gravitacional (mi g). Imediatamente as
equações diferenciais de segunda ordem são resolvidas fazendo uso do esquema denominado Leap-Frog, que é um método iterativo de segunda ordem[Müller et al. 2003], o qual
consiste em: Dados os deslocamentos e velocidades para um determinado instante “ t”, a
aceleração respectiva é determinada a partir da equação (3), em seguida os novos deslocamentos e velocidades para um novo instante de tempo “ t + ∆ t” serão computados por
meio das seguintes relações,
Figura 2. Esquema objeto flexı́vel - objeto sólido, rearranjado para uma colisão.
h e g são a altura e a aceleração da gravidade, respectivamente.
~q˙ i (t + ∆ t) = ~q˙ (t)i + ∆2 t ¨~qi (t) ;
~qi (t + ∆ t) = ~qi (t) + ∆ t~q˙ i (t + ∆ t) .
(7)
A seguir apresentamos os resultados de nossos experimentos em três situações
distintas. Na primeira situação o objeto flexı́vel é composto por um conjunto de massas homogêneas; 1681 em número, onde estabelecemos os seguintes parâmetros: mi =
0.5, K = 130, βij = 0.8, ∆ t = 10−2 , ~g = −10~j e q̇i (0) = −10~j, sendo ~j = (0, 1, 0), de
maneira que o objeto flexı́vel foi lançado contra o objeto sólido, representado por meio
de uma esfera fixa no espaço.
Na Figura (4) de (a)-(d) mostra-se a seqüência da queda do objeto flexı́vel, onde
apenas é mostrada a deformação da malha. Já na seqüencia (e)-(h), da mesma figura,
visualizamos a mesma situação anterior mas destacando a deformação das molas, segundo
a escala de cores abaixo. Note que da esquerda à direita as deformações incrementam-se
seguindo as mudanças de cores.
Figura 3. Escala de deformação: As cores extremas da esquerda e direita representam relaxação e deformação máxima, respectivamente.
A seguinte situação apresentada, Figura (5), difere da anterior no que diz respeito
à homogeneidade das massas, pois neste caso usamos valores diferentes para as mesmas.
Para isso dividimos o objeto flexı́vel em duas regiões simétricas, onde em uma delas a
massa é o dobro da outra, ou seja, mamarelo
= 0.5 e mverde
= 1.0, respectivamente.
i
i
Exceto as massas, os parâmetros restantes serão os mesmos da primeira situação. Neste
caso o experimento também mostra ambas as deformações da malha (à esquerda) assim
como as deformações seguindo a escala de cores acima mencionada (à direita).
Um último experimento apresenta o objeto flexı́vel, novamente considerando as
massas homogêneas, mas desta vez colidindo com dois objetos sólidos posicionados nas
duas extremidades do objeto flexı́vel. Uma vez que o objeto flexı́vel se choca com os objetos sólidos este passa a se deslizar entre as esferas para naturalmente acabar se soltando
do obstáculo. A presente situação pode ser observada na Figura (6), desta vez apenas
(a)
(e)
(b)
(f)
(c)
(g)
(d)
(h)
Figura 4. Na sequência instantes da queda do objeto flexı́vel em (a)-(d). A mesma
sequência é mostrada em (e)-(h) onde as deformações seguem a escala de cores
da Figura (3).
(a)
(e)
(b)
(f)
(c)
(g)
(e)
(h)
Figura 5. Um outro experimento similar ao mostrado na figura anterior, onde as
cores diferenciadas representam massas com valores distintos. A seqüência (a)(e) mostra as deformações da malha, enquanto que a seqüência (d)-(f) mostra as
mesmas seguindo a escala de cores.
visualizamos as deformações segundo a escala de cores1 .
4. Implementação Visual
O objeto flexı́vel consiste em uma malha estruturada de 1681 pontos, numa configuração
matricial de 41x41 conectadas conforme ilustra a Figura (7). Por sua vez, o corpo rı́gido
pelo qual o objeto elástico se choca é representado por uma esfera, ou um par delas.
Para cada instante de tempo da simulação calculamos: a aceleração, a velocidade e
a nova posição de cada massa, conforme as equações (3) e (7). Com base nestas equações
utilizamos o algoritmo (1) para simular a cada instante de tempo a dinâmica do objeto
flexı́vel.
Algoritmo 1 : Update()
para cada instante faça
para cada Pi,j faça
Calcular aceleração de Pi,j ;
fim para
para cada Pi,j faça
Calcular velocidade de Pi,j ;
Calcular nova posição de Pi,j ;
fim para
Renderizar o modelo;
fim para
Para desenvolver a simulação fizemos uso da ferramenta Visualization Toolkit
(VTK) [Schroeder et al. 1997]. O VTK é uma biblioteca livre, de código aberto, amplamente utilizado em centros de pesquisa com a finalidade de desenvolver aplicações em
computação gráfica, processamento de imagens e visualização cientı́fica. O VTK consiste
em uma biblioteca de classes em C++, cujo projeto de desenvolvimento e execução são
fortemente influenciados por princı́pios de orientação a objetos.
A fim de manter melhor compatibilidade com o VTK, e aproveitar das inúmeras
vantagens do paradigma de orientação a objetos [Silva Neto et al. 2005], desenvolvemos
nossa simulação em C++. O Diagrama de classes da Figura (8) representa, de forma
estruturada, a implementação da simulação realizada nesse trabalho.
No diagrama de Classes, MassSpring é a principal classe da simulação, foi nela
que implementamos o algoritimo (1). Para isso, a mesma possui os membros MassCollection e SpringCollection, que são uma lista de massas (classe Mass) e molas (classe
Spring), respectivamente. Naturalmente, a classe Mass representa cada massa presente
no sistema, possuindo atributos como: coordenada, velocidade e aceleração. Por sua vez,
a classe Spring representa as molas e é usada para identificar a conectividade entre as
partı́culas.
5. Conclusões
O esquema de colisão objeto flexı́vel-objeto sólido mostrado no presente artigo apresenta
um nı́vel realı́stico razoável. As deformações da malha na escala de cores mostram clara1
Imagens dos experimentos, aqui mostrados, em tempo real poderão ser disponibilizadas aos leitores.
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
Figura 6. Deslizamento do objeto flexı́vel entre as esferas, apenas são mostradas
as deformações da malha segundo a escala de cores. Neste caso os parâmetros
são os mesmos considerados na Figura (4).
Figura 7. Esquema de conexão da malha utilizada na simulação.
Figura 8. Diagrama de Classes da simulação de tecido.
mente maiores deformações na parte superior da esfera, como no caso das Figuras (4-h) e
(5-h), sugerindo que aquela região sofre elevadas tensões por conta do sistema restante. Já
no caso da Figura (6), esta indica uma seqüência de deslizamento fisicamente apropriada.
No entanto consideramos que há ainda a possibilidade de fazermos melhoras na
nossa metodologia, no que diz respeito ao cálculo numérico. O esquema iterativo utilizado
é razoável apenas para tempos de cálculo não muito longos. Nesse caso poderı́amos usar
esquemas de cálculo mais elaborados, como do tipo Runge Kutta [Press et al. 1992], testando então diferentes ordens de aproximação à procura de precisão assim como também
por eficiência. Um outro ponto crucial a respeito da modelagem e visualização de tecidos biológicos consiste na utilização da formulação que faz uso da Equação (6), onde
deveremos resolver equações acopladas integro-diferenciais do tipo Volterra, as quais já
estamos implementando. É desta forma que pretendemos continuar nossa linha de trabalho visando por uma visualização ótima e realı́stica do comportamento mecânico dos
tecidos biológicos.
Agradecimentos
Agradecemos ao Conselho Nacional de Desenvolvimento Cientı́fico e Tecnológico CNPq, pelo apoio financeiro dado a este projeto.
Referências
Bro-Nielsen, M. (1998). Finite element modelling in surgery simulation. Proc. of the
IEEE: Special Issue on Virtual and Augmented Reality in Medicine 86 (3) 524-30.
Fung, Y. (1994). A First Course in Continuum Mechanics. Prentice Hall, Englewood
Cliff, New Jersey, USA.
Holzapfel, G. (2000). Nonlinear Solid Mechanics. Chichester: Wiley.
Holzapfel, G. A. (2001). Biomechanics of Soft Tissue. In Lecture, J.ed., Handbook of
Material Behavior Models. Boston: Academic Press 1049-63.
Keeve, E., Girod, S., Pfeifel, P., and Girod, B. (1996). Anatomy-based facial tissue modelling using the finite element method. Proc. IEEE Visualization, San Francisco, CA.
USA.
Koch, R., Gross, M., Bueren, D., Franhauser, G., Parish, Y., and Carls, F. (1996). Simulation facial surgery using finite element modles. SIGGRAPH’96, ACM Computer
Graphycs, August 30.
Müller, M., Charypar, D., and Gross., M. (2003). Particle-based fluid simulation for
interactive applications. In Proceedings of ACM SIGGRAPH symposium on Computer
animation.
Mosegaard, J. (2003). Lr-spring-mass model for cardiac surgical simulation. Medicine
Meets Virtual Reality, (12) 256-58.
Ogden, R. (2001). Nonlinear Elasticity, Anisotropy, Material Stability and Residual Stress
in Soft Tissue.
Press, W. H., Teukolsky, S. A., Vetterling, W. T., and Flannery, B. P. (1992). Numerical
Recipes in C: The Art of Scientific Computing. Cambridge University Press, New York,
NY, USA.
Schroeder, W., Martin, K., and Lorensen, B. (1997). The Visualization Toolkit: An ObjectOriented Approach to 3D Graphics. Prentice Hall.
Silva Neto, A. A., Rodrigues, P., Giraldi, G. A., and Apolinario Jr., A. L. (2005).
Animação computacional de fluidos via smoothed particle hydrodynamics. Technical Report 06/2005, Laboratório Nacional de Computação Cientı́fica - Petrópolis/RJ.
Teschrer, M., Girod, S., and Girod, B. (2000). Direct computation of nolinear soft-tissue
deformation. Vison Modeling and Visualization VMV’000, Saarbucken, Germany,
November 22-24.
Download

Modelos Massa-Mola para Visualizaç ˜ao de Tecidos Flexıveis