Installation Kinect Linux
Sommaire
- 1 Installation des différents logiciels et drivers pour utiliser la kinect sous linux
- 2 Installation de libfreenect
- 3 Des dépendances
- 4 Installation de OpenNI
- 5 Install SensorKinect Custom
- 6 Installation de NITE
- 7 Install OSCeleton
- 8 Install Pd-OSCeleton
- 9 Résumé de l'installation sous Ubuntu 10.04 Lucid
- 10 Install Pidip GEM Kinect
- 11 Utilisation dans Blender
- 12 Un site qui fourni tout pour l'installation sur Ubuntu Maverick 10.10
- 13 kinect avec processing
- 14 Kinect avec vvvv
- 15 kinect autres usages
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à :
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
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 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
Fichier: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: Fichier: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: Fichier: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 [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: Fichier: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:Fichier: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
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: Fichier: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: Fichier: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: Fichier:Nite-1.3.0.17BINlucid.tar.gz
Dans le dossier de Nite
echo '0KOIk2JeIBYClPWVnMoRKn5cdY4=' | sudo ./install.bash
Install OSCeleton
- Binaire pour lucid 10.04:Fichier: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 : Page dédiée sur le centre de ressources
Utilisation dans Blender
- Kinect dans le Blender Game Engine avec un jeu de foot pour commencer.
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
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
Pour utiliser cette librairie, il faut quand même installer libfreenect avant.
une version toute compilée pour ubuntu 10.10 est téléchargeable ici :
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
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