FARIAS, Thiago. A2: um modelo de referência para
Transcrição
FARIAS, Thiago. A2: um modelo de referência para
UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO THIAGO SOUTO MAIOR CORDEIRO DE FARIAS [email protected] “A2: UM MODELO DE REFERÊNCIA PARA APLICAÇÕES DE REALIDADE AUMENTADA EM REDES DE AMBIENTE” DISSERTAÇÃO SUBMETIDA AO CENTRO DE INFORMÁTICA DA UNIVERSIDADE FEDERAL DE PERNAMBUCO COMO REQUISITO PARCIAL PARA RECEBER O TÍTULO DE MESTRE EM CIÊNCIA DA COMPUTAÇÃO. ORIENTADORA: PROF. DR. JUDITH KELNER ([email protected]) CO-ORIENTADORA: PROF. DR. VERONICA TEICHRIEB ([email protected]) RECIFE - BRASIL, MARÇO 2007. ABSTRACT Two research areas have recently emerged capturing a great deal of interest from the academic community. The first of these is Augmented Reality (AR) that still lacks some important definitions due to its novelty and close relationship to correlated areas such as Virtual Reality. Some of the challenges faced by AR include dealing with design issues such as occlusion in the use of fiducial markers, symbolic pattern recognition, including gestures and voice, and the use of markerless augmented reality. Several researchers have been dedicated to these problems as well as the use of some interdisciplinary resources. A case in the point of the latter is computational vision. This area has been the scene of many applications and has shown a large concern with the use of low cost devices and its ability to represent a wide range of applications such as medicine and digital entertainment. A second area currently also receiving considerable interest is known as Ambient Networks (AN). ANs define new concepts and architectures for wireless and mobile networks beyond 3G. They introduce the concept of network composition, a mechanism that allows networks and devices to be formed and controlled dynamically while sharing connectivity and other services. ANs are capable of creating scalable networks of low cost devices offering advanced services resulting from their cooperation in an environment typically formed of heterogeneous elements, devices, wireless technologies, ISPs and corporate networks. Factors such as the relative recent emergence of the two areas, namely AR and AN, and new hardware advances for mobile and wireless devices opened the door for the development of applications and services that were never thought before. This work presents a reference model in the context of ambient networks to be used for the development of sophisticated services and interfaces, based on the use of AR. This MSc dissertation propose a new architecture focusing on interaction issues faced when using wireless devices, cellular phones, PDAs (Personal Digital Assistant) and wearable computers. Keywords: virtual Ambient reality, Networks, augmented services, interface, reality, interaction, devices, multiplatform development. ii RESUMO Duas áreas de pesquisa têm despertado um grande interesse na comunidade acadêmica. A primeira delas é a de Realidade Aumentada (AR) onde existem algumas definições que continuam em aberto, pela novidade da área e/ou pelo pequeno limiar entre algumas áreas correlatas, principalmente Realidade Virtual. Alguns dos desafios existentes em AR incluem problemas existentes no projeto, tais como: a oclusão na utilização dos marcadores fiduciais, o reconhecimento de padrões simbólicos, como gestos, fala, e utilização da realidade aumentada sem marcadores. Muitos pesquisadores têm se dedicado a buscar soluções para estes problemas assim como a utilização de alguns recursos interdisciplinares, como destaque deste último os relacionados à visão computacional. A área de AR apresenta cenários para a utilização de dispositivos de baixo custo e um vasto campo de atuação, que engloba aplicações desde a medicina ao entretenimento digital. A outra área que está despontando no momento são as Redes de Ambiente (AN). O Ambient Networks Project propõe uma solução para redes de sistemas móveis e sem fio, além do 3G (protocolos de terceira geração). Neste projeto é introduzido o conceito de composição de redes, mecanismo que permite a junção de redes com dispositivos enquanto compartilham conectividade e outros serviços. As AN permitem a criação de uma rede de comunicação sem fio escalável e de baixo custo, oferecendo serviços avançado que são resultantes da cooperação num ambiente tipicamente formado por elementos heterogêneos, dispositivos, tecnologias sem fio, operadores de redes de comunicação e empresários. Estas duas áreas (AR e AN) relativamente novas, mais o avanço, principalmente em termos de hardware, dos dispositivos móveis, permitem o desenvolvimento de inúmeras aplicações e serviços que somente podem existir mediante a inserção destes novos conceitos. Este trabalho apresenta um modelo de referência utilizando redes de ambiente para o desenvolvimento de interfaces e serviços sofisticados, baseados em AR. Esta dissertação propõe uma nova arquitetura com foco na abordagem de problemas de interação quando utilizando dispositivos móveis, como celulares, PDAs (Personal Digital Assistant) e wearable computers. Palavras realidade chaves: virtual, Redes realidade de ambiente, aumentada, serviços, interface, dispositivos, interação, desenvolvimento multiplataforma. iii AGRADECIMENTOS Agradeço ao CNPq que financiou esta dissertação de mestrado e a todos que contribuiram para que este trabalho pudesse ser realizado, especialmente a todos os companheiros do GRVM/GPRT. Um agradecimento mais especial ainda à minha orientadora Judith Kelner, e à coorientadora Veronica Teichrieb pela paciência e dedicação. iv ÍNDICE CAPÍTULO 1 INTRODUÇÃO .................................................................................... 9 1.1 Definição do Problema ................................................................................................ 9 1.2 Objetivos .................................................................................................................... 10 1.3 Relevância ................................................................................................................... 11 1.4 Estrutura da dissertação ............................................................................................. 11 CAPÍTULO 2 REALIDADE AUMENTADA.................................................................. 13 2.1 Introdução ao Capítulo ............................................................................................... 13 2.2 Conceitos Básicos........................................................................................................ 13 2.3 Interfaces de Visualização .......................................................................................... 14 2.4 Interfaces de Interação ............................................................................................... 17 2.5 Dispositivos de Interação ...........................................................................................18 2.5.1 Dispositivos de Interação em Realidade Virtual ....................................................18 2.5.2 Dispositivos Móveis ............................................................................................... 19 2.6 Áreas de Aplicação ..................................................................................................... 20 2.6.1 Áreas de Aplicação Tradicionais ........................................................................... 20 2.6.2 Sistemas Móveis de Realidade Aumentada .......................................................... 22 2.6.3 Realidade Aumentada com Dispositivos Móveis .................................................. 23 2.7 Considerações Finais ................................................................................................. 23 CAPÍTULO 3 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA ..................................................................... 25 3.1 Introdução ao Capítulo .............................................................................................. 25 3.2 Desenvolvimento na Plataforma Desktop ................................................................. 25 3.2.1 Interação com Dispositivos/Ambiente.................................................................. 27 3.2.1.1 3.2.2 3.3 CIDA ................................................................................................................ 28 Ferramentas .......................................................................................................... 29 3.2.2.1 OpenGL ........................................................................................................... 29 3.2.2.2 OGRE.............................................................................................................. 29 3.2.2.3 ARToolKit ........................................................................................................ 31 3.2.2.4 OgreAR ............................................................................................................ 31 Desenvolvimento na Plataforma Pocket PC .............................................................. 33 3.3.1 OGRE no Pocket PC .............................................................................................. 34 3.3.2 OpenGL ES............................................................................................................ 36 3.3.3 ARToolKitPlus ...................................................................................................... 37 3.4 Desenvolvimento na Plataforma Symbian OS........................................................... 37 v 3.4.1 Dificuldades Encontradas ..................................................................................... 38 3.4.1.1 API ARToolKit Portada para Symbian OS ...................................................... 38 3.4.1.2 Ambiente de Desenvolvimento ....................................................................... 40 3.5 Considerações Finais ................................................................................................. 42 CAPÍTULO 4 DESCRIÇÃO DO MODELO A2 ......................................................... 43 4.1 Introdução ao Capítulo .............................................................................................. 43 4.2 Redes Heterogêneas .................................................................................................. 43 4.3 Redes de Ambiente .................................................................................................... 44 4.4 O Modelo A2 .............................................................................................................. 45 4.5 Protocolo de Intercomunicação entre Serviços e AN XCSERVICES......................... 46 4.6 Serviços ...................................................................................................................... 47 4.7 Frameworks de Desenvolvimento para Classes de Dispositivos .............................. 48 4.8 Ambiente de AR ......................................................................................................... 49 4.9 Considerações Finais ................................................................................................. 50 CAPÍTULO 5 ESTUDO DE CASO: O PROJETO A2 ...................................................... 51 5.1 Introdução ao Capítulo ............................................................................................... 51 5.2 Descrição dos Equipamentos...................................................................................... 51 5.2.1 Plataformas............................................................................................................. 51 5.2.1.1 Plataforma Celular ........................................................................................... 51 5.2.1.2 Plataforma Pocket PC ...................................................................................... 51 5.2.1.3 Plataforma Mobile Desktop ............................................................................ 52 5.3 Estudo de Caso: O Museu Virtual .............................................................................. 52 5.3.1 Serviço de Visitação a uma Galeria de Arte ........................................................... 54 5.3.2 Serviço de Entrevista .............................................................................................57 5.3.3 Serviço de Leilão ................................................................................................... 58 5.3.4 Serviço de Chat ..................................................................................................... 59 5.4 Considerações Finais ................................................................................................. 60 CAPÍTULO 6 6.1 CONCLUSÃO ................................................................................... 62 Contribuições ............................................................................................................. 62 6.1.1 Desenvolvimento de software e do framework...................................................... 62 6.1.2 Publicações relevantes .......................................................................................... 63 6.2 Trabalhos Futuros ..................................................................................................... 64 Bibliografia ........................................................................................................................... 66 vi LISTA DE FIGURAS Figura 2.1. Representação simplificada da continuidade virtual (adaptado de [5]). ................ 13 Figura 2.2. Aplicação table-top em AR [8]. .............................................................................. 14 Figura 2.3. Diagrama conceitual (adaptado de [3]) e exemplo do optical see-through HMD. 15 Figura 2.4. Diagrama conceitual (adaptado de [3]) e exemplo do video see-through HMD. .. 16 Figura 2.5. Sistema monitor-based (adaptado de [3]).............................................................. 17 Figura 2.6. Tipos de luvas [11], [12]. ......................................................................................... 19 Figura 2.7. Tracker. ................................................................................................................... 19 Figura 2.8. Wearable computer tradicional para AR móvel (esquerda) e PDA (direita) [13]. 20 Figura 2.9. Imagem sobreposta ao paciente [15]. ..................................................................... 21 Figura 2.10. Visão do usuário jogando ARQuake [17].............................................................. 22 Figura 2.11. Workspace para planejamento urbano [19]. ........................................................ 22 Figura 3.1. Reconhecimento da face para posicionar óculos virtual. ...................................... 26 Figura 3.2. Projeção da cena virtual sobre o objeto real 3D.................................................... 26 Figura 3.3. Wearable Computer. ............................................................................................. 27 Figura 3.4. Usuário vestindo a plataforma miva. ..................................................................... 27 Figura 3.5. Teclado interpretado como dois joysticks. ............................................................ 29 Figura 3.6. Marcador fiducial utilizado pelo ARToolKit. .......................................................... 31 Figura 3.7. Arquitetura do OgreAR. ......................................................................................... 32 Figura 3.8. Aplicações de AR usando o ARToolKitPlus. .......................................................... 33 Figura 3.9. Screenshots de demos do OGRE no Pocket PC: a) SkeletalAnimation usando o RenderSystem baseado em OpenGL ES; b) SkyBox usando o RenderSystem baseado em OpenGL ES; c) SkeletalAnimation usando o RenderSystem baseado no Klimt. ..... 36 Figura 4.1. Diagrama do modelo A2. ........................................................................................ 46 Figura 5.1. Nokia 6600 utilizado no Projeto A2. ....................................................................... 51 Figura 5.2. Dell Axim x51v utilizado no Projeto A2. ................................................................ 52 Figura 5.3. Versão ppreliminar do Folder utilizado no estuudo de caso. ................................ 53 Figura 5.4. Nokia N93. ............................................................................................................. 54 Figura 5.5. Aplicação Mobile Desktop exibindo informação 2D sobre 2 marcadores. ............ 55 Figura 5.6. Conteúdo adicional em forma de vídeo sendo exibido na plataforma Mobile Desktop. ............................................................................................................................ 55 Figura 5.7. Serviço de visualização na plataforma Pocket PC. ................................................. 56 Figura 5.8. Diferentes visões da utilização do 3DLive. .............................................................57 Figura 5.9. Cubo de marcadores em utilização. ....................................................................... 58 Figura 5.10. Interface do serviço do leilão na plataforma Pocket PC....................................... 59 Figura 5.11. Serviço de chat na plataforma Mobile Desktop. ................................................... 60 vii Figura 5.12. Interface do serviço de chat na plataforma Pocket PC. ........................................ 60 viii INTRODUÇÃO CAPÍTULO 1 INTRODUÇÃO A evolução e o crescimento na escala dos sistemas, das Redes de Computadores, da Internet, da Web e dos recursos e soluções de Tecnologia da Informação (TI) como um todo, associados ao alto custo em prover esses tipos de serviços, evidenciam a necessidade de compartilhar recursos, disponibilizar serviços e cooperação entre redes – o que é realizado através de acordos ou políticas. Os acordos realizados atualmente exigem extensiva configuração manual, bem como um conhecimento prévio do comportamento das redes em que vão atuar. Entretanto, a heterogeneidade dos dispositivos, a diversidade dos serviços disponíveis, a dinamicidade, a mobilidade e a natureza assíncrona dos dispositivos e dos serviços tornam inviável a complexa tarefa de gerenciamento centralizado e a predição contínua de seu estado ou de seu contexto de operação [1]. Aplicações que utilizam as características descritas anteriormente, na maioria dos casos, necessitam de um alto grau de imersão e mobilidade do usuário, que podem ser alcançados através de interfaces avançadas que utilizam sofisticadas técnicas de interação, permitindo a sobreposição de elementos virtuais no mundo real e, se necessário, em tempo real. Esse tipo de interface explora metáforas que o usuário está acostumado a utilizar no seu dia-a-dia, ou seja, o usuário continua vendo o mundo real e interagindo com a interface sobreposta como se fosse parte do seu mundo [2]. Tais interfaces avançadas podem ser implementadas através da tecnologia de Realidade Aumentada (Augmented Reality - AR), que lida com a sobreposição de elementos virtuais no ambiente real, em tempo real (on-line). Atualmente, aplicações de AR são usadas em diferentes domínios de conhecimento, tais como entretenimento, medicina, simulação, propaganda visual, educação, manutenção, entre outras. 1.1 DEFINIÇÃO DO PROBLEMA Nos últimos anos duas áreas têm despontado na comunidade tecnológica, mas ainda são pouco exploradas comercialmente, despertando um maior interesse por parte da comunidade acadêmica. Uma dessas áreas é a de AR, que está sendo colocada como uma expansão da Realidade Virtual (Virtual Reality - VR) [3]. Muito tem sido comentado sobre esta área, mas ainda hoje algumas definições continuam em aberto, provavelmente pela novidade e pelo pequeno limiar entre algumas áreas correlatas. Informalmente, AR permite que o usuário veja o mundo real com alguns objetos virtuais inseridos nele, possibilitando com isso uma 9 INTRODUÇÃO maior interatividade entre o usuário e o ambiente, assim como uma maior percepção do mundo pelo usuário. A outra área que está em ascensão é a de Redes de Ambiente (Ambient Networks AN) [4]. Estas são baseadas em um conjunto de múltiplas redes construídas com diferentes tecnologias. O objetivo das AN é unir os diferentes tipos de redes, tais como Body Area Networks (BANs), Vehicular Area Networks (VANs), Personal Area Networks (PANs), Home Area Networks (HANs), redes de acesso sem fio, redes celulares, redes heterogêneas, entre muitas outras. Estas duas áreas relativamente novas, integradas ao avanço, principalmente em termos de hardware, dos dispositivos móveis, permitem o desenvolvimento de inúmeras aplicações nos mais diversos campos de atuação. Por outro lado, a intersecção da AR com as AN amplia o número de problemas que já existem em cada uma per si. Alguns dos problemas a serem considerados nesta intersecção são: mobilidade, percepção, adaptação de conteúdo, interatividade, entre outros. Considerando que, em um futuro próximo, haverá uma convergência para ambientes onde os usuários estarão potencialmente conectados em qualquer lugar a qualquer momento, utilizando diferentes tipos de dispositivos, existe a necessidade de viabilizar através de um estudo de caso a utilização deste novo tipo de interface em serviços móveis e interativos. 1.2 OBJETIVOS Esta dissertação de mestrado tem por objetivo principal propor um novo conceito de interface para serviços, explorando a imersão e a mobilidade inerentes à tecnologia de AR e a sua integração com as AN. O modelo Augmented Ambient, ou simplesmente A2, permitirá a construção de novos serviços multimídia e a composição de um novo cenário de comunicação, promovendo um nível de interatividade maior dos serviços com o ambiente real. O A2 propõe uma arquitetura para distribuição e validação de serviços, e adaptação de conteúdo que será utilizada em várias classes de dispositivos (celulares, Personal Digital Assistants (PDAs) e notebooks) para o acesso a serviços de comunicação avançados. Também é proposto um framework para construção de serviços baseados em AR utilizando dispositivos móveis. Alguns serviços foram implementados para demonstrar os conceitos de AN, tendo como estudo de caso um museu virtual. Este estudo de caso provê serviços como intercomunicação dos visitantes do museu através de VoIP (Voice over IP), acesso a leilões virtuais, entrevistas com fluxo de vídeo 3D e visualização de obras de arte. Utilizando recursos da AR os visitantes poderão perceber obras que não estão fisicamente no ambiente 10 INTRODUÇÃO do museu, sendo estas inseridas na realidade do visitante através de marcadores fiduciais associados a um sistema que pode ser composto por um Head-Mounted Display (HMD), uma câmera e um notebook, ou ainda por um PDA ou celular com câmera. No caso dos PDAs e celulares, eles podem ainda simular uma “lupa virtual”, exibindo o conteúdo da AR em sua tela à medida que o usuário direciona a câmera para o marcador desejado. Diferentes tipos de mídia podem ser exibidos em dispositivos (PDAs, celulares, notebooks, wearable computers, entre outros), dependendo apenas do seu poder de processamento e exibição. Sendo assim, além de imagens, o usuário poderá assistir à exibição de vídeos, ouvir trilhas de áudio, ou ver objetos virtuais que não existem “de fato” no ambiente real. 1.3 RELEVÂNCIA Este trabalho propõe o estudo de cenários interativos que exploram a utilização de computação pervasiva. A computação pervasiva é uma tendência que envolve várias áreas, como interface homem-máquina, para manter uma interface transparente e favorecer uma interação rápida e simples com o usuário, realidade virtual e computação gráfica, para tornar as interfaces mais imersivas e naturais para o usuário e redes de computadores, para facilitar a intercomunicação entre as partes comunicantes, caso haja uma interação entre vários usuários ou máquinas, colaborando para a realização de tarefas. A computação ubiqua, como também pode ser chamada a computação pervasiva, depende também de realização de tarefas e utilização de serviços a qualquer momento, utilizando qualquer tipo de dispositivo, o que incentiva também o estudo e desenvolvimento de tecnologias para implementação de interfaces de realidade virtual e aumentada em múltiplas plataformas. Para facilitar o desenvolvimento de aplicações e serviços e viabilizar a utilização de redes heterogêneas e computação pervasiva, como casas inteligentes, shopping centers interativos e museus virtuais, entre outros, é relevante a criação do modelo de referência, chamado A2. O A2 foi concebido para tornar o desenvolvimento mais rápido e modular, através de uma arquitetura com infra-estrutura de rede e frameworks para implementação de serviços e interfaces multiplataforma. 1.4 ESTRUTURA DA DISSERTAÇÃO Esta dissertação está dividida em 6 capítulos, incluindo este. O Capítulo 2 trata de conceitos básicos da área de realidade virtual e aumentada, assim como algumas áreas de aplicação semelhantes ao trabalho proposto. O Capítulo 3 ilustra o desenvolvimento multiplataforma, necessário para a adequação de vários dispositivos ao acesso de serviços multimídia. Nele são 11 INTRODUÇÃO apontadas algumas bibliotecas utilizadas e outras construídas para facilitar o desenvolvimento. Além disso, são apresentadas algumas dificuldades no desenvolvimento para a plataforma Symbian, que se mostrou bastante problemática. No Capítulo 4, é apresentada a proposta do modelo de implementação de serviços para dispositivos móveis, detalhando as entidades presentes no modelo e ilustrando a arquitetura por completo. O Capítulo 5 mostra o estudo de caso realizado, como prova de conceito, para o modelo proposto no Capítulo 4. Nele são expostos os equipamentos escolhidos e os serviços implementados de uma forma detalhada, deixando claro o modo de interação utilizado em cada plataforma. Por fim, o Capítulo 6 apresenta a conclusão e alguns trabalhos futuros. 12 REALIDADE AUMENTADA CAPÍTULO 2 REALIDADE AUMENTADA 2.1 INTRODUÇÃO Este capítulo descreve os principais conceitos relacionados à área de realidade aumentada, mostrando tanto dispositivos de visualização e de interação quanto as técnicas envolvidas. Uma breve discussão sobre algumas áreas de aplicação é apresentada também neste capítulo. 2.2 CONCEITOS BÁSICOS Realidade Mista (Mixed Reality - MR) envolve a união do mundo real com o mundo virtual em algum lugar na “continuidade virtual”, como pode ser visto na Figura 2.1. A continuidade virtual representa uma taxonomia que conecta o ambiente real e o ambiente virtual [5]. Popularmente, MR é definida como sendo uma tecnologia que mistura o mundo virtual (gráficos e/ou imagens geradas por computador) e o mundo real em tempo real. Figura 2.1. Representação simplificada da continuidade virtual (adaptado de [5]). Segundo [6], VR é uma interface homem-máquina de alto nível que envolve simulações em tempo real e interações através de múltiplos canais sensoriais. Estas modalidades sensoriais são a visão, a audição, o tato, o olfato e o paladar. Como características inerentes ao conceito de VR tem-se a imersão, a interação e a imaginação. A partir destes conceitos o usuário pode ter uma ampla experiência de uso em um sistema de VR. A imersão pode ser favorecida pela utilização de óculos de realidade virtual (Head Mounted Displays - HMDs), luvas de dados e fones de ouvido, entre outros dispositivos. Em AR o usuário vê o mundo real com objetos virtuais inseridos neste ou ainda escondendo objetos reais, ou seja, AR complementa o mundo real ao invés de sobrepô-lo [3]. Assim como a VR, a AR pode explorar os sentidos da audição e tato aumentando a percepção 13 REALIDADE AUMENTADA do usuário e a sua interação com o mundo real, através da superposição de informações, que serão percebidas pelo usuário como parte da realidade onde este está imerso Estas informações, conduzidas através de objetos virtuais, ajudarão no desempenho das tarefas do mundo real. A figura abaixo ilustra uma aplicação table-top em AR que exibe prédios virtuais do centro de Augsburg - Alemanha projetados sobre o mapa real da cidade. Com esta aplicação o usuário pode planejar a construção de novos prédios, otimizando o planejamento de projetos de arquitetura e urbanismo, como também problemas mais complexos como emissões de calor dependentes do tipo de material empregado em cada edificação e o impacto ambiental. Ainda neste contexto pode-se citar o projeto Open Spaces in Megacities [7] em desenvolvimento na UFPE. Figura 2.2. Aplicação table-top em AR [8]. Bibliotecas de AR comumente fazem uso de marcadores fiduciais, que são aplicados no cálculo da posição e orientação de objetos virtuais posicionados sobre a imagem adquirida do mundo real. Tais marcadores podem ser classificados em dois tipos: baseados em templates e baseados em identificadores. No primeiro tipo, uma figura ou padrão será utilizada como identificação do marcador, sendo a esta associado um identificador único para registro na aplicação. Já o segundo tipo de marcador possui uma codificação do identificador, possibilitando uma correlação direta entre o marcador e o identificador, diminuindo erros de registro. Entende-se por registro a ação de correlacionar a posição e a orientação fornecidas por um marcador para um objeto virtual. 2.3 INTERFACES DE VISUALIZAÇÃO Dentre os vários dispositivos utilizados para a visualização de ambientes virtuais, serão 14 REALIDADE AUMENTADA enfocados nesta seção os HMDs ou Head-Worn Displays (HWDs). Existem dois tipos de HMDs: o closed-view e o see-through. O primeiro não permite uma visão direta do mundo real e é o mais usado em VR, enquanto que o segundo permite que o usuário enxergue o mundo real com objetos virtuais sobrepostos nele. Os HMDs do tipo see-through podem usar dois tipos de tecnologia, ótica ou de vídeo, constituindo respectivamente dois tipos de HMDs, os optical see-through HMDs, que têm o funcionamento ilustrado na Figura 2.3 e os video see-through HMDs, melhor detalhados na Figura 2.4. Figura 2.3. Diagrama conceitual (adaptado de [3]) e exemplo do optical see-through HMD. Como citado em [3], as principais vantagens deste HMD são: • Simplicidade: só existe uma stream de vídeo para ser processada, pois o mundo real já é exibido naturalmente; • Resolução: a resolução do mundo real não é limitada pela resolução dos displays; • Segurança: se a energia for cortada o usuário continuará com a visão do mundo real, apenas sendo descartada a parte virtual; • No eye offset: como não há câmeras envolvidas no dispositivo, não existe a possibilidade de ocorrer uma diferença entre a posição das câmeras e a distância entre os olhos do usuário. 15 REALIDADE AUMENTADA Figura 2.4. Diagrama conceitual (adaptado de [3]) e exemplo do video see-through HMD. Como citado em [3], as principais vantagens do video see-through são: • Neste HMD inexiste o problema dos objetos virtuais não ocludirem completamente os objetos reais, devido à exposição a fontes de luzes apenas virtuais; • Wide field-of-view: são descartadas as distorções que normalmente ocorrem em sistemas ópticos; • As imagens do mundo real podem ser sincronizadas com as dos objetos virtuais, o que não ocorre com os optical see-through HMDs. Já no sistema monitor-based, ilustrado pela figura 2.5, podem ser utilizadas uma ou duas câmeras, sendo estas estáticas ou móveis. Nele, as imagens sintetizadas pelo sistema de VR são exibidas em um monitor comum posicionado à frente do usuário, e podem contar com a ajuda de óculos do tipo estéreo para visualização explorando as técnicas estereoscópicas. O vídeo do mundo real é então combinado com os objetos virtuais e exibido no sistema. Este sistema tem como vantagem dispensar a utilização de quaisquer dispositivos externos, exceto opcionalmente um simples óculos anaglifo quando se deseja visualizar a cena em 3D[3]. 16 REALIDADE AUMENTADA Figura 2.5. Sistema monitor-based (adaptado de [3]). 2.4 INTERFACES DE INTERAÇÃO No contexto de interfaces homem-máquina, interação é a maneira com que o usuário se comunica com a aplicação, podendo esta comunicação ocorrer através de dispositivos ou de forma simbólica. Segundo Bowman [9], “interação é um método que permite a um usuário realizar uma tarefa através da interface do usuário. Uma técnica de interação inclui tanto componentes de hardware (dispositivos de entrada/saída) quanto de software. As técnicas de interação utilizadas nos componentes de software são responsáveis por mapear a informação de um dispositivo de entrada em alguma ação dentro do sistema, e por mapear a saída do sistema de forma que esta possa ser interpretada pelos dispositivos de saída”. VR requer técnicas especiais de interação que lidam com o espaço tridimensional (3D). A interação pode ocorrer no sentido usuário-aplicação ou no sentido aplicação-usuário. Como exemplos desta última, cenários virtuais utilizados em VR podem dar retorno ao usuário através de dispositivos chamados “hápticos”. Neste caso, o usuário recebe o retorno do mundo virtual e pode reagir de forma diferente dependendo dos estímulos providos pela VR. Em VR, a interação pode ser subdividida em quatro tipos principais de tarefas: • Manipulação e seleção: são técnicas utilizadas para mover, transladando ou rotacionando, e selecionar objetos virtuais da cena; • Navegação: agrupa as técnicas utilizadas para movimentação dentro do ambiente virtual; • Controle de sistemas: são as técnicas que permitem enviar comandos ao 17 REALIDADE AUMENTADA sistema, como por exemplo, menus; • Entrada simbólica: fazem parte deste grupo as técnicas que permitem manipulação de entrada através de fala, gestos ou quaisquer outros símbolos. Em AR não existe um padrão de taxonomia para técnicas de interação. Isto se dá pelo fato de grande parte das técnicas de VR serem adaptáveis para as aplicações de AR. Desta forma, pode-se utilizar os mesmos conceitos de manipulação, seleção, entre outros descritos anteriormente. No decorrer deste trabalho serão descritas algumas técnicas de interação para realizar tarefas nos serviços implementados no A2. Apesar do A2 ter sido concebido e implementado segundo os conceitos de AR, as técnicas de interação utilizadas são todas aplicadas em VR e foram adaptadas para AR. Estas técnicas serão detalhadas no Capítulo 5, durante a descrição dos serviços. 2.5 DISPOSITIVOS DE INTERAÇÃO Nesta seção serão mostrados os diversos dispositivos usados para interagir em AR. Dentre esses serão abordados os mais comuns (luvas e trackers) até os dispositivos móveis como celulares e PDAs. 2.5.1 DISPOSITIVOS DE INTERAÇÃO EM REALIDADE VIRTUAL Em VR, os dispositivos de interação são projetados de forma que aumentem consideravelmente a imersão do usuário. Fazem parte deste grupo de dispositivos as luvas (para manipulação de objetos virtuais), apontadores, rastreadores de movimento, etc. Estes dispositivos podem, além de fornecer entrada para a aplicação, fornecer um retorno (táctil, de força) ao usuário. Caso isto ocorra, estes são chamados dispositivos hápticos. As luvas (data gloves), vide Figura 2.6, são equipadas com sensores que percebem os movimentos da mão e fazem a interface desses movimentos com o computador, fazendo com que o usuário possa manipular objetos e/ou realizar movimentos em um ambiente virtual. Com as luvas, o usuário pode fazer gestos, segurar objetos virtuais e manipulá-los, transmitindo os movimentos da mão para o computador através dos sensores presentes em cada dedo. Caso a luva seja háptica, o computador também pode repassar ao usuário a sensação de toque proporcionado pelos objetos virtuais segurados pelo avatar do usuário, oferecendo assim, uma maior imersão. 18 REALIDADE AUMENTADA Figura 2.6. Tipos de luvas [11], [12]. Em aplicações de VR também são utilizados rastreadores (trackers), que podem captar alterações em sua posição e/ou orientação. Estes servem para a captura do posicionamento das mãos, rotação da cabeça (caso a câmera para captura do mundo real esteja explicitamente ligada à visão do usuário) ou até a captura de movimentos para a animação de personagens. Um exemplo de tracker pode ser visto na Figura 2.7. Figura 2.7. Tracker. 2.5.2 DISPOSITIVOS MÓVEIS AR possibilita que o usuário possa ter contato com elementos virtuais enquanto continua imerso no mundo real. A mobilidade faz parte do conjunto de tarefas de interação que o indivíduo realiza no mundo real, o que significa que esta tarefa não deve ser subtraída quando o contexto é o de ambientes de AR. Desta forma, vários dispositivos foram adaptados para compor sistemas de AR, que podem utilizar notebooks, juntamente com HMDs, ou dispositivos de pequeno porte, como celulares e PDAs. Quando mencionam-se notebooks, deve-se agregar a eles equipamentos como câmeras, trackers, luvas e HMDs, para que eles possam ser utilizados para executar aplicações de AR. Para que estes se tornem móveis, esses elementos devem ser conectados e 19 REALIDADE AUMENTADA carregados de forma confortável para o usuário. A este conjunto de equipamentos de hardware dá-se o nome de “wearable computer”. Uma alternativa ao uso dos wearable computers é a utilização de dispositivos menores. Nesta categoria se encontram os celulares e PDAs. Estes devem ser equipados com câmeras e ter um poder de processamento que atenda aos requisitos das aplicações de AR, já que neste tipo de aplicação o hardware é bastante exigido no processamento de imagens. A grande desvantagem destes dispositivos é que à medida que eles avançam, eles são miniaturizados, diminuindo o espaço para visualização das aplicações, o que torna a experiência do usuário mais pobre e menos imersiva. A interação com dispositivos menores se dá normalmente através de uma tela sensível ao toque, ou através do próprio teclado, no caso do celular. Estes dispositivos estão ilustrados na Figura 2.8. Figura 2.8. Wearable computer tradicional para AR móvel (esquerda) e PDA (direita) [13]. 2.6 ÁREAS DE APLICAÇÃO Nesta seção serão mostradas algumas áreas de aplicação nas quais AR tem se destacado. As aplicações em AR são inúmeras e abrangem diversas áreas, desde aplicações em entretenimento, passando por aplicações médicas e, mais recentemente aplicações móveis e comerciais. 2.6.1 ÁREAS DE APLICAÇÃO TRADICIONAIS As áreas de aplicação tradicionais no uso de AR são as seguintes: medicina, manutenção, visualização e explicação (anotação), entretenimento e planejamento urbano. Na medicina, os médicos podem usar a tecnologia de AR para a visualização de cirurgias, por exemplo. Com o conjunto dos dados coletados através de sensores nãoinvasivos, esses dados podem ser renderizados e combinados em tempo real com a imagem real do paciente, dando ao médico uma espécie de visão de raio-X dos órgãos do paciente, resultando com isso em uma visão interna sem a necessidade de grandes incisões [14] (vide 20 REALIDADE AUMENTADA Figura 2.9). Figura 2.9. Imagem sobreposta ao paciente [15]. A utilização de AR na área de manutenção facilita o entendimento das instruções sobre o procedimento a ser realizado, ao invés da leitura de manuais e da observação de figuras. Em contraponto a isto, são exibidos objetos 3D que se sobrepõem a um equipamento qualquer mostrando passo a passo às tarefas que devem ser feitas e como fazê-las. Estes objetos podem, ainda, ser animados para que as instruções sejam mostradas de uma maneira mais explícita. AR, também pode ser utilizada para inserir elementos virtuais a fim de ajudar na localização e na navegação em ambientes desconhecidos, a partir de marcadores que mostram informações armazenadas em bases de dados remotas [16]. Muitas aplicações podem ser encontradas também na área de entretenimento. Nesta tem-se uma infinidade de jogos que utilizam sobreposição do mundo real com informações virtuais. Um exemplo disto é o ARQuake [17], que possui uma estrutura parecida com o Quake, um “First Person Shooter” (FPS) onde o jogador tem que atirar em inimigos que surgem pelo caminho. No ARQuake os inimigos aparecem no mundo real enquanto o jogador se desloca, como visto na Figura 2.10. 21 REALIDADE AUMENTADA Figura 2.10. Visão do usuário jogando ARQuake [17]. Outros tipos de aplicações podem ser construídas utilizando os conceitos de AR, principalmente na área de planejamento urbano. Aplicações nesta área podem utilizar-se de AR, deixando a visualização e a simulação de ambientes por conta de modelos virtuais, que podem ser facilmente manipulados e inseridos no mundo real, para que várias pessoas possam interagir com o mesmo modelo ao mesmo tempo. Uma aplicação que possui estas características é a Urp [18], que simula prédios e ventos em um ambiente virtual. Figura 2.11. Workspace para planejamento urbano [19]. 2.6.2 SISTEMAS MÓVEIS DE REALIDADE AUMENTADA Entre as pesquisas que usam AR móvel merece destaque o trabalho [20], por ter desenvolvido vários serviços/aplicações em um único projeto. Como descrito no Capítulo 1, alguns serviços foram implementados no projeto, e existem experiências relevantes com relação a eles. Em [21], existe um enfoque no uso de teleconferência baseada em AR, e o trabalho discute a tecnologia usada para desenvolver esse sistema, assim como os objetivos alcançados. Além disso, é apresentado o uso do ARToolKit neste tipo de pesquisa, abordando o projeto 3D Live e explorando o conceito de colaboração em AR. 22 REALIDADE AUMENTADA Outro trabalho em teleconferência baseado em AR é o [22], onde são usados alguns marcadores para interagir com a aplicação, manipulando a posição e a orientação de objetos virtuais e permitindo ao usuário uma visão ampla deles. Em [23], a captura do movimento de um telefone celular, através da câmera, é usado para interagir com a aplicação. Uma experiência real em que o usuário joga achando padrões que contêm planetas do sistema solar pode ser encontrada em [24]. Quando o marcador é posicionado corretamente, novas informações sobre os planetas são exibidas para o jogador. 2.6.3 REALIDADE AUMENTADA COM DISPOSITIVOS MÓVEIS Sistemas de AR baseados em PDAs podem ser divididos em duas categorias principais: sistemas distribuídos e sistemas standalone. Em sistemas distribuídos, parte das tarefas necessárias para aumentar o ambiente é executada por um servidor, que troca dados com os dispositivos através de uma rede sem fio. Um exemplo disto é detalhado em [27], onde a detecção de marcadores fiduciais na imagem capturada e a renderização de objetos 3D são feitas por um laptop, e o PDA é responsável somente por capturar a imagem da câmera e desenhar o resultado final na tela. O servidor normalmente tem um grande poder de processamento, assim como uma placa de vídeo com aceleração gráfica em hardware (GPU – Graphics Processing Unit). Contudo, cada frame capturado pelo dispositivo móvel é transferido para o servidor e os resultados são então processados e enviados de volta para o PDA, causando um atraso que diminui a taxa de renderização de quadros por segundo das aplicações. Outro problema está relacionado à necessidade da presença de um servidor, que dificulta a mobilidade da solução. Sistemas standalone não dependem de servidores para a geração da saída de AR. Estes implementam, na própria aplicação, todos os requisitos e procedimentos para a execução de tarefas de AR [28]. Este fator provê o desenvolvimento de soluções de AR totalmente móveis. De outro lado, o baixo poder de processamento e a ausência de uma GPU são características comuns de um PDA, o que implica na criação de aplicações que não devem possuir um alto grau de complexidade, tanto no processamento, quanto na visualização. 2.7 CONSIDERAÇÕES FINAIS Este capítulo apresentou uma breve descrição de alguns conceitos de AR. Foram detalhados alguns tipos de dispositivos utilizados em aplicações de AR/VR, bem como algumas formas de interação. Também foram descritas algumas áreas de aplicação de AR, dividindo-as em áreas tradicionais e consolidando os conceitos de AR móvel, através de sistemas complexos ou que utilizem dispositivos móveis. A partir desses conceitos explicitados ao longo deste capítulo, pode-se construir um 23 REALIDADE AUMENTADA maior embasamento para o projeto A2, principalmente através de várias características que já foram introduzidas sobre o projeto quando comparadas com as aplicações existentes, destaca-se que o A2 tem como um dos seus pilares a AR. 24 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA CAPÍTULO 3 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA 3.1 INTRODUÇÃO O desenvolvimento de aplicações de AR surgiu através de bibliotecas e ferramentas direcionadas à plataforma desktop, tendo implementações específicas para os sistemas operacionais Windows e Linux. Devido à necessidade das aplicações terem maior mobilidade, houve um esforço para que as bibliotecas de AR fossem portadas para plataformas móveis como Windows Mobile (Pocket PC) e Symbian OS. Aplicações deste porte exigem um maior poder de processamento, o que impulsiona a indústria a produzir dispositivos móveis cada vez mais rápidos e adaptados à construção de aplicações com interação através de AR/VR. A mais recente evolução se deu pela adição de aceleração gráfica nas plataformas Pocket PC e Symbian OS, tendo como exemplos o Dell Axim x51 [29] e o Nokia N93 [30], que já possuem esta característica e utilizam respectivamente o DirectX Mobile e o OpenGL ES para prover comunicação entre o hardware acelerador e a aplicação. Na seqüência, as Seções 3.2, 3.3 e 3.4 apresentam a situação atual e a experiência do autor no desenvolvimento de aplicações para desktop, para Pocket PC e para Symbian OS, respectivamente. 3.2 DESENVOLVIMENTO NA PLATAFORMA DESKTOP Ao se criar aplicações de AR para desktops é possível aproveitar o grande poder de processamento das máquinas atuais para criar aplicações mais sofisticadas e realistas. Posicionar corretamente objetos virtuais em uma cena real é um requisito imprescindível em aplicações de AR. O posicionamento incorreto é conhecido como erro de registro (Registration Error) e tem demandado bastante estudo na área. Existem técnicas que utilizam marcadores ou LEDs (Light Emitting Diode) para rastrear a posição da câmera no mundo real e inserir os objetos virtuais no local correto da cena real. Estas técnicas calculam rápida e corretamente a posição em que deve ser inserido o objeto virtual, mas têm como problema a necessidade do uso destes marcadores ou LEDs na cena real, o que pode ser 25 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA inconveniente ou até mesmo impossível de ser utilizado em algumas situações [32]. Mais recentemente, outras técnicas reconhecem objetos na cena real através de modelos 3D desses objetos previamente conhecidos, como em [32], o que supre a necessidade dos marcadores físicos (Figura 3.1). Figura 3.1. Reconhecimento da face para posicionar óculos virtual. As aplicações de AR para desktop podem utilizar diversos dispositivos de saída para a exibição da cena real misturada com a cena virtual. São eles: HMDs see-through, HMDs video-see-through e monitor convencional, como vistos na Seção 2.3, e projetores que utilizam os objetos do mundo real como superfícies de projeção da cena virtual (Figura 3.2) [33]. Figura 3.2. Projeção da cena virtual sobre o objeto real 3D. Os laptops atuais possuem poder de processamento similar aos desktops, e quando utilizados em conjunto com uma câmera e um capacete de VR podem oferecer ao usuário mobilidade, como pode ser visto no projeto ARQuake [34] onde o jogador utiliza o ambiente real como cenário para enfrentar os oponentes do jogo. A Figura 3.3 mostra os equipamentos do Wearable Computer utilizado para jogar o ARQuake. 26 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA Figura 3.3. Wearable Computer. Um outro exemplo de wearable computer é o utilizado no estudo de caso do projeto A2, denominado miva e desenvolvido pelo Grupo de Pesquisa em Realidade Virtual e Multimídia do Centro de Informática da UFPE, que pode ser visto na Figura 3.4. Figura 3.4. Usuário vestindo a plataforma miva. 3.2.1 INTERAÇÃO COM DISPOSITIVOS/AMBIENTE Aplicações de AR, além da interação clássica com marcadores, podem fazer uso de diversos tipos de dispositivos de entrada. Estes últimos são utilizados para interagir com elementos virtuais da cena, já que os marcadores oferecem limitações de interação que podem ser supridas com a utilização de dispositivos como teclados, mouses ou joysticks. À medida que são introduzidas formas de interação alternativas e mais modernas, algumas mudanças na estrutura do programa original se tornam necessárias para permitir a interação com o novo dispositivo, a não ser que este seja equivalente a algum utilizado previamente. Tendo em vista que nem todos os dispositivos são similares e que geram eventos de diferentes formas, o desenvolvedor normalmente precisa reescrever ou complementar sua aplicação com um novo módulo de interação específico para o dispositivo introduzido. Este processo deve ser repetido para cada dispositivo novo que a aplicação deseje suportar. 27 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA O problema da introdução de novos dispositivos para controlar aplicações já desenvolvidas pode ser resolvido através da utilização de uma plataforma de abstração de dispositivos de entrada. Desta forma o mesmo programa pode receber ações de controle tanto de um mouse quanto de uma luva, ou de um dispositivo de interação qualquer, sem que seja necessária qualquer mudança em seu código fonte ou até mesmo uma recompilação. Além da facilidade da adição de dispositivos, o uso da plataforma de abstração de dispositivos oferece ainda o conceito de portabilidade. Isso significa que a aplicação tem a capacidade de se adaptar a vários métodos de interação distintos, sem a necessidade de qualquer mudança no código. Desta maneira, uma aplicação projetada para um ambiente sofisticado, que faz uso de trackers, luvas e joysticks também funcionaria em um computador que possuísse apenas um mouse, teclado ou outro dispositivo padrão, por exemplo. Isso pode ser obtido através da identificação de perfis de interação, que possuem informações sobre os dispositivos virtuais que a aplicação requisita e o mapeamento destes em dispositivos reais. Este mapeamento permite que um mouse, por exemplo, assuma funções antes desempenhadas por um tracker. 3.2.1.1 CIDA CIDA (Chaotic Interaction Devices Abstraction) é uma plataforma de gerenciamento de dispositivos de entrada desenvolvida pelo autor que tem como principal característica fornecer uma camada de abstração entre sistemas interativos e os dispositivos de interação [35]. A partir desta plataforma, podem ser disponibilizados para a aplicação, em tempo de execução, todos os dispositivos que possuem as características necessárias para interagir com a mesma, como botões, eixos, graus de liberdade, entre outros. Em CIDA os dispositivos de entrada são agrupados em quatro classes distintas, de acordo com as suas características funcionais: Keyboard, Joystick, Tracker e Pointer Device. Para que novos dispositivos de entrada sejam suportados é necessário implementar plugins específicos, os quais determinam as características de cada classe oferecidas pelo dispositivo. Desta forma, a adição de novos dispositivos de interação a sistemas baseados na plataforma torna-se bastante simples, pois o código fonte da aplicação não precisa ser modificado. Além disso, um mesmo dispositivo pode ser enxergado de formas diferentes dependendo da aplicação, uma vez que as suas capacidades estão especificadas em cada plugin. Como exemplo, um teclado convencional poderia ser reconhecido pela aplicação como um dispositivo da classe Keyboard ou como dois dispositivos da classe Joystick, dependendo da implementação do plugin utilizado. Este exemplo é melhor ilustrado pela Figura 3.5. 28 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA Figura 3.5. Teclado interpretado como dois joysticks. CIDA também dispõe de transparência de conectividade, pois os dispositivos podem estar conectados a partir de computadores diferentes, e não diretamente acessados pelo PC que executa a aplicação, como no caso de uso padrão. Isto pode ser feito através da plataforma sem que o código fonte precise ser modificado ou recompilado. Em ambientes complexos de VR essa característica é bastante útil, pois facilita consideravelmente o gerenciamento de dispositivos de entrada, considerando que pode ser necessário o uso de vários computadores para garantir o processamento em tempo real dos dados de entrada. Uma das características de CIDA é que o desenvolvedor não precisa se preocupar com o uso de device drivers específicos para determinados periféricos, pois a plataforma oferece à aplicação uma visão uniforme das capacidades de cada dispositivo. 3.2.2 FERRAMENTAS Como ferramentas para construção de aplicações de AR, podem ser utilizadas bibliotecas já consolidadas de acesso direto ao pipeline gráfico, como OpenGL, a engines de renderização que podem explorar abstrações de APIs gráficas, entre eles o OGRE. Para a manipulação de marcadores e gerenciamento de posições e orientações, pode-se incluir também neste ferramental o ARToolKit. Existe também uma versão do mesmo integrado com o engine gráfico OGRE, chamada OgreAR. Estas ferramentas serão detalhadas nas seções a seguir. 3.2.2.1 OPENGL O OpenGL é uma API (Application Programming Interface) para desenvolvimento de aplicações gráficas que provê um conjunto de primitivas de renderização eficientes e portáveis [36]. Existem implementações de OpenGL para as mais diversas plataformas, que englobam suporte gráfico 2D e 3D e muitos efeitos que podem ser associados a estes gráficos. OpenGL é implementada na linguagem C, e tem porte para várias linguagens existentes. 3.2.2.2 OGRE O OGRE (Object-oriented Graphics Rendering Engine) é um engine gráfico de código aberto 29 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA que permite a criação de aplicações 3D renderizadas em tempo real [37]. A versão oficial divulgada na página do OGRE oferece suporte para muitos sistemas operacionais, como Windows, Linux e Mac OS. Além da versão oficial, existem projetos paralelos que dedicam esforços para portar o OGRE para as mais diversas plataformas, incluindo FreeBSD e até consoles de jogos como Xbox, Playstation, Playstation 2 e Dreamcast. Existem algumas características presentes no OGRE que podem ser consideradas as principais razões para sua larga utilização. Uma delas é o paradigma orientado a objetos, que contribui para um desenvolvimento mais dinâmico e estruturado das aplicações 3D. O OGRE é constituído de classes que se relacionam através de interfaces bem definidas, e isto favorece a criação de um modelo de biblioteca de alto nível, por oferecer um nível de abstração maior para o usuário. Não há dependências entre os módulos de renderização nativa (OpenGL e DirectX) e as aplicações finais, permitindo uma maior flexibilidade no uso destes módulos, e fortalecendo também a característica de independência de plataforma, pois através de plugins, um novo módulo de renderização pode ser implementado e anexado na aplicação sem nenhuma mudança no código fonte desta. Desta forma, é possível portar o OGRE, e aplicações baseadas nele, para uma vasta gama de ambientes. O OGRE foi concebido para ser um engine gráfico flexível capaz de interagir com ferramentas externas como engines de física e de inteligência artificial. Outra vantagem do OGRE é a utilização de scripts escritos em formato texto que contêm as configurações da aplicação. A partir destes scripts, o usuário pode modificar configurações como texturas de objetos, materiais utilizados e até o modo de renderização dos shaders [38], sem a necessidade de recompilar o programa. Ao se utilizar no OGRE o CEGUI (Crazy Eddie's GUI System), que é uma biblioteca que provê a construção de janelas e componentes gráficos, o desenvolvedor não perde tempo em implementar um subsistema para criar uma interface com o usuário, agilizando o desenvolvimento da aplicação final. Outra vantagem da utilização do OGRE como plataforma de desenvolvimento de aplicações gráficas é a fácil integração com ferramentas de modelagem 3D, que acelera a criação de cenários e malhas exibidos pelo programa. Dentre as ferramentas que podem exportar recursos utilizados pelo OGRE estão o 3D Studio MAX, Blender, Maya, MilkShape3D, Wings3D e SOFTIMAGE|XSI. Juntamente com as malhas produzidas pela ferramenta de modelagem, podem ser também exportados quaisquer tipos de animações baseadas em bones (Skeletal Animations) e materiais utilizados nos modelos. Para conseguir essa integração, a plataforma utiliza plugins de exportação especializados para cada ferramenta de modelagem citada. Os plugins geram um formato intermediário descrito em 30 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA XML, que posteriormente é transformado no formato proprietário do OGRE. 3.2.2.3 ARTOOLKIT O ARToolkit é uma biblioteca criada para dar suporte ao reconhecimento de padrões em imagens, um dos passos do pipeline de AR. Maiores detalhes sobre o pipeline de AR em [39]. Ele é utilizado amplamente em aplicações de AR e possui componentes para criação de marcadores, captura de vídeo, detecção de padrões e renderização de objetos. Os padrões detectados pelo ARToolKit são marcadores fiduciais, compostos por um quadrado de borda preta com algum símbolo na parte interna, como ilustrado na Figura 3.6. Figura 3.6. Marcador fiducial utilizado pelo ARToolKit. Além disso, os marcadores devem ser planos e monocromáticos para que sejam detectados pela biblioteca. No momento em que um destes marcadores é identificado são extraídas algumas de suas características (como orientação e posição em relação à câmera) para que possam ser utilizadas nas aplicações. É oferecido um suporte adicional para aplicações que sobrepõem os marcadores com objetos virtuais, através de um wrapper para a biblioteca OpenGL, e do suporte à visualização de objetos em VRML (Virtual Reality Modeling Language). O ARToolkit é uma biblioteca portável que funciona tanto no Windows quanto em algumas implementações do UNIX, o que torna mais flexível a escolha do sistema operacional por parte do usuário. 3.2.2.4 OGREAR A biblioteca OgreAR é uma das contribuições deste trabalho e foi desenvolvida para prover uma interconexão entre aplicações baseadas no engine OGRE e elementos de AR, como aquisição de vídeo em tempo real e detecção de marcadores [40]. Esta biblioteca oferece uma interface para a utilização de recursos necessários às aplicações de AR, explorando as 31 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA vantagens de um componente de abstração de alto nível, tais como: facilidade de uso, rapidez no desenvolvimento e aumento da legibilidade do código. O OgreAR também foi projetado para deixar as aplicações portáveis, pois ele não depende das bibliotecas utilizadas para prover as funcionalidades de AR. A Figura 3.7 ilustra a arquitetura da biblioteca e a interface entre seus componentes. A detecção de padrões no OgreAR é independente de biblioteca de detecção de marcadores (ARToolkit, ARToolKitPlus, MXRToolkit, etc.), devido à criação de um nível de abstração na detecção de marcadores a partir da interface PatternDetector que o usuário pode implementar baseado em qualquer técnica de reconhecimento de padrões, desde que este esteja encapsulado em uma classe que derive desta interface. A biblioteca possui uma implementação padrão para detecção de marcadores baseados em templates (utilizando ARToolKit, com o ARToolkitAdapter) e de marcadores baseados em identificadores (utilizando ARToolKitPlus, com o ARToolkitPlusAdapter). Além destes PatternDetectors, a biblioteca possui ainda um detector de padrões nulo, que é útil para testes somente com captura de câmera sem detecção de padrões. A captura de imagens também é abstraída pela interface FrameGrabber, que pode ser implementada através de qualquer biblioteca de acesso a câmeras, como a DSVideoLib ou o próprio SDK (Software Development Kit) da câmera em questão. Figura 3.7. Arquitetura do OgreAR. Um FrameListener, que é um elemento básico das aplicações baseadas no OGRE, faz a captura e a exibição das imagens sem a intervenção do usuário, e pode ser ativado apenas adicionando o ARFrameListener na aplicação. O ARFrameListener deve ser 32 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA associado a um PatternDetector, que pode ser modificado pelo usuário em qualquer ponto da execução do programa. A detecção de padrões do OgreAR é baseada em eventos, da mesma forma que o sistema de interação do OGRE. Para que seja possível receber estes eventos e manipular os dados provenientes dos marcadores, o usuário deve implementar uma interface chamada DetectionListener. Ela tem apenas um método (itemDetected) que usa como parâmetro um componente do tipo AREvent. Este serve para agregar características como posição, orientação e informações de identificação dos marcadores detectados. 3.3 DESENVOLVIMENTO NA PLATAFORMA POCKET PC O desenvolvimento de aplicações de AR para dispositivos embarcados vem despertando bastante interesse, devido ao aumento da capacidade de processamento dos handhelds e smartphones lançados no mercado nos últimos anos, aliado ao fato de tais dispositivos serem compactos e móveis. Estas características fazem com que novas modalidades de aplicações de AR possam ser exploradas, aproveitando as vantagens oferecidas por tais sistemas. A plataforma Pocket PC vem sendo alvo de algumas experiências em AR. O ARToolKit foi portado para funcionar nesta plataforma e algumas otimizações foram implementadas para que a taxa de quadros fosse a maior possível [41]. Foi criada uma nova biblioteca, o ARToolKitPlus, baseada no ARToolKit, para melhor explorar os recursos oferecidos pelo Pocket PC [42]. Na Figura 3.8 são mostradas algumas aplicações que foram construídas utilizando o ARToolKitPlus. Figura 3.8. Aplicações de AR usando o ARToolKitPlus. Com relação a bibliotecas de renderização 3D para a plataforma Pocket PC, a mais popular para essa finalidade é o OpenGL ES, uma versão limitada do OpenGL direcionada para sistemas embarcados [43], [44]. Existem basicamente duas versões sendo desenvolvidas em paralelo: a versão 1.x, projetada para trabalhar com hardwares de função fixa, e a versão 2.x, especificada para hardwares programáveis. Entretanto, a maioria dos sistemas operacionais não possui uma API de OpenGL ES que explore aceleração 3D feita por hardware. Espera-se que esta situação mude com o lançamento de vários dispositivos móveis 33 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA com GPU integrada. Tanto OpenGL quanto OpenGL ES provêem uma programação de baixo nível, o que diminui a produtividade do desenvolvedor. Outra solução gráfica 3D bastante usada por desenvolvedores para dispositivos móveis é o Klimt, que se propõe a prover uma interface similar a de OpenGL, cobrindo algumas das funcionalidades não suportadas por OpenGL ES [45]. O Klimt também contém algumas otimizações para os sistemas Pocket PC. A versão disponível é de código aberto e usa um mecanismo de renderização próprio. Devido à similaridade com OpenGL, o nível de programação é também muito baixo. Especificamente para a plataforma Pocket PC, o sistema operacional Windows Mobile 5.0 suporta Direct3D Mobile, que é baseado no Direct3D 8 para desktops [46]. Quando combinado com o .NET Compact Framework, pode ser utilizado em modo gerenciado, provendo um desenvolvimento seguro e fácil. Por outro lado, o nível de abstração é quase o mesmo de OpenGL e OpenGL ES. Em relação ao desenvolvimento em Java, existe uma API para renderização 3D chamada M3G (Mobile 3D Graphics API for J2ME) [47]. Ela é uma biblioteca gerenciada orientada a objetos que possui dois modos de operação diferentes: o immediate mode, que usa acesso de baixo nível semelhante ao de OpenGL e OpenGL ES, e o retained mode, que usa um grafo de cena, uma estrutura de mais alto nível para renderização 3D que também é utilizada no OGRE, tornando o processo de codificação muito mais intuitivo. A desvantagem das aplicações Java é o baixo desempenho, que causa uma queda na taxa de quadros. A existência de um engine gráfico aberto de alto nível para a plataforma Pocket PC seria extremamente útil para a criação de aplicações de AR. Devido a isso, como contribuição deste trabalho, foi portada a biblioteca gráfica OGRE para o sistema operacional embarcado em questão, a qual é apresentada na próxima subseção. 3.3.1 OGRE NO POCKET PC Com as diversas vantagens de implementação para Pocket PC usando o OGRE, uma versão foi portada para essa plataforma como contribuição deste trabalho [48]. A versão do OGRE portada foi baseada na 1.1.0 alpha (Dagon) do código fonte oficial do OGRE. A ferramenta de desenvolvimento utilizada para o projeto foi o Microsoft Visual Studio .NET 2005 Professional Edition IDE (versão 8.0.50727.42 RTM.050727-4200). A primeira tarefa realizada para disponibilizar o OGRE para a plataforma Pocket PC foi portar todas as dependências do OGRE que não possuíam uma versão funcional para a mesma, e estender algumas bibliotecas que suportavam o sistema operacional para fornecer as funcionalidades necessárias, como, por exemplo, uma manipulação de arquivos mais completa. Estas dependências são bibliotecas utilizadas pelo engine para tarefas específicas, 34 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA tais como carregamento de texturas e gerenciamento de arquivos. O segundo passo consistiu em implementar um RenderSystem usando uma API gráfica disponível para Pocket PC, neste caso OpenGL ES. Após isso, um PlatformManager para o sistema operacional teve que ser escrito. Com o objetivo de almejar melhor desempenho, o OGRE foi adaptado para trabalhar com rotinas matemáticas de ponto fixo, visto que os dispositivos móveis não possuem uma FPU (Floating Point Unit) e todas as operações matemáticas baseadas em hardware são realizadas usando ponto fixo. Finalmente, foi implementado outro RenderSystem usando o Klimt, numa tentativa de obter uma taxa de quadros maior. A Figura 3.9 ilustra alguns screenshots das aplicações de exemplo SkyBox e SkeletalAnimation, que fazem parte da distribuição oficial do OGRE, rodando no Pocket PC. Os exemplos usaram as implementações do RenderSystem baseadas no OpenGL ES e no Klimt. O benchmark da biblioteca foi feito usando o demo SkeletalAnimation. As taxas de quadros obtidas no Pocket PC foram comparadas com o desempenho da versão desktop. Os valores foram obtidos de cenas com um número variado de triângulos, e diferentes versões do RenderSystem foram utilizadas (OpenGL e Klimt no desktop, OpenGL ES e Klimt no dispositivo móvel). A taxa de quadros do demo usando OpenGL ES no Pocket PC variou entre 1,0 e 2,8 fps (frames por segundo), o que é muito baixo para uma aplicação gráfica 3D em tempo real. A principal razão para este resultado fraco é o fato que a renderização da biblioteca disponível para a plataforma Pocket PC é emulada por software, enquanto que no desktop a GPU é usada. O resultado obtido usando o RenderSystem baseado no Klimt, que variou entre 6,5 e 13,4 fps, é bem melhor que o do OpenGL ES, devido a otimizações presentes na biblioteca gráfica. Entretanto, deixa muito a desejar quando comparada com a taxa de quadros obtida nas configurações desktop, que variou entre 239,0 e 265,8 fps utilizando o RenderSystem baseado em OpenGL e entre 81,5 e 195,8 fps utilizando o RenderSystem baseado no Klimt. 35 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA A b c Figura 3.9. Screenshots de demos do OGRE no Pocket PC: a) SkeletalAnimation usando o RenderSystem baseado em OpenGL ES; b) SkyBox usando o RenderSystem baseado em OpenGL ES; c) SkeletalAnimation usando o RenderSystem baseado no Klimt. A baixa resolução da tela do dispositivo causou um pouco de aliasing nos objetos renderizados, embora seu aspecto tenha permanecido bastante aceitável. Finalmente, existem algumas funcionalidades da versão desktop do OGRE ausentes no ambiente Pocket PC, como overlays, que deveriam ser desenhados sobre a imagem trazendo informações sobre a cena renderizada, como o número de polígonos renderizados, a taxa de quadros, entre outras. 3.3.2 OPENGL ES O OpenGL ES é uma API completa para renderização de gráficos 2D e 3D para sistemas embarcados, incluindo consoles de jogos, celulares, dispositivos e veículos. Ele consiste de um subconjunto bem definido do OpenGL, criando uma interface de baixo nível poderosa e flexível entre aplicações e hardwares de aceleração gráfica. Foi escolhida por ser royalty-free e possuir implementações diversas em muitas plataformas. O OpenGL ES também inclui perfis para matemática de ponto flutuante e de ponto fixo, além do EGL [49], que é uma especificação para escrever programas portáveis que utilizem sistemas com janelas. As versões 1.X do OpenGL ES funcionam com hardwares que fornecem um pipeline gráfico fixo, suficiente na maioria dos casos. Já as versões 2.X habilitam gráficos 3D totalmente programáveis através de shaders e outras técnicas disponibilizadas pelo hardware. 36 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA 3.3.3 ARTOOLKITPLUS O ARToolKitPlus foi desenvolvido na Universidade de Tecnologia de Graz, na Áustria, e é uma biblioteca de AR open source baseada no ARToolKit, que é descrito em [42]. Ele trata exclusivamente de detecção de marcadores, sem oferecer funções de captura de vídeo ou renderização de objetos 3D. Seu código fonte sofreu várias otimizações, como por exemplo, utilização de aritmética de ponto fixo, com a intenção de gerar aplicações eficientes para dispositivos móveis, que não possuem co-processadores de matemática de ponto flutuante. Os marcadores utilizados nesta biblioteca são similares aos do ARToolKit (com bordas quadradas e pretas), com a diferença que a parte interna do padrão é um identificador codificado, como mostrado na Figura 3.6. Esta codificação permite que o desenvolvedor utilize até 4096 marcadores diferentes. Além do mais, reduz os problemas de detecção de marcadores. O ARToolKitPlus usa uma técnica de threshold adaptativo, que consiste em perceber a alteração na iluminação do ambiente capturado pela câmera, de uma forma que a detecção de marcadores não seja afetada. Esta biblioteca oferece aos desenvolvedores a possibilidade de usar marcadores com uma largura de borda variável. Desta maneira, a largura da borda pode diminuir, para dar mais espaço para a codificação do identificador, de forma que marcadores pequenos possam ser identificados. Outra característica é a capacidade de realizar compensação em imagens de câmeras que geram uma degradação radial de luminância. Este fato ocorre em algumas câmeras, onde imagens capturadas aparecem mais escuras na região das bordas, impedindo a detecção de marcadores localizados nestas áreas. 3.4 DESENVOLVIMENTO NA PLATAFORMA SYMBIAN OS Os dispositivos móveis vêm se popularizando muito nos últimos tempos, com o avanço tanto do hardware que os compõe quanto das APIs desenvolvidas para utilizar este hardware. Existe atualmente uma quantidade cada vez maior de aplicações nas mais diversas áreas para estes tipos de dispositivos. No entanto, há áreas que ainda não foram amplamente exploradas, como a área de AR. Até pouco tempo atrás, não havia hardware que possibilitasse qualquer aplicação relacionada a essa área. Depois que o hardware passou a existir, ainda faltava software para tornar as aplicações possíveis. Recentemente, algumas aplicações muito importantes vêm sendo desenvolvidas e apresentando bons resultados, possibilitando os primeiros passos da AR no mundo móvel. O ARToolKit foi portado para funcionar nesta plataforma, porém o código fonte ainda não foi disponibilizado na Internet [50]. A API do telefone foi utilizada para construir a interface do usuário, controlar o fluxo 37 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA de dados do programa e acessar a câmera. O porte do ARToolKit para Symbian OS foi utilizado como base para a aplicação sendo desenvolvida neste trabalho [50]. O OpenGL ES foi utilizado para realizar a renderização dos elementos 3D que são mostrados ao usuário. Para o desenvolvimento foi utilizada a IDE Metrowerks Codewarrior e o Symbian SDK para esta IDE. Existe também o Symbian SDK para o Visual Studio.NET, que pode ser usado em conjunto com o Visual Studio Express gratuitamente, como alternativa ao Codewarrior, mas a licença não é gratuita. Existem emuladores para auxiliar o desenvolvimento nas duas IDEs. O procedimento para o desenvolvimento da aplicação foi iniciado criando uma pequena aplicação para manipular a câmera do celular, baseada no exemplo CameraApp que integra o SDK do Symbian OS. As bibliotecas do ARToolKit para Symbian OS e do OpenGL ES foram adicionadas ao projeto. Logo no construtor, criou-se uma instância do ARToolKit e carregou-se os marcadores a serem utilizados usando o método correspondente (loadPatt). Nesta aplicação, o marcador utilizado foi o Hiro (o mesmo da versão desktop). A câmera foi criada para realizar a captura de frames numa resolução de 176x140 pixels. A cada frame capturado pela câmera, a imagem deve ser convertida para o formato requerido pelo ARToolKit (os formatos de um e de outro são diferentes) e posteriormente os métodos de detecção são acionados. 3.4.1 DIFICULDADES ENCONTRADAS Como visto em [51] pode-se enumerar as dificuldades encontradas ao longo da adaptação do porte do ARToolKit para a plataforma Symbian OS. Estas dificuldades foram classificadas para facilitar a compreensão das mesmas. Na seqüência deste texto dissecam-se as problemáticas encontradas. 3.4.1.1 API ARTOOLKIT PORTADA PARA SYMBIAN OS Quanto ao porte do ARToolKit para a plataforma Symbian OS, as dificuldades principais são relacionadas com suporte e documentação pobres sobre o assunto, a carência de uma aplicação exemplo de código aberto, a baixa confiabilidade na detecção de marcadores da biblioteca, a calibragem da câmera e o desenvolvimento da interface com o ARToolKit. 3.4.1.1.1 SUPORTE E DOCUMENTAÇÃO FRACOS É, certamente, o fator que mais concorre para retardar a evolução do desenvolvimento do projeto desde o princípio. A versão portada para Symbian OS encontra-se disponível com o código fonte, mas isto não é o bastante para torná-la usável. Os responsáveis por essa migração não apresentam 38 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA roteiro para auxiliar a construção de aplicações baseadas na API, tampouco respondem quaisquer tentativas de contato. Surgiu, assim, a necessidade de encontrar uma aplicação de exemplo com código aberto que apresentasse a maneira apropriada de integrar aplicação e API. 3.4.1.1.2 CARÊNCIA DE APLICAÇÃO DE CÓDIGO ABERTO Após exaustivas buscas, constatou-se a enorme carência de aplicações baseadas na API migrada. A bem da verdade, apenas uma foi encontrada, mas não contava com o código fonte para nortear o desenvolvimento. Tratava-se de uma aplicação de exemplo desenvolvida em [52]. Realizou-se uma busca exaustiva antes do fechamento deste trabalho e não foi possível localizá-la novamente, levando a crer que seus desenvolvedores resolveram ocultar qualquer tipo de artefato ou meio que forneça, a outros interessados, condições de reproduzir seus passos. 3.4.1.1.3 BAIXA CONFIABILIDADE NA DETECÇÃO Apesar de haver-se determinado experimentalmente que a resolução apropriada para a correta detecção de marcadores era 160x120 pixels, essa configuração acarretava abrupto encerramento da aplicação quando o evento de detecção era disparado. Como medida paliativa, adotou-se a resolução de 170x128 pixels, obtendo-se eficácia, mas não eficiência. A aplicação apresentava o que se pode chamar de zonas de detecção, averiguando-se a primeira quando o aparelho distava entre 10 cm e 20 cm do marcador sem zoom, enquanto a segunda estendia-se desde cerca de 21 cm até 40 cm com zoom de fator multiplicativo igual a 2 (dois). A existência de zonas disjuntas de detecção bastaria para qualificar esse processo como pouco confiável, mas é preciso lembrar que ao reconhecer um marcador, a aplicação exibe seu identificador e diversas vezes esta informação estava incorreta, variando consideravelmente a confiabilidade da detecção. 3.4.1.1.4 CALIBRAGEM DA CÂMERA Visando alcançar um nível aceitável de confiabilidade para o reconhecimento de marcadores decidiu-se calibrar a câmera que até então carregava as configurações padrão a partir do arquivo camera_para.dat. Para tal precisou-se de um software para simular a câmera do celular como uma webcam, cuja comunicação com o PC fazia-se via Bluetooth. A partir de então a calibragem seguiu exatamente o decurso definido em [53]. Apesar de ser um processo lento e extenso nenhuma grande dificuldade foi enfrentada, obtendo-se o 39 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA arquivo de configuração em cerca de uma hora. Os testes realizados em seguida comparando o funcionamento do ARToolKit na plataforma Symbian OS e na plataforma PC, tanto com o novo arquivo quanto com o antigo, demonstraram que, com a mudança, os marcadores tinham a confiabilidade de sua detecção pouco alterada. Com os resultados obtidos através dessa abordagem, decidiu-se abandonar tal idéia e concentrar os esforços mais uma vez no problema do uso da resolução correta para o reconhecimento dos marcadores, adotando novamente o padrão de captura de 160x120 pixels. 3.4.1.1.5 INTERFACE COM O ARTOOLKIT A chamada a métodos do ARToolKit constituiu-se numa grande dificuldade durante um longo período da evolução do projeto. Pelo fato de o código fonte estar disponível foi possível depurá-lo em busca de uma solução e ao final das investigações foram encontradas algumas soluções, dentre essas cita-se uma desaconselhável que é inserir todo o conteúdo da biblioteca no código de uma classe do projeto. Atualmente a aplicação encontra-se estável e o código está livre de tais técnicas de programação não recomendáveis. Tais subterfúgios foram eliminados graças às apurações realizadas na busca de soluções para outras dificuldades explicadas adiante. Os problemas com o ambiente de desenvolvimento, uma vez resolvidos, permitiram à aplicação, retomar sua elegância original. 3.4.1.2 AMBIENTE DE DESENVOLVIMENTO 3.4.1.2.1 EMULADOR Utilizando o emulador distribuído com a SDK do Symbian OS v7.0s notou-se que certos comportamentos esperados dele diferem daqueles aferidos, ocasionando falta de clareza, consistência e confiabilidade em vários testes e na depuração de código ao longo do desenvolvimento. Tais aspectos são detalhados a seguir. 3.4.1.2.2 CONFIGURAÇÕES Durante o progresso do projeto, o emulador foi utilizado, por longo tempo, com suas configurações iniciais. A partir do instante em que os resultados diferiram substancialmente dependendo da aplicação ser executada no emulador (êxito na detecção) ou no dispositivo (interrupção abrupta da aplicação) foi que se evidenciou a necessidade de determinar quais configurações estavam incorretas e/ou imprecisas. 40 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA A leitura de [54] conduziu a investigação do problema, esclarecendo as dúvidas a respeito da finalidade intrínseca de cada configuração. A partir de então, iniciou-se a busca pelo(s) ajuste(s) necessário(s). Analisando o arquivo epoc.ini, presente na sub-pasta do Symbian OS no PC, descobriu-se que o decremento paulatino no valor de MegabytesOfFreeMemory -uma das configurações disponíveis nesse arquivo originalmente valorada em 16 (dezesseis)- induzia o emulador a comportar-se de maneira similar ao dispositivo justamente quando, em ambos, a quantidade de memória disponível convergia. 3.4.1.2.3 CAMINHOS DE DIRETÓRIOS E NOMES DE ARQUIVOS Conforme exposto em [55], no Symbian OS, arquivos são identificados por uma especificação que consiste de: unidade do dispositivo (C:, D:, E:, etc.); um caminho contendo cada um dos diretórios intermediários, separados entre si pelo símbolo de barra invertida (‘\’); seu nome e, opcionalmente, uma extensão separada dele pelo símbolo de ponto (‘.’). Há duas considerações importantes mencionadas nesta mesma referência. A primeira diz respeito ao tamanho máximo de 256 caracteres para a especificação de um arquivo, cujo único componente de tamanho e formato fixos é a unidade do dispositivo. A segunda concerne à utilização de caracteres maiúsculos e minúsculos, pois é mencionado que todas as operações sobre nomes são case-insensitivity, ou seja, independem do formato dos caracteres usados. Tais restrições foram consideradas e, apesar disto, enfrentaram-se problemas ligados à maneira como as especificações haviam sido formadas durante as tentativas de acesso a determinados arquivos. Descobriu-se a impossibilidade de usar o caractere do tipo espaço, apesar de ser aceito na composição de diretórios e de arquivos, nenhum deles que contivesse espaço em seu nome pôde ser carregado, fazendo a aplicação apresentar erros ou mesmo encerrar abruptamente. Ademais, contrariando a informação da referência, surgiu uma dificuldade com o uso de letras maiúsculas e minúsculas, pois quando diz respeito à unidade do dispositivo, deve-se usar letra maiúscula obrigatoriamente. Na verdade, ao tentar carregar um arquivo cuja especificação contenha letra minúscula o telefone não indicará erro, enquanto no emulador o arquivo é carregado normalmente, ou seja, apenas neste é que se percebe a característica de case-insensitivity. 3.4.1.2.4 FORMATO DE PONTO FLUTUANTE Uma inconsistência encontrada durante o processo de desenvolvimento, que demandou bastante esforço e tempo para compreender e solucioná-lo envolve o modo do dispositivo e 41 DESENVOLVIMENTO MULTIPLATAFORMA DE APLICAÇÕES DE REALIDADE VIRTUAL E REALIDADE AUMENTADA do emulador interpretarem o formato de ponto flutuante. No emulador, ao tentar carregar os parâmetros de câmera o êxito foi incontestável, enquanto no dispositivo os valores carregados eram sempre iguais a zero quando se tratavam de informações no formato de ponto flutuante. Após minuciosa investigação chegou-se à conclusão de que tal comportamento deviase às limitações do Symbian OS no processamento de ponto flutuante, como também foi visto posteriormente durante as tentativas de uso da projeção ortográfica através do OpenGL ES. Ficando claro que o emulador não reflete este comportamento de maneira fiel. Após a tentativa de salvar tais valores usando o emulador, que resultou num novo arquivo com o mesmo problema, a solução foi criar uma estrutura de dados na aplicação que continha às mesmas informações encontradas no arquivo de parâmetros da câmera, indicando diretamente no código seus valores com o formato de ponto flutuante aceito pelo Symbian OS. Ao fim da execução do programa salvaram-se tais configurações num novo arquivo e a partir de então foi possível carregar os parâmetros da câmera corretamente. 3.5 CONSIDERAÇÕES FINAIS O desenvolvimento de aplicações de AR está sendo amplamente difundido em diferentes plataformas como desktops, Pocket PCs e também telefones celulares com sistema operacional Symbian OS. Esta seção apresentou algumas experiências realizadas para ampliar as possibilidades de desenvolvimento destas aplicações, bem como criar novas alternativas. Uma das principais motivações, que levou ao desenvolvimento do OgreAR e do porte do OGRE para o Pocket PC, foi a possibilidade de desenvolver aplicações utilizando um engine gráfico de alta abstração, o que favorece a implementação, bem como a possibilidade de implementar aplicações que funcionarão em diferentes plataformas. Cabe ressaltar que o desenvolvimento para o Symbian OS ainda é um tópico em aberto, porém avanços têm sido obtidos no sentido de portar o ARToolKit para esta plataforma. 42 DESCRIÇÃO DO MODELO A2 CAPÍTULO 4 DESCRIÇÃO DO MODELO A2 4.1 INTRODUÇÃO Este capítulo trata do modelo de referência A2, criado para possibilitar cenários de computação pervasiva, utilizando AN e múltiplos dispositivos. Este modelo favorece tanto a administração da rede dos serviços, por adotar uma tecnologia nova com possibilidade de auto-gerenciamento [56] (AN), quanto o desenvolvimento de serviços e clientes multiplataformas, por prover bibliotecas e frameworks juntamente com o modelo de implementação de serviços. Esse capítulo irá abordar redes heterogêneas, uma porta para computação ubíqua, consolidar alguns conceitos de AN, e por fim, detalhar o modelo A2. 4.2 REDES HETEROGÊNEAS Recentemente, vem aumentando a demanda por computadores portáteis, à medida que também aumenta a capacidade de processamento destes dispositivos. Estes normalmente são utilizados para organização pessoal e entretenimento. A tendência de miniaturizar dispositivos e agrupar funcionalidades que antes eram presentes em aparelhos diversos, tais como tocadores de mídia (áudio e vídeo), compartilhamento de arquivos, telefones, PDAs com acesso à Internet, entre outros, fez com que aparelhos celulares e dispositivos multifuncionais ganhassem mercado e oferecessem intercomunicação para acesso a serviços e a outros dispositivos através de redes diversas. Juntamente com estes dispositivos, nota-se a crescente utilização de redes móveis, sejam estas ad-hoc ou estruturadas, como IEEE 802.15.1 (Bluetooth), a família IEEE 802.11 (WiFi), e GPRS (EDGE)/WCDMA (utilizados nas redes celulares 3G), formando PANs, WLANs e até WANs, respectivamente. A intercomunicação destas redes normalmente é feita através de gateways de operadoras, que integram tais redes, chamadas redes heterogêneas, por se tratarem de redes que utilizam protocolos, alcances e objetivos diferentes. Muitos serviços vêm sendo oferecidos através da Internet, ou das próprias operadoras de acesso à rede, com conteúdo específico para cada tipo de dispositivo e/ou rede. A integração destes serviços através de uma tecnologia de multi-acesso tornaria otimizada a construção e implementação de serviços para quaisquer dispositivos. Com o objetivo de tornar transparente a atribuição de políticas de acesso e oferta de 43 DESCRIÇÃO DO MODELO A2 serviços, além de muitas outras funcionalidades que envolvem desde roteamento de redes heterogêneas à escolha da melhor rede em dispositivos com multi-acesso e adaptação de conteúdo em tempo real, foi proposto o conceito de Redes de Ambiente ou AN, que será melhor descrito na Seção 4.3. 4.3 REDES DE AMBIENTE AN reúne muitos conceitos da área de Redes de Computadores [57], que têm sido validados através de soluções técnicas desenvolvidas por provas de conceitos [58]. Como o modelo A2 é uma destas provas de conceito, ele tem algumas características relacionadas a áreas que estão sendo estudadas para oferecer uma arquitetura flexível e integrada ao projeto AN. Estas áreas são as redes multi-acesso, adaptação de conteúdo, composição de redes e gerenciamento baseado em políticas. A Internet foi projetada para interligar dispositivos fixos utilizando enlaces cabeados, porém o aumento do uso de dispositivos móveis e a crescente popularização das redes sem fio levaram até as redes heterogêneas com diferentes soluções de acesso. Estas tecnologias caracterizadas pela variação das condições do enlace, e por serem utilizadas por dispositivos com diferentes capacidades de processamento e exibição de conteúdo afetam tanto a infraestrutura de rede quanto os serviços oferecidos, além de introduzir novos desafios para serem resolvidos [60]. Por outro lado, as tecnologias sem fio permitem que os serviços sejam amplamente ofertados, o que justifica a utilização de redes sem fio no projeto A2, tais como Bluetooth e WLANs. Para realizar um serviço capaz de receber múltiplos tipos de conexão com dispositivos diversos, a adaptação de mídia é imprescindível para permitir que o conteúdo seja apresentado de forma otimizada e correta em todas as classes de dispositivos móveis. Existem alternativas diferentes de soluções para adaptação de conteúdo, algumas delas serão ilustradas a seguir. A aplicação pode detectar mudanças nas características da rede e/ou capacidades do dispositivo e requisitar uma adaptação de conteúdo ao servidor da aplicação, ou o terminal pode prover informação sobre o tipo de acesso à rede e do dispositivo, tanto para a aplicação local quanto para o servidor. Uma terceira abordagem é deixar a rede de acesso prover informação para o servidor da aplicação e/ou para o dispositivo a respeito das características da rede [60]. Os clientes dos serviços do A2 são responsáveis pela detecção das capacidades da rede e do dispositivo onde eles estão sendo executados. Desta forma, estas informações são repassadas ao servidor de aplicação para que este possa adaptar a mídia de forma correta. A composição de redes é um conceito chave no projeto AN, que se destina a habilitar um plano de controle para integrar e compartilhar funções e serviços entre redes. A 44 DESCRIÇÃO DO MODELO A2 composição pode ser vista como um mecanismo automático de negociação de roaming e/ou SLAs (Service Level Agreements), que hoje são feitos manualmente. No projeto A2, é aplicado o conceito de composição de redes, de forma que os usuários de uma rede podem acessar serviços de outras redes de forma transparente, melhorando a eficiência das redes e dos serviços [61]. O gerenciamento baseado em políticas (PBM - Police-Based Management) é utilizado para resolver o problema de administração de infra-estrutura de redes complexas de uma maneira automática. Políticas podem ser utilizadas, por exemplo, para gerenciar e controlar o acesso a recursos de redes através de regras e decisões descritas de uma forma abstrata e de alto nível. Como o A2 foi desenvolvido utilizando o arcabouço do protótipo X-PBMAN (Policy-Based Management for Ambient Networks), ele utiliza a implementação do modelo de infra-estrutura de gerenciamento de políticas P2P (Peer-to-Peer) P4MI (Peer-to-Peer Policy Management Infrastructure) [62], uma versão aprimorada do arcabouço de PBM desenvolvido pela IETF (Internet Engineering Task Force) [63]. O X-PBMAN é um projeto desenvolvido pelo GPRT (Grupo de Pesquisa em Redes e Telecomunicações) do Centro de Informática da UFPE, e sua implementação utiliza como base o middleware X-PEER [64], que lida com os conceitos de distribuição de dados, replicação e comunicação P2P. Através dele os serviços podem se comunicar com a interface de gerenciamento de políticas e realizar composições, além de prover uma base de dados para serviços específicos. Tanto o X-PEER quanto o X-PBMAN foram implementados na linguagem Java, visando uma heterogeneidade de sistemas onde possam ser executadas as composições de redes. Outro conceito que faz parte do projeto AN é o de roteamento transparente entre redes heterogêneas, que é bastante útil quando se têm dispositivos de diversas classes que utilizam múltiplas redes de acesso, como é o objetivo do A2. 4.4 O MODELO A2 O modelo A2, apresentado no diagrama da Figura 4.1, é composto pelas redes de acesso (na base do diagrama), que são integradas pela AN (Redes de Ambiente), na camada imediatamente acima. Ainda fazendo parte da AN, a camada de gerenciamento de políticas para acesso a serviços pode ser representada pelo PBMAN, onde um PEP (Policy Enforcement Point) é utilizado. Para realizar composições e disponibilizar serviços, estes se comunicam com o PBMAN, e no caso dos serviços implementados em C, estes fazem uso da camada XCSERVICES para ter acesso ao PBMAN que é escrito em Java e utiliza em sua base o X-PEER. Mais acima, estão as plataformas de desenvolvimento, onde estão representadas algumas bibliotecas já existentes e outras implementadas para prover um desenvolvimento 45 DESCRIÇÃO DO MODELO A2 mais rápido e unificado de interfaces. Estas interfaces serão construídas para que os clientes consigam usufruir melhor dos serviços prestados pela AN. Acima das plataformas de desenvolvimento estão os dispositivos móveis que podem ser utilizados para a execução dos serviços e visualização de dados, bem como o ambiente aumentado, que é composto pelo mundo real, marcadores e objetos virtuais, sejam estes 2D ou 3D. Figura 4.1. Diagrama do modelo A2. 4.5 PROTOCOLO DE INTERCOMUNICAÇÃO ENTRE SERVIÇOS E AN XCSERVICES Para integrar os serviços disponíveis com o sistema de gerenciamento de políticas utilizado pela AN, juntamente com o processo de composição, foi desenvolvido o XCSERVICES, uma camada de infra-estrutura de comunicação para se comunicar com a interface do X-PEER. 46 DESCRIÇÃO DO MODELO A2 Esta camada tem como objetivo deixar que as aplicações escritas em C/C++ tenham acesso às funções do X-PEER, e possam integrar redes e requisitar serviços de forma transparente, utilizando apenas uma interface cliente para o middleware Java. Além da interface cliente também foi implementado um proxy, que é utilizado para intermediar as conexões entre o middleware e os servidores de aplicação, que compõem os serviços. O proxy, implementado em linguagem Java, é utilizado para facilitar a integração e a comunicação entre as aplicações que fazem uso da biblioteca XCSERVICES e o PBMAN. Este recebe as requisições enviadas pelos clientes e as repassa à AN. Como o protocolo de comunicação usado pelo PBMAN é derivado do que é usado no middleware X-PEER, ele engloba muitas funcionalidades não utilizadas nos serviços oferecidos pelo A2. Através do proxy, o protocolo que deve ser usado pelo cliente torna-se mais simples, diminuindo a possibilidade de erros de sincronização, já que a maior parte da complexidade fica a cargo do Proxy. 4.6 SERVIÇOS Os serviços são aplicações que podem ser oferecidas pela própria rede do cliente ou por outras redes externas. No caso de redes externas, o acesso a estes é feito através de uma composição de redes que, através de políticas, pode permitir a utilização do serviço ou impor algumas restrições. Os serviços podem ser distribuídos em hosts e redes diferentes, dependendo da quantidade de processamento e largura de banda utilizada. Os hosts utilizados para executar os serviços são denominados servidores de backend. A arquitetura do A2 utiliza a distribuição do processamento de serviços utilizando servidores de backend, para que dispositivos com capacidade de processamento reduzida e que necessitam de um baixo consumo de energia possam ser utilizados apenas para acesso aos dados e visualização. Este fato permite que os serviços sejam realizados em tempo real, já que alguns processamentos seriam inviáveis de serem feitos localmente, em tempo hábil, para sua exibição sem a percepção de falha pelo usuário. Normalmente serviços multimídia exigem um maior processamento para codificação e decodificação, tanto de imagem como de som, e adaptação de conteúdo. Para tornar a execução com tempo uniforme em qualquer dispositivo, o padrão adotado foi que todo processamento e adaptação de conteúdo fosse realizado pelo servidor de backend, que é informado sobre as características do dispositivo através de políticas aplicadas no momento da composição com a rede e do registro no serviço. Serviços mais complexos podem exigir uma rede completa para distribuição de processamento e/ou dados para acesso otimizado. Neste caso, um host fica responsável pela 47 DESCRIÇÃO DO MODELO A2 conexão dos usuários e redirecionamento para outros servidores, funcionando como uma porta de entrada para o serviço. Outros computadores podem ser utilizados para tarefas específicas como será ilustrado na Seção 5.3.2 do capítulo Estudo de Caso. Alguns serviços podem não envolver processamento de dados, nem prover informação específica ao usuário. Como exemplo destes serviços pode-se citar um possível serviço de roteamento Bluetooth. Este pode prover acesso de um dispositivo Bluetooth à rede local, servindo de gateway para este dispositivo. Além do serviço de gateway algumas simplificações nos dados transmitidos e no protocolo podem ser feitas para deixar a aplicação nativa do dispositivo mais simples e facilitar a implementação de novos serviços, utilizando esta nova camada de abstração de rede. Alguns exemplos de serviços que foram implementados neste trabalho serão detalhados no próximo capítulo. 4.7 FRAMEWORKS DE DESENVOLVIMENTO PARA CLASSES DE DISPOSITIVOS Um dos objetivos deste trabalho é prover uma interface baseada em AR para serviços utilizando dispositivos móveis, capaz de se comunicar com uma AN e usufruir dos seus serviços, levando em conta não só a simplificação nos protocolos de comunicação, mas também na visualização dos dados e exibição, seja qual for o dispositivo móvel. Para isto, cada classe de dispositivo deve ter um framework de desenvolvimento associado. Estes foram construídos com base em ferramentas e bibliotecas descritas no Capítulo 3, algumas implementadas especificamente para o modelo A2. Cada framework proposto é específico para uma plataforma de desenvolvimento, que é caracterizada pela classe de dispositivos que fará uso dele. As classes de dispositivos, inicialmente, escolhidas foram: Mobile Desktop (notebooks, tablets, wearable computers, etc. que utilizem a plataforma Windows), Pocket PC e Smart Phone (que utiliza Windows CE ou Windows Mobile) e Celular (que utiliza Simbian OS). Os frameworks têm uma camada de acesso à AN implementada através da biblioteca XCSERVICES, construída em linguagem C, utilizando recursos de retrocompatibilidade. Apenas a plataforma Celular não utiliza diretamente o XCSERVICES pois a comunicação é feita através de Bluetooth e necessita de um serviço de gateway. Acima da camada de comunicação, a exibição das informações trocadas com os serviços é feita utilizando recursos específicos de cada platafoma. A plataforma Mobile Desktop dispõe de um framework de exibição composto pelas bibliotecas OGRE (para exibição de conteúdo e renderização), OgreAR (para utilização de 48 DESCRIÇÃO DO MODELO A2 AR), e CIDA (para gerenciamento de dispositivos de entrada e hápticos), todos descritos no capítulo de Desenvolvimento Multiplataforma. Para a plataforma Pocket PC, foi feito um porte da biblioteca OGRE, com o objetivo de unificar o desenvolvimento de interfaces tanto para a plataforma Mobile Desktop quanto para a plataforma Pocket PC. Desta forma a exibição é implementada de uma maneira única e o processamento é feito de forma específica, acelerando o desenvolvimento multiplataforma. Esta plataforma também conta com a utilização da biblioteca OgreAR, desenvolvida utilizando o OGRE e o ARToolKitPlus, com otimizações específicas para o Pocket PC. Na plataforma Celular, alguns recursos do sistema operacional Symbian OS foram utilizados para a aquisição de dados e organização da arquitetura. Um porte da biblioteca ARToolKit está sendo implementado para utilizar AR no celular. A exibição fica por conta da biblioteca OpenGL ES, utilizada em alguns sistemas embarcados e consoles de jogos. A comunicação não foi explorada nos serviços da plataforma Celular, pois a comunicação Bluetooth não pôde ser testada junto com o resto do sistema, devido a problemas com o roteamento, que não está disponível ainda na versão corrente da implementação do modelo AN. 4.8 AMBIENTE DE AR O ambiente de AR em questão deve ser composto pelo própio mundo real, podendo ser utilizado em ambientes fechados (indoor) ou abertos (outdoor), dependendo apenas de restrições de iluminação impostas pelas ferramentas de AR. Também baseado nas ferramentas de AR utilizadas, o ambiente AR deve ser composto por alguns marcadores. O formato destes marcadores depende unicamente das ferramentas utilizadas, pois cada uma possui características diferentes, marcadores template-based ou ID-based são usados no ARToolKit e no ARToolKitPlus, respectivamente. Para interagir com o ambiente são utilizadas algumas metáforas de interação baseadas em gestos e interfaces tangíveis. Alguns dispositivos são utilizados para possibilitar a captura de gestos e a interação, como luvas de dados e trackers. A mistura dos elementos virtuais com o mundo real é feita através de um capacete de VR no caso da plataforma Mobile Desktop e da própria tela dos dispositivos, nos casos restantes. Cada serviço pode ter características diferentes e necessitar de alguns recursos especiais, como captura de som, imagem com diversos fluxos de vídeo para ângulos diferentes, entre outros que dependam da observação e/ou captura de eventos do ambiente. Para isso devem ser inseridos mais dispositivos a fim de que estes eventos sejam fielmente capturados e a interação ocorra de forma natural e imersiva. 49 DESCRIÇÃO DO MODELO A2 4.9 CONSIDERAÇÕES FINAIS Foi apresentado neste capítulo o modelo de referência A2, que visa facilitar o desenvolvimento de serviços e aplicações em múltiplas plataformas. Ele utiliza conceitos de AR em suas interfaces e se apoia na tecnologia das AN para prover uma intercomunicação transparente para a oferta de serviços. Também é dada uma breve motivação para a criação de um modelo de referência, baseando-se no conceito de redes heterogêneas e na solução utilizando redes AN. 50 ESTUDO DE CASO: O PROJETO A2 CAPÍTULO 5 ESTUDO DE CASO: O PROJETO A2 5.1 INTRODUÇÃO O presente capítulo valida o modelo de referência A2 através de um estudo de caso onde um museu virtual é utilizado como cenário. São detalhados os dispositivos utilizados no cenário, os serviços fornecidos, as bibliotecas utilizadas por cada dispositivo, compondo os frameworks específicos para desenvolvimento multiplataforma. 5.2 DESCRIÇÃO DOS EQUIPAMENTOS Para que o estudo de caso pudesse retratar plataformas diferentes e utilizar os conceitos de mobilidade e de redes heterogêneas, foram escolhidos alguns equipamentos, nas diversas categorias. Estes equipamentos serão detalhados para cada plataforma. 5.2.1 PLATAFORMAS 5.2.1.1 PLATAFORMA CELULAR Esta plataforma faz uso de um celular Nokia 6600, como visto na Figura 5.1, com processador ARM de 104 MHz, câmera embutida com suporte a gravação em até 176x144 pixels, rodando o Symbian OS v7.0s, Series 60 v2.0 UI. Figura 5.1. Nokia 6600 utilizado no Projeto A2. 5.2.1.2 PLATAFORMA POCKET PC O dispositivo móvel usado para testar as aplicações OGRE foi o PDA Dell Axim X51v. Este possui um processador 624 MHz Intel PXA270 XScale, 64 MB de RAM, 256 MB de ROM e um display LCD com 16 bit color depth e 640x480 pixels. O sistema operacional é o Microsoft Windows Mobile 2005 (versão 5.1.70 build 14402.1.1.0). Também é utilizada uma câmera SD acoplada ao Pocket PC. O modelo da câmera utilizada foi o Spectec SD (Secure Digital) Camera SDC-001A, com resolução de 320x240 pixels e uma taxa de captura de 15 fps (frames por segundo). A configuração final é ilustrada pela Figura 5.2. 51 ESTUDO DE CASO: O PROJETO A2 Figura 5.2. Dell Axim x51v utilizado no Projeto A2. 5.2.1.3 PLATAFORMA MOBILE DESKTOP A plataforma desktop utiliza um computador móvel, que pode ser tanto um notebook, quanto um wearable computer, em conjunto com outros dispositivos de entrada e saída que são listados a seguir: • Luva: Data Glove 5DT, conectada via USB com a plataforma desktop. • Tracker: InterSense InterTrax2, conectado via USB com a plataforma. • Câmera: A4Tech PK635, conectada via USB com a plataforma. • HMD: i-glasses PC/SVGA, onde foi integrada a câmera descrita acima. (ver Figura 2.4) Os equipamentos que compõem a plataforma Mobile Desktop podem ser vistos totalmente integrados na Figura 3.4. 5.3 ESTUDO DE CASO: O MUSEU VIRTUAL O estudo de caso deste trabalho aplica o modelo A2 em um cenário representado por um museu virtual. Neste museu as obras de arte podem ser rotativas, e exposições podem mudar de sala em segundos. As obras de arte podem ser quadros e/ou esculturas, sendo seu conteúdo representado tanto em 2D quanto em 3D. As peças expostas não precisam de sistemas de segurança e irão conter informações nelas mesmas que se tornam disponíveis a um simples gesto do usuário. Estas informações podem variar de textos a vídeos, passando por imagens e áudio, dependendo da informação associada à obra. Além do serviço de visualização da galeria de arte, existem outros serviços disponíveis no museu. O usuário pode, a partir de seu equipamento, conversar com outros usuários que também estão no museu para trocar experiências e indicar obras, participar de entrevistas ou leilões que estejam ocorrendo, ao mesmo tempo, em outras salas do museu. Como todos os artefatos do museu são virtuais, o usuário deve utilizar um sistema construído para integrar o ambiente do museu, e obter um material para auxílio a interação com o ambiente na entrada do museu Este material está contido, neste museu, em um folder, 52 ESTUDO DE CASO: O PROJETO A2 que possui informações sobre as seções de entrevista, leilões, artistas que terão seus trabalhos expostos, e além de tudo os marcadores necessários para interagir com os serviços do museu, que fazem do folder parte essencial da interação. Este material também deve conter uma senha, que vai identificar cada usuário de forma única, em forma de marcador. Este é reconhecido e transformado em um número pelo software do cliente. Uma versão preliminar do folder pode ser vista na Figura 5.3. Figura 5.3. Versão preliminar do folder utilizado no estudo de caso. Ao identificar a senha no folder, o cliente utiliza esta informação para se compor com a rede do museu, onde vai trocar informações e um acordo temporário vai ser criado. Durante o registro do usuário, o cliente envia informações como a plataforma e o protocolo utilizado. Com isto a rede do museu pode inferir o poder de processamento e de visualização do dispositivo, e na ocasião do envio de mídias, serão utilizadas versões otimizadas e adaptadas para um melhor funcionamento específico para o dispositivo em questão. Para compor a AN do museu, foram utilizados hotspots (pontos de rede sem fio IEEE 802.11g) para a conexão de laptops, wearable computers e pocket pcs. Conectados à rede do museu estão servidores responsáveis pela execução de alguns serviços (servidores de backend) e também pela administração da rede (PEPs - Pontos de Imposição de Políticas, nós de borda da AN e o anel de servidores do X-PEER). Devido a restrições de infra-estrutura e espaço físico, algumas tarefas foram condensadas em um único servidor, como o PEP, o nó de borda da AN e o proxy do XCSERVICES. Para a intercomunicação dos clientes e dos serviços foi utilizado o X-PEER, adicionando a ele outra camada de abstração desenvolvida para o estudo de caso, o XCSERVICES. A camada serve para prover compatibilidade de comunicação entre módulos do sistema escritos em Java (X-PEER e PEPs) e os clientes, escritos em C/C++. Cabe ressaltar que os serviços não foram implementados na plataforma Celular, devido às dificuldades encontradas detalhadamente descritas na Seção 3.4. Porém, este fato 53 ESTUDO DE CASO: O PROJETO A2 não invalida a aplicação do modelo A2 nesta plataforma, uma vez que já existem versões do Symbian OS que provêem aceleração gráfica nativa através de OpenGL ES, e que resolvem alguns problemas de segurança encontrados na versão utilizada neste projeto. Um exemplo de aparelho que já possui uma das versões do Symbian com estes recursos disponíveis é o Nokia N93, ilustrado na Figura 5.4. Figura 5.4. Nokia N93. Os equipamentos e o ambiente configurado para a execução dos serviços serão detalhados nas seções a seguir. 5.3.1 SERVIÇO DE VISITAÇÃO A UMA GALERIA DE ARTE Neste serviço, marcadores espalhados pelas instalações do museu indicam onde as obras devem ser exibidas. Podem ser exibidos tanto quadros como esculturas ou obras em terceira dimensão. A interação e o modo de utilização depende da plataforma que o usuário está utilizando para acessar o sistema do museu. Este serviço está disponível na rede do museu a partir da composição do usuário com a rede. Sua utilização não está sujeita a restrições de tempo, pois a galeria estará exposta enquanto o usuário estiver no museu. Caso o usuário esteja utilizando a plataforma Mobile Desktop, o ambiente aumentado será exibido no HMD, que possui uma câmera acoplada, permitindo que o usuário veja sempre o que está à sua frente. Caso um ou mais marcadores estejam na linha de visão da câmera, estes serão detectados e seus códigos identificadores serão requisitados ao serviço de visualização. O serviço, por sua vez, retornará o conteúdo numa resolução maior, caso seja uma imagem 2D, ou uma malha mais detalhada, caso seja um objeto 3D. O resultado desta tarefa pode ser visualizado na Figura 5.5. O conteúdo será armazenado numa cache interna do cliente para que novas requisições para estes objetos não precisem ser feitas novamente. 54 ESTUDO DE CASO: O PROJETO A2 Figura 5.5. Aplicação Mobile Desktop exibindo informação 2D sobre 2 marcadores. Após a exibição dos objetos, as informações sobre eles também podem ser requisitadas a partir de gestos capturados pela luva. No caso do serviço de visualização, o conteúdo adicional vai ser requisitado se o usuário apontar para o quadro com o dedo indicador e abaixá-lo como se fosse um “click”. A partir deste momento a requisição é feita ao servidor que lhe envia um vídeo sobre a obra em questão. Este vídeo será exibido no mesmo espaço pertencente à respectiva obra de arte. O vídeo pode ser parado, conforme a vontade do usuário, através de um outro “click” com a luva, ou se o marcador da obra que estava sendo visualizada sair do campo de vista do usuário, considerando que o mesmo deixou a obra e for visitar outras. Para que o conteúdo adicional seja exibido, apenas o marcador correspondente ao conteúdo deve estar visível, como mostra a Figura 5.6. Figura 5.6. Conteúdo adicional em forma de vídeo sendo exibido na plataforma Mobile Desktop. 55 ESTUDO DE CASO: O PROJETO A2 No caso da plataforma Pocket PC, o dispositivo vai atuar como se fosse uma lupa virtual, portando uma câmera que deve ser apontada para onde o usuário quer visualizar o conteúdo. As obras aparecerão na tela do PDA, compondo um ambiente de AR. Da mesma forma que na versão da plataforma citada anteriormante, serão feitas requisições para a exibição do conteúdo e uma cache mais limitada também será criada. A diferença entre os serviços está apenas na identificação do dispositivo no servidor de visualização. Este enviará ao PDA uma versão menos detalhada dos dados a serem exibidos, e otimizada para a exibição na resolução e processamento do mesmo. Esta adaptação de conteúdo é feita no servidor de backend, e não no cliente, para que não seja gasto nenhum tempo ou processamento adicional. O mesmo ocorre com o conteúdo adicional, que na versão do Pocket PC é acessado mediante um “click” na tela, aproveitando o recurso de touchscreen. Este “click” dispara uma requisição ao servidor que também envia de volta um conteúdo já adaptado para ser exibido no Pocket. Este conteúdo é mostrado em tela cheia e pode ser composto de texto e/ou imagens. Novamente, um outro “click” desabilita a visualização do conteúdo adicional, diferentemente da versão Mobile Desktop. O serviço de visualização na plataforma Pocket PC é ilustrado na Figura 5.7. Figura 5.7. Serviço de visualização na plataforma Pocket PC. Os frameworks utilizados nas duas plataformas são bastante semelhantes e utilizam como base o OGRE e o OgreAR para exibição de objetos e construção de interfaces. Para a comunicação com dispositivos como a luva e o tracker da luva é utilizada a biblioteca CIDA (apenas na versão Mobile Desktop), e para a comunicação com o serviço é utilizada a plataforma XCSERVICES. 56 ESTUDO DE CASO: O PROJETO A2 5.3.2 SERVIÇO DE ENTREVISTA Este serviço fornece ao usuário a possibilidade de ver uma entrevista online, que pode ser exibida de uma maneira diferente da convencional. Ela ocorre pela transmissão de um fluxo de vídeo 3D, capaz de ser interpolado, gerando imagens em qualquer ângulo de visão. Este serviço foi baseado no trabalho do 3DLive[65], sendo diferenciado pelo tipo de câmeras utilizado e pela abordagem tecnológica dos formatos contidos no fluxo 3D. Este serviço ainda está sendo aperfeiçoado no escopo de uma dissertação de mestrado ainda em desenvolvimento. O projeto 3DLive é ilustrado na Figura 5.8 abaixo. Figura 5.8. Diferentes visões da utilização do 3DLive. O serviço de entrevista conta com uma infra-estrutura bastante peculiar para que possa ser realizada. Uma sala equipada com várias câmeras de vídeo (a partir de 5 câmeras) posicionadas e devidamente calibradas deve ser montada para originar a entrevista. Junto às câmeras devem haver servidores para a captura dos vídeos, sincronização dos fluxos e montagem do fluxo de imagem 3D. A rede que interliga estes equipamentos deve ter uma banda de 1Gbps para um resultado satisfatório, como visto em [65]. Para que o usuário possa participar do serviço de entrevista, um convite é enviado ao cliente quando a entrevista estiver prestes a começar, podendo o mesmo aceitar ou desejar não assistí-la. Caso aceite, o fluxo 3D poderá ser exibido em um marcador existente no folder entregue na entrada do museu. Este serviço está disponível apenas na plataforma Mobile Desktop, por exigir um processamento de imagem adicional em cada cliente, tornando a experiência de exibição num dispositivo com um poder de processamento menor bastante precária. Durante a entrevista o áudio também é enviado e pode ser ouvido mesmo sem a exibição do fluxo 3D no marcador, caso este não esteja no campo de visão do usuário. O serviço é finalizado quando a entrevista acaba. O software utilizado para dar suporte a este serviço é uma versão modificada da biblioteca 3DLive, e ainda não está disponível para distribuição (como já mencionado anteriormente). 57 ESTUDO DE CASO: O PROJETO A2 5.3.3 SERVIÇO DE LEILÃO O leilão também é um serviço que ocorre apenas num determinado espaço de tempo. Desta forma, os usuários são alertados para o início do leilão. Se desejarem participar, o serviço será ativado e a partir deste momento começa a troca de informações. O leilão foi projetado como um serviço externo, presente numa rede diferente da rede do museu. Isto foi feito para provar o conceito de composição de redes, que ocorre quando o cliente requisita um serviço que não está presente na própria rede em que ele se encontra. O processo de composição cria algumas políticas e acordos temporários que são seguidos até que o usuário se desconecte ou que o serviço não esteja mais disponível. Quando o usuário aceita participar do leilão, é mostrada uma tela com os lotes do leilão. Sucessivamente, os lotes serão liberados e o leilão ocorre. O usuário pode dar seu lance através de gestos com a luva, apontando para uma determinada área da tela com um botão e clicando com seu dedo indicador. Numa outra área da tela são mostradas informações como o último lance, o valor do próximo lance (fixo pelo programa), e o objeto que está sendo leiloado pode ser exibido num dos marcadores fornecidos no folder do museu. Juntamente com os marcadores de exibição é dado também um cubo de marcadores, que serve como uma interface tangível para a visualização dos objetos que estão sendo leiloados no lote. Este cubo pode ser visualizado na Figura 5.9, onde o usuário interage na plataforma Pocket PC. Figura 5.9. Cubo de marcadores em utilização. No cubo de marcadores, algumas faces, quando viradas para cima, têm funções específicas, como exibição, escala e visualização do próximo objeto do lote. Com uma destas faces ativas, ou seja, direcionadas para cima, para efetuar uma mudança na função específica, basta que o usuário gire o cubo. A interação é praticamente igual, nas versões Mobile Desktop e Pocket PC, diferindo apenas na utilização da luva com um tracker, na versão Mobile Desktop, substituída por 58 ESTUDO DE CASO: O PROJETO A2 gestos e clicks com a caneta, no caso do Pocket PC. A interface no Pocket PC é bem mais simples e não é integrada à visualização do mundo real, pois a interface gráfica ocupa muito espaço na pequena tela do dispositivo, como visto na Figura 5.10. Figura 5.10. Interface do serviço do leilão na plataforma Pocket PC. O usuário pode sair do leilão no momento que desejar. O leilão também é implementado utilizando as ferramentas OGRE e OgreAR, bem como bibliotecas específicas de construção de interfaces gráficas como a API do Windows Mobile e a biblioteca CEGUI. 5.3.4 SERVIÇO DE CHAT O serviço de chat é bem simples e serve para integrar os usuários dentro do museu. O chat funciona somente via voz, para evitar interação textual do usuário com a interface. O chat também é um serviço sempre disponível na rede do museu, assim como o de visualização. O usuário pode ver todos os clientes conectados e se comunicar com eles através da voz. A Figura 5.11 ilustra a versão do serviço de chat para a plataforma Mobile Desktop. 59 ESTUDO DE CASO: O PROJETO A2 Figura 5.11. Serviço de chat na plataforma Mobile Desktop. O serviço foi implementado nas plataformas Mobile Desktop e Pocket PC utilizando o protocolo H323, através da biblioteca OpenH323 [66]. Na versão atual do serviço, o usuário pode falar apenas com um cliente de cada vez, podendo trocar de usuário quando quiser, assim como desativar o serviço. O serviço também não depende de nenhum recurso de visualização, salvo os menus de escolha dos interlocutores, como ilustrado na Figura 5.12. Figura 5.12. Interface do serviço de chat na plataforma Pocket PC. 5.4 CONSIDERAÇÕES FINAIS Este capítulo apresentou o estudo de caso A2, que utiliza o modelo de referência homônimo. Foram detalhados os serviços implementados em duas plataformas, sendo elas Mobile Desktop e Pocket PC, já que a plataforma Celular ainda está em desenvolvimento por ter apresentado algumas dificuldades na implementação, como visto no Capítulo 3. 60 ESTUDO DE CASO: O PROJETO A2 Verificou-se a viabilidade de utilização de aplicações de AR neste cenário, bem como a aplicação adequada dos conceitos de AN. Estas tecnologias simplificaram a implementação dos serviços e a modularização dos mesmos, através de uma arquitetura bem estruturada. 61 CONCLUSÃO CAPÍTULO 6 CONCLUSÃO Esta dissertação apresentou o modelo de referência A2 para o desenvolvimento de aplicações e serviços multiplataforma. Foi demonstrada a interdisciplinaridade da pesquisa desenvolvida, principalmente a integração de duas áreas relevantes que utilizam tecnologia de ponta, como AN e AR. Na área de AN, foram explorados os principais conceitos, entre eles: composição de redes, adaptação de conteúdo para exibir informação de acordo com o dispositivo, aplicação de políticas para criação automática de acordos entre redes, e o futuro, que é permitir a intercomunicação de redes móveis heterogêneas. A área de AR, que é o foco principal desta dissertação, motivou a pesquisa de alguns tópicos relevantes para o desenvolvimento do A2, como: interação e metáforas, onde foram estudadas diversas formas e técnicas de interação e adotadas algumas metáforas para compor o projeto A2. Estas metáforas foram utilizadas para cumprir as tarefas de manipulação, navegação, controle de sistemas e entrada simbólica, presentes no projeto. Foram utilizadas interfaces tangíveis para permitir ao usuário visualizar os dados e interagir naturalmente com a aplicação. Também foi explorada a adaptação de RA com fluxo 3D para utilização com câmeras de vídeo de baixo custo, baseado no projeto 3DLive. Outro ponto de destaque na área é a reinterpretação de dispositivos de entrada através da plataforma CIDA, construída como uma camada de abstração de dispositivos de interação como parte deste projeto. Finalmente foi proposto um framework de alto nível para construção de aplicações de AR num ambiente de redes AN, o projeto A2. Este framework foi validado através da implementação do cenário “Museu Virtual”, descrito no Capítulo 5. 6.1 CONTRIBUIÇÕES A concepção e o desenvolvimento desta dissertação trouxeram algumas contribuições relevantes para a área de AR. A seguir, serão destacadas em dois grupos distintos, o primeiro apresenta a lista de contribuições no âmbito de desenvolvimento de software e do framework e o segundo grupo destaca as publicações geradas pelo trabalho desenvolvido nesta dissertação. 6.1.1 DESENVOLVIMENTO DE SOFTWARE E DO FRAMEWORK • Construção de casos de uso para avaliação de metáforas de interação e estudos de técnicas de interação já existentes; • Reescrita do 3DLive para suporte de câmeras de baixo custo com suporte a fluxo RGB/Bayer; • Desenvolvimento da biblioteca de abstração de dispositivos de entrada CIDA e alguns de seus plugins; • Desenvolvimento da biblioteca OgreAR; • Concepção e descrição do modelo de aplicação de alto nível para AR, modelo A2; • Porte do engine gráfico OGRE para o Pocket PC, que favorece o reaproveitamento de código para aplicações multiplataforma; • Avanços no porte do ARToolkit para o Symbian OS, assim como um modelo de arquitetura de aplicação no mesmo; • Construção de interface nativa multiplataforma em linguagem C para intercomunicação com o X-PEER e construção de alguns serviços para o estudo de caso apresentado nesta dissertação. 6.1.2 PUBLICAÇÕES RELEVANTES • Escrita do capítulo de livro “O engine gráfico OGRE 3D”, publicado nos tutoriais do SBGames 2005, com apresentação de minicurso. – FARIAS, Thiago; PESSOA, Saulo; TEICHRIEB, Veronica; KELNER, Judith. O engine gráfico OGRE 3D. Esteban W. Gonzalez Clua; Sérgio Scheer (Org.). Tutoriais do SBGames 2005. 2005, p. 1-33. ISBN 8576690586. • Artigos completos com apresentação oral. – FARIAS, Thiago; SILVA, Daliton; MOURA, Guilherme; TEIXEIRA, João Marcelo; COSTA, Luiz Henrique; DIAS, Guilherme; TEICHRIEB, Veronica; KELNER, Judith. Um estudo de caso sobre a construção e a integração de dispositivos hápticos com aplicações interativas. In: Brazilian Symposium on Computer Games and Digital Entertainment, 2006, Recife. – TEIXEIRA, João Marcelo; FARIAS, Thiago; MOURA, Guilherme; LIMA, João Paulo; PESSOA, Saulo; TEICHRIEB, Veronica. GeFighters: an experiment for gesture-based interaction analysis in a fighting game. In: Brazilian Symposium on Computer Games and Digital Entertainment, 2006, Recife. – FARIAS, Thiago; TEIXEIRA, João Marcelo; RODRIGUES, Carlos Eduardo; PESSOA, Saulo; COSTA, Nacha; TEICHRIEB, Veronica; KELNER, Judith. 63 CIDA: an interaction devices management platform. In: Symposium on Virtual Reality, 2006, Belém. Porto Alegre: SBC, 2006. p. 271-284. – LIMA, João Paulo; FARIAS, Thiago; TEICHRIEB, Veronica; KELNER, Judith. Port of the OGRE 3D engine to the pocket pc platform. In: Symposium on Virtual Reality, 2006, Belém. Porto Alegre: SBC, 2006. p. 65-76. – TEICHRIEB, V. et al. Augmented Ambient. HCI International, 2007 (To be published). • Resumos Expandidos com apresentação oral. – GOMES NETO, Severino; FARIAS, Thiago; TEICHRIEB, Veronica; KELNER, Judith. Criação de aplicações de realidade aumentada em dispositivos móveis baseados em Symbian OS. In: Workshop de Realidade Aumentada, 2006, Rio de Janeiro. p. 16-19. – TEIXEIRA, João Marcelo; FARIAS, Thiago; PESSOA, Saulo; RODRIGUES, Carlos Eduardo; COSTA, Nacha; CANANÉA, Igor; TEICHRIEB, Veronica; KELNER, Judith. GeFighters: usando gestos para interação com um jogo de luta. In: Symposium on Virtual Reality, 2006, Belém. p. 1-5. – FARIAS, T. S.; LIMA, J. P.; TEICHRIEB, V.; KELNER, J. OgreAR: construção de aplicações de realidade aumentada utilizando bibliotecas de alto nível. Workshop de Aplicações de Realidade Virtual, Sociedade Brasileira de Computação, Recife, 21-24 de Novembro, 2006. • Resumo com apresentação de pôster. – FARIAS, Thiago; TEIXEIRA, João Marcelo; RODRIGUES, Carlos Eduardo; PESSOA, Saulo; TEICHRIEB, Veronica; KELNER, Judith. CIDA: uma plataforma de gerenciamento de dispositivos para interação. In: Simpósio Brasileiro de Jogos para Computador e Entretenimento Digital, 2005, São Paulo. p. 1-4. 6.2 TRABALHOS FUTUROS Tendo em vista que esta dissertação focou a pesquisa em duas áreas relativamente novas e com diversos problemas para serem solucionados, vários pontos deste projeto podem ser destacados como trabalhos futuros, os mais relevantes serão enumerados a seguir: • Implementação da interface baseada em comportamento de simulação física, como foi estudada durante o desenvolvimento do projeto. • Implementação e testes de todos os serviços na plataforma Symbian OS, para validar 64 o estudo de caso do museu virtual. • Estudar a viabilidade de inserir um módulo de roteamento para redes heterogêneas compatível com a tecnologia e o protocolo de comunicação Bluetooth em redes de ambiente. • Efetuar testes de usabilidade nas interfaces propostas e adaptá-las de acordo com os resultados obtidos. • Melhorar o desempenho do núcleo das redes de ambientes, no âmbito do projeto XPEER e viabilizar uma implementação dos conceitos básicos de AN em linguagem nativa (C/C++). • Finalizar o projeto de adaptação do 3DLive para câmeras de baixo custo, permitindo um completo fluxo de vídeo 3D. 65 REFERÊNCIAS REFERÊNCIAS BIBLIOGRAFIA [1] TEICHRIEB, V. et al. Augmented Ambient. HCI International, 2007 (To be published). [2] BIMBER, O.; RASKAR, R. Spatial Augmented Reality. A. K. Peters, 2005. [3] AZUMA, R. T. A Survey of Augmented Reality. Presence: Teleoperators and Virtual Environments, v. 6, n. 4, p. 355-385, ago. 1997 [4] Ambient Networks Project. Disponível: Ambient Networks http://www.ambient-networks.org. Consultado em 15 jan. 2006. Project site. URL: [5] MILGRAM, P.; KISHINO, F. A Taxonomy of Mixed Reality Visual Displays. IEICE Transactions on Information Systems, v. E77-D, n. 12, p. 1321-1329, dez. 1994. Special Issue on Networked Reality. [6] BURDEA, G. C.; COIFFET, P. Virtual Reality Technology. IEEE Press Wiley-Interscience, 2003. [7] Open Spaces in Megacities. Disponível: Open Spaces Home site. http://www.ufpe.br/nordest/megacities/index.htm. Consultado em 10 fev. 2007. URL: [8] A Table-Top Augmented Reality Application. Disponível: Multimedia Concepts and Applications site. URL: http://mm-werkstatt.informatik.uniaugsburg.de/project_details.php?id=1. Consultado em 26 dez. 2005. [9] BOWMAN, D. A.; KRUIJFF, E.; LAVIOLA, JR, J. J.; POUPYREV, I. 3D User Interfaces: Theory and Practice. USA: Addison-Wesley, 2004. 512 p. [10] HÖLLERER, T. H. and FEINER, S. K. “Chapter Nine”, Mobile Augmented Reality, H. Karimi and A. Hammad (eds.), Taylor & Francis Books Ltd., January 2004. [11] Input Devices. Disponível: ICS online site. http://www.ics.uci.edu/~kobsa/courses/ICS104/course-notes/input-devices.htm. Consultado em 17 jan. 2006. URL: [12] Virtual Reality Experience. Disponível: Cursus Fotografie site. URL: http://www.fotobeurs.com/cursus/stereografie/?id=95&nm=HMD%203D-bril. Consultado em 17 jan. 2006. [13] WAGNER, D.; PINTARIC, T.; LEDERMANN, F.; SCHMALSTIEG, D. Towards Massively Multi-User Augmented Reality on Handheld Devices. In: INTERNATIONAL CONFERENCE ON PERVASIVE COMPUTING, 3., 2005, Germany, Proceedings... 2005. p. 208-219. [14] AZUMA, R. T.; BAILLOT, Y.; BEHRINGER, R.; FEINER, S.; JULIER, S.; MACINTYRE, B. Recent Advances in Augmented Reality. IEEE Computer Graphics and Applications, v. 21, n. 6, p. 34-47, nov./dez. 2001. 66 REFERÊNCIAS [15] Introduction to Augmented Reality. Disponível: Jim Vallino’s RIT SE Department Home Page site. URL: http://www.se.rit.edu/~jrv/. Consultado em 11 jan. 2006. [16] WAGNER, D.; SCHMALSTIEG, D. First Steps Towards Handheld Augmented Reality. In: INTERNATIONAL SYMPOSIUM ON WEARABLE COMPUTERS (ISWC), 7., 2003, USA, Proceedings... Washington: IEEE Computer Society, 2003. p. 127-137. [17] PIEKARSKI, W.; THOMAS, B. ARQuake: The Outdoor Augmented Reality Gaming System. Communications of the ACM, v. 45, n. 1, p. 36-38, jan. 2002. [18] ULLMER, B.; ISHII, H. Emerging Frameworks for Tangible User Interfaces. IBM Systems Journal, v. 39, n. 3/4, p. 915-931, 2000. [19] BUCHMANN, V.; VIOLICH, S.; BILLINGHURST, M.; COCKBURN, A. FingARtips – Gesture Based Direct Manipulation in Augmented Reality. In: INTERNATIONAL CONFERENCE ON COMPUTER GRAPHICS AND INTERACTIVE TECHNIQUES (GRAPHITE), 2., 2004, Singapore, Proceedings... New York: ACM Press, 2004. p. 212-221. [20] REITMAYR, G. and SCHMALSTIEG, D. “Data Management Strategies for Mobile Augmented Reality”, in STARS, 2003. [21] BILLINGHURST, M.; CHEOK, A.; KATO, H. and PRINCE, S. “Real World Teleconferencing”, in Computer Graphics and Applications, IEEE, 2002. [22] HAUBER, J.; BILLINGHURST, M. and REGENBRECHT H. “Tangible Teleconferencing”, in Lecture Notes in Computer Science, Springer Berlin / Heidelberg, 2004. [23] BUCOLO, S.; BILLINGHURST, M. and SICKINGER, D. “User Experiences with Mobile Phone Camera Game Interfaces”, in Proceedings of the 4th International Conference on Mobile and Ubiquitous Multimedia, Christchurch, New Zealand, 2005. [24] WOODS, E.; BILLINGHURST, M.; ALDRIDGE, G.; GARRIE B.; LOOSER, J.; BROWN, D. and NELLES, C., “Augmenting the Science Centre and Museum Experience”, in Proceedings of the 2nd international conference on Computer graphics and interactive techniques in Australasia and South East Asia, Singapore, 2004. [25] HENRYSSON, A.; BILLINGHURST, M. and OLLILA, M. “Face to Face Collaborative AR on Mobile Phones”, in Proceedings of ISMAR 2005, Vienna, Austria, 2005. [26] HENRYSSON, A. and OLLILA, M. “UMAR – Ubiquitous Mobile Augmented Reality”, in Proceedings of ACM International Conference on MUM, pp. 41-45, 2004. [27] PASMAN, W.; WOODWARD, C.; HAKKARAINEN, M.; HYVÄKKÄ, J. “Augmented reality with large 3D models on performance and use experiences”. In Proceedings of the international Conference on Virtual Reality Continuum and Its ACM Press, Singapore, June 16- 18, 2004. HONKAMAA, P. and a PDA: implementation, 2004 ACM SIGGRAPH Applications in industry, [28] WAGNER, D. and SCHMALSTIEG, D. "First Steps Towards Handheld Augmented Reality," In Seventh IEEE International Symposium on Wearable Computers, IEEE Press, New York, (ISWC'03), 2003. 67 REFERÊNCIAS [29] Detalhes do Dell Axim x51v de 624MHz. Disponívem em: Dell site. URL: http://www1.la.dell.com/content/products/productdetails.aspx/axim_x51v?c=br&l=pt&s=d hs. Consultado em 10 fev. 2007. [30] Nokia Nokia N93. Disponivem em: Nokia site. http://www.nokia.com.br/nokia/0,,95498,00.html. Consultado em 10 fev. 2007. URL: [31] LEPETIT, V.; VACCHETTI, L.; THALMANN, D. and FUA, P. “Fully Automated and Stable Registration for Augmented Reality Applications”, International Symposium on Mixed and Augmented Reality, 2003. [32] Computer Vision Laboratory. Disponível: CVLAB site. http://cvlab.epfl.ch/research/augm/augmented.html, consultado em 10 fev. 2006. URL: [33] RASKAR, R.; WELCH, G.; LOW, K.; BANDYOPADHYAY, D. “Shader Lamps: Animating Real Objects With Image-Based Illumination”, Eurographics Workshop on Rendering Techniques, London, UK, 2001. [34] PIEKARSKI, W. and THOMAS, B. “ARQuake: The Outdoor Augmented Reality Gaming System”. ACM Communications, 45(1), 2002, pp 36-38. [35] FARIAS, T.; TEIXEIRA, J. M.; RODRIGUES, C. E.; PESSOA, S.; COSTA, N.; TEICHRIEB, V.; KELNER, J. CIDA: an interaction devices management platform. In: Symposium on Virtual Reality, 2006, Belém. Porto Alegre: SBC, 2006. p. 271-284. [36] OpenGL - The Industry Standard for High Performance Graphics. Disponívem em: OpenGL site. URL: http://www.opengl.org. Consultado em 10 fev. 2007. [37] Ogre3D: Open source graphics engine. Disponívem http://www.ogre3d.org. Consultado em 10 fev. 2007. em: Ogre3D site. URL: [38] Shader. Disponível em: Wikipedia site. URL: http://en.wikipedia.org/wiki/Shader. Consultado em: 10 fev. 2007. [39] ARToolKit Documentation. Disponível: Human Interface Technology Laboratory site. URL: http://www.hitl.washington.edu/artoolkit/documentation/. Consultado em 25 dez. 2005. [40] FARIAS, T., LIMA, J.; TEICHRIEB, V. and KELNER, J. “OgreAR: construção de aplicações de realidade aumentada utilizando bibliotecas de alto nível”, Workshop de Aplicações de Realidade Virtual, Sociedade Brasileira de Computação, Recife, 21-24 de Novembro, 2006. [41] WAGNER, D. and SCHMALSTIEG, D. “ARToolkit on the PocketPC Platform”, International Augmented Reality Toolkit Workshop, IEEE Computer Society, USA, 2003. [42] ARToolKitPlus. Disponível em: Handheld Augmented Reality site. URL: http://studierstube.icg.tu-graz.ac.at/handheld_ar/artoolkitplus.php. Consultada em 10 fev. 2007. [43] Vincent, the 3-D Rendering Library for Pocket PCs and Smartphones based on the Published OpenGL. Disponível: SourceForge site. URL: http://ogl-es.sourceforge.net, consultado em Fevereiro 2006. 68 REFERÊNCIAS [44] Hybrid Graphics Ltd – Developer Tools. Disponível: Hybrid Graphics site. URL: http://www.hybrid.fi/main/products/devtools.php, consultado em Fevereiro 2006. [45] Klimt – the Open Source 3D Graphics Library for Mobile Devices. Disponível: Graz University of Technology site. URL: http://studierstube.icg.tu-graz.ac.at/klimt, consultado em Janeiro 2006. [46] Direct3D Mobile. Disponível: Microsoft Developer Network site. URL: http://msdn.microsoft.com/library/default.asp?url=/library/enus/wcemultimedia5/html/wce50oriDirect3DMobile.asp, consultado em Fevereiro 2006. [47] Q.H. Mahmoud. Getting Started with the Mobile 3D Graphics API for J2ME. Disponível: Sun MicroSystems, Inc. site. URL: http://developers.sun.com/techtopics/mobility/apis/articles/3dgraphics/index.html, consultado em 2006. [48] LIMA, J. P.; FARIAS, T.; TEICHRIEB, V. and KELNER, J. Port of the OGRE 3D engine to the pocket pc platform. In: Symposium on Virtual Reality, 2006, Belém. Porto Alegre: SBC, 2006. p. 65-76. [49] EGL. Disponível em: Khronos Group site. URL: http://www.khronos.org/opengles/. Consultado em 10 fev. 2007. [50] HENRYSSON, A. and OLLILA, M. “UMAR - Ubiquitous Mobile Augmented Reality”, Mobile Ubiquitous Multimedia, 2004. [51] GOMES NETO, S.; FARIAS, T.; TEICHRIEB, V. and KELNER, J. Criação de aplicações de realidade aumentada em dispositivos móveis baseados em Symbian OS. In: Workshop de Realidade Aumentada, 2006, Rio de Janeiro. p. 16-19. [52] Ubiquitous Mobile Augmented Reality. Disponível: NVIS http://staffwww.itn.liu.se/~andhe/UMAR/ Consultado em 03 ago. 2006. site. URL: [53] KATO, H.; BILLINGHURST, M. and POUPYREV, I. "ARToolKitVersion 2.33", 2000, pp. 2229, Manual Técnico. [54] Series 60 Developer Platform: Emulator Configuration. Version 1.1. 2004, 16p. Manual Técnico. [55] HARRISON, R. Symbian OS C++ for Mobile Phones, John Wiley & Sons, vol. 2, pp. 207208, 2004. [56] BRUNNER M. “Ambient Network Management – Solution Design and Functions”, Deliverable D8.2, WWI Ambient Network Project, July 2005. [57] WWI Ambient Networks. Disponível: Ambient Network site. URL: http://www.ambientnetworks.org/, Consultado em 8 set.2006. [58] Technical objectives of the Ambient Networks Project. Disponível: Ambient Network site. URL: http://www.ambient-networks.org/main/technical_objectives.html. Consultado em 30 ago. 2006. 69 REFERÊNCIAS [59] HARTUNG, F.; HERBORN, S.; KAMPMANN, M. and SCHMID, S. "Smart Multimedia Routing and Adaptation using Service Specific Overlay Networks in the Ambient Networks Framework“, Proceedings 12. Wireless World Research Forum (WWRF) Meeting, November 2004, Toronto/Canada. [60] GUSTAFSSON, E. and JONSSON, A. Communications, 10(1):49–55, Feb 2003. Always best connected. IEEE Wireless [61] NIEBERT N. et al. “Ambient Networks: An Architecture for Communication Networks Beyond 3G”, IEEE Wireless Communications, April 2004. [62] KAMIENSKI, C., et al. "PBMAN: A Policy-based Management Framework for Ambient Networks", 7th IEEE Workshop on Policies for Distributed Systems and Networks, June 2006 [63] KAMIENSKI, C., et al. “On the Use of Peer-to-Peer Architectures for the Management of Highly Dynamic Environments”, 3rd Workshop on Mobile Peer-to-Peer Systems (MP2P’06), March 2006. [64] ROCHA JR., J., et al. “X-Peer: A Middleware for Peer-to-Peer Applications”, 1st Brazilian Workshop on Peer-to-Peer, May 2005. [65] NGUYEN T. H. D. et al. "Real-Time 3D Human Capture System for Mixed-Reality Art and Entertainment". In: IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, VOL. 11, NO. 6, NOVEMBER/DECEMBER 2005. p. 706-721. [66] OpenH323 Project. Disponível: Consultado em 10 fev. 2007. OpenH323 site. URL: http://www.openh323.org/. 70
Documentos relacionados
Realidade Aumentada Aplicada a Medicina
utilizando um scanner tridimensional baseado em raio laser e câmera de vídeo, com precisão inferior a 1mm deixando uma sobreposição bastante confiável, onde os objetos virtuais sobrepõem à filmagem...
Leia maisestudo piloto. 2006.2.
real utilizando tecnologia acessível e de baixo custo. Foi implementada uma aplicação que analisa o movimento da articulação do joelho. A aplicação sobrepõe à imagem do indivíduo alvo informações r...
Leia mais