Kinect
There are several software interfaces to the Microsoft Kinect:
- OpenKinect/libfreenect: fully open source, still lacking some functionality
- OpenNI framework + Prime Sensor drivers + NITE motion tracking middleware binaries (skeleton tracking, gesture recognition etc.). The last component is closed source, while the first two ones are open source. The OpenNI/NITE combination is endorsed by the ROS community and is the most popular
- Kinect for Windows SDK
OpenKinect/libfreenect
YARP wrapper
See $YARP_ROOT/src/modules/kinect/freenect/README.txt
for installation instructions.
OpenNI + Prime Sensor + NITE
Installing binary files, if you prefer this possibility, is straightforward.
Below we explain how to manually install Kinect programs on Ubuntu 10.04 LTS (officially you need 10.10 or higher, but 10.04 works too).
YARP wrapper
See $YARP_ROOT/src/modules/kinect/OpenNI/README.txt
for installation instructions.
ROS wrapper
- Install ROS - http://www.ros.org/wiki/diamondback/Installation/Ubuntu
- Install ROS OpenNI - http://www.ros.org/wiki/openni_kinect
Ubuntu manual installation
The following instructions refer to the Unstable branch.
Prerequisites
Mandatory:
sudo apt-get install g++ python git-core libusb-1.0-0-dev freeglut3-dev audo adduser YOURNAME video
Optional:
sudo apt-get install doxygen graphviz
OpenNI
mkdir ~/kinect && cd ~/kinect git clone https://github.com/OpenNI/OpenNI.git cd OpenNI
Now follow instructions on https://github.com/OpenNI/OpenNI/tree/unstable
Sensor
There are a number of different versions for this driver:
- official PrimeSense Sensor Module for OpenNI (http://www.openni.org/downloadfiles/openni-compliant-hardware-binaries/31-latest-unstable); it supports cameras such as PrimeSense SDK and Asus Xtion PRO but not Kinect
- avin2 SensorKinect repository: supports Kinect
cd ~/kinect git clone https://github.com/avin2/SensorKinect cd SensorKinect/Platform/Linux-x86/CreateRedist/ sudo ./RedistMaker cd ../Redist sudo ./install.sh
- Boilerbots repository: supports Kinect
cd ~/kinect git clone https://github.com/boilerbots/Sensor.git cd Sensor git checkout kinect
- Point Cloud Library (PCL) version, supporting Kinect and with custom debayering algorithms: http://pointclouds.org/downloads/
Installation instructions may vary, but keep an eye on https://github.com/PrimeSense/Sensor/tree/unstable
NITE
- http://www.openni.org/downloadfiles "PrimeSense NITE Unstable Build for Ubuntu" (also known as "OpenNI Compliant Middleware Binaries")
- Latest Unstable
- download, for example, PrimeSense NITE Unstable Build for for Ubuntu 10.10 x64 (64-bit) v1.3.0.18 to
~/kinect
- extract this archive:
tar -jxvf NITE-Bin-Linux64-v1.3.0.18.tar.bz2
- edit your
Nite-VERSION/Data/Sample-*.xml
files by filling in PrimeSense license and preferred resolution as reported by several guides online such as http://www.keyboardmods.com/2010/12/howto-kinect-openninite-skeleton.html
Demos
Demos are located in
Nite-VERSION/Samples/Bin
OpenNI/Platform/Linux/Bin/x64-Release
(orOpenNI/Platform/Linux-x86/Bin/Release
)
See also
- http://groups.google.com/group/openni-dev mailing list
- http://en.wikipedia.org/wiki/Kinect#Software
- Kinect - OpenCV Wiki
- Kinect and MRPT | The Mobile Robot Programming Toolkit
- Getting Started with PC Kinect
- Xbox Kinect: How the movement tracking works | T3 Magazine Online
- Microsoft Kinect SDK vs PrimeSense OpenNI