pesquisa, desenvolvimento e difusão de novas tecnologias ... · pesquisadores aptos a atuarem em...
TRANSCRIPT
Departamento de Artes e Design
Pesquisa, desenvolvimento e difusão de novas tecnologias digitais de
manufatura, modelagem e captura de superfícies.
Aluno:Gabriel Vinagre
Orientador: Jorge Lopes
Introdução
A pesquisa trata do estudo de dispositivos hapticos sobre superfícies 3d juntamente com a
exportação de superfícies e formas de objetos físicos para um ambiente tridimensional em que
seja possível a interação do usuário com esses modelos virtuais, através de dispositivos
haptics.
Nesse sentido, essa pesquisa trata do dispositivo que vem a expandir a capacidade tátil do ser
humano, a haptic ou dispositivo haptico, aparato que permite interagirmos com objetos,
ambientes e seres, seja dentro de um campo virtual ou real. No entanto, nessa pesquisa, será
abordada a simulação tátil de um ambiente virtual para o real.
Objetivos
O presente projeto tem por objetivo viabilizar a utilização integrada do saber tecnológico em
modelagem, captura e simulação tridimensional virtual e física na formação de profissionais e
pesquisadores aptos a atuarem em projetos nas diversas áreas do Design, tais como, Design de
Produtos, Mídia Interativa, Moda, Animação e Arquitetura, a serem desenvolvidas por alunos,
professores e pesquisadores do Departamento de Artes & Design da PUC-Rio e do Instituto
Nacional de Tecnologia.
Metodologia
Os métodos propostos no presente projeto estão relacionados à obtenção de superfícies, para a
representação 3D digital e para a representação física tridimensional de modelos e protótipos.
Com os avanços computacionais, novas possibilidades na transposição das ideias geradas no
desenvolvimento de projetos para o meio virtual podem ser feitas com tecnologias digitais
como a captura de imagens de superfícies através de scanners 3D (a laser ou luz branca). Com
esta tecnologia, o modelo físico construído por sistemas convencionais tem sua geometria
transferida para o computador através da captura digital da superfície, o que garante a
fidelidade geométrica e dimensional desenvolvida pelo aluno / projetista / pesquisador e sua
posterior manipulação. Esta manipulação pode passar por ajustes de superfície (malha
poligonal), alterações de escala,mudança de cores, inserção de aplicações gráficas, animações
e outros. Essas manipulações permitem o desenvolvimento de variantes utilizadas no processo
de simulação e testes adequados a multidisciplinaridade dos processos de design. Também a
interface entre usuário e o hardware passa por novas tecnologias de interação de uso além dos
habituais mouses, tais como as tecnologias “haptic” que simulam sensações táteis durante o
procedimento de modelagem virtual entre o usuário e a tela dos computadores e os monitores
de intervenção direta na tela (Wacom Cintiq). Estes equipamentos por possuírem interação
tátil sensorial entre o hardware e a modelagem virtual, possibilitarão a realização de
Departamento de Artes e Design
simulações de testes diversos. No desenvolvimento de projetos, após as alternativas serem
modeladas em softwares de modelagem 3D e (ou) capturadas através de scanners 3D, a etapa
da materialização física será feita através de sistemas digitais automatizados que seguem
genericamente dois processos básicos: 1 - por remoção de matéria prima através de frezadoras
operadas por controle numérico computacional - CNC e corte a laser para superfícies
bidimensionais (planas) em matérias primas diversas. 2 - por deposição de matérias primas
diversas – tecnologias de manufatura aditiva conhecidas como Prototipagem Rápida.
Importante salientar que ambos os sistemas se destacam pela precisão dimensional e
velocidade de construção de modelos e protótipos com alta complexidade geométrica, e são
escolhidos conforme as características do produto a ser representado/simulado.
Como é dada essa interação?
O diálogo é dada através do processamento de forças da interação do usuário com o meio a
ser tocado, e quem faz a ponte do meio com o usuário é o dispositivo haptico.
O processamento na maioria das vezes é feito por um computador.
O modelo com que trabalhamos no Núcleo de Experimentação Tridimensional (NEXT) é uma
novint falcon .
Imagem retirada do link http://www.novint.com/index.php/novintfalcon às 15 horas do dia 25
maio de 2013.
Esse dispositivo tem a característica de ser uma haptic 3DOF(degrees of freedom) que é
basicamente a translação que ela suporta.
Translações podem ser:
Baixo e cima ( eixo y), direita e esquerda(eixo x) e frente e trás (eixo z)
Como esse dispositivo é 3DOF então ele suporta todas essas 3 translações.
Existem haptics que podem ser 6DOF e utilizam-se além da translação, a rotação. Porém
possuem um custo muito elevado. Existem haptics que chegam a ter 22DOF.
Aplicações
Vão desde o campo da medicina até em jogos eletrônicos.
No campo da medicina esses dispositivos são utilizam para fazer incisões menos invasivas ao
paciente. Um exemplo do “ MAKO RIO ” .
Departamento de Artes e Design
Imagem retirada do link http://www.makosurgical.com/physicians/products/rio às 15 horas do
dia 25 maio de 2013.
É uma plataforma de simulação cirurgia tátil interativa que incorpora um braço robótico e
tecnologia de visualização tridimensional. Este dispositivo permite um alto nível de precisão
para o posicionamento de implantes para o joelho. E como ele é menos invasivo, ele poupa
tecido ósseo saudável e preserva ligamentos, em detrenimento da cirurgia convencional.
Neurocirugia
Demonstração de simulador cirúrgico
Departamento de Artes e Design
imagem retirada do link(http://www.chai3d.org/papers/CHAI3D-MMVR-2007.pdf) às 21:00
horas do dia 10 de março 2013.
As bibliotecas para a criação de programas para haptics podem ser:
Chai3d (http://www.chai3d.org/)
Características
Desenvolvido pela universidade de Stanford.
Trabalha com” C++” (linguagem de programação orientada a objetos) para o
desenvolvimento do ambiente e cena, para criar arquivos tridimensionais podem ser usados
programas de modelagem 3d que consigam exportar com extensão ”.obj” ou ”.3ds”.
Permite a fácil implementação do modelo através de arquivos de extensão .3ds ou .obj, não
necessitando fornecer coordenadas para a implementação dos vértices do mesmo tal como
H3DAPI. Além disso, o Chai3d aceita câmeras, textura da cena que podem ser implementadas
no próprio arquivo, não necessitando separará-las.
A qualidade de renderização tanto do modelo como da propriedade tátil do mesmo é
altamente fidedigna.
Além disso, se o usuário não estiver com um dispositivo haptico ao seu alcance, o Chai3d,
quando testamos o código, cria um haptic virtual, que pode ser controlada com o mouse. Isto
torna interessante, pois por exemplo, imaginamos que estamos criando algum exemplo em
que simularíamos diferentes forças(fornecidas em Newton) que a haptic aplicaria em
diferentes direções, se não tomarmos cuidado quando determinamos a quantidade de força
aplicada, danificaríamos o dispositivo. Nesse sentido, com este recurso de simulador virtual
de haptic, poderíamos prever se ocorreria dano.
H3Dapi( http://www.h3dapi.org/ )
Características
C++
Phyton-scripts para setar as propriedades variáveis da cena ou/e objeto
X3D – criar o modelo tridimensional do ambiente e/ ou o objeto e/ou interações hapticas
O fórum no site do desenvolvedor tem suporte por parte dos administradores que são
programadores treinados.
A propriedade tátil é um pouco deficiente, muitas vezes criam-se buracos na malha do objeto,
em que quando o usuário interage com essas imperfeições, ele atravessa o mesmo. Isso é
devido ao uso do x3d como forma de modelo a ser interagido, pode-se melhorar essa
interação dependendo da forma como exportamos o modelo.
Ambas são open source(código aberto):
Com base nas minhas pesquisas e testes a melhor plataforma para teste se levarmos
consideração a quantidade de linguagens que devemos ter domínio para podermos criar algo,
a qualidade da renderização tátil e gráfica. Creio que o Chai3d torna-se a melhor opção.
Porém, é muito mais trabalhoso executar a mesma tarefa no Chai3d do que no H3DAPI. Para
Departamento de Artes e Design
a realização de testes rápidos para verificação do objeto o H3DAPI é muito mais fácil e para o
desenvolvimento de algum experimento também.
Composição de uma cena para Chai3d
De acordo com a equipe da universidade de Stanford designada para produzir o Chai3d, um
ambiente tridimensional no Chai3d deve conter as seguintes características:
Inicialização
1-cria a instância do ambiente, câmera, luz, objeto, ferramenta.
2-adiciona no ambiente todos os elementos citados anteriormente.
3-cria-se uma viewport( é um retângulo 2d que define o tamanho da renderização da
superfície onde está sendo realizada a projeção 3d de uma cena) e o cronômetro.
O tempo de resposta tátil de uma haptic é em torno de 1KHz (significa o tempo para ler a
posição da ferramenta, computar as forças e aplicá-las)
Já o tempo de resposta visual é em torno de 30Hz (significa o tempo necessário para
renderizar a viewport)
Essa diferença no tempo de resposta é porque o ser humano precisa 1000 Hz para perceber
determinadas sensações, pois o tato está na escala de precisão entre a visão e a audição.
Portanto, uma frequência de resposta tátil menor que isso, torna a simulação não realista.
Composição de um cena para H3DAPI
A interação dentro de uma cena 3d da haptic com o objeto pode ser dado utilizando um
cursor. Por exemplo, quando usamos um computador, a seta , significa ícone referente ao
cursor. No caso do h3dapi o cursor padrão seria o da imagem abaixo:
A forma, tamanho e o ponto de toque do cursor com o objeto pode ser alterado, seria somente
o usuário, criar um modelo 3d de um cursor exportá-lo já com códigos de tamanho e ponto de
toque na extensão de arquivo . x3d e configurar para ser utilizado o modelo como cursor.
Departamento de Artes e Design
Exemplo simples de uma composição de cena em x3d
Código
<Scene>
<Transform translation="0 0 0">
<Shape>
<Appearance>
<Material/>
<SmoothSurface stiffness="0.08" />
<Material diffuseColor="0.7 0.2 0.2" />
</Appearance>
<Sphere radius="0.1"/>
</Transform>
</Scene>
scene(vermelho) é o momento que estamos declarando uma ambiente(cena)
transform (verde) é o parâmetro para situar o objeto dentro do espaço tridimensional. No caso
acima ele está na origem ( x=0, y=0 e z=0)
shape(azul) é uma tag* que engloba vários parâmetros do objeto(ex.: cor, textura, tamanho,
forma etc)
material(tons de rosa) é a subtag de appearance(aparência) é utilizada para setar as
propriedades físicas do objeto.
Agora se quisermos exportar um objeto criado por nós ou scanneado usando um scanner 3d.
O processo de toque de um objeto com um dispositivo haptico se chama renderização háptica.
Em que é computada e gerada forças em decorrência da interação do usuário.
*tag - XML(X3D é baseado em XML) é uma linguagem de marcação e utiliza-se de tags.
Departamento de Artes e Design
Composição de um cena para CHAI3d
Imagem retirada do site http://www.stanford.edu/class/cs277/schedule/assets/cs277-
lecture03.pdf às 14:00 horas do dia 24 de janeiro de 2013.
Essa biblioteca necessita de blocos de código muito maiores, para reproduzir objetos
primitivos simples, como uma esfera. Por isso, não irei entrar em detalhes. Basicamente, em
uma cena nessa biblioteca, deverá conter o seguinte:
Um mundo( cWorld)- aonde ocorre toda a interação e ambientação
Uma camera(cCamera)- para onde estará apontada a visão do usuário na cena.
haptic(cGenericTool)- é a declaração da haptic
Luz(cLight)- que é vinculada a câmera.
Após compreender o funcionamento das duas bibliotecas, juntamente com os códigos das
mesmas, iniciamos a implementação de modelos tridimensionais complexos (scanneamentos,
objetos modelados).
A aplicação foi utilizando um sensor “Kinect”( http://www.microsoft.com/en-
us/kinectforwindows/ ) como scanner 3d com o software ” reconstruct me”(
http://reconstructme.net/ ) .
Apesar, de conseguirmos importar um modelo 3d direto de um scanner 3d, precisamos passá-
lo por um refinamento na malha, no que diz respeito, a diminuição do número de polígonos.
Departamento de Artes e Design
Experimentos realizados:
Testes feitos exportando arquivos utilizando coordenadas .
Durante meu estudo houve uma solicitação de importação de uma bola de golfe.
Inicialmente, utilizei o H3DAPI, exportando já em x3d, utilizando um “pluggin”*. Porém,
notei que ficavam buracos na malha de polígonos da bola de golfe. Em que estes só eram
detectados quando interagíamos utilizando a haptic Então, descobri que existia um outro
método para a exportação que melhorou a interação haptica, porém o modelo perdeu um
pouco de suas características de forma.
*pluggin -” plug-in é um pedaço de software que permite que uma aplicação ou programa
faça algo que ele não faria por ele mesmo”. Traduzido do site da bbc
http://www.bbc.co.uk/webwise/guides/about-plugins dia 20 de maio de 2013 às 15 horas.
Bola de golfe
Esse trabalho foi pedido para importar uma bola de golfe com a finalidade interagir com ela.
Abaixo é mostrado o arquivo original do objeto feito em um scanner 3d.Porém, aplicamos cor
branca no modelo.
Fig. 1
Departamento de Artes e Design
Fig.2
Bola de golfe implementada utilizando como formato de exportação o vrml(“VRML, "Virtual
Reality Modeling Language", é uma linguagem que nos possibilita descrever objetos 3D e
agrupá-los, de modo a construir e animar cenas ou "verdadeiros mundos virtuais". As cenas
criadas são, em geral, disponibilizadas na WWW e suas áreas de aplicação são bastante
diversificadas, indo desde aplicações na área científica e tecnológica até entretenimento e
educação, passando por representações artísticas e em multimídia.” retirado do site
http://www.dca.fee.unicamp.br/sibgrapi99/vrml/Aula1/aula1.html dia 22 de maio de 2013 às
12:00 )
Departamento de Artes e Design
Fig.3
A mesma bola de golfe apresentada anteriormente, só que agora exportada em formato x3d.
Apesar da malha ser mais fidedigna com a bola de golfe original nessa última figura (fig.3), o
segundo modelo (fig.2) possui a sensação tátil melhorada, por conta da extensão do formato
exportado.
No h3dapi tive que fazer ajustes de tamanho, a forma continuaria a mesma, porém o tamanho
foi alterado, para caber na tela. Utilizando a “tag” “scale”.
A implementação se deu através das coordenadas de pontos nos eixos x, y, z. Primeiramente,
foi necessário converter para o formato .vrml ou .x3d para conseguirmos os pontos do modelo
no espaço tridimensional e utilizamos a classe “IndexedFaceSet” para atribuir os pontos.
Departamento de Artes e Design
Demonstração da implementação do mouse “3d connexion”, que é um mouse 3d
O mouse fora implementado para rotacionar objetos enquanto interagíamos com o objeto com
a haptic.
O código de uma cena simples com o código
<Group>
<SpaceWareSensor DEF="mouse"/>
<Transform DEF="trans" >
<Shape>
<Appearance>
<Material diffuseColor="0.7 0.2 0.2" />
</Appearance>
<Box size="0.1 0.1 0.1" />
</Shape>
</Transform>
<ROUTE fromNode="mouse" fromField="accumulatedRotation" toNode="trans"
toField="rotation" />
</Group>
Basicamente, atribuiríamos um nome o “mouse” para a “tag” “spaceWareSensor” e faríamos
o mesmo com a “tag” “transform”nomeando-a de “trans”, ao manipularmos o mouse,
acumularia a rotação do mouse a “tag” “transform” e o objeto rotacionaria.
Alguns outros experimentos, como implementação da física numa cena, agora utilizando o
Chai3d, para construção da demonstração.
Nesse experimento podemos notar a implementação de alguns conceitos físicos como a lei de
Hooke, força centrípeta, através da interação com o objeto, a força exercida na haptic
dependendo do movimento, nos fornece experiências sensoriais de forças externas que
demonstram conceitos físicos, seria como um simulador. Além disso, simulamos uma
interação do modelo dentro de um ambiente com gravidades diferentes do que a da Terra,
como fosse no espaço sideral.
Departamento de Artes e Design
Departamento de Artes e Design
Transposição e interação de um arquivo tridimensional feito através do uso do kinect como
scanner 3d. Nesse exemplo, foi utilizado o software “reconstructme” para captura do modelo,
depois foi realizado um pós processamento para refinamento da malha, diminuição da malha
poligonal e implementação dentro do H3DAPI. Fora utilizado o mouse 3d para rotação do
modelo.
No exemplo abaixo demonstraremos o uso de haptic para desenhar tridimensionalmente.
Quando o usuário clica, criará um ponto na posição x, y e z dentro do espaço tridimensional.
Sendo possível navegar ao redor da cena. É observado que uma cena aparentemente estando
coesa visualmente, não necessariamente continua a mesma mudando-se as vistas. Com isso,
possibilita uma nova visão sobre o modelo, através da mudança de perspectiva.
Departamento de Artes e Design
Departamento de Artes e Design
Vistas frontais da forma
Departamento de Artes e Design
Vistas laterais
Departamento de Artes e Design
Conclusões
A pesquisa permitiu criar e simular o funcionamento de formas complexas dentro de um
ambiente virtual, já que poderia testar modelos tridimensionais como se estivessem em um
ambiente real, atribuindo-lhes forças físicas, texturas e formas. O interessante do estudo foi
transpor formas virtuais com suas texturas para algo mais próximo do real. Além disso, a
pesquisa permitiu interação com formas complexas sem que elas precisem estar no ambiente
real, e do mesmo modo com a modificação das texturas de objetos existentes.
Referências:
1- Conti Francois et al. CHAI 3D set of libraries, 2009. http://www.chai3d.org/.
2-Kadlecek Petr. A Practical Survey of Haptic APIs, Bachelor’s thesis, Charles University in
Prague, Czech Republic, 2010.
3-Novint Technologies Inc. HDAL - Novint Falcon SDK, 2008.
http://home.novint.com/products/sdk.php.
4 -Zilles, Salisbury. "A constraint-based god-object method for haptic display." Intelligent
Robots and Systems '95 Proceedings. IEEE, 1995.
5-SenseGraphics AB. H3D API - haptics software development platform, 2011.
http://www.h3dapi.org/.
6- Sensable. OpenHaptics software development toolkit , 2011.
http://www.sensable.com/products-openhaptics-toolkit.htm.
7 Otaduy, Lin. "Introduction to haptic rendering." ACM SIGGRAPH 2005 Courses. ACM,
2005.