Realidade Aumentada no Android com Artoolkit

13 Comentários

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_000

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.

artoolkit_01

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

artoolkit_02

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.

artoolkit_03

artoolkit_04

Nota: Repetir o processo para a classe CustomObject.

Adicionar a biblioteca AndAR ao projeto.

Arrastar os ficheiros para a pasta libs do projeto.

artoolkit_05

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.
manifest

Imprimir as seguintes marcas.

artoolkit_07

O resultado deve ser semelhante à seguinte imagem:

artoolkit_06

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

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.

Comentários

13

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Filipe Cabrita
    Filipe Cabrita

    Não deixa de ser engraçado um artigo sobre android em que na imagem aparece um iphone.

    1. Avatar de Pedro Pinto

      Foi a única imagem decente que consegui arranjar sobre o Artoolkit. Mas é apenas uma representação

    2. Avatar de Joji
      Joji

      Aqui aparece-me um Samsung..

      1. Avatar de Filipe Cabrita
        Filipe Cabrita

        Aqui parece-me que já alteraram a imagem..

  2. Avatar de Nuno
    Nuno

    Boa tarde!

    Onde é que crio os 3 cubos?
    Em que classe? Método?

    Eu faço AndARActivity.startPreview()(supostamente?) e nao me aparece nada!

    Ficam essas dúvidas.
    Mas eu acho que seria mais amigo se disponibilizasse o projecto para os utilizadores verem a limpo.

    O artigo é muito interessante. Obrigado pela partilha 😀

    1. Avatar de Pedro Pinto

      Viva Nuno,

      Vou solicitar ao autor o respectivo código.

      Pedro Pinto

      1. Avatar de Nuno
        Nuno

        Muito obrigado!

        Abraço

        1. Avatar de João Nunes
          João Nunes

          Olá Nuno,

          Isso fica no método onCreate assim como a criação dos cubos.

  3. Avatar de Raclima23
    Raclima23

    venham mais artigos como estes 🙂

  4. Avatar de Pedro Oliveira
    Pedro Oliveira

    Boas,

    Alguém sabe dizer-me onde posso encontrar informação sobre como carregar modelos do Autodesk 3DS MAX, Blender ou outro motor de modelação 3D?

    Obrigado,

  5. Avatar de Will
    Will

    O renderizador mostra qualquer imagem ou só esses 3 cubos ?

  6. Avatar de Guilherme
    Guilherme

    Estou gerando novas marcas para aumentar a quantidade de objetos reconhecidos e tive um problema.
    Gerando o arquivo de reconhecimento (patt) com 16 segmentos (para melhorar a precisão da realidade virtual), o app não é capaz de reconhecer a marca. Só reconhece com 8 segmentos.
    Saberia me indicar qual trecho do código faz a leitura do patt? e se é possível alterar para 16 segmentos ou mais?

  7. Avatar de Renan Junior
    Renan Junior

    Como vc faz com videos filmados em chroma ?