[Guida] Kinect su Ubuntu Oneiric 11.10: OpenNi e SensorKinect

by

In questa guida vedremo come installare OpenNi ed annesso SensorKinect per far funzionare la periferica Kinect su Ubuntu Oneiric 11.10 e, salvo grossi stravolgimenti, anche su versioni successive.

Installazione di OpenNi

“The OpenNI Framework provides the interface for physical devices and for middleware components. The API enables modules to be registered in the OpenNI framework and used to produce sensory data. Selecting the hardware or middleware module is easy and flexible.”

……..Altro

Prepariamo tutto il necessario

Installiamo le dipendenze

Inseriamo in un terminale:

sudo apt-get install git-core cmake libglut3-dev pkg-config gcc g++ build-essential libxmu-dev libxi-dev libusb-1.0-0-dev doxygen graphviz git

Problema: “libglut3-dev cannot be installed”

Il sistema potrebbe dirci che è impossibile installare libglut3-dev

In tal risolviamo installando a suo posto “freeglut” con il seguente comando:

sudo apt-get install git-core cmake freeglut3-dev pkg-config gcc g++ build-essential libxmu-dev libxi-dev libusb-1.0-0-dev doxygen graphviz git

Creiamo ora la directory di lavoro:

mkdir ~/kinect

cd ~/kinect

Scarichiamo L’ultima versione di OpenNi

Consiglio di utilizzare la versione unstable, attualmente aggiornata alla 1.5.2.7 piuttosto che la versione stable che, con la mia configurazione, non funziona.

git clone https://github.com/OpenNI/OpenNI.git

Per passare alla versione unstable, una volta eseguito il comando precedente, inserire:

cd OpenNI

git checkout unstable

Se tutto va per il verso giusto dovreste vedere due righe di conferma

Branch unstable set up to track remote branch unstable from origin.

Switched to a new branch ‘unstable’

Se altrimenti non ha funzionato, provate con:

cd OpenNI

git branch unstable

git checkout unstable

git pull origin unstable

Installiamo

cd Platform/Linux/Build

make && sudo make install

Problema: Si potrebbero verificare errori nella compilazione, se questi errori riguardano mancanze di file .dll (Cannot find the metadata file “system.windows.forms.dll”) o altre “menate” che richiamano il mondo Winzozziano, dovremo installare Mono con il seguente comando

sudo apt-get install mono-complete

Dopo di che occorre rilanciare

make && sudo make install

Problema: nel caso in cui il sistema dia errore dicendoci che javac non è stato trovato:

javac -d x64-Release ../../../../../Wrappers/OpenNI.java/src/org/OpenNI/*.java

/bin/sh: javac: not found

make[1]: *** [../../../Bin/x64-Release/org.OpenNI.jar] Errore 127

make[1]: uscita dalla directory “/home/sparazza/kinect/OpenNI/Platform/Linux/Build/Wrappers/OpenNI.java”

make: *** [Wrappers/OpenNI.java] Errore 2

risolveremo installando la seguente dipendenza

sudo apt-get install openjdk-7-jdk

Dopo di che occorre rilanciare

make && sudo make install

Problema: nel caso in cui il sistema ci neghi il permesso di accedere al file install.sh e RedistMaker

/bin/sh: ./RedistMaker: Permission denied

/home/sparazza/kinect/OpenNI/Platform/Linux/Build

cd ../Redist; ./install.sh; cd –

cd: 1: can’t cd to ../Redist

/bin/sh: ./install.sh: not found

/home/sparazza/kinect/OpenNI/Platform/Linux/Build

Risolviamo quindi con

cd ../CreateRedist

sudo chmod +x install.sh RedistMaker

cd ../Build

Dopo di che occorre rilanciare

make && sudo make install

Se così non dovesse andare e dovessimo continuare ad avere problemi con install.sh, possiamo spostare i file che ci servono:

sudo cp  -r  ../Redist/OpenNI-Bin-Dev-Linux-x64-v1.5.2.7/*  ../Redist/

Sostituendo OpenNI-Bin-Dev-Linux-x64-v1.5.2.7 con la versione presente dentro la cartella Redist.

Quando finalmente vedremo

*** DONE ***

L’installazione sarà finalmente completa.

Se incappate in altre problematiche potete fare riferimento alle fonti, alla fine dell’articolo, per cercare ulteriori soluzioni oppure lasciare un commento

Installazione dei Driver Sensor Kinect

Maggiori informazioni sui driver SensorKinect qui: http://www.primesense.com

Prepariamo tutto il necessario

Scarichiamo L’ultima versione di SensorKinect

cd ~/kinect/

git clone https://github.com/avin2/SensorKinect

cd SensorKinect

git checkout kinect

Installiamo i driver

cd Platform/Linux/Build/

make && sudo make install

Problema: 

cd ../CreateRedist; ./RedistMaker; cd –

/bin/sh: ./RedistMaker: Permission denied

/home/sparazza/kinect/SensorKinect/Platform/Linux/Build

cd ../Redist; ./install.sh; cd –

cd: 1: can’t cd to ../Redist

/bin/sh: ./install.sh: not found

Inserire i seguenti comandi

cd ../CreateRedist

sudo chmod +x install.sh RedistMaker

cd ../Build

e rieseguire

make && sudo make install

Se dopo la creazione della cartella redist, segnalata dalle seguenti righe

Creating redist folder…

Creating tar…

Done!

…incappiamo di nuovo nel problema:

cd ../Redist; ./install.sh; cd –

/bin/sh: ./install.sh: not found

Possiamo spostare i file che ci servono

sudo cp  -r  ../Redist/Sensor-Bin-Linux-x64-v5.1.0.25/*  ../Redist/

Sostituendo Sensor-Bin-Linux-x64-v5.1.0.25 con la versione installata

Quando vedremo finalmente

*** DONE ***

L’installazione del driver sarà completa!

Testiamo il Kinect!

Collegare la periferica

Colleghiamo la periferica al pc mediante l’adattatore USB che vedete in figura:

Quando il kinect verrà collegato avrà sul led frontale un’intermittenza verde.

A questo punto i più curiosi possono inserire il comando:

dmesg

che mostra l’evento che il pc ha generato al collegamento della  periferica:

[16111.870698] usb 1-1.2: new high speed USB device number 3 using ehci_hcd

[16111.963074] hub 1-1.2:1.0: USB hub found

[16111.963269] hub 1-1.2:1.0: 3 ports detected

[16112.907721] usb 1-1.2.2: new full speed USB device number 4 using ehci_hcd

[16114.439331] usb 1-1.2.1: new high speed USB device number 5 using ehci_hcd

[16115.548125] usb 1-1.2.1: usbfs: USBDEVFS_CONTROL failed cmd mtp-probe rqt 128 rq 6 len 1024 ret -110

[16115.970934] usb 1-1.2.3: new high speed USB device number 6 using ehci_hcd

[16116.161338] Linux video capture interface: v2.00

[16116.176331] gspca: v2.13.0 registered

[16116.176980] usbcore: registered new interface driver kinect

Testare il kinect

cd ~/kinect/OpenNI/Platform/Linux/Bin/x64-Release/

./NiViewer

Problema:

Open failed: Failed to set USB interface!

per risolvere, rimuoviamo dai moduli caricati il gspca, che in questo caso va in conflitto con il driver corretto:

sudo rmmod gspca_kinect

E rilanciamo il comando

./NiViewer

A questo punto la demo dovrebbe partire: potrete vedere due output video, uno rgb e l’altro z-depth, forniti dalle due/tre camere della kinect

Nella prossima guida vedremo come installare il necessario per effettuare il track di uno(o più) scheletri, così  da poter utilizzare le altre demo fornite con OpenNI (ad esempio UserTracker)

Questa guida è stata testata su Ubuntu Oneiric 11.10, se qualcuno è riuscito ad applicarla con successo ad altre versioni di Ubuntu o altre distro, può scriverlo in un commento e provvederò ad aggiornare la guida!

Source:

http://youngindiafellowship.academia.edu/JatinSharma/Blog/48864/OpenNI-on-Beagle-Board-XM

Tag: , , , , , , , ,

7 Risposte to “[Guida] Kinect su Ubuntu Oneiric 11.10: OpenNi e SensorKinect”

  1. [Guida] Kinect su Ubuntu Oneiric 11.10: Nite e User Tracking « Says:

    […] « [Guida] Kinect su Ubuntu Oneiric 11.10: OpenNi e SensorKinect […]

  2. Emanuele Says:

    funziona alla grande anche su Ubuntu 12.04!! ottimo lavoro!😉

  3. shadow Says:

    Ho seguito questa procedura utilizzando la versione di Ubuntu 12.04 LTS e devo dire che ha funzionato. Facendo attenzione ad inserire il corretto sistema x86 ove necessario.
    Grazie.

  4. den Says:

    Ciao! innanzitutto grazie per questa guida, è molto chiara e completa, soprattutto per quanto riguarda le correzioni a possibili errori!
    Tuttavia devo chiedere AIUTO per un problema che non riesco a risolvere:
    riesco a installare OperNI seguendo le istruzioni indicate (incorro nell’errore su install.sh e RedistMaker ma lo risolvo spostando i file come suggerisci); il problema sorge nell’installazione di SensorKinect, in quanto dopo averlo scaricato, giunto al punto del “make install” la procedura non va a buon fine e si interrompe con un errore diverso da quello che hai indicato… fondamentalmente RedistMaker non crea neanche la cartella Redist!
    Potete aiutarmi?
    Chiunque abbia un’idea è ben accetto!

    (Sto usando ubuntu 12.04 x64)

    • den Says:

      Scusate, nella fretta non ho riportato l’errore che appare:
      ../../../../Source/XnDeviceSensorV2/XnSensorDepthGenerator.cpp:339:9: error: cannot allocate an object of abstract type ‘XnSensorDepthGenerator’
      ../../../../Source/XnDeviceSensorV2/XnSensorDepthGenerator.h:39:7: note: because the following virtual functions are pure within ‘XnSensorDepthGenerator’:
      /usr/include/ni/XnModuleCppInterface.h:220:20: note: virtual XnStatus xn::ModuleAlternativeViewPointInterface::GetPixelCoordinatesInViewPoint(xn::ProductionNode&, XnUInt32, XnUInt32, XnUInt32&, XnUInt32&)
      make[1]: *** [x86-Release/XnSensorDepthGenerator.o] Errore 1
      make[1]: uscita dalla directory “/home/ubu/kinect/SensorKinect/Platform/Linux/Build/XnDeviceSensorV2”
      make: *** [XnDeviceSensorV2] Errore 2

  5. Graziano Ferrero Says:

    Ciao, grazie per la guida, uso Ubuntu 14.04, inanzitutto i pacchetti sono gia’ nei repo ufficiali Ubuntu , unica cosa ho dovuto installare i driver manualmente da https://github.com/avin2/SensorKinect/downloads. Basta scompattare il file e dare un bel (sudo ./install.sh ) ed ho dovuto rimuove i vecchi driver ( sudo rmmod gspca_kinect ) dopodiche funziona perfettamente😉

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...


%d blogger cliccano Mi Piace per questo: