Escolar Documentos
Profissional Documentos
Cultura Documentos
ARToolKit CAP6 2004 PDF
ARToolKit CAP6 2004 PDF
EDUCACIONAIS
Consularo, L.A.; Calonego Jr, N.; Dainese, C.A.; Garbin, T. R.; Kirner, C.;
Trindade, J.; Fiolhais, C. - ARToolKit: Aspectos Tcnicos e Aplicaes
Educacionais. In: Cardoso, A.; Lamounier Jr, E. editores. Realidade Virtual:
Uma Abordagem Prtica. Livro dos Minicursos do SVR2004, SBC, So
Paulo, 2004, p. 141-183.
SUMRIO DO CAPTULO 6
1
Programa de Ps Graduao em Cincia da Computao
Faculdade de Cincias Matemticas da Natureza e Tecnologia da Informao Universidade
Metodista de Piracicaba (UNIMEP)
Rodovia do Aucar, Km 156 13.400-911 - Piracicaba SP
2
Centro de Fsica Computacional - CFC, Universidade de Coimbra - UC, Portugal
{cdainese, ckirner, trgarbin}@unimep.br
{alberto, tcarlos}@teor.fis.uc.pt
1.1 Introduo
Este documento apresenta o pacote ARToolKit, enfatizando a instalao e o uso. O
ARToolKit uma biblioteca em linguagem C que permite aos programadores desenvolver
aplicaes de Realidade Aumentada. Realidade Aumentada (RA) a sobreposio de
imagens virtuais de computao grfica sobre cenas do mundo real. Esse modelo de
interface tem mostrado potencial para muitas aplicaes em pesquisa industrial e
acadmica.
Nos tutoriais do ARToolKit [KATO 2002], os autores encorajam os leitores a enviar
comentrios e questes sobre o ARToolKit e relatos de erros e falhas para Hirokazu Kato
(kato@sys.im.hiroshima-cu.ac.jp) ou para Mark Billinghurst (grof@hitl.washington.edu).
H tambm uma lista de discusses que usada para difundir notcias sobre novas verses
do ARToolKit, correes e aplicaes que a comunidade que trabalha com ARToolKit est
desenvolvendo. Para assinar esta lista, envie uma mensagem para
majordomo@hitl.washington.edu com as palavras "subscribe artoolkit" no corpo da
mensagem. Depois disso, qualquer mensagem que voc enviar para
artoolkit@hitl.washington.edu ser enviada a todos os membros desta lista de discusses.
As listas so muito teis para encontrar dicas sobre o uso das funes, sobre equipamentos
que esto sendo utilizados pelos desenvolvedores1,2 e ainda sobre novas verses e revises
do pacote.
1
http://onyx.sys.im.hiroshima-cu.ac.jp/people/kato/
2
http://www.hitl.washington.edu/people/grof/
Atualmente, o ARToolKit executa nas plataformas SGI Irix3, PC Linux4, PC Windows
95/98/NT/2000/XP5 e Mac OS X6. H verses separadas para cada uma destas plataformas.
A funcionalidade de cada verso do kit a mesma, mas o desempenho pode variar
conforme as diferentes configuraes de hardware. Na plataforma SGI, por exemplo, o
ARToolkit foi testado apenas para computadores SGI O2, contudo deve tambm executar
nos computadores SGI atuais que contm com entradas de vdeo.
A verso atual do ARToolKit oferece suporte para realidade aumentada com viso direta
por vdeo ou viso direta ptica. A RA por viso direta por vdeo aquela cujas imagens
virtuais so sobrepostas s imagens de vdeo ao vivo adquiridas do mundo real. A outra
opo a RA por viso direta ptica, na qual modelos de computao grfica (os objetos
virtuais) so sobrepostos diretamente s imagens do mundo real percebidas pelo sujeito. A
RA por viso direta requer um dispositivo HMD (Head Mounted Display) e exige tambm
um procedimento de calibrao da cmera que adquire imagens do mundo real [KATO
2002; KATO & BILLINGHURST 1999]. Estes procedimentos podem variar entre algo
mais simples (que ser mostrado na seo 1.3), quando a viso direta por vdeo, ou mais
complexo quando por viso direta ptica.
Uma das partes mais trabalhosas no desenvolvimento de uma aplicao em RA calcular
precisamente o ponto de vista do usurio em tempo-real para que imagens virtuais sejam
alinhadas com preciso s imagens dos objetos do mundo real [HARTLEY &
ZISSERMAN 2003]. O ARToolKit usa tcnicas de viso computacional para calcular a
posio no espao real da cmera e sua orientao em relao aos cartes marcadores,
permitindo ao programador sobrepor objetos virtuais aos cartes. O pacote inclui
bibliotecas de rastreamento e disponibiliza o cdigo fonte completo, tornando possvel o
transporte do cdigo para diversas plataformas ou adapt-los para resolver as
especificidades de suas aplicaes. Vrias aplicaes simples so fornecidas com o
ARToolKit para que programadores comecem rapidamente a desenvolver suas aplicaes.
Alm disso, o ARToolKit livre para uso em aplicaes no-comerciais e distribudo
com cdigo aberto sob licena GPL. Os interessados no uso do ARToolKit para o
desenvolvimento de aplicaes comerciais devem entrar em contato com Hirokazu Kato1
ou com Mark Billinghurst2.
O ARToolKit uma novidade em termos de modelo e programao de interfaces, em que
alguns tutoriais apresentados pelos autores do ARToolKit e outros interessados [BERRE et
al. 2002; KATO, BILLINGHURST & POUPYREV 2000; KE 2000] so as principais
fontes de informao. Assim, a elaborao de um texto que trata de mostrar os elementos
necessrios ao desenvolvimento desse tipo de aplicao exige uma organizao de texto
que o resultado da compilao desses tutoriais e de experimentaes dos prprios autores
deste texto, e est distribudo em cinco sesses.
A primeira apresenta a instalao do ARToolKit. A segunda trata da programao de
aplicaes com o ARToolKit, explorando os exemplos mais simples de execuo, que so
distribudos com o Kit, e detalhando os passos do desenvolvimento de uma aplicao tpica.
A terceira sesso apresenta o procedimento necessrio calibrao de cmeras, usando os
3
http://www.sgi.com/products/software/irix/
4
http://www.linux.org/
5
http://www.microsoft.com/windows
6
http://www.apple.com/macosx/
utilitrios disponveis no ARToolKit. Os utilitrios podem ser usados isoladamente, pois
seus resultados so armazenados em arquivos que podem ser lidos por outras aplicaes. A
quarta sesso descreve as bibliotecas, enfocando as funes mais importantes utilizadas
para implementar aplicaes com o ARToolKit em computadores PC-compatveis com
Windows. A quinta e ltima sesso discute algumas limitaes deste tipo de implementao
de RA e mostra tambm algumas perspectivas para esta biblioteca.
7
http://www.ptgrey.com/
8
http://www.ims.tuwien.ac.at/~thomas/artoolkit.php
ainda que se conecte cmeras Firewire no Windows para que a aquisio das imagens seja
mais rpida, possibilitando o aumento da taxa de processamento dos quadros. O autor alega
que o suporte ao DirectShow tem um desempenho em torno de 3 vezes superior ao
desempenho das verses com OpenGL.
A verso 2.68 a mais recente e tem verses disponveis para Windows e para
Linux/SGI/MacOSX. Ainda no oferece suporte ao VRML e est disponvel em
http://www.eden.net.nz/phil/develop/artoolkit/. Esta verso corrige alguns problemas da
verso 2.65, que invertia as coordenadas de altura nas imagens adquiridas das cmeras.
Ainda h implementaes independentes do ARToolKit para Matlab
(http://mixedreality.nus.edu.sg/ software.htm), uma outra que conecta as bibliotecas do
ARToolKit com Java, o JARToolKit9 [GEIGER et al. 2002], e tambm uma iniciativa de
software para aplicaes de RA para PDAs da linha iPaq10 [WAGNER & SCHMALSTIEG
2003].
A Erro! A origem da referncia no foi encontrada. ilustra um diagrama resumindo as
verses convencionais disponveis do ARToolKit. As verses PC, SGI e Linux do
ARToolKit esto disponveis gratuitamente em
http://www.hitl.washington.edu/research/shared_space/download/.
Este tutorial descreve a instalao da verso 2.65 com VRML, que est disponvel em
http://www.hitl.washington.edu/artoolkit/download.htm.
9
http://www.c-lab.de/jartoolkit
10
http://studierstube.org/handheld_ar
11
http://www.logitech.com/index.cfm/support/products/details/US/EN,CRID=1795,CONTENTID=6041
12
http://www.creative.com/products/product.asp?prodid=15
13
http://www.usb.org/home
14
http://www.microsoft.com/directx
haja motivo de incompatibilidade entre cmeras e placas de aquisio de vdeo que sejam
suportados pelo Vision SDK, Video for Windows ou pelo WDM (Windows Driver Model)
da Microsoft. Os cdigos-fonte foram compilados com o MS Visual C++ 6.0 e o MS Visual
C++ 7.0 (ambos com instalao do Visual Studio15).
15
http://msdn.microsoft.com/vstudio
Na opo C/C++ voc poder adicionar novos diretrios de prottipos selecionando a
opo Preprocessor em Category. Na caixa de texto Additional include directories, inclua
o diretrio de sua preferncia. Na opo Link, selecione Input em Category. Na caixa de
texto Additional library path, inclua os diretrios de bibliotecas de sua preferncia, isto ,
aqueles nos quais voc incluiu os arquivos com extenso .lib.
#pattern 1
VRML Wrl/bud_B.dat
Data/patt.hiro
80.0
0.0 0.0
#pattern 2
VRML Wrl/snoman.dat
Data/patt.kanji
80.0
0.0 0.0
1.2.7.1 init()
A funo init() chamada a partir da funo principal e usada para definir o caminho
dos parmetros para o dispositivo de vdeo e para ler os parmetros iniciais da aplicao
ARToolKit. Os parmetros principais para uma aplicao ARToolKit so:
1. os padres que sero usados para comparar os padres e encontrar a
correspondncia entre o desenho no padro e um objeto virtual.
2. as caractersticas da cmera de vdeo que est sendo usada.
Estes dois parmetros principais podem ser lidos de arquivos de configurao, ou
fornecidos na linha de comando da aplicao ou ainda definidos em constantes diretamente
no cdigo. O parmetro default da rotina init para o nome do arquivo de parmetros da
cmera Data/camera_para.dat, enquanto o nome default para o arquivo de objetos
Data/vrml_data. O arquivo que contm os nomes dos padres e dos objetos virtuais
lido com a chamada de funo do Cdigo 3.
arInitCparam( &cparam );
printf("*** Camera Parameter ***\n");
arParamDisp( &cparam );
/* abre a janela grafica */
argInit( &cparam, 1.0, 0, 0, 0, 0 );
/* cparam, zoom, fullflag, xwin, ywin, hmd */
arImageProcMode = AR_IMAGE_PROC_IN_FULL;
// arImageProcMode = AR_IMAGE_PROC_IN_HALF;
argDrawMode = AR_DRAW_BY_TEXTURE_MAPPING;
// argDrawMode = AR_DRAW_BY_GL_DRAW_PIXELS;
/* inicializa a iluminao */
init_lights();
1.2.7.2 mainLoop
Esta a rotina na qual a maior parte das chamadas de funo do ARToolKit. Ela contm o
cdigo correspondente aos passos 2, 3, 4 e 5 da aplicao.
Primeiro o quadro do vdeo capturado usando a funo arVideoGetImage (veja o
Cdigo 12).
argDrawMode2D();
/* mostra a imagem na tela como um mapa de bits
argDispImage( dataPtr, 0, 0 );
/* captura o prximo quadro de vdeo */
arVideoCapNext();
if ( object[i].visible == 0 ) {
arGetTransMat( &marker_info[k],
object[i].marker_center,
object[i].marker_width,
object[i].trans);
}
else {
arGetTransMatCont(&marker_info[k], object[i].trans,
object[i].marker_center, object[i].marker_width,
object[i].trans);
}
object[i].visible = 1;
1.2.7.3 cleanup
A funo cleanup chamada para finalizar o processamento de vdeo e desconectar o
dispositivo de vdeo, liberando-o para outras aplicaes. Isto acontece quando se chama as
rotinas arVideoCapStop(), arVideoClose() e argCleanup().
#padrao 1
cube
Data/patt.hiro
80.0
Figura 1-9 Exemplos de padres que podem ser usados como marcadores.
Uma vez confeccionado o novo padro, v para o diretrio bin e execute o programa
mk_patt. Ser pedido para que voc entre com um nome de arquivo de parmetros de
cmera (veja Figura 1-10). Entre com o nome do arquivo camera_para.dat. Este o
nome default para o arquivo de parmetros de cmera.
1.2.9.1 ExView
A aplicao ExView (veja a Figura 1-12) permite que voc tenha uma viso externa da
cmera, como se a cmera estivesse sendo rastreada. Isto til para verificar a acurcia do
rastreamento. Esta aplicao permite tambm mostrar como as bibliotecas do ARToolKit
podem ser usadas para encontrar uma representao quaternion da orientao do ponto de
vista. No exemplo simpleVRML, o ponto de vista da cmera foi definido usando
transformaes matriciais. Isto difcil de se fazer corretamente para aplicaes 3D que
usem representaes por quaternion, que o caso do VRML. O ARToolKit tambm
suporta a sada de quaternions, permitindo que rotinas de rastreamento de outros pacotes de
renderizao sejam tambm utilizadas.
1.2.9.2 Simple
O simple.exe o programa mais simples do ARToolKit. Na verdade ele no interage
com o VRML. Isto til quando h algum problema do qual se suspeita alguma relao
com o grafo de cena VRML. Se o simple executar e o simpleVRML no, isto uma
indicao de que h algum problema na configurao dos objetos ou no prprio
renderizador do grafo de cena VRML. A Figura 1-13 mostra um instantneo do simple.
(a) (b)
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
Figura 1-17 Sada de texto enquanto cada ponto estiver sendo desenhado.
Uma vez encontrados todos os 24 pontos da imagem, pressione boto esquerdo do mouse
novamente. Isto armazenar a posio dos pontos e descongelar a imagem de vdeo. A
sada ilustrada na Figura 1-18 mostra a sada da tela depois disso, isto , a posio
capturada de cada um dos pontos, bem como suas respectivas posies na grade.
Figura 1-18 Sada mostrando as posies capturadas de cada ponto.
Voc dever agora tomar outra imagem e repetir o processo para outras 5 a 10 imagens, em
vrios ngulos e posies diferentes. Quanto mais imagens tomadas, mais precisa ser a
calibrao. As figuras 19a e 19b mostram exemplos de imagens tpicas.
(a) (b)
inter_coord[k][j][i+7][0] = 40.0*i;
inter_coord[k][j][i+7][1] = 40.0*j;
inter_coord[k][j][i+7][2] = 100.0*k;
Cdigo 21 Varivel que deve ser alterada para mudar o nmero de distncias do
padro de calibrao at a cmera.
typedef struct {
int area;
int id;
int dir;
double cf;
double pos[2];
double line[4][3];
double vertex[4][2];
} ARMarkerInfo;
1.4.2.1 arInitCparam
1.4.2.1.1 Funo: Iniciar os parmetros especificados na estrutura de parmetros
da cmera. O argumento *param aponta para uma memria esttica na
biblioteca AR. Estes parmetros de cmera so normalmente lidos pelo
programa de inicializao a partir de um arquivo de dados. Em aplicaes
de RA por viso direta, parmetros default de cmera so suficientes, ou
seja, no preciso qualquer calibrao de cmera.
1.4.2.1.2 Varivel: *param a estrutura do parmetro de cmera.
1.4.2.2 arLoadPatt
1.4.2.2.1 Funo: Carregar o mapa de bits do padro especificado no arquivo em
filename, no vetor de padres para uso posterior pelas rotinas de deteco
de marcadores.
1.4.2.2.2 Varivel: *filename nome do arquivo que contm o mapa de bits a
ser carregado
1.4.2.2.3 Retorno: o nmero do padro carregado ou 1 em caso de falha.
1.4.2.4 arGetTransMat
1.4.2.4.1 Funo: calcular a transformao entre um marcador detectado e a
cmera real, isto , a posio e orientao da cmera relativas marcao de
rastreamento.
1.4.2.4.2 Variveis: ARMarkerInfo *marker_info a estrutura que
contm os parmetros para o marcador para o qual a posio e orientao
da cmera ser relativa. Essa estrutura encontrada usando
arDetectMarker.
double pos3d[4][2] posies fsicas dos vrtices do marcador.
arGetTransMat assume que o marcador est no plano xy, e que o eixo z
est apontando para baixo do plano do marcador. Deste modo, as posies dos
vrtices podem ser representadas em coordenadas 2D, ignorando a informao
do eixo z. A ordem das posies dos vrtices so especificadas no sentido
horrio. Por exemplo, para um marcador com lado medindo 50 mm e com a
origem das coordenadas do marcador no seu centro:
1.4.2.5 arSavePatt
1.4.2.5.1 Funo: usado no mk_patt para gravar um mapa de bits do padro do
marcador que est sendo detectado.
1.4.2.5.2 Variveis: ARUint8 *image ponteiro para a imagem contendo o
padro do marcador a ser treinado.
ARMarkerInfo *marker_info um ponteiro para a estrutura ARMarkerInfo do
padro a ser treinado.
char *filename o nome do arquivo em que a imagem do mapa de bits ser
gravada.
1.4.2.5.3 Retorno: zero se a imagem foi salva com sucesso, -1 caso contrrio
1.4.3.1 arVideoOpen
1.4.3.1.1 Funo: abre o driver de vdeo para tentar encontrar todos os
dispositivos de vdeo registrados no Windows
1.4.3.1.2 Variveis: nenhuma
1.4.3.1.3 Retorno: zero sucesso, -1 se o driver de vdeo no puder ser aberto.
1.4.3.2 arVideoClose
1.4.3.2.1 Funo: uma funo que precisa ser chamada para finalizar a captura
de vdeo.
1.4.3.2.2 Variveis: nenhuma
1.4.3.2.3 Retorno: zero se finalizou com sucesso, -1 caso contrrio.
1.4.3.3 arVideoInqSize
1.4.3.3.1 Funo: retorna tamanho do quadro de vdeo capturado.
1.4.3.3.2 Variveis: int *x, *y ponteiros para largura (*x) e altura (*y)
da imagem capturada.
1.4.3.3.3 Retorno: zero se as dimenses foram encontradas com sucesso, -1 caso
contrrio
1.4.3.4 arVideoGetImage
1.4.3.4.1 Funo: capturar um nico quadro de vdeo
1.4.3.4.2 Variveis: nenhuma
1.4.3.4.3 Retorno: retorna um ponteiro para o quadro de vdeo capturado ou
NULL se um quadro no puder ser capturado.
1.6.1 Introduo
Os sistemas que permitem maior interatividade entre o homem e a mquina, tornam-se cada
vez mais utilizados em todos os setores, pois enriquece a relao homem-mquina e
possibilita um controle maior do usurio frente s tarefas.
Nesse sentido, os sistemas virtuais possibilitam experincias com a sensao de presena,
atravs da integrao dinmica de diferentes modalidades perceptivas, que envolvem
imagens, sons, tato, etc. Assim, torna-se possvel a capacidade de manipular, relacionada s
reaes sensrio-motora em tempo real [Lvy, 1999].
Por outro lado, os ambientes educativos devem oferecer condies favorveis criao,
comportando-se como um espao agradvel e permitindo aplicaes prticas e a relao do
conhecimento com experincias, necessidades e realidade do aluno (usurio).
De maneira geral, a construo do conhecimento d-se atravs da reflexo, da crtica, da
identificao e da busca de resolues dos problemas, propiciando situaes que
determinem o desafio - papel importante na formao de atitudes [Valente. 1991, 2001].
Os ambientes podem contribuir, estimulando a curiosidade e auxiliando no
desenvolvimento da autonomia.
A aprendizagem ocorre, quando o indivduo est engajado e utiliza de forma consciente
estratgias de resoluo de problemas para a construo significativa. No se deve
questionar o valor da instruo, mas importante a descoberta de novos conhecimentos,
atravs da relao do novo com a experincia anterior.
Assim, a possibilidade de interao entre objetos reais e virtuais, que ocorre atravs da
Realidade Aumentada (RA), pode oferecer ao usurio maiores informaes sensitivas,
facilitando a associao e a reflexo sobre a situao. Os sistemas de Realidade
Aumentada permitem que o usurio decida sobre os ambientes, compondo cenas com
imagens de objetos tridimensionais geradas por computador misturadas com imagens
reais, aumentando as informaes do cenrio e oferecendo condies para a imerso no
ambiente criado. A principal caracterstica destes ambientes que as informaes do
mundo real so utilizadas para criar um cenrio incrementado com elementos gerados por
computador [Dainese, 2003].
.
Figura 1-29 Parte superior do quebra-cabeas
1.6.8 Concluses
Em atividades educativas com uso de recursos computacionais, necessrio o planejamento
adequado do uso de tecnologias em software e hardware, que possibilitam explorar: a carga
cognitiva do usurio, o senso de observao, a ateno, a explorao e a reteno de
informaes, utilizando elementos de percepo visual, ttil e auditiva. Para isso,
necessrio desenvolver sistemas computacionais que apresentem: 1) facilidade na
identificao dos componentes; 2) adaptabilidade ao nvel do usurio; 3) adequao dos
programas s necessidades curriculares; 4) existncia de recursos motivacionais; 5)
posssibilidade constante de alteraes do sistema (incluso de novos elementos); 6)
fornecimento de retorno; 7) integrao do sistema com outros recursos; 8) capacidade de
armazenamento de respostas; 9) registro de tempo de resposta e latncia e 10) liberdade de
manipulao e navegao - controle sobre os elementos.
Uma das vantagens do uso da Realidade Aumentada a possibilidade de criar
interfaces multisensorias, sem a necessidade de perifricos de alto custo, como culos e
capacete de visualizao, luva, caverna (CAVE), utilizados em experimentos de realidade
virtual. Com isto, possvel o desenvolvimento de ambientes relevantes e interessantes
para o usurio, utilizando materiais acessveis e disponveis nos laboratrios de informtica
das escolas.
Considerando a importncia do processo de construo do conhecimento para a
formao do indivduo, os ambientes de realidade aumentada podem contribuir de forma a
oferecer condies de experimentar, criar, descobrir, sem instrues previamente
elaboradas ou definidas pelo sistema, pois o ambiente funciona como mediador, auxiliando
o educando na descoberta e construo do novo.
A construo do ambiente grfico ficou muito mais simplificada e rpida,
reduzindo-se exclusivamente ao que essencial: os modelos que se pretendem explorar no
ensino e aprendizagem.
A tecnologia envolvida desempenha um papel muito menos dominante e distrativa
para o aluno. Tal como referido por Cornu [Cornu, 1995], as novas tecnologias apenas
estaro integradas no ensino quando elas no forem ferramentas suplementares mas sim
quando elas se tornarem naturais e invsiveis como o telefone, o televisor e as
calculadoras de bolso. As novas tecnologias s estaro realmente integradas na pedagogia
quando, dessa unio, surgirem novos mtodos pedaggicos bem sucedidos.
CAREY, R. & BELL, G. The Annotated VRML 2.0 Reference Manual. Addison-Wesley,
504pp, 1997.
KATO, H. & BILLINGHURST, M. Marker Tracking and HMD Calibration for a Video-
based Augmented Reality Conferencing System. In: Proceedings of the 2nd IEEE
and ACM Internationall Workshop on Augmented Reality, San Francisco, CA,
USA, p85-94, 1999.
KE, X. Tutorial: Installation of the ARToolkits and the relevant hardware (Version 2.11),
2000. (http://www.ece.nus.edu.sg/stfpage/eleadc/ARToolkit-tutorial-v2.pdf).
OWEN, C.B., XIAO, F. & MIDDLIN, P. What is the best fiducial? In: Proceedings of
The First IEEE Augmented Reality Toolkit International Workshop, p124, 2002.