animação por computador capítulo 7 animação fisicamente baseada crab – grupo de computação...
Post on 21-Apr-2015
105 Views
Preview:
TRANSCRIPT
Animação por Computador
Capítulo 7Animação
Fisicamente Baseada
CRAb – Grupo de Computação Gráfica
Departamento de ComputaçãoUFC
2
Sumário do Capítulo 7
7. Introdução7.1 Física básica - Revisão7.2 Spring Mesh 7.3 Sistema de partículas7.4 Simulação de corpo rígido7.5 Forçando restrições flexíveis e
rígidas
3
7. Introdução
• Animadores normalmente se preocupam mais com a qualidade geral do movimento do que com a posição e orientação de cada objeto– Em animação fisicamente baseada, as forças
mantêm a relação entre os objetos geométricos
• As forças nem sempre são precisas, mas a preocupação está no realismo
• Algumas forças não são relacionadas a física– Restrições dadas pelo animador
4
7. Introdução
• Como escolher o tipo de abordagem?– Exemplo: Dobras de uma roupa
• Modelando a mão– Pode ser modelado na tentativa de caracterizar as
dobras em locais que normalmente se encontram» Computacionalmente mais barato» Mais fácil de programar» Sem flexibilidade
• Modelando a física– A física dos fios do tecido podem ser modelada em
detalhe suficiente para que as dobras surgirem naturalmente
» Computacionalmente muito caro» Flexível
– O animador deve escolher o mais barato possível, que consiga dar o efeito necessário
5
7. Introdução
• Vantagens de usar física– Os animadores só precisam se
preocupar com especificações de alto nível•Usando o exemplo da roupa
– Não precisa especificar onde as dobras ficam– Especifica os parâmetros do material
7.1 Física básica - Revisão
7
7.1 Física básica - Revisão
• Física baseada nas Leis de Newton
• Relação entre força, aceleração e massa
– O animador deve especificar todas as forças que podem acontecer no ambiente
– Deve-se determinar todas as forças agindo em cada objeto•Aceleração dele será calculada
af m
m
fa
8
7.1 Física básica - Revisão
• Com a velocidade corrente, e a nova aceleração:
• A nova posição:
Onde: força, aceleração, velocidade e posição podem ser vetores
t av'v
t )'vv(x'x2
1
9
7.1 Física básica - Revisão
• Várias forças devem ser levadas em consideração– Gravidade entre dois corpos
•Se a terra for um dos objetos
221
d
mmGf
2
0
m/s89.e
ee r
mG
m
fa
10
7.1 Física básica - Revisão
• Molas – São usadas para:
• Modelar objetos flexíveis• Manter dois objetos a uma distância precisa
– Quando fixadas a um objeto transmite uma força dependendo da sua localização relativa ao outro objeto ligado a mola
– A constante da mola determina o quanto uma mola reage para mudar seu comprimento• Rigidez
)( rcss LLkf
11
7.1 Física básica - Revisão
• Amortecedor– É ligado também a dois objetos
• Trabalha contra a velocidade relativa entre eles
• Viscosidade– Similar ao amortecedor
• Resistência a velocidade do objeto
• Momento linear– Em um sistema fechado, é conservado
sdd vkf
vkf dv
cvm ii
12
7.1 Física básica - Revisão
• Torque– Equivalente a força em rotações
• Existe velocidade angular e aceleração angular
– A massa do objeto é uma medida de sua resistência ao movimento
– O momento de inércia mede a resistência do objeto a mudar sua orientação•Matriz 3x3 que descreve a distribuição da
massa em volta do centro de massa
sdd vkf
I
13
7.1 Física básica - Revisão
• 7.1.1 Simulando um sistema massa-mola-amortecedor– Equação simples
– É necessário • Ter um passo de tempo apropriado• Dar valor as constantes da mola e de
amortecimento• Definir a massa do objeto
sdrcss vkLLkf )(
14
7.1 Física básica - Revisão
• 7.1.1 Simulando um sistema massa-mola-amortecedor– Exemplo:
• Definições– Pequeno passo de tempo– Grande massa– Alta constante de amortecimento– Baixa constante da mola
• Resultado– Sistema que move-se lentamente para um
ponto fixo, indo cada vez mais devagar
15
7.1 Física básica - Revisão
• 7.1.1 Simulando um sistema massa-mola-amortecedor– Exemplo:
• Definições– Grande passo de tempo– Pouca massa– Baixa constante de amortecimento– Alta constante da mola
• Resultado– Sistema que move-se muito. – A massa oscila em um ponto fixo indo cada
vez mais longe dele
16
7.2 Spring Mesh
17
7.2 Spring Mesh
• 7.2.1 Objetos flexíveis– Foram propostas várias abordagens
para tratar:•Comportamentos elásticos•Comportamentos inelásticos•Viscoelasticidade•Plasticidade•Fraturas•Flexibilidade
18
7.2 Spring Mesh
• 7.2.1 Objetos flexíveis (modelados por massa-mola-amortecedor)– Modelagem
•Cada vértice do objeto é um ponto de massa
– Distribuída igualmente pelo objeto levando em consideração o seu formato
•Cada aresta é uma mola– O tamanho de repouso é igual ao tamanho
original da aresta– As constantes são arbitrárias
» Normalmente uniformes por todo o objeto
19
7.2 Spring Mesh
• 7.2.1 Objetos flexíveis (modelados por massa-mola-amortecedor)– Forças externas são aplicadas aos
vértices•Devido a:
– Colisão– Gravidade– Vento– Forças definidas explicitamente
•Causando ‘ondas’ de deformação
20
7.2 Spring Mesh
• 7.2.1 Objetos flexíveis (modelados por massa-mola-amortecedor)– Desvantagem
•As características do objeto influenciam na sua reação
21
7.2 Spring Mesh
• 7.2.1 Objetos flexíveis (modelados por massa-mola-amortecedor)– Exemplo bidimensional
•A força é aplicada somente em um passo de tempo
22
7.2 Spring Mesh
• 7.2.1 Objetos flexíveis (modelados por massa-mola-amortecedor) – Exemplo bidimensional
• A força aplicada entre os vértices é baseada na Lei de Hooke
• Dependendo do tamanho das forças, constante da mola e do passo de tempo a simulação pode divergir numericamente
– Controlar usando:» Um passo de tempo menor» Constante de mola menor» Massas maiores» Introdução de amortecimento
jijijisijji vLrtLckFF ,,,,, ))((
23
7.2 Spring Mesh
• 7.2.1 Objetos flexíveis (amortecedores)– Amortecedores de molas fazem força
oposta e proporcional as velocidades relativas dos pontos-finais
– Ajuda a controlar quando a mola aumenta demais seu tamanho
24
7.2 Spring Mesh
• 7.2.1 Objetos flexíveis (amortecedores)– Modelando-se objeto com
amortecedores de molas nas arestas• Existe mais de uma configuração estável• Exemplo: Cubo modelado somente com
molas
– Pode virar do avesso– A inclusão de amortecedores pode
ajudar a estabilizar– Pode haver inclusão de molas
dentro do cubo» Cisalhamento» Modelar o material interno
do sólido
25
7.2 Spring Mesh
• 7.2.1 Objetos flexíveis (amortecedores)– Se um ângulo especifico entre duas faces
(ângulos diedro) é requerido, pode-se usar uma mola (e amortecedor) angular• A mola resiste a distorção do ângulo de
repouso e transmite um torque• Amortecedor limita o movimento
• Exemplo:– Também poderia
colocar uma mola entre os pontos
)())(( tktk drs
26
7.2 Spring Mesh
• 7.2.2 Molas virtuais– Introduzem forças no sistema que não
modela diretamente elementos físicos– Usado para controlar o movimento do
objeto– Exemplos:
• Uma mola de cumprimento de repouso igual a zero
– Restringe um objeto a ficar na superfície de outro
• Sem ser zero– Faz com que dois objetos mantenham uma
certa distância
27
7.2 Spring Mesh
• 7.2.2 Molas virtuais– Controle proporcional derivativo
(proportional derivative controllers - PDCs)•São um tipo de molas virtuais•Usado para controlar variáveis e suas
derivadas•Exemplo: Manter o angulo e velocidade de
uma junta perto dos valores desejados))(())(( ddds tktk
28
7.2 Spring Mesh
• 7.2.2 Molas virtuais– Desvantagem do uso de molas,
amortecedores e PDCs•É difícil para o usuário escolher boas
constantes
– Desvantagem do uso de spring mesh•O efeito da força passa por toda a malha
29
7.3 Sistema de partículas
30
7.3 Sistema de partículas
• Coleção de uma grande quantidade de elementos parecidos com ponto– São feitas simplificações nas suposições
• Não sofrem auto-colisão• Não causam sombra
– Exceto em conjunto» Somente no ambiente
• Não refletem luz– São pontos de luz
– Modeladas com um tempo curto de vida– Aleatoriedade
31
7.3 Sistema de partículas
• Algoritmo em alto nível para cada frame
1. Cria novas partículas durante um frame2. São dados atributos às partículas3. As partículas que gastaram todo o
tempo de vida atribuído são extintas4. Partículas ativas são animadas e seus
parâmetros de sombreamento são mudados de acordo com o processo
5. As partículas são renderizadas
32
7.3 Sistema de partículas
33
7.3 Sistema de partículas
• 7.3.1 Geração de partículas– Tipicamente controlado por um processo
estocástico– Para cada frame é gerado um número
aleatório de partículas• Centrado em uma média dada pelo usuário
– Distribuição é feita de acordo com o usuário• Uniforme• Gaussiana
– Formulas
Onde n é a média de partículas, r modifica a variação, A a área da tela, Rand() função aleatória que retorna entre -1 e 1
Arn
rn
Rand()
Rand()
particulas de#
particulas de#
34
7.3 Sistema de partículas
• 7.3.2 Atributos das partículas– Indica o estado da partícula– Exemplos
•Atualizado com o movimento– Posição– Velocidade
•Controlam a aparência– Parâmetros de forma– Cor– Transparência
•Tempo de vida
– Inicializados na criação•Valores aleatórios (controlados)
35
7.3 Sistema de partículas
• 7.3.3 Extinção das partículas– O tempo de vida é diminuído a cada
frame– Quando chegar a zero, a partícula é
removida do sistema– Usado para manter o número de
partículas ativas dentro de um certo valor
36
7.3 Sistema de partículas
• 7.3.4 Animação das partículas– Todos os seus atributos podem ser
alterados– É considerado as forças atuantes, a
aceleração resultante é calculada•Atualização da velocidade e posição•Forças
– Gravidade– Campo de forças globais
» Ex: Vento– Campo de forças locais
» Ex: Vórtice– Colisão
37
7.3 Sistema de partículas
• 7.3.4 Animação das partículas– Cor e transparência podem ser
funções do tempo
– Formato pode ser função da velocidade
velocidade
tempo
38
7.3 Sistema de partículas
• 7.3.5 Renderização das partículas– Simplificação
•Cada partícula é um ponto de luz
– A densidade de partículas entre uma posição do espaço e uma fonte de luz é usado para estimar o sombreamento
39
7.3 Sistema de partículas
• 7.3.6 Sistema de representação de partículas– Partícula
•x: posição•v: velocidade• f: força acumulada•m: massa• Idade, caso necessário
],,,[ mfvx
40
7.3 Sistema de partículas
• 7.3.6 Sistema de representação de partículas– O estado da partícula, , será
atualizado resolvendo ODE (equações diferenciais ordinárias), usando•Pode ser usado qualquer método
– Caixa preta
],[ vx
]/,[ mfv
41
7.3 Sistema de partículas
• 7.3.6 Sistema de representação de partículas– Sistema
•P: lista de partículas•n: número de partículas• t: tempo corrente
],,[ tnP
42
7.3 Sistema de partículas
• 7.3.6 Sistema de representação de partículas– Atualização
•Zera a força (calculada anteriormente) de todas as partículas
•Calcula o somatório das forças•Pega o estado anterior das partículas•Calcula o novo estado•Atualiza o estado•Salva o estado• Incrementa o tempo do sistema
43
7.3 Sistema de partículas
• 7.3.7 Forças nas partículas– Tipos
•Unária– Gravidade– Viscosidade
•Par de partícula– Mola– Amortecedor– Podem pode ser caro computacionalmente
fazer isso para todos os pares
•Ambiente– Colisão
44
7.3 Sistema de partículas
• 7.3.8 Tempo de vida das partículas– Cada partícula tem um tempo de vida– A estrutura de uma partícula extinta
pode ser reusada– Podem existir por volta de 10 mil
partículas na simulação, porém por volta de mil estarão ativas ao mesmo tempo
– Controle para que os valores iniciais sejam pseudo-aleatórios
45
7.4 Simulação de corpo rígido
46
7.4 Simulação de corpo rígido
• Objetivo em CG: – Criar movimentos que pareçam
realísticos•Reação às forças baseada em física de
corpos rígidos
– Modelar movimentos•Animação em kyeframe é tarefa difícil•Solução:
– Incorporar equações de movimento para calcular automaticamente as reações
47
7.4 Simulação de corpo rígido
• Ação das forças relativas a...– Posição relativa do objeto
•Gravidade•Colisão
– Velocidade•Viscosidade
– Posição absoluta•Vento
48
7.4 Simulação de corpo rígido
• Tais forças induzem acelerações lineares e angulares no objeto– Derivadas da velocidade
• Integrar a aceleração em um certo espaço de tempo pra achar a mudança na velocidade
•Velocidade– Derivada da posição
» Integrar a velocidade em um certo espaço de tempo para achar a mudança na posição
• O processo se repete a cada espaço de tempo
49
7.4 Simulação de corpo rígido
Propriedades do objetoposiçãovelocidades angular e linearmomento angular e linearmassa...
Calculo de forçasventogravidadeviscosidade...
Calculo das aceleraçõesbaseado na massa
Calculo das mudançasposiçãovelocidadeMomento...
50
7.4 Simulação de corpo rígido
• Objetos em queda livre são simulações de corpo rígido
• Se torna complexo com– Colisões– Rolar– Deslizar sobre outro
• Problema em modelar algo contínuo em passos de tempo discreto– Trade-off entre a precisão e eficiência
computacional
51
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre– Será explicado primeiro o movimento
de um ponto no espaço– A posição do ponto é desejada
•Nos intervalos de tempo– Discreto– Uniforme
•Para isso, é necessário utilizar sua posição, velocidade e aceleração
– – –
t
)(tx)(tv)(ta
52
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre– Se não forem aplicadas forças ao ponto
• Sua aceleração não muda• Velocidade permanece constante
– Pode ser diferente de zero
• Simplificação: aceleração sempre assume-se que a aceleração é constante em um dado
– A velocidade média durante o período é a media da inicial e final
ttatvttv
ttvtxttx
)()()(
)()()(t
2
2
2
tta
ttvtxttx
tttvtv
txttx
)()()()(
)()()()(
53
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre (exemplo)– Definições
– Como a aceleração é uniforme
15
1484100
30
1320100100
30
1
301
320
100100
00
0
0
,,,
),(
),(
),(
v
t
Gravidade
Velocidade
Posição
54
7.4 Simulação de corpo rígido
Posição do ponto em um intervalo de tempo discreto
55
7.4 Simulação de corpo rígido
Caminho da partícula
56
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre (exemplo)– Cálculos
225
1484
3
20
30
1
15
1484100
15
1468010
2
1
225
746
3
10
15
1
15
1468100
30
1320
15
1484100
15
1
225
746
3
10
30
1100010
15
1484010
2
100
30
1
,,,,
,,,
,,,,
x
v
x
57
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre(nota sobre aproximação numérica)– Assumir que a aceleração é constante
em relação ao tempo não é exatamente verdade
– A ação de forças varia continuamente• Implicando também numa variação da
aceleração•E mais, essa variação é frequentemente
não-linear
58
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre(nota sobre aproximação numérica)– A aceleração de um corpo pode ser
estimada por diversos métodos de aproximação•Método de integração Euler
59
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre(nota sobre aproximação numérica)– A aceleração de um corpo pode ser
estimada por diversos métodos de aproximação•Método de integração Euler•Método Runge-Kutta
– Dá uma melhor aproximação
60
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre(nota sobre aproximação numérica)– Quanto menor a variação do tempo,
mais precisa será a aproximação– Um intervalo de tempo grande pode
desviar muito dos resultados ideais
61
7.4 Simulação de corpo rígido
A função seno é desconhecida. O objetivo: reconstruí-la.Conhecido: Posição inicial (0,0)
e a derivada (cosseno)
Usando passos de tempo pequenos (0.2)
Usando passos de tempo grandes (5)
62
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre(nota sobre aproximação numérica)– Comparação com Runge-Kutta de
segunda ordem (Midpoint)Usando Euler com passo de tempo = 2
Usando Midpoint com passo de tempo = 2
63
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre(nota sobre aproximação numérica)– O melhor é usar Runge-Kutta de
quarta ou quinta ordem– É importante se preocupar com a
precisão numérica•Mesmo que a animação esteja mais
preocupada com resultados visuais– O realismo pode ser comprometido caso os
cálculos se tornem muito desleixados
64
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre (equações de movimento para corpo rígido)– Torque
•Equivalente rotacional da força linear– Considerado quando aplicamos uma força
desalinhada com o centro de massa do objeto
– Momento linear e angular•Para considerar interações entre objetos•Conservado
– Tensor de inércia•Distribuição de massa no objeto
65
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre (orientação e movimento rotacional)
Pontos soltos (Atributos lineares)
PosiçãoVelocidadeAceleração
Corpos extensos(Tridimensionais)
OrientaçãoVelocidade angularAceleração angular
x
66
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre (orientação e movimento rotacional)– Considerar que a orientação do objeto
é representado por uma matriz– Velocidade angular
•Ciclos por unidade de tempo
)(tR
67
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre (orientação e movimento rotacional)– Considerando o ponto
•Variação da posição
a
sin)()()(
)()()(
trttr
trttr
68
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre (orientação e movimento rotacional)– Considerando um corpo extenso
•As colunas da matriz de rotação são como vetores definindo posições relativas no objeto
•Variação da orientação])()()()()()([)(
])()()([)(
tRttRttRttR
tRtRtRtR
321
321
69
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre (orientação e movimento rotacional)– Considerando um corpo extenso
•Orientação em notação matricial
)()()( tRttR
BA
B
B
B
AA
AA
AA
BABA
BABA
BABA
BA
z
y
x
xy
xz
yz
xyyx
zxxz
yzzy
0
70
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre (orientação e movimento rotacional)– Considerando um ponto, , em um
objeto de corpo rígido•A posição em coordenadas locais, , não
muda•A posição em coordenadas de mundo
• Variação da posição
Q
q
)()()( txqtRtq
)())()(()()(
)()()()(
tvtxtqttq
tvqtRttq
71
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre (centro de massa)– A distribuição de massa em um objeto é
tipicamente modelado como pontos individuais
• Massa para cada vértice
– Massa total do objeto
– Centro de massa• Coordenadas de mundo• É onde o sistema de coordenadas locais está
centrada
imM
M
tmt i )(q)(x
72
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre (força)– Linear
– Angular
(t)fF(t) i
(t)ττ(t)
(t)fx(t))(q(t)(t)τ
i
ii
73
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre (momento)– Momento linear e angular
•Devem ser atualizados em objetos que interagem para se conservar em sistemas fechados
– Podem ser utilizados para descobrir valores desconhecidos como velocidades linear e angular
74
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre (momento)– Linear
•A forca agindo em um corpo e igual a variação do momento
)()(
)(
)(
tFtvM(t)P
tMvP(t)
tqmP(t)
mvP
ii
Sistema de coordenadascoincidente com centro de massa
75
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre (momento)– Angular
• Soma a contribuição de cada ponto de massa
• O torque é igual a mudança no momento angular
)()(
))))()(()(((
))))()(()(()((
)))()(())()((()(
ttL
qtRtqtRm
txtqtmqtR
tvtqmtxtqtL
i
ii
iii
76
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre(tensor de inércia)– Matriz que descreve a distribuição de
massa no objeto– Relação entre momento angular e
velocidade angular
)()()( ttItL
77
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre(tensor de inércia)– Matriz
– A densidade de um pontoé
dxdydzqqqI
III
III
III
I
zyxx
zzyzxz
yzyyxy
xzxyxx
objeto
)))((( 22
),,( zyx qqqq )(q
78
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre(tensor de inércia)– Assim
Tobjeto
iiizz
iiiyy
iiixx
tRItRtI
yxmI
zxmI
zymI
)()()(
)(
)(
)(
22
22
22
iiiyz
iiixz
iiixy
zymI
zxmI
yxmI
79
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre(equações)– O estado de um objeto pode ser
mantido em um vetor
)(
)(
)(
)(
tL
tP
tR
tx
S
80
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre(equações)– Tensor se inércia
– Velocidade angular
– Velocidade linear
M
tPtv
tLtIt
tRItRtI Tobjeto
)()(
)()()(
)()()(
1
81
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre(equações)– Derivada do estado
)(
)(
)()(
)(
)(
)(
)(
)(
t
tF
tRt
tv
tL
tP
tR
tx
dt
dS
dt
d
82
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre(equações)– Essas informações são suficientes
para a simulação– Métodos
•Euler– Implementação mais simples
•Rungge-Kutta de quarta ordem– Mais popular
83
7.4 Simulação de corpo rígido
• 7.4.1 Corpos em queda livre(equações)– Tomar cuidado ao atualizar a
orientação•A informação da derivada só vale para
aquele instante•Se usados para atualizar a matriz de
rotação – As colunas podem ficar não ortogonais– Podem não ser mais de tamanho unitário
•Melhor solução: – Aplicar as rotações causada pela velocidade
linear nas colunas– Quaternium
84
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão– Quando um objeto se move em um
ambiente, eventualmente ele esbarra em outros objetos•Exceto no vazio•Se nada for feito, o objeto irar penetrar e
passar direto pelo outro
– Outro tipo de contato•Objeto deslizando sobre outro•Objeto repousando sobre outro
– Todos os contatos requerem calculo das forças
85
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (corpos colidindo)
– Enquanto os objetos movem-se uns em relação aos outros, precisamos fazer duas coisas:1. Detectar a ocorrência de uma colisão
– Questão cinemática» Posição» Orientação» Como mudam ao longo do tempo
2. Calcular a resposta apropriada à colisão– Questão dinâmica
» Forca
86
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (corpos colidindo)– A detecção de colisão consiste em
determinar se há uma interseção entre as posições de dois objetos num determinado instante de tempo
t = 0
87
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (corpos colidindo)– A detecção de colisão consiste em
determinar se há uma interseção entre as posições de dois objetos num determinado instante de tempo
t = 0 t = 1
88
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (corpos colidindo)– Na resposta da colisão
•A distribuição de massa é importante•Forças localizadas em pontos específicos
causam forças lineares e rotacionais nos objetos envolvidos
89
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (corpos colidindo)– Para lidar com a hora da colisão temos
duas opções•A primeira é proceder a qualquer momento
em que a colisão for detectada e calcular a reação apropriada de todos os envolvidos
– Isso permite a penetração da partícula envolvida antes da reação ser acionada
– Porém, se a velocidade da partícula for muito alta, essa penetração pode ser significativa
– Se múltiplas colisões ocorrem durante um intervalo de tempo, elas são tratadas como simultâneas
» Mesmo que produza resultados diferentes
90
7.4 Simulação de corpo rígido
91
7.4 Simulação de corpo rígido
92
7.4 Simulação de corpo rígido
93
7.4 Simulação de corpo rígido
Nesse instante, há interseção. Porém o objeto já entrou muito no obstáculo!
94
7.4 Simulação de corpo rígido
Novo obstáculo colocado antes da parede.
95
7.4 Simulação de corpo rígido
96
7.4 Simulação de corpo rígido
Detectou essa colisão, mas e a do obstáculo?
97
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (corpos colidindo)– Para lidar com a hora da colisão
temos duas opções•A segunda opção é retornar ao instante Ti
em que ocorre a primeira colisão e determinar a reação apropriada no exato momento em que a colisão ocorre
– Se múltiplas colisões ocorrem num intervalo de tempo, voltar ao tempo da primeira colisão
– Custo computacional mais elevado
98
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (corpos colidindo)– Existem três tipos de reações a
colisões: •Resposta estritamente cinemática•O método de pênalti•Cálculo de uma força de impulso
99
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (colisão partícula-plano e resposta cinemática)– É a resposta mais rápida e fácil– Produz um bom visual para partículas
e objetos esféricos
100
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (colisão partícula-plano e resposta cinemática)– A forma mais simples de se
considerar uma colisão é a de uma partícula contra um plano em um ângulo arbitrário
101
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (colisão partícula-plano e resposta cinemática)– Quando uma partícula está no plano de
uma determinada superfície ela satisfaz à equação do plano
•Quando a partícula está na frente do plano, sua equação produz resultados positivos
•Quando está atrás do plano, sua equação produz resultados negativos
dcpbpappE zyx )(
102
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (colisão partícula-plano e resposta cinemática)– Verificamos a posição da partícula de
acordo com sua velocidade média
•A colisão ocorre quando em um tempo a função retorna um valor negativo
– A colisão está em algum tempo entre
ttvtptp aveii )()()( 1
it
],[ ii tt 1
103
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (colisão partícula-plano e resposta cinemática)– Quando a colisão é detectada
• Para calcular o vetor velocidade
– Subtraí-se a componente do vetor velocidade paralela a normal duas vezes
– Da segunda vez, a componente pode ser multiplicada por um fator de amortecimento
» Para diminuir a altura do salto
10 k
Ntvktv
NtkvNtvtvtv
ii
iiii
)()()(
)()()()(
11
104
7.4 Simulação de corpo rígido
105
7.4 Simulação de corpo rígido
106
7.4 Simulação de corpo rígido
107
7.4 Simulação de corpo rígido
108
7.4 Simulação de corpo rígido
109
7.4 Simulação de corpo rígido
110
7.4 Simulação de corpo rígido
111
7.4 Simulação de corpo rígido
112
7.4 Simulação de corpo rígido
113
7.4 Simulação de corpo rígido
114
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (colisão partícula-plano e resposta cinemática)– Esse cálculo simples determina uma
quicada da partícula no plano, devolvendo para fora do mesmo com uma velocidade reduzida
– O resultado não é fisicamente baseado•Mas produz um bom efeito visual
115
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (colisão partícula-plano e resposta cinemática)– Usando 0.8 de amortecimento
116
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (método de pênalti)– Quando uma partícula penetra em
outro objeto dentro de um intervalo de tempo, ela é penalizada:•Uma mola de tamanho zero (quando em
repouso) é anexada à superfície e ao ponto
117
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (método de pênalti)– Quando a partícula penetra é
calculada a deformação e a força elástica aplicada à partícula•Lei de Hooke
118
7.4 Simulação de corpo rígido
119
7.4 Simulação de corpo rígido
d
120
7.4 Simulação de corpo rígido
121
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (método de pênalti)– Essa mola desacelerará a partícula
enquanto penetra na superfície e mudará sua trajetória para fora, de modo elástico
– Ideia simples, porém requer um bom balanço entre as constantes utilizadas para se obter o efeito esperado
122
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (método de pênalti)– Constante usada de 250– Massa de 10
123
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (testando poliedros)– A cada passo do tempo, a interseção
entre poliedros é verificada•A discretização do tempo pode deixar
passar alguma colisão, mas é suficiente para a maioria das aplicações
124
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (testando poliedros)– Há vários testes podem ser usados para
descobrir se há interseção• Pode-se começar por uma bounding box
circundando todo o modelo• Caso haja a interseção entre duas bounding boxes,
testes mais elaborados podem ser empregados• Esses testes podem empregar uma hierarquia de
bounding shapes– Bouding sphere– Bouding slabs
• O princípio é: – Se não há interseção entre as bounding boxes,
não há colisão entre os objetos
125
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (testando poliedros)– A maioria das colisões pode ser
detectada por um algoritmo de ponto em poliedro, aplicado aos vértices de um objeto em relação aos outros•Pode-se usar a equação do plano da face,
e verificar se o resultado é positivo (fora) ou negativo (dentro)
•Testar se um ponto está dentro de um poliedro côncavo é mais difícil
– Pode-se usar um algoritmo de tiro
126
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (testando poliedros)– Testar apenas essas colisões pode
deixar de fora algumas outras•Teste de interseção entre arestas e faces
do poliedro também é feito– Primeiro calcula-se se há interseção da aresta
com o plano que forma a face» Veja se os dois extremos encontram-se em
lados opostos do plano– Caso a aresta intercepte o plano:
» Calcule o ponto de interseção» Veja se esse ponto está dentro do polígono
que forma a face
127
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (testando poliedros)– O teste aresta-face captura todas as
interseções possíveis. Mas como é caro computacionalmente é deixado como última opção
128
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (testando poliedros)– Quando um vértice de um objeto fica
exatamente em cima de uma face de outro objeto, tratar cuidadosamente
• Normalmente, coloca-se o vértice de um lado do plano
– Frequentemente, a normal que define o plano de interseção é usada nos cálculos de resposta à colisão
• Quando um vértice penetra em uma face, a normal da face é usada
• Quando há uma interseção aresta-aresta, a normal é calculada como o produto vetorial de ambas
129
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (testando poliedros)– Outra forma de detectar se houve ou
não uma colisão é fazendo-se o uso de um volume de deslocamento•Primeiro, determina-se a trajetória linear
relativa que será seguida pelo objeto– Relativa porque os outros objetos em questão são
considerados estáticos
•As faces que estão de frente ao vetor de deslocamento são transladadas de maneira a alongar o objeto na mesma direção do vetor
•O teste de colisão deste volume deformado é feito com relação aos outros objetos
130
7.4 Simulação de corpo rígido
131
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (força de impulso da colisão)– Para mais um tratamento mais preciso, o
tempo pode ser retornado para o momento do impacto, calcula-se a reação e o tempo continua
• Computacionalmente caro para ambientes complexos
• O real momento da colisão pode ser achado – Busca binária
» Tolerância– Caminho linear
» Fazendo aproximação de que a velocidade é constante
132
7.4 Simulação de corpo rígido
133
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (força de impulso da colisão)– No tempo do impacto, a componente da
normal da velocidade do ponto pode ser modificada
• Coeficiente de restituição
134
7.4 Simulação de corpo rígido
135
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (calculando forças de impulso)– Mudança na velocidade devido a
colisão•Equação da mudança do momento
– Novo termo: Impulso» Grande força agindo por um intervalos de
tempo pequeno» Mudança no momento
PMvvMtMa
tFJ
)(
136
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (calculando forças de impulso)– Caracterizando a elasticidade da
colisão•Coeficiente de restauração
– Relaciona a velocidade relativa antes da colisão com a de depois
10
relrel vv
Antes da colisãoDepois da colisão
137
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (calculando forças de impulso)– Assumindo a colisão de dois objetos A e
B• Centros de massa:
• Velocidades lineares:
• Velocidades angulares:
• Pontos de colisão:
))(),(( txtx BA
))(),(( tt BA
))(),(( tvtv BA
),( BA pp
138
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (calculando forças de impulso)– Assumindo a colisão de dois objetos A
e B•Determinando a normal
– Depende se é vértice-face ou aresta-aresta
•Pontos de colisão relativas ao centro de massa:
•Velocidades relativas:
)(
)(
txpr
txpr
BBB
AAA
BBBB
AAAA
BArel
rttvtp
rttvtp
nntptpv
)()()(
)()()(
)))()(((
139
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (calculando forças de impulso)– Assumindo a colisão de dois objetos A
e B•As velocidades antes da colisão são
atualizadas pelo impulso– Impulso é um vetor na direção da normal
jnJ
))((
))((
jnrtI
jnrtI
M
jnvv
M
jnvv
BBBB
AAAA
BBB
AAA
1
1
140
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (calculando forças de impulso)– Assumindo a colisão de dois objetos A
e B•Velocidade relativa depois da colisão
• Impulso
BBBAAABA
rel
BBBAAArel
BArel
rnrtInrnrtInMM
n
vj
nrttvrttvnv
ntptpnv
))(())((
))((
)))()()()(((
)))()(((
1111
1
141
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (calculando forças de impulso)– Resumindo
•Os pontos de contato são definido•A normal da superfície é calculada•O ponto de contato é testado para ver se
está realmente colidindo– As velocidades dos pontos de contato são
calculada– A colisão existe se os pontos estiverem se
aproximando
142
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (calculando forças de impulso)– Resumindo
– Se houver uma colisão, é calculado a magnitude do impulso
» Direção da normal– Atualização do momento angular e linear dos
objetos
•Se houver mais de um ponto de colisão, todos devem ser testados
– Se realmente ocorrer a colisão para algum, lista de possíveis colisões deve ser atualizada
•Deve-se repetir até não ser achado nenhuma colisão
143
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (atrito)– Um objeto em repouso em cima de
outro•Estado de contato estático em relação ao
objeto suporte
– Qualquer força aplicada ao objeto em repouso é decomposta•Perpendicular•Paralela
144
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (atrito)– Força paralela
•Se o objeto suporte não puder se mexer– A força é cancelada
» Força igual no sentido oposto
•Senão– A força é transmitida
•Pode-se deslizar ou rolar
– Força perpendicular•Usa-se para mover o objeto
145
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (atrito)– Atrito estático
•É necessário que a força aplicada passe de um certo limiar para que o objeto passe a se mover
– Atrito cinético•Age quando a partícula já está em
movimento
Nss FF
Nkk FF
146
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (contato estático)– Calcular a força de contato estático é um
dos problemas mais difíceis da dinâmica para animação por computador
– Exemplo
147
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (contato estático)– Para cada ponto de contato existe uma normal
• Objetivo: Achar a magnitude dessa força– A força tem que ser grande o suficiente para evitar
penetração– Deve empurrar os objetos um contra o outro– Tem que chegar a zero quando não houver mais
contato
• Distancia de dois objetos, no ponto de contato i:
– Se : Objetos continuam em contato– Se : Objetos estão separados– Se : Penetração
))()()(()( tptptntd BAii
00 )(tdi00 )(tdi00 )(tdi
148
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (contato estático)– Em um tempo , a distância entre dois
objetos é 0• Para prevenir penetração a velocidade relativa
entre os objetos deve ser maior ou igual a zero
• Como• Assim• Já que
– A penetração é evitada caso a aceleração relativa:
– Simplificação
0t
))()()(())()()(()( tptptntptptntd BAiBAii )()( 00 tptp BA
00000 )))()()(()( tptptntd BAii
000 )()( tdtd ii
00 )(tni
))()()(())()()((
))()()(())()()(()(
tptptntptptn
tptptntptptntd
BAiBAi
BAiBAii
))()()(())()()(()( 0002 tptptntptptntd BAiBAii
0)(tdi
149
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (contato estático)– As restrições das forças podem ser
escritas como equações:• A força deve prevenir penetração
• A força deve empurrar os objetos para longe
• Força de contato zero0
0
0
ii
i
i
ftd
f
td
)(
)(
150
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (contato estático)– Aceleração relativa pode também ser escrita:
• O efeito de um contato j na aceleração relativa dos objetos envolvidos no contato i, deve ser achado
– Baseando-se na equação anterior, a componente da aceleração relativa...
– A componente dependente da velocidade dos pontos» Não é dependente da força j» É parte de
– A componente dependente da aceleração dos pontos» Depende da força j se os objetos estivem
envolvidos no contato j
j
n
jijii fabtd
1
)(
))()()(())()()(()( 0002 tptptntptptntd BAiBAii
ib
151
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (contato estático)– Aceleração em um ponto:
• é a aceleração linear– Resultado da força total agindo sobre A dividida
sobre a massa
• é a aceleração angular
)()()(
))(()()()()(
txtptr
rttrttvtp
AAA
AAAAAAA
)(tvA
)( 0tnm
fj
A
j
)(tA
)())(()(
))()()(()()()(
00
11
tnftxpt
ttLtIttIt
jjAjA
AAAAAA
152
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (contato estático)– Aceleração em um ponto:
• Parte que depende da força j
• Parte que não depende
AjAjAA
jj rtntxptIm
tnf )())()((
)(00
10
AAAAAAAAAA
A rttLtIrttttIm
tF )))()()((())(()()()(
)( 110
153
7.4 Simulação de corpo rígido
• 7.4.2 Corpos em colisão (contato estático)– Aceleração relativa
• Calculo de – Partes constantes de e são
combinadas e multiplicadas por– E é adicionado:
• Dever ser resolvido submetido as restrições
– Programação quadrática
j
n
jijii fabtd
1
)(
ib)(tpA )(tpB
))()()(( 0002 tptptn BAi )( 0tni
0
0
ii
i
ftd
f
)(
154
7.4 Simulação de corpo rígido
• 7.4.3 Dinâmica de ligações hierárquicas– Aplicar forças para uma figura com
ligações resulta em reações complexas• Exemplo de forças
– Gravidade– Golpe no peito com um objeto pesado
155
7.4 Simulação de corpo rígido
• 7.4.3 Dinâmica de ligações hierárquicas (dinâmica restrita)– Partículas conectadas por restrições de
distância•A massa da partícula reage a uma força
aplicada– Deslocamento espacial
•A hierarquia é atravessada começando da partícula que sofreu o primeiro deslocamento
– Cada partícula é reposicionada para obedecer as restrições em relação as partículas que já forma reposicionadas
156
7.4 Simulação de corpo rígido
157
7.4 Simulação de corpo rígido
• 7.4.3 Dinâmica de ligações hierárquicas (dinâmica restrita)– Força de impulso aplicada ao torço
•O torço reage como um corpo rígido independente
•Os anexos reagem a força forçando as restrições de distância para cada link separadamente seguindo a hierarquia
•Na realidade– O torço reage a força aplicada– Os anexos exercem forças e torques no torço
enquanto este tenta se afastar
158
7.4 Simulação de corpo rígido
159
7.4 Simulação de corpo rígido
• 7.4.3 Dinâmica de ligações hierárquicas (equações de Featherstone)– A força em que um link aplica em outro
pode ser calculada explicitamente– Algoritmo de Featherstone
• Inicializa velocidade dos links– Da raiz para fora
• Inicializa valores dos links– Da raiz para fora
•Atualiza valores– Do endeffector para dentro
•Calcula acelerações– Da raiz para fora
160
7.4 Simulação de corpo rígido
Vetores relacionando coordenadades de um frame para o outroui é o eixo de revolução associado ao Framei;ri é o vetor deslocamento do centro do Framei-1 ao centro do Framei;di é o vetor deslocamento do um eixo de revolução para o centro do Framei.
161
7.4 Simulação de corpo rígido
• 7.4.3 Dinâmica de ligações hierárquicas (equações de Featherstone)– Notação espacial
•Combinar componentes lineares e angulares
– 6 elementos cada
•Velocidade•Aceleração•Força•Massa•Eixo espacial
v
v
ˆ
a
a
ˆ
aMf
f ˆˆˆ
I
mM
0
0ˆ
ii
ii du
us
162
7.4 Simulação de corpo rígido
• 7.4.3 Dinâmica de ligações hierárquicas (equações de Featherstone)– Transformando os valores do frame G
ao frame F
Onde
e R é a matriz de rotação entre os frames
0
0
0
xy
xz
yz
rr
rr
rr
r
RRr
RFXG
0ˆ
163
7.5 Forçando restrições flexíveis e rígidas
164
7.5 Forçando restrições flexíveis e rígidas
• Maior problema de animação fisicamente baseada– Fazer com que a animação fique como
o animador quer ao mesmo tempo que reage as forças do ambiente
• Solução– Colocar restrições que restringem
somente alguns subconjuntos de DOF•Distância mínima entre objetos•Objeto com certa orientação no espaço
– Os outros reagem normalmente
165
7.5 Forçando restrições flexíveis e rígidas
• Restrições rígidas– Devem ser satisfeitas– Abordagens numéricas sofisticadas
• Busca de movimentos que reagem às forças do sistema enquanto satisfaz as restrições
• Restrições flexíveis– O sistema tenta satisfazer– Abordagens numéricas não tão
sofisticadas• Forças adicionais que influenciam o
movimento final– Modelados com malhas de molas e
amortecedores– Minimização de energia
166
7.5 Forçando restrições flexíveis e rígidas
• 7.5.1 Minimização de energia– A energia de um sistema pode ser
usado de várias maneiras para controlar o movimento do objeto•Definida para ajudar o animador•Pode ser usada para
– Deixar objetos juntos– Restaurar forma do objeto– Minimizar a curvatura das splines nas
interpolações de pontos no espaço
167
7.5 Forçando restrições flexíveis e rígidas
• 7.5.1 Minimização de energia– O estado corrente de um modelo pode
ser expresso como um conjunto de parâmetros referidos como•Posição•Orientação•Ângulos das juntas•Raio de um cilindro•Limiar de uma função implícita• ...
168
7.5 Forçando restrições flexíveis e rígidas
• 7.5.1 Minimização de energia– As restrições são formuladas em
termos desses parâmetros em uma função suave não negativa•O mínimo local da função é procurado
– Calcula o gradiente da função de energia» Anda na direção negativa
– Exemplo: Existem somente dois parâmetros
)(E
E
169
7.5 Forçando restrições flexíveis e rígidas
170
7.5 Forçando restrições flexíveis e rígidas
• 7.5.1 Minimização de energia– Exemplo:
•Existem somente dois parâmetros•Conjunto inicial de parâmetros: •Função inicial:•Assim:
– Pode ser resolvido com o Método de Euler
0
00 )(F
EtFdt
d)(
EhtFtF ii )()( 1
171
7.5 Forçando restrições flexíveis e rígidas
• 7.5.1 Minimização de energia(três funções úteis)– Função de posição paramétrica– Função da normal da superfície– Função implícita
Onde e são parâmetros da superfíciee é uma posição no espaço
),( vuP
),( vuN
)(xI
vux
172
7.5 Forçando restrições flexíveis e rígidas
• 7.5.1 Minimização de energia(restrições úteis)– Ponto com ponto fixo
• ponto fixo em coordenadas de mundo• ponto na superfície•Será zero quando coincidirem
Q
P
2QvuPE ),(
173
7.5 Forçando restrições flexíveis e rígidas
• 7.5.1 Minimização de energia(restrições úteis)– Ponto com ponto
•Os dois pontos são na superfície•Será zero quando coincidirem
2),(),( bb
baa
a vuPvuPE
174
7.5 Forçando restrições flexíveis e rígidas
• 7.5.1 Minimização de energia(restrições úteis)– Ponto com ponto (adjacentes
localmente)•Os dois pontos são na superfície•Será zero
– Quando coincidirem – Produto escalar das normais é -1 1
2 ),(),(),(),( bb
baa
abb
baa
a vuNvuNvuPvuPE
175
7.5 Forçando restrições flexíveis e rígidas
• 7.5.1 Minimização de energia(restrições úteis)– Ligação flutuante
•Usada função implícita do o objeto b•Um ponto especifico de a é forçado a ficar
na superfície de b
2))),((( aaab vuPIE
176
7.5 Forçando restrições flexíveis e rígidas
• 7.5.1 Minimização de energia(restrições úteis)– Ligação flutuante (adjacentes
localmente)•Usada função implícita do o objeto b•Um ponto especifico de a é forçado a ficar
na superfície de b•A normal de a e o ponto devem ser
colineares a normal inversa de b no ponto de contato
– A normal de b é calculado com o gradiente12
)),((
)),((),())),(((
aaab
aaab
aaa
aaab
vuPI
vuPIvuNvuPIE
177
7.5 Forçando restrições flexíveis e rígidas
• 7.5.1 Minimização de energia (restrições de energia não são restrições rígidas)– Desvantagem do método anterior é
que não são constantes rígidas•Nem sempre são atingidas
178
7.5 Forçando restrições flexíveis e rígidas
• 7.5.2 Restrições de espaço-tempo– Vê um movimento como uma solução
de um problema otimizado por restrições que acontece ao longo do tempo no espaço•Equações de movimento•Restrições de não-penetração•Colocar um objeto em um certo ponto em
um dado tempo
179
7.5 Forçando restrições flexíveis e rígidas
• 7.5.2 Restrições de espaço-tempo (partículas espaço-tempo)– posição da partícula em função do
tempo– força em função do tempo– Equação de movimento
•Resolvido por problema de valor inicial
)(tx
)(tf
0 mgtftxm )()(
180
7.5 Forçando restrições flexíveis e rígidas
• 7.5.2 Restrições de espaço-tempo (partículas espaço-tempo)– Porém, a questão é descobrir
•Dados os valores iniciais e finais•Função a ser minimizada•Função objetivo:
•Resolvendo, considera-se representações discretas de e
)(tf
)( 0tx )( 1tx2f
1
0
2t
t
fR
)(tf)(tx
181
7.5 Forçando restrições flexíveis e rígidas
• 7.5.2 Restrições de espaço-tempo (partículas espaço-tempo)– Para descobrir as derivadas usa-se
diferenças finitas
•Assim
•Restrições
211
1
2
h
xxxx
h
xxx
iiii
iii
02
211
mgf
h
xxxmp iii
i
0
01
bxc
axc
nb
a
182
7.5 Forçando restrições flexíveis e rígidas
• 7.5.2 Restrições de espaço-tempo (solução numérica)– Problema na forma genérica:
•“Ache os valores que minimizam sujeitos a ”
– Onde os valores são e
•Os métodos numéricos são caixa preta– Requerem os valores: , , e suas
derivadas
jS R0)( ji SC
jS ix if
jS R iC
183
7.5 Forçando restrições flexíveis e rígidas
• 7.5.2 Restrições de espaço-tempo (solução numérica)– Método usado por Witkin e Kass
•Variação do método Sequential Quadratic Programming (SQP)
– Calcula Newton-Raphson de segunda ordem em» Independente de qualquer restrição
– Calcula Newton-Raphson de primeira ordem em» Reduzir as funções de restrição
R
iC
184
7.5 Forçando restrições flexíveis e rígidas
• 7.5.2 Restrições de espaço-tempo (solução numérica)– Método usado por Witkin e Kass
•Passo de minimizar a função objetiva– Projetado em um espaço nulo de restrições
» Subespaços onde as restrições são constantes a uma aproximação de primeira ordem
•Uma direção para cada paço é escolhida– Não pode afetar a minimização de restrição– Reduz a função objetiva
185
7.5 Forçando restrições flexíveis e rígidas
• 7.5.2 Restrições de espaço-tempo (solução numérica)– Método usado por Witkin e Kass
•Funções de restrições são em primeira ordem
– Matriz de derivada primeira (Jacobiano) deve ser calculada
•Função objetiva é de segunda ordem– Matriz de derivada segunda (Hessiana) deve
ser calculada
j
iij S
CJ
jiij SS
RH
2
186
7.5 Forçando restrições flexíveis e rígidas
• 7.5.2 Restrições de espaço-tempo (solução numérica)– Método usado por Witkin e Kass
•Sistemas lineares a serem resolvidos
– Atualização final– O algoritmo chega em um ponto fixo quando
» as restrições são satisfeitas » Nenhum passo que minimiza R violaria
alguma restrição
jjjiji
jjij
i
SSJC
SHRS
)~ˆ(
ˆ
jjj SSS~ˆ
top related