Um protótipo de ferramenta para visualização de estruturas ... fileDetails regarding the...

3
Um protótipo de ferramenta para visualização de estruturas internas de edificações em RA Fábio Roberto de Miranda Romero Tori Cláudio Eduardo S. Bueno Centro Universitário Senac LPAI - Laboratório de Pesquisa em Ambientes Interativos Av. Eng. Eusébio Stevaux, 823 São Paulo – SP 11-5682-7300 { fabio.rmiranda, romero.tori, cesbueno } @sp.senac.br ABSTRACT This paper presents implementation aspects and preliminary results of a prototype tool intended to allow the visual exploration of internal details of buildings through the use of projector-based, Spatial Augmented Reality. Details regarding the evolution of the application concept and the architecture of a developed Java3D application based on that concept are presented. Keywords Spatial Augmented Reality, Interactive Technologies, Man- Machine Interface RESUMO Este trabalho apresenta aspectos de construção e resultados preliminares de um protótipo de ferramenta para exploração visual de estruturas internas de edificações através do uso de realidade aumentada baseada em projetores. Detalhes relacionados à evolução do conceito da aplicação e sobre a arquitetura de uma aplicação desenvolvida em Java3D são apresentados. Palavras-chave Realidade aumentada espacial, tecnologias interativas, interface homem-máquina 1. INTRODUÇÃO A Realidade Aumentada Espacial (RAE) [1] tem grande potencial para uso em aplicações que demandam aumentar a percepção do ambiente real sem que seja necessário forçar o usuário a usar visores ou quaisquer outros tipos de equipamentos potencialmente desconfortáveis. Dentre as abordagens para a criação de aumentos espaciais da realidade, o uso de projetores para pintar texturas de luz sobre os objetos é uma das mais promissoras. Trabalhos como o de Raskar et. al [2] e Pinhanez [3] demonstraram a viabilidade da realidade aumentada baseada em projetores e apontaram idéias interessantes para aplicações. O presente trabalho propõe uma ferramenta baseada em projetores para a exploração visual de estruturas arquitetônicas, que permite que se atravesse virtualmente camadas de paredes reais através do controle da posição e da profundidade de um raio virtual que projeta detalhes dos interiores da estrutura diretamente sobre sua superfície, produzindo um efeito similar à “visão de raio X” (Fig. 1). Neste artigo se discute como alguns desafios foram resolvidos para a construção do primeiro protótipo funcional, sua arquitetura, resultados de testes iniciais e próximos passos. 2. VISÃO GERAL DA FERRAMENTA O primeiro problema enfrentado ao dotar os usuários de aplicações de realidade aumentada de habilidades para “enxergar dentro e/ou através de objetos” é a seleção do que apresentar para eles. Este problema relaciona-se com o paradoxo entre mostrar muita informação a respeito das estruturas não visíveis, fazendo o usuário perder a referência que tem das estruturas que conhece, versus a opção de mostrar apenas uma informação específica de interesse, privando o usuário de referências importantes de profundidade da visão [4]. Esse problema foi resolvido no protótipo discutido neste trabalho com a seguinte abordagem: o usuário manipula uma ferramenta de “corte virtual” que simula a penetração de um frustrum no objeto, como se o objeto real estivesse sendo apresentado por técnicas de computação gráfica e toda a interação acontecesse num ambiente de CG. (a.) (b.) (c.) Figura 1. Simulação em Flash da ferramenta e set-up do protótipo (a) área de projeção, (b) CPU e (c) o joystick para controle

Transcript of Um protótipo de ferramenta para visualização de estruturas ... fileDetails regarding the...

Page 1: Um protótipo de ferramenta para visualização de estruturas ... fileDetails regarding the evolution of the ... Trabalhos como o de Raskar et. al [2] e Pinhanez [3] demonstraram a

Um protótipo de ferramenta para visualização de estruturas internas de edificações em RA

Fábio Roberto de Miranda Romero Tori Cláudio Eduardo S. Bueno

Centro Universitário Senac LPAI - Laboratório de Pesquisa em Ambientes Interativos

Av. Eng. Eusébio Stevaux, 823 São Paulo – SP 11-5682-7300

{ fabio.rmiranda, romero.tori, cesbueno } @sp.senac.br

ABSTRACT This paper presents implementation aspects and preliminary results of a prototype tool intended to allow the visual exploration of internal details of buildings through the use of projector-based, Spatial Augmented Reality. Details regarding the evolution of the application concept and the architecture of a developed Java3D application based on that concept are presented.

Keywords Spatial Augmented Reality, Interactive Technologies, Man-Machine Interface

RESUMO Este trabalho apresenta aspectos de construção e resultados preliminares de um protótipo de ferramenta para exploração visual de estruturas internas de edificações através do uso de realidade aumentada baseada em projetores. Detalhes relacionados à evolução do conceito da aplicação e sobre a arquitetura de uma aplicação desenvolvida em Java3D são apresentados.

Palavras-chave Realidade aumentada espacial, tecnologias interativas, interface homem-máquina

1. INTRODUÇÃO A Realidade Aumentada Espacial (RAE) [1] tem grande potencial para uso em aplicações que demandam aumentar a percepção do ambiente real sem que seja necessário forçar o usuário a usar visores ou quaisquer outros tipos de equipamentos potencialmente desconfortáveis. Dentre as abordagens para a criação de aumentos espaciais da realidade, o uso de projetores para pintar texturas de luz sobre os objetos é uma das mais promissoras. Trabalhos como o de Raskar et. al [2] e Pinhanez [3] demonstraram a viabilidade da realidade aumentada baseada em projetores e apontaram idéias interessantes para aplicações.

O presente trabalho propõe uma ferramenta baseada em projetores para a exploração visual de estruturas arquitetônicas, que permite que se atravesse virtualmente camadas de paredes reais através do controle da posição e da profundidade de um raio virtual que projeta detalhes dos interiores da estrutura diretamente sobre sua superfície, produzindo um efeito similar à “visão de raio X” (Fig. 1). Neste artigo se discute como alguns desafios foram resolvidos para a construção do primeiro protótipo funcional, sua arquitetura, resultados de testes iniciais e próximos passos.

2. VISÃO GERAL DA FERRAMENTA O primeiro problema enfrentado ao dotar os usuários de aplicações de realidade aumentada de habilidades para “enxergar dentro e/ou através de objetos” é a seleção do que apresentar para eles. Este problema relaciona-se com o paradoxo entre mostrar muita informação a respeito das estruturas não visíveis, fazendo o usuário perder a referência que tem das estruturas que conhece, versus a opção de mostrar apenas uma informação específica de interesse, privando o usuário de referências importantes de profundidade da visão [4]. Esse problema foi resolvido no protótipo discutido neste trabalho com a seguinte abordagem: o usuário manipula uma ferramenta de “corte virtual” que simula a penetração de um frustrum no objeto, como se o objeto real estivesse sendo apresentado por técnicas de computação gráfica e toda a interação acontecesse num ambiente de CG.

(a.)

(b.)

(c.)

Figura 1. Simulação em Flash da ferramenta e set-up do

protótipo (a) área de projeção, (b) CPU e (c) o jo ystick para controle

Page 2: Um protótipo de ferramenta para visualização de estruturas ... fileDetails regarding the evolution of the ... Trabalhos como o de Raskar et. al [2] e Pinhanez [3] demonstraram a

A configuração básica do protótipo desenvolvido pode ser vista na Fig. 1. Constitui-se de um projetor casualmente fixado (pode ser movido mas não durante o processo de visualização), um joystick e um computador equipado com uma GPU (graphics processing unit) para a síntese e apresentação dos elementos virtuais aumentadores da realidade. Depois da etapa de calibração o usuário pode controlar através do joystick a posição, tamanho e profundidade da perfuração virtual que revelará detalhes internos da parede.

3. ARQUITETURA DA FERRAMENTA A arquitetura do protótipo desenvolvido com os respectivos módulos pode ser vista na Fig. 2 e é discutida a seguir.

3.1 Módulos da arquitetura Pode-se enxergar o protótipo desenvolvido num nível geral como um sistema que recebe como entrada do usuário a informação sobre onde está seu foco de atenção através do joystick e aumenta esta região de atenção através da projeção do objeto observado. Este sistema foi desenvolvido inteiramente em Java e é composto de módulos especializados para interação, calibração, gerenciamento da cena (através do grafo de cena do Java3D) e composição de texturas.

Interação(mouse, joystick)

Controle de aparência

(shaders GLSL)

Calibração

Grafo de cena Java3D

Matrizes de Model-view e

projection

Aplicação de raio X

Ação de zoom, nível de zoom e

foco

Posição dos buracos,

profundidade

Imagem a ser

projetada

Comandos do usuário

Figura 2. Arquitetura do Protótipo

3.1.1 Módulo de calibração O módulo de calibração é responsável por requerer que o usuário realize uma série de etapas para determinar os parâmetros da matriz de projeção do projetor e registrar adequadamente os elementos sintetizados em computação gráfica sobre os objetos reais. Uma vez finalizada, esta etapa só deve ser realizada novamente se o projetor for movido de lugar. A saída deste módulo corresponde às matrizes model-view e projection (nomenclatura usada na biblioteca OpenGL) que correspondem a um posicionamento da câmera virtual da cena 3D que faz com que as imagens projetadas sejam registradas adequadamente. A fim de permitir o registro de um ponto situado no plano da imagem mi sobre um ponto correspondente em 3D M i, é preciso estimar 11 parâmetros desconhecidos de uma matriz de projeção [2][5]. A abordagem seguida neste projeto e em alguns trabalhos anteriores [1][2] procura estimar todos os parâmetros com um único procedimento através de um conjunto conhecido de pontos 3D Mi e suas projeções correspondentes mi no plano da imagem na tela.

Figura 3. Correspondência entre os pontos m i no plano da

imagem e Mi, suas projeções incidentes no mundo real.

Para que as correspondências mostradas na Fig. 3 possam ser estabelecidas, é necessário apontar a projeção numa posição em que esta cubra um conjunto de pontos 3D reais cujas coordenadas são conhecidas. O usuário deve controlar uma mira na tela do projetor fazendo sua projeção passar sobre os pontos conhecidos no mundo real numa dada seqüência, indicada pela aplicação.

3.1.2 Módulo de interação O módulo de interação é responsável por receber do usuário o comando a respeito de onde a visão de raio X deve ser apresentada e qual o raio desta visão. O sistema aceita entrada de joysticks (através do uso da biblioteca JInput [6]), bem como de um mouse (através das funcionalidades que tratam eventos de mouse embutidas no Java3D).

3.1.3 Módulo de Controle de aparência Este módulo, por meio de pixel shaders, possibilita o controle das transparências dos modelos 3D, presentes no Grafo de Cena do Java 3D, a serem projetados. O usuário pode controlar a profundidade e largura de um “buraco virtual” que simula a perfuração da paredes. O pixel shader é responsável por alterar a transparência de texturas das camadas virtuais de parede ao longo da perfuração para que se possa ver os detalhes interiores.

4. Estudos preliminares Na primeira etapa do trabalho foram realizadas simulações em 3D para estudo do efeito de como seria o comportamento final da aplicação. Nas primeiras tentativas as texturas que revelam o interior das superfícies foram aplicadas na componente especular dos materiais. Uma luz do tipo spot foi usada para simular o feixe de raios X (Fig. 4). Esta abordagem foi descartada por ter deficiências: a componente especular só poderia ser vista pela pessoa que controla o feixe sob certos ângulos de projeção; e o usuário da aplicação não seria capaz de enxergar as camadas internas de superfícies oblíquas em relação a ele.

Page 3: Um protótipo de ferramenta para visualização de estruturas ... fileDetails regarding the evolution of the ... Trabalhos como o de Raskar et. al [2] e Pinhanez [3] demonstraram a

Figura 4. Simulação via componente especular do mat erial

Para um segundo ensaio empregou-se geometria construtiva sólida (CSG – constructive solid geometry) para simular uma parede composta de camadas de texturas que são gradualmente penetradas por um cone (que representa o olhar de raios X) através de operações de subtração booleana entre a parede e o cone. Cada textura corresponde a uma camada da parede que pode ser encontrada ao atravessá-la com o cone. Esta abordagem mostrou-se interessante de ser adotada na aplicação de raio X mas ainda precisa ser aprimorada para maior eficiência em tempo real.

5. RESULTADOS INICIAIS O cenário escolhido foi um trecho de parede que fica num andar razoavelmente rico em detalhes no laboratório em que o projeto foi desenvolvido (Fig. 1a), com uma saída de emergência, extintor de incêndio e visão direta para o andar inferior. Para que a projeção abrangesse toda a área escolhida, o projetor tinha de ser colocado à cerca de sete metros de distância. A tal distância, a luz do projetor usado era insuficiente para produzir uma projeção forte o bastante e mal podia ser vista sobre a parede que estava sendo aumentada quando havia luz, mesmo que fraca, no ambiente. Para contornar esta dificuldade, foi escolhida uma quina do laboratório, cuja parede tem menos detalhes internos, num lugar em que se podia controlar a iluminação com maior facilidade, e que poderia ser aumentada com uma projeção de menor área, com o projetor conseqüentemente mais próximo.

Uma característica dessas fases preliminares era projetar de volta sobre as paredes reais texturas baseadas em fotos das mesmas. Uma suposição que se provou verdadeira e originalmente apoiou esta decisão era que desta forma seria mais fácil realizar ajustes finos manualmente no registro das projeções. Contudo, esta re-projeção das imagens reais sobre os próprios objetos resultaram nos efeitos indesejáveis de (i) evidenciar pequenos erros de registro, que são parcialmente atribuíveis à distorção radial observável em grandes distâncias e causada pela geometria da lente do projetor e (ii) atrapalhar a sensação de realidade causada pela aplicação – a projeção de imagens de uma camada externa falsa causa a impressão de que as internas geradas por realidade aumentada também são falsas.

Este problema foi resolvido com a colocação no modelo 3D de uma camada preta por cima das diversas camadas de conteúdo que representam os detalhes internos da parede, de modo que numa situação inicial em que o usuário não comanda os feixes de raios X, o projetor praticamente não envia luz sobre os objetos aumentados, e à medida que os feixes atravessam a camada preta, os detalhes do interior são revelados, resultando numa sensação melhor de imersão do que com a projeção redundante da imagem da parede sobre ela mesma.

Um resultado promissor é que a aplicação em Java3D executa em taxas interativas (cerca de 30 quadros por segundo) num

computador com processador Pentium 4 de 3.2 GHz equipado com uma placa gráfica GeForce 6600 GT.

6. CONCLUSÕES Este artigo apresentou a proposta e implementação de um protótipo de ferramenta para exploração visual de estruturas internas de edificações através do uso de realidade aumentada. Após uma frustrada tentativa de implementação usando apenas a CPU, obteve-se sucesso no composição das texturas que constituem as camadas da parede ao se desenvolver e utilizar pixel shaders, que são executados diretamente na GPU aproveitando a aceleração gráfica.

O atual estágio de desenvolvimento do protótipo oferece uma infra-estrutura que pode evoluir em diferentes direções. Uma direção possível é o desenvolvimento de aplicações voltadas ao entretenimento. Outros caminhos sendo estudados envolvem a aplicação em educação (estudantes de arquitetura visualizando estruturas internas de edifícios no próprio local) e como apoio a atividades de manutenção (por exemplo a localização de canos e conduítes em paredes). Estas aplicações se tornarão viáveis dos pontos de vista ergonômico e comercial à medida que projetores em miniatura se popularizem.

Os autores agradecem à Diretoria de Pós-graduação e Pesquisa do Centro Universitário Senac, pelo financiamento desta pesquisa, e aos estagiários Newton Nakamato, Mark Pimentel Hodgkin e Lucas Trias, por sua participação no desenvolvimento e testes do protótipo.

7. REFERÊNCIAS [1] Bimber, O., e Raskar, R. Spatial Augmented Reality:

Merging Real and Virtual Worlds. A K Peters, 2005.

[2] Raskar, R., Welch, G. , Kok-Lim Low e Bandyopadhyay, D.. Shader Lamps: Animating Real Objects with Image-Based Illumination. 12th Eurographics Workshop on Rendering (EGWR) London, June 25-27, 2001, University College London (UCL)

[3] Pinhanez, Claudio. The Everywhere Displays Projector: A Device to Create . Proc. of Ubiquitous Computing 2001 (Ubicomp''01), Atlanta, Georgia, September 2001

[4] Hinckley, K., R. Pausch, J. Goble, and N. Kassell, 1994: Passive Real-World Interface Props for Neurosurgical Visualization, In Proc. ACM CHI '94 (Conference on Human Factors in Computing Systems), 452-458.

[5] Faugeras, O. Three-dimensional Computer Vision: a geometric viewpoint . MIT Press, 1993.

[6] Java Input Device Abstraction Library (JInput). https://jinput.dev.java.net