Pure Data vs Kinect

Utiliser la Kinect avec GEM

LE dépot Gem le plus actuel https://github.com/umlaeute/Gem

Pix_freenect

ça marche !!! Possibilité de capture audio sur les 4 micros, de choisir les visualisations de sortie, réglage de l'angle, profondeur, …

  • fig:PD_pix_freenect.png

Installation sur Ubuntu 10.04 avec Pd-extended 0.42.5 et GEM 0.93.3

  • Une fois Pd-extended 0.42.5 installé, il vous faut compiler la dernière version de GEM ou subtituer le dossier Gem fourni avec Pd-ext par celui-ci

Pour renommer l'ancien Gem et le garder dans un coin:

sudo mv /usr/lib/pd-extended/extra/Gem /usr/lib/pd-extended/extra/Gem-0.92

Ouvrir un terminal, là où a été décompressé l'archive puis taper :

sudo cp -R Gem /usr/lib/pd-extended/extra

Ceci fait, si vous relancez Pd-extended, sa console devrait désormais vous afficher ce message :

GEM: Graphics Environment for Multimedia
GEM: ver: 0.93.3 
GEM: compiled: Jan  8 2012
  • Il faut désormais compiler Libfreenect avec le support audio :

Installer des bricoles utiles :

sudo apt-get install git-core build-essential cmake-curses-gui libusb-dev libusb-1.0-0-dev freeglut3-dev libxmu-dev libxi-dev

Récupérer les sources de Libfreenect (par défaut le dossier libfreenect est créé dans votre dossier personnel) :

git clone [[https://github.com/OpenKinect/libfreenect.git|  https://github.com/OpenKinect/libfreenect.git]]

Se placer dans le dossier libfreenect, y créer un dossier build, se placer dans ce dossier build et taper :

ccmake ../

S'ouvre alors une fenêtre de configuration. Indications :

c (pour configurer)
BUILD_AUDIO --> ON
BUILD_EXAMPLE --> OFF
c (pour configurer)
c (pour configurer) (encore, oui)
g (pour gégérer et quiter)

Puis taper:

cmake ../
make (la chose peut prendre du temps) 
sudo make install
sudo ldconfig

Il faut ensuite s'ajouter au groupe vidéo :

 sudo adduser VOTRE-NOM-D-UTILISATEUR video

Puis créer une règle udev…

sudo gedit /etc/udev/rules.d/51-kinect.rules

Avec le contenu suivant :

# ATTR{product}="Xbox NUI Motor"
SUBSYSTEM="usb", ATTR{idVendor}="045e", ATTR{idProduct}="02b0", MODE="0666"
# ATTR{product}="Xbox NUI Audio"
SUBSYSTEM="usb", ATTR{idVendor}="045e", ATTR{idProduct}="02ad", MODE="0666"
# ATTR{product}="Xbox NUI Camera"
SUBSYSTEM="usb", ATTR{idVendor}="045e", ATTR{idProduct}="02ae", MODE="0666"
  • Si tout s'est bien passé, après avoir redémarré votre ordi (pour que la dernière règle soit prise en compte), vous devriez pourvoir ouvrir les patchs suivants qui contienne [pix_freenect].

Pix_openni

Voir Pix_openni : https://github.com/kronihias/pix_openni

Installation Linux Pix_openni en commençant par les dépendances

Il convient de suivre toute d'abord la page du wiki dédiée à la Kinect sous linux du paragraphe Installation_de_libfreenect au chapitre (inclus) Installation_de_NITE

En résumé, ça donne

   ./RedistMaker
   sudo ./install.sh (après chgt de rép cf tuto)
   ./RedistMaker
   sudo ./install.sh
   ./RedistMaker
   sudo ./install.sh(après chgt de rép cf tuto)
  • installation SensorKinect Custom
   Building Sensor:
       1) Go into the directory: "Platform/Linux/CreateRedist".
          Run the script: "./RedistMaker".
          This will compile everything and create a redist package in the "Platform/Linux/Redist" directory.
          It will also create a distribution in the "Platform/Linux/CreateRedist/Final" directory.
       2) Go into the directory: "Platform/Linux/Redist".
          Run the script: "sudo ./install.sh" (needs to run as root)

Tester

KINECT/OpenNI/Platform/Linux/Bin/x86-Release$ ./Sample-NiHandTracker
Installation Pix_openni enfin
  • get/install pd and Gem (http://puredata.info)
    • edit Makefile for right path to Gem, pd and OpenNI sources
    • - …/pix_openni> make
    • have a look at the pix_openni-help.pd file!
  • * Usage :: tbf… Hand Tracking: to track multiple Hands edit following File: /usr/etc/primesense/Hands_*/Nite.ini and add or uncomment:
[HandTrackerManager]   AllowMultipleHands=1   TrackAdditionalHands=1

Cela a fonctionné avec Pd extended 0.42.5 et GEM 0.93.3, GEM à télécharger là : Gem0-93-3_Pd42-5_lucid.tar.gz

= Debian 64 bits instable =

OpenNI64/pix_openni$ make
g++ -I/home/b01/ZSofts/PD/Gem/src -I/home/b01/ZSofts/PD/pd-extended_0.43.4-1_amd64/usr/include/pdextended/include -I/usr/include/ni -g -O2 -fPIC -freg-struct-return -Os -falign-loops=32 -falign-functions=32 -falign-jumps=32 -funroll-loops -ffast-math -mmmx  -o pix_openni.o -c   pix_openni.cc
In file included from pix_openni.cc:19:0:
pix_openni.h:30:24: fatal error: XnCodecIDs.h: Aucun fichier ou dossier de ce type
 #include "XnCodecIDs.h"
                       ^
 compilation terminated.
make: *** [all] Erreur 1

Utiliser la Kinect avec Pidip

Install Pidip Kinect

from the CHANGES.LOG :


0.12.28 ( codename Prevolution )

  added pdp_freenect : module to get video and data from a kinect device
  ( it's fun to hack mainstream devices )
  based on libfreenect from Hector Martin & [[http://openkinect.org|  http://openkinect.org]]\\
  dedicated to t.b.b., he would have liked it :
  [[http://ydegoyon.free.fr/basiony-ak47.jpg|  http://ydegoyon.free.fr/basiony-ak47.jpg]]
  thanks to Francisco Sanmartin tambien!.

note : p.i.d.i.p. has been removed from maintream pd/pd-restricted, so you have now to read the INSTALL file and compile it

have fun!

Compilation pidip et opencv

Pour la Pd-extended 42.5

  1. récupérer les sources de GEM http://gem.iem.at/
  2. récupérer les sources de PDP ou voir http://zwizwa.be/darcs/
 svn co [[https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/pdp|  https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/pdp]]   pdp 
  1. récupérer les sources de libfreenect

pidip

  1. récupérer les sources de pidip :
export CVSROOT=:pserver:anonymous@giss.tv:/home/cvs
cvs co pidip
  1. compiler pdp

<code>To make a local copy of the repositiory do:

 darcs get --partial [[http://zwizwa.be/darcs/pdp-12|  http://zwizwa.be/darcs/pdp-12]]\\
 cd pdp-12
 . bootstrap
 ./configure && make

To get updates later, cd to the pdp-12 directory and do:

 darcs pull -a
 cd pdp-12
 **  .   bootstrap**\\
 ./configure && make<html></code></html>
  1. compiler libfreenect
  2. compiler ArtToolKit (Plus?) pour avoir le support
  3. compiler pidip
  • pour faire tout ça, il est nécessaire d'installer pas mal de librairies (les versions -dev), mais ça on l'apprend au fur à mesure des messages lors du ./configure ou du make
  • quelques feintes : nécessité de créer un dossier “libfreenect” dans le dossier 'OpenKinect-libfreenect-3b0f416' et d'y copier le contenu du répertoire 'include' pour que l'objet freenect pour éviter “pdp_freenect.c:45:37: error: libfreenect/libfreenect.h: Aucun fichier ou dossier de ce type” et réussir à compiler, il faut aussi modifier le makefile dans le rép de pidp en conséquence en ajoutant ce chemin à la bonne ligne de lib précédé de '-I' :
PDP_PIDIP_INCLUDES =  -I/home/machine/pd-externals/OpenKinect-libfreenect-3b0f416/include -I/home/machine/pd-externals/OpenKinect-libfreenect-3b0f416/ -I/home/machine/pd-externals/pd-0.42-5/src -I. -I/home/machine/pd-externals/pdp/include -I../include -I../charmaps
  • il est nécessaire de faire la compil dans l'ordre car avant que PDP ne soit compilé (ou au moins configuré pour), compil de pidip pas possible, il manquait un fichier qui est généré par la config/compil de pdp …

Les binaires de Pidipi avec pdp_freenect et quelques objets utilisant +/- OpenCv

Pidip 12.28

pidip.pd_linux avec l'objet pdp_freenect + patchs d'aides : http://wiki.labomedia.org/images/8/89/Pidip-freenect.tar.gz le fichier pidip.pd_linux est à mettre dans /usr/lib/pd-extended/extra/ les patchs de doc dans /usr/lib/pd-extended/doc/5.reference/pidip (testé avec une ubuntu 10.04 Pd-extended 42.5), il faut avoir installé le driver libfreenect, soit vous l'avez compilé, soit il est possible de l'installer selon les préconisations en haut de page

CapturePDPKinect.png CapturePDPKinect.png

Pidip 12.29

Ajout de l'objet pdp_joint qui reconstitue un squelette sans avoir à prendre la pose, merci yves

CapturePidip12-29.png CapturePidip12-29.png

  • pure_data_vs_kinect.txt
  • Dernière modification: 2018/09/05 22:22
  • par Benjamin Labomedia