Quantcast

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
  1. FC
    Filipe Cabrita

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

    1. PP

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

    2. JO
      Joji

      Aqui aparece-me um Samsung..

      1. FC
        Filipe Cabrita

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

  2. NU
    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. PP

      Viva Nuno,

      Vou solicitar ao autor o respectivo código.

      Pedro Pinto

      1. NU
        Nuno

        Muito obrigado!

        Abraço

        1. JN
          João Nunes

          Olá Nuno,

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

  3. RA
    Raclima23

    venham mais artigos como estes 🙂

  4. PO
    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. WI
    Will

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

  6. GU
    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. RJ
    Renan Junior

    Como vc faz com videos filmados em chroma ?

Deixe um comentário