Top Banner
Detecção de Colisões Detecção de Colisões entre Pares de Poliedros entre Pares de Poliedros Rígidos Aplicada ao Rígidos Aplicada ao Projeto ASIMOV Projeto ASIMOV por Anderson Maciel
29

Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Feb 08, 2019

Download

Documents

lenguyet
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Detecção de ColisõesDetecção de Colisõesentre Pares de Poliedrosentre Pares de Poliedros

Rígidos Aplicada aoRígidos Aplicada aoProjeto ASIMOVProjeto ASIMOV

porAnderson Maciel

Page 2: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Conteúdo destaConteúdo destaapresentação:apresentação:

• Introdução– Objetivos e Motivação– A Detecção de Colisões

• Boyse (1979) [Checagem de Intersecção

• Uchiki (1983) [Ocupação de Espaço]• Moore (1988) [Cyrus-Beck]• Lin (1992) [Regiões Voronoi].

Parte I

Page 3: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Conteúdo destaConteúdo destaapresentação:apresentação:

• Garcia-Alonso (1994) [Four-Step]– A estrutura do método– Os quatro passos

• ASIMOV (o ambiente de simulação)• Escolha e implementação do

método• Os resultados e as conclusões.

Parte II

Page 4: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Parte IParte I

Page 5: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Motivação e ObjetivosMotivação e Objetivos

• Objetos (virtuais/reais) não podem seinterpenetrar

• Solução visual è Solução automática• Trabalhos acadêmicos e software comercial.

• Investigar algoritmos de DC existentes• Escolher o mais adequado às estruturas do

ASIMOV• Implementá-lo no simulador do ASIMOV.

Page 6: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Detecção de Colisões?Detecção de Colisões?

• Penetração entre objetos è ALTO CUSTO• Variações possíveis para o problema:

– Descobrir o momento da colisão– Encontrar o ponto de colisão– Obter o vetor de direção da colisão– Responder a uma situação de colisão– Detectar possível colisão antes que ela ocorra– Poliedros ou superfícies, rígidos ou flexíveis– Convexos ou não convexos– Genérico Ù Muitos casos especiais.

Page 7: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Boyse Boyse (1979)(1979)

• Objetos sólidos e superfíciesparamétricas

• Representados por poliedros(FacesÙArestasÙVértices)

• Dois tipos de checagem deinterferência:– Intersecção entre objetos em posições

fixas– Colisões entre objetos que se movem ao

longo de trajetórias definidas.

Page 8: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

EstáticaEstática

• Relações deInterferência:

– A∩B=∅

– A∩B=A (A ⊆ B)– A∩B=B (B ⊆ A)– A∩B=C (C ≠ ∅)

(C ≠ A) (C ≠ B)

• Posição inicial denão interferência

DinâmicaDinâmica

1

2

1. Aresta contata interiorda face

2. Aresta contata bordada face

Page 9: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Uchiki Uchiki (1983)(1983)• Ocupação do Espaço• PEARY

n bits

PARTE DEDETECÇÃO DECOLISÕES

PARTE DECONTROLE DEMENSAGEM

TABELA DE NOMES DE OBJETOS

COORDENADAS

NOMES DE OBJETOS

MENSAGENS

• Detector de colisões

• Resposta imediata X Restrição de memória.

Page 10: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

MooreMoore (1988) (1988)

• Algoritmo de recorte de Cyrus-Beck

p

v

n

produto escalarnegativo

• Representação (facespoligonaisÙarestasÙvértices)

• Testa pontos representativos de B contra A(B no SRA) e de A contra B (A no SRB).

Page 11: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

VérticesVértices• Comparar cada

vértice de B comcada face de A

• Se (vi - uj1)· nj < 0então vi está dentroda face

• Se algum vérticeestá dentro de todasas faces de B eleestá dentro de B=(colisão)

• Dividir a aresta em pequenossegmentos

ArestasArestas

A

B

V2

V1

( ) kkii nuvd ⋅−= 1 ||||

||

ji

i

dd

dt

+=

( ) kkjj nuvd ⋅−= 1 ( )ij vvtviP −+=

• Testar o ponto médio decada segmento contra asfaces (análogo aos vértices)

Page 12: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Lin Lin (1992)(1992)

• Algoritmo de distância• Regiões Voronoi Objeto A

A1

A3

A4 A2

V4 V3

V2V1

• Teste de Aplicabilidade(Verifica se um ponto estáem um região Voronoi)

• Tempo limite para colisão (fila)• Programação de horários• Pode trabalhar com objetos não-convexos• Executa em tempo constante (independente

da complexidade dos objetos).

Page 13: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Parte IIParte II

Page 14: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Garcia-Garcia-Alonso Alonso (1994)(1994)

• Refinamento (cada passo é menordo que o anterior)

• Quatro Passos1. Matriz de participação em

colisões2. Interferência entre pares de

containers3. Interferência entre voxels4. Interferência entre pares de faces

Page 15: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

1 - Matriz de Participação1 - Matriz de Participação

• Gerada no início dasimulação

• Contém todos ospares de objetos eum flag

• Checa flag de cadapar.

• Executa (ou não) oteste entrecontainers

• Principais Vantagens:– Mesma Peça– Usuário não deseja

testar– Peças conectadas

ID Obj #1 ID Obj #2 Flag

TRUE

2

3

1

2

2 4

FALSE

TRUE

pré

Page 16: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

2 - Teste entre2 - Teste entre Containers Containers

• Calcular eixos básicospara todos os objetos

• Mudar eixos básicos parao SRU

• Encontrar caixa minimax

SRLocal

Global

Eixos Básicos de(O, v1, v2, v3)

Containerde A

x

x

y

y

v2

z

v1v3

O

Objeto A

pré

Objeto B

Caixa minimaxde B

SRU

y

Container de B

Eixos básicos deB

x

• Aplicar teste minimaxMIN(A) > MAX(B)MAX(A) < MIN(B)

Page 17: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

3 - Interferência entre3 - Interferência entre Voxels Voxels• Pequenas caixas

idênticas• Voxelização gerar

matriz de voxel

• Gerar T[AèB] e T[BèA]pré

Containerdo objeto Voxels

A B

• Calcular minimax de Bem A e de A em B

• Matrizes de interferência

• Ponteiro para listade faces

• Buffer de pares de voxels

Page 18: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

4 - 4 - IntersecçãoIntersecção de Faces de Faces

• Elementos prégerados pelosoutros passos– Descrição

geométrica dosobjetos

– Matriz de voxels– Buffer de voxels

• Gerar lista de pares defaces

• Aplicar método paraintersecção geométricade faces

• Se algum parintersecciona è Colisãoocorreu no ponto deintersecção.

pré

Page 19: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Algoritmo de Algoritmo de IntersecçãoIntersecçãoAresta X ArestaAresta X Aresta

• Método de Goldman(interf. entre arestas definidas por 2 pts

• Problema #1 è Voxel(6 faces) X Face• Problema #2 è Face X Face

• Aresta X Face è Aresta X Aresta ??• è Projeção!!

Page 20: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Algoritmo de Algoritmo de GoldmanGoldman• Calcular distâncias

T e S

SRUx

y

z

SRF

Vi

VjVn

A1

P1 P2I

A2

)'()'(

'

12

11

VVVV

VV

VV

VV

T

BB

AB

⋅×⋅

×−−

=

• Descobrir pontos maispróximos

• Se ponto igual, então éo ponto de intersecção

()'(

'

12

11

VVV

VV

VV

VV

S

AA

AB

⋅×⋅

×−−

=

• Calcular Projeção

Page 21: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

O Projeto ASIMOVO Projeto ASIMOV

• Hospeda a implementação dométodo escolhido

• Ambiente educacional integradopara o projeto e simulação deManipuladores Mecânicos

• Qualidade e baixo custo

Page 22: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Estrutura do ProjetoEstrutura do Projeto

MODELAGEM

VISUALIZAÇÃO

CAD

API

INTERFACE

INTERFACE GRÁFICA DO USUÁRIO

INTERFACESIMULADOR

SGBD

INTERFACEAMBIENTE DE

PROGRAMAÇÃO

INTERFACE

INTERFACE

INTERFACE

USUÁRIO

PROGRAMA

MANIPULADOR

ARQUIVO DE

DO SISTEMADESCRIÇÃO

BASE DE

COMPONENTESDADOS DE

BASE DE

TUTORDADOS DO

INSTRUÇÃO

Page 23: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Estrutura HierárquicaEstrutura HierárquicaManipulador

ObjetosPeçasJuntas

Lista de Juntas Vetor de MatrizesDH

Lista de Peças

SRJ 1 0 SRPart

SRJ 2 1 SRPart *

SRJ 3 2 SRPart *

SRJ 7 7 SRPart *

*

*

... ...

*

.....

M[7→6]

M[4→3]

M[3→2]

M[2→1]

Page 24: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

Estrutura GeométricaEstrutura GeométricaVetor_Vertice Vetor_Aresta Vetor_Face Nro_Faces Tam_Vet_Vert

* 6 8

F1

Vetor_Int Nro_Arestas

F2 F3 F4 F5 F6

Vetor_Int Vetor_Int Vetor_Int Vetor_Int Vetor_IntNro_Arestas Nro_Arestas Nro_Arestas Nro_Arestas Nro_Arestas

* *

* * * * * *

1

4 4 4 4 4

A1 A3A2 A4 A5 A6 A2A7

V1V1 V1 V1 V1 V1 V1 V1V2V2 V2V2 V2 V2V2 V2

2 2 3 3 4 4 65521 6 323

3 421

XX X XY Y YYZ Z Z Z EXTEXTEXTEXT

........................... .........* ** *

4

OBJETOS

VÉRTICES

ARESTAS

FACES

Tam_Vet_Arestas

24

. . .

. . .

Page 25: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

A Escolha do MétodoA Escolha do Método

• Necessidades do ASIMOV• Estrutura de representação• Funcionamento do simulador do

ASIMOV• Tempo Real.

Page 26: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

ImplementaçãoImplementação

• Ambiente Windows• Linguagem C++• Padrões e metodologia do

ASIMOV• Elementos adicionados à

estrutura.

Page 27: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

ResultadosResultados

• Software capaz de detectarcolisões em tempo real no PC.

• “Uma imagem vale por milpalavras”...(Execute o programa Simulacao.exedo CD Detecção de Colisões para verum vídeo demonstrativo)

Page 28: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

ConclusõesConclusões

• Tendência a otimizar tempo• Métodos se adaptam a aplicações

específicas ç não existe um geral• Tempo-real ç aspectos pouco

explorados– Superfícies curvas– Enormes quantidades de objetos– Coerência espacial entre quadros– Contato ≠ Interferência

Page 29: Detecção de Colisões entre Pares de Poliedros Rígidosamaciel/old_projects/apresentacao-amaciel-ucs... · – Poliedros ou superfícies, rígidos ou flexíveis – Convexos ou

CBF