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' 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
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"
# 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"
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
Suivre les instructions du fichiers Readme.
Télécharger les sources Sur www.openni.org, choisir la Version unstable
Installer OpenNI
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
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
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
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
