ARToolKit: Criando aplicativos de Realidade Aumentada

Neste documento apresento a ARToolKit, uma biblioteca criada para facilitar o desenvolvimento de aplicativos com o recurso de realidade aumentada. Ou seja, a sobreposição de objetos virtuais e tridimensionais gerados por computador junto ao ambiente real.

[ Hits: 77.133 ]

Por: Alessandro de Oliveira Faria (A.K.A. CABELO) em 08/09/2009 | Blog: http://assuntonerd.com.br


Download e instalação



Podemos encontrar o código fonte no SourceForge:
A seguir, o comando para efetuar o download do projeto:

wget http://downloads.sourceforge.net/project/artoolkit/artoolkit/2.72.1/ARToolKit-2.72.1.tgz

Descompacte o pacote com o comando:

tar -zxvf ARToolKit-2.72.1.tgz

Procedimentos para dispositivos compatíveis com a API V4L1

Entre na pasta recém-criada.

cd ARToolKit/

Execute o comando ./configure, selecione a opção 1 e responda as perguntas como no exemplo a seguir:

./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 : 1
Color conversion should use x86 assembly (choose 'n' for 64bit systems)?
Enter : n
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
create ./Makefile
  create lib/SRC/Makefile
  create lib/SRC/AR/Makefile
  create lib/SRC/ARMulti/Makefile
  create lib/SRC/Gl/Makefile
  create lib/SRC/VideoLinux1394Cam/Makefile
  create lib/SRC/VideoLinuxDV/Makefile
  create lib/SRC/VideoLinuxV4L/Makefile
  create lib/SRC/VideoSGI/Makefile
  create lib/SRC/VideoMacOSX/Makefile
  create lib/SRC/VideoGStreamer/Makefile
  create lib/SRC/ARvrml/Makefile
  create util/Makefile
  create util/calib_camera2/Makefile
  create util/calib_cparam/Makefile
  create util/calib_distortion/Makefile
  create util/mk_patt/Makefile
  create util/graphicsTest/Makefile
  create util/videoTest/Makefile
  create examples/Makefile
  create examples/collide/Makefile
  create examples/exview/Makefile
  create examples/loadMultiple/Makefile
  create examples/modeTest/Makefile
  create examples/multi/Makefile
  create examples/optical/Makefile
  create examples/paddle/Makefile
  create examples/paddleDemo/Makefile
  create examples/paddleInteraction/Makefile
  create examples/range/Makefile
  create examples/relation/Makefile
  create examples/simple/Makefile
  create examples/simple2/Makefile
  create examples/simpleLite/Makefile
  create examples/twoView/Makefile
  create examples/simpleVRML/Makefile
  create include/AR/config.h
Done.

Crie a variável ambiental ARTOOLKIT_CONFIG conforme o exemplo abaixo:

export ARTOOLKIT_CONFIG="-dev=/dev/video0 -palette=YUV420P -width=640 -height=480"

Entre na pasta bin e execute o programa videoTest para verificar se tudo está funcionando corretamente.

cd bin
$ ./videoTest

Using config string from environment [-dev=/dev/video0 -palette=YUV420P -width=640 -height=480].
Image size (x,y) = (640,480)

Se tudo estiver funcionando corretamente, será apresentada uma janela cujo seu conteúdo será o vídeo ao vivo da sua webcam.

Procedimentos para dispositivos compatíveis com a API V4L2

Após a descompactação do pacote, baixe o patch para a API V4L2:

wget http://img.vivaolinux.com.br/imagens/artigos/comunidade/artk-v4l2-2.72.1.20080427.patch

E o aplique na pasta recém criada:

patch -p0 -d . < artk-v4l2-2.72.1.20080427.patch

Agora entre na pasta ARToolKit.

cd ARToolKit/

Execute o comando ./configure, selecione a opção 3 e responda as perguntas como no exemplo a seguir:

./configure
Select a video capture driver.
 1: Video4Linux
 2: Video4Linux+JPEG Decompression (EyeToy)
 3: Video4Linux2
 4: Digital Video Camcoder through IEEE 1394 (DV Format)
 5: Digital Video Camera through IEEE 1394 (VGA NONCOMPRESSED Image Format)
 6: GStreamer Media Framework
Enter : 3
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
  create ./Makefile
  create lib/SRC/Makefile
  create lib/SRC/AR/Makefile
  create lib/SRC/ARMulti/Makefile
  create lib/SRC/Gl/Makefile
  create lib/SRC/VideoLinux1394Cam/Makefile
  create lib/SRC/VideoLinuxDV/Makefile
  create lib/SRC/VideoLinuxV4L/Makefile
  create lib/SRC/VideoLinuxV4L2/Makefile
  create lib/SRC/VideoSGI/Makefile
  create lib/SRC/VideoMacOSX/Makefile
  create lib/SRC/VideoGStreamer/Makefile
  create lib/SRC/ARvrml/Makefile
  create util/Makefile
  create util/calib_camera2/Makefile
  create util/calib_cparam/Makefile
  create util/calib_distortion/Makefile
  create util/mk_patt/Makefile
  create util/graphicsTest/Makefile
  create util/videoTest/Makefile
  create examples/Makefile
  create examples/collide/Makefile
  create examples/exview/Makefile
  create examples/loadMultiple/Makefile
  create examples/modeTest/Makefile
  create examples/multi/Makefile
  create examples/optical/Makefile
  create examples/paddle/Makefile
  create examples/paddleDemo/Makefile
  create examples/paddleInteraction/Makefile
  create examples/range/Makefile
  create examples/relation/Makefile
  create examples/simple/Makefile
  create examples/simple2/Makefile
  create examples/simpleLite/Makefile
  create examples/twoView/Makefile
  create examples/simpleVRML/Makefile
  create include/AR/config.h
Done.

Crie a variável ambiental ARTOOLKIT_CONFIG conforme o exemplo abaixo:

export ARTOOLKIT_CONFIG="v4l2src device=/dev/video1 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24,width=960,height=720 ! identity name=artoolkit ! fakesink"

Entre na pasta bin e execute o programa videoTest para verificar se tudo está funcionando corretamente.

cd bin/
$ ./videoTest

Using config string from environment [v4l2src device=/dev/video1 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24,width=960,height=720 ! identity name=artoolkit ! fakesink].
libARvideo: GStreamer 0.10.22
libARvideo: GStreamer pipeline is PAUSED!
libARvideo: GStreamer negotiated 960x720
libARvideo: GStreamer pipeline is PLAYING!
libARvideo: GStreamer pipeline is PAUSED!
Image size (x,y) = (960,720)

Se tudo estiver funcionando corretamente, será apresentado uma janela cujo seu conteúdo será o vídeo ao vivo da sua webcam.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução: O que é Realidade Aumentada e ARToolKit
   2. Download e instalação
   3. Calibração e utilização
Outros artigos deste autor

Transforme o seu celular Android em webcam sem fio na plataforma Linux

Zebra Barcode Reader: Lendo código de barras com a sua Webcam no Linux

Conceito: Evitando acidentes com visão computacional

Conectando com Bco Interbase/Firebird em Java

Fim da era PC: Transformando o seu celular em computador de mesa!

Leitura recomendada

Os bons tempos voltaram! Revivendo e revisitando o WindowMaker

Instalando o compiz no Arch Linux

Inkscape descomplicado - Parte II

Publicidade e software LIVRE? De novo?

Blender - Criando personagem 3D em menos de 10 minutos

  
Comentários
[1] Comentário enviado por wizard.slack em 08/09/2009 - 15:59h

Show de bola!
estava esperando esse artigo ser publicado. já vai para os favoritos!!
Parabéns Cabelo.

[2] Comentário enviado por markintux em 08/09/2009 - 16:19h

Mais um excelente artigo!

Uma dúvida: Existe algum site que mostra quais as webcams compativeis com v4l1 e v4l2? Esses softwares que você mostra, por exemplo o eviacam é compativel com qual driver? 1 ou 2? Se alguem souber agradeço!

Abraços e Parabéns Cabelo!

[3] Comentário enviado por removido em 08/09/2009 - 17:53h

Ótimo artigo.

[4] Comentário enviado por slipky em 09/09/2009 - 12:18h

Estava atrás disso, mas ainda não consegui fazer funcionar aqui, pode me ajudar? minha cam funciona apenas com o V4L2, e não esta compilando após aplicar o patch...

eis o que está acontecedo: http://pastebin.com/m28fb0655

[5] Comentário enviado por cleysinhonv em 09/09/2009 - 13:22h

Olá Cabelo,

Há bastante tempo tenho buscado ler os seus artigos, são ótimos bem escritos e autênticos, estava precisando de uma documentação dessa por que estou pretendendo fazer um trabalho de conclusão de curso envolvendo Realidade Aumentada e Sistemas de Informação Geográfica. Bom espero que eu tenha um bom êxito, usando essa documentação.

Parabéns!

[6] Comentário enviado por root_dog em 12/09/2009 - 16:17h

massa... ja configurei no ruindows agora vou tentar no linux...

[7] Comentário enviado por slipky em 13/09/2009 - 16:55h

comentei a linha no código onde estava dando erro ao compilar, e foi, porem ainda não esta rodando: http://pastebin.com/m2dfc45c7

[8] Comentário enviado por anonymous em 23/12/2009 - 15:26h

Artigo show de bola!!!!!!!!!!!!!!!

[9] Comentário enviado por cesar em 06/02/2010 - 23:13h

Show de bola...

Vou testar!

[]'s

[10] Comentário enviado por laercio.avelino em 12/04/2010 - 22:49h

Olá, eu adorei o tutorial, mas achei que as pessoas tiveram poucos problemas. Assim que ainda que outros tenham contribuído na sequencia, ainda não fui contemplado. Assim eu pergunto, qndo esses procedimentos não dão certo? :p

Vejamos:

1. Quando eu descompactei o Artoolkit, entrei no diretório e tentei executar o ./configure. Não foi possível, mas consegui o mesmo procedimento com ./Configure.

2. Color conversion should use x86 assembly (choose 'n' for 64bit systems)?
Enter : n

[eu não uso sistema 64bits, selecionei "Y".] »»Terei vacilado nesta parte?««

3. $ export ARTOOLKIT_CONFIG="-dev=/dev/video0 -palette=YUV420P -width=640 -height=480"
criei essa variável ambiental e como não me deu retorno algum, supus ter dado tudo ok! Até o próximo ponto:

4. $ cd bin/
$ ./videoTest
usuário@usuário:~/Downloads/artoolkit/ARToolKit/bin$ ./videoTest
bash: ./videoTest: Arquivo ou diretório não encontrado


»»» Foi aí que percebi que 1. não deu certo pq não segui os procedimentos; ou 2. ainda assim não seria possível pq não uso sistema 64bits. «««

De todas maneiras sou grato por sua ajuda, estamos em contato.

[11] Comentário enviado por igortx em 07/07/2010 - 09:49h

me encontrei no mesmo problema do rapaz acima... a variavel nao gera nada e nao consegui encontrar o videotest em bin... na verdade nao achei nada la :(

[12] Comentário enviado por rondinele_prado em 27/10/2010 - 23:23h

Olá, tem um bom tempo que estou tentando compilar a ARToolKit no linux, mas ainda não consegui, o videoTest não está na pasta bin, e quando uso uma outra versão ele diz:
No protocol specified
No protocol specified
freeglut (./simpleTest2): failed to open display ':0.0'

Gostaria de saber o motivo do erro.

[13] Comentário enviado por ShadowFox em 29/03/2011 - 22:26h

Pessoal... Será que não faltou um make && make install?

hehehe...

[14] Comentário enviado por charleskgb em 13/05/2011 - 11:55h

É necessario executar o make pra vc ter o videoTest na pasta bin. Se o make der erro durante a execucao, so vai instalando os pacotes do GStreamer que faltam e mais algumas coisinhas que o erro do make especifica.... usa o synaptic que ja empurra um bocado de pacotes necessarios.
Compila o make sem erros que o videoTest fica disponivel.

[15] Comentário enviado por wup4la1 em 01/03/2012 - 21:52h

Olá estou tentando configurar aqui fiz todos os passos ate a hora de executar o MAKE mas esta gerando um erro, alguém conhece esse tal erro:

make[2]: Entrando no diretório `/home/nome/ARToolKit/util/videoTest'
cc -o ../../bin/videoTest videoTest.o -L/usr/X11R6/lib -L../../lib -lARgsub -lARvideo -lAR -lglut -lGLU -lGL -lXi -lXmu -lX11 -lm -ljpeg
../../lib/libARvideo.a(video.o): In function `ar2VideoGetImage':
video.c:(.text+0x1b26): undefined reference to `ccvt_yuyv_rgb24'
collect2: ld returned 1 exit status
make[2]: ** [../../bin/videoTest] Erro 1
make[2]: Saindo do diretório `/home/nome/ARToolKit/util/videoTest'
make[1]: ** [all] Erro 2
make[1]: Saindo do diretório `/home/nome/ARToolKit/util'
make: ** [all] Erro 2



Obrigado

[16] Comentário enviado por Magrela_ em 19/06/2012 - 15:09h

Ollá Cabelo, estou tentando calibrar minha câmera para o artoolkit. segui os passos da instalação que vc postou com a ajuda de um amigo. Porém para os passos desse tópico quando eu clico na imagem da câmera com o direito ou com o esquerdo não acontece nada. o que será ue está acontecendo.

Detalhes: instalei o artoolkit em uma pasta nomeada Artoolkit 2.72.1 e ela aparece no menu LOCAIS, porém para abrir a pasta usei o comando:
# cd Artoolkit\ 2.72.1/

mas esse comando retorna isso como resposta: bash: cd: Artoolkit: Arquivo ou diretório não encontrado

eu só consigo abri a pasta e o vídeo teste com a pasta que eu descompatei em Documentos sempre seguindo os caminho:
$ cd Documentos
$cd Artolkit\ 2.72.1/
$cd bin
$./videoTest

Dessa forma abre mas nao consigo congelar a imagem da câmera como ensinado no seu tópico.


Fico grata se me responder com máximo de urgência!

OBS: querendo desenhevolver minha monografia com reliadade aumentada usando artoolkit!

[17] Comentário enviado por Magrela_ em 19/06/2012 - 16:28h

onde eu encontro e como executo pela LC o programa calib_dist? Deve ser essse o meu problema com a câmera conforme mencionei no post anterior logo acima.

[18] Comentário enviado por Magrela_ em 03/07/2012 - 00:24h

Gente eu pensei que podia ter executado algum passo erroneamente, então resolvi remover a pasta descompactada na minha pasta pessoal e reiniciar o processo , daí deu tudo certim, o nome da pasta ao abrir o diretório deve ser observando os caracteres maiúsculos e munúculos no nome do diretório salvo auomáticamente quando a gente baixa o artoolkit pelo $ wget . daí foi só começar o proximo passo de calibração.

é só seguir direitinho os passos do tutorial 1 que dá tudo certo. Acho que eu tava executando alguma coisa erroneamente na hora de congelar a imagem, mas depois que reinstalei deu tudo certim!

Agora é só alegria e estudar como desenvolver os prograaminhas. no proprio artoolkit tem um diretório que traz uns exemplos nao sei informar agora a localização dos mesmos.

dê uma olhada no artigo do segunto tópico dessa pesquisa:

http://www.google.com.br/#hl=pt-BR&output=search&sclient=psy-ab&q=como+desenvolver+aplica%C3%A7%C3%B...

Abraços!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts