======Pure Data vs Kinect====== ===== Utiliser la Kinect avec GEM ===== LE dépot Gem le plus actuel https://github.com/umlaeute/Gem ==== Pix_freenect ==== * Voir Pix_freenect : https://github.com/kronihias/pix_freenect, version compilée à télécharger là {{media_05:kronihias-pix_freenect-lucidlibfv3-15.tar.gz|fig:Kronihias-pix freenect-Lucidlibfv3-15.tar.gz}} (nécessite dernière version de libfreenect avec support audio) ça marche !!! Possibilité de capture audio sur les 4 micros, de choisir les visualisations de sortie, réglage de l'angle, profondeur, ... * **** {{media_10:pd_pix_freenect.png?800|fig:PD_pix_freenect.png}} * Librairie DLib pour faciliter la création d'instruments audio à partir de la reconnaissance de squelette de la kinect http://williambrent.conflations.com/pages/research.html * http://blog.jozilla.net/2012/03/29/getting-up-and-running-with-the-kinect-in-ubuntu-12-04/ * http://mitchtech.net/ubuntu-kinect-openni-primesense/ * http://antoine.villeret.free.fr/?p=589 === Installation sur Ubuntu 10.04 avec Pd-extended 0.42.5 et GEM 0.93.3 === * Une fois [[http://sourceforge.net/projects/pure-data/files/pd-extended/0.42.5/Pd-0.42.5-extended-ubuntu-lucid-i386.deb/download|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 [[http://wiki.labomedia.org/images/5/57/Gem.zip|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 * Sites qui donnent accès aux OpenNI SDK history et tous les paquets nécessaires http://openni.ru/openni-sdk/openni-sdk-history-2/index.html === 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_Kinect_Linux#Installation_de_libfreenect|Installation_de_libfreenect]] au chapitre (inclus) [[Installation_Kinect_Linux#Installation_de_NITE|Installation_de_NITE]] En résumé, ça donne * **compilation libfreenect** * **installation openni unstable** à partir du binaire de la 10.10 du site http://www.openni.org/Downloads/OpenNIModules.aspx    ./RedistMaker    sudo ./install.sh (après chgt de rép cf tuto) * **installation nite unstable** à partir du binaire de la 10.10 du site http://www.openni.org/Downloads/OpenNIModules.aspx    ./RedistMaker    sudo ./install.sh    ./RedistMaker    sudo ./install.sh(après chgt de rép cf tuto) * **installation SensorKinect Custom** * **** Installer une version customisée du module Sensor à partir de : https://github.com/avin2/SensorKinect    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à : [[http://wiki.labomedia.org/images/a/a2/Gem0-93-3_Pd42-5_lucid.tar.gz|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 ==== * http://ydegoyon.free.fr/pidip-freenect.jpg * http://therandomlab.blogspot.com/2011/02/kinect-and-opencv.html 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** - récupérer les sources de Pd http://crca.ucsd.edu/~msp/Software/pd-0.42-5.src.tar.gz - récupérer les sources de GEM http://gem.iem.at/ - 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  - récupérer les sources de ArToolKit http://studierstube.icg.tu-graz.ac.at/handheld_ar/artoolkitplus.php - récupérer les sources de libfreenect **pidip** - récupérer les sources de pidip : export CVSROOT=:pserver:anonymous@giss.tv:/home/cvs cvs co pidip - compiler pdp 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 - compiler libfreenect - compiler ArtToolKit (Plus?) pour avoir le support - 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 {{media_05:capturepdpkinect.png|CapturePDPKinect.png CapturePDPKinect.png}} == Pidip 12.29 == Ajout de l'objet pdp_joint qui reconstitue un squelette sans avoir à prendre la pose, merci yves * le fichier binaire (compilé sur ubuntu 10.04 lucid avec la Pd extended 42.5) : http://wiki.labomedia.org/images/5/5a/Pidip12-29.tar.gz {{media_05:capturepidip12-29.png|CapturePidip12-29.png CapturePidip12-29.png}} {{tag>pure_data kinect bj}}