Artoolkit é uma biblioteca open source em C, que permite o desenvolvimento de interfaces baseadas na realidade aumentada. Usa técnicas de visão computacional para calcular a posição no espaço real da câmara e sua orientação em relação às marcas, permitindo ao programador sobrepor objetos virtuais na localização das marcas. A biblioteca disponibiliza código fonte tornando possível o transporte para diversas plataformas. A API OpenGL é usada para calcular as coordenadas virtuais da câmara e desenhar as imagens virtuais.
Artoolkit no Android
Android Augmented Reality (AndAR) é uma estrutura que permite utilizar a biblioteca do artoolkit na plataforma Android. AndAR oferece uma API em Java e também é orientada a objetos. A figura abaixo mostra o diagrama de classes da aplicação para esta demonstração que usa AndAR.
Para esta demonstração vamos criar três classes, CustomActivity, CustomObject e CustomRenderer. A classe CustomActivity vai herdar a classe AndARActivity que já tem tudo relacionado com a realidade aumentada, tais como abrir a câmara e detetar as marcas. A classe CustomObject herda a ARObject, é onde o objeto neste caso um cubo vai ser desenhado e precisa também do nome da marca onde o objeto vai ser desenhado. As marcas ficam localizadas na pasta assests no projeto do Eclipse. A classe CustomRenderer é a responsável por tudo o que seja OpenGL herdando a classe OpenGLRenderer.
Requisitos
Para este workshop é necessário o Eclipse, a instalação do SDK, do plugin do Android e adicionar os seguintes ficheiros à pasta libs. Fazer download aqui
Criação de um novo projeto no eclipse
File -> New -> Other -> Android Aplication Project
Após escolher o nome do projeto dar next até chegar à janela acima, mudar o nome da Activity para CustomActivity e finish.
Criação das restantes classes
Criação das classes com o nome CustomObject e CustomRenderer.
Nota: Repetir o processo para a classe CustomObject.
Adicionar a biblioteca AndAR ao projeto.
Arrastar os ficheiros para a pasta libs do projeto.
Exemplo Prático
Android Manifest
Copiar o seguinte código para o android manifiest, ter em atenção ao nome do package e da classe principal.
Imprimir as seguintes marcas.
O resultado deve ser semelhante à seguinte imagem:
Conclusão
Existem dois projetos desenvolvidos pelo AndAR até o momento, AndARMovelViewer que permite fazer load do nosso próprio objeto e AndARPong, onde o jogo pong está implementado na realidade aumenta. É possível também fazer as nossas próprias marcas, no site do projeto ensina como as fazer.
Referências
- Autor da biblioteca AndAR – Tobias Domhan
- Site do projeto: AndAR
- Download de todo o projecto aqui
Por João Nunes para o Pplware Workshop realizado no âmbito do Mestrado em Computação Móvel do Instituto Politécnico da Guarda na Unidade Curricular de Seminário.