
Os desenvolvedores do MIT Media Lab não perderam tempo e desenvolveram um projeto chamado DepthJS para aproveitar os recursos do Kinect. Trata-se de um software que permite controlar a navegação com gestos captados pelos sensores do Kinect. O projeto ainda está no início. Segundo um dos criadores, Aaron Zinman, o projeto ainda sofrerá modificações no sentido de ajustar os comandos e torná-lo fácil de instalar. Veja como foi a aventura para fazê-lo funcionar.
O Ambiente
Hardware
AMD Athlon(tm) 64 X2 Dual Core Processor 4200+
3GB DDR2 800MHz
Disco de 250 GB SATA II
Placa de vídeo ATI Radeon 4850
Microsoft Kinect
3GB DDR2 800MHz
Disco de 250 GB SATA II
Placa de vídeo ATI Radeon 4850
Microsoft Kinect
Software
Ubuntu 10.10 x64
DepthJS
DepthJS
Preparação do ambiente
Os comandos a seguir devem ser executados em terminal. Para abrí-lo vá até o menu Aplicativos, depois vá até Acessórios e por fim Terminal.
1) Instalação das dependências. Execute o comando:
$ sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev freeglut3-dev libxmu-dev libxi-dev libhighgui2.1 libhighgui-dev libcvaux2.1 libcvaux-dev libcv2.1 libcv-dev libcv2.1 libcv-dev libzmq0 libzmq-dev python-opencv
2) O segundo passo é baixar a biblioteca open source do Kinect para Linux, a libfreecnet, com o comando (assumindo que o gerenciador git já esteja instalado):
$ git clone https://github.com/OpenKinect/libfreenect.git
3) Em seguida, vamos compilar a biblioteca, com os comandos:
$ cd libfreenect && mkdir build && cd build
$ sudo cmake ..
$ make && sudo make install
$ sudo cmake ..
$ make && sudo make install
Pode ser necessário incluir o caminho (path) para a bilbioteca como variável de ambiente, com o comando:
$ export LD_LIBRARY_PATH=$PATH_LD_LIBRARY:/usr/local/lib64/
4) Finalmente vamos baixar o DepthJS que faz toda a mágica acontecer, com o comando:
$ git clone https://github.com/doug/depthjs.git
Instalando e rodando o ambiente
O DepthJS funciona baseado em três componentes. O primeiro é uma interface com o hardware escrito em C++, utilizando a biblioteca OpenCV e a libfreenect. Ele captura as coordenadas da sua mão (quando você a posiciona na frente do sensor). Os movimentos capturados são então passados para um intermediário escrito em Python. Este intermediário é apenas um conector web, criado com o projeto Tornado. A terceira parte é um plugin do Google Chrome, que recebe as coordenadas e faz as ações no navegador.
1) Volte ao terminal e vá até o diretório depthjs onde está o driver:
$ cd depthjs/cv/
2) Neste diretório tive que alterar o caminho para a biblioteca libfreenect, na segunda linha do arquivo Makefile, para “-I/usr/local/include/libfreenect/”. Para gerar o arquivo executável, rode o comando:
$ make
3) Agora como root, execute o binário gerado, com o comando:
# ./ocv_freenect
Uma janela com o título “blob” deve aparecer. Esta janela mostra o que o Kinect está identificando. Posicione a mão até ficar totalmente preta. Esta é a posição correta de uso.

4) Em outra aba do terminal (Shift+Ctrl+T), vamos rodar o arquivo backend.py, com o comando:
$ cd depthjs/backend/ && python backend.py
5) Agora no Chrome vamos instalar o plugin. Vá até o menu Ferramentas, Extensões e clique no botão “Carregar extensão em desenvolvimento..”. Aponte para o diretório /depthjs/chrome-extension/ e clique em Abrir.
Pronto, agora no plugin basta selecionar a opção “Connect to Kinect” e testar as opções que aparecem abaixo da opção de conectar. Para que os comandos funcionem, é preciso tomar cuidado com a distância e você deve fazer movimentos suaves, não rápidos demais.

Navegando pelo site com a palma da mão. Fechar a mão simula um clique do mouse.

Navegando pelas abas. Ao movimentar a mão para os lados troca de aba.
Os detalhes de como funcionam os comandos e quem são os desenvolvedores, você confere no vídeo abaixo:
Os desenvolvedores do MIT Media Lab que criaram este projeto são: Aaron Zinman, Doug Fritz, Roy Shilkrot e Greg Elliott.
Nenhum comentário:
Postar um comentário