Infra - Linux

Levelhead - Um jogo Print & Play (realidade aumentada)

Levelhead é um inovador e fantástico projeto, criado pelo designer e programador Julian Oliver. O jogo opensource é baseado em um cubo real que utiliza recurso da tecnologia de realidade aumentada para reproduzir o cubo virtual no monitor. É um novo conceito: print e play!

por Alessandro de Oliveira Faria



Introdução: O jogo!

O jogo Levelhead, desenvolvido por Julian Oliver, utiliza a técnica de realidade aumentada, definida como a sobreposição de objetos virtuais tridimensionais gerados por computador no ambiente real por meio de algum dispositivo tecnológico (webcam, por exemplo). A computação gráfica, em junção de algoritmos de visão computacional, é o principal fator que permite o desenvolvimento desta técnica. Além da sobreposição dos objetos virtuais, a realidade aumentada permite o manuseio/interação destes objetos com os próprios movimentos das mãos. Assistindo o vídeo, parece até ficção científica, mas não é. É apenas um software livre: basta compilar, imprimir e jogar. Levelhead é também conhecido como o cubo mágico do século 21; ele utiliza cada face de um cubo para projetar os cômodos do labirinto. Cada cômodo possui uma ligação lógica com outro cômodo, assim podemos conduzir o personagem até a saída. O jogo utiliza memória espacial, onde o jogador deve passar por 3 fases (cada fase pertence a um cubo). Atualmente existem 3 níveis interligados entre si. O desafio é conduzir o personagem até a saída dos 3 cubos no menor tempo possível.

Linux: Levelhead : um jogo Print & Play (Realidade Aumentada).

O jogo não é comercializado e pode ser obtido gratuitamente na internet para montagem. O projeto foi desenvolvido na plataforma Debian GNU/Linux. A seguir, um vídeo demonstrando a operacionalidade do jogo (uma verdadeira obra-prima). Aos interessados na demonstração do sistema em eventos de software livre, entrem em contato para um possível agendamento.



Fontes de pesquisa:

Download e dependências

O jogo Levelhead requer uma série de requisitos. Alguns não obrigatórios, outros já são imprescindíveis. Sendo assim, seguem abaixo os links para download e uma breve explicação de cada item. Cal3d 0.11: Cal3D é uma biblioteca de animação esqueletal de personagens com código-fonte aberto e multiplataforma (obtenha o pacote da sua distro). https://gna.org/projects/cal3d/ osgcal 0.1.44: Ambiente de desenvolvimento de adaptação do Cal3d para OpenSceneGraph. http://download.gna.org/underware/ openscenegraph 1.2: Biblioteca para o desenvolvimento de aplicações gráficas de elevado desempenho. http://www.openscenegraph.org/projects/osg/wiki/Downloads/PreviousReleases gstreamer: Biblioteca para aplicações multimídia (obtenha o pacote da sua distro). http://www.gstreamer.net/ bakefile: Automatizador de projetos (obtenha o pacote da sua distro). http://www.bakefile.org/ Artoolkit 2.71.1: Biblioteca de realidade aumentada. http://www.hitl.washington.edu/artoolkit/download/ ArtoolkitPlus 2.1.1: Biblioteca de AR baseada no Artoolkit. http://studierstube.icg.tu-graz.ac.at/handheld_ar/artoolkitplus.php Pacotes opcionais: uvcview: Módulo do kernel. Muito utilizado pelas câmeras atuais. http://linux-uvc.berlios.de/ libwebcam: Biblioteca para câmeras logitec, utilizado para ajustar o foco da câmera. http://www.quickcamteam.net/software/libwebcam PS: Se fosse fácil, não seria necessário postar um documento. ;-) Use a força! Instalação: A gincana...

Devemos começar a gincana com o pacote ARToolKit. Em primeiro lugar, descompacte o pacote tar.gz e execute o comando ./configure. Selecione a opção "5" para o sistema de vídeo/captura utilizar a biblioteca gstreamer. Logo após, responda as perguntas com a opção "n" e "y". A seguir, utilize o comando make para compilar o pacote. Abaixo um exemplo de cada passo: $ tar -zxvf ARToolKit-2.72.1.tgz $ cd ARToolKit/ $ ./configure Select a video capture driver. 1: Video4Linux 2: Video4Linux+JPEG Decompression (EyeToy) 3: Digital Video Camcoder through IEEE 1394 (DV Format) 4: Digital Video Camera through IEEE 1394 (VGA NONCOMPRESSED Image Format) 5: GStreamer Media Framework Enter : 5 Do you want to create debug symbols? (y or n) Enter : n Build gsub libraries with texture rectangle support? (y or n) GL_NV_texture_rectangle is supported on most NVidia graphics cards and on ATi Radeon and better graphics cards Enter : y $ make Antes de continuarmos com a compilação do próximo pacote, testaremos primeiramente a funcionalidade da biblioteca Artoolkit executando os comandos abaixo: $ export ARTOOLKIT_CONFIG="v4l2src ! video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace ! xvimagesink ! identity name=artoolkit" $ cd bin/ $ ./videoTest A biblioteca ARToolkitPlus é descompactada com o comando unzip, na pasta criada anteriormente. Antes de compilarmos com o comando make, crie a variável ambiental ARTKP, informando a localização exata da biblioteca ARToolkit. Veja a instrução a seguir: $ mkdir ARToolKitPlus/ $ cd ARToolKitPlus/ $ unzip ../ARToolKitPlus/ARToolKitPlus_2.1.1.zip $ export ARTKP=[PATH-ARTOOLKIT]/ARToolKitPlus $ qmake $ make Agora descompacte, compile e instale o pacote OpenSceneGraph seguindo as instruções abaixo: $ tar -zxvf ../openscenegraph-1.2.0.tar.gz $ cd openscenegraph-1.2.0/ $ cd OpenThreads $ make $ sudo make install $ cd .. $ cd Producer $ make $ sudo make install $ cd .. $ cd OpenSceneGraph $ make COMPILE_EXAMPLES=yes $ sudo make install

Linux: Levelhead : um jogo Print & Play (Realidade Aumentada).
*** Vá tomar um café... O próximo passo é descompactar, compilar e instalar a biblioteca osgcal. Veja os comandos a seguir: $ tar -zxvf ../osgcal-0.1.44.tar.gz $ cd osgcal-0.1.44/ $ ./configure $ make $ sudo make install Finalmente compilaremos o jogo Levelhead. Primeiramente efetue o download do jogo no repositório svn: $ svn co http://www.inclusiva-net.es/svn/levelhead/trunk $ cd trunk/bin Edite o arquivo path_config.sh e informe a localização das bibliotecas ArtoolkitPlus e Artoolkit. Apenas para efeito de verificação, confirme também os PATHs no arquivo build.sh. Finalmente, para compilar, execute o comando: $ sh build.sh Atenção: Os arquivos path_config.sh e build.sh encontram-se na pasta trunk/bin do Levelhead. Imprima as imagens, recorte e monte os cubos localizados na pasta trunk/bin/Data/images e pronto! Agora, para jogar, basta executar o comando: $ sh start_levelHead.sh Mais informações sobre o projeto em: http://selectparks.net/~julian/levelhead/

Linux: Levelhead : um jogo Print & Play (Realidade Aumentada).

Linux: Levelhead : um jogo Print & Play (Realidade Aumentada).

Como diz o Prof. Pietro Ubaldi: "O próximo grande salto evolutivo da humanidade será a descoberta de que cooperar é melhor que competir"

Linux: Levelhead : um jogo Print & Play (Realidade Aumentada).
Alessandro de Oliveira Faria

Alessandro de Oliveira Faria - Sócio-proprietário da empresa NETi TECNOLOGIA fundada em Junho de 1996 (http://www.netitec.com.br), empresa especializada em desenvolvimento de software e soluções biométricas, Consultor Biométrico na tecnologia de reconhecimento facial, atuando na área de tecnologia desde 1986 assim propiciando ao mercado soluções em software nas mais diversas linguagens e plataforma, levando o Linux a sério desde 1998 com desenvolvimento de soluções open-source, membro colaborador da comunidade Viva O Linux, mantenedor da biblioteca open-source de vídeo captura entre outros projetos.