======Installation Kinect Linux ‎====== ===== Installation des différents logiciels et drivers pour utiliser la kinect sous linux ===== En fait il y a plusieurs couches logicielles plus ou moins interdépendantes : - libfreenect : driver open source qui permet de récupérer les flux vidéo de la kinect - OpenNI : logiciel fabriqué par la boite qui a inventé la kinect, permet de récupérer des images et infos brutes - PrimeSensor : idem, couche en plus qui permet de récupérer des infos + élaborées : présence d'une personne, squelette, mains.\\ Il existe plusieurs versions customisées de ce PrimeSensor - NITE : idem, suite logiciels de tests - OSCEleton : serveur OSC qui se connecte au serveur de PrimeSensor / OpenNI pour transférer les infos de squelettes à d'autres programmes (Pure Data, Processing) - Plusieurs méthodes existent pour connecter la kinect à des logiciels d'interaction, soit via OSC et OSCEleton, soit plus directement (voir la page précédente ou Pd Pidip plus bas) Simple quoi... Il sera traité ici de l' **Debian jessie instable 64bits et Ubuntu 10.04 Lucid, cette méthode doit être valable pour d'autres versions/distro** NB: sous Linux, quel que soit le programme que vous utilisez, il faut connecter votre Kinect sur un port USB 2 , et non pas USB 3. ===== Installation de libfreenect ===== ==== Debian jessie instable 64 bits ==== === Installation de libfreenect === Installer la version git à la main, la version du dépot semble ne pas marcher avec Nite2, par exemple, si vous obtenez ça : OpenNI64/OpenNI-Linux-x64-2.2/Tools$ ./NiViewer -v openDevice failed:    DeviceOpen: Couldn't open device '-v' Press any key to continue . . . c'est qu'il faut passer par l'install manuelle décrite là : * https://github.com/OpenKinect/libfreenect/tree/master/OpenNI2-FreenectDriver avec en plus sudo make install * et faire la pirouette décrite là : https://github.com/piedar/OpenNI2-FreenectDriver/issues/11 c'est à dire copier les fichiers : /usr/local/lib$ sudo cp ../lib64/libfreenect.* . et /usr/local/lib$ sudo rm libfreenect.so.0.4 /usr/local/lib$ sudo ln -s ../lib64/libfreenect.so.0.4 libfreenect.so.0.4 sudo ldconfig là le premier test marche : /usr/local/bin/freenect-glview Repository="/example/path/to/Samples/Bin/OpenNI2/Drivers/" cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.{so,dylib} ${Repository} # you could instead make a symlink to avoid copying after every build # ln -s lib/OpenNI2-FreenectDriver/libFreenectDriver.{so,dylib} ${Repository} Test ...OpenNI64/OpenNI-Linux-x64-2.2/Samples/Bin$ ./SimpleViewer ==== Lucid(10.04) et Maverick (10.10) ==== Il existe un dépôt launchpad ppa pour Lucid(10.04) et Maverick (10.10) : https://launchpad.net/~floe/+archive/libtisch pour l'utiliser, exécuter dans un terminal : $ sudo add-apt-repository ppa:floe/libtisch old$ sudo add-apt-repository ppa:arne-alamut/freenect Resynchronisation de la liste des paquets dans les dépôts : sudo apt-get update Après ça on peut utiliser : sudo apt-get install freenect ça va installer freeglut3 freenect libfreenect-demos libfreenect-dev libfreenect0.0 libglut3 libusb-1.0-0-dev. Après ça, il convient de s'ajouter au groupe 'video' et se re-logguer. Le paquet comprend déjà les règles pour udev, l'accès au périphérique sera donc possible pour les utilisateurs du groupe video sudo adduser YOURNAME video il faut se déconnecter de la session en cours et se reconnecter, pas besoin de rebooter complètement. Brancher la kinect maintenant, la débrancher - rebrancher si elle l'était déjà Pour faire un test : freenect-glview ça donne : {{ media_05:capture-kinect0.png }} == Pour les noyaux récents (> v3) == Les versions récentes des noyaux Linux intègrent un module permettant de récupérer l'image de la caméra couleur de la Kinect, ce qui empêche la démo plus haut de fonctionner. Si vous avez le message suivant, vous êtes concernés: $ freenect-glview  Kinect camera test Number of devices found: 1 Could not claim interface on camera: -6 Could not open device Il faut donc décharger ce module. $ sudo modprobe -r gspca_kinect $ sudo modprobe -r gspca_main En relançant la commande précédente, vous devriez avoir une fenêtre similaire à celle que vous voyez plus haut (vue 3D à gauche, vue caméra à droite). Pour ne pas devoir répéter cette opération à chaque redémarrage, on doit mettre le module sur liste noire: $ echo "blacklist gspca_kinect" >> /etc/modprobe.d/blacklist.conf $ echo "blacklist gspca_main" >> /etc/modprobe.d/blacklist.conf Voilà! Vous pouvez retourner à la vraie vie et faire une grille de l'amour :-) == Facultatif: Modifier udev pour permettre aux utilisateurs non-administrateurs d'accéder à la kinect == sudo gedit /etc/udev/rules.d/51-kinect.rules Ajouter ces lignes, sauvegarder et redémarrer: # ATTR{product}=="Xbox NUI Motor"  SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02b0", MODE="0666", OWNER:="root", GROUP:="video" # ATTR{product}=="Xbox NUI Audio"  SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02ad", MODE="0666", OWNER:="root", GROUP:="video" # ATTR{product}=="Xbox NUI Camera"  SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02ae", MODE="0666", OWNER:="root", GROUP:="video" ===== Des dépendances ===== sudo apt-get install g++ libglut3-dev libboost-all-dev libwxbase2.8-dev libwxgtk2.8-dev wx-common libusb-1.0-0-dev freeglut3-dev python doxygen graphviz mono-complete ===== Installation de OpenNI ===== ==== Debian jessie instable 64 bits ==== * installer libfreenect Quick copy-paste instructions to get up-and-running instantly: sudo apt-get install git-core cmake libglut3-dev pkg-config build-essential libxmu-dev libxi-dev libusb-1.0-0-dev git clone [[git://github.com/OpenKinect/libfreenect.git| git://github.com/OpenKinect/libfreenect.git]]\\ cd libfreenect mkdir build cd build cmake .. make sudo make install sudo ldconfig /usr/local/lib64/ sudo glview Note: If you getting an error saying apt-get cannot find libglut3, you might be on a newer version of Ubuntu that has freeglut3-* instead of libglut3-*, so your initial apt-get install would look like: sudo apt-get install git-core cmake freeglut3-dev pkg-config build-essential libxmu-dev libxi-dev libusb-1.0-0-dev To use Kinect as a non-root user do the following: sudo adduser $USER video Also make a file with rules for the Linux device manager: sudo nano /etc/udev/rules.d/51-kinect.rules Copy and paste: # ATTR{product}=="Xbox NUI Motor"  SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02b0", MODE="0666", OWNER:="root", GROUP:="video" # ATTR{product}=="Xbox NUI Audio"  SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02ad", MODE="0666", OWNER:="root", GROUP:="video" # ATTR{product}=="Xbox NUI Camera"  SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02ae", MODE="0666", OWNER:="root", GROUP:="video" Be sure to log out and back in. d'après http://openkinect.org/wiki/Getting_Started#Manual_Build_on_Linux * Télécharger les sources http://www.openni.org/openni-sdk/ ==== Lucid(10.04) et Maverick (10.10) ==== * Télécharger les sources http://www.openni.org/openni-sdk/ * Aller dans le dossier "Platform/Linux-x86/CreateRedist" ./RedistMaker Tout sera compilé et va créer un paquet distribuable "Platform/Linux-x86/Redist". Cela va créer aussi une archive dans "Platform/Linux-x86/CreateRedist/Final". Aller dans le répertoire "Platform/Linux-x86/Redist". sudo ./install.sh === Compiler OpenNI === Aller dans le dossier "Platform\Linux-x86\Build" make Pour compiler le Mono wrappers, make mono_wrapper make mono_samples === Installer avec un Binaire pour lucid 10.04 === {{media_10:openni-openni-4c9ff97binlucid.tar.gz|OpenNI-OpenNI-4c9ff97BINLucid.tar.gz OpenNI-OpenNI-4c9ff97BINLucid.tar.gz}} * Pour installer les fichiers depuis l'archive sur l'ordi, tenter dans OpenNI-OpenNI-4c9ff97/Platform/Linux-x86/Redist/ sudo ./install.sh * Les fichiers executables sont dans OpenNI-OpenNI-4c9ff97/Platform/Linux-x86/Bin/Release, faire par exemple ./Sample-NiSimpleViewer ===== Install SensorKinect Custom ===== Version Custom * Installer une version customisée du module Sensor : https://github.com/avin2/SensorKinect * Binaire pour lucid 10.04: {{media_03:avin2-sensorkinect-0124bd2binlucid.tar.gz|fig:Avin2-SensorKinect-0124bd2BINlucid.tar.gz}} ok Remarque de serge : * si le titre est Install Custom pourquoi proposer non custom * c'est quoi la différence entre custom et non custom Version non custom: * Module non custom (choisir la version instable au cas où vous ne prendriez pas la custom) : https://github.com/PrimeSense/Sensor/tree/unstable * Binaire pour lucid 10.04: {{media_11:primesense-sensor-0b11206binlucid.tar.gz|fig:PrimeSense-Sensor-0b11206BINlucid.tar.gz}} Remarque de Benjamin : * Il semblerait que le "custom" https://github.com/avin2/SensorKinect soit un fork de l'original https://github.com/PrimeSense/Sensor * Il est préconisé dans [[https://github.com/kronihias/pix_openni/blob/master/README_ce_readme|https:%%//%%github.com/kronihias/pix_openni/blob/master/README ce readme]] d'installer la version unstable de openni avec le "custom" Pour installer les fichiers depuis l'archive (custom ou non) sur l'ordi, dans Platform/Linux-x86/Redist/ sudo ./install.sh ===== Installation de NITE ===== ==== Debian jessie instable 64 bits ==== * **la collection des différents framework Nite et openNI à télécharger (2014)** http://www.openni.org/openni-sdk/openni-sdk-history-2/ * Voir les liens dans ce post pour la compatibilité Open Ni et Nite 2 http://yourcreation.fr/kinect-ubuntu-13-freenect-openni-nite-simpleopenni-installation/ * dl http://www.openni.org/files/nite/?count=1&download=http://www.openni.org/wp-content/uploads/2013/10/NiTE-Linux-x64-2.2.tar1.zip ./install.sh puis renvoyer les drivers OpenNI64/libfreenect/build$ cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.{so,dylib} ~/ZSofts/KINECT/OpenNI64/NiTE-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers/ OpenNI64/NiTE-Linux-x64-2.2/Samples/Bin$ ./SimpleUserTracker marche ! ==== Lucid(10.04) et Maverick (10.10) ==== Les sources http://www.openni.org/downloadfiles/openni-compliant-middleware-binaries/33-latest-unstable\\ le site de référence http://www.primesense.com/en/nite **/!\ pour que cela marche, il faut la bonne combinaison de openni (OpenNI-OpenNI-4c9ff97 ?), SensorKinect et nite** === Binaire === Pour lucid 10.04: {{media_09:nite-1.3.0.17binlucid.tar.gz|fig:Nite-1.3.0.17BINlucid.tar.gz}} == Please enter your PrimeSense license key: == The free license for Kinect devices is 0KOIk2JeIBYClPWVnMoRKn5cdY4= == Installation == Dans le dossier de Nite echo '0KOIk2JeIBYClPWVnMoRKn5cdY4=' | sudo ./install.bash == Error == Attention avec Nite on peut avoir une erreur du type :\\ error CS0006: cannot find metadata file `System.Windows.Forms.dll'\\ Il faut installer alors : sudo apt-get install libmono-winforms1.0-cil libmono-winforms2.0-cil xnContextRegisterForShutdown == Note: == * All of the NITE samples are using 320x240 resolution. You need to change it to 640x480 in the XML files inside the Data directory. * The audio device is not supported yet. ===== Install OSCeleton ===== * Download OSCeleton http://github.com/Sensebloom/OSCeleton * Binaire pour lucid 10.04:{{media_10:osceletonbinlucid.tar.gz|fig:OSCeletonBINlucid.tar.gz}} Pour lancer osceleton ./osceleton -p 8110 mx 1 -my 1 -mz 1 -ox 0 -oy 0 -oz 0 -a 127.0.0.1 Prenez ensuite la pose "Haut les mains" pour être capturé. L'aide est accessible avec ./osceleton -h ===== Install Pd-OSCeleton ===== * Télécharger : https://github.com/pd-projects/pd-kinect-skeleton/tarball/master Lancer osceleton.pd {{media_10:osceleton_pd.png|fig:Osceleton pd.png}} ===== Résumé de l'installation sous Ubuntu 10.04 Lucid ===== **Vérifié et validé** Les samples marchent ! ==== Le driver ==== sudo add-apt-repository ppa:arne-alamut/freenect sudo apt-get update sudo apt-get install freenect sudo adduser YOURNAME video se re-logguer : il faut se déconnecter de la session en cours et se reconnecter.Pour faire un test : freenect-glview ==== Pour la suite ==== sudo apt-get install g++ libglut3-dev libboost-all-dev libwxbase2.8-dev libwxgtk2.8-dev wx-common libusb-1.0-0-dev freeglut3-dev python doxygen graphviz mono-complete ==== Installation de OpenNI ==== * Binaire pour lucid 10.04: {{media_10:openni-openni-4c9ff97binlucid.tar.gz|fig:OpenNI-OpenNI-4c9ff97BINLucid.tar.gz}} Aller dans le dossier "Platform/Linux-x86/CreateRedist" ./RedistMaker Aller dans le répertoire "Platform/Linux-x86/Redist". sudo ./install.sh Les fichiers executables sont dans OpenNI-OpenNI-4c9ff97/Platform/Linux-x86/Bin/Release, faire par exemple ./Sample-NiSimpleViewer ==== Install SensorKinect Custom ==== * Binaire pour lucid 10.04: {{media_03:avin2-sensorkinect-0124bd2binlucid.tar.gz|fig:Avin2-SensorKinect-0124bd2BINlucid.tar.gz}} Pour installer les fichiers, dans Platform/Linux-x86/Redist/ sudo ./install.sh ==== Installation de NITE ==== * Binaire pour lucid 10.04: {{media_09:nite-1.3.0.17binlucid.tar.gz|fig:Nite-1.3.0.17BINlucid.tar.gz}} Dans le dossier de Nite echo '0KOIk2JeIBYClPWVnMoRKn5cdY4=' | sudo ./install.bash ==== Install OSCeleton ==== * Binaire pour lucid 10.04:{{media_10:osceletonbinlucid.tar.gz|fig:OSCeletonBINlucid.tar.gz}} Pour lancer osceleton ./osceleton -p 8110 mx 1 -my 1 -mz 1 -ox 0 -oy 0 -oz 0 -a 127.0.0.1 ===== Install Pidip GEM Kinect ===== * Pure Data + Kinect + Pidp + Gem : [[Pure_Data_vs_Kinect|Page dédiée sur le centre de ressources]] ===== Utilisation dans Blender ===== * [[Pure Data vs Blender]] ===== Un site qui fourni tout pour l'installation sur Ubuntu Maverick 10.10 ===== * http://www.greenfoot.org/doc/kinect/ubuntu.html * Une discussion avec un tutoriel en 5 étapes pour installer la kinect openni, nite sur debian (voir en milieu de page : makiavel) http://groups.google.com/group/openni-dev/browse_thread/thread/49a4dd13c045c1a2 code> Here is the guide I followed. I updated it a little bit. Hope it helps someone! I got it working perfectly on my Debian. They recommend Ubuntu 10.10 or greater. I had done it on Debian 6 STEP 1 ---- Download the OpenNI modules appropriate for your operating system from http://75.98.78.94/Downloads/OpenNIModules.aspx NOTE: I tried the unstable versions and it worked fine. You should download these three: OpenNI binaries OpenNI compliant middleware binaries OpenNI compliant hardware binaries The downloaded files should like these: ->OpenNI-Bin-Linux32-v1.1.0.41.tar.bz2 ->Nite-1.3.1.5.tar.bz2 ->Sensor-Bin-Linux32-v5.0.1.32.tar.bz2 Make a new folder called kinect $ cd $ mkdir kinect $ cd kinect and extract the downloaded files into it. STEP 2 ---- Update your linux $ sudo apt-get update install these files which are necessary for proper installation of drivers $ sudo apt-get install mono-complete $ sudo apt-get install libusb-1.0-0-dev $ sudo apt-get install freeglut3-dev STEP 3 ---- The extracted folders in step 1 will be ->OpenNI-Bin-Linux32-v1.1.0.41 ->Sensor-Bin-Linux32-v5.0.1.32 ->Nite-1.3.1.5 rename it to OpenNI, Sensor, Nite respectively Download the folder SensorKinect from https://github.com/avin2/SensorKinect Extract the folder to kinect folder and rename it to SensorKinect STEP 4 ---- Go to the folder OpenNI, Sensor, Nite and run sudo ./install.sh $ cd $ cd kinect $ cd OpenNI $ sudo ./install.sh Check if everything went OK! $ cd ../Sensor $ sudo ./install.sh Check if everything went OK! $ cd ../Nite $ sudo ./install.sh Check if everything went OK! Use this license when asked during the installation: 0KOIk2JeIBYClPWVnMoRKn5cdY4= $ cd ../SensorKinect/Platform/Linux-x86/CreateRedist/ $ sudo ./RedistMaker $ cd ../Redist $ sudo ./install.sh Check if everything went OK! You should be done by now. In case of any confusion refer the README in SensorKinect folder. STEP 5 ---- Test if everything is working fine Connect you kinect and run the samples from the OpenNI folder $ cd ~/kinect/OpenNI/Samples/Bin/Release/ (assuming the kinect folder is in home folder, otherwise go to the respective folder) $ ./NiViewer You should get the depth map and image stream on your window. --DONE-- ++++++++++++++++ Dear makiavel, just a minor note about your guide. As far as I know, you do not need to install OpenNI's Sensor *and* SensorKinect, as that is redundant (although it doesn't break things per se). OpenNI.org's version of the Sensor package is used for hardware different than the Kinect, such as PrimeSense SDK and Asus Xtion PRO. On the other hand, avin2's patched version of Sensor, called SensorKinect, works with the Kinect. Therefore, in your case, you only need SensorKinect. ===== kinect avec processing ===== Daniel Shiffman a réalisé une librairie pour processing * http://www.shiffman.net/p5/kinect/ Pour utiliser cette librairie, il faut quand même [[Installation_Kinect_Linux#Installation_de_libfreenect|installer libfreenect]] avant. une version toute compilée pour ubuntu 10.10 est téléchargeable ici : * http://www.4shared.com/file/hBAxxv3m/processing_OpenKinect-libfreen.html Cette librairie est bien moins rapide et étendue que sous openframeworks mais permet néanmoins de bricoler un peu ===== Kinect avec vvvv ===== Un exemple d'usage par http://www.cloneproduction.net/, code source téléchargeable {{vimeo>52612788}} ===== kinect autres usages ===== * l'utiliser comme souris : http://www.keyboardmods.com/2010/12/howto-use-kinect-as-mouse-in-linux.html * une liste d'applications http://www.uni-weimar.de/medien/wiki/Kinect#Applications {{tag>bj kinect}}