Kinect. Es ist mit etwas zu beginnen...

Kinect oder Prime Sensor - was das ist und wie es damit umzugehen ist? Man könnte diese Frage für angemessen halten, wenn Sie die zahlreichen Videos im Internet nicht gesehen haben, wie diese Geräte eingesetzt werden... Daher meine ich, es ist mit der Informationssuche über Kinect zu beginnen, wenn diese Wörter für Sie bekannt sind... Natürlich kann man nach nichts suchen, sondern meine super informative Definition dieses Gerätes lesen: Kinect — das ist cool...

Jetzt wenn wir wissen, was Kinect ist, schlage ich vor dieses Gerät schrittweise zu "begreifen". Für die Kinect-Montage an OpenWrt braucht man natürlich einige Zeit. Die Zeit für die Begreifung seiner Software.

Zuerst starten wir Kinect unter Linux und dann kommen wir möglicherweise zur Kinect-Anpassung für OpenWrt.

Wollen wir beginnen...

Laden wir die Treiber herunter, welche die Hardwareunterstützung der Kamera und der Kinect-Sensoren gewährleisten. Soviel ich verstehe, es gibt 2 Varianten der Treiber: das sind OpenNi und libfreenect Projekte. Versuchen wir das Projekt OpenNi zusammenzubauen.

Laden wir herunter:

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

Es gibt 2 Zusammenbauvarianten dieses Projektes. Bei der 1. Variante lassen wir den Script laufen: OpenNI/Platform/Linux-x86/CreateRedist/RedistMaker. Bei der 2. Variante, welche für uns üblicher ist, lassen wir "make" laufen. Wählen wir die 2. Variante aus.

Gehen wir ins Verzeichnis OpenNI/Platform/Linux-x86/Build und lassen wir "make" laufen. Auf dem Bildschirm sollte in etwa Folgendes angezeigt werden:

OpenNI/Platform/Linux-x86/Build$ make make -C OpenNI make[1]: Вход в каталог `/home/dima/MyWork/h-wrt/kinect/OpenNI/Platform/Linux-x86/Build/OpenNI' mkdir -p Release g++ -MD -MP -MT "./Release/openNI.d Release/openNI.o" -c -O2 -DNDEBUG -I../../../../Include -I../../../../Source -I../../../../Source/External/TinyXml -DXN_EXPORTS -fPIC -fvisibility=hidden -o Release/openNI.o ../../../../Source/OpenNI/openNI.cpp g++ -MD -MP -MT "./Release/XnBaseNode.d Release/XnBaseNode.o" -c -O2 -DNDEBUG -I../../../../Include -I../../../../Source -I../../../../Source/External/TinyXml -DXN_EXPORTS -fPIC -fvisibility=hidden -o Release/XnBaseNode.o ../../../../Source/OpenNI/XnBaseNode.cpp

Wenn der Zusammenbau erfolgreich abgeschlossen ist, lassen wir Folgendes laufen:

OpenNI/Platform/Linux-x86/Build$ sudo make install

Anscheinend unterstützen die Schnittstellenunterprogramme des OpenNi-Projektes nur den PrimeSensor. Für die Kinect-Unterstützung gibt es «fork from PrimeSense to support the Kinect» mit dem Namen boilerbots https://github.com/boilerbots.

Laden wir das Programm boilerbots herunter:

git clone https://github.com/boilerbots/Sensor.git

Gehen wir zum Kinect-Branch und laden wir Folgendes herunter:

Sensor$ git checkout kinect 
Branch kinect set up to track remote branch kinect from origin. 
Switched to a new branch 'kinect' 

Sensor/Platform/Linux-x86/Build$ make

Sensor/Platform/Linux-x86/Build$ sudo make install

Weiter laden wir die aktuellste Version von OpenNi Middleware Binaries von hier aus herunter.

Bitte beachten Sie den freien Schüssel (free key) auf dieser Seite:
0KOIk2JeIBYClPWVnMoRKn5cdY4=

Packen wir die Datei aus und gehen wir ins Verzeichnis Nite/Data, wo 3 XML-Dateien liegen. Wir brauchen anstatt der Zeile «insert key here» jenen free key. Auf dem Bildschirm sollte in etwa Folgendes angezeigt werden:

<OpenNI>
        <Licenses> 
                <License vendor="PrimeSense" key="0KOIk2JeIBYClPWVnMoRKn5cdY4="/> 
        </Licenses> 

Weiter lassen wir den Script install.sh laufen und geben nocheinmal den Schlüssel beim Request:

Nite$ sudo ./install.sh Package exported to: /usr/lib/mono/2.0/XnVNite.net.dll -> ../gac/XnVNite.net/1.4.0.5__399870656fc6c787/XnVNite.net.dll Installed Bin/XnVNite.net.dll into the gac (/usr/lib/mono/gac) Please enter your PrimeSense license key:0KOIk2JeIBYClPWVnMoRKn5cdY4=

Schließen wir Kinect an und prüfen wir die Ausgabe von dmesg:

usb 1-3: new high speed USB device using ehci_hcd and address 5
hub 1-3:1.0: USB hub found
hub 1-3:1.0: 3 ports detected
usb 1-3.2: new full speed USB device using ehci_hcd and address 6
usb 1-3.1: new high speed USB device using ehci_hcd and address 7
usb 1-3.3: new high speed USB device using ehci_hcd and address 8

Jetzt gehen wir ins Verzeichnis OpenNI/Platform/Linux-x86/Bin/Release oder ins Verzeichnis Nite/Samples/Bin/Release und lassen wir die Programmbeispiele laufen.

Beispiel, wie ein Programm läuft /Nite/Samples/Bin/Release$ Sample-Players

Wir sind mit dem Projekt OpenNi fertig. Ich würde nicht sagen, dass wir alles jetzt verstehen, aber wir haben zumindest die Programmbeispiele sowie auch die Quellcodes zu diesen Beispielen bekommen. Daher wird es weiter leichter gehen...

Um den Unterschied zwischen den Projekten OpenNi und «OpenKinect project- libfreenect» zu verstehen, schlage ich vor auch das Projekt libfreenect zusammenzusetzen.

Hier ist die Webpage des Projektes libfreenect: http://openkinect.org/wiki/Main_Page

Hier ist die Darstellung der Zusammensetzung:
http://openkinect.org/wiki/Getting_Started

Laden wir die Quellcode herunter:

git clone https://github.com/OpenKinect/libfreenect.git

Erstellen wir das Verzeichnis build, gehen wir dorthin und lassen wir ccmake laufen:

$ cd libfreenect
$ mkdir build
$ cd build
$ ccmake ..

Es wird sich ein Editor-Window öffnen. Drücken wir «с» für die Konfiguration. Es wird nach den installierten Bibliotheken. Es ist zu beachten, dass die Felder wie folgt aussehen:

CMAKE_INSTALL_PREFIX /usr/local LIBUSB_1_INCLUDE_DIR /usr/include/libusb-1.0 LIBUSB_1_LIBRARY /usr/lib/libusb-1.0.so

Drücken wir «g» für die Dateierzeugung und loggen wir aus.

Setzen wir zusammen:

$ cmake ..
$ make
$ sudo make install

Die Programmbeispiele sind hier kinect/libfreenect/build/bin.

Zusammenfassend glaube ich, dass wir mit dem ersten kleinen Schrittchen Richtung Kinect-Beherrschung Erfolg hatten. Weiter wird es leichter und gleichzeitig komplizierter gehen ))... Insgesamt beeindrucken die Kinect-Möglichkeiten und ich würde gerne freie Zeit finden um Kinect an ein Eisenstückchen anzuschließen... an unseren beliebten Router mit Openwrt)))

Bestellen Sie Kinect bei uns:

Kinect