Suite à une semaine de résidence de travail pour mettre en place un outil interactif de visualisation de contenu sur le thème suivant :.
Comment proposer une vitrine qui puisse montrer le travail d'une équipe d'architectes activistes, souvent absents, car en déplacements réguliers pour divers projets, workshops...?
Nous nous sommes interrogés sur différentes techniques toutes peu satisfaisantes pour l'application voulue. Puis est arrivée la kinect, camera 3D développé par Mee-kro-saw-ft et abondamment hackée dés sa sortie.
Toute une communauté de développeurs, hackers, bidouilleurs, s'est emparée rapidement de ce nouveau Graal de l'interactivité, revisitant complètement l'analyse vidéo.

kinect.jpg

Nous nous sommes donc attelés à la prise en main de la kinect afin d'expérimenter les possibilités liées à cet outil.
Après plusieurs heures de galères, nous avons pu réaliser une première application sommaire.

Suite aux nombreux écueils que nous avons pu rencontrer, je me décide à publier un HOWTO.
Nous avons travaillé avec OpenframeWorks, framework C++ sous licence MIT, ersatz de licence BSD :-/, avec l'addon ofxKinect, le tout avec CodeBlocks, sous Ubuntu 10.04.

Voici donc les différentes étapes qui nous ont été nécessaires au bon fonctionnement de la kinect:

---> Télécharger OpenFrameworks

---> Installer OpenFrameworks :

dans un terminal se rendre à cet emplacement :

cd /home/ofuser/Desktop/of_preRelease_v0.06_linux_cb_FAT/scripts/linux/ubuntu

une fois que l'on se trouve dans ce répertoire lancer les commandes suivantes :

sudo ./install_codeblocks.sh
sudo ./install_dependencies.sh

Nous avons maintenant Code::Blocks d'installé, l'IDE qui nous permettra de taper du code en utilisant OpenFrameworks, ainsi qu'openframeworks.

---> Installer l'addon ofxKinect

Il vous faudra pour cela avoir git d'installé sur votre pc... voici de quoi vous aider

une fois git installé, aller à l'emplacement de .../openFrameworks/addons/ofxKinect/ puis dans un terminal lancer la commande suivante :

git clone git://github.com/ofTheo/ofxKinect.git

---> En principe vous avez maintenant tout ce qu'il faut pour lancer votre exemple ofxKinect. Nous concernant, cela n'a pas été suffisant. Il nous a fallu faire quelques manipulations supplémentaires.
Tout d'abord, vérifier à bien connecter votre kinect sur un port USB directement relié à votre carte mère, ça vous évitera peut-être des heures de prises de tête.
Les ports en façade on parfois des imperfections d'alimentations qui peuvent être décisif pour le fonctionnement de la kinect à première vue.

---> Il nous a fallu installer la librairie libusb permettant de travailler avec les données entrantes et sortantes des ports USB.

sudo apt-get install libusb1.0.0-dev

---> installation de la librairie unicap également, pour travailler avec des dispositif video:

sudo add-apt-repository ppa:arne-datafloater/unicap

sudo apt-get install libunicap2 libunicap2-dev libunicap-2 libunicapgtk-2 libucil-2 libunicapgtk2 libucil2

---> Il faudra ensuite vérifier directement dans le fichier .cbp de votre exemple kinect, si les liens indiqués pour le compilateur sont les bons.
Les fichiers .cbp sont utilisés par codeblocks pour la compilation de notre programme, ils sont en XML et indiquent les chemins relatifs aux librairies par exemples, c'est ici que vous devez vérifier l'exactitude des infos.
Par exemple on peut trouver ce genre d'infos:

<Compiler>
...
<Add directory="../../libs/freeImage/include" />

En lieu et place de celle-ci par exemple :

<Compiler>
...
<Add directory="../../libs/linux/freeImage/include" />

Donc bien vérifier les chemins d'accès.

---> Dans ce même fichier .cbp, il faut parfois rajouter des liens manquant comme ofxkinectCalibration.cpp et ofxKinectCalibration.h par exemple.

---> Il faut ensuite créer le fichier 51-kinect.rules dans le dossier /etc/udev/rules.d/ avec le contenu suivant :

SUBSYSTEM=="usb", SYSFS{idVendor}=="045e", SYSFS{idProduct}=="02ae", MODE="0660", GROUP="plugdev"
SUBSYSTEM=="usb", SYSFS{idVendor}=="045e", SYSFS{idProduct}=="02ad", MODE="0660", GROUP="plugdev"
SUBSYSTEM=="usb", SYSFS{idVendor}=="045e", SYSFS{idProduct}=="02b0", MODE="0660", GROUP="plugdev"

---> ajouter l'user au groupe plugdev si c'est pas déjà le cas :

sudo adduser user plugdev

---> Il nous a fallu également créer un fichier bash clickToLaunchApp.sh dans .../openframeworks/export/linux/ avec le contenu suivant:

#!/bin/sh
echo $ (pwd)
export LD_LIBRARY_PATH = $(pwd)/libs/

---> voilà !
en principe vous devriez avoir accès à votre kinect et vous lancer dans la nouvelle tendance du détournement de matériel hacké !

NB : Travail co-réalisé avec Pierre Commenge.