Upload
doanthien
View
217
Download
0
Embed Size (px)
Citation preview
Av. Bento Gonçalves, 9500 - Setor 4 - Prédio 43.412 - Sala 219 - Bairro Agronomia
CEP 91.509-900 - Porto Alegre - RS - Tel. (51) 3308-6835 - Fax (51) 3308-7142
Home: www.sbc.org.br - E-mail: [email protected]
José Carlos Maldonado (ICMC-USP)
Presidente
Marcelo Walter (UFRGS)
Vice-Presidente
Luciano Paschoal Gaspary (UFRGS)
Diretor Administrativo
Paulo Cesar Masiero (ICMC-USP)
Diretor de Finanças
Lisandro Zambenedetti Granville (UFRGS)
Diretor de Eventos e Comissões Especiais
Mirella Moura Moro (UFMG)
Diretora de Educação
Karin Koogan Breitman (PUC-Rio)
Diretora de Publicações
Ana Carolina Brandão Salgado (UFPE)
Diretora de Planejamento e Programas Especiais
Thais Vasconcelos Batista (UFRN)
Diretora de Secretarias Regionais
Altigran Soares da Silva (UFAM)
Diretor de Divulgação e Marketing
Ricardo de Oliveira Anido (UNICAMP)
Diretor de Relações Profissionais
Carlos Eduardo Ferreira (USP)
Diretor de Eventos Especiais
Marcelo Walter (UFRGS)
Diretor de Cooperação com Sociedades Científicas
Publicação anual | Porto Alegre | v. 1, n. 1 | p. 1-158 | 2011
Tendências e Técnicas em
Realidade Virtual e Aumentada
TODOS OS DIREITOS RESERVADOS: Permitida a reprodução total ou parcial desde que citada a fonte (Tendências e
Técnicas em Realidade Virtual e Aumentada, Porto Alegre-RS, Brasil). Na ausência da indicação da fonte ou expressa
autorização da Instituição, é proibida a sua reprodução total ou parcial, por qualquer meio ou processo, especialmente por
sistemas gráficos, microfílmicos, fotográficos, reprográficos, fonográficos ou videográficos. Vedada a memorização e/ou
recuperação total ou parcial, bem como a inclusão de quaisquer partes desta obra em qualquer sistema de processamento
de dados. Essas proibições aplicam-se também às características da obra e à sua editoração. A violação dos direitos autorais
é punível como crime (art. 184 e §§, do Código Penal, cf. Lei no. 6.895, de 17-12-1980) com pena de prisão e multa, conjun-
tamente com busca e apreensão e indenizações diversas (arts. 122, 123, 124 e 126, da Lei no. 5.988 de 14-12-1973, Lei dos
Direitos Autorais).
Tendências e Técnicas em Realidade Virtual e Aumentada.
Sociedade Brasileira de Computação - SBC. -- n. 1 (2010) - .
Porto Alegra, RS: a Instituição, 2010- .
v.
Anual
ISSN
1. Realidade Virtual, Realidade Aumentada I. Siscoutto,
Robson. II. Brega, Jose Remo Ferreira.
CDD 006
Este periódico foi especialmente edi-
tado, em tiragem limitada, a partir
de conteúdos desenvolvidos para os
minicursos apresentado durante o
XIII Simpósio de Realidade Virtual
e Aumentada, realizado em Uber-
lândia – MG de 23 a 26 de Maio de
2011, promovido pela Sociedade
Brasileira de Computação e organi-
zado pela Universidade Federal de
Uberlândia - UFU.
Uberlândia - MG
2011
Índice para catálogo sistemático:
1. Realidade Virtual e Aumentada: Ciência da Computação 006
Dados Internacionais de Catalogação na Publicação (CIP)
EDITORES
Robson Augusto Siscoutto
José Remo Ferreira Brega
CONSELHO EDITORIAL
Alexandre Cardoso, UFU
Edgard Afonso Lamounier Júnior, UFU
José Remo Ferreira Brega, UNESP
Luciano Pereira Soares, PUC – RJ
Robson Augusto Siscouto, UNOESTE
Veronica Teichrieb, UFPE
PRODUÇÃO GRÁFICA
Canal 6 Projetos Editoriais - www.canal6.com.br
Este periódico será registro no IBICT.
5
Sumário
Prefácio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Developing Android Applications for AugmentedReality . . . . . . . . . . . . . 9
Philip Michel Duarte, Edson Alyppyo Gomes Coutinho
and Selan Rodrigues dos Santos
Prototipagem Rápida de Aplicações Interativas de Realidade
Aumentada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Claudio Kirner
Desenvolvendo um Ambiente Virtual em Realidade Aumentada
para Web com FLARToolKit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Robson Augusto Siscoutto e Levrangeles da Silva Filho
Jogos Educacionais Baseados em Realidade Aumentada e
Interfaces Tangíveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Rafael Roberto, João Marcelo Teixeira, João Paulo Lima, Manoela
Milena Oliveira da Silva, Eduardo Albuquerque, Daniel Alves, Veronica
Teichrieb e Judith Kelner
Desenvolvimento de Aplicações em Realidade Aumentada e
Diminuída para iPhone e iPad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Luciano Silva e Ismar Frango Silveira
7
Prefácio
O Symposium on Virtual and Augmented Reality (SVR) é um evento promovido
pela Sociedade Brasileira de Computação que integra pesquisadores e profissionais inte-
ressados em conhecer e atualizar conceitos relacionados à realidade virtual e aumentada
(RVA). Tradicionalmente, o evento oferece minicursos com o objetivo de apresentar ten-
dências e metodologias aplicadas visando promover habilidades e difusão de conheci-
mentos entre seus participantes.
Com o intuito de continuar a democratização e a disseminação do conhecimen-
to sobre RV e RA, neste ano de 2011, os minicursos do SVR2011 lançam mais uma
obra oferecendo uma visão conceitual e tecnológica destinada ao desenvolvimento de
aplicações de realidade aumentada – RA. Os cinco minicursos oferecidos, forma orga-
nizados em capítulos neste livro. No primeiro capítulo é apresentado uma visão geral
do processo de desenvolvimento de aplicações de Realidade Aumentada com AndAR,
uma biblioteca baseada em Java que implementa a ARToolKit na plataforma Android. O
segundo capítulo aborda o problema da autoria de aplicações de Realidade Aumentada,
relacionado com o desenvolvimento e uso das aplicações, em diversos níveis. É descrita
uma ferramenta de autoria e seu uso na prototipagem rápida de aplicações interativas
de Realidade Aumentada por não programadores. O terceiro capítulo apresentar o pro-
cesso de desenvolvimento de aplicações de Realidade Aumentada na web com FLAR-
ToolKit, explorando suas potencialidades quanto à integração de aplicações e suporte
na sua utilização em diferentes plataformas para acesso a ambientes de RA. O quarto
capítulo apresenta os conceitos básicos sobre Realidade Aumentada, interfaces tangíveis
e jogos para educação de modo que a integração destes possa melhorar a experiência de
alunos em sala de aula. O quinto e ultimo capítulo, detalha a organização funcional das
arquiteturas do iPhone e iPad, bem como seus ambientes e ferramentas de programa-
8
ção, detalhando algumas aplicações em Realidade Aumentada e Diminuída para ambas
as plataformas.
Esta obra foi o resultado do trabalho de 16 autores da comunidade brasileira de
RVA e constitui uma referência para atualizações tanto por profissionais quanto por
pesquisadores que queiram conhecer estas tendências e técnicas de RVA, além de ser
útil como porta de entrada para estudantes, iniciantes e profissionais de outras áreas do
conhecimento interessados em ingressar no fascinante mundo da tecnologia de realida-
de virtual e aumentada.
Agradecemos a todos que colaboraram com a realização dos minicursos e com a
edição deste livro. Desejamos a todos uma excelente leitura!
Os organizadores
Robson Augusto Siscoutto - [email protected]
José Remo Ferreira Brega - [email protected]
9
Developing Android Applications for AugmentedReality
Philip Michel Duarte, Edson Alyppyo Gomes Coutinho
and Selan Rodrigues dos Santos
Departamento de Informática e Matemática Aplicada (DIMAp) Universidade
Federal do Rio Grande do Norte (UFRN) Natal – RN – Brazil
{philipmichelduarte,alyppyo}@gmail.com and [email protected]
Abstract
In this chapter we present an overview of the development process of an Augmented
Real¬ity (AR) application with AndAR, a Java based software library that implements
ARToolkit on the Android platform. This example application recognizes markers and su-
perimpose images over live video of the environment. To make this possible, first we pres-
ent some basic concepts related to the development of mobile applications on the Android
platform, Augmented Reality, and the library AndAR. After that, we provide a detailed
step by step explanation about the application’s implementation.
1. Android
Android is an open platform for mobile development which was designed to abs-
tract the differences between platforms and to provide a uniform use experience. It was
acquired by Google in 2005 with the objective of being an alternative to mobile appli-
cation devel-opment. Since then Android has been growing fast and incorporating a
lot of different features such as multi-touch, multitasking and Virtual Private Network
(VPN) support.
JPG, PNG and GIF), SQLite, rich development environment, application fra-
mework, op¬timized graphics and another features that are hardware dependant. Figu-
re 1 illustrates the Android Architeture, its layers and its components.
10
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
Figure 1. Th e Android’s Architeture. Source: developer.android.com.
Sometimes people may get confused when they try to define Android. Android
depends on the Linux kernel for core systems, but it is not considered embedded Li-
nux because the standard Linux utilities, such as X-Windows and GNU C libraries,
are not supported. We write Android applications in the Java language, but they will
not run within a Java ME virtual machine. Furthermore, Java-compiled classes and ex-
ecutables will not run natively in Android [Meier 2010], so we can not use standard Java
libraries like Swing. Android has its own libraries, optimized for usage in an embedded
environ¬ment.
Android is also not a Google’s answer to the iPhone. Android is an open-source
software stack produced by the Open Handset Alliance and designed to operate on any
device that meets the requirements, while the iPhone is a proprietary platform released
by Apple [Meier 2010].
1. Why choose Android?
According to oDesk’s online employment report for October 2010 [oDesk 2010],
the demand for Android developers has increased by 710% when compared with the
same month in last year. This means just one thing: a new market trend. In 2010, An-
droid based mobile phones sales has passed iPhone unit sales. All these facts are a
direct re-sult of a well designed platform that daily attracts an incresing number of
developers and users.
11
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
Another appealing aspect of Android is its online store: the Android Market (mar-
ket.android.com). There are a lot of applications (or just “apps”) available to all kinds of
customer. The applications are divided by categories and can be found separated in free
or paid categories. On the website you can find the most popular appli¬cations featured,
and the number of applications available are growing continuously. In fact, this number
has risen almost fivefold in less than one year (see Figure 2).
Figure 2. Number of apps available on Android Market. Source: appbrain.com.
2. Augmented Reality
Augmented Reality (AR) is a growing area in Virtual Reality (VR) research. AR
sys¬tems generate composite views for the user, a combination of the real scene viewed
by the user and a virtual scene generated by the computer that augments this scene
with some additional information. The principal function of AR is to enhance the user’s
per¬formance and perception of the world [Vallino 1988]. The goal of AR is to create
the sensation that virtual objects are present in the real world. So, AR is most effective
when virtual elements are added in real time. Because of this it is generally used in digi-
tal video image. The simplest example of AR is overlaying a 2D image on a digital video
[Cawood and Fiala 2008]. However you may use 3D models as well, how we will show
you in the next sections.
12
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
When virtual objects are added to a scene, it is known as visual AR. AR elements
are not visible to the naked eye so we need some sort of display to see them. This display
can be a simple computer monitor or a television, or more sophisticated devices like a
head-mounted display (HMD). With the advance of the technology, new interfaces are
becoming available.
Figure 3. Examples of fiducial marker.
Figure 4. A model 3D renderized above a marker. Source: computerarts.co.uk.
However, one characteristic does not change: the necessity of an indication of the
place where you want to add information in a digital image. In general, we indicate it
with AR markers. The simplest form of marker is a unique pattern that is visible to the
AR camera and can be identified. This marker, as known as fiducial marker (see Figure
3), will be used like reference to the AR system software that will renderize the object as-
sociated to it. Fiducial means the markers are used as a trusted reference. Figure 4 shows
a model 3D renderized after the AR system had recognized the marker.
It is possible create AR effects without markers. This is known as markerless AR.
To substitute the markers, you can track the position of LEDs or another reflexive ob-
jects, like balls. You can also use natural features of the scene, like corners of a window
or energy switches instead of the markers. Another possibility is the use of textures
like markers.
13
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
2.1. Augmented Reality Application Domains
AR can be applied in a lot of different domains and the researchers have proposed
some ideas that will help the profissionals of many different areas. We will see some
examples of these ideas now.
The medical area can be considered the most important domain of AR applica¬tion.
With the facilities that the AR systems can bring doctors can not only increase their ac-
curacy in the diagnostic but can get it faster too. Pre-operative imaging studies of the
patient can provide the surgeon with the necessary of internal anatomy, how is illustra-
ted by Figure 5.
Figure 5. AR applied on medical field. Source: University of Rochester.
Military area also can be beneficiated. They have been using displays in cockpits
that presents information to the pilot on the windshield of the cockpit or the visor of
their flight helmet. AR can be applied in the training as well. The soldiers can visualize
many precise information about the place where they are and about the groups, choos-
ing the best strategy for the moment (Figure 6).
14
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
Figure 6. AR applied to military training. Source: augmented-reality.com.
We can use AR for architecture and urban planning as well. Figure 7 repre¬sents
the ARTHUR project from the University College London. In this project, people use
some special glasses to visualize and discuss models in design meetings. The virtual
models can be manipulated and the interface can develop a series of simulations
and visu¬alisations of aspects of building performance. This interface was especially
designed for interactive use and is a easy way to visualize the entire project in group
[Penn et al. 2004].
Figure 7. AR applied to architetural design. Source: UCL Bartlett School of Graduate Stu-
dies.
These are just some projects in AR area and you can easily find a big variety of simi-
lar projects on the internet. The area is growing fast, and the tendency is to carry on this
way in the next years, which means that more ideas on the area will appear very soon.
15
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
2.2. ARToolKit
ARToolKit is a software library for building Augmented Reality (AR) applications
that involve the overlay of virtual imagery on the real world. We just have to use a mark-
er and one camera. When the user moves the marker in front of the camera, the virtual
character renderized moves with it and appears attached to the real object. One of the
key difficulties in developing Augmented Reality applications is the problem of tracking
the users viewpoint. In order to know from what viewpoint to draw the virtual imagery,
the application needs to know where the user is looking in the real world.
ARToolKit uses computer vision algorithms to solve this problem. The ARToolKit
video tracking libraries calculate the real camera position and orientation relative to
physi¬cal markers in real time. This enables the easy development of a wide range of
Augmented Reality applications. Some of the features of ARToolKit [ARToolKit 2011]
include:
Single camera position/orientation tracking; •
Tracking code that uses simple black squares; •
The ability to use any square marker patterns; •
Easy camera calibration code; •
Fast enough for real time AR applications; •
SGI IRIX, Linux, MacOS and Windows Operational System distributions; •
Distributed with complete source code. •
3. AndAR
AndAR is a library that empowers Android applications with Augmented Reality
features. The whole project is released under the GNU General Public License (GPL).
AndAR is, essentially, a ARToolKit port for Java under the Android platorm.
3.1. Preparing Our Development Environment
For Android development, we are going to need the Eclipse IDE, the ADT plugin,
the Android SDK and an Android Virtual Device. The Eclipse IDE can be downloaded
free of charge from http://www.eclipse.org/. Both the ADT plugin and the latest An-
droid SDK can be downloaded from the Android developer portal at http://developer.
android.com/in¬dex.html. The Android Virtual Device can be downloaded from the
Android SDK Man¬ager, which comes with the SDK itself. The source code of the An-
16
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
dAR project, along with the examples, can be downloaded directly from the SVN server,
as shown below:
svn checkout http://andar.googlecode.com/svn/trunk/ andar-read-only
3.2. Architecture of an AndAR Application
AndAR is an Augmented Reality Framework for Android. It offers a pure Java,
object-oriented API. The figure below shows a simplified class diagram of an application
that makes use of AndAR.
Figure 8. Class diagram of an AndAR application
Every Android application consists of one or more Activities. An Activity is a
vi¬sual user interface, targeted to a single purpose. Only one may be active at a time.
AndAR provides a special Activity class, AndARActivity, which takes care of Augmen-
ted Real¬ity related features such as opening the camera, detecting the markers and
displaying the video stream. One must extend AndARActivity in order to create an
Augmented Reality application. The AndARActivity class also offers a method that
allows the application to take screenshots.
On the diagram (see Figure 1.8), the extended AndARActivity class is called Cus-
tomActivity. It must implement the method onCreate and register the objects that
AndAR will process. The objects processed by AndAR are instances of classes which
extend ARObject.
The ARObject is an abstract class that represents an association between a marker
and a 3D object. It receives the name of the marker as an argument on it’s constructor
17
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
and must implement two methods: init and draw. The init method is used to ini-
tialize any members that may need a working OpenGL context. The draw is called by
AndAR whenever the object associated with a specific marker needs to be rendered.
Rendering with AndAR is provided through OpenGL ES 1.0.
In order to draw a custom object, the method draw has to be overridden. Before this
method is invoked a transformation matrix will already have been applied. This means
the object will be alligned to the marker, without any further steps. This method will not
be invoked, if the marker belonging to this object is not visible.
The class ARRenderer is reponsible for the rendering that is not associated with An-
dAR markers. If you want to mix augmented with non augmented 3D objects you may
provide a class implementing the OpenGLRenderer interface. There are three methods
defined by this interface. initGL being called only once, when the OpenGL surface is
initialized. Whereas setupEnv is called once before the augmented objects are drawn. It
can be used to issue OpenGL commands that shall effect all ARObjects, like initializing
the lighting. In the draw method you may draw any non augmented 3D objects. It will be
called once for every frame. Specifying such the described renderer is optional.
3.3. Using Our Own Markers
Using your own markers with AndAR is easy. Just as with ARToolKit, each marker
corre¬sponds to a file containing the necessary information for AndAR to identify the
markers. Each marker file must be placed inside the assets folder of the Eclipse project.
The file name corresponding to the marker must be passed as an argument in the AR-
Object con¬structor in order to associate a marker with an object. In order to generate
the marker files, one may proceed just as with ARToolKit, using the mk_patt program.
3.4. Programming in AndAR
In order to illustrate the concepts regarding the development of Augmented Reality
ap-plications in Android, we provide an in-depth walkthrough of a simple application
using AndAR called ObjViewer. The purpose of this application is showing the reader
how to develop a simple, yet fun AR application for Android with AndAR. The Ob-
jViewer al¬lows the user to visualize 3D models built with modelling packages such as
Blender or 3DS Max in an Augmented Reality context. One thing to be mentioned is
that this tutorial needs an actual Android device to be properly tested, since the current
Android Emulator does not feature camera support.
18
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
3.4.1. Step I -Planning Our App
Android applications are made up of activities. Each activity manages and exibits
a set of views and controls. As a rough idea, we may think of activities as realizations
of use-cases from the Unified Modelling Language (UML). For the ObjViewer, we will
need only one activity, which will be responsible for rendering the current frame as
captured by the camera and overlaying it with the AR objects.
Let us create a new android project from the Eclipse interface and name the activ¬ity
something you like. We will use through this tutorial the name ObjActivity. You will
end up with something like the source code in Figure 9.
public class ObjActivity extends Activity { / Called when the activity is first created . /
@Override public void onCreate ( Bundle savedInstanceState ){ super . onCreate ( savedInstanceState );
setContentView ( R . layout . main ); } }
Figure 9. Class ObjActivity.
Now we must prepare the project for AndAR. There are three ways of adding
An¬dAR to our project. The first and most cumbersome is adding each of the source
files to our project. The second is compiling the source yourself and generate a AndAR.
jar file, which is a better approach. What we are going to do is use an already provided
An-dAR.jar file, which can be found in the lib directory of the AndARModelViewer
example (included in AndAR).
Open up your favorite SVN client and download the source code of the An-
dAR project. Once the download is finished, we must add the AndAR.jar file to the
CLASS¬PATH of our project. Right-click on the project, select Properties. Go for Java
Build Path on the left menu, and pick the Libraries tab. Here, click on “Add External Jar”
and browse through the directories to the andar-read-only/AndARModelViewer/ lib/
AndAR.jar file. After this step, we are all set.
Now refer to code presented. Our app will need an Augmented Reality view, which
is what the AndAR provides. Thus, our activity needs to extend AndARActivity, and
not Activity. We must also call startPreview at the end of the onCreate method, in order
to start fetching frames from the camera. Once you change the superclass and correct
the imports, Eclipse will complain the method uncaughtException isn’t imple¬mented.
It is an abstract method from AndARActivity, called whenever AndAR detects a severe
exception on one of it’s threads. We must finish the application when we receive such
call (see Figure 10).
19
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
public class ObjActivity extends AndARActivity { / Called when the activity is first created . /
@Override public void onCreate ( Bundle savedInstanceState ){ super . onCreate ( savedInstanceState ); startPreview () ;
}
@Override public void uncaughtException ( Thread arg0 , Throwable arg1 ){ finish () ; } }
Figure 10. Class ObjActivity modified.
This code should already compile and execute. After deploying the application into
an Android device, one should see the frames captured by the camera. No augmented
reality feature is displayed, however. That is due to the fact that we did not register
any objects to be detected by AndAR at all. On Step II we will go through the details
of setting up lights and render states in OpenGL, and on Step III we will learn how to
actually load, register and display 3D models.
3.4.2. Step II -Setting Up The Scene
It is time to set up the scene. Thus, what we want to do in this step is setup the
lighting of our scene. Granted, the 3D objects will be displayed in an augmented reality
context. But the same can not be said about the lights. AndAR will not detect light sour-
ces on the frames captured by the camera, and we must set those manually if we expect
to see our objects.
AndAR provides an interface, called OpenGLRenderer, which we can imple¬ment
in order to detect and react to specific rendering events. Specifically, it has 3 meth¬ods:
initGL, setupEnv and draw. The initGL method is called once the OpenGL surface is
created. The setupEnv method is called just before an AR object is rendered. The draw
method is called at the end of the rendering process.
We will use the OpenGLRenderer to setup our lighting. We will use the initGL me-
thod to setup a few OpenGL states that remain unchanged throughout the application,
such as face-culling, smooth shading and depth testing. The setupEnv will be mainly
used to setup the light. We also disable texturing on setupEnv, since we won’t be loading
any textures. We will leave the draw method empty, since we won’t be doing any non-AR
rendering this time.
The code listing in Figure 11 shows how we setup our scene. One thing to keep in
mind are the FloatBuffers. On regular OpenGL with C/C++, one need not deal with them.
They are allocated on native memory, and act as an optimization often made by Java ports
of OpenGL, preventing and intermediary copy from managed arrays to native memory.
20
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
public class CustomRenderer implements OpenGLRenderer { // Light definitions private float [] ambientlight1 = {.3 f , .3 f , .3 f ,1f }; private float [] diffuselight1 = {.7 f , .7 f , .7 f ,1f }; private float [] specularlight1 = {0.6 f , 0.6 f , 0.6 f ,1f }; private float [] lightposition1 = {20.0 f , 40.0f ,100.0 f ,1 f };
private FloatBuffer lightPositionBuffer1 = GraphicsUtil . makeFloatBuffer ( lightposition1 );
private FloatBuffer specularLightBuffer1 = GraphicsUtil . makeFloatBuffer ( specularlight1 );
private FloatBuffer diffuseLightBuffer1 = GraphicsUtil . makeFloatBuffer ( diffuselight1 ); private
FloatBuffer ambientLightBuffer1 = GraphicsUtil . makeFloatBuffer ( ambientlight1 );
// Do non Augmented Reality stuff here. Will be called once after all AR objects have // been drawn . The transformation matrices may have to be reset .
public final void draw ( GL10 gl ){}
// Directly called before each object is drawn. Used to setup lighting and // other OpenGL specific things . public final void setupEnv ( GL10 gl ){ gl . glEnable ( GL10 . GL_LIGHTING );
gl . glLightfv ( GL10 . GL_LIGHT1 , GL10 . GL_AMBIENT , ambientLightBuffer1 ); gl . glLightfv ( GL10 . GL_LIGHT1 , GL10 . GL_DIFFUSE , diffuseLightBuffer1 ); gl . glLightfv ( GL10 . GL_LIGHT1 , GL10 . GL_SPECULAR , specularLightBuffer1 ); gl . glLightfv ( GL10 . GL_LIGHT1 , GL10 . GL_POSITION , lightPositionBuffer1 ); gl . glEnable ( GL10 . GL_LIGHT1 );
gl . glDisableClientState ( GL10 . GL_TEXTURE_COORD_ARRAY );
gl . glDisable ( GL10 . GL_TEXTURE_2D ); }
// Called once when the OpenGL Surface was created . public final void initGL ( GL10 gl ){ gl . glDisable ( GL10 . GL_COLOR_MATERIAL ); gl . glEnable ( GL10 . GL_CULL_FACE ); gl . glShadeModel ( GL10 . GL_SMOOTH ); gl . glDisable ( GL10 . GL_COLOR_MATERIAL ); gl . glEnable ( GL10 . GL_LIGHTING ); gl . glEnable ( GL10 . GL_CULL_FACE ); gl . glEnable ( GL10 . GL_DEPTH_TEST ); gl . glEnable ( GL10 . GL_NORMALIZE );
} }
Figure 11. Class CustomRenderer
Now that we already have our CustomRenderer implemented, it is time to make
use of it! Open up ObjActivity.java and locate the onCreate method. Here, instanciate a
CustomRenderer object and pass it as the sole argument of the method setNonARRen-
derer of the AndARActivity super class. You will end up with something like the code
in Figure 12.
public void onCreate ( Bundle savedInstanceState ){ super . onCreate ( savedInstanceState );
CustomRenderer renderer = new CustomRenderer () ;
super . setNonARRenderer ( renderer ); startPreview () ; }
Figure 12. Method onCreate
21
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
On the next step, we will actually learn how to load, build and display 3D
Aug¬mented Reality objects.
3.4.3. Step III -Loading Obj Mesh Files
This is the principal part of our tutorial! We will learn how to load Wavefront (.obj)
mesh files into memory and how to render with AndAR.
AndAR provides a special class to deal with AR objects. Surprisingly enough, it’s
called ARObject. It has two abstract methods: init and draw. The init method is called
once, and may be used to load resources which need a working OpenGL context, such
as textures or vertex buffers. The draw method is called each frame, whenever the cor-
responding object needs rendering. One thing to notice is that the ModelView matrix is
already correctly applied when the draw method is called. One may scale or translate a
little bit, but generally the matrix set by AndAR already transforms the vertices to the
correct position.
Ok, so let us get started. The first thing we need to do is create a class called Me-
shObject (see Figure 13).
public class MeshObject extends ARObject { public MeshObject ( InputStream stream , String name , String pattern , double width , double [] center ) throws IOException , Exception { super ( name , patternName , markerWidth , markerCenter ); parseOBJ ( model_stream );
}
@Override public void init ( GL10 arg0 ){}
private FloatBuffer vbuffer = null ; private FloatBuffer tbuffer = null ; private FloatBuffer nbuffer = null ; private ShortBuffer ibuffer = null ;
@Override public void draw ( GL10 gl ){}
public void parseOBJ ( InputStream stream ){} }
Figure 13. Class MeshObject
The MeshObject class extends ARObject, as expected. On its constructor it receives
an InputStream refering to the mesh file which should be opened, a string with
the name of the object, the name of the pattern to associate with the model, the wi-
dth of the pattern and the center of the pattern. We also declare vbuffer, tbuffer, nbuffer
and ibuffer, which respectively store vertices, texture coordinates, normals and indices
and will be used when implementing the draw method. On the constructor, after calling
the constructor of the super calss, we call the parseOBJ method, which will read the
InputStream and allocate the previously refered buffers.
22
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
Since we will not really need any initialization code which refers to a GL10
in¬stance, we will leave the init method empty and jump to the parseOBJ method. The
parseOBJ method is responsible for reading the InputStream containing an .obj file and
converting its data to OpenGL format, suitable for rendering. Before attempting to read
an .obj file, however, it would be smart to know it’s structure!
The structure of a .obj mesh file is really simple. Data is written line by line, with an
identifier at the beginning of each line. Below we have a few examples of lines typically
found in .obj files (see Figure 14).
Figure 14. Examples of lines found in .obj files.
Line 1: this is a simple comment line, usually seen displaying info about the tool
that generated the file
Line 3: this line tells us to load a file named android.mtl, which will contain mate-
rial information such as diffuse, specular and ambient color, as well as the name of the
texture for that section of the mesh.
Line 5: this is a typical vertex position line. It refers to a position in model space
coordinates, which are always three-dimensional. Note that it does not refer to a
specific face.
Line 7: this line specifies a vertex normal, which are always three-dimensional.
Note that it also does not refer to a face.
Line 9: this line specifies texture coordinates, which are always two-dimensional.
Line 11: this line can be read like this: “from now on, render whatever appears with
the Material1 material”. It usually precedes a set of face lines.
23
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
Line 13: this specifies whether we want smooth shading or not. The off option
means no smooth shading.
Line 15: this single line is the most important one, since it defines a face. On .obj
files, meshes are made up of triangles or quads. a face line can represent either a tri-
angle or a quad.
The face line starts with an f identifier, then proceeds with three or four vertex
configurations. Each configuration is composed of three one-based indices (as opposed
to zero-based indices from Java and C/C++ arrays). The first refers to a vertex position;
The second, to a texture coordinate; and the third, to a vertex normal. It is easy to see
that the previous lines act as a “database” for further reference, and the face lines are
the ones to actually define the mesh structure. Vertex configurations may also appear
multiple times. We will need some sort of mechanism to detect when they reappear and
not include them twice.
It’s also worth noticing that vertex normals and texture coordinates may be absent
on the .obj file. Thus, the following lines (see Figure 15) are also valid face descriptions,
and respectively represent texture coordinates absence and vertex normals absence.
f 1//1 2//1 3//1 f 1/3
2/1 3/3
Figure 15. Valid faces descriptions.
That was brief for a mesh file description! Now, on to the parseOBJ method. We
will make a few restrictions for the sake of simplicity. We will require the models to be
composed entirely of triangle faces. Also, we will require that texture coordinates and
vertex normals are always present.
For the this method, we will need to declare a few more attributes (see Figure 16).
private HashMap<String , Integer> vertMap = new HashMap<String , Integer >() ; private ArrayList<Float> vertices = new ArrayList<Float >() ; private ArrayList<Float> normals = new ArrayList<Float >() ; private ArrayList<Float> tcoords = new ArrayList<Float >() ; private ArrayList<Integer> indices = new ArrayList<Integer >() ;
Figure 16. Th e new attributes declared.
Understanding the purpose of these attributes is crucial. They are not intended to
store the vertex positions, texture coordinates and normals as read from the file. They
are used to represent faces of the mesh. Thus, for a given face index i, vertices[i] gives its
position, normals[i] gives its normal and tcoords[i] gives its texture coordinates.
The parseOBJ method opens up an bufferedReader from the InputStream and
al¬locates three databases to store the vertices, normals and texcoords as read from the
24
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
file. It then passes all these variables as arguments for the parseLoop method if the file
is ready to be read (see Figure 17).
private void parseOBJ ( InputStream in ) throws IOException , Exception { indices . clear () ; vertices . clear () ; vertMap . clear () ;
InputStreamReader reader = new InputStreamReader ( in ); BufferedReader bf = new BufferedReader ( reader );
ArrayList<Float> db_pos = new ArrayList<Float >() ; ArrayList<Float> db_tcoords= new ArrayList<Float >() ; ArrayList<Float> db_normals = new ArrayList<Float >() ;
if ( reader . ready () ) { parseLoop ( bf , db_pos , db_tcoords , db_normals ); bf . close () ;
reader . close () ; in . close () ; }
else { bf . close () ; reader . close () ;
in . close () ; throw new Exception ("File not found!" ); } }
Figure 17. Method parseOBJ.
The parseLoop method reads the file line by line. Whenever it detects a vertex, nor-
mal or texcoord line, it stores it on the proper database by using the extract method. The
extract method simply converts a number of elements from the string array passed as an
argument into Floats and adds them to the array list passed as argument. When it finds
a face line, it retrieves the indices of each of the tree configurations presented on the
face line and add them to the indices buffer. The retrieval process is done through the
parseVertex method. After parsing the file, the method will allocate all the FloatBuffers
required for rendering and release the memory. The allocBuffers method hence converts
the data stored in the vertices, normals, texcoords and indices into FloatBuffers, suitable
for OpenGL calls (see Figure 18).
25
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
@Override public void draw ( GL10 gl ) {
super . draw ( gl );
gl . glEnableClientState ( GL10 . GL_VERTEX_ARRAY ); gl . glEnableClientState ( GL10 . GL_NORMAL_ARRAY ); gl . glEnableClientState ( GL10 . GL_TEXTURE_COORD_ARRAY );
gl . glVertexPointer (3 , GL10 . GL_FLOAT , 0, vbuffer ); gl . glTexCoordPointer (2 , GL10 . GL_FLOAT , 0, tbuffer ); gl . glNormalPointer ( GL10 . GL_FLOAT , 0, nbuffer );
gl . glDrawElements ( GL10 . GL_TRIANGLES , indices . size () , GL10 . GL_UNSIGNED_SHORT , ibuffer );
gl . glDisableClientState ( GL10 . GL_VERTEX_ARRAY ); gl . glDisableClientState ( GL10 . GL_NORMAL_ARRAY ); gl . glDisableClientState ( GL10 . GL_TEXTURE_COORD_ARRAY );
}
Figure 18. Method parseLoop.
Now we must review the parseVertex method. This method retrieves the index of
the current vertex. If the string representing the vertex of the face is already inserted in
the vertMap, we simply return its index. If it’s not, we insert each of the components in
the proper attribute list, and store its index on our vertMap (see Figure 19).
private int parseVertex ( String par , ArrayList<Float> pp , ArrayList<Float> nn , ArrayList <Float> tt )
{ if ( vertMap . containsKey ( par ) ) return vertMap . get ( par );
int index =( vertices . size () /3); vertMap . put ( par , index );
String [] aux = par . split ("/" ); Integer v = new Integer ( aux [0]) 1; Integer t = new Integer ( aux [1]) 1; Integer n = new Integer ( aux [2]) 1;
// Positions vertices . add ( pp . get (3 v ) ); vertices . add ( pp . get (1 +3 v ) ); vertices . add ( pp . get (2 +3 v ) );
/ / Normals normals . add ( nn . get (3 n ) ); normals . add ( nn . get (1 +3 n ) ); normals . add ( nn . get (2 +3 n ) );
/ / TCoords tcoords . add ( tt . get (2 t ) ); tcoords . add ( tt . get (1 +2 t ) );
return index ; }
Figure 19. Method parseVertex.
Now that we know how to load the .obj mesh file, it is time to learn how to dis-
play them on the screen as Augmented Reality objects! Surprisingly enough, that is the
26
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
sim¬plest part. This will be done in the draw method of the MeshObject class. For our
draw¬ing method, the first step will actually be calling the draw of our super class (AR-
Object) this will apply the ModelView matrix appropriate for the marker assigned to
our object.
After calling the draw method of the super class, it is time to do our magic. We are
going to draw our mesh with vertex arrays, so we must first enable those vertex arrays!
This can be done by calling glEnableClientState with the proper parameters. Since our
models always have normals and texture coordinates, we turn on GL_NORMAL_AR-
RAY and GL_TEXTURE_COORD_ARRAY besides the GL_VERTEX_ARRAY, which
we would already turn on anyway.
Then we must provite our buffers, so OpenGL actually has data to draw. This can
be done with calls to glVertexPointer, glTexCoordPointer and glNormalPointer. That is
why we needed those FloatBuffers back then!
Finally, it is time to draw the mesh. Since we have done all the hard work already,
drawing is as simple as calling glDrawElements. We are using GL_TRIANGLES, since
we restricted our .obj models to be totally triangulated. Drawing meshes with glDrawEle-
ments is actually pretty smart. We provide buffers with vertex, normal and texture data,
and OpenGL consults those buffers to draw our mesh based on an indices list that we
also provide. This way, we do not need to include data twice in our buffers when we have
a vertex shared by many faces on our mesh! We can just duplicate the indices, which cost
much less memory and is more efficient. After drawing, it is also quite polite in OpenGL
to disable the states we have enabled (see Figure 20).
@Override public void draw ( GL10 gl ) {
super . draw ( gl );
gl . glEnableClientState ( GL10 . GL_VERTEX_ARRAY ); gl . glEnableClientState ( GL10 . GL_NORMAL_ARRAY ); gl . glEnableClientState ( GL10 . GL_TEXTURE_COORD_ARRAY );
gl . glVertexPointer (3 , GL10 . GL_FLOAT , 0, vbuffer ); gl . glTexCoordPointer (2 , GL10 . GL_FLOAT , 0, tbuffer ); gl . glNormalPointer ( GL10 . GL_FLOAT , 0, nbuffer );
gl . glDrawElements ( GL10 . GL_TRIANGLES , indices . size () , GL10 . GL_UNSIGNED_SHORT , ibuffer );
gl . glDisableClientState ( GL10 . GL_VERTEX_ARRAY ); gl . glDisableClientState ( GL10 . GL_NORMAL_ARRAY ); gl . glDisableClientState ( GL10 . GL_TEXTURE_COORD_ARRAY );
}
Figure 20. Method draw.
This is it for this section. Next step we are going to finish our ObjActivity, and see
how to register our mesh for rendering.
27
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
4.4. Step IV -Putting It All Together
We have been through a lot in order to load and draw our meshes, but how do we
actually put them to good use?
Now that we have our MeshObject class, it is time to make use of it. Get a .obj model
from any modelling package, and make sure it is triangulated and has normals and
textures. Put it on the assets directory of your project. Now we want to open an Input-
Stream from that file. That can be done with help of the AssetManager class, provided
by the Android API. It has an overly complex method called open, which receives a
string with the name of the asset as single paramenter and returns our InputStream.
With the InputStream, we can create a new instance of our MeshObject class and get
ready to rock.
That is almost all there is to it! The only thing remaining is registering our object
in ARToolKit. The ARToolKit instance can be obtained from the method getArtoolkit()
from the super class AndARActivity, and can be used to register objects with the regis-
terARObject method. The final Activity class looks like the code in Figure 21.
public class ObjActivity extends AndARActivity { ARObject someObject ; ARTo-
olkit artoolkit ; AssetManager am ;
public class ObjActivity extends AndARActivity { ARObject someObject ; ARToolkit artoolkit ; AssetManager am ;
@Override public void onCreate ( Bundle savedInstanceState ){ super . onCreate ( savedInstanceState );
am = getAssets () ;
CustomRenderer renderer = new CustomRenderer () ; super . setNonARRenderer ( renderer ); try {
artoolkit = super . getArtoolkit () ; someObject = new MeshObject ( am . open ("models/monkey.obj" ) , "monkyboy" , " android . patt " , 80.0 , new double []{0 ,0}) ; artoolkit . registerARObject ( someObject ); } catch ( Exception e ){
e . printStackTrace () ; } startPreview () ;
}
@Override public void uncaughtException ( Thread thread , Throwable ex ){ Log . e ( "AndAR EXCEPTION" , ex . getMessage () ) ; finish () ;
Figure 21. Class ObjActivity -Th e final version.
And with this, we finish. Now it is time to test and verify the program. In addi¬tion to
this, you have to calibrate the application to recognize the marker that you have choosed.
28
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 9-28, jan./dez. 2011.DUARTE, Philip Michel; COUTINHO, Edson Alyppyo Gomes; SANTOS, Selan Rodrigues dos.
Developing Android Applications for AugmentedReality
5. Conclusion
In this chapter we teach how to make an application in the Android platform for
Aug-mented Reality using AndAR, a software library for building Augmented Reality
appli-cations. First we present Android and discuss a little about its functionalities and
ad-vantages. After this we talked about Augmented Reality and present some projects in
the area, including the ARToolKit. Finally, we see the details of the development of this
application in the walkthrough.
It is necessary to clarify that this is a basic application. If you liked of the ideas pre-
sented here, you have to research and go more deep on this topic. The application also is
very simple but can be used like example of the use of AndAR.
6. References
ARToolKit (2011). Artoolkit home page. Retrieved from www.hitl.washington.edu/
artoolkit/.
Cawood, S. and Fiala, M. (2008). Augmented Reality: A Practical Guide. Pragmatic
Bookshelf, 1st edition.
Meier, R. (2010). Professional Android 2 Application Development. Programmer to
Programmer. Wiley Publishing.
29
Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada
Claudio Kirner
Universidade Federal de Itajubá – UNIFEI
Abstract
Augmented reality applications are interesting, but they are difficult to develop and
customize, mainly by non-expert people. However, there are authoring tools which make
easy this development. This chapter focuses on the augmented reality authoring problem,
related to the development and use of applications. It describes an authoring tool, showing
how to use it on rapid prototyping of augmented reality interactive applications, without
the need of programming skills. A developed example using this tool is described and the
impact of this approach is discussed, considering different types of potential authors and
applications.
Resumo
As aplicações de realidade aumentada são interessantes, mas difíceis de serem de-
senvolvidas e personalizadas, principalmente por não especialistas em computação. No
entanto, existem ferramentas de autoria que facilitam esse desenvolvimento. Este texto
aborda o problema da autoria de aplicações de realidade aumentada, relacionado com o
desenvolvimento e uso das aplicações, em diversos níveis. É descrita uma ferramenta de au-
toria e seu uso na prototipagem rápida de aplicações interativas de realidade aumentada
por não programadores. Também é mostrado um exemplo desenvolvido com esta técnica
e as repercussões dessa abordagem são discutidas, levando em conta os diversos tipos de
autores e aplicações em potencial.
30
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
1. Introdução
As aplicações espaciais mediadas por computador, incluindo navegação, busca de
pontos de interesse, jogos tridimensionais, ferramentas educacionais tridimensionais,
etc., estão aumentando com o uso de realidade aumentada.
Atualmente, a convergência tecnológica permite o desenvolvimento de aplicações
que envolvem diferentes recursos funcionando juntos, como: GPS, acelerômetros, câ-
meras, telefones celulares, notebooks, ipads, etc. A criação dessas aplicações depende
fortemente de programadores e técnicos.
Entretanto, há muitas pessoas sem conhecimento de programação, interessadas em
desenvolver aplicações de realidade aumentada. Para contornar esse problema, algumas
ferramentas de autoria de aplicações estão fornecendo recursos para não programado-
res, a fim de que eles possam criar suas próprias aplicações [Seitchter, Looser e Billin-
ghurst 2008]. É importante mencionar que essas aplicações devem ser independentes
de compiladores, usando, no entanto, edição de texto, procedimentos de configuração,
interface visual e ações tangíveis.
Portanto, a principal questão deste trabalho é: como não programadores poderiam
desenvolver suas próprias aplicações de realidade aumentada, usando recursos de edi-
ção e configuração de parâmetros textuais e manipulação de elementos espaciais? Para
responder essa questão, será feita, inicialmente, uma contextualização dos conceitos en-
volvidos, levando em conta o estado da arte da tecnologia. Depois, será realizada uma
análise das ferramentas de autoria de aplicações de realidade aumentada, enfatizando
suas características relacionadas com independência de programação e/ou conhecimen-
tos técnicos. Em seguida, a ferramenta “Sistema de Autoria Colaborativa com Realida-
de Aumentada” (SACRA) será descrita e discutida, sob o ponto de vista da geração de
aplicações. Os recursos de suporte à ferramenta SACRA serão analisados e descritos e
um exemplo de aplicação será detalhado. Finalmente, serão apresentadas as tendências
da área de realidade aumentada e suas aplicações, procurando destacar características
como custo, disponibilidade, adaptação, customização e personalização.
2. Conceitos de Realidade Virtual e Aumentada
Realidade virtual (RV) e a realidade aumentada (RA) tiveram seus conceitos origi-
nados na década de 1960, com os trabalhos de Ivan Sutherland [Sutherland 1963, 1965,
1968]. De lá para cá, muita coisa mudou e a tecnologia evoluiu, exigindo, em certos
casos, uma atualização dos conceitos.
31
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
2.1. Realidade Virtual
A RV surgiu como uma primeira opção de interface tridimensional, propiciando ao
usuário interações naturais, com o uso das mãos, em ambientes virtuais renderizados na
tela do monitor, em projeções em tela, ou em projeções nos olhos, através de capacetes
de RV (Head Mounted Display – HMD). Para a interação com os elementos virtuais, são
necessários dispositivos especiais multisensoriais, como luvas com sensores e rastreado-
res, dispositivos de tato e força, mouses 3D, óculos estereoscópicos, emissores de sons
espaciais, etc.
Uma definição de RV é: “realidade virtual é uma interface computacional avançada
que envolve simulação em tempo real e interações, através de canais multisensoriais”
[Burdea e Coiffet 2003].
Outra definição é: realidade virtual é uma interface computacional que permite ao
usuário interagir, em tempo real, em um espaço tridimensional gerado por computador,
usando seus sentidos, através de dispositivos especiais.
O usuário pode perceber o mundo virtual, através de uma janela constituída pela
tela do monitor ou pela tela de projeção, ou ser inserido no mundo virtual, através de
HDM ou de salas com multiprojeção (cavernas) e dispositivos de interação.
Quando o usuário é transportado totalmente para mundo virtual, através de dispo-
sitivos multisensoriais como HDM e salas de multiprojeção, a realidade virtual é deno-
minada “Imersiva” (Figura 1a). Quando o usuário é transportado parcialmente, perce-
bendo o mundo virtual através de uma janela, como a tela do monitor ou equivalente, a
realidade virtual é denominada “Não Imersiva” (Figura 1b).
Figura 1. Realidade virtual imersiva e não imersiva
32
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
2.2. Realidade Aumentada
A definição de RA tem sido atualizada, em função da evolução tecnológica. Ini-
cialmente, o aumento do ambiente real ocorria através de elementos visuais; mas, com o
desenvolvimento de interações sonoras e hápticas associadas a posições espaciais, ocor-
rendo em tempo real, houve uma expansão no conceito.
Neste contexto, uma definição mais abrangente é que realidade aumentada consiste
no enriquecimento do mundo físico com objetos virtuais devidamente posicionados em
tempo real, através de algum dispositivo tecnológico. A Figura 2 ilustra o resultado do
enriquecimento do mundo físico com elementos virtuais.
Figura 2. Ambiente de realidade aumentada
Uma definição mais atualizada é: realidade aumentada é uma interface baseada
na sobreposição de informações virtuais geradas por computador (envolvendo imagens
estáticas e dinâmicas, sons espaciais e sensações hápticas) com o ambiente físico do
usuário, percebida através de dispositivos tecnológicos e usando as interações naturais
do usuário, no mundo físico.
Uma maneira de trazer as informações virtuais para o espaço físico do usuário
é usando uma webcam, que captura dinamicamente as imagens do ambiente físico e
rastreia determinadas posições, permitindo que o computador introduza ou acione in-
formações virtuais associadas com as posições. O resultado pode ser visto, ouvido e
sentido em monitores, projeções, capacetes e dispositivos hápticos, dando sensação de
realismo ao ambiente híbrido.
3. Trabalhos Relacionados
Durante os últimos dez anos, surgiram várias ferramentas de autoria de aplicações
de realidade aumentada, voltadas para o desenvolvimento de aplicações especiais me-
diadas por computador.
33
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
Essas ferramentas podem ser classificadas, de acordo com suas características de
programação e de projeto de conteúdo em baixo nível e alto nível, apresentando di-
ferentes abstrações de conceito e complexidade de interface [Hampshire et al. 2006],
[Seitchter, Looser e Billinghurst 2008].
Programação é, geralmente, mais complexa, apresentando mais flexibilidade e pos-
suindo menor nível de abstração de conceito do que projeto de conteúdo. Projeto de
conteúdo tende a ser menos complexo e flexível, apresentando maior nível de abstração
de conceito. Portanto, conforme a abstração de conceito aumenta, a interface fica mais
simples e menos flexível.
Ferramentas de programação são baseadas em APIs básicas ou avançadas, con-
tendo bibliotecas, envolvendo tarefas como: visão computacional, ajustes de imagem,
renderização tridimensional, sons, entrada e saída e outras funções. ARToolKit [Kato e
Billinghurst 1999], MR [Uchiyama et al. 2002] em MX [Dias et al. 2003] são exemplos
de ferramentas de programação de baixo nível, enquanto que Studierstube [Schmalstieg
et al. 2002], OrgArt [Looser 2006] e DWARF [Bauer et al. 2001] são ferramentas de pro-
gramação de alto nível.
ARToolKit é uma das primeiras ferramentas de realidade aumentada que usam mar-
cadores e visão computacional. Para utilizá-la criar aplicações de realidade aumentada,
os desenvolvedores precisam ter habilidades com programação em C/C++.
Ferramentas de projeto de conteúdo eliminam a dependência da linguagem de pro-
gramação, substituindo-a pela descrição dos objetos virtuais e de seus relacionamentos
com o ambiente real.
APRIL [Ledermann e Schmalstieg 2005] é um exemplo de baixo nível desse tipo de
ferramenta, que requer descrições em XML. Ferramentas de projeto de conteúdo de alto
nível usam interfaces gráficas de usuários (GUI) para representar as descrições e inte-
rações, como ocorre com: DART [MacIntyre et al. 2004], AMIRE [Grimm 2002], ECT
[Hampshire et al, 2006], ComposAR [Seitchter, Looser e Billinghurst 2008] e ARSFG
[Di Wu e Liu 2009].
DART é uma ferramenta implementada sobre o Macromedia Director, usando um
modelo de autoria visual do tipo “pegar-arrastar-soltar” e uma linguagem de script (des-
crições textuais) interpretada.
AMIRE baseia-se em uma estrutura que usa a tecnologia orientada a componentes,
apresentando: um conjunto mínimo de componentes para demonstração, uma coleção
de recursos reusáveis e uma ferramenta de autoria visual.
ECT é uma ferramenta de software orientada a componentes, com uma interface de
programação visual projetada para facilitar o desenvolvimento de aplicações de realidade
aumentada, por usuários com pouca ou nenhuma experiência em programação.
ComposAR é uma ferramenta extensível, para autoria de aplicações de realida-
de aumentada por usuários não programadores. Ela suporta script e interface do tipo
34
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
“pegar-arrastar-soltar”, além de entrada interpretada em tempo real e funcionalidades
adicionadas por usuários.
ARSFG é uma ferramenta de software para prototipagem rápida de aplicações de
realidade aumentada, baseada em grafos de cena, que permite colaboração remota atra-
vés de protocolo baseado em XML.
Um projeto de conteúdo em alto nível deve ser mais intuitivo e adequado para não
programadores. Por isso, exige que suas ferramentas suportem script e/ou interface visual,
novas funcionalidades adicionadas pelos usuários e interpretação em tempo real.
A ferramenta SACRA, enfocada nesse trabalho, difere das demais aqui indicadas,
uma vez que possui as seguintes características:
A ferramenta foi implementada sobre o ARToolKit;•
A autoria de aplicações depende da edição de arquivos de configuração e/ou •
de operações tangíveis;
Há diferentes níveis de autoria, que podem ser usados, dependendo das habili-•
dades dos desenvolvedores, que não precisam ser programadores;
Há um suporte colaborativo que permite múltiplos usuários remotos atuando •
no ambiente compartilhado de realidade aumentada, usando ações tangíveis.
O desenvolvedor das aplicações pode usar ações tangíveis, edição de arquivos •
de configuração, e mouse e teclado, mas o usuário final poderá interagir com a
aplicação de realidade aumentada, usando somente um ou dois marcadores.
4. Descrição da Ferramenta SACRA
O desenvolvimento de aplicações de realidade aumentada depende de: estrutura
de dados e pastas que suportam a ferramenta de autoria; interface de autoria, incluindo
tarefas de configuração e comandos; e procedimentos de utilização que permitem ao
usuário final navegar ambiente aumentado e interagir com ele.
Para facilitar o desenvolvimento de aplicações de realidade aumentada, foi criada
a ferramenta de autoria SACRA - Sistema de Autoria Colaborativa com Realidade Au-
mentada [Kirner e Santin 2009]. Essa ferramenta apresenta características próprias de
autoria e de uso, além de possibilitar a colaboração remota compartilhada.
A ferramenta SACRA foi construída sobre o ARToolKit, incluindo também fun-
cionalidades adicionais programadas em C/C++. Manuais e exemplos de aplicação do
SACRA são distribuídas livremente pelos autores [Kirner 2011].
35
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
4.1. Estrutura do Ambiente de Realidade Aumentada
RA envolve muito mais do que sobrepor objetos virtuais com o mundo físico. Neste
trabalho, o ambiente aumentado (Figura 3a) contém: objetos reais; objetos virtuais in-
terativos, que são alterados em certas situações; objetos virtuais animados, que podem
ser ativados ou desativados; objetos virtuais visíveis ou invisíveis, que desaparecem e
aparecem em certos casos; pontos virtuais visíveis ou invisíveis, que podem ser ativa-
dos ou desativados; sons associados aos objetos; e pontos, que podem ser acionados ou
desacionados, etc.
Além disso, o ambiente de realidade aumentada pode ser modificado, depois de ser
elaborado, usando criação, alteração e eliminação de pontos virtuais, objetos virtuais e
sons associados.
Figura 3. Organização do ambiente de RA
4.2. Estrutura de Dados e Pastas
A estrutura de dados do ambiente de RA (Figura 3b) a ser elaborado, tem como raiz
os marcadores de referência. Um marcador de referência possui uma base virtual asso-
ciada, contendo pontos virtuais, objetos virtuais e sons que aparecem ou são adiciona-
dos na base, de acordo com a Figura 3a. Esses elementos devem ser colocados em pastas
(Figura 3c), que o desenvolvedor deverá manipular para criar o ambiente de RA.
A ferramenta tem cinco tipos de pastas, configuráveis pelo desenvolvedor, sendo
que algumas delas podem conter arquivos também configuráveis. Essas pastas referem-
se a: posição dos pontos virtuais; posição dos objetos virtuais; objetos virtuais; texturas
e sons. Os sons podem ser associados aos objetos virtuais ou, na falta deles, às posições
dos pontos virtuais (Figura 3c). Dependendo do tipo de aplicação e do nível de autoria,
o desenvolvedor poderá manipular um conjunto menor de pastas, envolvendo somente
texturas e sons, por exemplo. Neste caso, a autoria fica extremamente simplificada, em-
36
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
bora restrita, permitindo que pessoas com pouco conhecimento de informática possam
ser autores de ambientes de realidade aumentada.
Nas seções seguintes, serão apresentados exemplos desse tipo de autoria, que é mui-
to útil para a área educacional, permitindo que professores do ensino fundamental e
médio, com poucos recursos e conhecimento na área de informática, possam desenvol-
ver aplicações educacionais específicas.
4.3. Interfaces de Autoria
Na fase de autoria, a aplicação de RA pode ser desenvolvida por meio de edição
de pastas e arquivos e/ou ações tangíveis realizadas no campo de visão da webcam. Os
recursos necessários para criar pontos virtuais, associando a eles objetos virtuais e sons,
são: marcadores de ações; botões do teclado; botões do mouse; e pastas e arquivos de
configurações.
Marcadores de Ações
Marcadores de ações permitem a execução de ações tangíveis capazes de manipular
pontos e objetos virtuais associados à base virtual, conforme a Figura 4.
Figura 4. Ambiente de RA e seus marcadores
Nesse ambiente, pontos e objetos virtuais, ligados a um marcador de referência,
possuem pequenas esferas virtuais visíveis ou invisíveis com eles associadas. Cada mar-
cador de ação também tem uma pequena esfera, virtual que pode ser manipulada pelo
usuário, visando colidí-la com alguma esfera associada ao marcador de referência.
Quando o marcador de ação é movimentado no ambiente de realidade aumentada,
sua esfera virtual serve como um ponteiro capaz de tocar as esferas virtuais associadas ao
marcador de referência, executando ações nos pontos ou objetos virtuais correspondentes.
As colisões, que selecionam os pontos ou objetos virtuais, dependem de certas situações do
marcador de ação, para que as ações sejam executadas. No SACRA, a colisão mantida por
37
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
alguns milissegundos é que seleciona o objeto, mas gestos como inclinação ou oclusão do
marcador também podem ser usados em certas situações.
Os marcadores de ações usados no SACRA são:
Inspeção: mostra o objeto virtual associado ao ponto virtual;•
Controle: mostra o próximo objeto virtual de uma lista de objetos associados •
ao ponto virtual;
Transporte: leva um objeto virtual de uma posição para outra;•
Apagamento: apaga um ponto virtual e seu objeto ou lista de objetos;•
Status: mostra uma placa virtual com informações sobre o sistema;•
Trava: trava ou destrava ações remotas em objetos associados a um ponto vir-•
tual;
Cópia: replica o objeto virtual a ser colocado em outra posição de outro mar-•
cador de referência;
Trajetória: permite criação e visualização de uma trajetória visual feita de uma •
posição a outra.
Teclado e Mouse
Algumas teclas do teclado e botões do mouse podem ativar ações complementares no
ambiente de RA, atuando sozinhos ou em conjunto com os marcadores de ações.
Essas teclas e botões podem ativar ou desativar: visualização de pontos e objetos
virtuais; operações remotas; criação de trajetórias; visualização de status; persistência de
objetos virtuais; etc. Eles também podem controlar a posição e o raio das esferas virtuais
associadas com os marcadores, para melhorar a precisão e desempenho no processo de
seleção de pontos e objetos virtuais. Quanto menor for o raio das esferas virtuais, maior
será a dificuldade de seleção, mas, em alguns casos, quando houver pontos próximos,
será necessário obter melhor precisão, para ser bem sucedido na operação.
O botão do mouse, atuando conjuntamente com o marcador de inspeção, permitirá a
criação visual de pontos virtuais no ambiente de realidade aumentada, possibilitando uma
reconfiguração posterior através da edição de arquivos de configuração.
A lista de teclas e ações do mouse que são considerados no SACRA pode ser obtida
no site da ferramenta [Kirner 2011].
Arquivos de Configuração
Os arquivos de configuração do SACRA podem ser criados pelo usuário ou edi-
tados, a partir dos arquivos contidos na versão de distribuição (Figura 5). Além disso,
também é possível editar os arquivos gerados no processo de criação visual de pontos
virtuais.
38
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
Esses arquivos contêm informações de autoria fornecidas pelo usuário, de forma a
preparar o sistema para uso ou para configurações visuais complementares.
Os arquivos de configuração editáveis são:
a) Arquivo do Marcador de Referência (refi.dat), contendo:
indicação da base virtual associada com o marcador;•
posição, orientação e escala da base virtual;•
indicação do som associado com a base virtual, se existir;•
indicação da lista de pontos virtuais;•
indicação do ponto virtual de ativação da lista.•
Figura 5. Pastas e arquivos da versão de distribuição do SACRA
Esse arquivo encontra-se na pasta <SACRA\Wrl\reference>, na versão de distribui-
ção, tendo a aparência mostrada na Figura 6a.
Figura 6. Arquivos de confi guração do SACRA
39
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
b) Arquivo da Lista de Pontos de um Marcador de Referência (prefi.dat), contendo:
posição e orientação do ponto que irá receber a lista de objetos virtuais e •
sons;
endereço da lista de objetos virtuais com seus sons.•
Esse arquivo encontra-se na pasta <SACRA\position>, na versão de distribuição
(Figuras 6b1 e 6b2).
O arquivo da Figura 6b1 foi criado por meio de edição e mostra um ponto virtual
com uma lista de objetos.
O arquivo da Figura 6b2 mostra três pontos virtuais, cada um com uma lista di-
ferente de objetos. Esses pontos virtuais foram criados por autoria visual, motivo pelo
qual possuem parâmetros não exatos.
c) Arquivo de uma Lista de Objetos Virtuais de um Ponto (ex. animais.dat), con-
tendo:
objeto virtual 1:•
indicação do modelo 3D do objeto virtual 1;•
posição, orientação e escala do objeto virtual 1;•
indicação do som associado com o objeto virtual 1.•
objeto virtual m;•
informações similares no objeto virtual 1.•
Um editor de texto simples, como o bloco de notas, pode ser usado para criar ou
editar os arquivos de configuração.
Esse arquivo encontra-se na posição <SACRA\animais>, na versão de distribuição
(Figura 6c).
Pastas
As pastas mencionadas aqui são recursos preenchidos pelo desenvolvedor não pro-
gramador, contendo informações úteis para a criação do ambiente de RA aumentada.
Há quatro pastas no sistema SACRA, contendo: informações de configuração de
posição de pontos (position); lista de objetos virtuais, contendo informações de configu-
ração de posições dos objetos virtuais e sons e os próprios objetos virtuais (ex. animais);
sons (audio); e texturas (textura), conforme a Figura 7.
40
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
Figura 7. Hierarquia de recursos do SACRA
A pasta de informações de posição de pontos (position) contém arquivos de confi-
guração relativos aos marcadores de referência, indicando seus pontos e listas de objetos
virtuais. A pasta com uma lista de objetos virtuais (ex. animais) contém o arquivo de
configuração dos objetos da lista, indicando suas posições e os sons associados, e os
próprios objetos virtuais. A pasta de sons contém todos os sons usados no sistema, in-
cluindo as narrações. A pasta de texturas (textura) contém imagens usadas nos objetos
virtuais para dar mais realismo ou passar informações.
Os conteúdos das pastas devem ser ali colocados antes de serem usados, mas alguns
deles podem ser modificados durante a fase de utilização, principalmente os arquivos
de configuração.
O SACRA também tem comandos para salvar e restaurar o ambiente de RA, de
forma que a autoria possa ser interrompida e continuada depois.
Procedimentos de Utilização
Na fase de utilização, o usuário final deverá manipular o ambiente de realidade
aumentada, usando ações tangíveis com marcadores específicos.
41
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
Os marcadores mais usados são os de Inspeção e Controle, que permitem a exploração
do ambiente, mostrando os objetos virtuais e os sons associados em cada ponto.
Entretanto, visando deixar o sistema mais potente, é possível reconfigurar o ambien-
te durante a fase de utilização, alterando o ambiente de RA inicialmente projetado. Esse
procedimento permite uma personalização do ambiente. O usuário, poderá então mudar
a visibilidade dos pontos e objetos virtuais, trocar alguns objetos virtuais por outros,
fazer cópia e movimentar objetos virtuais, eliminar pontos e objetos virtuais, etc. Essas
ações são simples e requerem menor esforço, em comparação com a autoria inicial.
Assim, a reconfiguração estática do ambiente de realidade aumentada, obtida através
de edição de arquivos de configuração, juntamente com a reconfiguração dinâmica, obtida
por meio de alteração de elementos do ambiente e de ações tangíveis importantes para a
personalização da aplicação, são muito úteis em jogos e em aplicações educacionais.
Além disso, o sistema tem um marcador de referência especial (Ref1), que permite
interligar vários usuários em rede, atuando sobre o mesmo ambiente de Ra e proporcio-
nando trabalhos colaborativos remotos. Quando o usuário coloca o marcador de refe-
rência colaborativo (Ref1), ele é conectado à rede e passa a interagir em um ambiente
compartilhado de RA, explorando e alterando os elementos local e remotamente. Esta
característica é muito útil em jogos e aplicações educacionais, permitindo o trabalho em
grupo de usuários remotos.
5. Recursos para o Desenvolvimento de Aplicações de RA
Além da ferramenta de autoria SACRA, o desenvolvedor precisará conhecer e usar
alguns softwares para ter sucesso na elaboração do ambiente de RA. Ele deverá ser capaz
de capturar, produzir e editar imagens, sons e objetos virtuais estáticos e animados.
5.1. Preparação de Imagens
As imagens, no ambiente de realidade aumentada, são utilizadas como texturas
para os objetos virtuais, visando fornecer maior realismo ou renderizar informações
(figuras e anotações) para os usuários.
Essas texturas podem ser feitas à mão e escaneadas, capturadas de bibliotecas em
repositórios multimídia ou produzidas com o uso de editores de texto e de imagens.
Qualquer editor de texto ou de texto e imagem, como Bloco de Notas, Word, Power-
Point ou recursos do OpenOffice, pode ser útil na elaboração da textura.
Para capturar texturas da tela do computador, no formato jpg, usa-se algum captu-
rador de imagem como o Free Screen Hunter [Wisdom Software 2011]. Deve-se ter um
cuidado especial para que os arquivos das texturas capturadas, produzidas ou editadas
42
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
sejam leves e com boa qualidade de imagem, para que a aplicação, envolvendo um gran-
de número de texturas, não dificulte o processo de distribuição pela Internet.
5.2. Preparação de Sons e Narrações
Os sons, acionados quando os objetos virtuais são ativados, podem ser ruídos ou
narrações. Eles podem ser obtidos de repositórios ou gravados. No caso de narrações,
a gravação é mais apropriada, uma vez que dificilmente será encontrada uma narração
específica.
Qualquer software de gravação de som pode ser usado, desde que o arquivo resul-
tante seja leve e do tipo wav, pelos mesmos motivos já explicados para imagens.
Um software de gravação de sons interessante é o Free Sound Recorder [FreeAu-
dioVideo 2011], que é bem intuitivo e permite selecionar a qualidade do som. Assim,
narrações com qualidade baixa podem ser usadas, pois o interesse está na informação.
5.3. Preparação de Objetos 3D e Animações
Como o SACRA é baseado em objetos virtuais do tipo VRML, é necessário que a
captura, produção e edição desses objetos tenha capacidade para tratar esse formato.
A captura de objetos 3D de repositórios VRML está ficando difícil, uma vez que
esse formato é um pouco antigo. No entanto, é possível usar editores de modelos 3D que
convertem outros formatos para VRML, utilizando-se assim outros repositórios mais
recentes, como o Armazém 3D do Google.
Outra maneira de se obter os objetos virtuais VRML é produzí-los diretamente,
usando textos, ou visualmente usando ferramentas como Vivaty, Blender, SketchUp,
3DS Max, etc., que possuem recursos para exportação dos modelos em VRML.
Além do modelo estático, é muito útil dispor-se de modelos animados. Os softwa-
res de modelagem já citados fazem bem essa tarefa, com destaque para o Vivaty, pela sua
leveza e simplicidade.
Da mesma maneira que as imagens e sons, recomenda-se produzir arquivos leves
para o bom desempenho do SACRA, bem como para facilitar a distribuição da aplicação
de RA.
5.4. Outras considerações
Embora o uso de vídeo e de gif animado seja interessante no ambiente de realidade
aumentada, o SACRA não permite esse tipo de recurso. No entanto, novas versões do
SACRA, como a que estamos desenvolvendo com FlartoolKit [Saquoosha 2011], deverão
43
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
permitir formatos de objetos 3D mais modernos, como COLLADA, e o uso de vídeo e
gif animado, aplicados como texturas.
6. Prototipagem Rápida de uma Aplicação de Multimídia Espacial com RA
Embora o SACRA e outras ferramentas de autoria de aplicações de RA sejam po-
tentes, muitas vezes usa-se muito pouco de suas potencialidades para desenvolvimento
de aplicações mais simples. É o caso de aplicações de multimídia espacial com realidade
aumentada, que permite o acionamento de pontos no espaço para mostrar informa-
ções interativas visuais e sonoras. Embora simples, essas aplicações atendem a maioria
das necessidades dos usuários em certos campos do conhecimento, além de serem mais
acessíveis e fáceis de serem personalizadas, por possuírem interfaces mais simples e
amigáveis. Por outro lado, essas aplicações não exploram todo potencial da renderização
tridimensional, mas este é o preço da simplicidade de elaboração e de uso da aplicação
de RA, usando multimídia espacial.
Para ilustrar o processo de prototipagem rápida de aplicações multimídia com RA,
será utilizado o desenvolvimento do jogo de perguntas e respostas P&R-RA (ou Q&A-
AR, em inglês).
O desenvolvimento do jogo pode ocorrer em dois níveis: 1º) desenvolvimento da
estrutura do jogo; 2º) desenvolvimento do conteúdo do jogo (Figura 8).
Figura 8. Diagrama de camadas de uma aplicação de RA com SACRA
Esses dois níveis de desenvolvimento podem ser obtidos por prototipagem rápida,
sendo que o primeiro, usando o SACRA, exige algum conhecimento de modelagem 3D e
posicionamento espacial, além de um certo domínio da linguagem VRML e de suas fer-
44
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
ramentas. O segundo nível limita-se ao desenvolvimento de conteúdo (texturas e sons),
permitindo que usuários sem conhecimento de programação e com o mínimo conhe-
cimento de informática, possam produzir suas próprias aplicações com pouco esforço
e rapidez. Essa situação encaixa-se perfeitamente no perfil dos professores de ensino
fundamental e médio, interessados em produzir aplicações personalizadas para as suas
salas de aula.
6.1. Descrição do Jogo Educacional de Perguntas e Respostas
O jogo educacional de perguntas e respostas suportado por RA foi elaborado como
um artefato formado por dois planos perpendiculares, contendo um plano vertical para
mostrar de perguntas e respostas e um plano horizontal para interação e complementa-
ção de informações (Figura 9a).
Figura 9. Estrutura física e virtual do jogo
O jogo é baseado em uma corrida de carros, em que o sistema faz perguntas e os
usuários respondem e verificam se as respostas estão certas ou erradas. Se um usuário
acertar, ele ganhará pontos e receberá instruções para mover seu carro para frente, no
trajeto. Se errar, ele não ganhará pontos e receberá instruções para recuar seu carro no
trajeto. O conjunto de perguntas e respostas deverá ser focado em um determinado tema
ou poderá ser de conhecimentos gerais.
O jogo tem uma série de pontos físicos coloridos nos planos e sobre os carros, além
de pontos virtuais coincidentes com os pontos físicos (Figura 9b). Um ponteiro físico
com um marcador associado será o responsável pelas interações, de forma que a ponta
do marcador tenha um ponto virtual que fará colisão com os pontos virtuais dos planos
e dos carros (Figura 10a).
45
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
Figura 10. Recursos físicos e virtuais do jogo
O ponto virtual de um carro só será ativável, quando o carro estiver sobre uma
célula da trajetória (Figura 10b), fazendo com que seu ponto físico coincida com o ponto
espacial da célula do trajeto.
Figura 11. Ambiente de RA e detalhes da interação
Para o jogo funcionar, o artefato deverá ser colocado no campo de visão da webcam
e seu aplicativo deverá ser executado. A visualização ocorrerá na tela do monitor e o
computador emitirá sons em resposta às interações (Figura 11a).
No primeiro toque no ponto da célula sobre o carro (Figura 12), o sistema apre-
sentará a pergunta ilustrada no plano vertical com as opções de resposta e informações
complementares no plano horizontal.
46
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
Figura 12. Ativação da pergunta
Além disso, o usuário deverá marcar, no plano horizontal, a opção que ele acredita
estar correta (Figura 13). Para isto ele deverá aproximar o ponteiro com o marcador
de Controle (C) do botão impresso, correspondente à opção que ele julga estar correta,
ativando-o, de forma a ficar na cor azul. Se o usuário decidir mudar a opção, ele poderá
desativar o botão ativado, usando novamente o ponteiro e ativar outro botão de sua
preferência.
Figura 13. Ativação da opção correta
O segundo toque no mesmo local (Figura 14) mostrará a resposta no plano vertical
e marcará a opção correta no plano horizontal. Se a opção marcada pelo sistema coinci-
dir ou não com a opção do usuário, ele identificará seu acerto ou erro e verá as instru-
ções sobre o que fazer, avançando ou recuando seu carro e anotando seus pontos.
47
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
Figura 14. Ativação da resposta
Finalmente, o usuário desativará os pontos ativos, preparando o jogo para o pró-
ximo usuário, e moverá o seu carro para a nova posição, de acordo com as instruções
(Figura 15).
Figura 15. Desativando os pontos e movendo o carro
6.2. Implementação da Estrutura do Jogo
A estrutura física do jogo educacional foi construída com dois planos perpendi-
culares feitos de isopor, mas poderiam ter sido usados outros materiais como madeira,
plástico, etc. O marcador, os pontos físicos (botões) e a trajetória com as células do jogo
foram impressos e colados. Os acessórios, como ponteiros com marcadores, dados e
carros, também foram construídos com isopor (Figura 9a).
48
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
A estrutura virtual foi constituída de planos e botões virtuais coincidentes com
seus equivalentes físicos (Figura 9b), para permitir a colocação de informações e intera-
ção eficiente baseados nos elementos físicos. Ao interagir com elementos físicos, os ele-
mentos virtuais serão acionados mostrando imagens e emitindo sons (Figuras 12 a 14).
O SACRA foi usado para o estabelecimento das posições dos pontos, objetos virtu-
ais e sons. O Vivaty foi usado para a modelagem dos objetos virtuais (VRML) e vincu-
lação com as texturas, contendo informações (perguntas, respostas e instruções) para
o usuário.
Os formatos do arquivo de posicionamento dos pontos, referente à estrutura (pref2.
txt), e dos arquivos com as listas de objetos virtuais de um ponto (path1.dat) podem
ser vistos na Figura 16. O jogo educacional poderá ser baixado para uso ou alteração, a
partir do site da ferramenta SACRA [Kirner 2011 ].
Figura 16. Arquivos da estrutura do jogo (pref2 e path1)
6.3. Desenvolvimento de Conteúdo e Personalização
Para permitir o desenvolvimento rápido de conteúdo, o jogo foi baseado em texturas
e sons (Figura 17) que podem ser preparados por usuários com poucos conhecimentos
de informática. Embora haja outras pastas de texturas (imagens que irão aparecer no
artefato), o desenvolvedor de conteúdo precisará acessar somente as pastas de perguntas
e respostas, utilizando os nomes dos arquivos, conforme a definição dada pelo sistema
como (qv1-1, qv1-2, qv1-n), (av1-1, av1-2, av1-n), (qh1-1, qh1-2, qh1-n) e (ah1-1, ah1-2, ah1-
n), para n perguntas no ponto 1, e assim por diante para os outros pontos da trajetória,
podendo variar o número de perguntas em cada ponto.
49
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
Figura 17. Conteúdo do jogo (texturas e sons) para uma pergunta e resposta
Essas texturas podem ser preparadas manualmente e escaneadas por usuários com
pouco conhecimento de informática, de forma a viabilizar o uso do artefato por todos os
interessados, mesmo que não possuam experiência no uso de recursos computacionais.
A Figura 18 mostra um conjunto de perguntas preparado por professores do ensino de
ciências do ensino fundamental e médio, simulando o trabalho de usuário leigo em in-
formática. Esse conteúdo foi preparado com escrita manual e colagem de figuras e, em
seguida, escaneado para uso no artefato.
Figura 18. Conteúdo feito à mão
50
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
Para os usuários com conhecimentos de informática suficientes para manipular
editores de textos e imagens, a montagem das perguntas e respostas fica mais simples
rápida, usando os recursos computacionais (Figura 19). Algum capturador de imagem
da tela do computador, como o Free Screen Hunter, será útil para a preparação das ima-
gens que serão usadas como texturas.
Figura 19. Conteúdo preparado com editores
Os sons (ruídos, músicas, narrações) poderão ser capturados de repositórios ou
gravados com algum software, como o Free Sound Recorder.
Assim, o conteúdo do jogo pode ser criado, editado ou reformulado, através da mon-
tagem de texturas e gravação ou captura de sons. Essa facilidade permite a personaliza-
ção do jogo educacional para uso em turmas ou grupos de pessoas ou alunos.
Para personalizar o jogo educacional, o professor ou supervisor deverá executar os
seguintes procedimentos:
a) Verificar as pastas de texturas relativas a perguntas e respostas para ver quan-
tas texturas existem em cada uma.
b) Preparar o mesmo número de perguntas ilustradas (para o plano vertical), per-
guntas textuais (para o plano horizontal), respostas ilustradas (para o plano
vertical) e ações de resposta (para o plano horizontal), usando um editor de
textos e os gabaritos (templates) para cada caso;
c) Capturar as partes das telas das questões, respostas e ações como arquivos de
imagem do tipo JPG, por exemplo, renomeando-os com os mesmos nomes dos
arquivos equivalentes existentes em cada pasta.
d) Substituir as texturas antigas pelas novas.
e) Gravar novos sons e/ou narrações associados com cada pergunta e resposta,
mantendo os mesmos nomes de arquivos correspondentes aos anteriores.
f) Substituir os sons e/ou narrações antigos pelos novos.
51
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
Se o professor/supervisor quiser aumentar a quantidade de perguntas e respostas
associadas com um ponto específico da trajetória, ele precisará: preparar novas textu-
ras e novos sons e/ou narrações, colocá-los nas respectivas pastas e editar o arquivo de
configuração de objetos no ponto (path(i).dat contido na pasta wrl). Além disso, novas
estruturas de perguntas e respostas (modelos VRML) deverão ser criadas por replicação
e editadas para ajustar os endereços das respectivas texturas.
No caso de diminuir a quantidade de perguntas e respostas, será necessário editar o
arquivo de configuração path(i).dat, eliminando as referências aos blocos das perguntas
e respostas a serem descartadas.
Com esse processo, o professor/supervisor poderá personalizar o jogo educacional
de forma a explorar temas específicos e diferentes quantidades de perguntas, respostas
e ações, melhorando a qualidade do jogo.
Se o desenvolvedor quiser ilustrar as perguntas e respostas com modelo 3D está-
ticos ou animados, ele poderá criar um ponto no espaço para a renderização do objeto
virtual e um ponto em algum lugar de um dos planos para servir como ativador. Para
isto, basta replicar um dos pontos da trajetória e editá-lo para exibir o objeto virtual,
além de inserí-lo no arquivo de pontos do marcador de referência.
7. Conclusões
Este trabalho discutiu a autoria de aplicações de realidade aumentada e mostrou
como a ferramenta SACRA pode ser usada para facilitar o trabalho de desenvolvimento.
Além disso, foi mostrado que, mediante certas estratégias, pode-se acelerar o desenvol-
vimento de aplicações obtendo-se um processo de prototipagem rápida.
Apesar da ferramenta SACRA ser baseada no ARToolKit e em VRML, esses recur-
sos ficam confinados e transparentes, quando se faz desenvolvimento de conteúdo, de
forma que, para o desenvolvedor final ou usuário, não interessa o que está por baixo da
aplicação, mas sim seu funcionamento e desempenho.
Mesmo assim, encontra-se em desenvolvimento uma ferramenta com o potencial
do SACRA, usando FlarToolKit, para atualizar o software e superar as restrições relacio-
nadas com o uso de vídeo. Além disso, serão incorporados módulos de inteligência, que
poderão ser associados aos objetos virtuais, visando fazer com que a nova ferramenta
seja um sistema de autoria de aplicações de hiper-realidade.
O desenvolvimento do conteúdo do jogo educacional, para ajustar-se aos temas de
interesse do professor/supervisor, mostrou-se bastante simples e rápido. Espera-se que
este seja um dos vários artefatos interativos com realidade aumentada a serem disponi-
bilizados para professores, visando elevar o nível do ensino e aprendizagem, principal-
mente na educação básica.
52
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
Com isto, espera-se contribuir para que a alta tecnologia possa ser usada por todos
os cidadãos, incluindo aqueles de classes menos favorecidas, através de aplicações com
realidade aumentada gratuitas, simples de aprender e de usar, com alta disponibilidade
e personalizável.
Agradecimentos
Agradeço ao Rafael Santin, que desenvolveu o software SACRA como trabalho de
mestrado, sob minha orientação; aos alunos Eduardo Shiwaku Okawa e Hipólito Dou-glas Moreira, que me ajudaram na digitação; às professoras Gisele Maria P. Garcia e Marília L. Paiva e Silva, pelas amostras de perguntas feitas à mão; e ao CNPq e FAPE-MIG pelo financiamento a projetos, em cujo contexto foram realizados experimentos de artefatos interativos com realidade aumentada.
Referências
Bauer, M., Bruegge, B., Klinker, G., MacWilliams, A., Reicher, T., Riss, S., Sandor, C. e
Wagner, M. (2001) “Design of a Component-based Augmented Reality Framework” In
ISAR’01, IEEE and ACM International Symposium on Augmented Reality, New York,
USA, pp. 45-54.
Burdea, G.C. e Coiffet,P., Virtual Reality Technology, Wiley-Interscience, 2nd edition,
2003.
Di Wu, Y.Y. e Liu, Y. (2009) “Collaborative Education UI in Augmented Reality” In
ETCS’09, First International Workshop on Education Technology and Computer
Science, Wuhan, China, pp. 670-673.
Dias, J.M.S. Santos, P., Bastos, R., Monteiro, L. e Silvestre, R. (2003) “Developing and
Authoring Mixed Reality with MX Toolkit”, In ART 2003, 2nd IEEE International
Augmented Reality Toolkit Workshop, Tokyo, Japan, pp. 18-26.
FreeAudioVideo (2011) “Free Sound Recorder”, http://www.freesoundrecorder.net/,
abril.
Grimm, P., Haller, M., Paelke, V., Reinhold, S., Reimann, C. e Zauner, J. (2002) “Amire
- Authoring Mixed Reality”, In The First IEEE International Workshop on Augmented
Reality Toolkit, Darmstadt, Germany, 2 pp.
Hampshire A., Seitcher, H., Grasset, R. e Billinghurst, M. (2006) “Augmented Reality
Authoring: Generic Context from Programmer to Designer”, In OzCHI’06, 18th
53
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
Australia conference on Computer-Human Interaction: Design: Activities, Artefacts
and Environments, Sydney, Australia, pp. 409-412.
Irawati, S., Green, S., Billinghurst, M., Duenser, A. e Ko, H. (2006) “An Evaluation of
an Augmented Reality Multimodal Interface Using Speech and Paddle Gestures”, In
Lecture Notes in Computer Science, 4282, pp. 272-283.
Kato, H. e Billinghurst, M. (1999) “Marker Tracking and HMD Calibration for a Video-
based Augmented Reality Conferencing System”, In IWAR’99, The 2nd Int. Workshop
on Augmented Reality, San Francisco, USA, pp. 85–94.
Kaufmann, H. e Dunser, A. (2007) “Summary of Usability Evaluations of an Educational
Augmented Reality Application”, In Lecture Notes in Computer Science, 4563, pp. 660-
669.
Kirner, C. e Santin, R. (2009) “Interaction, Collaboration and Authoring in Augmented
Reality Environments” In SVR’09. XI Symposium on Virtual and Augmented Reality,
Porto Alegre, Brazil, 2009, pp. 210-220.
Kirner, C. e Kirner, T.G. (2010) “Authoring Spatial Applications by non-Programmers
with an Augmented Reality Tool” In Web3DW 2010, IADIS Web Virtual Reality and
Three-Dimensional Worlds Conference, Freiburg, Germany, pp. 293-300.
Kirner, C. (2011) “ARAS-NP: Augmented Reality Authoring System for Non-
programmers”, http://www.ckirner.com/sacra/, abril.
Kirner, C., (2011) “Q&A-AR: augmented reality racing game based on questions and
answers”, http://www.ckirner.com/educa/, abril.
Ledermann, F. e Schmalstieg, D. (2005) “APRIL: A High-level Framework for Creating
Augmented Reality Presentations”, In VR’05, IEEE Virtual Reality 2005, Bonn,
Germany, pp. 187–194.
Looser, L., Grasset, R., Seichter, H. e Billinghurst, M. (2006) “OSGART – A Pragmatic
Approach to MR”, In ISMAR’06, 5th IEEE and ACM International Symposium on
Mixed and Augmented Reality, Santa Barbara, USA, 2 pp.
MacIntyre, B., Gandy, M., Dow, S. e Bolter, J.D. (2004) “DART: A Toolkit for Rapid
Design Exploration of Augmented Reality Experiences”, In UIST’04, 17th Annual ACM
Symposium on User Interface Software and Technology, Santa Fe, USA, pp. 197–206.
Saquoosha, T.K.A. (2011) “FlarToolKit”, http://saqoosha.net/en/flartoolkit/start-up-
guide/, março.
54
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 29-54, jan./dez. 2011.KIRNER, Claudio. Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada.
Schmalstieg, D., Fuhrmann, A., Hesina, G., Szalavari, Z., Encarnação, L.M., Gervautz,
M. e Purgathofer, W. (2002) “The Studierstube Augmented Reality Project”, Presence:
Teleoperators and Virtual Environments, 11(1), 33–54.
Seitchter, H., Looser, J. e Billinghurst, M. (2008) “ComposAR: An Intuitive Tool for
Authoring AR Applications”, In ISMAR’08, 7th IEEE and ACM International Symp. on
Mixed and Augmented Reality, Cambridge, UK, pp. 177-178.
Sutherland, I.E. Sketchpad: A Man-Machine Graphical Communication System, PhD
Thesis, MIT, January, Technical Report No. 574, University of Cambridge, UCAM-CL-
TR-574, 1963.
Sutherland, I.E. (1965) “The ultimate display”, In Proceedings of IFIPS Congress, New
York City, NY, vol. 2, May, pp. 506-508.
Sutherland, I.E. (1968) “A Head-mounted Three-dimensional Display,” In 1968 Fall
Joint Computer Conference, AFIPS Conference Proceedings, vol. 33, pp. 757-764.
Uchiyama, S., Takemoto, K., Satoh, K., Yamamoto, H. e Tamura, H. (2002) “MR
Platform: A Basic Body on which Mixed Reality Applications are Built”, In ISMAR’02,
The First IEEE and ACM International Symposium on Mixed and Augmented Reality,
Darmstadt, Germany, pp. 246.
Wisdom Software (2011) “ScreenHunter 5”, http://www.wisdom-soft.com/downloads/
setupscreenhunterfree.msi, abril.
55
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FLARToolKit
Robson Augusto Siscoutto
Universidade do Oeste Paulista (Unoeste)
Levrangeles da Silva Filho
Universidade de Cuiabá (UNIC)
Abstract
This chapter aims to present the process of developing augmented reality applications on
the web with FLARToolkit, exploring the potential of integrating and supporting applications
used in different platforms to access AR environments. Moreover, the basic components will
be presented, and the process of installing and configuring the tool, followed by the develo-
pment of a basic design with FLARToolkit, will be presented in pratice, showing the tool’s
configuration files, as well as the Action Script language, to develop new capabilities, such
as behaviors, interactions, internal and external events, scripts, and so on. The main steps of
developing AR applications’ basic interactions are shown at the end of this chapter.
Resumo
Este capítulo tem como objetivo apresentar o processo de desenvolvimento de apli-
cações de Realidade Aumentada na web com FLARToolKit, explorando suas potenciali-
dades quanto à integração de aplicações e suporte na sua utilização em diferentes plata-
formas para acesso a ambientes de RA. Além disso, estão apresentados os componentes
básicos e, na prática, o processo de instalação e configuração da ferramenta, seguido de
um desenvolvimento de um projeto básico com o FLARToolKit, apresentando os arquivos
de configuração da ferramenta, bem como a linguagem Action Script para o desenvolvi-
mento de novas potencialidades, como comportamentos, interações, eventos internos e
externos, scripts, dentre outros. Ao final deste curso são mostrados os principais passos
para a inserção de interações básicas em aplicações de RA.
56
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
1. Introdução
Uma biblioteca popular que contribuiu bastante para o desenvolvimento de aplica-
ções de Realidade Aumentada (RA) foi o ARToolKit. Por exigir um baixo custo do har-
dware para a sua implementação, se tornou o software mais popular na sua categoria.
Essa biblioteca utiliza o rastreamento óptico, uma técnica de visão computacional para
identificar e estimar em tempo real a posição e a orientação de um marcador fiducial em
relação ao dispositivo de captura de vídeo (Webcam). Assim, o cálculo da correlação en-
tre os dados estimados do marcador real e a sua imagem, possibilita posicionar objetos
virtuais alinhados à imagem do marcador [Kato, 2000].
O ARToolKit é uma biblioteca de programação multi-plataforma e utilizada para
o desenvolvimento de aplicações em ambientes Desktop. Devido a esta particularidade,
o desenvolvimento de aplicações de RA pode exigir configurações variadas durante a
instalação, sendo necessária a instalação da biblioteca em cada computador, gerando
complicações ou transtornos, tanto para o usuário quanto para o programador. Além
disso, não permite o desenvolvimento de aplicações de RA na Web [HITLab, 2010].
Como alternativa para o desenvolvimento de aplicações de RA na Web tem-se a
biblioteca FLARToolKit [Saqoosha, 2010] que será apresentada neste capítulo em de-
talhes. Portanto, este capítulo tem como objetivo apresentar a FLARToolKit (seção 2),
detalhando seus componentes (seção 3), instalação e configuração (seção 4), o desenvol-
vendo na prática um projeto (seção 5) e, por fim, a implementação de novas funciona-
lidades (seção 6).
2 FLARToolKit
O FLARToolKit [Koyama, 2010] é uma biblioteca desenvolvida na linguagem Ac-
tionScript [Adobe 2010]. Esta linguagem é executada nas maiorias dos browsers Web
que possuem suporte a tecnologia Adobe Flash Player. Logo, o desenvolvimento de apli-
cativos com o FLARToolKit possibilita executar aplicações para RA na Web, fornecendo
uma maior flexibilidade na questão do acesso às aplicações, pois o usuário poderá aces-
sar de qualquer lugar, seja de um computador pessoal ou até mesmo de um dispositivo
móvel, desde que a máquina utilizada tenha suporte ao Adobe Flash Player. Além disso,
o acesso aos aplicativos pode ser tanto em uma arquitetura Cliente/Servidor quanto
uma máquina local. O FLARToolKit apresenta algumas características que devem ser
levadas em consideração, como por exemplo:
57
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Conhecer alguns pontos importantes sobre este assunto é essencial para que o •
desenvolvimento e execução de aplicações em RA com o FLARToolKit possam
ser mais eficientes;
O nível de iluminação do ambiente real que apresentará os marcadores ao •
FLARToolKit influencia na qualidade da imagem capturada pela câmera. Um
ambiente bem iluminado tende a resultar uma melhor qualidade da imagem
em relação a um ambiente menos iluminado, facilitando o trabalho do FLAR-
ToolKit no reconhecimento dos marcadores; e
Durante o desenvolvimento da aplicação, é importante trabalhar na ques-•
tão do nível de limiarização1 da imagem capturada. O reconhecimento de um
marcador depende muito da qualidade da imagem limiarizada. Logo, para um
reconhecimento mais eficiente do marcador, o nível de limiarização durante a
execução da aplicação deve ser variável, de acordo com o reconhecimento ou
não do marcador.
Aplicações de RA para Web com FLARToolKit consistem um conjunto de tecno-
logias diferentes, como linguagem de programação, ambientes para desenvolvimento,
bibliotecas externas e hardware, cada uma com suas características. É importante iden-
tificar as particularidades de cada tecnologia utilizada, visando desenvolver um projeto
de software mais robusto, tratando os possíveis impedimentos tanto durante o desen-
volvimento quanto na execução, obtendo melhores resultados e oferecendo um melhor
produto ao usuário final.
É de fundamental conhecer os passos do funcionamento de uma aplicação de Rea-
lidade Aumentada com o FLARToolKit para o sucesso da sua implementação. Segundo
Koyama (2010), os seis principais passos são:
1. Capturar a Imagem da Câmera: este é o início do ciclo. Nesta etapa, os parâme-
tros da câmera e marcadores já foram informados. A captura das imagens ou quadros é
realizada até o término da aplicação. A Figura 3.1 ilustra a imagem capturada.
1 Limiarização: Este processo consiste basicamente em separar os grupos de cinza de uma imagem. Em outras palavras, determina-se uma intensidade de cinza, chamada de limiar, que separa as partes da imagem, de forma que grupos de pixels com intensidades pareci-das sejam separados de outros [Rafael 2002].
58
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Figura 1. Imagem capturada pela câmera [Koyama, 2010].
2. Criar o Mapa de Bits da Imagem limiarizada: criar um mapa de bits da imagem
capturada preparando para realizar a detecção de possíveis marcadores na cena. A Fi-
gura 2 mostra a imagem capturada de forma limiarizada.
Figura 2. Imagem limiarizada [Koyama, 2010].
59
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
3. Detectar os Marcadores: o rastreamento dos marcadores é iniciado. Na Figura 3 é
possível visualizar (bordas destacadas) que o FLARToolKit conseguiu encontrar quatro
possíveis marcadores.
Figura 3. Possíveis marcadores detectados na cena [Koyama, 2010].
Vale ressaltar que apenas 50% da área do marcador é utilizada para realizar a aná-
lise de identificação dos marcadores cadastrados na aplicação. A Figura 4 ilustra um
possível marcador detectado pelo FLARToolKit na cena e a sua área extraída para com-
paração com os marcadores cadastrados na aplicação.
Figura 4. Área de um marcador extraída para comparação [Koyama, 2010].
60
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
4. Identificar e Comparar os Marcadores: após a detecção dos marcadores, inicia-
se o processo de comparação com os marcadores registrados na aplicação. Neste ponto,
cada marcador registrado é comparado com cada marcador identificado, de forma que
a comparação se realize através da técnica de homografia, ou seja, na qual se faz uma
comparação a cada rotação de 90º do marcador registrado com um marcador identifi-
cado, gerando um resultado de 0 a 1. Quanto mais próximo de 1 a comparação se torna
mais precisa, ou seja, é mais provável que aquele marcador identificado seja o que foi
cadastrado. A Figura 5 apresenta um exemplo de comparação. Pode-se perceber que, na
segunda linha, há uma marcação em vermelho, mostrando que a imagem do marcador
registrado e a do marcador identificado são muito semelhantes pelo resultado obtido de
0.86 e que, aparentemente, ao olho nu, são iguais.
Figura 5. Comparação dos marcadores identifi cados com um marcador registrado
[Koyama, 2010].
Neste momento, o FLARToolKit já consegue decidir quem é o marcador registrado
no aplicativo. Na Figura 6 é possível visualizar que o resultado de todo o processamento
de identificação resultou em apenas um marcador registrado.
Figura 6. Marcador reconhecido pelo FLARToolKit [Koyama, 2010].
61
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
5. Calcular a Matriz de Transformação: com os marcadores identificados, chega o
momento para preparação do posicionamento dos objetos virtuais. A matriz de trans-
formação é calculada. A câmera possui um sistema de coordenadas. Um objeto virtual
pode ser posicionado em um ponto deste sistema de coordenadas, tornando possível a
visualização do mesmo, se o ponto em que está situado estiver em uma posição visível.
Existe uma matriz 3x4 denominada matriz transformação que o FLARToolKit utili-
za para realizar um cálculo com um ponto 3D no marcador identificado. O resultado
deste cálculo determina o ponto no sistema de coordenadas da câmera em que o objeto
virtual será situado [Kirner, 2007]. A Figura 7 apresenta este relacionamento entre as
coordenadas do marcador e as coordenadas da câmera, mostrando o ponto no sistema
de coordenadas da câmera onde um objeto virtual poderia ser alocado.
Figura 7 – Relacionamento entre as coordenadas do marcador e da câmera [Kato, 2010]
Segundo [Kirner, 2007], para corrigir distorções inerentes à câmera, o ARToolKit utiliza os parâmetros de câmera. Assim como o ARToolKit, o FLARToolKit também utiliza destes parâmetros. O arquivo câmera_ para.dat encontrado na biblioteca do FLARToolKit representa estes parâmetros, sendo considerado o cerne do FLARTo-olKit, que muito provavelmente não precisará ser alterado, a não ser em casos específi-cos e em projetos mais avançados [Cabana, 2010].
6. Renderizar os Objetos Virtuais: agora que já se sabe qual objeto foi selecionado e
onde o posicioná-lo, basta apenas utilizar de uma engine 3D para renderização dos ob-
jetos virtuais na cena. A Figura 8 apresenta um objeto virtual posicionado sobre a cena
real através do marcador identificado pelo processamento.
62
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Figura 8. Objeto virtual posicionado sobre a cena real [Koyama, 2010].
Portanto, para cada quadro de imagem capturado, todo este processamento é reali-zado continuadamente, até que a aplicação seja encerrada.
3. Componentes do FLARToolKit
Conhecer os componentes do FLARToolKit é fundamental para o entendimento
de sua estrutura durante o desenvolvimento de um projeto de software. Diante disso,
as próximas seções apresentam os principais componentes, são eles: linguagem de pro-
gramação (seção 3.1), Ambiente de desenvolvimento – IDE (seção 3.2), bibliotecas e de-
pendências (seção 3.3), estrutura de diretórios (seção 3.4) e a criação de marcadores no
FLARToolKIT (seção 3.5).
3.1. Linguagem de Programação
O FLARToolKit utiliza a linguagem ActionScript 3 da Adobe, mas tem toda sua estrutura traduzida do NyARToolKit que é escrita em Java [ARToolworks, 2010]. Ac-tionScript é a linguagem de programação para os ambientes de execução Adobe Flash Player e Adobe AIR que roda sobre uma máquina virtual denominada ActionScript Vir-tual Machine (AVM). Para maiores detalhes sobre ActionScript 3 e a AVM vide Adobe (2010). Vale ressaltar que um conhecimento sobre orientação a objetos é essencial para um desenvolvimento básico de aplicações com o FLARToolKit, pois o ActionScript é orientado a objetos.
63
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
3.2. Ambiente de Desenvolvimento (IDE - Integrated Development Environment)
A escolha do IDE para o desenvolvimento de aplicações com FLARToolKit não ne-
cessita ser específica. Neste capítulo será utilizado o Flash Develop [FlashDevelop, 2011]
uma IDE de código aberto sob licença do MIT [MIT, 2011] que possui uma estrutura
voltada para o desenvolvimento de aplicações Flash. Entretanto, outras IDEs como Flex
Builder podem ser utilizados também [Adobe, 2011].
3.3. Bibliotecas e Dependências
O FlartoolKit apenas calcula a orientação dos marcadores, definindo a posição dos
objetos virtuais e outras ações como movimentação e escala, mas não renderiza os obje-
tos 3D da cena [Saqoosha, 2010]. Logo, para que isso ocorra existe a dependência de ou-
tras bibliotecas para tal. No pacote do FLARToolKit estão disponíveis algumas bibliote-
cas para renderização de objetos virtuais, como o Papervision3D e o Away3D. Sem estas
bibliotecas externas, não há como renderizar objetos 3D na cena, tornando a ferramenta
FLARToolKit impotente na criação de aplicativos para Realidade Aumentada.
Neste capitulo será utilizado o Papervision3D como renderizador dos modelos vir-
tuais [Papervision, 2010]. A Tabela 1 detalha as classes/formatos de arquivos dos mode-
los virtuais utilizados nas aplicações interpretados pelo PaperVision3D.
Tabela 1. Classes suportadas pelo Papervision3D.
CLASSE DESCRIÇÃO
Ase Permite carregar objetos exportados do 3DS Max
Collada Permite carregar cenas Collada
DAERepresenta um arquivo convertido para o formato COLLADA
1.4.1
KMZ Modelo para Google Earth
Max3DS Arquivo 3DS
MD2 Carrega um arquivo Quake 2 MD2 com animação
Sketchup Modelo do Google Sketchup
Sketchup Collada Modelo do Google Sketchup para Collada
64
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
3.4. Estrutura de Diretórios
Para a instalação do FLARToolKit deve-se, primeiramente, baixar a versão dese-
jada. O próximo passo é descompactar o arquivo no local de conveniência. Esse local
será referenciado abaixo como {FLARToolKit_ver_xx}. A Figura 9 mostra a estrutura de
diretórios da versão 2.5.4 do FLARToolKit, após descompactação.
Figura 9. Raiz da árvore de diretórios do FLARToolKit.
No diretório .settings estão contidas as configurações para o projeto na IDE Flex
Builder. O Flash Develop tem a capacidade de importar este tipo de projeto.
O diretório libs armazena todas as bibliotecas externas importadas no FLARTo-
olKit. Esta disponíveis as quatros engines 3D para renderização dos objetos virtuais 3D
- Away3D [Away3D 2010], Away3D Lite [Away3DLite 2010] e Papervision3D - e o NyAR-
ToolKitAS3, versão em código ActionScript 3 da biblioteca NyARToolKit [ARToolworks
2010] em Java, contendo a base do FLARToolKit.
O diretório resources contém as subpastas model e Data. A model é um repositório para os arquivos dos modelos tridimensionais e já está disponível um modelo de um ob-jeto tridimensional do planeta terra, sendo um arquivo no formato .dae com suas textu-ras (arquivo no formato Collada) e outro arquivo earth.blend no formato de um projeto de um programa open source para modelagem de objetos tridimensionais, o Blender. Pode-se utilizar do Blender ou outro programa para criação dos modelos 3D, desde que o formato do modelo seja aquele suportado pelo renderizador 3D escolhido. A Tabela 1 apresentou alguns formatos suportados pelo Papervision 3D, p.ex., para trabalhar com alguns tipos de modelos.
65
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Já na Data, encontram-se dois exemplos de marcadores que podem ser utilizados no FLARToolKit, o hiro-marker.pdf e o flarlogo.pdf, bem como seus respectivos arqui-vos .pat utilizados no registro durante o desenvolvimento de uma aplicação. Na seção 3.5 serão apresentados maiores detalhes sobre os marcadores. Também nesta pasta en-contram-se dois arquivos referentes aos parâmetros da câmera que devem ser informa-dos à aplicação, o camera_ para.dat e o câmera_ para_16x9.dat, ambos para informar os parâmetros de câmera, sendo o ultimo para aplicações com visão widescreen.
Na pasta src estão os códigos-fonte do FLARToolKit. Dentro desta pasta existe a subpasta examples, contendo classes com vários exemplos de aplicações possíveis com o FLARToolKit, servindo como um meio de aprendizagem da ferramenta, bem como exploração de suas funcionalidades. A pasta org é a raiz para o código-fonte do FLARToolKit contendo as classes implementadas. Estas classes serão exploradas nas próximas seções.
Ainda na raiz da árvore de diretórios do FLARToolKit, encontram-se dois arqui-
vos, .actionScriptProperties e .project, representando uma configuração para um projeto
no ambiente de desenvolvimento FlexBuilder, possibilitando a compilação dos códigos-
fonte, bem como uma implementação com as configurações do projeto original.
3.5 – Criação de Marcadores no FLARToolKIT
A criação de novos marcadores para uso no FLARToolKit é possível por meio de uma aplicativo chamado MarkerGenerator que está disponível online em Marker
Generator Online (2010). Este realiza a detecção do marcador através de uma câmera e permite salvar em disco o arquivo referente ao marcador detectado. A Figura 10 apre-senta a detecção de um marcador através do MarkerGenerator. Uma borda vermelha é gerada ao redor, indicando que o marcador foi detectado, permitindo ao usuário salvar as configurações em disco clicando no botão Save Pattern.
Figura 10 – Marker Generator em funcionamento.
66
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
A criação da identificação no interior do marcador é um fator que influência no
momento da renderização de um objeto. Deve haver uma diferença aparente a cada ro-
tação de 90º no eixo z, facilitando o trabalho do FLARToolKit na orientação x, y e z do
marcador para o posicionamento de um objeto virtual [Cabana, 2010]. A Figura 11 apre-
senta um exemplo. O marcador da esquerda é perfeito, enquanto o da direita poderia
trazer problemas devido ao seu formato simétrico durante a rotação.
Figura 11. Exemplo de marcador que poderia confundir a aplicação: a) correto e b) possí-
vel problema [Cabana, 2010].
4. Instalação e Configuração do FLARToolKit
Esta seção apresenta o processo de instalação e configuração do FLARToolKit, tor-
nando possível criar um ambiente preparado para desenvolver aplicações. Inicialmente
serão apresentados os arquivos fundamentais necessários para o desenvolvimento (4.1),
depois será descrito como realizar a instalação dos arquivos (4.2) e a configuração da
IDE Flashdevelop (4.3).
4.1. Arquivos Fundamentais
Para que seja possível a compilação dos projetos com FLARToolKit é necessário
realizar o download de alguns arquivos. Além da biblioteca, é necessário baixar o Flex
SDK, um kit para desenvolvimento de aplicações Flash fornecido pela Adobe, essencial
para compilação dos projetos. O ambiente de desenvolvimento FlashDevelop, para ser
executado, depende de uma máquina virtual Java instalada no sistema, daí a necessi-
dade do Java Runtime 6. A Tabela 2 apresenta esses arquivos, o link para se realizar o
download e suas respectivas versões.
67
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Tabela 2. Arquivos necessários para desenvolvimento com FLARToolKit.
NOME DESCRIÇÃO DOWNLOAD
FLARToolKit 2.5.4Biblioteca do
FLARToolKit
http://www.libspark.org/wiki/sa-
qoosha/FLARToolKit/downloadlist
Flex SDK 4.1
Kit de desenvol-
vimento para
compilação dos
aplicativos
http://www.adobe.com/cfusion/enti-
tlement/index.cfm?e=fl ex4sdk
FlashDevelop 3.3.1
IDE para desenvol-
vimento das apli-
cações
http://www.fl ashdevelop.org/down-
loads/releases/FlashDevelop-3.3.1-
RTM.exe
Java Runtime 6
Java Virtual Ma-
chine necessária
para execução do
FlashDevelop
http://www.java.com/pt_BR/down-
load/
4.2. Instalação dos Arquivos
Primeiramente, deverá ser extraídos para um diretório de preferência os arquivos
FLARToolKit 2.5.4 e o Flex SDK 4.1. O caminho deve ser o mais acessível de forma
que fique mais fácil para referenciar mais tarde durante o desenvolvimento. Neste caso,
ambos foram extraídos para C:\desenvolvimento\ra. A Figura 12 mostra a árvore de di-
retórios dos arquivos extraídos.
Figura 12. Diretório para Confi guração do Ambiente para Desenvolvimento com FLAR-
ToolKit.
68
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
O aplicativo FlashDevelop deve ser instalado neste mesmo local. Antes disso, é ne-
cessário instalar o Java Runtime para que seja possível a execução do FlashDevelop. Os
passos a seguir mostram os procedimentos para instalação do FlashDevelop:
Executar o arquivo FlashDevelop-3.3.1-RTM.exe e a Figura 13 será apresentada. Se
uma mensagem de alerta sobre a instalação do Flash Player 9 ou ActiveX for IE aparecer,
significa um alerta indicando que estes programas precisam ser instalados para a execu-
ção das aplicações. Depois de fechada a janela com o aviso, passe para o passo 2.
Figura 13 Primeiro passo para instalação do FlashDevelop.
Clicar em Next. Na próxima tela (Figura 14) desmarque a opção Install Flex SDK,
pois serve para instalar o SDK para desenvolvimento. Já que aqui será instalado manu-
almente, então não é necessário.
Figura 14 Segundo passo da instalação do FlashDevelop.
69
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Clicar em Next. O próximo passo é escolher o local onde será instalado. Pode ser
qualquer um de preferência. Aqui foi criada uma pasta FlashDevelop no mesmo diretó-
rio do FLARToolKit e o Flex SDK, conforme a Figura 15.
Figura 15 Terceiro passo da instalação do FlashDevelop.
Clicar em Install para instalar o FlashDevelop. Após a instalação, será apresentada
a Figura 16 indicando uma opção para consulta de um guia online do FlashDevelop.
Apenas desmarcar a opção se não houver preferência no momento.
Figura 16 Último passo da instalação do Flash Develop
Agora os arquivos necessários já estão instalados, todos no mesmo diretório e pron-to para serem utilizados. Nas próximas seções, serão apresentadas as ferramentas que farão parte do desenvolvimento prático neste capítulo.
70
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
4.3. Configuração da IDE
Para configurar a IDE é preciso informar ao FlashDevelop sobre o local do Flex
SDK para compilação dos projetos. Para isso, siga os seguintes passos:
1. Abrir o menu Tools > Program Settings ou apertar a tecla F10. A Figura 17 será
apresentada.
Figura 17 Menu para tela de confi guração do Flex SDK.
2. Selecionar AS3Context nos plugins e encontre a opção Flex SDK Location no
grupo Language, conforme pode-se visualizar na Figura 18. Informe o caminho para
o Flex SDK.
Figura 18. Confi guração do Flex SDK no FlashDevelop.
71
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Desse modo, qualquer projeto Action Script 3 criado, aberto ou importado estará pronto para ser compilado.
5. Desenvolvendo na Prática um Projeto de RA com FLARToolKit
Com base no tutorial “/Flash/Realidade Aumentada” [Cabana 2010], será desenvol-
vida uma aplicação simples, servindo de aprendizado para o entendimento do FLARTo-
olKit, mostrando, passo a passo, desde definição do projeto até o desenvolvimento do
código-fonte, sua compilação e teste.
Em termos de hardware, será utilizado uma webcam, um monitor LCD não imer-
sivo e mouse e teclado padrão. Para os softwares, o sistema operacional escolhido foi
a versão 64 bits do Windows 7 Professional, Google Chrome como navegador WEB e
FlashDevelop para IDE de desenvolvimento. O Papervision 3D será utilizado como a
engine 3D responsável pela renderização dos objetos virtuais.
Nas próximas seções serão apresentados o processo de criação e configuração de
um projeto (seção 5.1), a importação das bibliotecas necessárias (seção 5.2), a criação
e definição de uma classe e seus atributos fundamentais (seção 5.3), a implementação
de métodos e funcionalidades (seção 5.4) e, por fim, a compilação e o teste do projeto
(seção 5.5).
5.1. Criação e Configuração do Projeto
Inicialmente é necessário criar um novo projeto em qualquer diretório de preferên-
cia. Este projeto tem como objetivo apresentar uma estrutura de aplicação que propicie
um funcionamento básico de um ambiente de RA. Um projeto é apenas uma classe
Action Script, que possui algumas funcionalidades básicas e um código-fonte simplifi-
cado. Estes modelos podem ser obtidos na internet. Uma referência para este trabalho é
o Google Armazém 3D [Google 2011].
Conforme apresentado na seção 3.4 é preciso informar ao FlashDevelop sobre o local
do Flex SDK para compilação dos projetos. Logo após um projeto no FlashDevelop ser
criado para o desenvolvimento da aplicação. Os passos para criação de um projeto são:
Selecionar o item Project > New Project da barra de menus, conforme a Figura 19.
72
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Figura 19. Menu para criar um projeto no FLashDevelop.
1. Na seção Installed Templates, selecionar a opção AS3 Project, dar um nome ao
projeto no campo de texto Name e informar o local onde o projeto será armazenado em
Location. Se o local informado não existir, marcar a opção Create directory for project
para criar o diretório.Veja a Figura 20.
Figura 20 – Defi nição das propriedades de um novo projeto no FlashDevelop.
Clicar no botão OK para confirmar a criação do novo projeto.
5.3. Importação das Bibliotecas
73
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Para que seja possível criar aplicativos com Realidade Aumentada é necessário im-
portar algumas bibliotecas para o projeto. Para isto, deverá ser importado o renderiza-
dor, por exemplo, o Papervision3D, bem como o FLARToolKit e o NyARToolKitAS3. Os
passos a seguir descrevem como realizar a importação:
1. Criar um diretório para cada biblioteca na pasta lib do projeto, conforme Figura 21.
Figura 21 – Defi nição das pastas para as Bibliotecas no projeto no FlashDevelop.
2. Copiar o diretório src do FLARToolKit obtido para o diretório do FLARToolKit
do projeto, conforme a Figura 22.
Figura 22 – Copia src do FLARToolKit obtido para o diretório do FLARToolKit do projeto.
3. O FLARToolKit traz consigo em seu diretório libs o NyARToolKit e o Papervi-
sion3D. Para importar ambos para o projeto, basta apenas copiar seus respectivos src do
FLARToolKit em cada lugar correspondente no projeto, conforme a Figura 23.
74
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Figura 23 – Copia de todos os src do FLARToolKit obtido para o diretório do FLARToolKit
do projeto.
Edite o classpath do projeto, pois é necessário informar ao FlashDevelop quais bi-
bliotecas importadas devem ser utilizadas durante a compilação. Os passos a seguir
mostram como editar o classpath do projeto:
Acessar o menu 1. Project > Properties da barra de menu;
Selecionar a aba 2. Classpaths;
Selecionar a opção 3. Add Classpath;
Informar, para cada biblioteca a ser referenciada, o diretório 4. src, conforme a
Figura 24.
Figura 24 – Bibliotecas referenciadas no classpath do projeto.
75
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Após todo o projeto ser criado e configurado é possível implementar uma aplicação
em Realidade Aumentada. As pastas bin e src possuem alguns arquivos que podem ser
excluídos para que o trabalho funcione passo a passo com sucesso.
5.4. Criação e Definição de uma Classe e seus Atributos Fundamentais
Existem algumas classes que são base para realização de uma aplicação, algumas
são específicas da linguagem de programação, outras do FLARToolKit ou do Papervi-
sion3D. Cada uma destas classes será representada por atributos do projeto. A Tabela 3
apresenta as classes, o pacote que se originam e uma breve descrição de sua função.
Tabela 3 Classes Fundamentais para o Funcionamento da Aplicação Proposta.
PACOTE CLASSE DESCRIÇÃO
Flash URLLoader
Carrega dados binários ou texto através de uma URL informada. Utilizado para
carregar os parâmetros da câmera e marcador em uma aplicação de RA
Flash StagePalco de exibição principal de
conteúdo gráfi co
Flash Camera Webcam
Flash Bitmap Imagem capturada em mapa de bits
Flash Video Video para exibição do conteúdo
Flash Sprite Nó para exibição de gráfi cos/conteúdo 3D
FLARToolKitFLARRasterTh resholdAnalyzer_
SlidePTileAnalisa o nível de limiarização da
imagem
FLARToolKit FLARBaseNode Container para o modelo 3D
FLARToolKit FLARCode Marcador detectado
FLARToolKit FLARTransMatResult Matriz de transformação
FLARToolKit FLARSingleMarkerDetector Detector de um único marcador
FLARToolKit FLARParam Parâmetros da câmera
FLAToolkit FLARRgbRaster_BitmapDataRasterizador RGB - utilizado para trans-formar a imagem rgb para mapa de bits
Papervision3D Viewport3DContainer para todo o conteúdo (mo-
delo, marcador, camera3D)
Papervision3D Camera3D Câmera virtual
Papervision3D Scene3D Cena virtual
Papervision3D DAE Modelo virtual do tipo COLLADA 1.4.1
Papervision3D LazyRenderEngine Renderizador Papervision3D
76
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Como exemplo básico, será criada uma classe de nome ProjetoSimplesPapervi-
sion3D. Esta classe, do mesmo nome do projeto, será nada mais que um Sprite para
conteúdo/visualização de cenas 3D. Serão implementados os métodos responsáveis pelo
carregamento dos parâmetros de câmera e do marcador, configuração da câmera, vídeo
e alguns componentes para execução, bem como o tratamento da detecção do marcador
e o que ser feito com a falha ou sucesso deste procedimento. Os métodos dessa classe
exemplo serão descrito na próxima seção.
5.5. Implementação de Métodos e Funcionalidades
Para um melhor entendimento, serão criados métodos que representam cada etapa
do funcionamento da aplicação, claramente identificados pelos seus respectivos nomes.
Esses métodos foram criados na classe ProjetoSimplesPapervision3D e serão apresenta-
dos nesta seção, com partes do código-fonte criados no projeto da aplicação juntamente
com comentários.
O método carregar é responsável por iniciar a aplicação. Este recebe três parâme-
tros: o primeiro é o arquivo referente aos parâmetros da câmera, o segundo referente ao
arquivo do marcador escolhido e o terceiro ao arquivo para o modelo virtual tridimen-
sional. A Figura 25 apresenta o método carregar.
Figura 25. Método Carregar responsável por iniciar a aplicação.
Inicialmente, as informações passadas por parâmetro são armazenadas nas vari-
áveis locais. Em seguida, são iniciados os valores para altura e largura da tela de apre-
sentação e largura do marcador, bem como a criação da instância de um objeto do tipo
77
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
URLLoader responsável por carregar os arquivos informados para câmera, marcador e
modelo. Após isso, o método carregarParametrosCamera é chamado.
Os parâmetros da câmera serão carregados pelo método carregarParametrosCa-
mera (vide Figura 26). Primeiramente, o carregador de URL é informado para carregar
os dados binários. Antes de carregar o arquivo da câmera, um evento é adicionado na
aplicação. Este evento serve para chamar o método onParametrosCameraCarregados
quando o carregamento do arquivo dos parâmetros de câmera for carregado.
O método onParametrosCameraCarregados inicia removendo o evento referente ao
término do carregamento dos parâmetros de câmera da aplicação, já que este evento
não será mais necessário, pois o arquivo já foi carregado. Uma instância de FLARParam
é criada. O método loadARParam desta instância é responsável por atribuir os valores
obtidos do arquivo da câmera carregando às suas propriedades. O método changeScre-
enSize informa à instância sobre o tamanho da tela apresentada ao usuário, informação
importante para o funcionamento. Em seguida, o método carregarMarcador é chamado.
A Figura 26 apresenta os métodos responsáveis pelos parâmetros da câmera.
Figura 26. Métodos Responsáveis pelos Parâmetros da Câmera.
O método carregarMarcador funciona da mesma forma que carregarParametros-Camera (vide Figura 27). A única diferença é que o formato de dados informado para o carregador de URL é do tipo texto e o método a ser chamado após o carregamento do marcador é onMarcadorCarregado.
O método onMarcadorCarregado também remove o evento referente ao término do carregamento do arquivo. Após isso, uma instância de FLARCode é criada, repre-sentando o marcador em questão, recebendo como parâmetros a quantidade de divisões em largura e altura para reconhecimento do símbolo interno do marcador. O método loadARPatt desta instância atribui os dados obtidos do arquivo do marcador para seus atributos. Neste ponto, o carregador de URL não é mais necessário. Após remover sua
78
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
instância da memória, o método iniciar é chamado. A Figura 27 apresenta os métodos responsáveis pelos parâmetros do marcador.
Figura 27. Métodos responsáveis pelos parâmetros do marcador.
O método iniciar chama os métodos de configuração da câmera, vídeo, Papervi-
sion3D e FLARToolKit, conforme a Figura 28. Estes métodos serão apresentados mais
adiante. Depois de configurados, é adicionado ao stage uma instância de capturaBitmap
da classe Bitmap e uma instância de viewport3D da classe Viewport3D. Mais detalhes
sobre as instâncias vide Tabela 3.
Por fim, um evento é adicionado na aplicação (addEventListener), conforme a Fi-
gura 28. Este evento tem como objetivo chamar o método onFrameCapturado para cada
frame apresentado na aplicação. Este método é o destaque desta aplicação e será expli-
cado mais adiante.
Figura 28. Método iniciar.
79
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
O método configurarWebcam apresentado na Figura 29, primeiramente tenta reco-
nhecer a câmera instalada através do método estático getCamera da classe Camera. Se a
câmera foi detectada, esta é configurada recebendo alguns parâmetros no método set-
Mode. Os dois primeiros são a largura e altura da tela e o ultimo é quantos frames serão
executados por segundo. Se a câmera não foi detectada, uma exceção é lançada.
Em seguida, o método configurarVideo é executado. Uma nova instância de Video
é criada a partir da largura e altura da tela. Logo após isso, a instância camera é passada
para vídeo, via o método attachCamera, visando mostrar as imagens da câmera na tela.
Figura 29 Método confi gurarWebcam.
A Figura 30 apresenta o método configurarPapervision3D, responsável por confi-
gurar o que está relacionado com o Papervision3D na aplicação. Primeiramente, são
instanciados os objetos cena3D, camera3D, viewport3D, baseModelo e renderizador.
Figura 30. Confi guração do Papervision3D.
80
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Inicialmente, é instanciada um referencia para FLARBaseNode, a baseModelo, com
o objetivo de servir como base de apresentação do modelo virtual em cena. Logo depois,
é criada a instância cena3D para da classe Scene3D, representando a cena virtual do
ambiente. Depois uma instância camera3D recebe como parâmetro os parâmetros da
câmera, contendo as configurações referentes à câmera. A instância viewport3D recebe
como parâmetros informações sobre altura e largura que, no caso, será o mesmo da tela
apresentada. A instância renderizador de LazyRenderEngine recebe como parâmetros
cena3D, câmera3D e viewport3D respectivamente.
Após a criação das instâncias, é instanciado o modelo virtual no formato de ar-
quivo DAE. Por meio do método load é realizado a importação do arquivo referente
ao modelo. Após isso, o modelo é adicionado à baseModelo identificado por modelo e a
cena3D recebe esta baseModelo. A Figura 31 apresenta o diagrama que representa essas
associações.
Figura 31. Árvore de componentes na apresentação da cena.
A Figura 32 apresenta o método configurarFLARToolKit responsável por realizar
a configuração dos componentes relacionados com o FLARTollKit no aplicativo. É
instanciado o analisador de limiarização para tratamento do nível de limiarização do
ambiente (FLARRasterThresholdAnalyzer_SlidePTile). Em seguida, é criada a instância
para capturaBitmap das imagens da câmera, com algumas configurações específicas,
como largura e altura. Por fim, são instanciados os objetos para detecção de um único
marcador (FLARSingleMarkerDetector), um rasterizador de imagens RGB (FLARRg-
bRaster_BitmapData) e a matriz de transformação (FLARTransMatResult) (vídeo Ta-
bela 3 para detalhes sobre os métodos). Os demais parâmetros identificados como pa-
rametrosCamera, marcador, larguraMarcador, larguraTela e alturaTela foram definidas
no método carregar (Figura 25).
81
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Figura 32. Confi guração do FLARToolKit.
A etapa final é tratar o que será feito com cada frame processado na aplicação. A Fi-
gura 33 apresenta o método onFrameCapturado. É importante ressaltar que cada código
escrito neste método será executado para cada frame processado.
Figura 33. Execução da aplicação para cada frame capturado.
A imagem capturada pela câmera é apresentada na tela do usuário pelo método
draw(video). Em seguida, uma variável isMarcadorDetectado tratará de informar à apli-
cação se o marcador foi detectado ou não, através do método detectMarkerLite do de-
tector de marcador, juntamente com uma análise se o valor obtido na comparação de
reconhecimento está maior que 0.5. A visibilidade ou não da base do marcador, conse-
qüentemente, do modelo virtual, depende da detecção do marcador. Se o marcador foi
detectado (isMarcadorDetectado), a matriz de transformação é calculada e passada para
a base do modelo virtual (get e setTransformMatrix). Se não, o tratamento do nível de
limiarização é feito e a variável limiarizacao recebe o novo valor calculado. Ao final de
toda esta execução, o renderizador realiza a renderização do ambiente virtual na tela
sob o marcador.
82
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
5.6. Compilação e Testes do Projeto
Uma vez pronto o projeto, basta realizar a compilação do mesmo, para que seja
possível realizar os testes. A compilação do projeto gera um arquivo swf no diretório bin.
Este swf pode ser executado em qualquer Flash Player disponível, como por exemplo, no
Firefox 4.0. SWF é o formato de arquivo suportado pelo Flash Player.
É importante saber que, para execução de um aplicativo em ActionScript, é preciso
que o projeto tenha uma classe que possua um método main. Será criada uma classe
Main contendo este método main, apresentada na Figura 34.
Figura 34. Método main para execução da aplicação
Nesta classe Main, uma instância da classe ProjetoSimplesPàpervision3D é criada. Seu
método carregar recebe os parâmetros de câmera, marcador e modelo, respectivamente.
Foram utilizados o marcador hiro.pat e o modelo earth.dae ambos presentes no FLARTo-
olKit. Por fim, para que seja possível visualizar a execução do projeto, basta apenas adicio-
nar esta instância ao palco de apresentação da aplicação. A Figura 35 mostra o ambiente
aumentado, com o marcador detectado e o modelo virtual posicionado em cena.
83
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Figura 35. Projeto desenvolvido em execução.
6. Aplicando Novas Funcionalidades ao Projeto: Interações Básicas
Após ser conhecido toda estrutura e como criar um projeto de RA com FLARTo-
olKit, já é possível acrescentar novas funcionalidades, como algumas interações bási-
cas. Nesta seção, serão detalhadas as principais classes, métodos e arquivos necessário
para se implementar tais funções, logo em seguida, será demonstrado, na pratica, como
implementar e testar as interações criadas.
6.1. Classes e Métodos para Interações
Para se criar interações no ambiente virtual do FLARToolKit é necessário a cria-
ção de uma classe proprietária que extenda a classe Sprite responsável pela exibição de
gráficos ou modelos 3D utilizados na cena. Vamos chamar essa classe de interação de
InteracaoSimplesPaperVision3D, por exemplo.
A partir deste ponto, deve-se criar um método nesta classe, por exemplo, de nome
iniciar, que receba como parâmetro o FLARBaseNode que é um container para o
modelo 3D e o Stage de exibição principal de conteúdo gráfico. O FLARBaseNode
será setado em uma variável local para que se tenha acesso ao modelo visando aplicar
as interações. Ao Stage é adicionado um evento que será disparado toda vez que uma
ação for gerada por um dispositivo, como o teclado. Ao ser gerado o evento este deverá
estar associado a um método que irá tratar o evento. Pode-se criar vários eventos e
associá-los a métodos diferentes. A próxima seção ira apresentar com o implementar
essa classe e método.
84
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Para que este método iniciar() seja executado, é necessário criar uma instância da
classe de interação que chamamos de InteracaoSimplesPaperVision3D e adicioná-la a
classe do projeto criado (por exemplo: ProjetoSimplesPapervision3D). Como se pode
visualizar na Figura 36, foi acrescido a chamada ao método configurarInteracoes() no
método iniciar da classe ProjetoSimplesPapervision3D que irá criar a instância da classe
de interação. Além disso, é onde será realizada a chamada ao método iniciar() visando
passar como parâmetro para a classe de interação a baseModelo e o stage.
Figura 36 – Alteração no Método Iniciar da classe ProjetoSimplesPapervision3D para
adicionar a classe de interações - InteracaoSimplesPaperVision3D.
Concluída a fase de criação da classe e associação das interações já é possível acres-
centar as interações propriamente ditas. Como mencionado, isso pode ser feito via cria-
ção de métodos associados a eventos. Na próxima seção será apresentado como isso
pode ser implementado e testado.
6.2. Implementação e Testes Práticos
Visando demonstrar como é realizado o processo de implementação de interações
diretas com a cena via algum evento gerado por um dispositivo, como teclado, mouse ou
luvas de dados, esta seção irá apresentar como criar interações básicas do tipo translação,
rotação e escala dos objetos virtuais para os eixos x, y e z. Para isso a classe KeyboardE-
vent será utilizada durante a captura destes comandos e no auxílio do reconhecimento
sobre o que foi digitado, através da disponibilização de algumas propriedades estáticas,
nas quais representam algumas teclas de um teclado padrão, como Keyboard.ESCAPE
para a tecla ESC ou Keyboard.UP para a seta direcional ao norte, dentre outros.
85
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Inicialmente, deve-se criar uma classe básica que estende a classe sprite (responsá-
vel por permitir a visualização de conteúdo 3D), como por exemplo, a classe Interacao-
SimplesPapervision3D na Figura 37.
Figura 37. Classe para interações simples e seu método iniciar.
O método iniciar tem como objetivo receber os parâmetros referentes ao nó base do
modelo virtual (este parâmetro será setado em uma variável interna da classe para que
ter acesso ao modelo e aplicar as interações) e o stage, utilizado pela aplicação. A partir
desse ponto, os eventos de teclado são capturados a cada tecla pressionada pelo usuário
e o método verificarAcoes é chamado (passado como parâmetro na chamada do método
stage.addEventListener) (Figura 37).
O método verificarAcoes é responsável por analisar cada tecla acionada pelo usu-
ário (Figura 38). Como se pode notar, dentro do método verificarAcoes é realizado um
teste para se determinar qual evento de teclado foi realizado. A partir da captura do
comando, é realizada uma comparação visando determinar qual tecla foi pressionada:
Escape, Left, Up, Rigth, Down, Numpad_Add (+), Numpad_Subtract (-), Insert, Delete,
Home, End, Page_Up ou Page_Down.
Figura 38. Método verifi carAcoes checando evento de teclado para interação.
Se tecla Escape for pressionada, os atributos do objeto virtual serão reinicia-dos com os valores originais recebidos no início da aplicação, como, por exemplo, o retorno do objeto virtual para sua posição, escala e rotação de origem. Como se pode notar na Figura 39, por meio de uma instância de baseModelo e usando o método ge-tChildByName é possível ter acesso ao modelo virtual e aos eixos x, y e z bem como escala e rotações. O método getChildByName realiza uma busca de um nó filho a partir do nome, neste caso, o nome é modelo.
86
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Figura 39. Caso de interação para reiniciar os atributos do modelo virtual.
As operações de interação estão associadas às teclas UP,
LEFT, RIGHT e DOWN para os eixos x e y, CTRL + UP e CTRL +
DOWN para o eixo z. Para cada movimento, o modelo virtual realiza tal ação adicio-
nando ou subtraindo o valor de sua posição atual em relação a um eixo. Se o usuário
quiser, por exemplo, realizar uma translação para a esquerda (case Keyboard.LEFT),
este deve, como uma observação de um plano cartesiano, subtrair o valor de sua posição
em relação ao eixo x. A Figura 40 apresenta cada evento para cada tecla pressionada pelo
usuário e a ação realizada em resposta.
Figura 40. Casos de interação para movimentação
Para realizar uma operação de escala, são utilizadas as teclas NUMPAD_+ e NUM-
PAD_-, aumentando ou diminuindo seu valor, respectivamente. A Figura 41 detalha
87
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
as operações de escala. Se a tecla NUMPAD_ADD for pressionada é acrescido em 1 a
escala do modelo virtual, mas se for NUMPAD_SUBTRACT é subtraído em 1.
Figura 41. Casos de interação para escala.
Por fim, as interações de rotação nos eixos x, y e z estão associadas às teclas HOME
e END (rotação no eixo X), PAGE_DOWN e DELETE (rotação no eixo Z), PAGE_UP e
INSERT (rotação no eixo Y). A Figura 42 detalha a implementação dos métodos.
Figura 42. Casos de interação para rotação
A classe de interações está concluída. Para testar seu funcionamento, basta compi-
lar e abrir, no browser, o arquivo swf gerado no diretório bin. Depois coloque o marca-
dor definido no projeto na frente da câmera.
Como se pode notar, o processo de inclusão de novas interações é feita de forma
relativamente simples. Entretanto, para se criar interações mais avançadas utilizando
luvas ou outros dispositivos especiais para RV ou RA é necessário um estudo mais apro-
fundado, não sendo alvo deste trabalho.
88
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
7. Conclusões
Este trabalho apresentou o desenvolvimento de aplicações de Realidade Aumenta-
da utilizado a biblioteca FLARToolKit. Foi explorado os componentes básicos, o proces-
so de instalação e configuração da ferramenta, seguido de um desenvolvimento de um
projeto básico com o FLARToolKit.
O desenvolvimento de aplicações de RA, principalmente com a biblioteca
apresentada neste capitulo, ainda exige o conhecimento de uma linguagem de progra-
mação, o que restringe a divulgação e o uso maciço de aplicações de RA nas diversas
áreas do conhecimento, bem como na educação a distância.
Visando facilitar o desenvolvimento de aplicações de RA na Web usando FLAR-
ToolKit, os autores estão desenvolvendo um projeto de código aberto denominado Web
Augmented Reality Generator (WARGen), disponível em Silva Filho e Siscoutto (2011).
Este projeto tem como finalidade disponibilizar um gerador de aplicações em Realidade
Aumentada para web, de maneira com que o usuário possa realizar algumas configura-
ções, enviar arquivos de modelos virutais e de marcadores, além de realizar associações
de modelos virtuais, marcadores e interações de maneira simples e intuitiva via web.
Diante disso, espera-se contribuir com a popularização das aplicações de RA facili-
tando o seu desenvolvimento e simplificando a maneira do como aprender.
Referências
Adobe (2010) “Learning ACTIONSCRIPT 3.0”, Disponível em: http://help.adobe.com/
en_US/as3/learn/as3_learning.pdf, October. Acessado em 04/04/2010.
Adobe (2011) “Recursos do Flex Builder 3”, Disponível em: http://www.adobe.com/br/
products/flex/features/flex_builder/, April, Acessado em 29/03/2011.
ARToolworks (2010) “NyARToolKit”, Disponível em: http://www.artoolworks.com/
products/stand-alone/nyartoolkit/, October. Acessado em 04/04/2010
Away3D (2010) “Away3D”, Disponível em: http://away3d.com/, October. Acessado em
04/04/2010
Away3DLite (2010) “Away3D Lite v1.0: fastest and smallest 3d engine in Flash”, http://
away3d.com/away3d-lite-v1-0-fastest-and-smallest-3d-engine-in-flash, Octo-
ber. Acessado em 04/04/2010
Blender (2010) “Blender”, Disponível em: http://www.blender.org/, October. Acessado
em 04/04/2010
89
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 55-90, jan./dez. 2011.SISCOUTTO, Robson Augusto; FILHO, Levrangeles da Silva.
Desenvolvendo um Ambiente Virtual em Realidade Aumentada para Web com FlarToolKit
Cabana, P. (2010) “/Flash/Realidade Aumentada” http://www.cabanacriacao.com/
tutorialW/Tutorial_ra_w.pdf, October, Acessado em 14/10/2010
Google (2011) “Google Armazém 3D”, Disponível em: http://sketchup.google.
com/3dwarehouse/, April, Acessado em 31/03/2011
FlashDevelop (2011) “FlashDevelop:About”, Diponível em: http://www.flashdeve-
lop.org/wikidocs/index.php?title=FlashDevelop:About, March, Acessado em
29/03/2011
HITLab (2010) “ARToolKit”, Disponível em: http://www.hitl.washington.edu/arto-
olkit/, October. Acessado em 14/10/2010
Kato, H.; Billinghurst, M.; Poupyrev, I. (2000) “ARToolKit Version 2.33”, Human Inter-
face Lab;
Kirner, C. (2007) “Tecnologias para o Desenvolvimento de Sistemas de Realidade Vir-tual e Aumentada”, Recife.
Koyama, T. (2010) “Introduction to FLARToolKit”, Disponível em: http://saqoosha.
net/lab/FLARToolKit/Introduction-to-FLARToolKit.pdf, April. Acessado em
04/04/2010
Filho, L. S.; Siscoutto, R. A. (2011) “Web Augmented Reality Generator - WARGen”;
Disponivel em http://wargen.googlecode.com.
MIT (2011) “About MIT”, Disponível em: http://web.mit.edu/aboutmit/, March,
Acessado em 29/03/2011
Papervision3D (2010) “Papervision3D”, Disponível em: http://blog.papervision3d.
org/, October. Acessado em 22/10/2010
Rafael, C; Gonzales; Richard, E. W. (2002), “Digital Image Processing”, Prentice Hall ,
2nd edition, January.
Saqoosha (2010) “FLARToolKit”, Disponível em: http://saqoo.sh/a/en/flartoolkit/
start-up-guide, October. Acessado em 22/10/2010
Marker Generator Online (2010); Disponível em http://flash.tarotaro.org/ar/Ma-
rkerGeneratorOnline.swf. Acessado em 05/08/2010.
91
Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis
Rafael Roberto1, João Marcelo Teixeira1, João Paulo Lima1, Manoela Milena Olivei-
ra da Silva1, Eduardo Albuquerque2, Daniel Alves2, Veronica Teichrieb1 e Judith Kelner1
1Universidade Federal de Pernambuco (UFPE)2Universidade Federal de Goiás (UFG)
{rar3,jmxnt,jpsml}@cin.ufpe.br, [email protected], [email protected], danf-
[email protected], {vt,jk}@cin.ufpe.br
Abstract
This tutorial aims to present the basic concepts of augmented reality, tangible user
interfaces and educational games so that their integration can improve the experience of
students in the classroom. For this, this tutorial shows how educational games influence on
the children learning, especially for those up to eight years, and how it is possible to use aug-
mented reality to create tangible user interfaces. By the end of this course is also shown the
main steps in developing a tool involving all subjects cited above, thus sharpening the crea-
tivity and critical sense of the audience so that it can also create their own applications.
Resumo
Este tutorial tem como principal objetivo apresentar os conceitos básicos sobre Re-
alidade Aumentada, interfaces tangíveis e jogos para educação de modo que a integra-
ção destes possa melhorar a experiência de alunos em sala de aula. Para isto, o texto
mostra como os jogos educativos influenciam no aprendizado de crianças, em especial
aquelas de até oito anos, e como é possível utilizar Realidade Aumentada na criação de
interfaces tangíveis. Ao final do minicurso são mostrados os principais passos do de-
senvolvimento de uma ferramenta envolvendo todos os temas supracitados, aguçando
assim a criatividade e o senso crítico da plateia de modo que ela também possa criar suas
próprias aplicações.
92
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
1. Introdução
Os jogos, de maneira geral, desempenham um papel importante no desenvolvimento
da inteligência das crianças [Piaget, 1971]. Elas, por sua vez, apresentam uma evolução que
perpassa pela exercitação, no período sensório-motor; jogos simbólicos, com predominân-
cia na fase escolar e com forte caracterização da imitação, jogos com regras, pressupondo a
existência de parceiros e um conjunto de obrigações, conferindo-lhes um caráter social favo-
recendo avanços do pensamento e a preparação, a análise e o estabelecimento de relações.
Além da contribuição para os aspectos motores, atividades colaborativas são rele-
vantes para que as crianças compreendam que o seu sucesso não depende da derrota ou
da depreciação de outra pessoa.
Neste contexto, este tutorial propõe a utilização de jogos como recurso pedagó-
gico, de forma que eles sejam aproveitados em atividades de leitura ou escrita em alfa-
betização e outros conteúdos. Sendo usados no momento oportuno, espera-se ajudar
no desenvolvimento do raciocínio infantil e na construção do conhecimento de forma
criativa. Para atingir esse objetivo, os autores fazem uso de Realidade Aumentada, ou
simplesmente RA, uma tecnologia que possui suas raízes nas áreas de Visão Computa-
cional e Computação Gráfica. Através da RA, é possível rastrear o mundo real e inserir
nele elementos virtuais, acrescendo o mundo que conhecemos de informações úteis à
realização de uma tarefa específica.
A ligação entre a criança, usuária da aplicação a ser desenvolvida, e a aplicação em si,
se dará por meio de interfaces tangíveis. Através da integração desses três elementos (jogos,
RA e interfaces tangíveis), espera-se melhorar a experiência de alunos em sala de aula.
Este tutorial está organizado conforme descrito a seguir. Inicialmente, os conceitos
básicos sobre RA, interfaces tangíveis e jogos para educação serão apresentados. Ao longo
do texto, o leitor poderá perceber como os jogos educativos influenciam no aprendizado de
crianças, em especial aquelas de até oito anos, e como é possível utilizar RA na criação de
interfaces tangíveis. Em seguida, como forma de consolidação do conhecimento apresenta-
do, um estudo de caso exemplifica os principais passos do desenvolvimento de uma ferra-
menta envolvendo todos os temas citados anteriormente, aguçando assim a criatividade e o
senso crítico do leitor, de modo que ele/ela também possa criar suas próprias aplicações.
2. Educação Lúdica
Nesse contexto, os alunos eram considerados passivos, sendo responsáveis apenas
pela memorização dos conteúdos transmitidos pelo professor. Atualmente, porém, essas
teorias foram derrubadas no sentido de que não há ensino sem aprendizagem e de que o
conhecimento é encarado como um processo de construção.
93
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
Essa ideia de um ensino despertado pelo interesse do aluno acabou transformando
o sentido do que se entende por material pedagógico. Nesse contexto, os jogos entram
em cena, por serem bons facilitadores da aprendizagem. Apesar de existirem a muito
tempo, os jogos em grupo tornaram-se bastante relevantes no contexto educacional se
consideradas as ideias Piagetianas. Sob a perspectiva de Piaget, constatamos o quan-
to os jogos contribuem para o desenvolvimento infantil. Não somente Piaget, mas, “a
maioria dos filósofos, sociólogos, etólogos e antropólogos concordam em compreen-
der o jogo como uma atividade que contém em si mesmo o objetivo de decifrar os
enigmas da vida e de construir um momento de entusiasmo e alegria na aridez da
caminhada”[Antunes, 2008].
A valorização do jogo se dá, pois, a partir do momento em que a aquisição de estra-
tégias por parte dos pequenos é focada. “O ato de jogar faz com que atitudes fundamen-
tais e procedimentos importantes sejam aprendidos e adotados em diferentes situações,
sem que haja uma formalidade, um treinamento ou um exercício repetitivo”[Antunes,
2008]. Assim, os jogos proporcionam as crianças participarem efetivamente na constru-
ção de seu saber, pois a partir dos jogos, o aprendiz estabelece uma relação positiva com
o conhecimento, já que este passa a ser percebido como uma real possibilidade. Esse
aspecto torna-se bastante relevante se forem consideradas crianças com dificuldades de
aprendizagem, que, em geral, possuem uma imagem negativa cristalizada em relação
ao conhecimento. Em segundo lugar, através dos jogos, as crianças são incentivadas a
desenvolver seu raciocínio, observar, questionar, discutir, interpretar, solucionar e ana-
lisar, já que estas são habilidades necessárias para se jogar bem.
Vale ressaltar, inclusive, que os jogos e brincadeiras estão presentes na vida das crian-
ças fora dos muros da escola. Esse fato corrobora com a ideia de que a inserção do elemento
lúdico em sala de aula somente contribui para o aumento do interesse e participação do
aluno no processo de aprendizagem. Nesse sentido, já em 1999, as Diretrizes Curricula-
res Nacionais para a educação infantil ao estabelecer os fundamentos que devem nortear
as propostas pedagógicas das creches e pré-escolas mencionou à ludicidade como um dos
princípios estéticos que devem balizar a educação infantil[Antunes, 2007].Por um longo período de tempo, confundiu-se ensino com transmissão de co-
nhecimentos.
Ancoradas em princípios construtivistas, as orientações acima explicitadas reco-
nhecem a participação construtiva do aluno na produção de seu conhecimento. Nessa
perspectiva, o jogo apresenta-se o melhor caminho de iniciação ao prazer estético, à
descoberta da individualidade e à meditação individual. Ao lado dessa função, os jogos
também se prestam à multidisciplinaridade e, dessa forma, viabilizam a exploração sig-
nificativa dos conteúdos por parte dos aprendizes.
Outra forma de se apreciar a importância dos jogos no desenvolvimento infantil é
através das teorias psicanalíticas trabalhadas por autores como: Winnicott, 1975; Lajon-
94
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
quière, 1992; Mrech, 1999; Santa Roza, 1999, entre outros (apud [Schartz, 2004]). Esses
teóricos comparam o brincar com os sonhos. Consideram, assim, que o brincar possui
conteúdos manifestos e ocultos que devemos nos dispor a escutar, caso desejemos pro-
piciar uma educação que alie a maior liberdade possível, a menor repressão (BACHA,
1999 apud [Schartz, 2004]).
Observa-se, portanto, a partir do exposto, que embora com diferentes ênfases, to-
das as teorias do jogo e da brincadeira, desde as clássicas até as mais recentes apontam
para a importância do lúdico como meio privilegiado de expressão e de aprendizagem
infantil, reconhecendo não haver nada significativo na estruturação e no desenvolvi-
mento de uma criança que não passe pelo brincar [Rodulfo, 1990].
2.1. Jogos Colaborativos
Sendo a competição e a cooperação valores e atitudes socioculturais,conclui-se que
esses comportamentos são passíveis de ser ensinados e aprendidos através das diversas
formas de interação humana, notadamente, pela educação. Esta seção teráseu focono
uso de jogos colaborativos como ferramenta pedagógica a serviço da aprendizagem de
valores como cooperação e autoconhecimento.
Muitos teóricos têm discutido a importância dos jogos colaborativos. Um teórico
de grande relevância foi[Piaget, 1971], que em sua teoria do desenvolvimento infantil,
propõe a existência de três estágios evolutivos, a saber: o estágio pré-operatório, o ope-
ratório concreto e o operatório formal. Nestes, o jogo emerge sob diferentes formas de
manifestação desses processos, perpassando pelo pensamento infantil no decorrer dos
diferentes estágios de desenvolvimento.
O estágio pré-operatório caracteriza-se, dentre outros aspectos, pelo egocentrismo,
ou seja, a incapacidade de ver os problemas a partir de outros pontos de vista. Durante
esse primeiro estágio, o jogo dá evidência de um pensamento que explica o mundo pela
intuição e não pela lógica; de símbolos mentais construídos para representar objetos
reais. O jogar e o brincar não estão atrelados, nessa fase, a resultados, já que esses valores
ainda não se instalaram no repertório infantil. A criança joga apenas pelo prazer, não
percebendo o elemento competitivo. A criança joga, na verdade, contra ela mesma.
Num segundo momento, quando a criança evolui para o pensamento operatório
concreto, o jogo com características egocêntricas vai cedendo espaço para jogos de natu-
reza social, com a inserção de outros participantes. Assim, os jogos ideais para essa fase
passam a requisitar cooperação, esforço, regras bem definidas e espírito competitivo,
já que nessa fase, a criança torna-se capaz de estabelecer sequências lógicas, conservar
e reverter atributos e operações, classificar agrupamentos e melhorar seu desempenho
linguístico, aproximando-se da fala do adulto.
95
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
Por fim, no estágio das operações formais, a criança ganha uma importante ca-
pacidade, a da abstração. Dessa forma, ela se torna capaz de refletir sobre seu próprio
pensamento. Nessa fase, as crianças já são capazes, portanto, de utilizar a linguagem
como veículo de reflexão e exteriorizam, inclusive nas atividades lúdicas, conceitos bem
definidos como amor, ódio, velocidade e tempo.
A partir do exposto, percebe-se a importância dos jogos colaborativos, pois através
destes, a criança tem a necessidade de cooperar e, trabalhar com regras. O cumpri-
mento de regras envolve o fato de se relacionar com outras pessoas que pensam, agem
e criam estratégias de maneiras diferentes. Através dos jogos, mesmo que derrotada,
a criança tem a oportunidade de conhecer-se, estabelecer os seus próprios limites e
competências como jogadoras,além de avaliar o que pode ser trabalhado para evitar a
derrota nas próximas vezes.
Nos jogos colaborativos, os jogadores não necessitam escolher um lado, mas, sobre-
tudo, devem estar juntos. O conteúdo e a dinâmica do jogo determinam não somente a
relação da criança com o objeto, mas desta com as demais. Dessa forma, jogos colabora-
tivos promovem o desenvolvimento das relações sociais da criança. Durante o processo
de socialização, a criança ouve o colega e discute, identificando perspectivas e se justifi-
cando. Ao se justificar, argumenta e reflete sobre os seus próprios procedimentos.
Através dos jogos cooperativos, o participante pode, ainda, trabalhar habilidades
como interação, percepção, relacionar-se com empatia, apresentar autoestima e autoco-
nhecimento e ser ético. Essas habilidades fazem parte do que Gardner (1994, 1995, 2000
apud [Schartz, 2004]) denomina inteligências pessoais – referentes às capacidades de
autoconhecimento e compreensão do outro.
Assim, os autores concordam com [Broto, 1999] ao afirmar que um bom jogo
em grupo deve possibilitar à criança avaliar os resultados de suas ações. Se o adulto
impõe a avaliação como uma verdade, a criança se tornará muito dependente e inse-
gura da sua própria habilidade de tomar decisões. Percebe-se, portanto, que além da
colaboração, os jogos colaborativos proporcionam a ref lexão sobre as próprias ações
e o autoconhecimento.
Outras características das situações cooperativas em relação às situações de com-
petição de acordo com [Broto, 1999] são: percepção de que o atingimento dos objetivos
é, em parte, consequência da ação dos outros membros, sensibilidade às solicitações
alheias, frequência maior de ajuda mútua, maior homogeneidade na quantidade de con-
tribuições e participações, maior produtividade em termos qualitativos e maior especia-
lização de atividades.
Assim sendo, são enfatizados os benefícios dos jogos colaborativos como ferra-
menta pedagógica viável para o incentivo ao desenvolvimento mental dos estudantes.
Através de atividades lúdicas, mais especificamente, de jogos colaborativos, podemos
fomentar valores não somente para as salas de aula, mas para a vida.
96
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
3. Interação e Interfaces Tangíveis
De acordo com o Aurélio [Ferreira, 2010], a definição de tangível é:
Adjetivo de dois gêneros.
Que pode ser tangido, tocado ou apalpado; palpável, sensível.1.
P. ext. Que os sentidos podem apreender; perceptível, sensível, visível (fig.): 2.
um sinal tangível.
Econ. Diz-se de bens econômicos, ativos, etc., que têm existência física. [Opõe-3.
se, nesta acepç., a intangível (3).]
Portanto, no contexto deste trabalho, por “tangível” consideramos a tecnologia ba-
seada no conceito de aparelhos digitais “palpáveis”, ou “tocáveis”. Por interface tangível
consideramos aquela em que o usuário interage com o ambiente digital com o uso de dis-
positivos físicos. Estes dispositivos garantem uma interação muito mais realista entre o ho-
mem e o computador. Inicialmente, as interfaces tangíveis foram denominadas interfaces
“pegáveis”(em inglês, graspable user interfaces), mas este termo deixou de ser utilizado.
Os dispositivos tangíveis provêm três facilidades básicas:
Interatividade:1. um contato físico no equipamento é mapeado em resultados
em tempo real no meio digital;
Praticidade:2. o usuário fará a interação como se estivesse utilizando o equipa-
mento real. Por exemplo, no caso de uso de uma raquete em um jogo eletrô-
nico de tênis;
Colaboração:3. mais de um usuário poderá trabalhar com um equipamento, de
forma colaborativa, como se o tivessem fisicamente na mão. Por exemplo, a
utilização de um instrumento musical.
Para prover as facilidades, nas interfaces tangíveis temos de acordo com [Ullmer,
2000; Ishii, 2001]:
As representações físicas são acopladas computacionalmente às informações •
digitais, ou seja, ao modelo. Exemplos desses acoplamentos podem ser a li-
gação entre representações geométricas gráficas e os objetos reais, ou ainda,
simulações dinâmicas acopladas a objetos reais. Como exemplo, podemos ter
um simulador de vento acoplado a um simulador de fluxo de fluidos que pode
ser usado em uma ferramenta de planejamento urbano onde as construções
são objetos tangíveis, como visto na Figura 1;
97
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
Figura 1: Ferramenta de simulação de planejamento urbano.
As linhas indicam direção de vento [Ishii, 2008].
As representações físicas incorporam mecanismos para controle interativo. A •
movimentação física, deslocamento, rotação, ligação ou outras manipulações
entre objetos são as formas básicas de controle da interface;
As representações físicas são conceitualmente acopladas a representações digi-•
tais ativamente mediadas. As interfaces tangíveis dependem de um equilíbrio
entre representações digitais e físicas, ao mesmo tempo em que elementos fí-
sicos possuem um papel central, definindo papeis na representação e controle
da interface, as representações digitais, em particular áudio e gráfico, frequen-
temente apresentam parte significativa da informação dinâmica processada
pelo sistema de computação subjacente;
O estado físico dos objetos tangíveis incorpora parcialmente o estado digital •
do sistema: interfaces tangíveis são geralmente construídas a partir de sistemas
com artefatos físicos. Em conjunto, esses objetos possuem diversas proprieda-
des importantes. Como são compostas por elementos físicos, as interfaces tan-
gíveis são persistentes. Ao contrário de uma interface gráfica, elas não podem
ser duplicadas (ou destruídas) com uma simples ativação de um botão. Além
disso, frequentemente os artefatos tangíveis podem ser lidos tanto por pessoas
como por computadores através do seu estado físico, cujas configurações físi-
cas são fortemente acopladas ao estado digital dos sistemas que representam.
Um exemplo de sucesso das interfaces tangíveis é a oferecida pelo console Wii da
Nintendo. Os controles existentes no console permitem, por exemplo, que o usuário “di-
rija” um carro como se estivesse com um volante real na mão, ou que dê raquetadas em
um jogo de tênis, como se realmente estivesse em quadra. Uma raquetada mal orientada
fará com que a bola seja jogada para fora da quadra.
As próximas seções apresentam um histórico do desenvolvimento das interfaces
tangíveis, tipos de interfaces, aplicações e, finalmente, casos de aplicações em educação.
98
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
3.1. História
As interfaces gráficas de usuário (GUI), assim como seus dispositivos de interação
principais (mouse e teclado), se tornaram padrões e parte do cotidiano dos usuários.
Entretanto, como apontado por [Ishii, 2008], tais dispositivos não permitem que o usu-
ário utilize toda sua destreza e técnica de criação da mesma forma que o faz enquanto
manipulando objetos físicos reais.
Assim, há cerca de 28 anos, pesquisadores estudam sobre interfaces tangíveis de
usuário como um meio de melhorar o conceito de RA e permitir uma melhor interação
entre o usuário e o computador, aumentando sua produtividade [Blackwell et al., 2007].
Em meados de 1990, o grupo responsável pelos estudos de mídias tangíveis, Tangi-
ble Media Group, presente no Laboratório de mídia do MIT, trocou as interfaces gráficas
pelas interfaces tangíveis. A mudança ocorreu na tentativa de dar forma à visão de com-
putação ubíqua definida por Mark Weiser, cientista chefe na Xerox PARC, que prega a
utilização de objetos físicos em um ambiente físico, transparentemente integrados com
dispositivos computacionais [Ishii, 2008].
Em 1995, [Fitzmaurice, G. et al., 1995] apresentam o conceito de interfaces “pegá-
veis” de usuário. A ideia se baseava na utilização de alguns artefatos físicos chamados
de Bricks, que desempenhavam o papel de dispositivo de entrada. Tais artefatos po-
diam estar fortemente acoplados a objetos virtuais para a manipulação ou expressão
de ações.
Após a grande contribuição de Fitzmaurice e Ishii, em 1997, Ishii e Ulmer esten-
dem essas ideias e propõem o termo “interfaces de usuário tangíveis”, em inglês, “tan-
gible user interfaces”[Ishii e Ullmer, 1997]. Esses descrevem que sua inspiração veio da
história, elegendo o ábaco como um exemplo de protótipo para esse conceito. O ábaco
não é um dispositivo eletrônico, portanto não existe distinção entre entrada e saída.
Tudo que ele faz é permitir a sua manipulação de forma física, simultaneamente fazen-
do com que seus artefatos, componentes internos, representem controles físicos.
Diferentemente das GUI que fazem uma distinçãoentre representação e contro-
le, as interfaces de usuário tangíveis exploram o espaço aberto pela eliminação dessa
distinção[Ullmer, 2000].
Em 1999, surgem as interfaces tangíveis de primeira geração, sendo a URP –
Urban Planning Workbench – desenvolvida pelo Tangible Media Group, mostrada
na Figura 2, o exemplo mais conhecido. Esse sistema utilizava modelos físicos para
configurar e controlar simulações de sombras, f luxo de ventos, ref lexão de luzes e
congestionamento de tráfego. Adicionalmente, existem objetos para controlar fisi-
camente parâmetros da simulação urbana, como velocidade e direção do vento e
posição do sol.
99
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
Figura 2: URP com os objetos e sombras projetadas [Ishii, 2008].
No URP sombras digitais são projetadas na superfície da mesa onde os modelos fí-
sicos se encontram, seguindo os parâmetros de configuração especificados. Além disso,
todos os objetos e modelos de construção são representações digitais tangíveis, que po-
dem ser manipuladas diretamente para mudá-las de posição e inclinação, por exemplo.
Embora o URP permita uma facilidade muito grande de utilização e siga em suma
a definição de uma interface tangível, esse possui uma limitação quanto ao que pode
ser manipulado, pois as formas dos objetos não podem ser alteradas. Todos os objetos e
formas nesse sistema devem ser fixos e pré-definidos, somente permitindo a alteração
entre a interação dos objetos, disposição, dentre outros.
Assim, o Tangible Media Group inicia a definição do que seria a segunda geração da
tecnologia, conhecida como interfaces tangíveis “orgânicas”.
Em 2002, surge um novo tipo de interface tangível, Illuminating Clay, observado
na Figura 3, que permite o uso de diversos objetos incluindo a própria mão do usuário,
pedaços de papel, papelão, espuma, plásticoetc. para modelar objetos de uma paisagem
ou terreno, por exemplo. Tal sistema resultou da necessidade de engenheiros e designers
envolvidos em projetos de paisagem, arquitetura e indústria que continuavam a por
ênfase na utilização de modelos físicos, que muitas vezes, seriam posteriormente digita-
lizados de alguma forma [Piper et al., 2002].
Figura 3: Illuminating Clay - Manipulação do modelo físico e feedback na
visualização[Piper et al., 2002].
100
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
Em 2004, outra interface tangível orgânica foi criada, com base no Illuminating
Clay, sendo conhecida como Sandscape[Ratti et al., 2004].Sandscape era uma solução
mais barata que, cuja diferença básica estava nos sensores utilizados para capturar o
modelo sendo manipulado. O Sandscape, visto na Figura 5, onde analisava raios infra-
vermelhos capturados por uma câmera, enquanto o Illuminating Clay utilizava uma
variação de lasers para capturá-lo, o que é mais eficiente que a primeira solução, como
ilustrado na Figura 4.
Figura 4: Illuminating Clay
Laser Scanner[Ratti et al., 2004].
Figura 5: Sandscape
Optical Scanner[Ratti et al., 2004].
Atualmente, vários autores estão propondo mistos entre RA e interfaces tangíveis,
como uma possível alternativa mais portátil e mais barata do que os sistemas anteriores.
3.2. Aplicações Mistas
A seguir são descritas brevemente soluções de interfaces tangíveis que fazem uso de
outras tecnologias tais como RA e robótica.
3.2.1. Misto com Realidade Aumentada
Numa tentativa de se criar interfaces tangíveis de forma mais prática e fácil, [Dias
et al., 2004] propõem um misto entre interfaces tangíveis e RA.
A ideia básica é permitir a manipulação de objetos tangíveis virtualmente, tentando
promover a mesma sensação de uma interface tangível pura, mas num ambiente de RA.
Para isso, são utilizados marcadores nas mãos do usuário para que os gestos pos-
sam ser capturados e transmitidos ao ambiente virtual, permitindo a manipulação dire-
ta do objeto no mundo virtual, de forma similar a objetos físicos.
101
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
3.2.2. Misto com Robótica
O controle Wiimote do Nintendo Wii também está sendo pesquisado como uma
alternativa de alto desempenho para a captura de gestos e como ferramenta auxiliar na
construção de aplicações mistas, ou mesmo físicas.
Em 2008, [Guo e Sharlin, 2008] apresentaram um trabalho no qual exploram a
utilização de interfaces tangíveis através douso do Wiimote para o controle de robôs.
Em tal simulação, eles apresentam como tal Interface Tangível pode ser utilizada como
um meio para que um mediador humano possa controlar ações de um robô, utilizando
gestos, permitindo um controle natural do artefato robótico.
3.3. Interfaces Tangíveis na Educação
Na educação, interfaces tangíveis também são objetos de pesquisa como um meio para
melhorar a aprendizagem, além de permitir uma melhor absorção do conhecimento e enga-
jamento do aluno. Para o estudo de matemática, manipulativos são “objetos projetados que
representam conceitos matemáticos abstratos de forma concreta” [Falcão e Gomes, 2006]. Tais
objetos são comuns em salas de aula e possuem cores e formas que são atrativas às crianças,
além de poderem ser manipulados diretamente. Exemplos de tais objetos são: geoplano, blo-
cos dienes, sólidos geométricos e jogos de encaixe, ilustrado na Figura 6.
Figura 6: Crianças brincando com blocos lógicos (Blocos Dienes).
Entretanto, a utilização de interfaces tangíveis na educação, através do uso de
objetos, os manipulativos, não é recente e precede o uso dos computadores. Entre os
primeiros pensadores e projetistas destacam-se Friedrich Froebel e Maria Montessori
[Africano et al., 2004]. Froebel, que foi o inventor do jardim de infância, projetou os
“Presentes de Froebel” para o seu jardim de infância. Os Presentes de Froebel são ob-
jetos para brincadeiras que acompanham o desenvolvimento cognitivo das crianças.
Apesar do tempo em que foram projetados, ainda são comercializados [Froebelgifts,
102
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
2010]. Maria Montessori estendeu as ideias de Froebel para que os objetos fossem uti-
lizados por crianças mais velhas. Suas ideias, que visavam auxiliar o desenvolvimento
das capacidades sensoriais das crianças, foram implementadas em diversas escolas no
mundo, incluindo o Brasil.
Segundo [Zuckerman et al., 2005], as vantagens de se utilizar interfaces tangíveis
nesse contexto são:
Engajamento sensorial – • é basicamente o modo como as crianças aprendem,
em sua forma natural, utilizando vários sentidos (tato, visão, audição) em um
processo construtivo.
Acessibilidade – • poisaumenta a acessibilidade para crianças mais novas, prin-
cipalmente quando essas possuem dificuldades de aprendizado.
Aprendizado em grupo –• permite que várias mãos sejam utilizadas, isto é, que
várias crianças trabalhem de colaboradores na criação, facilitando a interação
e promovendo discussões em grupo.
Outro exemplo de uma interface tangível para o ensino de matemática, que pode ou
não fazer uso de computadores, é uma espécie de régua denominada BEAM, acrônimo
em inglês de Balancing Equations by Adapting Manipulatives [Leong e Horn, 2010]. O
BEAM, que segue as ideias de Montessori, tem funcionamento similar às antigas balan-
ças de braço e peso. Um exemplo de seu uso é mostrado na Figura 7. No modo offline
o BEAM permite verificar igualdades entre equações (há o equilíbrio da régua), e desi-
gualdades quando a régua pende para o maior lado. No modo online o BEAM é conecta-
do a um computador através de uma porta USB. O computador é capaz de ler as posições
dos pesos na régua e é capaz de apresentar as equações algébricas em tempo real.
Figura 7: Ilustração da solução da equação (3x2) + (4x5) = (7x3) +(2x2) usando o
BEAM[Leong e Horn, 2010].
Os blocos de LEGO, de grande sucesso comercial, são objetos tangíveis que podem
ser utilizados como ferramentas educacionais seguindo as ideias de Froebel [Fitzmau-
rice, G. W. et al., 1995].
Pesquisas mais recentes têm focado no uso intensivo de computadores com in-
terfaces tangíveis especialmente em atividades pedagógicas envolvendo crianças. Este
desenvolvimento é natural tendo em vista a redução do custo dos computadores, espe-
cialmente os portáteis, e sua disponibilidade para faixas etárias cada vez mais baixas.
103
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
As facilidades de comunicação proporcionadas pelos computadores também têm levado
a uma mudança de seu uso em educação. O primeiro uso dos computadores em educa-
ção era voltado para o estudo/aprendizagem individual. No entanto, crianças aprendem
através das brincadeiras e atividades sociais em grupo. Um exemplo do desenvolvimen-
to de uma interface tangível, educacional, com foco na colaboração é apresentado em
[Africano et al., 2004].
O trabalho apresenta um sistema para aprendizagem e brincadeiras. Para ilustrar
a viabilidade da proposta, foi desenvolvido um sistema, centrado em um boneco, Ely o
Explorador, visto na Figura 8. O sistema possui também uma unidade de acesso mul-
tiusuário e robusta, algumas ferramentas tangíveis e um software projetado para o am-
biente escolar. De acordo com os resultados apresentados, as crianças se envolveram
na brincadeira e a proposta se mostrou adequada como uma ferramenta auxiliar no
ambiente escolar.
Figura 8: Componentes de Ely o Explorador, que encontra-se à direita. À esquerda, a uni-
dade de acesso multiusuário. No centro, a sua tela de toque, contendo uma área comum e
três individuais, botões e leitor de RFID.
As interfaces tangíveis também têm sido utilizadas no ensino de conceitos abs-
tratos, como os matemáticos. Um trabalho atual nessa área é apresentado em [Falcão,
2007]. No trabalho, a autora, além de apresentar uma profunda revisão do uso de inter-
faces tangíveis no ensino, projeta uma interface tangível para auxiliar a aprendizagem
de frações no Ensino Fundamental brasileiro.
Os trabalhos desenvolvidos por [Resnick, 2005] fazem uso dos computadores. Os
autores desenvolveram blocos construtivos com poder computacional que chamaram
de MiMs Digitais (de Montessori – inspired Manipulatives, ou manipulativos inspirados
por Montessori). São desenvolvidos blocos de fluxo (FlowBlocks) e de sistema (System-
Blocks) que permitem a construção de sistemas interativos modulares físicos para com-
portamento dinâmico. Os resultados apresentados mostram que os MiMs, ilustrados na
Figura 9, são acessíveis mesmo para crianças pequenas.
104
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
Figura 9: MiMs de fl uxo, à esquerda, e de controle, na direita[Resnick, 2005].
4. Realidade Aumentada
O ser humano vive numa época onde a demanda por informação é enorme. Não
basta apenas ver um objeto ou ouvir seu som para identificá-lo, é preciso ter todas as
informações possíveis sobre ele. Em determinados meios, como numa sala de cirurgia
ou numa cabine de avião, esse conteúdo adicionalpode servital na hora de tomar uma
decisão crítica. Existem diversas formas de obter estes dados adicionais. Um piloto de
avião, por exemplo, tem o auxílio dos instrumentos de bordo e dos controladores de
voo. Como nem sempre essas informações estão diretamente em seu campo de visão,
o acesso a elas pode proporcionar um momento de distração preciosoem um instante
crítico. Por isso, formas mais diretas de exibir dados têm sido estudadas e a Realidade
Aumentada vem mostrando ser bastante promissorapara atender esta demanda.
Realidade Aumentada é umaárea da ciência da computaçãocapaz de interagir ele-
mentos virtuais com reais, criando um ambiente misto em tempo real. No caso do pilo-
to, já existem aviões capazes de exibir as informações mais críticas durante o voo numa
tela translúcida, de modo que o comandante seja capaz de visualizar esses dados sem
a necessidade de abaixar sua cabeça e procurar por ela num painel repleto de informa-
ções, ao mesmo tempo em que enxerga o ambiente real externo à aeronave.
RA tem se mostrado muito promissora por ser capaz de tornar a interação com o
usuário mais natural. Assim, ao invés de olhar apenas para um monitor e usar um ou
dois dispositivos para manipular as informações desejadas, o usuário pode interagir
com o ambiente inteiro ao seu redor através de gestos naturais em suas atividades co-
tidianas. Graças a esta enorme aplicabilidade, ela vem sendo bastante estudada, tanto
no meio acadêmico como em laboratórios de pesquisa e por isso já existem algumas
subáreas e linhas de atuação importantes, como será visto nesta seção.
105
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
4.1. Realidade Aumentada com Marcadores
A utilização de padrões visuais, também conhecidos como marcadores, tem como
objetivo amenizar a demanda de processamento gerada pelos algoritmos de visão com-
putacional e com isso tornar possível que as aplicações sejam executadas em tempo real.
Essa “simplificação” do rastreamento do mundo real faz com que hardware de baixo
custo possa ser utilizado, como processadores mais restritos e câmeras de menor reso-
lução e taxa de captura.
Os marcadores são elementos muito importantes em RA, pois são usados numa
etapa crucial neste tipo de aplicação: o registro. É neste passo que as informações do
mundo real e da câmera utilizada para capturá-las são alinhadas com os dados virtuais
gerados pelo computador, de forma que estes possam ser exibidos de maneira coerente.
Anteriormente o registro era realizado utilizando sensores 3D, sejam eles magnéti-
cos, ultrassônicos ou a laser. Entretanto, esses são caros e muitas vezes as suas dimensões
e estrutura não permitem o registro das cenas. Outras técnicas, baseadas apenas nas in-
formações capturadas pela câmera, como arestas ou textura, foram desenvolvidas [Stri-
cker e Kettenbach, 2001], mas apenas recentemente elas conseguiram adquirir maturida-
de suficiente para serem usadas com precisão em uma aplicação [Comport et al., 2006].
A alternativa encontrada para o registro foi a utilização do marcador. Este elemento
revolucionou a RA por conseguir ser um instrumento visual que auxilia na obtenção
dos dados necessários nesta etapa. Além disso, por serem de baixo custo e possuírem
uma grande variedade de códigos possíveis, pode-se inserir na cena tantos quantos fo-
rem necessários.
4.1.1 Tipos de Marcadores
Por ser uma abordagem bastante difundida, existem várias aplicações de RA base-
adas em marcadores e, consequentemente, diversos tipos deles foram propostos. Dentre
os mais comuns estão o fiducial, o idBased, o DataMatrix, o split e o frame.
Marcadores Fiduciais
Um dos primeiros padrões a ser utilizado por esse tipo de aplicação consistia em
um quadrado com bordas pretas. Em seu centro, localiza-se um padrão (template) espe-
cífico que o torna único e distinguível de outros marcadores. Nele, qualquer informação
pode estar gravada, como letra, número, nome ou imagem e seu rastreamento é realiza-
do comparando trechos da imagem obtida com um banco de dados de marcadores até
que um deles seja similar o suficiente à região central capturada pela câmera.
Por fazer várias comparações durante o rastreamento, este tipo de marcador não
é muito escalável, pois quanto mais deles estiverem na região de captura da câmera,
106
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
mais lento se torna o rastreamento, tanto que o ARToolKit [Kato e Billinghurst, 1999],
biblioteca de RA que utiliza marcadores fiduciais, limita a quantidade de marcadores
rastreados para um máximo de 20 simultâneos.
idBased Markers
Estes marcadores foram desenvolvidos para resolver o problema de escalabilidade
dos marcadores fiduciais. O princípio deles é que o código, que antes poderia ser qual-
quer imagem, agora é representado por uma matriz de quadrados pretos e brancos. Com
isso, o rastreamento deixa de ser feito por similaridade de imagens e passa a ser realiza-
do através da leitura direta de cada elemento da matriz, de onde o código é extraído.
Graças à diminuição da carga de processamento, o número de marcadores rastrea-
do simultaneamente aumentou bastante. O ARTag [Fiala, 2005], outra biblioteca de RA,
mas que utiliza marcadores baseados em id, possui exemplos onde mais de 100 deles são
rastreados ao mesmo tempo.
DataMatrix Markers
Os DataMatrix markers são bastante semelhantes aos descritos na subseção ante-
rior; a diferença se encontra na codificação [Aim, 2010]. Enquanto neles qualquer infor-
mação pode ser usada como representante de um determinado código, os marcadores
baseados em DataMatrix seguem um padrão comum aos códigos de barra 2D, determi-
nados pela ISO. Outra diferença é na quantidade de código possível para um conjunto
de marcadores, pois os DataMatrix markers têm um número fixo de 2235 códigos, en-
quanto os baseados em id dependem do tamanho da matriz utilizada.
Split Markers
Também são marcadores baseados em id, porém o código localiza-se em duas de
suas bordas, deixando a área entre eles livre para a inserção de qualquer informação.
Este tipo de marcador foi desenvolvido primeiramente pela Sony para o jogo “Eye of
Judgment” [Nishino, 2009], de modo que as informações dos personagens pudessem ser
impressas no cartão juntamente com o código usado para seu rastreamento.
FrameMarker
Outro marcador baseado em id, o Frame marker é semelhante ao Split marker, dife-
renciado deste pelo fato do código estar em todas as bordas e não apenas em duas [Sch-
malstieg, 2009]. Desta forma, o marcador ganha maior robustez e simplicidade de ras-
treamento sem perder a área livre para inserção de informação. Nele pode ser vista uma
borda fina e contínua que delimita o marcador. Internamente a esta borda está o código,
uma sequência de quadrados, ou bits, em cada lateral. O código é o mesmo para ambas
as bordas, mudando apenas o primeiro e o último bits, que são usados para indicar a
107
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
orientação do marcador. O número máximo de marcadores distintos que podem ser
criados com essa abordagem é proporcional ao número de bits utilizado nas laterais.
A Figura 10 ilustra os tipos de marcadores descritos nesta seção.
Figura 10: Da esquerda para a direita, os marcadores fi ducial;idBased, DataMatrix;
SplitMarker; e FrameMarker.
4.1.2 Bibliotecas
O suporte ao uso de marcadores em RA tem evoluído bastante ao longo dos anos. É
possível encontrar uma série de ferramentas (toolkits) de desenvolvimento de aplicações,
muitas delas open-source, capazes de fornecer informação sobre o posicionamento cor-
reto dos marcadores em uma cena e a posterior renderização de informação em posição
relativa aos mesmos. Uma breve descrição é mostrada em sequência.
ARToolKit
O ARToolKit foi originalmente desenvolvido para servir de apoio na concepção de
interfaces colaborativas por Hirokazu Kato [Kato e Billinghurst, 1999], na Universidade
de Osaka. Desde então, tem sido mantido pelo Human Interface Technology Laboratory
(HIT Lab) da Universidade de Washington e pelo HIT Lab NZ da Universidade de Can-
terbury, em Christchurch.
O ARToolKit é uma biblioteca de software open-source, escrita na linguagem C,
para concepção de aplicações em RA. Um exemplo de uma possível aplicação pode ser
um personagem virtual 3D que aparecerá em cima de um marcador, que é um cartão
com um padrão impresso correspondente a uma imagem específica. Esta imagem pode
ser visualizada através de um display utilizado pelo usuário e, à medida que o mar-
cador é movimentado a imagem também é transladada, dando a impressão de estar
colada ao marcador.
Uma das grandes dificuldades ao se desenvolver aplicações em RA é o problema em
calcular o viewpoint do usuário em tempo real, de modo que as imagens virtuais estejam
exatamente alinhadas com os objetos reais, ou seja, o problema é saber para onde o usuá-
rio estará olhando em um determinado momento de modo que a imagem seja posiciona-
da no lugar correto. O ARToolKit se propõe a resolver este problema usando uma técnica
108
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
que calcula a posição real da câmera presa ao display e a orientação relativa a marcadores,
permitindo então que o programador possa sobrepor objetos virtuais nestes.
As principais características do ARToolKitsão:
Tracking para posicionamento e orientação de uma única câmera;•
Código que usa como padrão um quadrado de bordas pretas;•
Possibilidade de uso de qualquer marcador, desde que o mesmo obedeça ao pa-•
drão;
Código simples para calibração da câmera;•
Rápido o suficiente para possibilitar aplicações de RA em tempo real;•
Distribuição multi- plataforma, como por exemplo, SGI IRIX, Linux, MacOS e •
Windows, e distribuição do código fonte completo.
O funcionamento do ARToolKit é muito simples. Primeiramente, a câmera posi-
cionada no display do usuário captura as imagens do mundo real e as envia para um
computador, que procurará nas imagens frames que contenham o padrão do quadrado
de bordas pretas, ou seja, um marcador. Se algum for encontrado, o computador efetu-
ará uma série de cálculos matemáticos para saber qual a posição da câmera relativa ao
marcador visualizado. Uma vez que a posição da câmera é conhecida um modelo com-
putacional gráfico, que é o objeto virtual, será desenhado na mesma posição. A saída,
portanto, nada mais é do que esta imagem virtual “grudada” em cima do marcador, que
o usuário poderá visualizar através de qualquer display que esteja usando.
ARToolKitPlus
O ARToolKitPlus foi desenvolvido na Graz University Technology dentro do pro-
jeto Studierstube, e é uma biblioteca open-source de RA baseada no ARToolKit, embora
a primeira se preocupe exclusivamente com a questão da detecção de marcadores, não
oferecendo funções para captura de vídeo ou renderização de objetos 3D [Wagner e
Schmalstieg, 2003; Wagner, 2006].
Seu código fonte conta com várias otimizações, tais como a utilização de mate-
mática de ponto fixo com o intuito de gerar aplicações eficientes para os dispositivos
móveis, como por exemplo os PDAs e smartphones. Os marcadores utilizados por esta
biblioteca são semelhantes aos do ARToolKit, com a diferença que o desenho no interior
do quadrado de bordas pretas consiste em uma codificação do identificador do marca-
dor. Tal codificação permite que o usuário possa utilizar até 512 diferentes marcadores,
diminuindo a ocorrência da confusão entre marcadores diferentes.
O ARToolKitPlus utiliza a técnica de limiar adaptativo, que consiste em perceber
alterações de iluminação no ambiente capturado pela câmera, de forma que a detecção
dos marcadores não seja prejudicada. Esta biblioteca também oferece suporte ao usuário
de utilizar marcadores com borda de largura variável, desta forma pode- se diminuir a
109
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
largura da borda para melhor aproveitar o espaço para codificação, fazendo com que
marcadores menores possam ser detectados. Outra característica consiste na capacidade
de realizar uma compensação sobre imagens de câmeras que geram uma queda radial
de luminância. Este fato ocorre em algumas câmeras onde a imagem capturada por elas
se apresenta mais escura nos cantos, fazendo com que os marcadores situados nessas
regiões não sejam detectados.
ARTag
O ARTag foi desenvolvido pelo National Research Council of Canada e inspirado
no ARToolKit. O ARTag, tal como o ARToolKit, também consiste em uma biblioteca
de padrões, mas diferentemente do segundo, que compara imagens, o ARTag verifica
códigos digitais compostos de 0’s e 1’s. O marcador do ARTag também vem a ser um
quadrado de bordas pretas, mas seu interior é preenchido com uma malha 6 x 6 de qua-
drados pretos e brancos que representam os códigos digitais.
O ARTag foi concebido para não conter alguns dos problemas que o ARToolKit
possui. Entre esses problemas pode- se destacar três que são mais comuns, e que no
ARTag foram corrigidos:
Falso positivo: acontece quando a presença de um marcador é reportada, mas •
não existe nenhum no ambiente;
Inter- marker confusion: acontece quando a presença de um marcador é repor-•
tada, mas com o ID errado;
Falso negativo: acontece quando existe um marcador no ambiente, mas sua •
presença não é reportada.
Além de solucionar esses problemas presentes no ARToolKit, o ARTag ainda tem
a vantagem de possuir 2002 marcadores. Dentre esses 1001 têm o mesmo padrão do
ARToolKit, um quadrado de bordas pretas e interior branco, enquanto que os restan-
tes 1001 têm o padrão inverso, um quadrado de bordas brancas e interior preto [Fiala,
2005]. Outra vantagem sobre o ARToolKit é que ao contrário deste, no ARTag não é ne-
cessário que um arquivo contendo todos os padrões seja previamente carregado. Além
do que os marcadores do ARTag podem ser reconhecidos mesmo que uma parte deles
esteja oculta, o que não acontece com os marcadores do ARToolKit.
O processo para o reconhecimento de um marcador no ARTag começa basicamente
do mesmo modo que no ARToolKit; primeiramente deve ser localizado o contorno da
borda do quadrado. Após isso, a região interna que contém a malha é retirada e são
determinados os códigos de 0’s e 1’s contidos. Todo o processamento subsequente de
identificar e verificar o marcador é feito digitalmente. Quatro sequências binárias de
36 bits são obtidas do array de códigos binários originários da malha, uma para cada
uma das quatro possíveis posições rotacionadas, e dentre estas apenas uma será validada
110
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
pelo processo de decodificação. A sequência binária codificada no marcador encapsula
um ID de 10 bits usando métodos digitais; os 26 bits extras provêem redundância para
reduzir as chances de detecção e identificação falsas e também para prover unicamente
uma das quatro possíveis rotações [Fiala, 2005].
StudierstubeTracker
O Studierstube Tracker é uma biblioteca de visão computacional para detecção e
estimativa de pose de marcadores fiduciais 2D [Schmalstieg, 2009]. É considerado um
sucessor da biblioteca ARToolKitPlus e assemelha-se tanto dela como ao ARToolKit e
ARTag, porém sua implementação base é completamente diferente. O projeto do Stu-
dierstube Tracker foi montado com foco em alto desempenho tanto para PCs, quanto
para celulares.
O desenvolvimento do Studierstube Tracker deu início quatro anos após o surgi-
mento do ARToolKitPlus. Esse rastreador apresenta requisitos de memória bastantes
baixos, na ordem de 100KB, o que representa de 5 a 10% do consumo de memória do
ARToolKitPlus, além do processamento ser cerca de duas vezes mais rápido do que a
mesma biblioteca em celulares, e aproximadamente 1 ms por frame em um PC. Enquan-
to o ARToolKitPlus segue uma abordagem monolítica, necessitando ser configurado
em tempo de compilação, o Studierstube Tracker é altamente modular: desenvolvedores
podem estender o rastreador de várias formas, criando novas funcionalidades para o
mesmo. Ao contrário do ARToolKitPlus, o Studierstube Tracker não é open-source.
Vários tipos de marcador são suportados: template (similar aos do ARToolKit), id-
Based, DataMatrix, Frame markers, Split markers e Grid markers.
Flare
O Flare (FlashAugmentedRealityEngine*Tracker) é uma biblioteca de visão com-
putacional para detecção e estimativa de pose de códigos de barra 2D [Imagination,
2010]. Ele se assemelha bastante ao ARToolKit, ARToolKitPlus e ARTag, porém apre-
sentando uma implementação completamente distinta.
As principais características do Flare são:
Suporte a variados tipos de marcadores (• idBased, DataMatrix e Frame ma-
rkers), os quais podem ser usados concorrentemente;
Apresenta um bom desempenho ao ser executado nos • browsers;
É considerada a solução mais rápida de rastreamento para web;•
Baixo consumo de memória;•
Feito em ActionScript e suportado a partir da versão 10.0 do Adobe Flash, é •
uma solução fechada, com licença paga.
111
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
FlartoolKit
O FlartoolKit é uma versão do ARToolKit portada para ActionScript 3 [Flartoolkit,
2010]. Atualmente, o FlartoolKit baseia-se no NyARToolKit, uma versão do ARToolKit
em Java. A biblioteca se encarrega do reconhecimento do marcador na imagem de en-
trada e calcula sua posição 3D e orientação. Porém, o suporte à renderização não é for-
necido.
O FlartoolKit é livre para ser usado em aplicações não comerciais sob a licença GPL,
ou seja, o código-fonte da aplicação que utiliza a biblioteca deve ser disponibilizado.
AndAR
O AndAR é um projeto que possibilita a execução de aplicações de RA na platafor-
ma Android [Andar, 2010]. O projeto por completo é disponibilizado sob a licença GPL.
A empresa ARToolworks oferece licença comercial para uso do ARToolKit.
SLARToolKit
O SLARToolKit é uma biblioteca de RA para a plataforma Silverlight com o objeti-
vo de permitir o desenvolvimento de aplicações em tempo real de forma simplificada e
rápida [Slartoolkit]. Pode ser utilizado com a Webcam API, que foi introduzida no Sil-
verlight 4, ou com qualquer outro CaptureSource ou um WriteableBitmap. A biblioteca
baseia-se tanto no NyARToolKit como no ARToolKit. Um modelo duplo de licença pode
ser utilizado com a biblioteca, o que permite que ela seja usada tanto para aplicações
abertas como fechadas, de acordo com algumas restrições.
NyARToolKit
O [Nyala] é uma derivação do conhecido ARToolKit. Ao contrário de seu predeces-
sor, ele foi portado para várias plataformas distintas, como Java, C# e Flash, e durante
o processo tornou-se orientado a objetos, diferentemente da abordagem procedural do
ARToolKit.
A biblioteca consiste em uma versão do ARToolKit implementada inteiramente em
Java. A versão do ARToolKit que deu origem à biblioteca foi a 2.72.1. Nenhum códi-
go nativo é utilizado. Essa característica torna a execução mais lenta do que a origi-
nal, porém completamente independente de arquitetura. Assim como seu predecessor,
o NyARToolKit é uma biblioteca de funções que permite interpretação visual da cena
capturada e integração de elementos virtuais em ambientes reais.
Apesar de ser nativa em Java, a biblioteca funciona em C# e no sistema operacional
Android de forma satisfatória. Existem inúmeros outros portes para outras plataformas
que foram baseados no NyARToolKit.
A empresa que comercializa o ARToolKit, ARToolworks, detém a licença comercial
do NyARToolKit, apesar de não fazer parte do desenvolvimento da biblioteca. Por este
112
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
motivo, a biblioteca é distribuída como sendo de código aberto, porém como produto
não comercial.
A seguir estão listadas algumas características da biblioteca:•
Permite a criação de aplicações de RA em tempo real;•
Sobrepõe objetos 3D virtuais em marcadores reais;•
Suporta diferentes entradas de vídeo (USB, • firewire, placa de captura) e dife-
rentes formatos (RGB/YUV420P, YUV);
Provê rastreamento de marcadores rápido e de baixo custo computacional (detec-
ção planar em tempo real);
Suporta VRML e telefones rodando Android nativamente.
4.1.3 Aplicações
Atualmente, RA com marcadores é utilizada nas mais diversas áreas. Desde entre-
tenimento e propaganda ao uso na educação e indústria. A seguir alguns exemplos nas
áreas de jogos e educação serão listados.
Invisible Train
O Invisible Train [Wagner et al., 2005] é uma aplicação que mistura entretenimento
e dispositivos móveis. Esse jogo foidesenvolvido primeiramente para crianças de nível
primário, e é um jogo multiplayer no qual os participantes guiam um trem virtual atra-
vés de um trilho real construído em miniatura. Este trem só é visível para osjogadores
através de PDAs, e para esses usuários são permitidas duas ações: operar as junções en-
tre ostrilhos ou mudar a velocidade do trem, tudo isto através das telas sensíveis a toque
dos próprios PDAs. Vide a Figura 11.
Figura 11: Dois PDAs rodando o Invisible Train[Wagner et al., 2005].
113
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
Magic Cubes
O projeto MagicCubes [Zhou et al., 2005]foi desenvolvido para promover intera-
ções físicas e sociais dentro das famílias. Ele consiste basicamente em marcadores em
formato de cubo que contam histórias, como se fossem umlivro de histórias infantis,
servindo também para “brincar de casinha”, montando a mobília para quartos e salas, e
por fim ainda servem para jogos de tabuleiro, conforme ilustrado na Figura 12.
Figura 12: Magic Cubes usada como contador de história[Zhou et al., 2005].
Magic Table
Por fim tem-se o Magic Table [Berard, 2003], que vem a ser um quadro branco onde
se escreve, desenha e apaga.A diferença entre um quadro branco comum e o Magic
Tableconsiste em scanners que capturam o que éescrito no quadro e colocamo conteúdo
em retângulos,chamados de patches, que são manipulados atravésde pequenos círculos,
ostokens, sobre o quadro, vide Figura 13.
Figura 13: Magic Table em uso[Berard, 2003].
114
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
4.2. Realidade Aumentada Projetiva
Uma das formas mais comuns de se conseguir que o usuário visualize elementos
reais junto aos virtuais em aplicações de RA é utilizando os famosos Head-Mounted
Displays, sejam eles Optical See-Through, quando a informação do mundo real é vis-
ta diretamente pelo olho e é acrescida dos elementos virtuais, ou Video See-Through,
onde a imagem do mundo real é capturada por uma câmera no dispositivo e composta
com a informação virtual para ser exibida ao usuário. Porém, estes dispositivos ainda
apresentam alguns problemas que dificultam o seu uso, sendo a ergonomia e o preço
os principais entraves. Outra forma de atingir o objetivo de exibir informações virtuais
e reais que vem ganhando bastante espaço é a RA Espacial, onde o ambiente em que o
usuário se encontra inserido é aumentado com imagens integradas diretamente ao lugar
e não apenas ao campo visual do observador [Raskar et al., 1998]. Esta inserção pode ser
feita através de simples telas anexadas ao ambiente ou por meios mais complexos, como
o uso de espelhos semi-translúcidos para criar o efeito de hologramas.
A forma de integração mais comum, porém, é dada por projeções diretamente na
superfície, tanto que já existe uma subdivisão da RA Espacial que trata apenas da inser-
ção de objetos virtuais no ambiente real utilizando projetores, chamada de RA Projeti-
va. A Figura 14 ilustra este conceito.
Figura 14: Àesquerdatem-se a maquete de um palácio sem textura alguma, totalmente
branca. Utilizando projetores, a textura juntamente com a posição do sol é simulada, à
direita[Raskar et al., 1998].
ARA possui um grande potencial de aplicabilidade por conseguir adicionar infor-
mações ao mundo real e melhorar significativamente a forma como o usuário interage
tanto com os elementos reais, como virtuais. Já a RAProjetiva vem mostrando também
ter um grande potencial de aplicações. Já existem diversas iniciativas de seu uso no meio
comercial, comoem vitrines de lojas interativas. Nelas, os produtos são projetados na
vitrine e o cliente interage com as ofertas. Ele pode desde ver como as roupas ficam nele,
até finalizar a compra, entrando na loja apenas para receber o produto[Ivista, 2011].A
115
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
área médica também já faz uso deste tipo de aplicação, na qual os médicos possuem um
dispositivo que projeta sobre o paciente suas veias e artérias, facilitando assim o encon-
tro destas para o uso em procedimentos. Uma das áreas que mais faz uso de projeções
é a publicidade. Há muitas iniciativas voltadas para a divulgação de marcas, produtos e
conteúdo, como os pisos e paredes interativos [Streitz et al.], projeções de animações em
produtos e exposição de museus. A Figura 15 mostra algumas dessas ações.
Figura 15: A imagem ilustra algumas aplicações de RA Projetiva. Acima e à esquerda te-
mos o exemplo de um museu onde o expectador interage com a exposição e à direita uma
vitrine interativa[Ivista, 2011]. Abaixo, uma parede interativa[Streitz et al.].
A RA Projetiva possui algumas características peculiares, a começar pelo registro do
ambiente real. Na RA “tradicional”, a imagem virtual é anexada a porções do ambiente
que compreendem apenas o ponto de vista do usuário, diferentemente da RA Projetiva
onde a informação é atribuída ao ambiente inteiro. Assim, é feito o registro apenas do
espaço e de todos os objetos que o compõem e, independente da movimentação da pes-
soa e de como ela observa, as informações virtuais serão sempre as mesmas. Entretanto,
para algumas aplicações é importante que a projeção mude à medida que o observador se
movimenta, o que pode ser útil para prover uma noção de profundidade ou sensibilidade
a contexto. Para isto, é necessário que não só o ambiente esteja registrado, mas também
que haja um rastreamento da cabeça do usuário, que pode ser feito utilizando sensores
presos à cabeça do mesmo. A Figura 16 mostra um exemplo. Outra forma de obter pro-
fundidade para o observador é utilizando projeções estéreo e óculos polarizados, como
em muitas salas de cinema hoje em dia. Contudo, esta abordagem não elimina a neces-
sidade do rastreamento da cabeça do usuário. Ao contrário, ela se torna imprescindível,
pois as projeções estéreo dependem justamente do ponto de vista do usuário.
116
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
Figura 16: Exemplo de aplicação de RA Projetiva onde há o rastreamento de acordo com o
ponto de vista do observador [Bimber et al., 2005].
Outra peculiaridade se dá em relação à oclusão, pois na RA Projetiva os elementos vir-
tuais podem sempre ser ocludidos, porém nunca se sobrepõem totalmente ao mundo real,
ao contrário da RA “convencional” onde ocludir os elementos virtuaisé bastante complexo,
mas estes se justapõem muito facilmente sobre os objetos reais. Também é preciso tomar
cuidado com as cores dos objetos virtuais, pois esta característica pode ser modificada no
momento da projeção dependendo das cores da superfície onde ocorre a exibição.
O fato de o ambiente real interagir diretamente com os objetos virtuais influencia
bastante na forma como o usuário interatua com a aplicação. As características da RA
Projetiva praticamente impõem uma interação mais natural. Assim, é muito comum
o uso de interfaces tangíveis e o rastreamento de partes do corpo do usuário, como as
mãos, de modo que estes são usados para fornecer a entrada para o sistema.
Assim, um dos grandes benefícios da RA Projetiva é a capacidade de prover a inte-
ração dos elementos virtuais com os reais de forma imersiva para o usuário sem a neces-
sidade de Head-Mounted Displays. Outra vantagem é ser possível controlar o ambiente
de forma relativamente simples para se conseguir uma boa qualidade na projeção. O fato
de o objeto virtual ser inserido em geral próximo ao real e da imagem não incidir direta-
mente no olho do usuário, e sim através de uma reflexão vinda de uma superfície pouco
reflexiva, como uma parede, torna esta abordagem muito agradável ao olho humano.
Em contrapartida a RA Projetiva é bastante dependente da superfície de projeção e
do ambiente. Caso o local de projeção não seja difuso, possua uma cor clara e uniforme,
a qualidade da imagem se torna bastante comprometida. A nitidez das cores também
está diretamente relacionada à luminosidade do ambiente. Assim, quanto mais escuro,
melhor será a qualidade das cores, eliminando a necessidade de projetores muito poten-
tes. Um problema a ser tratado também é o das sombras, que pode ser resolvido basica-
mente de duas formas: a mais simples é posicionar muito bem os projetores; a outra, um
pouco mais complexa, é utilizando múltiplos projetores, que precisam estar alinhados
para que o conteúdo seja uniformemente visualizado.
117
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
5. Estudo de Caso
O estudo de caso descrito nesta seção pretende integrar todos os conceitos vistos
nas seções anteriores, de modo a desenvolver o conceito de um produto fechado que uti-
liza RA para criar um jogo educacional possuindo uma interface tangível, e explorando
assim os benefícios das atividades lúdicas para a educação.
Existem várias possibilidades de aplicações que integram esses conceitos. Para este
minicurso, os autores criaram um jogo baseado em blocos para auxiliar na alfabetização
de crianças.
5.1. Definição
Como foi mostrado anteriormente, quando as crianças estão brincando com jogos
de blocos, na realidade elas estão aprendendo a pensar e resolver problemas a partir do
momento em que manipulam espacialmente os objetos e os classificam unindo os ele-
mentos comuns. Este tipo de atividade influencia diretamente no modo como eles veem
e compreendem o mundo ao seu redor.
Deste modo, os jogos baseados em blocos são muito utilizados como brinquedos
educativos, pois servem como instrumento para o aprendizado, especialmente para
crianças de até oito anos. Dependendo dos blocos, o professor pode usá-los para criar
atividades que desenvolvam o raciocíniológico e matemático das crianças, assim como
o vocabulário e até a criatividade.Entretanto, como os blocos tradicionais possuem suas
faces estáticas, é necessário praticamente um jogo diferente para cada uma das ativida-
des que o tutor queira executar, limitando as possibilidades do mesmo. Desta forma,
existem diversosbrinquedos baseados em blocos com um único propósito.
O estudo de caso proposto visa solucionar esta limitação a partir do desenvolvi-
mento de blocos dinâmicos, onde qualquer informação desejada possa ser gravada em
suas faces durante a atividade, desde uma simples letra ou número, até uma animação.
Dessa forma, as possibilidades do professor aumentam substancialmente e ele pode usar
sua criatividade para criar praticamente qualquer atividade, desde as mais tradicionais
já citadas, até outras mais complexas de se trabalhar com blocos convencionais, como
o ensino de música.
Para tornar estes blocos dinâmicos possíveis, utiliza-se RA Projetiva para criar um
sistema computacional manipulado por uma interface tangível, que seriam os blocos
físicos. Cada bloco possui um marcador em suas faces para diferenciá-lo dos demais,
que será rastreado por uma câmera. De posse das posições e orientações de cada cubo,
o conteúdo de cada um deles será projetado apenas na face do respectivo bloco, assim
ele funciona ao mesmo tempo como um display, pois irá exibir a informação para o
usuário, e um dispositivo de entrada, já que a sua manipulação influenciará no jogo e no
118
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
que será mostrado. Por se tratar de um bloco físico, todos os benefícios já mencionados
associados aos brinquedos tradicionais são preservados, mas por se tratar de um siste-
ma computacional, outros pontos positivos são acrescidos, como, além dos já citados, a
possibilidade de retorno sonoro. A Figura 17 ilustra o conceito proposto.
Figura 17: Estrutura proposta para uma aplicação de RA Projetiva envolvendo 3 blocos,
possuindo um Frame Marker cada e a projeção do conteúdo ocorre apenas no interior
dos marcadores. Para isso, tanto câmera como projetor precisam estar alinhados.
5.2. Concepção
Por se tratar de um sistema a ser usado por educadores como instrumento para
aumentar a capacidade de aprendizado e o desenvolvimento das crianças, é necessário
que todo o desenvolvimento do jogo seja acompanhado de perto por professores, de
modo que estes possam transmitir toda a sua experiência e vivência em sala de aula para
acrescentar ao projeto ideias úteis para o mesmo.
Existem várias metodologias, princípios e técnicas de design para o desenvolvimen-
to de jogos educacionais, porém nenhuma delas será detalhadaneste tutorial, sendo aqui
descrito apenas como se deu a concepção do estudo de caso citado na subseção anterior,
o que já serve como uma boa base para o design de diversos outros sistemas que sigam
essas mesmas características.
O ponto de partida foi a definição de um objetivo claro para o projeto, pois é
ele quem vaideterminar as pesquisas,que por sua vez irão guiar o desenvolvimento.
Como este estudo de caso visa criar uma atividade para educação que utilize blocos
dinâmicos,pode-se dizer que o principal objetivo é o de desenvolver um jogo baseado
em blocos dinâmicos que possa ser inserido como ferramenta de apoio na alfabetização
119
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
infantil e que seja capaz de contribuir com o estímulo à criatividade e ao desenvolvimento
de crianças na faixa etária de 5 a 8 anos.
Este objetivo deixa claro que o jogo deve auxiliar o professor, contribuindo para o
processo de aprendizagem o mais naturalmente possível, sem retirar o foco dos alunos
do objetivo principal que é aprender de forma lúdica. Para que esta meta seja alcançada,
é importante compreender o domínio de sala de aula, o que levanta algumas questões
que precisam ser respondidas. Dentre elas estão:
Como é a alfabetização de crianças atualmente?
Como a alfabetização de crianças pode se tornar mais atrativa para os pequenos e
os professoresutilizando interfaces tangíveis?
O que as interfaces tangíveis atuais podem prover em relação à interação e ao en-
sino de crianças?
A respostadestas questões veio atravésde uma pesquisa dividida em duas fases:
Análise de competidores: uma pesquisa detalhada acerca do que já foi e está sendo
desenvolvido, tanto na educação como temos hoje, como nas interfaces tangíveis e no
seu uso no contexto de jogos. Praticamente todos os resultados desta fase vieram de uma
forte pesquisa bibliográfica em ambas as áreas. Dela foi possível concluir que os jogos
baseados em blocos dinâmicos se encaixam na categoria das interfaces tangíveis conhe-
cidas como manipulativos digitais equeo desenvolvimento tecnológico destas interfaces
já caminhou bastante, porém ainda é visível a falta de aplicativos interessantes capazes
de suprir as necessidades de ensino para crianças[Falcão e Gomes, 2006].
Compreensão do contexto: nesta fase foi realizada uma observação com o objetivo
de se compreender o funcionamento, dinâmica, regras, rotina e dificuldades da sala de
aula, além de uma entrevistasemi-estruturada com os professores para a obtenção de
informações e contribuições valiosas, assim como os requisitos genéricos do produto.
Os resultados obtidos mostraram que a alfabetização tradicionalnãofaz uso dos mani-
pulativos, porém os professores procuram utilizar recursos multimídia como forma de
chamar a atenção das crianças, que gostam quando são expostas a situações onde vários
de seus sentidos são estimulados, em especial a visão e audição. Os livros atuais também
seguem esta tendência, pois utilizam vários elementos gráficos. Também foi possível
observar a forma como os professores ministram suas atividades e avaliam seus alunos,
algo de fundamental importância na elaboração da dinâmica de um jogo educativo.
Com o resultado da pesquisa foi iniciada a fase de criação do jogo, que consistiu
em duas sessões de prototipação, a primeira em papel e a segunda em isopor, no mesmo
formato dos blocos, como visto na Figura 18. A partir dessas duas fases de prototipagem
foi possível refinar com os professores a ideia inicial do jogo de modo que ele pudesse
melhor atender às necessidades de uma sala de aula.
120
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
5.3. Desenvolvimento do produto
O desenvolvimento do produtopassa por duas etapas. A primeira é a do sistema
computacional em si, utilizando RA Projetiva e interface tangível; a segunda é a do jogo,
cuidadosamente concebido como mostrado na subseção anterior, que será executado
sobre o sistema.
Figura 18: Imagens dos protótiposemisoporutilizados nasegundafase de prototipação.
A primeiraquestão a ser tratada no desenvolvimentode um sistema de RA é o modo
como o rastreamento será realizado. No estudo de caso elaborado, este assunto requer
uma atenção um pouco maior, pois, por se tratar de uma interface tangível utilizando
RA Projetiva, o rastreamento, a exibição da informação e o dispositivo de entrada en-
volvem o mesmo objeto.
Como os blocos serão a superfície de projeção, estes não podem ser texturizados,
devendo ser lisos e na cor branca para que o mínimo de interferência ocorra na exibição
das cores. Entretanto, não é possível rastrear uma superfície com essas características. Se
todos os blocos são uniformemente brancos, não há como sequer distinguir um do ou-
tro. Para resolver este entrave, a primeira solução pensada foi a de adicionar uma borda
colorida nos blocos. Entretanto, esta resolução possui algumas falhas, sendo a principal
delas uma limitação no número máximo de marcadores rastreados simultaneamente,
que seria de apenas quinze. Isto se deve ao fato de que o valor das cores é muito sensível
à iluminação ambiente e para que se tenha uma margem de segurançaé necessária uma
paleta com cores mais distantes umas das outras, como a CGA [Ibm, 1981], que possui
apenas dezesseis.Porém, uma destas dezesseis cores não pode ser utilizada já que a cor
branca é a mesma do bloco, não sendo possível assim uma borda com esta tonalidade.
A solução final adotada foi a utilização de um Frame Marker, com o qual é possível
ter todos os benefícios de um marcador comum e ainda conseguir que uma grande re-
gião do bloco não possua nenhuma informação, ficando totalmente branca para receber
a projeção. Até onde os autores conhecem, não existe nenhuma biblioteca gratuita de
RA que dê suporte a este tipo de marcador, e por isso foi criado tanto um marcador
específico como um rastreador capaz de suprir as necessidades do projeto.
121
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
O marcador, mostrado na Figura 19, possui uma borda fina e contínua que o deli-
mita. Interno a ela está o código, umasequência de 10 quadrados, ou bits, para cada lado.
O código é o mesmo para ambas as bordas para que a redundância dê mais robustez à
identificação; o que muda é apenas o primeiro e último bit, que servem para indicar a
orientação do marcador.Entre essespequenos quadrados das extremidades estãoos ou-
tros oito que formarão o código em si. Este número permite a confecção de até 256
marcadores diferentes, que é uma quantidade suficiente para a maioria das aplicações.
Caso haja a necessidade de mais marcadores, pode-se adicionar mais um bit ao código.
Porém, deve-se tomar cuidado, pois quanto mais bits, menor o tamanho dos quadrados,
tornando o rastreamento mais suscetível a erros.
Figura 19: Frame Marker criado para o projeto.
O processamento realizado pelo rastreador que foi desenvolvido para este mar-
cador possui quatro etapas. Na primeira a imagem é convertida para tons de cinza e
em seguida é segmentada usando um limiar de valor 120, determinado de forma ex-
perimental. No passo seguinte, é utilizado o detector de borda de Canny[Canny, 1986]
para determinar todas as arestas. Em seguida, são selecionados todos os contornos que
possuem quatro vértices e uma área entre dois limiares que contém entre eles o tamanho
mais provável de um marcador. Por fim, a leitura do código é realizada e aqueles que
possuírem um identificador válido são classificados como marcadores rastreados com
sucesso. Esta operação é feita em todos os frames do vídeo capturado pela webcam. AFi-
gura 20 mostra uma sequência de imagens com o resultado de cada uma dessas etapas.
Figura 20: Sequência de imagens com resultados das etapas do rastreamento. Na imagem
da esquerda a segmentação da imagem extraída pela webcam, no centro o resultado da
segmentação utilizando Canny e à direita a identifi cação de três marcadores diferentes.
122
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
Solucionado o problema do rastreamento, o passo seguinte é o de desenvolver um
sistema que projete as informações desejadas apenas na área interna ao marcador. Esta
etapa está em desenvolvimento a partir da adaptação de umatécnica proposta por Jo-
hnny Lee [Lee et al.], a qual calculauma transformaçãoque modifica o dado a ser exibido
de acordo com as dimensões e orientação do bloco rastreado.
Porém, apenas aplicar uma transformação que leve os dados para a orientação e
posição dos blocos não é suficiente para uma projeção correta sobre os mesmos, pois
a câmera e oprojetor possuem sistemas de coordenadas diferentes. Assim, é necessário
alinhar o sistema câmera-projetor de modo a descobrir a correspondência entreo sis-
tema de coordenadas do projetor e o da câmera. Por se tratar de uma etapa futura do
desenvolvimento, os autores ainda não chegaram a uma solução definitiva para o ali-
nhamento, possuindo apenas uma noção preliminar de como ela será realizada. Como
a câmera e o projetor permanecerão imóveis, os autores pensam em utilizar uma etapa
de calibração no instante da inicialização. Assim, as quatro extremidades da área de
projeção seriam indicadas, dando assim a correspondência com os vértices da câmera.
Possuindo quatro pares é possível aplicar uma homografia entre todos os pontos de
ambos os dispositivos.
Ao término do processo, todo o arcabouço tecnológico está pronto, e o sistema
computacional utilizando blocos como interface tangível e RA Projetiva para exibir a
informação foi finalizado. Em seguida, a etapa de desenvolvimento do jogo pode ser
iniciada. Por se tratar de um desenvolvimento de software utilizando a plataforma apre-
sentada, não pertence ao escopo deste tutorial descrever detalhes desta etapa. A Figura
21 e a Figura 22 ilustram dois exemplos de aplicações que podem ser montadas a partir
da ferramenta descrita neste tutorial.
Figura 21: Exemplo de aplicação onde as crianças precisam formar a palavra correspondente à
imagem projetada em um dos marcadores. A ação deve ser realizada de forma colaborativa.
123
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
6. Considerações Finais
Este tutorial apresentou os principais conceitos envolvendo a utilização de interfaces
tangíveis para aplicações de RA, focando na integração destas duas áreas para aprimorar
a experiência de alunos e educadores, possibilitando um aprendizado mais interativo.
Para isto, foi mostrado como os jogos educacionais representam um importante
instrumento a ser utilizado por educadores das mais diversas áreas. Os autores também
expuseram como as interfaces tangíveis são capazes de possibilitar uma interação na-
tural com sistemas computacionais a partir da utilização de objetos reais, que podem
ser associados pelo usuário com objetos do cotidiano. Também foram vistas várias ca-
racterísticas e bibliotecas de RA, fornecendo ao leitor uma boa noção para que ele possa
escolher a forma mais adequada de se usar RA em diversos tipos de aplicações, incluin-
do aquelas que utilizem as interfaces mencionadas acima, melhorando assim o nível de
experiência do usuário.
Figura 22: Nesta outra aplicação, a criança deve associar o marcador com a imagem à
palavra correspondente, a partir da união dos blocos relacionados.
Também foi conduzida uma sequência de atividades para a construção de uma apli-
cação que faça uso das duas tecnologias mostradas para ser utilizada em sala de aula como
um jogo baseado em blocos para o auxílio da alfabetização infantil. É importante ressaltar
a importância de cada uma dessas atividades, desde a fase de concepção e estudo do usu-
ário, pois é nela onde é possível descobrir os reais desejos de quem vai utilizar a aplicação,
até a do desenvolvimento propriamente dito, onde o jogo toma a sua forma final.
124
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
Referências
Africano, D., S. Berg, K. Lindbergh, P. Lundholm, F. Nilbrink e A. Persson. Designing
tangible interfaces for children’s collaboration. CHI ‘04 extended abstracts on Human
factors in computing systems. Vienna, Austria: ACM 2004.
Aim. Bar Code Technology: Matrix 2D Symbologies 2010.
Andar. andAR - Android Argumented Reality Lib 2010.
Antunes, C. Educação infantil: prioridade imprescindível: Vozes. 2007
______. Jogos para a estimulação das múltiplas inteligências: Vozes. 2008
Berard, F. The Magic Table: Computer Vision Based Augmentation of a Whiteboard for
Creative Meetings 2003.
Bimber, O., G. Wetzstein, A. Emmerling e C. Nitschke. Enabling View-Dependent
Stereoscopic Projection in Real Environments. ISMAR ‘05: Proceedings of the 4th IEEE/
ACM International Symposium on Mixed and Augmented Reality: IEEE Computer
Society. 2005, 2005. Paginas p.
Blackwell, A. F., G. Fitzmaurice, L. E. Holmquist, H. Ishii e B. Ullmer. Tangible user
interfaces in context and theory. CHI ‘07 extended abstracts on Human factors in
computing systems. San Jose, CA, USA: ACM: 2817-2820 p. 2007.
Broto, F. O. Jogos cooperativos: o jogo e o esporte como um exercício de convivência.
1999
Canny, J. A computational approach to edge detection. IEEE Trans. Pattern Anal. Mach.
Intell., v.8, n.6, p.679-698. 1986.
Comport, A. I., Marchand, E.,e Chaumette, F. Real-Time Markerless Tracking for
Augmented Reality: The Virtual Visual Servoing Framework. IEEE Transactions on
Visualization and Computer Graphics, v.12, p.625-628. 2006.
Dias, J., N. Barata, P. Santos, A. Correia, P. Nande e R. Bastos. In your hand computing:
tangible interfaces for mixed reality: IEEE, 2004. Paginas p.
Falcão, T. e A. Gomes. Design de interfaces tangíveis educacionais: uma metodologia
baseada em contexto: ACM, 2006. Paginas p.
Falcão, T. P. D. R. Design de interfaces tangíveis para aprendizagem de conceitos
matemáticos no Ensino Fundamental. Centro de Informática, Universidade Federal de
Pernambuco, Recife, 2007. 225 p.
125
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
Ferreira, A. B. de H. Novo Dicionário da Língua Portuguesa. 5. ed. Rio de Janeiro:
Editora Positivo, 2010.
Fiala, M. ARTag, a Fiducial Marker System Using Digital Techniques. CVPR ‘05:
Proceedings of the 2005 IEEE Computer Society Conference on Computer Vision
and Pattern Recognition (CVPR’05) - Volume 2: IEEE Computer Society. 2005, 2005.
Paginas p.
Fitzmaurice, G., H. Ishii e W. Buxton. Bricks: laying the foundations for graspable user
interfaces: ACM Press/Addison-Wesley Publishing Co., 1995. Paginas p.
Fitzmaurice, G. W., H. Ishii e W. A. S. Buxton. Bricks: laying the foundations for
graspable user interfaces. Proceedings of the SIGCHI conference on Human factors
in computing systems. Denver, Colorado, United States: ACM Press/Addison-Wesley
Publishing Co. 1995.
Flartoolkit. FLARToolKit 2010.
Froebelgifts. Froebel Gifts Child Development Toys 2010.
Guo, C. e E. Sharlin. Exploring the use of tangible user interfaces for human-robot
interaction: a comparative study: ACM, 2008. Paginas p.
Harald, W. Adaptive Line Tracking with Multiple Hypotheses for Augmented Reality,
2005. Paginas p.
Holzer, S., S. Hinterstoisser, S. Ilic e N. Navab. Distance Transform Templates for Object
Detection and Pose Estimation. 2009.
Ibm. Color/Graphics Adapter. 1981
Imagination. Flare Tracker 2010.
Ishii, B. U. A. H. Emerging Frameworks for Tangible User Interfaces. In: J. M. Carroll
(Ed.): Addison-Wesley, 2001. Emerging Frameworks for Tangible User Interfaces, p.579-
601. (Human-Computer Interaction in the New Millenium)
Ishii, H. The tangible user interface and its evolution. Commun. ACM, v.51, n.6, p.32-
36. 2008.
Ishii, H. e B. Ullmer. Tangible bits: towards seamless interfaces between people, bits and
atoms: ACM, 1997. Paginas p.
Ivista, M. invista soluciones. 2011
Jurie, F. e M. Dhome. A simple and efficient template matching algorithm. 2001, 2001.
Paginas p.
126
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
Kato, H. e M. Billinghurst. Marker Tracking and HMD Calibration for a Video-Based
Augmented Reality Conferencing System. IWAR ‘99: Proceedings of the 2nd IEEE and
ACM International Workshop on Augmented Reality: IEEE Computer Society. 1999,
1999. Paginas p.
Klein, G. e D. Murray. Parallel Tracking and Mapping for Small AR Workspaces. Proc.
Sixth IEEE and ACM International Symposium on Mixed and Augmented Reality
(ISMAR’07). 2007/november, 2007. Paginas p.
Lee, J. C., P. H. Dietz, D. Maynes-Aminzade, R. Raskar e S. E. Hudson. Automatic
projector calibration with embedded light sensors. UIST ‘04: Proceedings of the 17th
annual ACM symposium on User interface software and technology: ACM. 2004.
Paginas p.
Leong, Z. A. e M. S. Horn. The BEAM: a digitally enhanced balance beam for mathematics
education. Proceedings of the 9th International Conference on Interaction Design and
Children. Barcelona, Spain: ACM 2010.
Newcombe, R. A. e J. Andrew. Live Dense Reconstruction with a Single Moving Camera
Davison, CVPR 2010. CVPR. 2010.
Nishino, H. A split-marker tracking method based on topological region adjacency
& geometrical information for interactive card games. SIGGRAPH ASIA ‘09: ACM
SIGGRAPH ASIA 2009 Posters: ACM. 2009, 2009. Paginas p.
Nyala. FrontPage.en - NyARToolkit.
Piaget, J. A formação do símbolo na criança: imitação, jogo e sonho, imagem e
representação: J. Zahar. 1971
Piper, B., C. Ratti e H. Ishii. Illuminating clay: a 3-D tangible interface for landscape
analysis: ACM, 2002. Paginas p.
Raskar, R., G. Welch e H. Fuchs. Spatially Augmented Reality. Methods, n.919, p.1-7.
1998.
Ratti, C., Y. Wang, H. Ishii, B. Piper e D. Frenchman. Tangible User Interfaces (TUIs): a
novel paradigm for GIS. Transactions in GIS, v.8, n.4, p.407-421. 2004.
Resnick, O. Z. A. S. A. A. M. Extending tangible interfaces for education: digital
montessori-inspired manipulatives. Proceedings of the SIGCHI conference on Human
factors in computing systems. Portland, Oregon, USA: ACM: 859-868 p. 2005.
Rodulfo, R. O Brincar e o Significante: um estudo psicanalítico sobre a constituição
precoce. Porto Alegre: ArtMed. 1990
127
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
Schartz, G. M. Dinâmica lúdica: novos olhares: Manole. 2004
Schmalstieg, D. W. A. D. Making Augmented Reality Practical on Mobile Phones, Part
1. IEEE Computer Graphics and Applications, v.29, n.3, p.12-15. 2009.
Skrypnyk, I. e D. G. Lowe. Scene modelling, recognition and tracking with invariant
image features. 2004/nov., 2004. Paginas p.
Slartoolkit. SLARToolkit ‚ Silverlight Augmented Reality Toolkit.
Streitz, N. A., G. Jã¶Rg, T. Holmer, S. I. Konomi, C. Mã¼Ller-Tomfelde, W. Reischl,
P. Rexroth, P. Seitz e R. Steinmetz. i-LAND: an interactive landscape for creativity
and innovation. CHI ‘99: Proceedings of the SIGCHI conference on Human factors in
computing systems: ACM. 1999. Paginas p.
Stricker, D. e T. Kettenbach. Real-Time and Markerless Vision-Based Tracking for
Outdoor Augmented Reality Applications. ISAR ‘01: Proceedings of the IEEE and ACM
International Symposium on Augmented Reality (ISAR’01): IEEE Computer Society.
2001, 2001. Paginas p.
Teichrieb, V., J. P. S. Do Monte Lima, E. L. Apolinário, T. S. M. C. De Farias, M.
A. S. Bueno, J. Kelner e I. H. F. Santos. Experiences on the Implementation of a 3D
Reconstruction Pipeline. International Journal of Modeling and Simulation for the
Petroleum Industry, v.1. 2007.
Ullmer, B. A. I., H. Emerging frameworks for tangible user interfaces. IBM Systems
Journal, v.39, n.3.4, p.915-931. 2000.
Vacchetti, L., V. Lepetit e P. Fua. Stable real-time 3d tracking using online and offline
information. IEEE Transactions on Pattern Analysis and Machine Intelligence, v.26,
p.1385-1391. 2004.
Wagner, D. Augmented Reality on Truly Mobile Devices. 2006.
Wagner, D., T. Pintaric, F. Ledermann e D. Schmalstieg. Towards massively multi-user
augmented reality on handheld devices. In Third International Conference on Pervasive
Computing. 2005, 2005. Paginas p.
Wagner, D. e D. Schmalstieg. ARToolKit on the PocketPC platform. Proceedings of the
Second IEEE International Augmented Reality Toolkit Workshop, 2003. Paginas p.
Wiedemann, C., M. Ulrich e C. Steger. Recognition and Tracking of 3D Objects.
Proceedings of the 30th DAGM symposium on Pattern Recognition: Springer-Verlag.
2008, 2008. Paginas p.
Xalingo. Brincando de Engenheiro 200 peças 2010.
128
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 91-128, jan./dez. 2011.ROBERTO, R.; TEIXEIRA, J. M.; LIMA, J. P.; SILVA, M.M. O. da; ALBUQUERQUE E.; ALVES, D.; TEICHRIEB, V.;
KELNER, J.. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis.
Zhou, Z., A. D. Cheok, Y. Li e H. Kato. Magic cubes for social and physical family
entertainment. CHI ‘05: CHI ‘05 extended abstracts on Human factors in computing
systems: ACM. 2005, 2005. Paginas p.
Zuckerman, O., S. Arida e M. Resnick. Extending tangible interfaces for education:
digital montessori-inspired manipulatives: ACM, 2005. Paginas p.
129
Desenvolvimento de Aplicações em Realidade Aumentada e Diminuída para iPhone e iPad
Luciano Silva e Ismar Frango Silveira
Laboratório de Processamento Gráfico e Mídias Digitais
Faculdade de Computação e Informática, Universidade Presbiteriana Mackenzie
[email protected] e [email protected]
Abstract
The increasing of general processing and graphical capabilities of mobile devices like
iPhone and iPad , as well as the availability of sensors and actuators, have shown new fe-
asible directions in both Augmented and Diminished Application development. Further-
more, languages like Objective-C and specific SDKs for iPhone and iPad provide a suitable
environment for agile prototyping of applications. This chapter presents the functional
organization of these two architectures, programming environments and tools, as well as
detailing of some Augmented and Diminished based applications for both platforms.
Resumo
Dispositivos móveis como iPhone e Ipad têm se revelado como plataformas viáveis
para desenvolvimento de aplicações tanto em Realidade Aumentada como Diminuída,
devido ao aumento de suas capacidades de processamento geral e gráfica, assim como
pela disponibilidade de sensores e atuadores. Além disto, linguagens como Objective-C e
SDKs específicos para iPhone e iPad disponibilizam um ambiente muito adequado para
prototipação ágil de aplicações. Este capítulo apresenta a organização funcional destas
duas arquiteturas, ambientes e ferramentas de programação, bem como detalhamento de
algumas aplicações em Realidade Aumentada e Diminuída para ambas as plataformas.
130
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
1. Introdução
Com o aumento do poder de processamento dos dispositivos móveis, já é possível o
desenvolvimento de aplicações complexas de Realidade Aumentada (RA) e Diminuída
(RD) nestas plataformas. Em particular, as plataformas iPhone e iPad representam uma
alternativa bastante viável para prototipação e testes de aplicações de RA e RD, dadas
as facilidades de implementação e disponibilidade de diversos sensores e atuadores pre-
sentes nestes equipamentos.
O objetivo deste capítulo é introduzir a arquitetura funcional destas duas plata-
formas, os ambientes de desenvolvimento de aplicações e a exibição de algumas possi-
bilidades para desenvolvimento tanto em RA quanto RV. O texto está organizado da
seguinte forma: as duas seções iniciais descrevem os componentes funcionais tanto do
iPhone quando iPad, com foco nos componentes passíveis de uso em RA e RD; a seção
seguinte trata dos ambientes de programação, assim como da linguagem Objective-C
e dos SDKs para as duas plataformas; finalmente, as seções finais apresentam algumas
aplicações em RA e RD. Dadas as limitações de espaço do capítulo, alguns tópicos
não poderão ser discutidos em profundidade. Para complementar a discussão destes
tópicos, recomenda-se a consulta às referências ALAN (2011), BACKLIN (2010) e TEI-
XEIRA et al. (2009).
2. Organização Funcional de Hardware do iPhone
Segundo Morissey (2010), a estrutura computacional, tando do iPhone quando do
iPad, está concentrada em um único módulo (placa-mãe ou PCB-Phone Control Board).
Os componentes principais de organização funcional do iPhone, para a versão 3GS tra-
tada neste capítulo, estão mostrados na Figura 1:
131
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
Figura 1: Organização funcional básica de um iPhone 3GS.
Fonte: www.apple.com
O Módulo de Câmera é formado por uma câmera digital de 3 megapixels, fabricada
pela empresa OmniVision, com auto-foco, auto-balanceamento de branco e auto-macro,
capaz de capturar vídeo HD em 720p (30 fps), mas que foi limitado em 480p pela Apple.
A Placa-mãe (PCB) integra circuitos de diversos fabricantes. A Figura 2 ilustra a
parte frontal desta placa, com fabricantes dos circuitos, modelos e funções:
Figura 2: Arquitetura da parte frontal da PCB de um iPhone 3GS.
Fonte: www.apple.com
132
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
O módulo central de processamento desta arquitetura é um Samsung APL0298C05,
integrado na forma SoC e que contém um processador ARM Cortex-A8, underclocked
de 833 Mhz para 600Mhz, com uma GPU integrada PowerVR SGX, que suporta progra-
mação shaders de pixel, de vértices e geométricos, segundo as especificações OpenGL
2.0 e Direct X 10.1 Shader Model 4.1. Este SoC conta com uma memória eDRAM dedi-
cada de 256MB. Além do processador e da GPU, os circuitos abaixo também podem ser
acessados por aplicações em Realidade Aumentada e Diminuída:
Controlador de Touchscreen
Interface para o Display
Módulo de Áudio
Módulo de GPS
Módulos de Rede (Wi-Fi, Blutooth e 3G)
A parte posterior da PCB contém a memória principal do iPhone e o controlador de
Bluetooth, conforme mostrado na Figura 3:
Figura 3: Arquitetura da parte posterior da PCB de um iPhone 3GS.
Fonte: www.apple.com
As aplicações, normalmente, são armazenadas nesta memória (versões para 8GB,
16GB e 32GB). Esta memória não pode ser expandida. Porém, é possível o armazena-
mento de aplicações diretamente dentro do cartão SIM da operadora do celular.
133
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
3. Organização Funcional de Hardware do iPad
A organização funcional do iPad é similar em vários aspectos com a organização
do iPhone (Morissey, 2010). A Figura 4 mostra os principais componentes da arquitetu-
ra do iPad Versão 1:
Figura 4: Visão funcional dos componentes do iPad Versão 1.
Fonte: www.apple.com
No iPad, ainda se tem o módulo computacional organizado em uma placa chamada
Placa de Lógica Principal (MLB-Main Logic Board), onde se encontram um processador
A4, os módulos de memória e demais componentes. Um diferenciador importante pode
ser notado nas antenas de Bluetooth e Wi-Fi localizados na mesma placa que contém o
conector do iPad a cabos e docks, além das duas células de baterias, que confere maior
autonomia enérgetica do iPad em relação ao iPhone.
Somente a versão 2 do iPad conta com câmeras frontal e posterior. É possível, tam-
bém, encontrar ambas as versões (1 e 2) com suporte a 3G. A Figura 5 mostra os princi-
pais componentes da MLB do iPad Versão 1, com as partes frontal e posterior da placa:
134
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
Figura 5: Componentes da MLB do iPad Versão 1.
Fonte: www.applei.ph
O processador da MLB é um Apple A4, baseado na arquitetura ARM. No iPad
Versão 1, este processador funciona a 1GHz e é formado por um core ARM Cortex-A8 e
uma GPU PowerVR SGX 535, que também suporta pixel shaders, vertex shaders e geo-
metric shaders. Este mesmo processador também é utilizado no iPhone 4, iPod Touch e
Apple TV, mas as frequências de operação não são divulgadas. No iPad Versão 2, utiliza-
se um processador Apple A5, dual core, com frequência de operação de 1GHz.
4. Processo de Desenvolvimento de Aplicações para iPhone/iPad
Nesta seção, será apresentado o processo de desenvolvimento tradicional de desen-
volvimento na plataforma Apple, que se baseia em XCode, assim como tratar de alterna-
tivas para outras plataformas. Uma breve visão da linguagem Objective-C (Apple, 2010)
será também oferecida.
4.1. Ambientes de programação e compilação
O XCode (anteriormente denominado Project Builder) é um ambiente para desen-
volvimento de aplicações em iPhone/iPad mantido pela Apple, que é incluído no pacote
135
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
Developer Tools. Pode ser categorizado como uma suíte de ferramentas para o desenvol-
vimento de software para Mac OS X e iOS, como mostra a Figura 6 a seguir.
Figura 6: O ambiente Xcode.
Fonte: http://www.blogiversity.org/images/devtools_simulator.jpg e http://gdcmac.source-
forge.net/xcode-d-project.png
136
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
A principal aplicação da suíte é seu ambiente de desenvolvimento integrado (IDE),
igualmente chamado Xcode. Entre as funcionalidades da suíte Xcode encontra-se uma
tecnologia para distribuir a construção de código-fonte em vários computadores. Eclip-
se, NetBeans, Geany, Aptana, Code::Blocks, KDevelop e Anjuta são alternativas popu-
lares para o Xcode no Linux, utilizando-se do gcc. Para Windows, pode-se usar o com-
pilador Objective-C que acompanha o sistema MinGW (http://www.mingw.org). Em
ambos os casos, é possível executar o Xcode através de uma máquina virtual.
4.2. Linguagem Objective-C
A linguagem Objective-C foi criada por Brad Cox e Tom Love em sua empresa
Stepstone nos anos 1980. Quando Steve Jobs temporariamente deixou a Apple, o mesmo
fundou a companhia NeXT e licenciou a linguagem, lançando seu próprio compilador,
sobre o qual a interface NeXTstep seria criada – a mesma virou base para o projeto
GNU, que se baseou no padrão OpenStep. Ao adquirir a NeXT, a Apple incorporou a
linguagem Objective-C e usou OpenStep em seu sistema operacional, de maneira que
boa parte dos objetos da API Cocoa da Apple é baseada nos objetos da OpenStep.
Em moldes similares a C++, agrega os conceitos advindos do Paradigma Orientado
a Objetos à linguagem C. Entretanto, diferente de C++, o faz com uma sintaxe inspirada
claramente em Smalltalk. A Figura 7 a seguir mostra um exemplo de código escrito em
Objective-C – o material de referência para a linguagem encontra-se em (Apple, 2010):
137
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
Figura 7: Exemplo de código em Objective-C.
5. Aplicações para Realidade Aumentada
A maioria das aplicações para Realidade Aumentada para iPhone e iPad disponí-
veis na loja iTunes ainda estão vinculadas a jogos. A seguir, serão descritos alguns destes
jogos com base em ABRANTES (2010).
AR EASTER EGG HUNT
AR Easter Egg Hunt (APPLE INC.; 2010a) é um jogo gratuito em Realidade Au-
mentada desenvolvido para iPhone 3GS, com o intuito de relembrar o usuário de sua
infância e de como se divertia procurando ovos de Páscoa escondidos.
O jogo é baseado em um costume muito tradicional em diversos países do mundo,
que consiste em colher ovos escondidos na época da Páscoa. Com gráficos típicos do
tema, o jogo faz uso de diversas funcionalidades do iPhone 3GS. A Figura 8 mostra a
tela principal do jogo:
138
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
Figura 8: Tela principal do jogo AR Easter Egg Hunt.
Fonte: http://a1.phobos.apple.com/us/r1000/037/Purple/8d/a4/e5/
mzl.momhkhqn.320x480-75.jpg
No menu ‘Radar’ da tela principal, o jogador pode transformar o dispositivo em um
radar de ovos, permitindo a localização de ovos ao redor do mundo inteiro, por meio do
GPS. A Figura 9 mostra essa funcionalidade:
139
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
Figura 9: Radar do AR Easter Egg Hunt exibindo a localização dos ovos de Páscoa.
Fonte: http://a1.phobos.apple.com/us/r1000/056/Purple/21/dd/0d/
mzl.hoyuolgv.320x480-75.jpg
Para coletar os ovos de Páscoa, o jogador precisa mudar o modo de visualização
para a visualização em Realidade Aumentada que exibirá os ovos coloridos ao seu redor.
A Figura 10 mostra o jogador selecionando um ovo próximo à Torre Eiffel, em Paris:
Figura 10: Ovo encontrado próximo à Torre Eiff el no jogo AR Easter Egg Hunt.
140
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
O objetivo do jogo é coletar a maior quantidade de ovos possível, variando de ovos
comuns para muito raros, de modo a maximizar a pontuação online e completar um
conjunto de objetivos, tais como coletar todos os ovos comuns. O usuário pode seguir
seu progresso navegando nas salas de prêmios, por meio do menu ‘Awards’ da tela prin-
cipal, e compartilhar suas realizações com seus amigos no facebook. A Figura 11 mostra
a pontuação global do usuário:
Figura 11: Pontuação global do usuário no jogo AR Easter Egg Hunt.
Fonte: http://a1.phobos.apple.com/us/r1000/010/Purple/84/1f/91/
mzl.vcmfrvyf.320x480-75.jpg
AR Easter Egg Hunt é um jogo em Realidade Aumentada impressionante, que cria
uma experiência semi-imersiva rica e muito divertida. Atualmente, o jogo é suportado
apenas em iPhone 3GS com a versão 3.1.3 do iPhoneOS.
ARCADE REALITY
Invasores de videogame do espaço sideral estão atacando o mundo real. Apenas o
jogador pode ver e atacá-los com o iPhone. No Arcade Reality (APPLE INC., 2010b), in-
141
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
vasores alienígenas voam ao redor do corpo do jogador em tempo real, atacando-o com
feixes de laser e mísseis por todos os lados.
A Figura 12 mostra uma sessão de jogo do Arcade Reality:
Figura 12: Sessão de jogo do Arcade Reality.
Fonte: http://a1.phobos.apple.com/us/r1000/008/Purple/09/17/13/
mzl.vmfedtoy.320x480-75.jpg
O jogo comporta múltiplos modos de jogo e níveis bônus, incluindo:
Infinite Shooter:• se atira em tudo que se move, muito simples e fácil. O jogo
termina quando dez alienígenas atravessam o “portal triangular”, portanto o
jogador deve matá-los antes que eles o façam.
Arcade Reality:• o jogador tem três minutos para o jogo inteiro. Em cada nível
regular perde-se algum tempo pelo jogo, mas se ganha alguns segundos de
bônus. Mantendo-se o saldo positivo, pode-se jogar por um bom tempo antes
que o prazo se esgote. A cada cinco níveis há um nível bônus em que se pode
ganhar power-ups ou tempo extra ao completar uma missão especial.
142
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
Asteroid Mode:• o jogador pilota uma pequena espaçonave lutando contra as-
teróides e alienígenas.
Há vários tipos de alienígenas com inúmeros ataques e movimentos. Os chefes são
mais fortes que os alienígenas e aparecem ao final de cada nível. A Figura 13 mostra a
tela principal do jogo:
Figura 13: Tela principal do jogo Arcade Reality.
Fonte: http://a1.phobos.apple.com/us/r1000/033/Purple/c8/48/62/
mzl.isyzodsb.320x480-75.jpg
O jogador pode ainda visitar e postar sua pontuação no Hall da Fama e ver como se
compara com os melhores jogadores ao redor do mundo. O jogo faz intenso uso da câ-
mera, acelerômetro e bússola para o registro das posições e por isso requer a utilização
de um iPhone 3GS.
CAPTURE THE FLAG
Capture the Flag (APPLE INC., 2010c) é um jogo multiplayer baseado na rede 3G.
Para jogá-lo é necessário que o Bluetooth esteja ligado, o adaptador Wifi desligado e que
143
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
haja uma boa recepção de sinal de GPS, que geralmente requer que o jogador esteja em
um ambiente exterior. Em um jogo de duas pessoas, o segundo jogador também precisa
ser um líder de time.
Naturalmente, as bases precisam estar posicionadas a uma distância razoável para
prevenir que as bandeiras sejam capturadas instantaneamente. A Figura 14 mostra o
menu principal do jogo:
Figura 14: Tela principal do jogo Capture the Flag.
Fonte: http://a1.phobos.apple.com/us/r1000/051/Purple/4b/00/07
/mzl.ioeyjfxb.320x480-75.jpg
Capture the Flag tem uma longa história entre jogadores jovens. Eles adoram estar
ao ar livre, são fisicamente ativos e mentalmente envolvidos. A Figura 15 mostra uma
sessão do jogo, com as localizações de ambas as bandeiras pelo GPS:
144
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
Figura 15: Sessão do jogo Capture the Flag mostrando as localizações das bandeiras.
Fonte: http://a1.phobos.apple.com/us/r1000/024/Purple/c8/ab/16/
mzl.xhvndgzw.320x480-75.jpg
Atualizado para uma jogabilidade moderna, a versão da Situware relata aos jo-
gadores e seus times as localizações de ativos, em tempo real, em uma visão aérea de
um mapa. Os jogadores são providos com ativos virtuais como armas, kits médicos
e bandeiras. Os jogos e times são estabelecidos ad hoc, as bandeiras são posicionadas
assim que as equipes vêem encaixes. Os jogadores são monitorados usando o GPS, ace-
lerômetro, bússola e suas interações com a tela de toque do iPhone. As informações
disponibilizadas são reforçadas com sons e vibrações geradas pelo jogo, aumentando o
senso do jogador em relação ao mundo. A Figura 16 mostra algumas das informações
disponibilizadas aos jogadores:
145
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
Figura 16: Informações disponibilizadas aos jogadores de Capture the Flag.
Fonte: http://a1.phobos.apple.com/us/r1000/042/Purple/db/87/c7
/mzl.cuocfqeq.320x480-75.jpg
O jogo é jogado ao ar livre, direcionado para jogadores casuais procurando por
uma experiência física e cognitiva. O objetivo é localizar a bandeira e capturar a bandei-
ra do time oposto ao passo que não se pode perder a da própria equipe.
FIREFIGHTER 360
Firefighter 360 (APPLE INC., 2010e) é um jogo de bombeiros especificamente de-
senvolvido para iPhone auxiliado por uma engine de Realidade Aumentada. Nesse jogo
o jogador atua como um bombeiro, que, ao invés de matar os inimigos, tem de dar fim
a chamas que se espalham rapidamente no ambiente real. Conforme o jogador gira com
o iPhone, ele tem uma visão do que há ao seu redor.
A Figura 17 mostra os controles e informações do jogo:
146
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
Figura 17: Controles e informações disponibilizadas aos jogadores de Firefi ghter 360.
Fonte: http://a1.phobos.apple.com/us/r1000/048/Purple/d2/64/50/
mzl.bzrufb zi.320x480-75.jpg
O jogador pode andar para frente e para trás por meio de um botão e atirar água
pressionando a tela. O fogo propriamente dito não é apenas um inimigo estático com o
qual o jogador tem de lidar. As chamas vão se propagando e se o jogador não as apagar
completamente, o fogo é capaz de causar-lhe dano. A Figura 18 mostra uma cena em que
a situação saiu de controle e o jogador está sofrendo dano por conta disso:
Figura 18: Chamas causando danos no jogador de Firefi ghter 360.
Fonte: http://a1.phobos.apple.com/us/r1000/049/Purple/8d/66/56/
mzl.bophjqpk.320x480-75.jpg
147
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
Para reencher a coluna de água automaticamente é preciso estar perto do caminhão
de bombeiros. O jogador pode salvar as pessoas do fogo tocando nelas quando estiverem
próximas. Cada pessoa salva vale 25 pontos e cada fogo apagado vale 10. A Figura 19
mostra o jogador salvando uma pessoa:
Figura 19: Jogador salvando uma pessoa em Firefi ghter 360.
Fonte: http://a1.phobos.apple.com/us/r1000/058/Purple/b3/73/3b/
mzl.hmhoxlew.320x480-75.jpg
Para marcar mais pontos o jogador deve tomar cuidado com o fogo, girando 360
graus para verificar toda a área de jogo e salvar a maior quantidade possível de pessoas.
FIREPOWER
Firepower (APPLE INC., 2010f) é um simulador de metralhadora em que o joga-
dor pode mirar em qualquer objeto visto na câmera e atirar. É possível armazenar as
fotos dos objetos tomando tiros. A Figura 20 mostra a tela com os principais botões
utilizados no jogo:
148
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
Figura 20: Tela com principais botões do jogo Firepower.
Fonte: http://a1.phobos.apple.com/us/r1000/017/Purple/49/d5/b7/mzl.
cocofj bt.320x480-75.jpg
Na tela de configurações é possível customizar os efeitos dos tiros, habilitar fuma-
ça, gravidade realística e se o iPhone vibrará durante os tiros ou não, conforme mostra
a Figura 21:
Figura 21: Tela de confi gurações do jogo Firepower.
Fonte: http://a1.phobos.apple.com/us/r1000/033/Purple/7d/e9/d4/
mzl.xszrxfgy.320x480-75.jpg
O jogo não tem um objetivo claro, seu propósito é meramente a diversão de se atirar
em qualquer coisa. Há ainda uma opção de customizar os tiros por meio de uma aplica-
ção chamada Particle Toy e importá-los no Firepower.
149
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
iPEW
iPew (APPLE INC., 2010g) é outro jogo com o simples propósito de se atirar no que
é projetado na câmera do iPhone, como mostra a Figura 22:
Figura 22: Jogador atirando em uma pessoa no jogo iPew.
Fonte: http://a1.phobos.apple.com/us/r1000/059/Purple/9e/d4/0b/
mzl.qqwrztrh.320x480-75.jpg
Há quatro opções de armas para serem usadas: raio laser, metralhadora, mísseis e
atirador de chamas.
SKY SEIGE
Sky Seige (APPLE INC., 2010i) é um jogo, cujo campo de visão do jogador é de
360 graus em todas as direções, o que o torna mais real e imersivo. O jogador deve se
defender dos helicópteros espalhados por todos os lados atirando neles. Para isso, ele
deve girar seu iPhone ao seu redor para localizá-los e tocar na tela para atirar. A Figura
23 mostra a interface do jogo:
150
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
Figura 23: Interface do jogo Sky Seige.
Fonte: http://a1.phobos.apple.com/us/r1000/012/Purple/c6/6f/51/
mzl.zwwohqcm.320x480-75.jpg
O jogador tem várias opções de armas e para trocá-las ele deve usar o botão locali-
zado no canto esquerdo inferior da tela. Para recarregar suas armas o jogador deve olhar
para o chão, onde estão localizadas as caixas com munição. É possível aproximar a mira
da arma apertando o botão próximo ao que troca as armas. O jogo dispõe de dois mo-
dos, um de Realidade Virtual e outro de Realidade Aumentada. No modo de Realidade
Virtual, o jogador é colocado em uma torre, no meio de um campo de batalha e tem de
derrubar os helicópteros inimigos que o rodeiam, conforme mostra a Figura 24:
Figura 24: Modo de Realidade Virtual do jogo Sky Seige.
Fonte: http://a1.phobos.apple.com/us/r1000/055/Purple/99/ee/87/
mzl.pwowslwb.320x480-75.jpg
151
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
No modo de Realidade Aumentada, diferentemente do modo em Realidade Vir-
tual, os helicópteros inimigos são inseridos no mesmo ambiente em que o jogador está
localizado, conforme mostra a Figura 25:
Figura 25: Modo de Realidade Aumentada do jogo Sky Seige.
Fonte: http://a1.phobos.apple.com/us/r1000/033/Purple/d0/4b/a0/
mzl.qgmmfzhc.320x480-75.jpg
O jogo dispõe de 32 fases, com diferentes níveis de dificuldade. Para jogar Sky Sei-
ge o jogador necessita de um iPhone 3GS, pois, além de utilizar acelerômetro, o jogo
também utiliza a bússola digital. Para melhores resultados é importante que não haja
interferência magnética.
TURN YOUR FRIENDS INTO A CYBORG
Segundo Kirner e Kirner (2008), para que uma aplicação seja considerada de Reali-
dade Aumentada, é necessário que os objetos reais e virtuais sejam misturados em tem-
po real. Apesar de Turn Your Friend into a Cyborg (APPLE INC., 2010j) não se encaixar
nesse quesito e, portanto, não ser classificado como uma aplicação de Realidade Au-
mentada dentro do escopo deste trabalho, ele foi incluído nessa seção por apresentar um
aspecto interessante ao desenvolvimento de aplicações de Realidade Aumentada. Ele é
capaz de detectar rostos humanos usando técnicas de visão computacional e alinhá-los
com a face de um robô virtual, conforme mostra a Figura 26:
152
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
Figura 26: Exemplo da detecção de rostos da aplicação Turn Your Friends into a Cyborg.
Fonte: http://a1.phobos.apple.com/us/r1000/022/Purple/52/18/53/
mzl.biwyaxkb.320x480-75.jpg
A detecção de padrões por meio da visão computacional é um requisito importante
para se produzir bons jogos em Realidade Aumentada, que normalmente utilizam mar-
cadores fiduciais para orientar o alinhamento dos objetos reais e virtuais.
6. Desenvolvimento de Aplicações para Realidade Diminuída
Ao contrário da Realidade Aumentada, a Realidade Diminuída tem como objetivo remover detalhes de uma cena, conforme mostrado na Figura 27:
153
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
Figura 27: Remoção de detalhes em imagens via Realidade Diminuída.
Fonte: http://3.bp.blogspot.com/_Hj8jCz2g8iI/TO7RT-NvLNI/AAAAAAAAAhE/
C1Vqh42nZ7Y/s1600/diminished-reality.jpg
O procedimento para remoção de detalhes nas imagens pode utilizar os mesmos
frameworks mostrados anteriormente. Porém, a carga de processamento devido à apli-
cação de filtros para remoção de detalhes é muito mais intensa quando comparada à
implementação de algoritmos para Realidade Aumentada.
Outro obstáculo bastante importante refere-se à limitação no uso de múltiplas câ-
meras para Realidade Diminuída. Por exemplo, técnicas como ENOMOTO e SAITO
(2007) não podem ser facilmente implementadas, mesmo no contexto de compartilha-
mento de câmeras entre iPhones e iPads (somente versão 2).
Assim, a área de Realidade Diminuída nestes dois dispositivos ainda apresenta di-
versos desafios para desenvolvimento de novas bibliotecas e frameworks sob um am-
biente com número reduzido de câmeras.
154
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
7. Conclusões
Realidade Aumentada e Diminuída em dispositivos móveis oferece várias opor-tunidades de pesquisa, tanto teóricas como aplicadas. As plataformas iPhone e iPad representam alternativas viáveis para prototipação de aplicações nessas áreas, cujas ca-racterísticas principais envolvem alto desempenho de CPU e GPU, ambientes de desen-volvimento gratuitos e boa documentação.
Este capítulo apresentou os fundamentos da arquitetura dessas duas plataformas, com ênfase em aspectos de componentes para Realidade Aumentada e Dimunída. Além disto, foram apresentados os princípios da linguagem Objective-C, base para implemen-tação de aplicações no ambiente Apple. Finalmente, foram apresentados diversos exem-plos de aplicações tanto para iPhone quanto iPad.
Dado o caráter introdutório do texto, diversos detalhes sobre bibliotecas e fra-meworks não puderam ser discutidos. Neste contexto, estimula-se o leitor a consultar as referências indicadas durante e no final deste texto para suprir estas lacunas. Além disto, reforça-se o fato que o desenvolvimento de novas técnicas, bibliotecas e frameworks para desenvolvimento de aplicações de Realidade Aumentada e Diminuída é de grande interesse tanto acadêmico quanto comercial.
Referências
ABRANTES, C.A.B.P. Jogos em Realidade Aumentada para iPhone. Trabalho de
Conclusão de Curso. Orientador: Luciano Silva. Bacharelado em Ciência da Computação,
Universidade Presbiteriana Mackenzie, São Paulo, 2010.
ALLAN, A. iOS 4 Sensor Programming: Augmented reality and Location Enabled
iPhone and iPad Apps. New York: O’Reilly, 2011.
ALTENBERG, B., CLARKE, A. e MOUGIN, P. Become an Xcoder – Start
programming the Mac using Objective-C. Disponível em: http://www.cocoalab.
com/BecomeAnXcoder.pdf Acesso em 28 de Março de 2011.
BACKLIN, G. Professional iPhone and iPad Application Development. New York:
Wrox, 2010.
APPLE INC (a). AR Easter Egg Hunt. Apple. Disponivel em: <http://itunes.apple.com/
us/app/ar-easter-egg-hunt-augmented/id363450700?mt=8>. Acesso em: 20 Maio 2010.
___________(b). Arcade Reality. Apple. Disponivel em: <http://itunes.apple.com/us/
app/arcade-reality-iphone-3gs/id328981829?mt=8#>. Acesso em: 20 Maio 2010.
155
Tendências e Técnicas e Realidade Virtual e Aumentada, Porto Alegre, v. 2, n. 1, p. 129-156, jan./dez. 2011.SILVA, Luciano; SILVEIRA, Ismar Frango.
Desenvolvimento de Aplicaçnoes em Reralidade Aumentada e Diminuída para iPhone e iPad
___________(c). Capture the Flag. Apple. Disponivel em: <http://itunes.apple.com/us/
app/capture-flag-augmented-reality/id362289823?mt=8>. Acesso em: 20 Maio 2010.
___________(d). Developer Tools Overview. Apple Developer. Disponivel em: <http://
developer.apple.com/technologies/tools/>. Acesso em: 20 Outubro 2010.
___________(e). Firefighter 360. Apple. Disponivel em: <http://itunes.apple.com/us/
app/firefighter-360/id338041092?mt=8>. Acesso em: 20 Maio 2010.
_____________(f). Firepower. Apple. Disponivel em: <http://itunes.apple.com/us/
app/firepower/id317465162?mt=8>. Acesso em: 20 Maio 2010.
____________(g). iPew. Apple. Disponivel em: <http://itunes.apple.com/us/app/ipew/
id333769147?mt=8>. Acesso em: 20 Maio 2010.
____________(h). Model-View-Controller. Cocoa Core Competencies. Disponivel
em: <http://developer.apple.com/library/ios/#documentation/General/Conceptual/
DevPedia-CocoaCore/MVC.html#//apple_ref/doc/uid/TP40008195-CH32-SW1>.
Acesso em: 4 Novembro 2010.
____________(i). Sky Siege. Apple. Disponivel em: <http://itunes.apple.com/us/app/
sky-siege/id349892759?mt=8>. Acesso em: 20 Maio 2010.
__________ (j). Turn Your Friend into a Cyborg. Apple. Disponivel em: <http://itunes.
apple.com/us/app/turn-your-friend-into-a-cyborg/id357418260?mt=8>. Acesso em: 20
Maio 2010.
___________ (k). The Objective-C Proramming Language. Apple. Disponível
em: <http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/
ObjectiveC/ObjC.pdf>. 8 Dezembro 2010, acesso em: 2 Abril 2011.
ENOMOTO, A., SAITO, H. Diminished Reality using Multiple Handheld Cameras. In:
Proceedings of ACCV’07 Workshop on Multi-dimensional and Multi-view Image
Processing, pp.130-135, 2007.
KIRNER, C.; KIRNER, T. G. Virtual Reality and Augmented Reality Applied to
Simulation Visualization. In: EL SHEIKH, A.; AL AJEELI, A. T.; ABU TAIEH, E.
Simulation and Modeling: Current Technologies and Applications. Hershey: Idea
Group Reference, 2008. p. 391-419.
TEIXEIRA, J.M., TEICHRIEB, V., KELNER, J. Embedded Augmented Reality: Finding an adequate escape pod to real time augmented reality applications. New York: LAP Lambert Academic Publishing, 2009.