Installation Kinect Linux

De Centre de Ressources Numériques - Association Labomedia
Aller à : Navigation, rechercher


Sommaire

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 :

  1. libfreenect : driver open source qui permet de récupérer les flux vidéo de la kinect
  2. OpenNI : logiciel fabriqué par la boite qui a inventé la kinect, permet de récupérer des images et infos brutes
  3. 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
  4. NITE : idem, suite logiciels de tests
  5. OSCEleton : serveur OSC qui se connecte au serveur de PrimeSensor / OpenNI pour transférer les infos de squelettes à d'autres programmes (Pure Data, Processing)
  6. 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

ça donne : 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"
# 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


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:

Remarque de Benjamin :

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

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

Lancer osceleton.pd 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

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

Pour installer les fichiers, dans Platform/Linux-x86/Redist/

sudo ./install.sh

Installation de NITE

Dans le dossier de Nite

echo '0KOIk2JeIBYClPWVnMoRKn5cdY4=' | sudo ./install.bash

Install OSCeleton

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

Utilisation dans Blender

Un site qui fourni tout pour l'installation sur Ubuntu Maverick 10.10

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

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Les blogs
Atelier du c01n
Logiciels
Thèmes
Interaction
Boîte à outils
Participer