Es gibt bereits Anleitungen, wie man die Kinect unter Ubuntu ansprechen kann, aber nicht alle davon funktionieren (noch zu 100%). Grundsätzlich gibt es zwei Wege:
Libfreenect ist die kleinere freie Variante, die problemlos funktioniert. OpenNI ist auch frei, dient aber vor allem als Grundlage für das proprietäre Nite. Nite wiederum ist abgesehen von seiner Unfreiheit toll, denn damit kann OSCeleton genutzt werden, ein Proxy für die Körpererkennungsdaten. Libfreenect hat in der Richtung noch gar nichts.
Anforderungen
Mir ging es um OSCeleton, daher musste OpenNI installiert werden.
Allerdings, nochmal betont: Libfreenect ist unproblematischer, kann zusätzlich die Mikrofone der Kinect nutzen und lief in meinen Tests sofort.
Der "OpenNI + Nite + OSCeleton"-Weg dagegen stellt ordentlich Anforderungen: Die CPU muss SSE3 und SSSE3 können (Nite erfordert das) und es muss ein 32-Bit-Linux sein (keine offizielle Anforderung, aber nur da bekam ich es zum Laufen. Hinweis erbeten, falls das nicht stimmt.).
Auf SSE3 prüft man mit
cat /proc/cpuinfo | grep pni
Auf SSSE3 mit
cat /proc/cpuinfo | grep ssse3
Installation von OpenNI + Nite + OSCeleton unter Ubuntu 11.04
Vorab: Finger weg von den .deb-Paketen für OSCeleton und OpenNI. So viel einfacher das damit mal werden wird, deshalb hier auch verlinkt, bei mir funktionierten sie bisher nicht.
Die folgende Anleitung ist eine Nachstellung meines Installationsweges, sie muss nicht zu 100% stimmen.
Pakete installieren:
libusb-1.0.0-dev libusb-1.0.0 freeglut3 git libmono-winforms2.0-cil
OpenNI installieren
git clone https://github.com/OpenNI/OpenNI.git
cd OpenNI/Platform/Linux-x86/CreateRedist
./RedistMaker
cd ../Redist/
sudo ./install.sh
Sensormodul installieren
git clone https://github.com/boilerbots/Sensor.git
cd Platform/Linux-x86/CreateRedist
./RedistMaker
cd ../Redist/
sudo ./install.sh
Nite (unstable) herunterladen: Downloadseite, 32-Bit-Direktlink
Entpacken, dann Installieren:
sudo ./install.sh
Jetzt sollten die Samples in /Samples/Bin/Release/ funktionieren, im Zweifel mit Rootrechten testen.
Fehlt nur noch OSCeleton:
git clone https://github.com/Sensebloom/OSCeleton.git
cd OSCeleton
make
./osceleton kann nun direkt, im Zweifel wieder mit Rootrechten, verwendet werden.
OSCeleton sendet die Daten dann an 127.0.01:7110, ich bin noch am ausprobieren, wie man das möglichst einfach auslesen kann. netcat mit nc -l 7110 schien keine ankommenden Daten zu bemerken, Ideen? mit
dump_osc 7110
aus dem Paket pyliblo_osc kann man sie anzeigen.
onli blogging am : Bachelorarbeit: Leute erkennen
Vorschau anzeigen