Ações Interativas em Ambientes de Realidade Aumentada com ARToolKit Rafael Santin¹, Claudio Kirner², Tânia Rossi Garbin³, Carlos Alberto Dainese². Universidade Metodista de Piracicaba UNIMEP Faculdade de Ciências Matemáticas, da Natureza e Tecnologia da Informação ¹Curso de Ciência da Computação. ²Programa de Pós Graduação em Ciência da Computação. Universidade Metodista de Piracicaba UNIMEP ³Faculdade de Ciências Humanas. {rsantin,ckirner, trgarbin, cdainese@unimep.br Abstract: This paper presents interactive actions developed for augmented reality environments based on ARToolKit. These actions are characteristics of innovative interfaces for human-computer interaction. The integrated use of multimedia and virtual reality technologies makes possible the intuitive manipulation of virtual objects, so that the user can superimpose virtual objects over real world and manipulate them using his hands. 1-Introdução As evoluções dos sistemas computacionais têm permitido estabelecer melhores relações de interação entre o homem e o computador, o que, conseqüentemente, possibilita o aumento no número de usuários, dado que interfaces mais intuitivas e interativas requerem cada vez menos pessoas altamente especializadas para sua manipulação, não restringindo, assim, o seu uso. Dessa mesma maneira, é notado o crescente número de trabalhos que incorporaram o computador para o seu desenvolvimento, proporcionando, assim, um aumento no grau de dependência do homem à máquina. Por isso, é necessário criar ambientes mais interativos, a fim de que o homem minimize possíveis dificuldades na manipulação do computador e, por conseguinte, execute seu trabalho de modo mais eficiente e satisfatório. Consoante a esses novos ambientes computacionais, está a Realidade Aumentada(RA), que consiste numa técnica avançada de interface computacional, por permitir a sobreposição de objetos virtuais no mundo real. Considerada uma variante da Realidade Virtual, a RA enfatiza a visualização em conjunto com a interação, pois, com o uso de óculos ou capacete de Realidade Virtual, pode-se visualizar objetos virtuais junto ao mundo real, de maneira altamente realista, incrementando a percepção do usuário no uso de uma interface de computador. [5] Como a interface de RA, além de permitir a sobreposição de objetos virtuais no mundo real, possibilita a manipulação desses objetos com as próprias mãos, torna-se viável o desenvolvimento de inúmeras aplicações que beneficiam o trabalho humano, motivando mais as pessoas, inclusive aqueles com deficiências sensoriais, como os deficientes auditivos.
Em busca do desenvolvimento de aplicações que minimizem as dificuldades encontradas por estes deficientes, criou-se um projeto denominado Sistema de Realidade Aumentada para o Desenvolvimento Cognitivo da Criança Surda [3], dentro do qual insere-se este trabalho. Apesar do projeto ser mais extenso, este artigo restringe-se ao desenvolvimento de técnicas de interação. Para isso, está sendo utilizado um sistema de desenvolvimento de aplicações de RA, denominado ARToolKit, disponível gratuitamente no site do laboratório HITL da Universidade de Washington. [1][2]. Esse sistema utiliza métodos de visão computacional, que ficam a procura de padrões na imagem do ambiente, capturada em tempo real por uma web-cam. Ao encontrar um padrão, são ativados módulos do aplicativo, responsáveis pela detecção da posição e do alinhamento do objeto virtual a ele associado. Na aplicação ARToolKit, esses padrões são placas com marcas fiduciais (Figura 1), as quais contém símbolos para diferenciar uma das outras, tornando-as singulares. Assim, ao enquadrar uma placa fiducial, já cadastrada no sistema, no campo de captura de vídeo, serão executados módulos que permitirão detectar a posição da placa, conforme o seu movimento e, conseqüentemente, desenhar o objeto virtual (estático ou dinâmico) alinhado a mesma, permitindo sua visualização sobreposta com a placa real nos dispositivos utilizados, seja o monitor ou o capacete de Realidade Virtual (Figura 2). Assim, ao manipular a placa, o objeto virtual realizará os mesmos movimentos dessa, como se a ela estivesse preso[4]. Com isso, é possível desenvolver aplicações altamente motivadoras para que pessoas deficientes possam ser estimuladas a realizar determinadas tarefas por completo e com satisfação. Figura 1: Placa com marcas fiduciais Figura 2: Objeto virtual sobreposto à placa 2-Formas de interações no ARToolKit Como o ARToolKit é uma ferramenta de código aberto, foi possível desenvolver modificações no código referente à interação da aplicação, como: a alteração do objeto virtual, a partir da introdução de uma placa adicional de controle; a aplicação de uma placa
que possibilita o transporte dos objetos virtuais entre as placas da cena, como se fosse uma pá,carregando os objetos virtuais de uma placa a outra e o acionamento de som, quando um objeto virtual é colocado sobre a placa, podendo descrever o objeto, contar uma estória ou dar instruções ao usuário. Algumas variações da pá e da placa de controle já foram desenvolvidas por grupos de pesquisa no exterior como o Magic Paddle[6] e o Magic Cube[7], mas não foi encontrado nenhum projeto sonorizando a entrada dos objetos virtuais no mundo real. 2.1- Inserção da Placa de Controle A alteração dinâmica do objeto virtual, a partir da introdução de uma placa adicional de controle, consiste na utilização de uma placa que possa interferir no objeto virtual de outra placa, de modo a trocá-lo ou alterá-lo, o que viabiliza a associação de mais objetos virtuais a uma só placa, de acordo com a necessidade da aplicação. Para isso, foi necessário analisar o código do ARToolKit para descobrir como são realizadas as associações das placas com os objetos virtuais, a fim de desenvolver as alterações desejadas. As associações de placas com objetos virtuais são, sucintamente, realizadas através de um identificador denominado vrml_id do tipo inteiro. Assim, foi criada uma variável inteira denominada contr, a qual é modificada com a expressão contr=contr+1, toda vez que a placa de identificador 0 (placa de controle) aparecer. Como o identificador está sendo somado com o contr, segundo a função vrml_id+contr, é possível visualizar vários objetos em uma placa, à medida em que a placa de controle for inserida. Como no exemplo da Figura 3, uma placa dessa aplicação poderá ter 5 objetos virtuais diferentes, pois a variável contrl receberá os valores de 0 a 4, o quais serão adicionados ao índice ( vrml_id). A troca de objetos pode implicar no aparecimento de objetos diferentes ou na alteração do objeto inicial com uso de escala, translações, rotações, animações, etc. if(object->vrml_id==0) { if(contr==4) contr=0; else contr=contr+1; if( object->vrml_id > 0 ) { arvrml97draw( object->vrml_id+contr); else printf("unknown object type!!\n"); Figura 3 : Trecho do código responsável pela alteração dinâmica do objeto virtual
Esse experimento foi inserido em duas aplicações, no livro de sólidos geométricos e na observação de orbitais atômicos [8]. A aplicação do livro de sólidos geométricos consiste num livro que contém em cada página as propriedades de um determinado sólido geométrico, junto a uma placa( marcador), a qual está associada ao sólido geométrico virtual. A placa de controle, Figura 5, permite a troca de algumas características do sólido visualizado, como na Figura 4, podendo ser visualizada a estrutura do sólido geométrico aramada ou preenchida, além de alguns movimentos, como, rotação, translação e espiral. Já na visualização dos orbitais atômicos, cada orbital virtual foi associado a uma placa, a qual junto com a inserção da placa de controle permite a visualização do orbital realizando diferentes tipos de movimento, variando-os à medida que essa for inserida. Figura 4: Sólido Geométrico sobre o livro Figura 5:Placa de Controle 2.2-Inserção da Placa de Transporte A inserção da placa de transporte consiste na possibilidade do uso de um marcador que possa transferir um objeto virtual de uma placa a outra, funcionando como uma pá extraindo o objeto do seu lugar original, movimentando e despejando-o no lugar de destino desejado. A idéia aplicada nesse caso é detectar qual placa da cena está mais próxima da pá, a fim de que uma possível interrupção na captura dessa placa, possa transferir o índice do objeto virtual associado a ela para a pá. Isso é realizado, somente quando a captura da placa em questão for interrompida, pois subentende-se que a pá está bloqueando a sua captura. A transferência do objeto da pá para outra placa é feita da mesma maneira, porém nesse caso o índice da pá será associado à placa, que está mais próxima e cuja captura for interrompida. Para isso foram realizadas modificações na biblioteca Libar, devido a possibilidade de manipular as diversas informações que o ARToolKit extrai das placas que estão sendo capturadas pela câmera, como as suas coordenadas x, y e z. Assim, torna-se possível identificar qual a distância de uma placa a outra, possibilitando desenvolver a aplicação da pá.
A seguir (Figura 6), será demonstrado um exemplo dessa aplicação, onde um objeto virtual é transportado de uma placa a outra através da placa de transporte (pá). Figura 6: Seqüência de ações para o transporte do Objeto Virtual com auxílio da pá. A Figura 7 mostra um trecho do código que permite realizar essa aplicação. for( v = 1; v < objectnum; v++ ) { for( t = 1; t < objectnum; t++ ) { if(object[v].visible==0 && v==marker_info[t].change){ if(object[0].vrml_id==0){ object[0].vrml_id=object[v].vrml_id; object[v].vrml_id=0; else{ object[v].vrml_id=object[0].vrml_id; object[0].vrml_id=0; marker_info[t].change=0; Figura 7 : Trecho do código responsável pela alteração dinâmica dos índices dos objetos Vrml 2.3 - Inserção do Som A inserção do som consiste na modificação do ARToolKit para que seja executado o arquivo de áudio, conforme a Figura 8, concomitante com o surgimento do objeto virtual no momento da introdução da placa em frente à câmera. void som(void ) { PlaySound(sound, NULL, SND_SYNC); ret=0; pthread_cancel (hthread); pthread_exit(null); Figura 8: Módulo do som
Porém, ao inserir o módulo de execução de áudio, notou-se que a aplicação ARToolKit não funcionava corretamente, devido à lentidão na atualização da imagem capturada pela câmera. A solução encontrada para esse problema foi a criação de uma thread, como na Figura 9, o que permitiu a execução do módulo de som em paralelo de forma concomitante com os outros módulos gráficos. Assim, o problema de lentidão foi resolvido. if (ret==0) { pthread_create(&hthread, NULL, (void *(*)(void *))som, NULL);// Criação da Thread ret=1; Figura 9: Criação da thread Com essa implementação torna-se viável a expansão na interação da aplicação, visto que pessoas normais poderão acompanhar as ações do usuário, ou até mesmo, o próprio usuário com deficiência auditiva poderá ser beneficiado com um feedback das suas ações, através das vibrações produzidas pela execução do aúdio em um ambiente ajustado para isso. 3 Potencial de Uso das Formas de Interação. As várias formas de interação desenvolvidas podem ser usadas de muitas maneiras, dependendo do tipo da aplicação desejada. A placa de controle, ao ser inserida no campo de visão da câmera, pode provocar alterações no objeto virtual sobre uma ou mais placas em uso, que envolvem: cor, escala, estrutura (sólida, aramada), posicionamento espacial (translação e rotação), animação, som (ruídos, locução), etc. Como exemplo, pode-se citar o livro de Sólidos Geométricos, que apresenta um marcador em cada página, de forma que, ao introduzí-lo no campo de visão da câmera, pode-se visualizar o sólido geométrico referentes àquela página. A colocação da placa de controle em seqüência (entrando e saindo do campo de visão da câmera) permite alterações no sólido virtual, incluindo a emissão de locução, que fala sobre as características do sólido e emite instruções para o próximo passo. Uma variação na aplicação do livro consiste no uso de páginas soltas, cujo conjunto conta uma história mostrando os cenários virtuais correspondentes. A alteração na ordem das páginas permite contar a história de formas diferentes e a existência de páginas finais alternativas, possibilita terminar a história conforme a vontade do usuário. A placa de transporte, por sua vez, pode ser usada para a montagem de layouts, envolvendo objetos virtuais. Isto possibilita o seu uso como sistema de autoria de ambientes virtuais manipulado por usuários leigos, uma vez que eles podem montar cenários virtuais manipulando as placas marcadoras com as próprias mãos. Esta funcionalidade potencializa aplicações educacionais, na medida em que os professores podem montar cenários virtuais de interesse de suas disciplinas, usando catálogos de objetos previamente preparados, e os
alunos podem realizar atividades colaborativas atuando no mesmo cenário usando as mão para manipular as placas. A combinação dessas técnicas de interação propicia ao usuário elementos interessantes para o exercício da criatividade na elaboração de aplicações. 4 - Conclusão Novas formas de interações em sistemas computacionais estão minimizando o abismo existente entre o homem e a máquina, de forma a facilitar a sua usabilidade. Consoante a esse contexto está a Realidade Aumentada, que possibilita a visualização e a manipulação de objetos modelados por computador no mundo real. Com isso, é possível desenvolver ferramentas que auxiliem o processo de construção do conhecimento do usuário, dada a possibilidade de explorar seus canais sensoriais com o uso de equipamentos adequados, como o capacete de Realidade Virtual, rastreadores e outros dispositivos [3]. Como o ARToolKit é uma ferramenta que auxilia o desenvolvimento de aplicações de Realidade Aumentada e por ser fornecido gratuitamente, ele foi escolhido para a produção de novas técnicas de interação de Realidade Aumentada, como as inserções do som e das placas de transporte e de controle. Com isso, foi possível extrair aplicações mais dinâmicas, através de simples modificações na estrutura dessa ferramenta. Assim, o usuário poderá estar mais entretido no manuseio dessas aplicações, dado o aumento do grau da interação com o computador, o que é considerado um benefício aos usuários de sistemas computacionais. Porém existe um ponto desfavorável a respeito do uso desse sistema, devido à instabilidade provocada pela variação na luminosidade do ambiente, o qual dependendo de sua intensidade poderá tornar o sistema inoperante, visto que os padrões poderão não ser identificados. Este problema, porém, será tratado em futuros trabalhos. 5.Agradecimentos Os autores agradecem ao PIBIC-CNPQ/UNIMEP pela bolsa de Iniciação Científica de Rafael Santin e ao FAP/UNIMEP pelo apoio ao projeto Construção de um Sistema de Realidade Aumentada para Desenvolvimento Cognitivo da Criança Surda. 6.Referências Bibliográficas. [1] ARToolKit - Disponível em <http://www.hitl.washington.edu/research/shared_space> Acesso em 02/04/04 [2] AZUMA.R.et al. Recent Advances in Augmented Reality. IEEE Computer Graphics and Applications, v.21, n.6, p. 34-47, 2001.
[3] DAINESE.C.A.; GARBIN,T.R.; KIRNER,C. Sistema de Realidade Aumentada para Desenvolvimento Cognitivo da Criança Surda In: SYMPOSIUM ON VIRTUAL REALITY, 6.,2003, Ribeirão Preto. Anais Proceedings 6 SVR Symposium on Virtual Reality: Ribeirão Preto: SBC, 2003. p.273-282. [4] KATO, H.; BILLINGHURST M.; POUPYREV, I. - ARToolKit version 2.33 Manual, Nov., 2003. [5] PINHO, M.S.; KIRNER,C.- Uma introdução à Realidade Virtual. Disponível em <http://grv.inf.pucrs.br/pagina/tutrv/tutrv.htm.> Acesso em 4 Jan. 2004. [6] KAWASHIMA,T., IMAMOTO,K., KATO,H., TACHIBANA,K., BILLINGHURST,M.. Magic Paddle: A Tangible Augmented Reality Interface for Object Manipulation.ISMR2001 [7] ZHOU,Z.et al. Interactive Entertainment Systems Using Tangible Cubes, In Proc. Australian Workshop on Interactive Entertainment, (IE2004), Sydney, 2004, pp. 19-22. [8] TRINDADE,J.; FIOLHAIS,C. Students' visualization and conceptual understanding of atomic orbitals using a virtual environment. In V. Devedzic, J. Spector, D. Sampson e Kinshuk (Eds.), Proceedings of 3rd IEEE International Conference on Advanced Learning Technologies, Athens, Greece, 298-299.