Desenvolvimento de Realidade

39
Faculdade de Tecnologia de Americana Curso Superior de Tecnologia em Desenvolvimento de Jogos Digitais DESENVOLVIMENTO DE REALIDADE AUMENTADA PARA ANDROID SAMUEL LUCIANO DA SILVA Americana, SP 2012

Transcript of Desenvolvimento de Realidade

Page 1: Desenvolvimento de Realidade

Faculdade de Tecnologia de Americana Curso Superior de Tecnologia em Desenvolvimento de Jogos

Digitais

DESENVOLVIMENTO DE REALIDADE AUMENTADA PARA ANDROID

SAMUEL LUCIANO DA SILVA

Americana, SP 2012

Page 2: Desenvolvimento de Realidade

Faculdade de Tecnologia de Americana

Curso Superior de Tecnologia em Desenvolvimento de Jogos Digitais

DESENVOLVIMENTO DE REALIDADE AUMENTADA PARA ANDROID

SAMUEL LUCIANO DA SILVA

[email protected]

Trabalho de Conclusão de Curso desenvolvido em cumprimento à exigência curricular do Curso Superior de Tecnologia em Desenvolvimento de Jogos Digitais, sob a orientação do Prof. Me. Cleberson Forte

Área: Jogos Digitais

Americana, SP 2012

Page 3: Desenvolvimento de Realidade

BANCA EXAMINADORA

Prof. Me. Cleberson Eugenio Forte Prof. Me. Kleber de Oliveira Andrade Prof. Me. Carlos Henrique Rodrigues Sarro

Page 4: Desenvolvimento de Realidade

AGRADECIMENTOS

Em primeiro lugar, gostaria de agradecer aos meus pais, que cuidaram e

educaram adequadamente, se esforçando ao máximo para que nada faltasse em

meu desenvolvimento pessoal e profissional, independente das condições

financeiras.

Agradeço à minha namorada, que está comigo em todos os momentos,

felizes ou ruins, acredita em meu potencial e incentiva muito meu progresso.

Agradeço, também, ao meu irmão, que sem dúvida é alguém em quem me

espelho.

Agradeço aos meus amigos e colegas que muito fizeram por mim durante

toda a realização deste trabalho.

Gostaria de agradecer, também, aos colaboradores da FATEC Americana,

por estes anos de convivência quando pude, então, realizar meu sonho e me

graduar na área de Jogos Digitais.

E, sem dúvida, em agradecimento especial, o Prof. Me. Cleberson Forte, meu

orientador e amigo, que fez tudo o possível para que esse trabalho se concretizasse.

Page 5: Desenvolvimento de Realidade

DEDICATÓRIA

Aos meus pais Valdeir Firmino da Silva e Maria de Fatima C. F.

A minha namorada Chaiene Vargas.

A meu irmão Dione Everton.

A meus professores da FATEC - Americana

A todos meus amigos e companheiros.

Page 6: Desenvolvimento de Realidade

RESUMO

Atualmente, o mercado de equipamentos móveis, como smartphones e

tablets, vem crescendo e motivando o surgimento de vários Sistemas Operacionais,

dentre eles o Android, foco deste estudo, uma plataforma de código aberto que

possibilita facilmente a criação de aplicações e jogos para dispositivos móveis. A

Realidade Aumentada (RA) é muito comum em computadores de mesa e notebooks,

e hoje em dia é muito utilizada na área de educação, publicidade, engenharia e

arquitetura. A RA para Android vem para unir as duas áreas, aproveitando a

tecnologia de RA com a mobilidade dos dispositivos móveis. Neste trabalho, são

apresentadas ferramentas para desenvolvimento, projetos relacionados e a criação

de uma aplicação de RA interativa para a plataforma Android usando a engine

Unity3D.

Palavras Chave: REALIDADE AUMENTADA, ANDROID e JOGOS.

Page 7: Desenvolvimento de Realidade

ABSTRACT

Currently, the mobile equipment market, as smartphones and tablets, are

growing and motivating the sprouting of some Operational systems, amongst them

the Android, the focus of this research, a platform of open code that easily makes

possible creation of applications and games for mobile devices. Augmented Reality

(AR) is very common on desktops and notebooks, and nowadays used in education,

advertising, engineering and architecture. The AR for Android devices comes to join

the two areas, using to advantage technology of AR with the mobility of the mobile

devices. In this monograph, we present tools for development, related projects, and

creation of an interactive AR application for the Android platform using the Unity3D

engine.

Keywords: AUGMENTED REALITY, ANDROID, GAMES

Page 8: Desenvolvimento de Realidade

SUMÁRIO

1 INTRODUÇÃO ................................................................................................... 10

2 REALIDADE AUMENTADA PARA DISPOSITIVOS MÓVEIS .......................... 12

2.1 APLICAÇÕES EM REALIDADE AUMENTADA ............................................... 13 2.1.1 Magicbook ................................................................................................... 14 2.1.2 Airhockey .................................................................................................... 15 2.1.3 Jogo com RA em dispositivos móveis ......................................................... 16

3 FERRAMENTAS PARA DESENVOLVIMENTO DE RALIDADE AUMENTADA PARA DISPOSITIVOS MÓVEIS ............................................................................... 18

3.1 NYARTOOLKIT ................................................................................................. 18

3.2 OPENCV ............................................................................................................ 20

3.3 QUALCOMM VUFORIA ..................................................................................... 21

4 DESENVOLVIMENTO DE APLICAÇÃO DE REALIDADE AUMENTADA UTILIZANDO QUALCOMM VUFORIA E UNITY 3D ................................................ 23

4.1 INSTALAÇÃO .................................................................................................... 23

4.2 EXTENSÕES ..................................................................................................... 24 4.2.1 Vuforia Android ........................................................................................... 25 4.2.2 Vuforia imagetargets ................................................................................... 25 4.2.3 Vuforia framemarkers .................................................................................. 25 4.2.4 Vuforia multitargets ..................................................................................... 26 4.2.5 Vuforia virtualbuttons .................................................................................. 26 4.2.6 Vuforia backgroud terxtureacces ................................................................ 27 4.2.7 Vuforia occlusion management ................................................................... 27

4.3 CRIAÇÃO DE TRACKABLES ( OU TARGETS) ............................................... 28

4.4 PROGRAMANDO UM PROJETO SIMPLES ..................................................... 30

4.5 COMPILAÇÃO ................................................................................................... 34

4.6 INSTALAÇÃO NO ANDROID ............................................................................ 35

4.7 PROJETO LABRINTO ....................................................................................... 36

5 CONSIDERAÇÕES FINAIS ............................................................................... 37

6 REFERÊNCIAS BIBLIOGRÁFICAS .................................................................. 38

Page 9: Desenvolvimento de Realidade

9

LISTA DE FIGURAS E DE TABELAS

Figura 1 – Comparativo da venda de smartphones conforme sistema operacional e previsão

para os próximos anos...........................................................................................................12

Figura 2 – Exemplo de funcionamento do AIRockey.............................................................16

Figura 3 – Exemplo de funcionamento do jogo de discos voadores......................................16

Figura 4 – Exemplo de marcador típico captado pela NyARtoolkit........................................19

Figura 5 – Aplicação criada pela NyArtoolkit..........................................................................19

Figura 6 – Exemplo de marcador reconhecido pela Vuforia...................................................21

Figura 7 - Instalação Vuforia – Acordo de licença..................................................................24

Figura 8 – Pacotes instalados pela Qualcomm Vuforia..........................................................25

Figura 9 – Exemplo de FrameMarkers...................................................................................26

Figura 10 – Exemplo de Multitaregets....................................................................................26

Figura 11 – Exemplo de botões virtuais.................................................................................27

Figura 12 – Exemplo de oclusão em realidade aumentada...................................................27

Figura 13 – Tela de cadastro de Trackables..........................................................................29

Figura 14 – Imagem detectada pelo sistema.........................................................................29

Figura 15 – Salvando uma Trackable....................................................................................30

Figura 16 – Estrutura de pastas da Unity com a biblioteca Vuforia instalada........................31

Figura 17 – Funções do prefab ARCamera...........................................................................32

Figura 18 – Funções do prefab Image Target - Atribuição de target.....................................32

Figura 19 – Adicionando o padrão de reconhecimento da imagem......................................33

Figura 20 – Imagem da Scene criada....................................................................................34

Figura 21 – Funcionamento do projeto labirinto.....................................................................36

Page 10: Desenvolvimento de Realidade

10

1 INTRODUÇÃO

Os últimos lançamentos no mercado de Smartphones e Tablets trouxeram

grande evolução de hardware, processamento, capacidade de memória, resolução

de tela, câmera e outros componentes, aproximando-se cada vez mais das

configurações encontradas em Desktops e Notebooks. Junto com essa evolução é

possível trazer aplicações que antes eram restritas aos computadores de mesa aos

dispositivos móveis, que agora contam como uma vantagem: a mobilidade.

Destas aplicações, a Realidade Aumentada (RA) pode ser moldada ao âmbito

móvel, na RA é utilizado o ambiente real como predominante, utilizando de

reconhecimento de parâmetros e componentes do ambiente real para a visualização

e manipulação de um objeto virtual. Ao contrário de Realidade Virtual (RV) aonde é

criado um ambiente virtual, fazendo o controle através de um sistema

computadorizado, tentando neste ambiente virtual modelar sentidos que existem no

ambiente real a fim de aumentar a imersão do utilizador.

A grande vantagem da RA em dispositivos móveis é que a maioria dispõe de

câmeras e capacidade de processamento para a análise de imagens e até a

composição de objetos virtuais em 3D.

Este projeto tem como objetivo criar uma aplicação em RA tornando possível

de ser executada em dispositivos móveis que utilizam o sistema operacional Android.

Como objetivos secundários, pretende-se mostrar que a utilização da tecnologia nas

áreas de educação, serious games, propaganda, entre outras áreas pode ser

relevante.

O trabalho foi estruturado em cinco capítulos, além da conclusão. O capítulo

dois conceitua sobre o que é a tecnologia de Realidade Aumentada (RA),

demonstrando um pouco do crescimento junto às plataformas móveis,

principalmente o Android, e mostrando também trabalhos correlatos na área, como o

Magicbook, programa que implementa em um livro com características de RA para

aumentar a imersão na história, o AIRockey uma aplicação que utiliza realidade

aumentada projetada, para simular um jogo comum em fliperamas, e o projeto de um

Page 11: Desenvolvimento de Realidade

11

jogo feito para dispositivos móveis, que utiliza os conceitos de RA e mobilidade

apresentados neste artigo.

O terceiro capítulo trata sobre as principais ferramentas para programação

desta tecnologia, no caso foram escolhidas três, por serem de código opensource e

que podem ser empregadas livremente para uso acadêmico, são elas: NyArtoolkit , a

OpenCV , e a Vuforia, uma biblioteca desenvolvida pela Qualcomm capaz de

trabalhar juntamente com o Unity 3D ou o SDK do Android, esta biblioteca será

abordada posteriormente como um tutorial para desenvolver uma aplicação em

Android.

No quarto capítulo apresenta-se um tutorial de utilização da ferramenta

Vuforia, o tutorial aborda o modo de instalação da biblioteca, a criação de targets

(Trackables), a instalação das bibliotecas na Unity 3D, um breve exemplo de como

criar uma aplicação simples e então compilar e executar no Android.

Com base nas informações conseguidas a partir dos estudos realizados nos

capítulos anteriores, foi criada uma discussão, no quinto capitulo, sobre o quanto

essa tecnologia é promissora em comparação com outras possibilidades.

Page 12: Desenvolvimento de Realidade

12

2 REALIDADE AUMENTADA PARA DISPOSITIVOS MÓVEIS

Motivados pelo crescimento das tecnologias e do mercado de

telecomunicações, surgiram vários dispositivos móveis como Smartphones e

Tablets, equipamentos que demandam, de forma geral, de um sistema operacional.

Dos vários do mercado, o que se sobressai atualmente é o Android, conforme pode

ser demonstrado pela figura 1, que apresenta um gráfico de crescimento das

vendas, onde o sistema ultrapassa os outros, com previsão de que as vendas

continuem aumentando nos próximos anos. Tal sistema suporta aplicações de RA, a

qual pode ser aplicada a diversas áreas, como Jogos Digitais, Educação,

Publicidade e Propaganda, Engenharias, Arquitetura, etc.

A tecnologia de RA também apresenta crescimento, conforme comenta Forte

(2009):

“[...] O que se observa, atualmente é um crescente interesse

por parte da sociedade e dos veículos de comunicação, para com as

tecnologias de RV e RA. A consolidação da tecnologia, através das

inúmeras iniciativas de pesquisadores e empresas, que se dedicam a

seu desenvolvimento, tanto no âmbito nacional quanto internacional,

faz com que ela se torne gradativamente mais conhecida, bem como

mais próxima da realidade da população em geral. Diferentes

aplicações, envolvendo as tecnologias de RV e RA, foram

desenvolvidas e outras continuam a sê-lo, buscando sua aplicação

como ferramenta para o auxilio de diferentes necessidades sociais.”

(FORTE; 2009).

Figura 1 – Comparativa da venda de smartphones conforme sistema operacional e previsão

para os próximos anos (GARTNER, 2012).

Page 13: Desenvolvimento de Realidade

13

Anteriormente, executar uma aplicação em Realidade Aumentada demandava

de um computador de mesa ou notebook e uma câmera normalmente conhecida

como Webcam. Montar tal sistema exige que o usuário tenha de carregar

equipamentos pesados, faltando mobilidade. A possibilidade de carregar uma

aplicação em RA disposta em um celular, ou tablet, tornou mais fácil, por exemplo,

criar uma campanha de publicidade utilizando RA, pois é possível estender um

cartaz em meio á uma rua ou shopping com uma tag (marcador) e o publico que

estiver com o aplicativo de RA instalado no dispositivo, pode então ver aquele objeto

virtual que foi criado com uma finalidade específica de publicidade. Tal conceito

pode ser aplicado, também, á outras áreas, conforme comentado anteriormente.

A vantagem de se executar uma aplicação em RA utilizando um aparelho com

Android não se restringe apenas à capacidade móvel do aparelho, mas também a

disposição de uma tela touch, que pode aumentar consideravelmente a

interatividade do aplicativo, torna possível obter controle de objetos através do

touchscreen, executar comandos como zoom, rotação, ou então a criação de botões

virtuais os quais podem executar funções específicas, como disparar ou movimentar

um objeto. Outra característica é que a cada novo lançamento de smartphones e

tablets, novas capacidades são demonstradas em equipamentos com

processadores, memória e armazenamento cada vez mais potentes:

“(...) Alguns aparelhos de telefone celular são dispositivos que

apresentam um bom poder de processamento, levando-se em conta

que se tratam de dispositivos móveis microprocessados com

características limitadas. Estes são capazes de executar algoritmos

desenvolvidos nas linguagens C++ e Java.” (LUZ, GARCA,

MARCHIORO; 2008).

2.1 APLICAÇÕES EM REALIDADE AUMENTADA

Muitas aplicações foram criadas com os conceitos de realidade aumentada,

principalmente na área de jogos:

“(...) Atualmente há uma grande busca por maior interatividade dos

jogos com os jogadores. Há possibilidades interessantes e pouco

Page 14: Desenvolvimento de Realidade

14

exploradas que surgem da combinação de realidade aumentada e

jogos, pois permitem combinar características da realidade que podem

ser aproveitadas em dinâmicas inovadoras de jogo (dimensão espacial

real, tangibilidade, disponibilidade, familiaridade do usuário) com a

facilidade de se sintetizar elementos virtuais com base em técnicas

empregadas tradicionalmente em jogos convencionais” (VIEIRA, et al,

2006).

A maioria das aplicações que já foram criadas, que envolvem jogos,

educação, ou publicidade, podem facilmente ser transportadas para a plataforma

Android, proporcionando uma nova visão e utilização dos recursos. Algumas das

aplicações mostradas abaixo, certamente se enquadrariam muito bem no conceito

móvel.

2.1.1 Magicbook

O Magicbook, é uma aplicação criada utilizando o ARToolkit, ela utiliza um

livro com parâmetros que ao utilizar RA é possível ver um objeto virtual, pode ser

melhor descrita por Forte:

“(..) Esta aplicação, ganhadora do prêmio Discover Awards, em

2001, na categoria inovação (DISCOVER, 2001), introduz o conceito

de um livro enriquecido com RA. A aplicação permite, ao usuário, a

visualização de objetos tridimensionais sobre as páginas do livro. É

interessante notar, também, que o MagicBook não se limita à simples

visualização e manipulação de objetos como numa aplicação comum

de RA. Ele vai além disso, ao permitir que o usuário passe da

visualização do objeto a uma navegação imersiva através do uso de

dispositivos especiais” (BILLINGHURST; KATO; POUPYREV 2001

apud FORTE 2009).

O MagicBook é um livro comum, que pode ser lido de forma convencional,

porém é deveras enriquecido através do recurso de RA, utilizando-se de um

dispositivo chamado de Handle Display, é possível observar a cena virtual criada

com a intenção de enriquecer a leitura. Tal dispositivo, hoje, pode ser facilmente

Page 15: Desenvolvimento de Realidade

15

substituído por um aparelho de celular ou tablet com Android, podendo se tornar

uma aplicação ainda mais conhecida acrescentando ao que foi comentado por Forte:

“(...)As características oferecidas pelo MagicBook o tornaram

uma das mais conhecidas aplicações de RA no contexto educacional.

Diferentes artigos a citam como fonte buscada para o desenvolvimento

de diversas outras aplicações. O que se observa é que o usuário,

interagindo com a história em um livro enriquecido com a RA, tem

maior interesse e dispõe de mais atenção para com o conteúdo

exibido. Esta característica é encarada como de muita valia quando

pensamos no desenvolvimento de uma aplicação para o contexto

educacional. Por estes motivos o conceito de livro virtual foi bastante

empregado por diversas pesquisas e também no Brasil.” (FORTE,

2009).

Um exemplo de aplicação que é exatamente suportado pela tecnologia

apresentada neste artigo, podendo facilitar ao usuário ter acesso á parte virtual do

livro utilizando um dispositivo mais barato e de uso mais abrangente.

2.1.2 Airhockey

Uma aplicação muito interessante que utiliza os conceitos de Realidade

Aumentada projetada, para simular um jogo muito conhecido por frequentadores de

fliperamas, o AirHockey ou Shufflepuck, o funcionamento pode ser observado no

comentário dos criadores:

“(..) O ARHockey é jogado por dois participantes munidos de

batedores e um plano horizontal (de preferência uma mesa) no qual o

ambiente do jogo será projetado. Na mesa virtual projetada há um

disco que deve ser impulsionado pelos jogadores em direção ao gol

adversário, localizado na extremidade oposta da mesa. O fim da

partida é dado quando um dos jogadores atinge a marca de sete gols.”

(VIEIRA, THEODORO, TRIAS, MIRANDA, TORI, 2006).

Utilizando-se de projeção, o ARHockey simula a mesa em que o jogo é

executado, a fim de permitir, que não só os jogadores possam visualizar o jogo, mas

também os expectadores, como podemos observar na figura 2 a projeção liberta os

Page 16: Desenvolvimento de Realidade

16

jogadores de utilizar equipamentos acoplados ao corpo, prejudicando o conforto e a

mobilidade, também ajuda para que os custos do projeto seja inferior se comparado

com o uso de um sistema que utilize HMD (Head Monted Display).

Figura 2 – Exemplo de funcionamento do AIRockey.

Sem dúvida trata-se de uma aplicação muito interessante, em RA, podendo

ser covertida para uma plataforma móvel, como Android, para substituir o uso dos

HMDs em um projeto mais caro.

2.1.3 Jogo com RA em dispositivos móveis

Nesta aplicação o jogador deve posicionar a mira sobre o disco voador

através de movimentos com o aparelho e então pressionar o botão simbolizando

“atirar” para destruir o disco voador, estes, construídos em tempo de execução do

aplicativo, e utilizam a câmera do celular para capturar o ambiente, conforme a

figura 3.

Figura 3 – Exemplo de funcionamento do jogo de discos voadores.

Page 17: Desenvolvimento de Realidade

17

O sistema desenvolvido no projeto consiste em um jogo de primeira pessoa

onde a temática do jogo é “atingir pequenos discos voadores que estão invadindo a

terra”. O jogo tem um tempo fixo de duração e existe uma quantidade pré-definida

de discos voadores a abater. O nível de dificuldade do jogo aumenta quando o

usuário alcança o objetivo e passa para a próxima fase. Os discos voadores tentam

escapar da mira da arma do usuário para se defenderem, cabendo ao jogador ser

mais ágil no movimento do dispositivo móvel. Os discos voadores do jogo são

suplementos virtuais adicionados ao ambiente real capturado pela câmera do

telefone celular. Estes suplementos reagem em relação aos movimentos do

dispositivo executado pelo usuário.

“(...) através de um vídeo do ambiente real se extrai informações de

uma imagem, como: movimento, distâncias e objetos. Com essas

informações podemos adicionar suplementos virtuais ao vídeo, que são

capazes de interagir e reagir com objetos do mundo real ou com os

movimentos do usuário. (LUZ, GARCA, MARCHIORO, 2008)

Como o demonstrado neste artigo, é possível criar jogos e outros tipos de

aplicativos utilizando RA para dispositivos móveis, isto é algo que está se tornando

mais comum, em uma rápida pesquisa na loja de aplicativos do Android, a Google

Play, é possível identificar vários aplicativos que apresentam a tecnologia.

Page 18: Desenvolvimento de Realidade

18

3 FERRAMENTAS PARA DESENVOLVIMENTO DE RALIDADE AUMENTADA

PARA DISPOSITIVOS MÓVEIS

Existem diversas ferramentas para desenvolvimento de Realidade

Aumentada, porém, ainda não são todas as ferramentas que estão disponíveis para

se trabalhar com Android ou outro SO para dispositivos móveis. Após diversas

pesquisas foram identificadas as principais ferramentas para este tipo de aplicação,

mostraremos neste capitulo as principais:

3.1 NYARTOOLKIT

Uma das ferramentas mais conhecidas para desenvolvimento de RA em

computadores é a ARToolkit, que pode ser descrita por Forte:

“(...) o ARToolkit é uma biblioteca de desenvolvimento de aplicações

de RA, bastante popular dentre os pesquisadores da área (ARTOOLKIT,

2009) isto acontece pelo fato da biblioteca fornecer soluções de rastreamento

3D, em tempo real, com baixo custo computacional. (LEPETIT; FUA, 2005

apud FORTE,2009) Além disso o ARToolkit é amplamente utilizado por ser

distribuído livremente para fins não comerciais incentivando a liberdade para

os usuários executarem, estudarem e modificarem os códigos disponíveis na

biblioteca, de acordo com as suas necessidades” (SANTIN, 2008, apud

FORTE; 2009)

A NYARToolkit é uma variante da ARToolkit construída em Linguagem Java,

visando a portabilidade desta tecnologia para dispositivos móveis capazes de

executar aplicações em Java, o que é muito comum na maioria dos dispositivos, o

funcionamento da biblioteca é idêntico á ARToolkit. A biblioteca utiliza-se de

marcadores, aos quais atrela um objeto virtual conforme descrito por Forte (2009) e

representado nas figuras 4 e 5:

“(...) um marcador nada mais é do que uma imagem, com

características específicas, impressa sobre papel comum. Tais características

consistem em uma borda grossa na cor preta com uma imagem em seu

centro” (KATO et al, 2002 apud FORTE,2009).

Page 19: Desenvolvimento de Realidade

19

“(...)Pode-se usar qualquer símbolo para identificação das placas,

obtendo-se melhores resultados quando usados símbolos assimétricos, para

ajudar no processo de orientação do objeto virtual em relação às bordas do

marcador” (KATO et al, 2002 apud FORTE; 2009).

Figura 4 – Exemplo de marcador típico captado pela NyARtoolkit

“(...) O objeto virtual é sobreposto ao marcador deforma que, quando

usuário movimenta o marcador, o objeto é movido junto, dando a impressão

de que ambos estão colados ou fazem parte de uma só estrutura.” (FORTE;

2009)

Figura 5 – Aplicação criada pela NyArtoolkit.

A NyArtoolkit é uma biblioteca muito interessante, com diversos recursos que

podem ser empregados na criação de aplicações, porém, a detecção das tags é um

tanto precária, depende muito da qualidade de captura da imagem, iluminação,

qualidade da impressão do marcador, entre outros fatores que podem atrapalhar a

experiência de utilização.

Page 20: Desenvolvimento de Realidade

20

3.2 OPENCV

A OpenCV é uma biblioteca desenvolvida pela Intel inicialmente em C/C++,

totalmente livre e voltada ao uso educacional e comercial, o nome vem de Open

Source Computer Vision Library, a biblioteca possui módulos de processamento de

imagem e vídeo, estrutura de dados, álgebra linear, e interface gráfica do usuário,

controle de mouse e teclado e vários algoritmos de visão computacional. Utiliza

processamento em tempo real de imagens, é descrita por Marengoni e Stringhini

como:

“(..) A biblioteca OpenCV foi desenvolvida pela Intel e possui

mais de 500 funções. Foi idealizada com o objetivo de tornar a visão

computacional acessível a usuários e programadores em áreas tais

como a interação humano-computador em tempo real e a robótica. A

biblioteca está disponível com o código fonte e os executáveis

(binários) otimizados para os processadores Intel. Um programa

OpenCV, ao ser executado, invoca automaticamente uma DLL

(Dynamic Linked Library) que detecta o tipo de processador e carrega,

por sua vez, a DLL otimizada para este. Juntamente com o pacote

OpenCV é oferecida a biblioteca IPL (Image Processing Library), da

qual a OpenCV depende parcialmente, além de documentação e um

conjunto de códigos exemplos.” (MARENGONI, STRINGHINI; 2009)

A biblioteca também dá suporte a Java, Pyton e Visual Basic, tornando-se

multiplataforma, podendo ser utilizada em diversos dispositivos e sistemas

operacionais, inclusive mobile, como o Andoid e IOS.

É aplicada em várias áreas, como: Identificação de objetos, sistema de

reconhecimento facial, reconhecimento de movimentos, realidade virtual, realidade

aumentada e robôs móveis.

Page 21: Desenvolvimento de Realidade

21

3.3 QUALCOMM VUFORIA

A Qualcomm, uma empresa que desenvolve microprocessadores para

smartphones e tablets, desenvolveu um SDK que pode trabalhar junto ao SDK do

Android, assim como também se torna uma extensão para o Unity, tal

desenvolvimento com a finalidade de tornar mais fácil o processo de criação de uma

aplicação em realidade aumentada para Android, com visão de que lançando

tecnologias melhores, mais pessoas teriam acesso a dispositivos com os

processadores da empresa.

A tecnologia dispensa um marcador aparente (chamada de markless ou

tagless), o que abre a possibilidade de utilizar vários tipos de imagens como

marcador, em exemplo algumas pedras (mostrada na figura 6), flores, entre outras

fotos.

Figura 6 – Exemplo de marcador reconhecido pela Vuforia.

A SDK também pode analisar objetos complexos, que tenham imagens em

todos os lados, como a caixa de um produto, com esse tipo de tecnologia é possível

fazer com que o objeto virtual interaja com o objeto real, como por exemplo, passar

por traz do objeto e criar uma sensação de profundidade.

“(...) Um dos maiores desafios encontrados no desenvolvimento de

aplicações em Realidade Aumentada, está na necessidade de rastreamento

do ponto de vista do usuário. A fim de conhecer sob que ponto de vista

desenhar o objeto virtual, a aplicação precisa conhecer o ponto de vista em

que o usuário está olhando no mundo real” (ARTOOLKIT; 2012).

Page 22: Desenvolvimento de Realidade

22

Este problema torna-se de mais fácil resolução utilizando a Unity com a

Vuforia, pois em um marcador são identificados vários pontos, utilizando a leitura da

diferença de contraste proporcionada pela mudança repentina de cores em uma

imagem, montando-se uma grade da qual é possível apresentar de maneira mais

precisa o ponto de vista do usuário, inclusive tornando o rastreamento e

apresentação do marcador mais precisa em relação às outras ferramentas

apresentadas anteriormente.

Page 23: Desenvolvimento de Realidade

23

4 DESENVOLVIMENTO DE APLICAÇÃO DE REALIDADE AUMENTADA

UTILIZANDO QUALCOMM VUFORIA E UNITY 3D

Após estudarmos as ferramentas disponíveis para criação de aplicações em

Realidade Aumentada para Android, foi escolhida uma delas para apresentar e

desenvolver uma aplicação. Utilizaremos a API Vuforia juntamente com o Unity 3D.

Para começar é necessário acessar o site dos fabricantes, e fazer o download

das respectivas ferramentas, ambas tem suporte apenas para Windows ou Mac.

Download da Unity: www.unity.com/download (é necessário baixar a versão para

Android).

Download da Vuforia: https://ar.qualcomm.at/qdevnet/sdk/android

(é necessário fazer o cadastro no site antes de realizar o download, se encontra

totalmente gratuita, porém a Qualcomm mantêm restrita apenas as pessoas que

fizerem cadastro no site da empresa.)

Caso utilize o Windows, faça download do arquivo de nome: vuforia-unity-

android-1-5-10.exe (deverá ter atualizações, então o numero da versão poderá

mudar)

4.1 INSTALAÇÃO

Após fazer o download de ambos, é necessário instalar a Unity 3D, o

processo de instalação é simples.

Execute o arquivo vuforia-unity-android-1-5-10.exe dê a ele permissão para

execução como administrador. Após o carregamento teremos a seguinte tela da

figura 7.

Page 24: Desenvolvimento de Realidade

24

Figura 7 - Instalação Vuforia – Acordo de licença.

Nesta tela são apresentados todos os termos de serviço e processos

referentes a licença de utilização da extensão, é necessário ler até o fim para que a

opção “I accept the terms of the license Agreement” fique disponível, após basta

clicar em “Next”.

Na próxima tela, é possível escolher em qual pasta serão instaladas as

extensões, selecione conforme sua preferência, lembrando de deixar em um local de

fácil localização.

Basta então clicar em “Install” para que o programa de instalação execute sua

função, o processo é rápido, podendo levar menos de 2 minutos. Basta então clicar

em “Done” assim que o processo estiver terminado.

4.2 EXTENSÕES

Após finalizar serão gerados 7 arquivos na pasta escolhida (figura 8), estes

arquivos são extensões que podem ser executados cada um separadamente pela

Unity (o formato é UNITYPACKAGE e caso o Unity esteja instalado pode executar

este formato de arquivo.)

Page 25: Desenvolvimento de Realidade

25

Figura 8 – Pacotes instalados pela Qualcomm Vuforia

Cada arquivo é responsável por uma biblioteca, cada biblioteca realiza uma

função diferente, veremos quais são:

4.2.1 Vuforia Android

A base QCAR da extensão, onde estão contidas as APIs para funcionamento

da câmera do Unity como uma Câmera de Realidade Aumentada. (Estudaremos

esta função posteriormente).

4.2.2 Vuforia imagetargets

O pacote de extensão responsável por trazer os marcadores padrões da

Vuforia, apesar de ser possível criar seus próprios marcadores, é necessário

instalar esta extensão para que ela crie a estrutura de pastas necessárias.

(Estudaremos a função desta extensão posteriormente, assim como a criação de

Marcadores).

4.2.3 Vuforia framemarkers

Extensão responsável pela criação de Frame Markers, que são “marcadores

de bordas” onde podemos obter um marcador a partir de um impresso que tenha

padrões nas bordas conforme a figura 9, este tipo de aplicação pode ser comparado

aos marcadores gerados pela NyArtoolkit.

Page 26: Desenvolvimento de Realidade

26

Figura 9 – Exemplo de FrameMarkers (QUALCOMM VUFORIA; 2012)

4.2.4 Vuforia multitargets

Extensão responsável pela criação de aplicações que utilizem marcadores

múltiplos (mais de um marcador) ou então seja um objeto cúbico (figura 10) que

todos os lados sejam maçadores, em exemplo, uma caixa de cereais.

Figura 10 – Exemplo de Multitaregets (QUALCOMM VUFORIA; 2012)

4.2.5 Vuforia virtualbuttons

Extensão com botões virtuais, muito útil para criar aplicações nas quais se

utilizem botões, para executar algum comando em na aplicação, como por exemplo,

modificar a cor do meu objeto virtual ou dar play em alguma função (Figura 11). Os

botões virtuais funcionam a partir da sobreposição de algo (o dedo, por exemplo) no

local do marcador onde o botão foi alocado.

Page 27: Desenvolvimento de Realidade

27

Figura 11 – Exemplo de botões virtuais. (QUALCOMM VUFORIA; 2012)

4.2.6 Vuforia backgroud terxtureacces

Extensão que permite a alocação de um vídeo sobrepondo o marcador, muito

utilizado em campanhas publicitárias.

4.2.7 Vuforia occlusion management

Extensão que permite a oclusão do objeto virtual dentro do objeto real, para

isto ele utiliza-se de shaders. Para que funcione com mais realidade, é interessante

combinar esta extensão com a extensão de multitargets, fazendo assim com que 0

objeto virtual pareça estar dentro de uma caixa, como o exemplo apresentado na

figura 12.

Figura 12 – Exemplo de oclusão em realidade aumentada (QUALCOMM VUFORIA; 2012)

Page 28: Desenvolvimento de Realidade

28

Certamente que cada uma dessas extensões devem ser estudadas, para se

chegar á criação das mais diversas aplicações, No escopo deste trabalho, porém,

estudaremos apenas as necessárias para se compilar uma aplicação simples.

4.3 CRIAÇÃO DE TRACKABLES ( OU TARGETS)

Para que as aplicações de Realidade Aumentada funcionem, sempre é

necessária a criação de marcadores ou targets. No caso da Vuforia, a Qualcomm

nomeou tais marcadores como Trackables. Estas Trackables são marcadores não

aparentes, chamados de Markless ou Targless, pois em comparação com os

marcadores classicamente utilizados nas aplicações de RA, não apresentam, de

maneira evidente, os aspectos de marcação utilizados pelo software no

processamento do marcador.

O Trackables pode ser criado através do site da Qualcomm:

https://ar.qualcomm.at/qdevnet/projects em “My Trackables”.

Clicando em “New Project”, em seguida abrirá um campo para a nomeação do

projeto, nomeie e clique em continuar. Na nova página aberta, temos a opção de

renomear o projeto ou apagar o projeto (caso tenha feito algum outro projeto

anteriormente) também tem a opção “Create a Trackable”, esta é a opção que deve

ser clicada para se criar um marcador.

Após clicar na opção citada, abrirá uma nova tela (figura 13), aonde é

necessário nomear o marcador, selecionar então o formato do marcador, se é um

simples marcador, se é um marcador do tipo caixa para a utilização de Multitargets

ou se é um objeto do tipo cubo também para a utilização de Multitargets, e também

a largura da imagem (não é necessário especificar a altura).

Page 29: Desenvolvimento de Realidade

29

Figura 13 – Tela de cadastro de Trackables.

Clicando em “upload” e então selecione o arquivo (são suportadas apenas

imagens em JPG ou PNG, não superiores a 2MB). Após o carregamento da imagem,

uma nova página será exibida (figura 14), nesta tela é possível identificar na imagem

quais pontos foram relevantes para o sistema e qual a “nota” atribuída a esta

imagem, certamente que quanto maior a “nota” mais precisa será a aplicação.

Figura 14 – Imagem detectada pelo sistema de Trackables.

Clicando então em “Back” a página redireciona para a primeira tela aonde foi

criada a aplicação, disponibilizando o link “Download Selected Trackables”, para

fazer o download é necessário selecionar a Trackable e clicar no link citado.

Ao clicar, uma nova tela é exibida (figura 15), nela, deve se escolher o

formato de download, se será utilizado para compilar juntamente ao SDK do Android

(utilizando o Eclipse, Netbeans, etc.) ou se será no formato Unity, da qual no

Page 30: Desenvolvimento de Realidade

30

momento do download já é gerado um arquivo .unitypackage e pode ser executado

(e instalado) no momento em que o Unity estiver aberto.

Figura 15 – Salvando uma Trackable.

O arquivo, caso seja utilizado, deve ser instalado assim como as outras

extensões.

4.4 PROGRAMANDO UM PROJETO SIMPLES

Após ter instalado o Unity a Vuforia e criado um Trackable, pode-se dar inicio

à criação de uma aplicação simples, apenas com intuito de mostrar como funciona a

ferramenta.

Abra o Unity, crie uma nova aplicação.

Para este exemplo de aplicação, utilizaremos apenas as seguintes extensões:

vuforia-android-xx-yy-zz.unitypackage;

vuforia-imagetargets-android-xx-yy-zz.unitypackage.

Ao executar os arquivos .unitypackage com o Unity aberto, ele importa

automaticamente as bibliotecas e cria as estruturas de pasta. Os arquivos

importados estarão na aba “Projects” na pasta “Editor”.

Page 31: Desenvolvimento de Realidade

31

Figura 16 – Estrutura de pastas da Unity com a biblioteca Vuforia instalada.

A partir deste ponto, exclua a “Main Camera”, acesse a pasta Qualcomm

Augmented Reality > Prefabs e arraste o componente ARCamera para a Scene.

O componente ARCamera contem toda a programação para que os

dispositivos reconheçam que a câmera é a do ambiente aonde a aplicação será

executada. As funções do prefab ARCamera podem ser modificadas conforme a

necessidade do usuário, na tela mostrada na figura 17.

Carregue então o objeto prefab ImageTarget para a Scene, o ImageTarget é

responsável por configurar a imagem que será o Target (ou marcador) nele é

possível selecionar entre uma das Trackables pré instaladas ou então baixadas no

tópico anterior. Para configurar, basta selecionar no campo “Data Set em Image

Target Behaviour (Script)” o Trackable que será utilizado. Todas as outras

configurações serão carregadas automaticamente conforme pode ser acompanhado

na figura 18.

Page 32: Desenvolvimento de Realidade

32

Figura 17 – Funções do prefab ARCamera.

Figura 18 – Funções do prefab Image Target - Atribuição de target.

Page 33: Desenvolvimento de Realidade

33

Esta função faz com que apareça na Scene a imagem como um plano, para

que seja possível trabalhar sobre ela, posicionar o objeto em 3D.

É necessário então retornar ao Prefab ARCamera e marcar o Active Data Set

em Data Set Load Behaviour e marcar o mesmo Data Set que foi utilizado no

ImageTarget. Isto fará com que a câmera reconheça o padrão que foi estabelecido

ao criar o Trackable

Figura 19 – Adicionando o padrão de reconhecimento da imagem.

Este foi o ultimo passo de configuração, então é necessário posicionar o

objeto em 3D, neste exemplo um cubo, clicando em GameObjects > Create Other >

Cube e também um ponto de Luz, adicionando em GameObjects > Create Other >

Direcional Light.

Page 34: Desenvolvimento de Realidade

34

Posicione estes objetos sobre o marcador respeitando o plano representado

pelo marcador conforme a figura 20. E então basta compilar e executar a aplicação

em um dispositivo com Android 2.1 ou superior.

Figura 20 – Imagem da Scene criada.

4.5 COMPILAÇÃO

Para executar a aplicação e testar, é necessário ter um dispositivo Android,

não é possível executar a aplicação através de emulador, pois o Unity não tem esta

função pré-instalada. Para compilar o projeto, é necessário ir a File > Build Settings,

na nova tela que surgiu selecionar a plataforma Android e clicar sobre Switch

Plataform, o Unity se encarregará de modificar todas as bibliotecas para que

funcione em um dispositivo Android, isto demanda de certo tempo.

Após finalizar o passo anterior, é necessário clicar em Player Settings, na

barra lateral direita do Unity teremos várias opções, primeiro é necessário,

estabelecer um ícone para o aplicativo, este pode ser uma das diversas texturas

instaladas no Unity, ou então, uma nova imagem que fora colocada previamente na

pasta Textures do Unity. Então é necessário clicar em Resolutio & Presentation que

escolha qual será a orientação de tela em que o aplicativo irá trabalhar, a versão 3.5

do Unity permite a AutoRotação ou AutoOrientação. Também é necessário escolher

a versão mínima do sistema Android em que a aplicação irá funcionar, para isto

clique sobre Other Settings, e escolha a opção “Android 2.2 ‘Froyo’ (API Level)”, isto

significa que funcionará apenas em dispositivos com Android 2.2 ou superior, a

tecnologia da Vuforia, não consegue ser executada em dispositivos com versões

Page 35: Desenvolvimento de Realidade

35

anteriores a esta, pois não tem bibliotecas suficientes, isto sem contar que podem

ter hardwares que não terão poder de processamento para a execução da aplicação.

A partir deste ponto, é necessário salvar a Scene, para isso vá a File > Save

Scene. Isto faz com que o trabalho não seja perdido, e faz as principais bibliotecas

de uma aplicação Android sejam salvas junto do projeto, para evitar erros na

compilação.

Então retorne a File > Build Settings, e clique sobre “Build”, este abrirá uma

janela aonde é possível selecionar a pasta aonde seu aplicativo será criado,

selecione conforme preferência, não se esquecendo de guardar em qual pasta está

para encontrar posteriormente.

Após o processo terminar, basta copiar o arquivo e transferir para o

dispositivo com Android, podendo ser via cabo USB, Bluetooth ou FTP.

4.6 INSTALAÇÃO NO ANDROID

Para que seja instalada a aplicação criada, é necessário seguir alguns

procedimentos (tais procedimentos podem sofrer alteração segundo a versão do

Android adotada. Para o escopo deste trabalho nos limitamos à versão 2.3.7).

Para que o “Build & Run” funcione acesse Configurações > Aplicativos >

Desenvolvimento, Habilite “Depuração USB”, isto permite com que o Unity instale e

execute remotamente através do cabo USB o programa criado, isto facilita muito o

processo de teste do software. Então, é necessário estar com o dispositivo com a

tela ativada para que a aplicação execute.

Para instalar o aplicativo, depois de compilado, é necessário também acessar

Configurações > Aplicativos > Gerenciar Aplicativos, e habilitar “Fontes

desconhecidas” também é necessário ter um gerenciador de arquivos instalado no

dispositivo Android, o mais recomendado é o Astro File Manager.

Page 36: Desenvolvimento de Realidade

36

Com o Gerenciador de Arquivos instalado, basta encontrar o arquivo .apk

gerado no tópico 4.5, clicar sobre ele e instalar no dispositivo.

A partir deste ponto basta acessar o aplicativo.

4.7 PROJETO LABRINTO

Entre os diversos projetos que podem ser criados utilizando as tecnologias

demonstradas com a biblioteca da Vuforia, para este projeto foi criado um labirinto

virtual, e nele vários componentes, como uma esfera que pode ser movimentada

pelo jogador através dos manípulos no touchscreen, e vários cubos com o efeito

“rigid body” da Unity, que concede ao objeto propriedades físicas, como gravidade,

aceleração e velocidade, cada um dos cubos foram posicionados com um peso

diferenciado, podendo então “cair” no ambiente real. O funcionamento do projeto

pode ser demonstrado pela Figura 21, retirada por “screenshot” de um dispositivo

Android, onde no primeiro quadro é demonstrada a câmera do dispositivo

capturando o marcador, no segundo quadro o labirinto virtual já está montado sobre

a imagem real é possível observar que os cubos estão se mexendo se comparado

ao terceiro quadro, e então o ultimo quadro demonstra que foi possível movimentar o

objeto virtual esférico pela tela através dos manípulos.

Figura 21 – Funcionamento do projeto labirinto.

Page 37: Desenvolvimento de Realidade

37

5 CONSIDERAÇÕES FINAIS

Com base nos capítulos apresentados, é possível concluir que a tecnologia

aqui mostrada, utilizando a Unity e a biblioteca Vuforia, é superior em alguns

aspectos, como a possibilidade de trabalhar utilizando uma imagem complexa de

marcador não visível (markless/tagless), também a utilização de uma ferramenta que

proporciona um ambiente de trabalho em 3D, facilitando muito a criação de uma

aplicação.

Outro recurso interessante de se utilizar a Unity 3D é a possibilidade da

implantação de recursos pré existentes da ferramenta, como detecção de coalizão,

objetos de corpo rígido, adição de scripts em C# ou JavaScript, dando margem a

criação de um jogo que utilize RA como ambiente de base.

Também foi possível observar o crescimento das aplicações em RA voltadas

para dispositivos móveis, dispositivos estes, que a cada dia ganham maior

capacidade de processamento, câmeras com maior qualidade, entre outros aspectos

positivos os dispositivos móveis tem chegado mais próximos das configurações

encontradas nos computadores, valendo-se da maior portabilidade.

Além da fácil distribuição dos aplicativos quantos publicados na plataforma

Google Play (loja on-line de aplicativos), pois todos os aparelhos com Android e

conexão a internet, podem acessar e baixar a aplicação.

Como foram observados, vários projetos que já foram criados em RA, como

instrumentos educacionais, campanhas publicitárias, projetos de arquitetura, entre

outros, podem ser adaptados para funcionamento em uma plataforma móvel,

melhorando assim a possibilidade de levar essa aplicação a pontos fora de um

laboratório, sala de aula, ou escritório.

Para trabalhos futuros é possível desenvolver uma aplicação similar ao

MagicBook, criando um jogo para cada página do livro a ser lido. Também é possível

criar um jogo de AIRockey aonde a câmera do dispositivo capta um marcador em

mãos, e é jogado sobre uma mesa virtual. A tecnologia Qualcomm Vuforia

apresentada neste projeto pode ser amplamente utilizada para a criação de jogos

que utilizem RA, devido a integração com a Unity, um framework para criação de

jogos.

Page 38: Desenvolvimento de Realidade

38

6 REFERÊNCIAS BIBLIOGRÁFICAS

CITAÇÃO:

DONIZELLI, T. M. A Utilização da Realidade Virtual no Ensino de Conceitos de Física 2007. FORTE, C. E. Implementação de Laboratórios Virtuais em Realidade Aumentada

para Educação à Distância. 2008.

FORTE, C. E. Software Educacional Potencializado com Realidade Aumentada Para

Uso Em Física e Matemática. 2009.

FORTE, C. E.; KIRNER C. Usando Realidade Aumentada no Desenvolvimento de

Ferramenta para Aprendizagem de Física e Matemática. 2009.

HYAET, J.B. NYARTOOLKIT + PROCESSING: A Short Tutorial, 2011.

KEAHLER, G. Learning OpenCV, O’REILEY MEDIA INC. 2008.

LUZ, M.; GARCIA L. F. F.; MARCHIORO G. F. Realidade Aumentada Em

Dispositivos Móveis, 2008.

MARENGONI, M.; STRINGHINI, D. Introdução a Processamento de Imagens e

Visão Computacional Usando Opencv, 2008.

MARENGONI, M.; STRINGHINI, D. Tutorial: Introdução à Visão Computacional

Utilizando Opencv, 2008.

VIEIRA, B. N. et al. ARHOCKEY: Um Jogo Em Realidade Aumentada Baseada Em

Projetores, 2007.

Page 39: Desenvolvimento de Realidade

39

SITES:

ANDROID SDK: Disponível em: http://developer.android.com/sdk/index.html

Acesso em Fevereiro/2012.

ARTOOLKIT. Disponível em: http://www.hitl.washington.edu/artoolkit/

Acesso em Fevereiro/2012.

OPENCV. Disponível em: http://opencv.willowgarage.com/wiki/

Acesso em Fevereiro/2012.

QUALCOMM VUFORIA. Disponível em:

https://developer.qualcomm.com/develop/mobile-technologies/augmented-reality

Acesso em Fevereiro/2012.

UNITY 3D. Disponível em: http://unity3d.com/

Acesso em Fevereiro/2012.