WARGEN: Gerador de Aplicações em Realidade Aumentada na Web Prof. Dr. Robson Augusto Siscoutto Levrangeles da Silva Filho Faculdade de Informática de Presidente Prudente - FIPP Universidade do Oeste Paulista - UNOESTE Presidente Prudente - SP, Brasil [email protected] Faculdade de Engenharia e Computação - FAEC Universidade de Cuiabá - UNIC Cuiabá - MT, Brasil [email protected] Abstract - A major difficulty in the popularization of Augmented Reality applications is the complexity of developing these applications by requiring at least basic knowledge in certain subjects, such as programming, programming languages and tools for systems development. Therefore, most users can not create their applications quickly and intuitively. This article presents the development of a tool called Web Augmented Reality Generator (WARGEN), an application generator that enables the configuration of augmented reality environments, via a local network or internet, without the need for source code programming. Keywords – Augmented Reality; FLARToolKit; Flash Develop; wargen Resumo - Uma das maiores dificuldades na popularização de aplicações de Realidade Aumentada está na complexidade do desenvolvimento dessas aplicações, por exigir, pelo menos, conhecimentos básicos em certos assuntos, como programação, linguagens de programação e ferramentas para desenvolvimento de sistemas. Diante disso, grande parte dos usuários não conseguem criar suas aplicações de maneira rápida e intuitiva. Este artigo apresenta o desenvolvimento de uma ferramenta denominada Web Augmented Reality Generator (WARGEN), um gerador de aplicações que possibilita a configuração de ambientes em realidade aumentada sem a necessidade de programação em códigofonte, através de uma rede local ou internet. Palavras Chaves: Realidade Aumentada; FLARToolKit; Flash Develop, Wargen. I. INTRODUÇÃO Os crescentes avanços da Realidade Aumentada (RA) vêm se tornando um novo marco na era computacional, sendo empregado em diversas áreas do conhecimento, seja na forma de ensino, aprendizagem presencial ou até mesmo entretenimento, tanto para empresas das mais diversas áreas de atuação quanto para usuários finais. Implementar aplicações para RA é possível graças a disponibilidade de bibliotecas que contém códigos fonte para programação. O FLARToolKit [1], por exemplo, é uma biblioteca em Action Script [4] que permite a criação de programas em RA para serem executados em um navegador de internet, utilizando da tecnologia Adobe Flash Player. Apesar da notável vantagem, ainda é preciso desenvolver o produto e, para um usuário final que deseja apenas testar rapidamente o seu modelo virtual, pode levar um tempo considerável, além dos custos para se fazer isso, dependendo da complexidade da aplicação. Visando facilitar o acesso a um ambiente aumentado, de forma simples e acessível, iniciou-se um projeto de um gerador de aplicações para RA. Este projeto visa disponibilizar, por meio de um servidor de aplicações, uma interface intuitiva que possibilite a configuração de um ambiente virtual aumentado, relacionando os marcadores e modelos virtuais de preferência, permitindo também atribuir alguns tipos de interações com o objeto virtual, como rotação, movimento e escala. O projeto foi denominado WARGEN, acrônimo para Web Augmented Reality Generator, um gerador de realidade aumentada para Web. II. DESCRIÇÃO GERAL O WARGEN é um gerador de aplicativos em Realidade Aumentada na WEB, que possibilita ao usuário gerar aplicativos de RA através de uma interface amigável e intuitiva, a partir de algumas configurações disponíveis, dentre as quais envolvem associação de modelos e marcadores fiduciais, bem como a seleção de algumas interações, tudo através da internet. Após ter realizado login no WARGEN, o usuário dispõe de uma interface para realizar a associação entre um modelo virtual e um marcador fiducial, podendo em seguida selecionar uma opção para visualizar o ambiente criado. Desta forma, o usuário tem acesso imediato à aplicação, sem precisar solicitar ao programador o desenvolvimento do programa em si, pois o próprio gerador realiza as configurações de forma automática. O comportamento do objeto virtual em cena pode variar, pois são disponibilizadas opções de interação com os objetos virtuais. Além da interação direta que ocorre com a manipulação do marcador fiducial na mão do usuário, é permitida a seleção de movimentos como translação, rotação e escala do objeto virtual. Uma vez configurados tais parâmetros é possível visualizar o modelo virtual, estimulando um melhor envolvimento com este. Se o modelo virtual, por exemplo, for um órgão humano e se a opção de interação para rotação estiver selecionada, este objeto poderá então ser rotacionado utilizando o marcador ou acionando um comando de rotação via teclado, facilitando a visualização com a cena. Vale ressaltar que girar o objeto de uma forma mais natural, como o próprio movimento das mãos sobre o marcador, nem sempre permite visualizar uma parte específica do modelo virtual, justificando assim o uso da rotação de maneira não tangível utilizando o teclado. Além disso, a interatividade associada diretamente ao modelo virtual proporciona ao usuário uma interação fácil e segura, sem necessidade de treinamento, uma vez que os movimentos são totalmente naturais, intuitivos e tão simples quanto mover uma parte do corpo ou um objeto na frente de um dispositivo detector (atualmente uma webcam). III. ANÁLISE E REQUISITOS Esta seção descreve os detalhes análise de requisitos e tecnologias utilizadas no projeto WARGEN. disponibilizadas, permitindo assim uma melhor interação do usuário com o modelo virtual em cena; e Possibilitar visualização de associações: associados o modelo, marcador e possíveis interações, o sistema deve permitir que tais configurações sejam visualizadas na tela. Após a seleção da opção para iniciar a visualização, a visualização deverá ser iniciada a partir da permissão do usuário ao acesso à câmera. De acordo com os requisitos levantados, foram identificados três casos de uso (Figura 1) para o sistema: efetuar login, manter arquivo e manter associação. A. Análise de Requisitos Para o desenvolvimento do projeto foi realizado uma análise de requisitos visando definir as funcionalidades da aplicação WARGEN: Disponibilizar login e senha para os usuários: o acesso ao sistema exigirá uma autenticação de cada usuário. Com isso, os conteúdos enviados ao servidor serão alocados corretamente, identificando cada item ao seu respectivo proprietário, evitando também o acesso não autorizado ao sistema; Possibilitar envio de arquivos: por meio de uma interface gráfica, os usuários poderão enviar arquivos para o servidor, dos quais poderão ser um modelo virtual (com extensões suportadas pelo servidor) ou um arquivo de configurações de um marcador (com a extensão .pat). Os arquivos armazenados serão alocados nos seus respectivos diretórios no servidor, bem como as informações sobre nome, extensão e o proprietário (usuário) do arquivo deverão ser armazenados no banco de dados. É preciso implementar, em código, as validações necessárias durante o uso destas informações, pois é preciso haver uma sincronia entre arquivos no disco rígido e informações no banco de dados, como verificar se o arquivo em utilização realmente existe em disco ou se as informações de nome e extensão do arquivo cadastradas no banco de dados são realmente as que estão presente nos seus respectivos diretórios; Possibilitar download dos arquivos enviados: o usuário poderá baixar os arquivos enviados ao servidor, possibilitando o acesso a estes arquivos de qualquer estação (máquina) conectada na rede; Possibilitar associação modelo/marcador: além do envio de modelos e marcadores para o servidor, uma interface gráfica, simples e intuitiva, deve permitir a associação entre modelo virtual e marcador. Assim, o sistema será capaz de disponibilizar a visualização desta associação para o usuário, apresentando o modelo virtual posicionado na cena através da detecção do marcador associado; Possibilitar associações de interações: além de o usuário associar um modelo virtual a um marcador, o sistema deverá possibilitar a seleção algumas interações pré- Figura 1. Casos de Uso principais Para utilizar o sistema, o usuário deverá informar o login e senha cadastrados (caso de uso Efetuar Login), requisito necessário para o acesso aos recursos do gerador. Após estar autenticado, o usuário poderá enviar, listar, baixar e excluir um arquivo (caso de uso Manter Arquivo). Algumas validações serão realizadas durante este processo, como a verificação do tipo do arquivo e se este é suportado pelo servidor. Após o tratamento, o arquivo será alocado no seu respectivo diretório, de acordo com o usuário autenticado, sendo que o login é o que determina o nome do diretório do usuário no disco rígido do servidor. A Figura 2 ilustra o caso de uso Manter Arquivo. Figura 2. Caso de uso Manter Arquivo. O caso de uso Manter Associação (Figura 3) permite ao usuário associar um modelo virtual a um marcador. Com isso o gerador possibilita ao usuário visualizar o ambiente aumentado configurado. Figura 3. Caso de uso Manter Associação Para realizar a associação entre modelo virtual e marcador (Figura 4), o usuário deve selecionar o modelo e marcador disponíveis em uma lista. Além disso, também é possível marcar algumas interações pré-configuradas, como rotação, translação e escala. Após confirmação pelo usuário, o gerador salva as informações no banco de dados. Ao mesmo tempo, um XML de configuração é gerado, contendo as informações da associação realizada. Figura 5. Diagrama de atividades para visualizar associação. B. Tecnologias Utilizadas Os padrões de projeto e tecnologias utilizadas para o desenvolvimento do WARGEN são descritos a seguir. • Model View Controller (MVC): padrão de projeto arquitetural útil para a construção de softwares interativos, sendo dividido em modelo (Java – J2EE), controlador (Servlet) e visão (páginas JSP); • Data Access Object (DAO): padrão de projeto de software para acessar fontes de dados; • As linguagens de programação utilizadas no projeto foram a JAVA [2], JavaScript, Action Script [4], Java Server Pages (JSP) e Java Servlet; • Como ambiente de desenvolvimento para a implementação foi escolhida a IDE Eclipse [5] para desenvolvimento JAVA, bem como o FlashDevelop que proporciona uma interface para o desenvolvimento de projetos na linguagem de programação ActionScript; e • A biblioteca FLARToolKit [1] e o renderizador de objetos virtuais Papervision3D [3]. Figura 4. Diagrama de sequencia para associar um modelo e marcador Por fim, o usuário poderá visualizar o ambiente aumentado configurado. Como pode-se observar na Figura 5, o usuário aciona a opção para visualizar a associação. Em seguida, o gerador faz a leitura do XML de configuração gerado, encaminhando as informações para a aplicação o módulo visualizador (aplicação flash). Por fim, o ambiente aumentado faz a leitura das informações do XML, como qual modelo e marcador devem ser carregados e quais interações atribuir. A partir daí, o usuário pode interagir com a cena. IV. ARQUITETURA A arquitetura do WARGEN é composta por dois módulos: gerador e visualizador. O gerador tem o código fonte implementado na linguagem de programação Java sobre a plataforma J2EE [2] com o uso de Java Server Pages (JSP) e Servlets e tem como objetivo receber os parâmetros informados pelo usuário e salvar no banco de dados. Para o modulo visualizador, foram utilizadas as bibliotecas FLARToolKit [1], Papervision3D [3] e a linguagem de programação Action Script [4] na sua implementação, e tem como objetivo interpretar as configurações salvas pelo modulo gerador e apresentar o ambiente virtual ao usuário. Como observado na Figura 6 a seguir, o usuário comunica-se com a interface gráfica apresentada. Os dados informados são interpretados pelo módulo gerador e, após validados por regras e negócio, são persistidos no banco de dados. Ao mesmo tempo, um XML de configuração é gerado, contendo as informações referentes a associação entre o modelo virtual e marcador. O objetivo do XML é informar ao módulo visualizador os parâmetros que devem ser utilizados para configurar o ambiente virtual, como quais arquivos deve carregar ou quais interações atribuir. Por fim, o visualizador apresenta ao usuário o ambiente virtual configurado: as opções download para baixar e excluir para remover o registro: Figura 7. Envio de um arquivo com Marcador Fiducial e Modelo Virtual. Para enviar um arquivo ao WARGEN, basta selecionar a opção enviar localizado na tela de arquivos. Ao selecionada, esta opção disponibiliza um formulário simples com uma opção para o usuário selecionar um arquivo do disco rígido (do usuário). A Figura 8 a seguir ilustra um exemplo de um modelo virtual sendo selecionado para ser enviado: Figura 6. Arquitetura do WARGEN O módulo visualizador não acessa o banco de dados, e por isso é necessário criar o XML com os parâmetros de configuração. A razão disso é manter o módulo visualizador focado apenas no seu objetivo principal: apresentar o ambiente virtual aumentado ao usuário. Todos os arquivos enviados pelo usuário são armazenados diretamente no disco rígido. Por motivos de desempenho e facilidade de acesso pelo módulo visualizador, estes arquivos não são armazenados no banco de dados. Figura 8. Arquivo selecionado para adicionar ao WARGEN V. DETALHES DA IMPLEMENTAÇÃO E RESULTADOS Quando o usuário acessa o WARGEN, uma página inicial é apresentada para o usuário, contendo o painel do usuário, um menu principal e uma área de conteúdo. Para que seja possível realizar as configurações do ambiente virtual, é necessário que o usuário faça login, pois assim o WARGEN poderá determinar para qual usuário as configurações e arquivos enviados serão salvos. O menu principal contém as opções home, arquivo e associação. Ao selecionar home, o usuário é redirecionado para a tela inicial. Na opção arquivo, será apresentada ao usuário uma tela referente aos arquivos enviados, sejam eles modelos virtuais, marcadores ou qualquer outro arquivo de preferência. A Figura 7 apresenta um exemplo de um marcador e um modelo virtual enviados ao WARGEN, com Por fim, para visualizar os objetos virtuais em cena, é necessário realizar a associação entre modelo virtual e marcador. Para isso, a opção associação no menu principal apresentará uma tela com uma lista de associações feitas pelos usuários . A Figura 9 apresenta uma associação entre o modelo virtual earth.dae e o marcador hiro.pat, com as opções visualizar (em destaque) e excluir: Figura 9. Lista de associações entre modelo e marcador A opção associar apresentará uma tela com um formulário para realizar a associação entre um modelo e marcador. Conforme pode-se visualizar na Figura 10, o usuário pode digitar informações como a descrição daquela associação (no caso, Planeta Terra); marcar se a associação pode ser disponibilizada para outros usuários; selecionar um modelo e um marcador na lista; marcar algumas interações disponíveis (movimento, rotação e escala). Acionando a opção associar irá salvar as configurações e disponibilizará para visualização. Figura 11. Associação entre modelo e marcador em execução. VI. O projeto WARGEN oferece mais uma opção para o usuário experimentar aplicações em realidade aumentada, permitindo uma criação intuitiva dos ambientes virtuais aumentados, não necessitando de programação em código. O projeto ainda precisa de muitas melhorias, tanto da análise quanto na programação. Manter o código fonte livre pode facilitar a rápida evolução do gerador, levando em consideração as contribuições de vários profissionais, acadêmicos e interessados no projeto. Maiores detalhes podem ser encontrados na página do projeto no Google Code [6]. Este projeto terá como trabalhos futuros, a análise de novos requisitos e funcionalidades, aprimorando o funcionamento do projeto atual. REFERÊNCIAS Figura 10. Formulário para associação de modelo e marcador. [1] Voltando a Figura 3 - tela associações, ao acionar a opção visualizar, o WARGEN redireciona o usuário para uma tela de visualização do ambiente virtual. A Figura 11 ilustra o resultado final da associação Planeta Terra apresentado anteriormente. CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS [2] [3] [4] [5] [6] Saqoosha, “FLARToolKit”, Disponível em <http://saqoo.sh/a/en/flartoolkit/start-up-guide>. Acesso em 25 Novembro de 2011. Sun, “Java 2 Platform, Enterprise Edition (J2EE)”, Disponível em < http://java.sun.com/j2ee/http://java.sun.com/j2ee/>. Acesso em 15 Março de 2012. Papervision3D, “Papervision3D”, Disponível em < http://blog.papervision3d.org/>. Acesso em 5 Março de 2011. Adobe, “Learning ACTIONSCRIPT 3.0”, Disponível em < http://help.adobe.com/en_US/as3/learn/as3_learning.pdf >. Acesso em 5 Março de 2012. ECLIPSE, Eclipse IDE for Java EE Developers, Disponível em: <http://www.eclipse.org/downloads/packages/eclipse-ide-java-eedevelopers/indigosr1>. Acesso em 12 outubro 2011. WARGEN project page. Disponível em http://code.google.com/p/wargen/. Acesso em 1 outubro 2012.