Tuesday, July 31, 2012

Hackeando o Kinect: Instalando o OpenNI no OSX Lion/Mountain Lion

Tutorial para instalar o OpenNI no OS Lion/Mountain Lion (e depois o Osceleton).
I promisse I'll translate this tutorial to english (some day)!

Preparação
Para o OS Lion e Mountain Lion, é preciso instalar (a última versão, preferencialmente) do:
Command line tools para Xcode:
Para instalar o Command Line Tools abra o XCode, vá em XCode>Open Developer Tool> More Developer Tools. Faça login como desenvolvedor da Apple, e baixe o Command Line Tool para seu OS.


XQuartz 2.7.2

Instalação
Com os programas acima instalados, siga a ordem de instalação abaixo.

Libtool
1 Abra o Terminal (Aplicativos > Utilitários > Terminal) e execute o seguinte comando:
sudo port install libtool
Dê enter, Insira sua senha de admnistrador e enter. 

Quando acabar, reinicie o Mac.

LibUsb
Abra o terminal e execute (exatamente) o seguinte comando.
sudo port install libusb +universal

Quando acabar, reinicie o Mac novamente.

OpenNI
Antes de tudo, aconselho criar uma pasta com o nome "kinect" em "documentos" (não é obrigatório, faço isso apenas por motivos de organização). A partir daqui, baixe e extraia tudo que for pedido na pasta "kinect".

Baixe a última versão Unstable do OpenNI em http://www.openni.org/Downloads/OpenNIModules.aspx

  • Selecione OpenNI Binaries no primeiro menu drop down
  • Selecione Unstable no segundo menu drop down
  • OpenNI Unstable Build for Mac OS X 10.7 (última versão)
  • Clique em Download




Abra o Terminal
Mude o diretório para a pasta do OpenNI: "OpenNI-Bin-Dev-MacOSX-v1.5.4.0"
Execute o comando
sudo ./install.sh

Instale o SensorKinect
Baixe a última versão Unstable do SensorKinect em https://github.com/avin2/SensorKinect e extraia-o em sua pasta kinect.
Vá para a pasta "bin". Extraia o arquivo "SensorKinect093-Bin-MacOSX-v5.1.2.1.tar.bz2" na mesma pasta Bin.
No Terminal, vá para a pasta Bin e execute o comando:
sudo ./install.sh

Instale o PrimeSense NITE
Baixe a última versão do PrimeSense em:  http://www.openni.org/Downloads/OpenNIModules.aspx
  • Selecione OpenNI Compliant MIddleware Binaries no primeiro menu drop down
  • Selecione Unstable no segundo menu drop down
  • PrimeSense NITE Unstable Build for Mac OS X 10.7 (última versão)
  • Clique em Download


Extraia o conteúdo na pasta "kinect".
Abra o Terminal, vá para o diretório NITE-Bin-Dev-MacOSX-v1.5.2.21
Execute o comando:
sudo ./install.sh

Para testar os demos, copie todos os arquivos *.xml que estão em "NITE-Bin-Dev-MacOSX-v1.5.2.21/Data"  para "avin2-SensorKinect-15f1975/Data"

Plugue o Kinect no Mac para checar se os demos funcionam.

Rode um dos exemplos do NITE.
Abra o Terminal,
Vá para o diretório "NITE-Bin-Dev-MacOSX-v1.5.2.21/Samples/Bin/x64-Release"
abra o exemplo "PointViewer" com o comando:
./Sample-PointViewer
Agite as mãos para que o OpenNI trackeie sua mão.



Instalando o Osceleton
Baixe o OSCeleton
Extraia o conteúdo na pasta do OpenNI

Abra o terminal
Vá para a pasta "OpenNI-Bin-Dev-MacOSX-v1.5.4.0/Sensebloom-OSCeleton-7307683"
Execute o comando "make"

A partir disso (se tudo deu certo), você já pode testar o OSCeleton:
Na pasta "Sensebloom-OSCeleton-7307683" clique duas vezes no executável "OSCeleton" ou abra-o pelo Terminal.
Fique numa distância de 2 passos do Kinect na posição de calibragem, que é com os dois braços levantados, como na figura abaixo:



Fique de olho no Terminal para ver se você é reconhecido.
Se houver o reconhecimento, a instalação foi um sucesso.

Rodando o OSCeleton e comunicando com o Processing

Você vai precisar antes de tudo do Processing e das bibliotecas oscP5 e pbox2d.

Baixe as bibliotecas, extraia e copie as pastas "oscP5" e "pbox2d" para a pasta Libraries, dentro da pasta do Processing (que normalmente fica em "Documentos")

Extraia e vá para a pasta "Sensebloom-OSCeleton-examples-d56823f 2/processing/MotionCapture3D" e abra o sketch "MotionCapture3D" no Processing.
Clique em "Run" e, se você for reconhecido, aparecerá um avatar digital com um esqueleto de esferas.


É isso. Espero que seja útil!!


No comments:

Post a Comment