Upload
yachi
View
28
Download
0
Embed Size (px)
DESCRIPTION
Animação por Computador Capítulo 5 Vínculos Cinemáticos. CRAb – Grupo de Computação Gráfica Departamento de Computação UFC. Sumário do Capítulo 5. 5. Introdução 5.1 Modelagem hierárquica 5.2 Cinemática direta 5.3 Cinemática inversa. 5. Introdução. - PowerPoint PPT Presentation
Citation preview
Animação por Computador
Capítulo 5Vínculos Cinemáticos
CRAb – Grupo de Computação Gráfica
Departamento de ComputaçãoUFC
2
Sumário do Capítulo 5
5. Introdução5.1 Modelagem hierárquica5.2 Cinemática direta5.3 Cinemática inversa
3
5. Introdução
• É conveniente descrever o movimento de um objeto em relação a outro– Sistema de coordenadas conveniente– Exemplo:
•Sistema solar (centrado no sol)•Como seria a definição do movimento da
lua?
4
5. Introdução
• É conveniente descrever o movimento de um objeto em relação a outro– Sistema de coordenadas conveniente– Exemplo:
•Sistema solar (centrado no sol)•Como seria a definição do movimento da lua?
– A lua seria relativa a terra– A terra seria relativa ao sol– Assim, seria possível colocar o movimento da lua
em relação as coordenadas do sol
5
5. Introdução
• É conveniente descrever o movimento de um objeto em relação a outro– Cadeia de objetos relacionados:
•Hierarquia de movimento•Objetos fisicamente conectados•Exemplos
– Astronomia– Robótica– Motores de combustão interna– Animação da figura humana– ...
6
5. Introdução
• Ligações causam restrições ao movimento– Dimensionalidade reduzida
•É necessário especificar menos graus de liberdades
•Exemplo:– O movimento da lua ao redor da terra pode ser
especificado com um único parâmetro: ângulo» Já que a lua rotaciona em um plano fixo há
uma distância fixa
7
5. Introdução
• Animando estruturas hierárquicas– Cinemática direta
•Animador deve especificar os parâmetros de rotação nas juntas
8
5. Introdução
• Animando estruturas hierárquicas– Cinemática inversa
•Animador deve especificar a posição da mão
5.1 Modelagem hierárquica
10
5.1 Modelagem hierárquica
• Imposição de restrições de posições relativas– Objeto organizado como uma
estrutura de arvore– Não é necessário verificar se os
membros continuam juntos
11
5.1 Modelagem hierárquica
• Termos– Figuras articuladas
•Objetos conectados pelas pontas– Animais– Humanos
• Junção dos membros (articulações) são manipulados para produzir movimentos dos membros
raiz
12
5.1 Modelagem hierárquica
• Termos– Muito conteúdo é proveniente da
robótica
13
5.1 Modelagem hierárquica
• Termos– Manipuladores
•Sequência de objetos conectados por juntas
14
5.1 Modelagem hierárquica
• Termos– Link
•Objeto rígido entre duas juntas
15
5.1 Modelagem hierárquica
• Termos– End effector
•Fim da cadeia de objetos
16
5.1 Modelagem hierárquica
• Termos– Frame
• Sistema de coordenadas local associado a cada junta
– Juntas • Mais importante:
– Junta de revolução» Um link rotaciona ao redor de um ponto fixo
de outro link– Junta prismática
» Um link translada relativo a outro
17
5.1 Modelagem hierárquica
• Termos– Juntas
•Ball and socket
18
5.1 Modelagem hierárquica
• Termos– Juntas
•Hinge
19
5.1 Modelagem hierárquica
• Termos– Juntas
•Slider
20
5.1 Modelagem hierárquica
• Termos– Grau de liberdade
•O menor número de coordenadas necessárias para especificar completamente o movimento de um objeto
– Juntas que possuem um grau de liberdade:
21
5.1 Modelagem hierárquica
• Termos– Grau de liberdade (degree of freedom –
DOF)•O menor número de coordenadas
necessárias para especificar completamente o movimento de um objeto
– Juntas que possuem mais de um grau de liberdade
» Chamadas de juntas complexas
22
5.1 Modelagem hierárquica
23
5.1 Modelagem hierárquica
• 5.1.1 Estrutura de dados– Estrutura que contem nós e arestas– Nó raiz
•Corresponde ao objeto raiz da hierarquia•Posição dada em coordenadas globais
– Nós•Posições relativas ao nó raiz
– Nós folhas•Correspondem aos end effectors
– Nó pai / Nó filho•O nó pai se encontra em uma posição
mais alta na hierarquia que o nó filho
24
5.1 Modelagem hierárquica
• 5.1.1 Estrutura de dados– Mapeando hierarquia e árvore
•Link x Nó• Junta x Aresta
– Transformação que deve ser feita para todos abaixo na hierarquia
•Um nó de uma árvore pode ter mais de uma aresta ligada a ele
•Um objeto pode ter mais de uma junta conectada a ele
25
5.1 Modelagem hierárquica
• 5.1.1 Estrutura de dados– Transformações globais ocorrem no
nó raiz• Indiretamente, afeta o resto da hierarquia
26
5.1 Modelagem hierárquica
• 5.1.1 Estrutura de dados– Um nó contem todas as informações
necessárias para posicionar a parte do objeto
– O ponto de rotação fica no começo da parte do objeto
– Transformações que podem ocorrer•Posicionar no local correto, conectada ao
link pai na hierarquia– Posição natural
•Relativa a junta
27
5.1 Modelagem hierárquica
• 5.1.1 Estrutura de dados
28
5.1 Modelagem hierárquica
• 5.1.1 Estrutura de dados (Exemplo)– Estrutura
29
5.1 Modelagem hierárquica
• 5.1.1 Estrutura de dados (Exemplo)– Estrutura
30
5.1 Modelagem hierárquica
• 5.1.1 Estrutura de dados (Exemplo)– Estrutura
31
5.1 Modelagem hierárquica
• 5.1.1 Estrutura de dados (Exemplo)– Árvore
32
5.1 Modelagem hierárquica
• 5.1.1 Estrutura de dados (Exemplo)– Posição final de um vértice de um
objeto•Concatenação de transformações
11111011
1
1101
1
000
0
1.1Link do vérticeo é
1Link do vérticeo é
0Link do vérticeo é
... '
'
'
VTTTV
V
VTTV
V
VTV
V
33
5.1 Modelagem hierárquica
• 5.1.1 Estrutura de dados (Exemplo)– Animação de junta de revolução
•Transformações parametrizadas
)( iiR
34
5.1 Modelagem hierárquica
• 5.1.1 Estrutura de dados (Exemplo)– Animação de junta de revolução
•Estrutura
35
5.1 Modelagem hierárquica
• 5.1.1 Estrutura de dados (Exemplo)– Animação de junta de revolução
•Árvore
36
5.1 Modelagem hierárquica
• 5.1.1 Estrutura de dados (Exemplo)– Animação de junta de revolução
•Posição final– Sequência de transformações
» Transformação do nó» Rotação» Transformação da junta
11111111111011
111101
..... )()('
)('
VRTRTTV
VRTTV
37
5.1 Modelagem hierárquica
• 5.1.1 Estrutura de dados (Exemplo)– Mais de uma estrutura anexada
•Estrutura
38
5.1 Modelagem hierárquica
• 5.1.1 Estrutura de dados (Exemplo)– Mais de uma estrutura anexada
•Árvore
39
5.1 Modelagem hierárquica
• 5.1.2 Frames de coordenadas locais– É conveniente para aplicar procedimentos
•Cinemática inversa
– Uso:•Desenho
– Converter pontos definidos no frame da junta para as coordenadas globais
•Transformar um ponto em coordenadas locais de um nó filho para o de um nó pai
– Matriz de transformação associada a cada aresta– O inverso também pode ser feito (pai para filho)
» Matriz inversa
40
5.1 Modelagem hierárquica
• 5.1.2 Frames de coordenadas locais
Cinemática direta x Cinemática inversa
1
2
P P
),( 21 fP )(, Pf 121
41
5.1 Modelagem hierárquica
• 5.1.2 Frames de coordenadas locais– Implementação de junta com
múltiplos DOF• Interface com o usuário
– Quais informações são necessárias para especificar os valores de rotação de uma junta?
» Costume: Ângulos de Euler
•Como aplicar as transformações– Quaternios
» Evitar gimbal lock
42
5.2 Cinemática direta
43
5.2 Cinemática direta
• Transformações são feitas da raiz às folhas– Percurso em pré-ordem na árvore
•Uso de pilha•As transformações que preparam o nó
para ser transformado não devem ser compostas com a matriz que vai para pilha
Obs: Existe um pseudo-código de exemplo no livro
44
5.2 Cinemática direta
• Pose– Quando todas os parâmetros são
definidos – Especificado por um vetor
•Vetor posição•Um valor para cada DOF
45
5.2 Cinemática direta
• Animação– Os parâmetros da junta são
manipulados•Ângulos de rotação•São usados para fazer a matriz de
transformação da aresta
– Usuário deve definir poses chaves e interpolar as poses intermediárias•Não é prático ter que definir cada
parâmetro– Tentativa e erro
46
5.2 Cinemática direta
• Exemplo
?
Base
End Effector3l
1
2
2l1l
3
)sin()sin()sin(
)cos()cos()cos(
332211
332211
llly
lllx
47
5.3 Cinemática inversa
48
5.3 Cinemática inversa
• Informações recebidas do usuário – Posição e orientação desejadas do
end effector– Pose inicial
• São calculados os valores das juntas para chegar na configuração desejada– Nenhuma solução
•Sistema sobre-restrito
– Uma solução– Várias soluções
•Sistema sub-restrito
49
5.3 Cinemática inversa
• Nenhuma solução
50
5.3 Cinemática inversa
• Várias soluções
51
5.3 Cinemática inversa
• Espaço de alcance (reachable workspace)– É o volume em que o end effector
consegue alcançar
• Espaço de destreza (dextrous workspace)– É o volume em que o end effector
consegue alcançar com qualquer orientação
52
5.3 Cinemática inversa
53
5.3 Cinemática inversa
• Depois que os valores das juntas são calculados– Animação pode ser feita interpolando
os valores da pose inicial e final•Mudanças muito bruscas não
proporcionam controle sobre o caminho do end effector
– Solução» Várias posições intermediarias do end
effector podem ser calculadas e dadas de entrada para a cinemática inversa
54
5.3 Cinemática inversa
• Mecanismo for simples– Calculo analítico– Sendo dados pose inicial e final
•Poses intermediárias conseguidas com a interpolação dos vetores pose
55
5.3 Cinemática inversa
• Mecanismo complicado– Abordagem incremental
•Matriz de valores que relacionam as mudanças nos valores das juntas
– Matriz Jacobiana
•End effector é movido até chegar na configuração final (com uma certa tolerância)
56
5.3 Cinemática inversa
• 5.3.1 Resolvendo sistema simples analiticamente– Examinar a geometria do sistema– Exemplo:
57
5.3 Cinemática inversa
• 5.3.1 Resolvendo sistema simples analiticamente– Exemplo:
•Os ângulos podem ser conseguidos calculando a distância da base até o ponto definido
– Lei dos cossenos
•Tem que ter certeza que o ponto é alcançável
•Nesse exemplo só tem duas soluções simétricas
2122
21 LLYXLL
58
5.3 Cinemática inversa
21
2222
21
2
21
2222
21
22
2
2180
LL
YXLL
LL
YXLL
arccos
coscos
22
22
YX
X
YX
X
T
T
arccos
cos
T
T
YXL
LYXL
YXL
LYXL
221
22
2221
1
221
22
2221
1
2
2
arccos
cos
59
5.3 Cinemática inversa
• 5.3.2 Jacobiano– Usado para mecanismos complexos– O movimento pode ser construído
incrementalmente•A cada espaço de tempo calcula-se a
mudança dos parâmetros das juntas•Existem muitos métodos para resolver
esse problema– Grande maioria usa a matriz Jacobiana
» Matriz de derivadas parciais
60
5.3 Cinemática inversa
• 5.3.2 Jacobiano– Explicação matemática
),,,,,(
),,,,,(
),,,,,(
),,,,,(
),,,,,(
),,,,,(
65432166
65432155
65432144
65432133
65432122
65432111
xxxxxxfy
xxxxxxfy
xxxxxxfy
xxxxxxfy
xxxxxxfy
xxxxxxfy
61
5.3 Cinemática inversa
• 5.3.2 Jacobiano– Explicação matemática
•A derivada de pode ser escrita em função das derivadas de
•Notação vetorial
iy
ix
66
55
44
33
22
11
xx
fx
x
fx
x
fx
x
fx
x
fx
x
fy iiiiii
i
dXX
FdY
XFY
)(
62
5.3 Cinemática inversa
• 5.3.2 Jacobiano– Explicação matemática
•A matriz de derivadas parciais é chamada de Jacobiano
– Pode ser pensada como o mapeamento das velocidades de para as velocidades de
XXJY )(
XF
X Y
63
5.3 Cinemática inversa
• 5.3.2 Jacobiano– Quando o Jacobiano é aplicado a um
sistema que se quer animar • valores das juntas• posição e orientação do end effector
•O jacobiano relaciona a velocidade dos ângulos das juntas com a velocidade do end effector
ix
iyT
zyxzyx pppY ],,,,,[
)(JYV
64
5.3 Cinemática inversa
• 5.3.2 Jacobiano– Quando o Jacobiano é aplicado a um
sistema que se quer animar• representa velocidade linear e angular
• é o vetor das velocidades nas juntas
Tzyxzyx vvvV ],,,,,[
V
T
n ],[ 21
65
5.3 Cinemática inversa
• 5.3.2 Jacobiano– Quando o Jacobiano é aplicado a um
sistema que se quer animar • é a matriz JacobianaJ
n
zzz
n
yyy
n
xxx
vvv
vvv
J
21
21
21
66
5.3 Cinemática inversa
• 5.3.2 Jacobiano– Cada termo relaciona a mudança de
uma junta especifica com uma mudança especifica no end effector• Junta de revolução
– Modifica» Velocidade da junta sobre o eixo de rotação
• Junta prismática– Orientação não muda– Mudança linear é igual a mudança na junta
• Junta de rotação– Mudança linear
» Produto vetorial do eixo de revolução com vetor da junta ao end effector
67
5.3 Cinemática inversa
68
5.3 Cinemática inversa
• 5.3.2 Jacobiano– Velocidades angular e linear
•Diferença da configuração atual e a desejada
•Problema: – Determinar a melhor combinação linear– Jacobiano coloca o problema na forma de
matriz
– Colocar todos os valores no mesmo sistema de coordenadas
69
5.3 Cinemática inversa
• 5.3.2 Jacobiano (Exemplo)– A orientação do end effector não interessa para o
exemplo
70
5.3 Cinemática inversa
• 5.3.2 Jacobiano (Exemplo)– Incrementos ig
71
5.3 Cinemática inversa
• 5.3.2 Jacobiano (Exemplo)– Mudança desejada
– Jacobiano
z
y
x
EG
EG
EG
V
)(
)(
)(
zzz
yyy
xxx
PEPEE
PEPEE
PEPEE
J
))(),,(())(),,(()),,((
))(),,(())(),,(()),,((
))(),,(())(),,(()),,((
21
21
21
100100100
100100100
100100100
72
5.3 Cinemática inversa
• 5.3.2 Jacobiano (Exemplo)– Assim:
3
2
1
21
21
21
100100100
100100100
100100100
zzz
yyy
xxx
z
y
x
PEPEE
PEPEE
PEPEE
EG
EG
EG
))(),,(())(),,(()),,((
))(),,(())(),,(()),,((
))(),,(())(),,(()),,((
)(
)(
)(
JV
73
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Usando Jacobiano inverso)– Equação a ser resolvida
– Problemas•Se não existir
– Sistema singular
•Matriz não é quadrada
VJ
JV1
1J
74
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Usando Jacobiano inverso)– Exemplo de singularidade
•Vetores perpendiculares– Impossível de fazer o movimento necessário
75
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Usando Jacobiano inverso)– Exemplo próximo de ser singular
•Valores altos devem ser usados•Erro numérico
76
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Usando Jacobiano inverso)– Se a matriz não quadrada
•Provavelmente tem infinitas soluções• Inversa convencional não existe
– Se as linhas forem linearmente dependentes» existe» Pseudoinversa, , pode ser usada
1)( TJJJ
77
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Usando Jacobiano inverso)
– Nem sempre as colunas são linearmente dependentes mas as linhas são• não existe, mas existe
– Nota: tirado da errata
11
11
)()(
)()(
TTTT
TTTT
TT
JJJJJJJ
VJ
JJJJVJJJ
JJVJ
JV
1)( JJ T 1)( TJJ
78
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Usando Jacobiano inverso)– Decomposição LU pode ser usada
para resolver
•Substituindo
VJJ
VJJT
T
)(
)( 1
TJ
79
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Usando Jacobiano inverso)– Integração numérica pode usada para
atualizar os ângulos das juntas•Euler
– O processo é feito para cada passo de tempo até o end effector chegar ao destino•Tolerância
80
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Usando Jacobiano inverso)– Importante:
•O jacobiano só é válido para a configuração daquele instante
81
5.3 Cinemática inversa
Tamanhos: 15, 10 e 5Pose inicial: {π/8, π/4, π/4}Destino: {-20, 5}Total de frames: 21
Frame 0 Frame 5 Frame 10
Frame 15 Frame 20
82
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Usando Jacobiano inverso)– Sistema sub-restrito também tem
problema de singularidade•Modificação da solução
– Parâmetro de damping dado pelo usuário– Reduzir a sensibilidade da pseudoinversa
– Se comporta melhor perto de áreas de singularidade
VIJJJ T 121 )(
83
5.3 Cinemática inversa
Tamanhos: 15, 10 e 5Pose inicial: {π/8, π/4, π/4}Destino: {-35, 5} - fora do alcanceTotal de frames: 21
Frame 0 Frame 10 Frame 18 Frame 19 Frame 20
Sem damping
Com damping
84
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Adicionando maior controle)– Pseudoinversa é uma solução entre
muitas•Não é necessariamente uma pose natural
– Possível forçar certos ângulos nas juntas para se ter melhor controle•Não afeta na posição do end effector
zIJJ )(
85
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Adicionando maior controle)– Possível forçar certos ângulos nas
juntas para se ter melhor controle•Não afeta na posição do end effector
(prova)
0
0
V
zV
zJJJJV
zIJJJV
JV
)(
)(
86
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Adicionando maior controle)– Influenciar um certo ângulo
•Não são como restrições rígidas, mas as soluções podem ser influenciadas para os valores do meio
2)( ciiiz
juntas das ganhos os são
desejados juntas das ângulos os são
correntes juntas das ângulos os são Onde,
i
ci
i
87
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Adicionando maior controle)– Dados de entrada
• • , indica a importância relativa do
ângulo desejado associado– Quanto maior, mais alto é a rigidez da junta
ci
i
88
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Adicionando maior controle)– Assim, a formula final:
zJzVJJJ
zJzVJJJ
zJzVJ
IzJzJVJ
zIJJVJ
TT
TT
)]()[(
)()(
)(
)(
1
1
89
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Adicionando maior controle)– Usando a decomposição LU em:
– Assim:
)()( JzVJJ T 1
)( T
T
JJJzV
zJ
90
5.3 Cinemática inversa
Tamanhos: 15, 10 e 5Pose inicial: {π/8, π/4, π/4}Destino: {-20, 5}Total de frames: 21Todos os ângulos serão influenciados para 0 (zero)
Frame 0 Frame 5 Frame 10 Frame 15 Frame 20
Ganho: {0.1, 0.5, 0.1}
Ganho: {0.1, 0.1, 0.5}
91
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Jacobiano alternativo)– O invés de fazer o end effector ir até ao
destino, fazer com que o destino vá ao end effector• Usar a posição de destino no lugar do end
effector na pseudoinversa
Tamanhos: 15, 10 e 5Pose inicial: {π/8, π/4, π/4}Destino: {-20, 5}Total de frames: 21
Frame 0 Frame 50 Frame 10 Frame 15 Frame 20
92
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Evitando inversa)– Usa-se a transposta do Jacobiano– Resolver a as equações lineares usando
a a pseudo inversa é basicamente: • Determinar o peso necessário para fazer a
velocidade desejada do vetor de mudança do instante
– Outra solução:• Criar a projeção do vetor mudança no end
effectorVJ T
93
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Evitando inversa)– Evitar o calculo caro da inversa ou
pseudoinversa– Desvantagem:
•Pode levar o end effector para longe do destino
Tamanhos: 15, 10 e 5Pose inicial: {π/8, π/4, π/4}Destino: {-20, 5}Total de frames: 21
Frame 0 Frame 5 Frame 10 Frame 15 Frame 20
Escala usada: 0.1
94
5.3 Cinemática inversa
• 5.3.3 Solução numérica (Coordenação de Minimização Cíclica)– Não utiliza mecanismo numérico– Considera cada junta por vez
•A partir da mais distante•Escolhe o melhor ângulo que faça o end
effector chegar no destino
95
5.3 Cinemática inversa
Tamanhos: 15, 10 e 5Pose inicial: {π/8, π/4, π/4}Destino: {-20, 5}Total de frames: 21
Frame 0 Frame 5 Frame 10 Frame 15 Frame 20
96
Referências
• Slides de J. H. Chuang
• Banco de imagens e vídeos do livro
• Errata do livro
• Dissertação de Benedito Aloísio