BLOG
Installation de la kinect sur ubuntu 13.10.
Il semblerait que les kinects de séries 1473 ne fonctionnent pas « encore » avec les drivers freenect.
1- Installation des paquets et préparation de l’environnement
$ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install cmake git-core freeglut3-dev freeglut3 pkg-config build-essential libxmu-dev libxi-dev libusb-1.0-0-dev python doxygen graphviz openjdk-6-jdk $ mkdir ~/kinect && cd ~/kinect
Vérifions que la kinect est bien reconnu par votre système. Branchez la puis lancez la commande suivante:
lsusb |grep Xbox Bus 001 Device 058: ID 045e:02b0 Microsoft Corp. Xbox NUI Motor Bus 001 Device 059: ID 045e:02ad Microsoft Corp. Xbox NUI Audio Bus 001 Device 060: ID 045e:02ae Microsoft Corp. Xbox NUI Camera
2 – Mise en place des drivers freenect
Nous avons de besoin des drivers freenect afin de pouvoir communiquer avec la kinect.
2.1 – Installation en compilant les sources via GIT
$ git clone https://github.com/OpenKinect/libfreenect.git $ cd libfreenect $ mkdir build $ cd build $ cmake .. $ make $ sudo make install $ sudo ldconfig /usr/local/lib64/ $ cd ..
Et voilà les drivers sont installer. Pour être sur que tout est bien installer on va tester la kinect
$ glview
2.2 – Installation via APT (dépots officiels)
$ sudo apt-get install freenect
Pour être bien sur que tout va bien:
$ freenect-glview
2.3 – Installation via APT (dépots NeuroDebian)
$ wget -O- http://neuro.debian.net/lists/$(lsb_release -cs).us-nh | sudo tee /etc/apt/sources.list.d/neurodebian.sources.list $ sudo apt-key adv --recv-keys --keyserver pgp.mit.edu 2649A5A9 $ sudo apt-get update
En suite, tout se passe comme pour l’installation des dépot officiels:
$ sudo apt-get install freenect $ freenect-glview
3 – Installation d’OpenNI2
$ wget http://www.openni.org/wp-content/uploads/2013/11/OpenNI-Linux-x64-2.2.0.33.tar.zip $ unzip OpenNI-Linux-x64-2.2.0.33.tar.zip && tar xjf OpenNI-Linux-x64-2.2.tar.bz2 $ cd OpenNI-Linux-x64-2.2 $ sudo ./install.sh $ cat OpenNIDevEnvironment export OPENNI2_INCLUDE=/home//kinect/OpenNI-Linux-x64-2.2/Include export OPENNI2_REDIST=/home//kinect/OpenNI-Linux-x64-2.2/Redist $ vim ~/.bashrc export OPENNI2_INCLUDE=/home//kinect/OpenNI-Linux-x64-2.2/Include export OPENNI2_REDIST=/home//kinect/OpenNI-Linux-x64-2.2/Redist
Après il faut fermer votre session puis la réouvrir. Pour savoir si tout va bien vérifions que les variables d’environnement sont bien créés:
$ env |grep OPENNI2 OPENNI2_REDIST=/home//kinect/OpenNI-Linux-x64-2.2/Redist OPENNI2_INCLUDE=/home/ /kinect/OpenNI-Linux-x64-2.2/Include
4 – Installation du pont entre libfreenect et OpenNI2
$ git clone https://github.com/piedar/OpenNI2-FreenectDriver.git $ cd OpenNI2-FreenectDriver $ ./waf configure build $ cd build $ cp libFreenectDriver.so ~/kinect/OpenNI-Linux-x64-2.2/Redist/OpenNI2/Drivers/ $ cd ~/kinect/OpenNI-Linux-x64-2.2/Redist/OpenNI2/Drivers/ $ ln -s libFreenectDriver.so libFreenectDriver.so.1 $ ln -s libFreenectDriver.so libFreenectDriver.so.1.2.0
Si vous voulez tester l’installation en lancant les exemples du répertoire sample/bin, il vous faudra copier libFreenectDriver.so dans ~/kinect/OpenNI-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers
$ cd ~/kinect/OpenNI-Linux-x64-2.2/Samples/Bin/OpenNI2/Drivers $ cp ~/kinect/OpenNI2-FreenectDriver/build/libFreenectDriver.so . $ ln -s libFreenectDriver.so libFreenectDriver.so.1 $ ln -s libFreenectDriver.so libFreenectDriver.so.1.2.0 $ cd ~/kinect/OpenNI-Linux-x64-2.2/Samples/Bin $ ./SimpleViewer
5 – Installation de NiTE2
$ wget http://www.openni.org/wp-content/uploads/2013/10/NiTE-Linux-x64-2.2.tar1.zip $ unzip NiTE-Linux-x64-2.2.tar1.zip && tar xjf NiTE-Linux-x64-2.2.tar.bz2 $ cd NiTE-Linux-x64-2.2 $ sudo ./install.sh $ cat NiTEDevEnvironment export NITE2_INCLUDE=/home//kinect/NiTE-Linux-x64-2.2/Include export NITE2_REDIST64=/home/ /kinect/NiTE-Linux-x64-2.2/Redist $ vim ~/.bashrc export NITE2_INCLUDE=/home/ /kinect/NiTE-Linux-x64-2.2/Include export NITE2_REDIST64=/home/ /kinect/NiTE-Linux-x64-2.2/Redist
Après il faut fermer votre session puis la réouvrir. Pour savoir si tout va bien vérifions que les variables d’environnement sont bien créés:
$ env |grep NITE2 NITE2_INCLUDE=/home//kinect/NiTE-Linux-x64-2.2/Include NITE2_REDIST64=/home/ /kinect/NiTE-Linux-x64-2.2/Redist
Et voilà çà devrait fonctionner normalement maintenant.
6 – Sources
- Le site officiel d’OpenKinect: http://openkinect.org.
- Le site officiel d’OpenNi: http://openni.org.
- Les drivers pour faire fonctionner OpenKinect et OpenNI2: https://github.com/piedar/OpenNI2-FreenectDriver.
- Le site officiel de la société qui développe NiTE: http://www.primesense.com.
6 – Quelques problèmes que vous pourriez rencontrer
Number of devices found: 1
Could not claim interface on camera: -6
Could not open device
C’est un problème de droit au niveau de l’usb, il faut ajouter des règles pour autoriser l’accès à la kinect
$ sudo vim /etc/udev/rules.d/66-kinect.rules # 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"
En suite on redémarre l’usb pour prendre en compte les nouvelles règles
$ sudo /etc/init.d/udev restart
Could not claim interface on camera: -6
Could not open device
Les Kernels moderne on déjà un driver vidéo pour Kinect, il faut donc supprimer celui qui a été ajouté par freenect
$ sudo modprobe -r gspca_kinect
Pour qu’il ne soit pas charger à chaque démarrage, il faut le blacklister
$ sudo vim /etc/modprobe.d/blacklist_kinect.conf blacklist gspca_kinect
En suite on redémarre l’usb pour prendre en compte le blacklistage du module
$ sudo /etc/init.d/udev restart
Je vous conseille de débrancher votre kinect à chaque fois que vous faites des modifications au niveau des règles ou des modules car la commande $ sudo /etc/init.d/udev restart ne suffit pas toujours… Après on est quand même pas sous windows pas la peine de rédémarrer votre ordinateur 🙂