Instalando e Configurando o ARToolkit no GNU/Linux:

Bom, começo dizendo que essa é uma parte bem difícil da coisa toda... O ARToolkit é bem conhecido por quem usa pela certa dificuldade com a configuração dos diretórios e coisas assim. Pra esse tutorial eu decidi que iria instalar tudo de novo e desenvolver do zero o DSD para ter a real experiência de criar este projeto. E posso dizer que não foi uma experiência muito rápida =P.

Para quem leu também a parte de instalação do ARToolKit no Windows, vai perceber que eu repeti o parágrafo acima. Pois bem, isso foi uma decisão pensada e não um erro, porque realmente esta é a parte mais difícil da configuração do DSD.

Enfim, primeiramente peguem o pacote "DSD_Lite_tutorial_lin" que está disponível aqui. Descompactem ele em um local, chamado a partir de agora de "ARTK_Root" neste tutorial. Obs.: Nele já estão inclusos os códigos-fonte do DSD, na pasta examples/dsd_lite.

Continuando, temos algumas dependências a serem ajustadas, de preferência, as últimas versões de cada:
- Mesa;
- Freeglut;
- GCC;
- GStreamer;
- Video4Linux;
- Kernel Source (mais precisamente os headers);
- IMPORTANTE: Webcam configurada e com os drivers corretos!;
- Marca "Hiro" (encontrada na pasta "patterns", do ARToolkit impressa ;)
- Talvez mais algumas dependendo da sua distribuição Linux

Acho que tem uma série de coisas importantes a serem ressaltadas aqui. Primeiro, este tutorial foi baseado em uma instalação na última versão do OpenSUSE. Esta distribuição já vem com uma série de drivers e bibliotecas configuradas de fábrica, então provavelmente em algumas distribuições poderão exigir a instalação de mais ou menos das dependências listadas aqui.

Segundo, é FUNDAMENTAL que os drivers da câmera que vai ser utilizada estejam atualizados de maneira a torná-la funcional. Esta parte pode ser muito difícil de ser configurada justamente pela escassez de bons drivers para distribuições Linux, principalmente para as menos conhecidas. Vocês podem testar se a câmera está bem configurada usando alguma programa que tire fotos ou grave vídeos com ela. Eu sugiro o Cheese, principalmente por ele utilizar o GStreamer.

Isso nos leva ao terceiro ponto importante: Este tutorial foi desenvolvido usando o GStreamer para gerenciar a câmera. No início da instalação, o usuário tem 5 opções de bibliotecas para gerenciar a webcam. A escolha é livre, porém é fortemente sugerido usar o GStreamer para que este tutorial realmente tenha utilidade.

Quarto, é também de suma importância saber os seguintes detalhes da sua câmera:
- Onde está instalada: Geralmente a webcam fica instalada em "/dev/video0", porém não custa dar uma verificada se isto confere;
- Canal de vídeo: O ARToolKit funciona por padrão coletando informações do Canal 1. No caso deste tutorial isto não foi alterado, porém isso dependende de como a sua webcam está configurada.
- Espaço de Cores: O terror das instalações (pelo menos no meu caso :P). É vital saber e configurar em qual espaço de cores a sua webcam está gerando suas imagens. Dando um exemplo bem pontual, nas máquinas onde eu instalei o ARToolKit no OpenSUSE, as câmeras estavam configuradas para gerar imagens no espaço de cor YUV. Isso deu conflito com a função de detecção de marcas do ARToolKit, que tem como padrão de entrada imagens no espaço de cor RGB. Felizmente, isso pode ser facilmente alterado no arquivo config.h (ou melhor ainda, no config.h.in, antes de executar a configuração da bilbioteca (detalhes mais adiante)) e, mais felizmente ainda, eu já passei pelo estresse de não saber qual era o espaço de cores da câmera e vir agora dizer para vocês que isso é muito importante e que não deve ser esquecido ;)

Quinto, os drivers da câmera. O OpenSUSE vem de fábrica com os drivers das câmeras que eu utilizei para fazer o tutorial. Logo, esta etapa já estava resolvida para mim. Porém, a distribuição Ubuntu não veio com eles instalados, por exemplo. Logo, verifique se seus drivers estão instalados corretamente antes de começar a instalar o ARToolKit. Isso pode lhe salvar um tempo bem grande de irritação injusta com o ARTK.

Bom, verificadas todas as dependências, podemos dar início à instalação:

1) Primeiramente, alterem o config.h.in, localizado na pasta "ARTK_Root"/include/AR, com as configurações de seu sistema. A partir deste arquivo que será gerado o "config.h", que é o arquivo que contém toda a especificação que o ARToolKit utilizará quando for instalado.

config.jpg

Os principais campos a serem verificados são:

1.1)
#  ifdef AR_INPUT_GSTREAMER
#    define  AR_DEFAULT_PIXEL_FORMAT AR_PIXEL_FORMAT_yuvs
#  endif

No caso desta instalação, usando GStreamer e com uma câmera utilizando o espaço de cores YUV, a configuração ficou assim. O ARToolKit pode configurar os seguintes espaçoes de cores, listados também no config.h.in:

#define AR_PIXEL_FORMAT_RGB 1
#define AR_PIXEL_FORMAT_BGR 2
#define AR_PIXEL_FORMAT_RGBA 3
#define AR_PIXEL_FORMAT_BGRA 4
#define AR_PIXEL_FORMAT_ABGR 5
#define AR_PIXEL_FORMAT_MONO 6
#define AR_PIXEL_FORMAT_ARGB 7
#define AR_PIXEL_FORMAT_2vuy 8
#define AR_PIXEL_FORMAT_UYVY AR_PIXEL_FORMAT_2vuy
#define AR_PIXEL_FORMAT_yuvs 9
#define AR_PIXEL_FORMAT_YUY2 AR_PIXEL_FORMAT_yuvs


1.2)
#ifdef __linux
#  ifdef AR_INPUT_V4L
#    define   VIDEO_MODE_PAL              0
#    define   VIDEO_MODE_NTSC             1
#    define   VIDEO_MODE_SECAM            2
#    define   DEFAULT_VIDEO_DEVICE        "/dev/video0"
#    define   DEFAULT_VIDEO_WIDTH         640
#    define   DEFAULT_VIDEO_HEIGHT        480
#    define   DEFAULT_VIDEO_CHANNEL       1
#    define   DEFAULT_VIDEO_MODE          VIDEO_MODE_NTSC
#  endif

Aqui, é importante verificar o Canal de vídeo padrão e o dispositivo de vídeo, respectivamente 1 e "/dev/video0" na máquina utilizada para fazer este tutorial


2) Após configurado o config.h.in, o próximo passo é voltar para "ARTK_Root" e executar "./Configure". É nesta parte em que é decidida a biblioteca para gerenciar a webcam. Como dito anteriormente, recomendamos escolher o GStreamer, pois foi o escolhido para este tutorial. As opções seguintes não influem na instalação do DSD, porém é interessante acertá-las conforme a sua necessidade.

configure.jpg


3) Após executado, o ./Configure irá gerar os Makefiles necessários para a instalação do ARToolKit. Resta agora apenas dar o "make" para que a biblioteca seja instalada. Nesta parte é que a verdade sobre as dependências será revelada. Caso exista alguma pendência aqui, instale-a e execute de novo o ./Configure e o Make para continuar.

make.jpg


4) Caso tenha dado tudo certo, o ARToolKit está instalado e configurado na sua distribuição Linux. Porém ainda existe a necessidade de se configurar alguns detalhes da câmera via GStreamer. Para isso, deve-se ser inserido um string de configuração na variável de ambiente do Linux. Isso é feito no OpenSUSE da seguinte forma, no terminal:

export ARTOOLKIT_CONFIG=<string de configuração>

No caso da máquina onde foi instalado, o string é o seguinte: "v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-yuv,width=640,height=480 ! identity name=artoolkit ! xvimagesink"

env.jpg

Porém, obviamente, isso depende de cada máquina e câmera, então é sugerido ler a documentação do ARToolKit para isso aqui, para maiores detalhes.


5) Feito isso, execute alguns exemplos que estão na pasta "ARTK_Root"/bin para verificar se está tudo ok. Notem também que dentro da pasta já estão os arquivos "dsd_lite_rot", "dsd_lite_trans" e "dsd_lite_trans_rot", que são os executáveis gerados a partir dos códigos-fonte do DSD localizados na pasta examples, assim como a imagem "dsd.bmp", necessária para rodar o DSD. Veremos melhor como eles funcionam na seção de implementação do DSD. Caso haja algum problema, verifique todas as pendências anteriormente citadas, principalmente as relativas à câmera. Não desista de primeira, as vezes o erro pode estar bem embaixo do teu nariz.

examples.jpg

Com isso, termina esta etapa do tutorial.
=======================================================================
Anterior Próximo

Last edited Apr 1, 2009 at 7:35 PM by mrzacarias, version 6

Comments

No comments yet.